21 lines
830 KiB
JavaScript

var Module;if(typeof Module==="undefined")Module={};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;((function(){var loadPackage=(function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="build/js/game.data";var REMOTE_PACKAGE_BASE="game.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];Module.printErr("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=typeof Module["locateFile"]==="function"?Module["locateFile"](REMOTE_PACKAGE_BASE):(Module["filePackagePrefixURL"]||"")+REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=(function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}});xhr.onload=(function(event){var packageData=xhr.response;callback(packageData)});xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetched=null,fetchedCallback=null;fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,(function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}}),handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","snd",true,true);function DataRequest(start,end,crunched,audio){this.start=start;this.end=end;this.crunched=crunched;this.audio=audio}DataRequest.prototype={requests:{},open:(function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)}),send:(function(){}),onload:(function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)}),finish:(function(byteArray){var that=this;Module["FS_createPreloadedFile"](this.name,null,byteArray,true,true,(function(){Module["removeRunDependency"]("fp "+that.name)}),(function(){if(that.audio){Module["removeRunDependency"]("fp "+that.name)}else{Module.printErr("Preloading file "+that.name+" failed")}}),false,true);this.requests[this.name]=null})};var files=metadata.files;for(i=0;i<files.length;++i){(new DataRequest(files[i].start,files[i].end,files[i].crunched,files[i].audio)).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);var curr;if(Module["SPLIT_MEMORY"])Module.printErr("warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting");var ptr=Module["getMemory"](byteArray.length);Module["HEAPU8"].set(byteArray,ptr);DataRequest.prototype.byteArray=Module["HEAPU8"].subarray(ptr,ptr+byteArray.length);var files=metadata.files;for(i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_build/js/game.data")}Module["addRunDependency"]("datafile_build/js/game.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}});loadPackage({"files":[{"audio":0,"start":0,"crunched":0,"end":6148,"filename":"/snd/.DS_Store"},{"audio":1,"start":6148,"crunched":0,"end":115324,"filename":"/snd/achat.wav"},{"audio":1,"start":115324,"crunched":0,"end":178856,"filename":"/snd/button.wav"},{"audio":1,"start":178856,"crunched":0,"end":339466,"filename":"/snd/colorswitch.wav"},{"audio":1,"start":339466,"crunched":0,"end":450514,"filename":"/snd/dead.wav"},{"audio":1,"start":450514,"crunched":0,"end":513534,"filename":"/snd/error.wav"},{"audio":1,"start":513534,"crunched":0,"end":551978,"filename":"/snd/inprogress.wav"},{"audio":1,"start":551978,"crunched":0,"end":561076,"filename":"/snd/jump.wav"},{"audio":1,"start":561076,"crunched":0,"end":1545786,"filename":"/snd/music.mp3"},{"audio":1,"start":1545786,"crunched":0,"end":1629620,"filename":"/snd/star.wav"},{"audio":1,"start":1629620,"crunched":0,"end":1806732,"filename":"/snd/victory.wav"},{"audio":0,"start":1806732,"crunched":0,"end":2586316,"filename":"/data.bin"}],"remote_package_size":2586316,"package_uuid":"7d3531ea-2a51-4d36-8358-991c4ae65c3c"})}))();isPokiReady=true;isPokiAdReady=true;var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:(function(value){tempRet0=value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(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 Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i<Runtime.functionPointers.length;i++){if(!Runtime.functionPointers[i]){Runtime.functionPointers[i]=func;return 2*(1+i)}}throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}),removeFunction:(function(index){Runtime.functionPointers[(index-2)/2]=null}),warnOnce:(function(text){if(!Runtime.warnOnce.shown)Runtime.warnOnce.shown={};if(!Runtime.warnOnce.shown[text]){Runtime.warnOnce.shown[text]=1;Module.printErr(text)}}),funcWrappers:{},getFuncWrapper:(function(func,sig){assert(sig);if(!Runtime.funcWrappers[sig]){Runtime.funcWrappers[sig]={}}var sigCache=Runtime.funcWrappers[sig];if(!sigCache[func]){sigCache[func]=function dynCall_wrapper(){return Runtime.dynCall(sig,func,arguments)}}return sigCache[func]}),getCompilerSetting:(function(name){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"}),stackAlloc:(function(size){var ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret}),staticAlloc:(function(size){var ret=STATICTOP;STATICTOP=STATICTOP+size|0;STATICTOP=STATICTOP+15&-16;return ret}),dynamicAlloc:(function(size){var ret=DYNAMICTOP;DYNAMICTOP=DYNAMICTOP+size|0;DYNAMICTOP=DYNAMICTOP+15&-16;if(DYNAMICTOP>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=Runtime.stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);if(stack!==0){if(opts&&opts.async){EmterpreterAsync.asyncFinalizers.push((function(){Runtime.stackRestore(stack)}));return}Runtime.stackRestore(stack)}return ret};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(jsfunc){var parsed=jsfunc.toString().match(sourceRegex).slice(1);return{arguments:parsed[0],body:parsed[1],returnValue:parsed[2]}}var JSsource={};for(var fun in JSfuncs){if(JSfuncs.hasOwnProperty(fun)){JSsource[fun]=parseJSFunc(JSfuncs[fun])}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident);var numericArgs=argTypes.every((function(type){return type==="number"}));var numericRet=returnType!=="string";if(numericRet&&numericArgs){return cfunc}var argNames=argTypes.map((function(x,i){return"$"+i}));var funcstr="(function("+argNames.join(",")+") {";var nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource["stackSave"].body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type==="number")continue;var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";";funcstr+=convertCode.body+";";funcstr+=arg+"="+convertCode.returnValue+";"}}var cfuncname=parseJSFunc((function(){return cfunc})).returnValue;funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");";if(!numericRet){var strgfy=parseJSFunc((function(){return Pointer_stringify})).returnValue;funcstr+="ret = "+strgfy+"(ret);"}if(!numericArgs){funcstr+=JSsource["stackRestore"].body.replace("()","(stack)")+";"}funcstr+="return ret})";return eval(funcstr)}}))();Module["ccall"]=ccall;Module["cwrap"]=cwrap;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)}}Module["setValue"]=setValue;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 setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];if(typeof curr==="function"){curr=Runtime.getFunctionIndex(curr)}type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=Runtime.getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}Module["allocate"]=allocate;function getMemory(size){if(!staticSealed)return Runtime.staticAlloc(size);if(typeof _sbrk!=="undefined"&&!_sbrk.called||!runtimeInitialized)return Runtime.dynamicAlloc(size);return _malloc(size)}Module["getMemory"]=getMemory;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&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(u<=2097151){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}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=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 if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}Module["lengthBytesUTF16"]=lengthBytesUTF16;function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}Module["UTF32ToString"]=UTF32ToString;function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}Module["stringToUTF32"]=stringToUTF32;function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}Module["lengthBytesUTF32"]=lengthBytesUTF32;function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={"v":"void","b":"bool","c":"char","s":"short","i":"int","l":"long","f":"float","d":"double","w":"wchar_t","a":"signed char","h":"unsigned char","t":"unsigned short","j":"unsigned int","m":"unsigned long","x":"long long","y":"unsigned long long","z":"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a<i;a++)pre+=" ";Module.print(pre+"^")}function parseNested(){i++;if(func[i]==="K")i++;var parts=[];while(func[i]!=="E"){if(func[i]==="S"){i++;var next=func.indexOf("_",i);var num=func.substring(i,next)||0;parts.push(subs[num]||"?");i=next+1;continue}if(func[i]==="C"){parts.push(parts[parts.length-1]);i+=2;continue}var size=parseInt(func.substr(i));var pre=size.toString().length;if(!size||!pre){i--;break}var curr=func.substr(i+pre,size);parts.push(curr);subs.push(curr);i+=pre+size}i++;return parts}function parse(rawList,limit,allowVoid){limit=limit||Infinity;var ret="",list=[];function flushList(){return"("+list.join(", ")+")"}var name;if(func[i]==="N"){name=parseNested().join("::");limit--;if(limit===0)return rawList?[name]:name}else{if(func[i]==="K"||first&&func[i]==="L")i++;var size=parseInt(func.substr(i));if(size){var pre=size.toString().length;name=func.substr(i+pre,size);i+=pre+size}}first=false;if(func[i]==="I"){i++;var iList=parse(true);var iRet=parse(true,1,true);ret+=iRet[0]+" "+name+"<"+iList.join(", ")+">"}else{ret=name}paramLoop:while(i<func.length&&limit-->0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break};case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break};case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}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(){return demangleAll(jsStackTrace())}Module["stackTrace"]=stackTrace;var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||67108864;var totalMemory=64*1024;while(totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK){if(totalMemory<16*1024*1024){totalMemory*=2}else{totalMemory+=16*1024*1024}}if(totalMemory!==TOTAL_MEMORY){TOTAL_MEMORY=totalMemory}assert(typeof Int32Array!=="undefined"&&typeof Float64Array!=="undefined"&&!!(new Int32Array(1))["subarray"]&&!!(new Int32Array(1))["set"],"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(TOTAL_MEMORY);HEAP8=new Int8Array(buffer);HEAP16=new Int16Array(buffer);HEAP32=new Int32Array(buffer);HEAPU8=new Uint8Array(buffer);HEAPU16=new Uint16Array(buffer);HEAPU32=new Uint32Array(buffer);HEAPF32=new Float32Array(buffer);HEAPF64=new Float64Array(buffer);HEAP32[0]=255;assert(HEAPU8[0]===255&&HEAPU8[3]===0,"Typed arrays 2 must be run on a little-endian system");Module["HEAP"]=HEAP;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8;Module["HEAP16"]=HEAP16;Module["HEAP32"]=HEAP32;Module["HEAPU8"]=HEAPU8;Module["HEAPU16"]=HEAPU16;Module["HEAPU32"]=HEAPU32;Module["HEAPF32"]=HEAPF32;Module["HEAPF64"]=HEAPF64;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){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);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)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i<array.length){var chr=array[i];HEAP8[buffer+i>>0]=chr;i=i+1}}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){for(var i=0;i<array.length;i++){HEAP8[buffer++>>0]=array[i]}}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1<<bits-1)+value:Math.pow(2,bits)+value}function reSign(value,bits,ignore){if(value<=0){return value}var half=bits<=32?Math.abs(1<<bits-1):Math.pow(2,bits-1);if(value>=half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+267648;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_settings_cpp()})});memoryInitializer="game.js.mem";var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);assert(tempDoublePtr%8==0);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,currArrayBuffer:0,currElementArrayBuffer:0,byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},packAlignment:4,unpackAlignment:4,init:(function(){GL.createLog2ceilLookup(GL.MAX_TEMP_BUFFER_SIZE);GL.miniTempBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i<GL.MINI_TEMP_BUFFER_SIZE;i++){GL.miniTempBufferViews[i]=GL.miniTempBuffer.subarray(0,i+1)}}),recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:(function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret}),MINI_TEMP_BUFFER_SIZE:16,miniTempBuffer:null,miniTempBufferViews:[0],MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:null,createLog2ceilLookup:(function(maxValue){GL.log2ceilLookup=new Uint8Array(maxValue+1);var log2=0;var pow2=1;GL.log2ceilLookup[0]=0;for(var i=1;i<=maxValue;++i){if(i>pow2){pow2<<=1;++log2}GL.log2ceilLookup[i]=log2}}),generateTempBuffers:(function(quads,context){var largestIndex=GL.log2ceilLookup[GL.MAX_TEMP_BUFFER_SIZE];context.tempVertexBufferCounters1=[];context.tempVertexBufferCounters2=[];context.tempVertexBufferCounters1.length=context.tempVertexBufferCounters2.length=largestIndex+1;context.tempVertexBuffers1=[];context.tempVertexBuffers2=[];context.tempVertexBuffers1.length=context.tempVertexBuffers2.length=largestIndex+1;context.tempIndexBuffers=[];context.tempIndexBuffers.length=largestIndex+1;for(var i=0;i<=largestIndex;++i){context.tempIndexBuffers[i]=null;context.tempVertexBufferCounters1[i]=context.tempVertexBufferCounters2[i]=0;var ringbufferLength=GL.numTempVertexBuffersPerSize;context.tempVertexBuffers1[i]=[];context.tempVertexBuffers2[i]=[];var ringbuffer1=context.tempVertexBuffers1[i];var ringbuffer2=context.tempVertexBuffers2[i];ringbuffer1.length=ringbuffer2.length=ringbufferLength;for(var j=0;j<ringbufferLength;++j){ringbuffer1[j]=ringbuffer2[j]=null}}if(quads){context.tempQuadIndexBuffer=GLctx.createBuffer();context.GLctx.bindBuffer(context.GLctx.ELEMENT_ARRAY_BUFFER,context.tempQuadIndexBuffer);var numIndexes=GL.MAX_TEMP_BUFFER_SIZE>>1;var quadIndexes=new Uint16Array(numIndexes);var i=0,v=0;while(1){quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+1;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v;if(i>=numIndexes)break;quadIndexes[i++]=v+2;if(i>=numIndexes)break;quadIndexes[i++]=v+3;if(i>=numIndexes)break;v+=4}context.GLctx.bufferData(context.GLctx.ELEMENT_ARRAY_BUFFER,quadIndexes,context.GLctx.STATIC_DRAW);context.GLctx.bindBuffer(context.GLctx.ELEMENT_ARRAY_BUFFER,null)}}),getTempVertexBuffer:function getTempVertexBuffer(sizeBytes){var idx=GL.log2ceilLookup[sizeBytes];var ringbuffer=GL.currentContext.tempVertexBuffers1[idx];var nextFreeBufferIndex=GL.currentContext.tempVertexBufferCounters1[idx];GL.currentContext.tempVertexBufferCounters1[idx]=GL.currentContext.tempVertexBufferCounters1[idx]+1&GL.numTempVertexBuffersPerSize-1;var vbo=ringbuffer[nextFreeBufferIndex];if(vbo){return vbo}var prevVBO=GLctx.getParameter(GLctx.ARRAY_BUFFER_BINDING);ringbuffer[nextFreeBufferIndex]=GLctx.createBuffer();GLctx.bindBuffer(GLctx.ARRAY_BUFFER,ringbuffer[nextFreeBufferIndex]);GLctx.bufferData(GLctx.ARRAY_BUFFER,1<<idx,GLctx.DYNAMIC_DRAW);GLctx.bindBuffer(GLctx.ARRAY_BUFFER,prevVBO);return ringbuffer[nextFreeBufferIndex]},getTempIndexBuffer:function getTempIndexBuffer(sizeBytes){var idx=GL.log2ceilLookup[sizeBytes];var ibo=GL.currentContext.tempIndexBuffers[idx];if(ibo){return ibo}var prevIBO=GLctx.getParameter(GLctx.ELEMENT_ARRAY_BUFFER_BINDING);GL.currentContext.tempIndexBuffers[idx]=GLctx.createBuffer();GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,GL.currentContext.tempIndexBuffers[idx]);GLctx.bufferData(GLctx.ELEMENT_ARRAY_BUFFER,1<<idx,GLctx.DYNAMIC_DRAW);GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,prevIBO);return GL.currentContext.tempIndexBuffers[idx]},newRenderingFrameStarted:function newRenderingFrameStarted(){if(!GL.currentContext){return}var vb=GL.currentContext.tempVertexBuffers1;GL.currentContext.tempVertexBuffers1=GL.currentContext.tempVertexBuffers2;GL.currentContext.tempVertexBuffers2=vb;vb=GL.currentContext.tempVertexBufferCounters1;GL.currentContext.tempVertexBufferCounters1=GL.currentContext.tempVertexBufferCounters2;GL.currentContext.tempVertexBufferCounters2=vb;var largestIndex=GL.log2ceilLookup[GL.MAX_TEMP_BUFFER_SIZE];for(var i=0;i<=largestIndex;++i){GL.currentContext.tempVertexBufferCounters1[i]=0}},findToken:(function(source,token){function isIdentChar(ch){if(ch>=48&&ch<=57)return true;if(ch>=65&&ch<=90)return true;if(ch>=97&&ch<=122)return true;return false}var i=-1;do{i=source.indexOf(token,i+1);if(i<0){break}if(i>0&&isIdentChar(source[i-1])){continue}i+=token.length;if(i<source.length-1&&isIdentChar(source[i+1])){continue}return true}while(true);return false}),getSource:(function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var frag;if(length){var len=HEAP32[length+i*4>>2];if(len<0){frag=Pointer_stringify(HEAP32[string+i*4>>2])}else{frag=Pointer_stringify(HEAP32[string+i*4>>2],len)}}else{frag=Pointer_stringify(HEAP32[string+i*4>>2])}source+=frag}type=GLctx.getShaderParameter(GL.shaders[shader],35663);if(type==35632){if(GL.findToken(source,"dFdx")||GL.findToken(source,"dFdy")||GL.findToken(source,"fwidth")){source="#extension GL_OES_standard_derivatives : enable\n"+source;var extension=GLctx.getExtension("OES_standard_derivatives")}}return source}),createContext:(function(canvas,webGLContextAttributes){if(typeof webGLContextAttributes.majorVersion==="undefined"&&typeof webGLContextAttributes.minorVersion==="undefined"){webGLContextAttributes.majorVersion=1;webGLContextAttributes.minorVersion=0}var ctx;var errorInfo="?";function onContextCreationError(event){errorInfo=event.statusMessage||errorInfo}try{canvas.addEventListener("webglcontextcreationerror",onContextCreationError,false);try{if(webGLContextAttributes.majorVersion==1&&webGLContextAttributes.minorVersion==0){ctx=canvas.getContext("webgl",webGLContextAttributes)||canvas.getContext("experimental-webgl",webGLContextAttributes)}else if(webGLContextAttributes.majorVersion==2&&webGLContextAttributes.minorVersion==0){ctx=canvas.getContext("webgl2",webGLContextAttributes)||canvas.getContext("experimental-webgl2",webGLContextAttributes)}else{throw"Unsupported WebGL context version "+majorVersion+"."+minorVersion+"!"}}finally{canvas.removeEventListener("webglcontextcreationerror",onContextCreationError,false)}if(!ctx)throw":("}catch(e){Module.print("Could not create canvas: "+[errorInfo,e,JSON.stringify(webGLContextAttributes)]);return 0}if(!ctx)return 0;return GL.registerContext(ctx,webGLContextAttributes)}),registerContext:(function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes["enableExtensionsByDefault"]==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle}),makeContextCurrent:(function(contextHandle){var context=GL.contexts[contextHandle];if(!context)return false;GLctx=Module.ctx=context.GLctx;GL.currentContext=context;return true}),getContext:(function(contextHandle){return GL.contexts[contextHandle]}),deleteContext:(function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null}),initExtensions:(function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;context.maxVertexAttribs=GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS);context.compressionExt=GLctx.getExtension("WEBGL_compressed_texture_s3tc");context.anisotropicExt=GLctx.getExtension("EXT_texture_filter_anisotropic");if(context.version<2){var instancedArraysExt=GLctx.getExtension("ANGLE_instanced_arrays");if(instancedArraysExt){GLctx["vertexAttribDivisor"]=(function(index,divisor){instancedArraysExt["vertexAttribDivisorANGLE"](index,divisor)});GLctx["drawArraysInstanced"]=(function(mode,first,count,primcount){instancedArraysExt["drawArraysInstancedANGLE"](mode,first,count,primcount)});GLctx["drawElementsInstanced"]=(function(mode,count,type,indices,primcount){instancedArraysExt["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)})}var vaoExt=GLctx.getExtension("OES_vertex_array_object");if(vaoExt){GLctx["createVertexArray"]=(function(){return vaoExt["createVertexArrayOES"]()});GLctx["deleteVertexArray"]=(function(vao){vaoExt["deleteVertexArrayOES"](vao)});GLctx["bindVertexArray"]=(function(vao){vaoExt["bindVertexArrayOES"](vao)});GLctx["isVertexArray"]=(function(vao){return vaoExt["isVertexArrayOES"](vao)})}var drawBuffersExt=GLctx.getExtension("WEBGL_draw_buffers");if(drawBuffersExt){GLctx["drawBuffers"]=(function(n,bufs){drawBuffersExt["drawBuffersWEBGL"](n,bufs)})}}var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_frag_depth","EXT_sRGB","WEBGL_draw_buffers","WEBGL_shared_resources","EXT_shader_texture_lod"];function shouldEnableAutomatically(extension){var ret=false;automaticallyEnabledExtensions.forEach((function(include){if(ext.indexOf(include)!=-1){ret=true}}));return ret}var exts=GLctx.getSupportedExtensions();if(exts&&exts.length>0){GLctx.getSupportedExtensions().forEach((function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}}))}}),populateUniformTable:(function(program){var p=GL.programs[program];GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1};var ptable=GL.programInfos[program];var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,GLctx.ACTIVE_UNIFORMS);for(var i=0;i<numUniforms;++i){var u=GLctx.getActiveUniform(p,i);var name=u.name;ptable.maxUniformLength=Math.max(ptable.maxUniformLength,name.length+1);if(name.indexOf("]",name.length-1)!==-1){var ls=name.lastIndexOf("[");name=name.slice(0,ls)}var loc=GLctx.getUniformLocation(p,name);var id=GL.getNewId(GL.uniforms);utable[name]=[u.size,id];GL.uniforms[id]=loc;for(var j=1;j<u.size;++j){var n=name+"["+j+"]";loc=GLctx.getUniformLocation(p,n);id=GL.getNewId(GL.uniforms);GL.uniforms[id]=loc}}})};function _glFlush(){GLctx.flush()}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")})};var TTY={ttys:[],init:(function(){}),shutdown:(function(){}),register:(function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)}),stream_ops:{open:(function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}stream.tty=tty;stream.seekable=false}),close:(function(stream){stream.tty.ops.flush(stream.tty)}),flush:(function(stream){stream.tty.ops.flush(stream.tty)}),read:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(ERRNO_CODES.ENXIO)}for(var i=0;i<length;i++){try{stream.tty.ops.put_char(stream.tty,buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})},default_tty_ops:{get_char:(function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null);if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents}),getFileDataAsTypedArray:(function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)}),expandFileStorage:(function(node,newCapacity){if(node.contents&&node.contents.subarray&&newCapacity>node.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.buffer.byteLength:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.length<newCapacity)node.contents.push(0)}),resizeFileStorage:(function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize}),node_ops:{getattr:(function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}}),lookup:(function(parent,name){throw FS.genericErrors[ERRNO_CODES.ENOENT]}),mknod:(function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)}),rename:(function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir}),unlink:(function(parent,name){delete parent.contents[name]}),rmdir:(function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete parent.contents[name]}),readdir:(function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries}),symlink:(function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node}),readlink:(function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return node.link})},stream_ops:{read:(function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size}),write:(function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}),allocate:(function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(ERRNO_CODES.ENOMEM)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0})}};var IDBFS={dbs:{},indexedDB:(function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret}),DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:(function(mount){return MEMFS.mount.apply(null,arguments)}),syncfs:(function(mount,populate,callback){IDBFS.getLocalSet(mount,(function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,(function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)}))}))}),getDB:(function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}req.onupgradeneeded=(function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}});req.onsuccess=(function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),getLocalSet:(function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return(function(p){return PATH.join2(root,p)})}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})}),getRemoteSet:(function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,(function(err,db){if(err)return callback(err);var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=(function(e){callback(this.error);e.preventDefault()});var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=(function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()})}))}),loadLocalEntry:(function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}}),storeLocalEntry:(function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{encoding:"binary",canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)}),removeLocalEntry:(function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)}),loadRemoteEntry:(function(store,path,callback){var req=store.get(path);req.onsuccess=(function(event){callback(null,event.target.result)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),storeRemoteEntry:(function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),removeRemoteEntry:(function(store,path,callback){var req=store.delete(path);req.onsuccess=(function(){callback(null)});req.onerror=(function(e){callback(this.error);e.preventDefault()})}),reconcile:(function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach((function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~32768;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i<res;i++){buffer[offset+i]=nbuffer[i]}}return res}),write:(function(stream,buffer,offset,length,position){var nbuffer=new Buffer(buffer.subarray(offset,offset+length));var res;try{res=fs.writeSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return res}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:(function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,curr,WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],(function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)}));(mount.opts["blobs"]||[]).forEach((function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])}));(mount.opts["packages"]||[]).forEach((function(pack){pack["metadata"].files.forEach((function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))}))}));return root}),createNode:(function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node}),node_ops:{getattr:(function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}}),setattr:(function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}}),lookup:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}),mknod:(function(parent,name,mode,dev){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rename:(function(oldNode,newDir,newName){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),unlink:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),rmdir:(function(parent,name){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readdir:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),symlink:(function(parent,newName,oldPath){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}),readlink:(function(node){throw new FS.ErrnoError(ERRNO_CODES.EPERM)})},stream_ops:{read:(function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};var _stdin=allocate(1,"i32*",ALLOC_STATIC);var _stdout=allocate(1,"i32*",ALLOC_STATIC);var _stderr=allocate(1,"i32*",ALLOC_STATIC);var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if((flags&2097155)!==0||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}var mounts=FS.getMounts(FS.root.mount);var completed=0;function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=mounts.length){callback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdev:(function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)}),symlink:(function(oldpath,newpath){if(!PATH.resolve(oldpath)){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.symlink(parent,newname,oldpath)}),rename:(function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!old_dir||!new_dir)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(ERRNO_CODES.EXDEV)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}relative=PATH.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}}),rmdir:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}return node.node_ops.readdir(node)}),unlink:(function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){if(err===ERRNO_CODES.EISDIR)err=ERRNO_CODES.EPERM;throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}}),readlink:(function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!link.node_ops.readlink){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return PATH.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))}),stat:(function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(!node.node_ops.getattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return node.node_ops.getattr(node)}),lstat:(function(path){return FS.stat(path,true)}),chmod:(function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})}),lchmod:(function(path,mode){FS.chmod(path,mode,true)}),fchmod:(function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chmod(stream.node,mode)}),chown:(function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}node.node_ops.setattr(node,{timestamp:Date.now()})}),lchown:(function(path,uid,gid){FS.chown(path,uid,gid,true)}),fchown:(function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}FS.chown(stream.node,uid,gid)}),truncate:(function(path,len){if(len<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})}),ftruncate:(function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}FS.truncate(stream.node,len)}),utime:(function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})}),open:(function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;Module["printErr"]("read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream}),close:(function(stream){if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}}),llseek:(function(stream,offset,whence){if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position}),read:(function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.read){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead}),write:(function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.EISDIR)}if(!stream.stream_ops.write){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=true;if(typeof position==="undefined"){position=stream.position;seeking=false}else if(!stream.seekable){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+e.message)}return bytesWritten}),allocate:(function(stream,offset,length){if(offset<0||length<=0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(ERRNO_CODES.EBADF)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP)}stream.stream_ops.allocate(stream,offset,length)}),mmap:(function(stream,buffer,offset,length,position,prot,flags){if((stream.flags&2097155)===1){throw new FS.ErrnoError(ERRNO_CODES.EACCES)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(ERRNO_CODES.ENODEV)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)}),msync:(function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)}),munmap:(function(stream){return 0}),ioctl:(function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(ERRNO_CODES.ENOTTY)}return stream.stream_ops.ioctl(stream,cmd,arg)}),readFile:(function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret}),writeFile:(function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";opts.encoding=opts.encoding||"utf8";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var stream=FS.open(path,opts.flags,opts.mode);if(opts.encoding==="utf8"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,0,opts.canOwn)}else if(opts.encoding==="binary"){FS.write(stream,data,0,data.length,0,opts.canOwn)}FS.close(stream)}),cwd:(function(){return FS.currentPath}),chdir:(function(path){var lookup=FS.lookupPath(path,{follow:true});if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path}),createDefaultDirectories:(function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")}),createDefaultDevices:(function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:(function(){return 0}),write:(function(stream,buffer,offset,length,pos){return length})});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto!=="undefined"){var randomBuffer=new Uint8Array(1);random_device=(function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]})}else if(ENVIRONMENT_IS_NODE){random_device=(function(){return require("crypto").randomBytes(1)[0]})}else{random_device=(function(){return Math.random()*256|0})}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")}),createSpecialDirectories:(function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:(function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:(function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:(function(){return stream.path})}};ret.parent=ret;return ret})};return node})},{},"/proc/self/fd")}),createStandardStreams:(function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");assert(stdin.fd===0,"invalid handle for stdin ("+stdin.fd+")");var stdout=FS.open("/dev/stdout","w");assert(stdout.fd===1,"invalid handle for stdout ("+stdout.fd+")");var stderr=FS.open("/dev/stderr","w");assert(stderr.fd===2,"invalid handle for stderr ("+stderr.fd+")")}),ensureErrnoError:(function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=(function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}});this.setErrno(errno);this.message=ERRNO_MESSAGES[errno]};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[ERRNO_CODES.ENOENT].forEach((function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"}))}),staticInit:(function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS,"NODEFS":NODEFS,"WORKERFS":WORKERFS}}),init:(function(input,output,error){assert(!FS.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()}),quit:(function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}}),getMode:(function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}),joinPath:(function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path}),absolutePath:(function(relative,base){return PATH.resolve(base,relative)}),standardizePath:(function(path){return PATH.normalize(path)}),findObject:(function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}}),analyzePath:(function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret}),createFolder:(function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)}),createPath:(function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current}),createFile:(function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)}),createDataFile:(function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node}),createDevice:(function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:(function(stream){stream.seekable=false}),close:(function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}}),read:(function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(ERRNO_CODES.EAGAIN)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead}),write:(function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}}if(length){stream.node.timestamp=Date.now()}return i})});return FS.mkdev(path,mode,dev)}),createLink:(function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)}),forceLoadFile:(function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(ERRNO_CODES.EIO);return success}),createLazyFile:(function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperty(lazyArray,"length",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})});Object.defineProperty(lazyArray,"chunkSize",{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperty(node,"usedBytes",{get:(function(){return this.contents.length})});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node}),createPreloadedFile:(function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach((function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,(function(){if(onerror)onerror();removeRunDependency(dep)}));handled=true}}));if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,(function(byteArray){processData(byteArray)}),onerror)}else{processData(url)}}),indexedDB:(function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB}),DB_NAME:(function(){return"EM_FS_"+window.location.pathname}),DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror}),loadFilesFromDB:(function(paths,onload,onerror){onload=onload||(function(){});onerror=onerror||(function(){});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach((function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}}));transaction.onerror=onerror};openRequest.onerror=onerror})};function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){setTimeout(Browser.mainLoop.runner,value)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(!window["setImmediate"]){var setImmediates=[];var emscriptenMainLoopMessageId="__emcc";function Browser_setImmediate_messageHandler(event){if(event.source===window&&event.data===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}}window.addEventListener("message",Browser_setImmediate_messageHandler,true);window["setImmediate"]=function Browser_emulated_setImmediate(func){setImmediates.push(func);window.postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){window["setImmediate"](Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();setTimeout(Browser.mainLoop.runner,0);return}if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}GL.newRenderingFrameStarted();if(Browser.mainLoop.method==="timeout"&&Module.ctx){Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter((function(){if(typeof arg!=="undefined"){Runtime.dynCall("vi",func,[arg])}else{Runtime.dynCall("v",func)}}));if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop)return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:(function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++}),resume:(function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()}),updateStatus:(function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}}),runIter:(function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}try{func()}catch(e){if(e instanceof ExitStatus){return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}if(Module["postMainLoop"])Module["postMainLoop"]()})},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:(function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?console.log("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject==="undefined"){console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([(new Uint8Array(byteArray)).buffer],{type:Browser.getMimetype(name)})}}catch(e){Runtime.warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append((new Uint8Array(byteArray)).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=function img_onload(){assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);Module["preloadedImages"][name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=function img_onerror(event){console.log("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;Module["preloadedAudios"][name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;Module["preloadedAudios"][name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",(function(){finish(audio)}),false);audio.onerror=function audio_onerror(event){if(done)return;console.log("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout((function(){finish(audio)}),1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);var canvas=Module["canvas"];function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===canvas||document["mozPointerLockElement"]===canvas||document["webkitPointerLockElement"]===canvas||document["msPointerLockElement"]===canvas}if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(function(){});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(function(){});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",(function(ev){if(!Browser.pointerLock&&canvas.requestPointerLock){canvas.requestPointerLock();ev.preventDefault()}}),false)}}}),createContext:(function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}canvas.style.backgroundColor="black"}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach((function(callback){callback()}));Browser.init()}return ctx}),destroyContext:(function(canvas,useWebGL,setInModule){}),fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:(function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullScreenChange(){Browser.isFullScreen=false;var canvasContainer=canvas.parentNode;if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.cancelFullScreen=document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||document["msExitFullscreen"]||document["exitFullscreen"]||(function(){});canvas.cancelFullScreen=canvas.cancelFullScreen.bind(document);if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullScreen=true;if(Browser.resizeCanvas)Browser.setFullScreenCanvasSize()}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas)Browser.setWindowedCanvasSize()}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullScreen);Browser.updateCanvasDimensions(canvas)}if(!Browser.fullScreenHandlersInstalled){Browser.fullScreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullScreenChange,false);document.addEventListener("mozfullscreenchange",fullScreenChange,false);document.addEventListener("webkitfullscreenchange",fullScreenChange,false);document.addEventListener("MSFullscreenChange",fullScreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullScreen=canvasContainer["requestFullScreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullScreen"]?(function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}):null);if(vrDevice){canvasContainer.requestFullScreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullScreen()}}),nextRAF:0,fakeRequestAnimationFrame:(function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)}),requestAnimationFrame:function requestAnimationFrame(func){if(typeof window==="undefined"){Browser.fakeRequestAnimationFrame(func)}else{if(!window.requestAnimationFrame){window.requestAnimationFrame=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||Browser.fakeRequestAnimationFrame}window.requestAnimationFrame(func)}},safeCallback:(function(func){return(function(){if(!ABORT)return func.apply(null,arguments)})}),allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=false}),resumeAsyncCallbacks:(function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach((function(func){func()}))}}),safeRequestAnimationFrame:(function(func){return Browser.requestAnimationFrame((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}))}),safeSetTimeout:(function(func,timeout){Module["noExitRuntime"]=true;return setTimeout((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}}),timeout)}),safeSetInterval:(function(func,timeout){Module["noExitRuntime"]=true;return setInterval((function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}}),timeout)}),getMimetype:(function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]}),getUserMedia:(function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)}),getMovementX:(function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0}),getMovementY:(function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0}),getMouseWheelDelta:(function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail;break;case"mousewheel":delta=event.wheelDelta;break;case"wheel":delta=event["deltaY"];break;default:throw"unrecognized mouse wheel event: "+event.type}return delta}),mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:(function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}}),xhrLoad:(function(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)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)}),asyncLoad:(function(url,onload,onerror,noRunDep){Browser.xhrLoad(url,(function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(!noRunDep)removeRunDependency("al "+url)}),(function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}}));if(!noRunDep)addRunDependency("al "+url)}),resizeListeners:[],updateResizeListeners:(function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach((function(listener){listener(canvas.width,canvas.height)}))}),setCanvasSize:(function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()}),windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags|8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),setWindowedCanvasSize:(function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];flags=flags&~8388608;HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=flags}Browser.updateResizeListeners()}),updateCanvasDimensions:(function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["webkitFullScreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"]||document["mozFullscreenElement"]||document["fullScreenElement"]||document["fullscreenElement"]||document["msFullScreenElement"]||document["msFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}),wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:(function(){var handle=Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle})};function _malloc(bytes){var ptr=Runtime.dynamicAlloc(bytes+8);return ptr+8&4294967288}Module["_malloc"]=_malloc;function _free(){}Module["_free"]=_free;var _environ=allocate(1,"i32*",ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function _putenv(string){if(string===0){___setErrNo(ERRNO_CODES.EINVAL);return-1}string=Pointer_stringify(string);var splitPoint=string.indexOf("=");if(string===""||string.indexOf("=")===-1){___setErrNo(ERRNO_CODES.EINVAL);return-1}var name=string.slice(0,splitPoint);var value=string.slice(splitPoint+1);if(!(name in ENV)||ENV[name]!==value){ENV[name]=value;___buildEnvironment(ENV)}return 0}function _SDL_RWFromConstMem(mem,size){var id=SDL.rwops.length;SDL.rwops.push({bytes:mem,count:size});return id}function _TTF_FontHeight(font){var fontData=SDL.fonts[font];return fontData.size}function _TTF_SizeText(font,text,w,h){var fontData=SDL.fonts[font];if(w){HEAP32[w>>2]=SDL.estimateTextWidth(fontData,Pointer_stringify(text))}if(h){HEAP32[h>>2]=fontData.size}return 0}function _TTF_RenderText_Solid(font,text,color){text=Pointer_stringify(text)||" ";var fontData=SDL.fonts[font];var w=SDL.estimateTextWidth(fontData,text);var h=fontData.size;var color=SDL.loadColorToCSSRGB(color);var fontString=h+"px "+fontData.name;var surf=SDL.makeSurface(w,h,0,false,"text:"+text);var surfData=SDL.surfaces[surf];surfData.ctx.save();surfData.ctx.fillStyle=color;surfData.ctx.font=fontString;surfData.ctx.textBaseline="top";surfData.ctx.fillText(text,0,0);surfData.ctx.restore();return surf}function _Mix_HaltMusic(){var audio=SDL.music.audio;if(audio){audio.src=audio.src;audio.currentPosition=0;audio.pause()}SDL.music.audio=null;if(SDL.hookMusicFinished){Runtime.dynCall("v",SDL.hookMusicFinished)}return 0}function _Mix_PlayMusic(id,loops){if(SDL.music.audio){if(!SDL.music.audio.paused)Module.printErr("Music is already playing. "+SDL.music.source);SDL.music.audio.pause()}var info=SDL.audios[id];var audio;if(info.webAudio){audio={};audio.resource=info;audio.paused=false;audio.currentPosition=0;audio.play=(function(){SDL.playWebAudio(this)});audio.pause=(function(){SDL.pauseWebAudio(this)})}else if(info.audio){audio=info.audio}audio["onended"]=(function(){if(SDL.music.audio==this)_Mix_HaltMusic()});audio.loop=loops!=0;audio.volume=SDL.music.volume;SDL.music.audio=audio;audio.play();return 0}function _Mix_FreeChunk(id){SDL.audios[id]=null}function _Mix_LoadWAV_RW(rwopsID,freesrc){var rwops=SDL.rwops[rwopsID];if(rwops===undefined)return 0;var filename="";var audio;var webAudio;var bytes;if(rwops.filename!==undefined){filename=PATH.resolve(rwops.filename);var raw=Module["preloadedAudios"][filename];if(!raw){if(raw===null)Module.printErr("Trying to reuse preloaded audio, but freePreloadedMediaOnUse is set!");if(!Module.noAudioDecoding)Runtime.warnOnce("Cannot find preloaded audio "+filename);try{bytes=FS.readFile(filename)}catch(e){Module.printErr("Couldn't find file for: "+filename);return 0}}if(Module["freePreloadedMediaOnUse"]){Module["preloadedAudios"][filename]=null}audio=raw}else if(rwops.bytes!==undefined){if(SDL.webAudioAvailable())bytes=HEAPU8.buffer.slice(rwops.bytes,rwops.bytes+rwops.count);else bytes=HEAPU8.subarray(rwops.bytes,rwops.bytes+rwops.count)}else{return 0}var arrayBuffer=bytes?bytes.buffer||bytes:bytes;var canPlayWithWebAudio=Module["SDL_canPlayWithWebAudio"]===undefined||Module["SDL_canPlayWithWebAudio"](filename,arrayBuffer);if(bytes!==undefined&&SDL.webAudioAvailable()&&canPlayWithWebAudio){audio=undefined;webAudio={};webAudio.onDecodeComplete=[];function onDecodeComplete(data){webAudio.decodedBuffer=data;webAudio.onDecodeComplete.forEach((function(e){e()}));webAudio.onDecodeComplete=undefined}SDL.audioContext["decodeAudioData"](arrayBuffer,onDecodeComplete)}else if(audio===undefined&&bytes){var blob=new Blob([bytes],{type:rwops.mimetype});var url=URL.createObjectURL(blob);audio=new Audio;audio.src=url;audio.mozAudioChannelType="content"}var id=SDL.audios.length;SDL.audios.push({source:filename,audio:audio,webAudio:webAudio});return id}function _Mix_PlayChannel(channel,id,loops){var info=SDL.audios[id];if(!info)return-1;if(!info.audio&&!info.webAudio)return-1;if(channel==-1){for(var i=SDL.channelMinimumNumber;i<SDL.numChannels;i++){if(!SDL.channels[i].audio){channel=i;break}}if(channel==-1){Module.printErr("All "+SDL.numChannels+" channels in use!");return-1}}var channelInfo=SDL.channels[channel];var audio;if(info.webAudio){audio={};audio.resource=info;audio.paused=false;audio.currentPosition=0;audio.play=(function(){SDL.playWebAudio(this)});audio.pause=(function(){SDL.pauseWebAudio(this)})}else{audio=info.audio.cloneNode(true);audio.numChannels=info.audio.numChannels;audio.frequency=info.audio.frequency}audio["onended"]=function SDL_audio_onended(){if(channelInfo.audio==this){channelInfo.audio.paused=true;channelInfo.audio=null}if(SDL.channelFinished)Runtime.getFuncWrapper(SDL.channelFinished,"vi")(channel)};channelInfo.audio=audio;audio.loop=loops!=0;audio.volume=channelInfo.volume;audio.play();return channel}function _SDL_PauseAudio(pauseOn){if(!SDL.audio){return}if(pauseOn){if(SDL.audio.timer!==undefined){clearTimeout(SDL.audio.timer);SDL.audio.numAudioTimersPending=0;SDL.audio.timer=undefined}}else if(!SDL.audio.timer){SDL.audio.numAudioTimersPending=1;SDL.audio.timer=Browser.safeSetTimeout(SDL.audio.caller,1)}SDL.audio.paused=pauseOn}function _SDL_CloseAudio(){if(SDL.audio){_SDL_PauseAudio(1);_free(SDL.audio.buffer);SDL.audio=null;SDL.allocateChannels(0)}}function _SDL_LockSurface(surf){var surfData=SDL.surfaces[surf];surfData.locked++;if(surfData.locked>1)return 0;if(!surfData.buffer){surfData.buffer=_malloc(surfData.width*surfData.height*4);HEAP32[surf+20>>2]=surfData.buffer}HEAP32[surf+20>>2]=surfData.buffer;if(surf==SDL.screen&&Module.screenIsReadOnly&&surfData.image)return 0;if(SDL.defaults.discardOnLock){if(!surfData.image){surfData.image=surfData.ctx.createImageData(surfData.width,surfData.height)}if(!SDL.defaults.opaqueFrontBuffer)return}else{surfData.image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height)}if(surf==SDL.screen&&SDL.defaults.opaqueFrontBuffer){var data=surfData.image.data;var num=data.length;for(var i=0;i<num/4;i++){data[i*4+3]=255}}if(SDL.defaults.copyOnLock&&!SDL.defaults.discardOnLock){if(surfData.isFlagSet(2097152)){throw"CopyOnLock is not supported for SDL_LockSurface with SDL_HWPALETTE flag set"+(new Error).stack}else{HEAPU8.set(surfData.image.data,surfData.buffer)}}return 0}function _SDL_FreeRW(rwopsID){SDL.rwops[rwopsID]=null;while(SDL.rwops.length>0&&SDL.rwops[SDL.rwops.length-1]===null){SDL.rwops.pop()}}function _IMG_Load_RW(rwopsID,freeSrc){try{function cleanup(){if(rwops&&freeSrc)_SDL_FreeRW(rwopsID)}function addCleanup(func){var old=cleanup;cleanup=function added_cleanup(){old();func()}}function callStbImage(func,params){var x=Module["_malloc"](4);var y=Module["_malloc"](4);var comp=Module["_malloc"](4);addCleanup((function(){Module["_free"](x);Module["_free"](y);Module["_free"](comp);if(data)Module["_stbi_image_free"](data)}));var data=Module["_"+func].apply(null,params.concat([x,y,comp,0]));if(!data)return null;return{rawData:true,data:data,width:HEAP32[x>>2],height:HEAP32[y>>2],size:HEAP32[x>>2]*HEAP32[y>>2]*HEAP32[comp>>2],bpp:HEAP32[comp>>2]}}var rwops=SDL.rwops[rwopsID];if(rwops===undefined){return 0}var filename=rwops.filename;if(filename===undefined){Runtime.warnOnce("Only file names that have been preloaded are supported for IMG_Load_RW. Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js), or package files with --use-preload-plugins");return 0}if(!raw){filename=PATH.resolve(filename);var raw=Module["preloadedImages"][filename];if(!raw){if(raw===null)Module.printErr("Trying to reuse preloaded image, but freePreloadedMediaOnUse is set!");Runtime.warnOnce("Cannot find preloaded image "+filename);Runtime.warnOnce("Cannot find preloaded image "+filename+". Consider using STB_IMAGE=1 if you want synchronous image decoding (see settings.js), or package files with --use-preload-plugins");return 0}else if(Module["freePreloadedMediaOnUse"]){Module["preloadedImages"][filename]=null}}var surf=SDL.makeSurface(raw.width,raw.height,0,false,"load:"+filename);var surfData=SDL.surfaces[surf];surfData.ctx.globalCompositeOperation="copy";if(!raw.rawData){surfData.ctx.drawImage(raw,0,0,raw.width,raw.height,0,0,raw.width,raw.height)}else{var imageData=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);if(raw.bpp==4){imageData.data.set(HEAPU8.subarray(raw.data,raw.data+raw.size))}else if(raw.bpp==3){var pixels=raw.size/3;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i<pixels;i++){data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=HEAPU8[sourcePtr++>>0];data[destPtr++]=255}}else if(raw.bpp==1){var pixels=raw.size;var data=imageData.data;var sourcePtr=raw.data;var destPtr=0;for(var i=0;i<pixels;i++){var value=HEAPU8[sourcePtr++>>0];data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=value;data[destPtr++]=255}}else{Module.printErr("cannot handle bpp "+raw.bpp);return 0}surfData.ctx.putImageData(imageData,0,0)}surfData.ctx.globalCompositeOperation="source-over";_SDL_LockSurface(surf);surfData.locked--;if(SDL.GL){surfData.canvas=surfData.ctx=null}return surf}finally{cleanup()}}function _SDL_RWFromFile(_name,mode){var id=SDL.rwops.length;var name=Pointer_stringify(_name);SDL.rwops.push({filename:name,mimetype:Browser.getMimetype(name)});return id}function _IMG_Load(filename){var rwops=_SDL_RWFromFile(filename);var result=_IMG_Load_RW(rwops,1);return result}function _SDL_UpperBlitScaled(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,true)}function _SDL_UpperBlit(src,srcrect,dst,dstrect){return SDL.blitSurface(src,srcrect,dst,dstrect,false)}function _SDL_GetTicks(){return Date.now()-SDL.startTime|0}var SDL={defaults:{width:320,height:200,copyOnLock:true,discardOnLock:false,opaqueFrontBuffer:true},version:null,surfaces:{},canvasPool:[],events:[],fonts:[null],audios:[null],rwops:[null],music:{audio:null,volume:1},mixerFrequency:22050,mixerFormat:32784,mixerNumChannels:2,mixerChunkSize:1024,channelMinimumNumber:0,GL:false,glAttributes:{0:3,1:3,2:2,3:0,4:0,5:1,6:16,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:0,17:0,18:0},keyboardState:null,keyboardMap:{},canRequestFullscreen:false,isRequestingFullscreen:false,textInput:false,startTime:null,initFlags:0,buttonState:0,modState:0,DOMButtons:[0,0,0],DOMEventToSDLEvent:{},TOUCH_DEFAULT_ID:0,eventHandler:null,eventHandlerContext:null,eventHandlerTemp:0,keyCodes:{16:1249,17:1248,18:1250,20:1081,33:1099,34:1102,35:1101,36:1098,37:1104,38:1106,39:1103,40:1105,44:316,45:1097,46:127,91:1251,93:1125,96:1122,97:1113,98:1114,99:1115,100:1116,101:1117,102:1118,103:1119,104:1120,105:1121,106:1109,107:1111,109:1110,110:1123,111:1108,112:1082,113:1083,114:1084,115:1085,116:1086,117:1087,118:1088,119:1089,120:1090,121:1091,122:1092,123:1093,124:1128,125:1129,126:1130,127:1131,128:1132,129:1133,130:1134,131:1135,132:1136,133:1137,134:1138,135:1139,144:1107,160:94,161:33,162:34,163:35,164:36,165:37,166:38,167:95,168:40,169:41,170:42,171:43,172:124,173:45,174:123,175:125,176:126,181:127,182:129,183:128,188:44,190:46,191:47,192:96,219:91,220:92,221:93,222:39,224:1251},scanCodes:{8:42,9:43,13:40,27:41,32:44,35:204,39:53,44:54,46:55,47:56,48:39,49:30,50:31,51:32,52:33,53:34,54:35,55:36,56:37,57:38,58:203,59:51,61:46,91:47,92:49,93:48,96:52,97:4,98:5,99:6,100:7,101:8,102:9,103:10,104:11,105:12,106:13,107:14,108:15,109:16,110:17,111:18,112:19,113:20,114:21,115:22,116:23,117:24,118:25,119:26,120:27,121:28,122:29,127:76,305:224,308:226,316:70},loadRect:(function(rect){return{x:HEAP32[rect+0>>2],y:HEAP32[rect+4>>2],w:HEAP32[rect+8>>2],h:HEAP32[rect+12>>2]}}),updateRect:(function(rect,r){HEAP32[rect>>2]=r.x;HEAP32[rect+4>>2]=r.y;HEAP32[rect+8>>2]=r.w;HEAP32[rect+12>>2]=r.h}),intersectionOfRects:(function(first,second){var leftX=Math.max(first.x,second.x);var leftY=Math.max(first.y,second.y);var rightX=Math.min(first.x+first.w,second.x+second.w);var rightY=Math.min(first.y+first.h,second.y+second.h);return{x:leftX,y:leftY,w:Math.max(leftX,rightX)-leftX,h:Math.max(leftY,rightY)-leftY}}),checkPixelFormat:(function(fmt){}),loadColorToCSSRGB:(function(color){var rgba=HEAP32[color>>2];return"rgb("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+")"}),loadColorToCSSRGBA:(function(color){var rgba=HEAP32[color>>2];return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>24&255)/255+")"}),translateColorToCSSRGBA:(function(rgba){return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>>24)/255+")"}),translateRGBAToCSSRGBA:(function(r,g,b,a){return"rgba("+(r&255)+","+(g&255)+","+(b&255)+","+(a&255)/255+")"}),translateRGBAToColor:(function(r,g,b,a){return r|g<<8|b<<16|a<<24}),makeSurface:(function(width,height,flags,usePageCanvas,source,rmask,gmask,bmask,amask){flags=flags||0;var is_SDL_HWSURFACE=flags&1;var is_SDL_HWPALETTE=flags&2097152;var is_SDL_OPENGL=flags&67108864;var surf=_malloc(60);var pixelFormat=_malloc(44);var bpp=is_SDL_HWPALETTE?1:4;var buffer=0;if(!is_SDL_HWSURFACE&&!is_SDL_OPENGL){buffer=_malloc(width*height*4)}HEAP32[surf>>2]=flags;HEAP32[surf+4>>2]=pixelFormat;HEAP32[surf+8>>2]=width;HEAP32[surf+12>>2]=height;HEAP32[surf+16>>2]=width*bpp;HEAP32[surf+20>>2]=buffer;HEAP32[surf+36>>2]=0;HEAP32[surf+40>>2]=0;HEAP32[surf+44>>2]=Module["canvas"].width;HEAP32[surf+48>>2]=Module["canvas"].height;HEAP32[surf+56>>2]=1;HEAP32[pixelFormat>>2]=-2042224636;HEAP32[pixelFormat+4>>2]=0;HEAP8[pixelFormat+8>>0]=bpp*8;HEAP8[pixelFormat+9>>0]=bpp;HEAP32[pixelFormat+12>>2]=rmask||255;HEAP32[pixelFormat+16>>2]=gmask||65280;HEAP32[pixelFormat+20>>2]=bmask||16711680;HEAP32[pixelFormat+24>>2]=amask||4278190080;SDL.GL=SDL.GL||is_SDL_OPENGL;var canvas;if(!usePageCanvas){if(SDL.canvasPool.length>0){canvas=SDL.canvasPool.pop()}else{canvas=document.createElement("canvas")}canvas.width=width;canvas.height=height}else{canvas=Module["canvas"]}var webGLContextAttributes={antialias:SDL.glAttributes[13]!=0&&SDL.glAttributes[14]>1,depth:SDL.glAttributes[6]>0,stencil:SDL.glAttributes[7]>0};var ctx=Browser.createContext(canvas,is_SDL_OPENGL,usePageCanvas,webGLContextAttributes);SDL.surfaces[surf]={width:width,height:height,canvas:canvas,ctx:ctx,surf:surf,buffer:buffer,pixelFormat:pixelFormat,alpha:255,flags:flags,locked:0,usePageCanvas:usePageCanvas,source:source,isFlagSet:(function(flag){return flags&flag})};return surf}),copyIndexedColorData:(function(surfData,rX,rY,rW,rH){if(!surfData.colors){return}var fullWidth=Module["canvas"].width;var fullHeight=Module["canvas"].height;var startX=rX||0;var startY=rY||0;var endX=(rW||fullWidth-startX)+startX;var endY=(rH||fullHeight-startY)+startY;var buffer=surfData.buffer;if(!surfData.image.data32){surfData.image.data32=new Uint32Array(surfData.image.data.buffer)}var data32=surfData.image.data32;var colors32=surfData.colors32;for(var y=startY;y<endY;++y){var base=y*fullWidth;for(var x=startX;x<endX;++x){data32[base+x]=colors32[HEAPU8[buffer+base+x>>0]]}}}),freeSurface:(function(surf){var refcountPointer=surf+56;var refcount=HEAP32[refcountPointer>>2];if(refcount>1){HEAP32[refcountPointer>>2]=refcount-1;return}var info=SDL.surfaces[surf];if(!info.usePageCanvas&&info.canvas)SDL.canvasPool.push(info.canvas);if(info.buffer)_free(info.buffer);_free(info.pixelFormat);_free(surf);SDL.surfaces[surf]=null;if(surf===SDL.screen){SDL.screen=null}}),blitSurface__deps:["SDL_LockSurface"],blitSurface:(function(src,srcrect,dst,dstrect,scale){var srcData=SDL.surfaces[src];var dstData=SDL.surfaces[dst];var sr,dr;if(srcrect){sr=SDL.loadRect(srcrect)}else{sr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstrect){dr=SDL.loadRect(dstrect)}else{dr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstData.clipRect){var widthScale=!scale||sr.w===0?1:sr.w/dr.w;var heightScale=!scale||sr.h===0?1:sr.h/dr.h;dr=SDL.intersectionOfRects(dstData.clipRect,dr);sr.w=dr.w*widthScale;sr.h=dr.h*heightScale;if(dstrect){SDL.updateRect(dstrect,dr)}}var blitw,blith;if(scale){blitw=dr.w;blith=dr.h}else{blitw=sr.w;blith=sr.h}if(sr.w===0||sr.h===0||blitw===0||blith===0){return 0}var oldAlpha=dstData.ctx.globalAlpha;dstData.ctx.globalAlpha=srcData.alpha/255;dstData.ctx.drawImage(srcData.canvas,sr.x,sr.y,sr.w,sr.h,dr.x,dr.y,blitw,blith);dstData.ctx.globalAlpha=oldAlpha;if(dst!=SDL.screen){Runtime.warnOnce("WARNING: copying canvas data to memory for compatibility");_SDL_LockSurface(dst);dstData.locked--}return 0}),downFingers:{},savedKeydown:null,receiveEvent:(function(event){function unpressAllPressedKeys(){for(var code in SDL.keyboardMap){SDL.events.push({type:"keyup",keyCode:SDL.keyboardMap[code]})}}switch(event.type){case"touchstart":case"touchmove":{event.preventDefault();var touches=[];if(event.type==="touchstart"){for(var i=0;i<event.touches.length;i++){var touch=event.touches[i];if(SDL.downFingers[touch.identifier]!=true){SDL.downFingers[touch.identifier]=true;touches.push(touch)}}}else{touches=event.touches}var firstTouch=touches[0];if(event.type=="touchstart"){SDL.DOMButtons[0]=1}var mouseEventType;switch(event.type){case"touchstart":mouseEventType="mousedown";break;case"touchmove":mouseEventType="mousemove";break}var mouseEvent={type:mouseEventType,button:0,pageX:firstTouch.clientX,pageY:firstTouch.clientY};SDL.events.push(mouseEvent);for(var i=0;i<touches.length;i++){var touch=touches[i];SDL.events.push({type:event.type,touch:touch})}break};case"touchend":{event.preventDefault();for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];if(SDL.downFingers[touch.identifier]===true){delete SDL.downFingers[touch.identifier]}}var mouseEvent={type:"mouseup",button:0,pageX:event.changedTouches[0].clientX,pageY:event.changedTouches[0].clientY};SDL.DOMButtons[0]=0;SDL.events.push(mouseEvent);for(var i=0;i<event.changedTouches.length;i++){var touch=event.changedTouches[i];SDL.events.push({type:"touchend",touch:touch})}break};case"DOMMouseScroll":case"mousewheel":case"wheel":var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);var button=delta>0?3:4;SDL.events.push({type:"mousedown",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"mouseup",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"wheel",deltaX:0,deltaY:delta});event.preventDefault();break;case"mousemove":if(SDL.DOMButtons[0]===1){SDL.events.push({type:"touchmove",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}if(Browser.pointerLock){if("mozMovementX"in event){event["movementX"]=event["mozMovementX"];event["movementY"]=event["mozMovementY"]}if(event["movementX"]==0&&event["movementY"]==0){event.preventDefault();return}};case"keydown":case"keyup":case"keypress":case"mousedown":case"mouseup":if(event.type!=="keydown"||!SDL.unicode&&!SDL.textInput||event.keyCode===8||event.keyCode===9){event.preventDefault()}if(event.type=="mousedown"){SDL.DOMButtons[event.button]=1;SDL.events.push({type:"touchstart",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}else if(event.type=="mouseup"){if(!SDL.DOMButtons[event.button]){return}SDL.events.push({type:"touchend",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}});SDL.DOMButtons[event.button]=0}if(event.type==="keydown"||event.type==="mousedown"){SDL.canRequestFullscreen=true}else if(event.type==="keyup"||event.type==="mouseup"){if(SDL.isRequestingFullscreen){Module["requestFullScreen"](true,true);SDL.isRequestingFullscreen=false}SDL.canRequestFullscreen=false}if(event.type==="keypress"&&SDL.savedKeydown){SDL.savedKeydown.keypressCharCode=event.charCode;SDL.savedKeydown=null}else if(event.type==="keydown"){SDL.savedKeydown=event}if(event.type!=="keypress"||SDL.textInput){SDL.events.push(event)}break;case"mouseout":for(var i=0;i<3;i++){if(SDL.DOMButtons[i]){SDL.events.push({type:"mouseup",button:i,pageX:event.pageX,pageY:event.pageY});SDL.DOMButtons[i]=0}}event.preventDefault();break;case"focus":SDL.events.push(event);event.preventDefault();break;case"blur":SDL.events.push(event);unpressAllPressedKeys();event.preventDefault();break;case"visibilitychange":SDL.events.push({type:"visibilitychange",visible:!document.hidden});unpressAllPressedKeys();event.preventDefault();break;case"unload":if(Browser.mainLoop.runner){SDL.events.push(event);Browser.mainLoop.runner()}return;case"resize":SDL.events.push(event);if(event.preventDefault){event.preventDefault()}break}if(SDL.events.length>=1e4){Module.printErr("SDL event queue full, dropping events");SDL.events=SDL.events.slice(0,1e4)}SDL.flushEventsToHandler();return}),lookupKeyCodeForEvent:(function(event){var code=event.keyCode;if(code>=65&&code<=90){code+=32}else{code=SDL.keyCodes[event.keyCode]||event.keyCode;if(event.location===KeyboardEvent.DOM_KEY_LOCATION_RIGHT&&code>=(224|1<<10)&&code<=(227|1<<10)){code+=4}}return code}),handleEvent:(function(event){if(event.handled)return;event.handled=true;switch(event.type){case"touchstart":case"touchend":case"touchmove":{Browser.calculateMouseEvent(event);break};case"keydown":case"keyup":{var down=event.type==="keydown";var code=SDL.lookupKeyCodeForEvent(event);HEAP8[SDL.keyboardState+code>>0]=down;SDL.modState=(HEAP8[SDL.keyboardState+1248>>0]?64:0)|(HEAP8[SDL.keyboardState+1249>>0]?1:0)|(HEAP8[SDL.keyboardState+1250>>0]?256:0)|(HEAP8[SDL.keyboardState+1252>>0]?128:0)|(HEAP8[SDL.keyboardState+1253>>0]?2:0)|(HEAP8[SDL.keyboardState+1254>>0]?512:0);if(down){SDL.keyboardMap[code]=event.keyCode}else{delete SDL.keyboardMap[code]}break};case"mousedown":case"mouseup":if(event.type=="mousedown"){SDL.buttonState|=1<<event.button}else if(event.type=="mouseup"){SDL.buttonState&=~(1<<event.button)};case"mousemove":{Browser.calculateMouseEvent(event);break}}}),flushEventsToHandler:(function(){if(!SDL.eventHandler)return;while(SDL.pollEvent(SDL.eventHandlerTemp)){Runtime.dynCall("iii",SDL.eventHandler,[SDL.eventHandlerContext,SDL.eventHandlerTemp])}}),pollEvent:(function(ptr){if(SDL.initFlags&512&&SDL.joystickEventState){SDL.queryJoysticks()}if(ptr){while(SDL.events.length>0){if(SDL.makeCEvent(SDL.events.shift(),ptr)!==false)return 1}return 0}else{return SDL.events.length>0}}),makeCEvent:(function(event,ptr){if(typeof event==="number"){_memcpy(ptr,event,28);_free(event);return}SDL.handleEvent(event);switch(event.type){case"keydown":case"keyup":{var down=event.type==="keydown";var key=SDL.lookupKeyCodeForEvent(event);var scan;if(key>=1024){scan=key-1024}else{scan=SDL.scanCodes[key]||key}HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+8>>0]=down?1:0;HEAP8[ptr+9>>0]=0;HEAP32[ptr+12>>2]=scan;HEAP32[ptr+16>>2]=key;HEAP16[ptr+20>>1]=SDL.modState;HEAP32[ptr+24>>2]=event.keypressCharCode||key;break};case"keypress":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];var cStr=intArrayFromString(String.fromCharCode(event.charCode));for(var i=0;i<cStr.length;++i){HEAP8[ptr+(8+i)>>0]=cStr[i]}break};case"mousedown":case"mouseup":case"mousemove":{if(event.type!="mousemove"){var down=event.type==="mousedown";HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP8[ptr+16>>0]=event.button+1;HEAP8[ptr+17>>0]=down?1:0;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY}else{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP32[ptr+16>>2]=SDL.buttonState;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY;HEAP32[ptr+28>>2]=Browser.mouseMovementX;HEAP32[ptr+32>>2]=Browser.mouseMovementY}break};case"wheel":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+16>>2]=event.deltaX;HEAP32[ptr+20>>2]=event.deltaY;break};case"touchstart":case"touchend":case"touchmove":{var touch=event.touch;if(!Browser.touches[touch.identifier])break;var w=Module["canvas"].width;var h=Module["canvas"].height;var x=Browser.touches[touch.identifier].x/w;var y=Browser.touches[touch.identifier].y/h;var lx=Browser.lastTouches[touch.identifier].x/w;var ly=Browser.lastTouches[touch.identifier].y/h;var dx=x-lx;var dy=y-ly;if(touch["deviceID"]===undefined)touch.deviceID=SDL.TOUCH_DEFAULT_ID;if(dx===0&&dy===0&&event.type==="touchmove")return false;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=_SDL_GetTicks();tempI64=[touch.deviceID>>>0,(tempDouble=touch.deviceID,+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+8>>2]=tempI64[0],HEAP32[ptr+12>>2]=tempI64[1];tempI64=[touch.identifier>>>0,(tempDouble=touch.identifier,+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+16>>2]=tempI64[0],HEAP32[ptr+20>>2]=tempI64[1];HEAPF32[ptr+24>>2]=x;HEAPF32[ptr+28>>2]=y;HEAPF32[ptr+32>>2]=dx;HEAPF32[ptr+36>>2]=dy;if(touch.force!==undefined){HEAPF32[ptr+40>>2]=touch.force}else{HEAPF32[ptr+40>>2]=event.type=="touchend"?0:1}break};case"unload":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];break};case"resize":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=event.w;HEAP32[ptr+8>>2]=event.h;break};case"joystick_button_up":case"joystick_button_down":{var state=event.type==="joystick_button_up"?0:1;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.button;HEAP8[ptr+6>>0]=state;break};case"joystick_axis_motion":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.axis;HEAP32[ptr+8>>2]=SDL.joystickAxisValueConversion(event.value);break};case"focus":{var SDL_WINDOWEVENT_FOCUS_GAINED=12;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_GAINED;break};case"blur":{var SDL_WINDOWEVENT_FOCUS_LOST=13;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_LOST;break};case"visibilitychange":{var SDL_WINDOWEVENT_SHOWN=1;var SDL_WINDOWEVENT_HIDDEN=2;var visibilityEventID=event.visible?SDL_WINDOWEVENT_SHOWN:SDL_WINDOWEVENT_HIDDEN;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=visibilityEventID;break};default:throw"Unhandled SDL event: "+event.type}}),estimateTextWidth:(function(fontData,text){var h=fontData.size;var fontString=h+"px "+fontData.name;var tempCtx=SDL.ttfContext;tempCtx.save();tempCtx.font=fontString;var ret=tempCtx.measureText(text).width|0;tempCtx.restore();return ret}),allocateChannels:(function(num){if(SDL.numChannels&&SDL.numChannels>=num&&num!=0)return;SDL.numChannels=num;SDL.channels=[];for(var i=0;i<num;i++){SDL.channels[i]={audio:null,volume:1}}}),setGetVolume:(function(info,volume){if(!info)return 0;var ret=info.volume*128;if(volume!=-1){info.volume=Math.min(Math.max(volume,0),128)/128;if(info.audio){try{info.audio.volume=info.volume;if(info.audio.webAudioGainNode)info.audio.webAudioGainNode["gain"]["value"]=info.volume}catch(e){Module.printErr("setGetVolume failed to set audio volume: "+e)}}}return ret}),setPannerPosition:(function(info,x,y,z){if(!info)return;if(info.audio){if(info.audio.webAudioPannerNode){info.audio.webAudioPannerNode["setPosition"](x,y,z)}}}),playWebAudio:(function(audio){if(!audio)return;if(audio.webAudioNode)return;if(!SDL.webAudioAvailable())return;try{var webAudio=audio.resource.webAudio;audio.paused=false;if(!webAudio.decodedBuffer){if(webAudio.onDecodeComplete===undefined)abort("Cannot play back audio object that was not loaded");webAudio.onDecodeComplete.push((function(){if(!audio.paused)SDL.playWebAudio(audio)}));return}audio.webAudioNode=SDL.audioContext["createBufferSource"]();audio.webAudioNode["buffer"]=webAudio.decodedBuffer;audio.webAudioNode["loop"]=audio.loop;audio.webAudioNode["onended"]=(function(){audio["onended"]()});audio.webAudioPannerNode=SDL.audioContext["createPanner"]();audio.webAudioPannerNode["panningModel"]="equalpower";audio.webAudioGainNode=SDL.audioContext["createGain"]();audio.webAudioGainNode["gain"]["value"]=audio.volume;audio.webAudioNode["connect"](audio.webAudioPannerNode);audio.webAudioPannerNode["connect"](audio.webAudioGainNode);audio.webAudioGainNode["connect"](SDL.audioContext["destination"]);audio.webAudioNode["start"](0,audio.currentPosition);audio.startTime=SDL.audioContext["currentTime"]-audio.currentPosition}catch(e){Module.printErr("playWebAudio failed: "+e)}}),pauseWebAudio:(function(audio){if(!audio)return;if(audio.webAudioNode){try{audio.currentPosition=(SDL.audioContext["currentTime"]-audio.startTime)%audio.resource.webAudio.decodedBuffer.duration;audio.webAudioNode["onended"]=undefined;audio.webAudioNode.stop();audio.webAudioNode=undefined}catch(e){Module.printErr("pauseWebAudio failed: "+e)}}audio.paused=true}),openAudioContext:(function(){if(!SDL.audioContext){if(typeof AudioContext!=="undefined")SDL.audioContext=new AudioContext;else if(typeof webkitAudioContext!=="undefined")SDL.audioContext=new webkitAudioContext}}),webAudioAvailable:(function(){return!!SDL.audioContext}),fillWebAudioBufferFromHeap:(function(heapPtr,sizeSamplesPerChannel,dstAudioBuffer){var numChannels=SDL.audio.channels;for(var c=0;c<numChannels;++c){var channelData=dstAudioBuffer["getChannelData"](c);if(channelData.length!=sizeSamplesPerChannel){throw"Web Audio output buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+sizeSamplesPerChannel+" samples!"}if(SDL.audio.format==32784){for(var j=0;j<sizeSamplesPerChannel;++j){channelData[j]=HEAP16[heapPtr+(j*numChannels+c)*2>>1]/32768}}else if(SDL.audio.format==8){for(var j=0;j<sizeSamplesPerChannel;++j){var v=HEAP8[heapPtr+(j*numChannels+c)>>0];channelData[j]=(v>=0?v-128:v+128)/128}}}}),debugSurface:(function(surfData){console.log("dumping surface "+[surfData.surf,surfData.source,surfData.width,surfData.height]);var image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);var data=image.data;var num=Math.min(surfData.width,surfData.height);for(var i=0;i<num;i++){console.log(" diagonal "+i+":"+[data[i*surfData.width*4+i*4+0],data[i*surfData.width*4+i*4+1],data[i*surfData.width*4+i*4+2],data[i*surfData.width*4+i*4+3]])}}),joystickEventState:1,lastJoystickState:{},joystickNamePool:{},recordJoystickState:(function(joystick,state){var buttons=new Array(state.buttons.length);for(var i=0;i<state.buttons.length;i++){buttons[i]=SDL.getJoystickButtonState(state.buttons[i])}SDL.lastJoystickState[joystick]={buttons:buttons,axes:state.axes.slice(0),timestamp:state.timestamp,index:state.index,id:state.id}}),getJoystickButtonState:(function(button){if(typeof button==="object"){return button.pressed}else{return button>0}}),queryJoysticks:(function(){for(var joystick in SDL.lastJoystickState){var state=SDL.getGamepad(joystick-1);var prevState=SDL.lastJoystickState[joystick];if(typeof state.timestamp!=="number"||state.timestamp!==prevState.timestamp){var i;for(i=0;i<state.buttons.length;i++){var buttonState=SDL.getJoystickButtonState(state.buttons[i]);if(buttonState!==prevState.buttons[i]){SDL.events.push({type:buttonState?"joystick_button_down":"joystick_button_up",joystick:joystick,index:joystick-1,button:i})}}for(i=0;i<state.axes.length;i++){if(state.axes[i]!==prevState.axes[i]){SDL.events.push({type:"joystick_axis_motion",joystick:joystick,index:joystick-1,axis:i,value:state.axes[i]})}}SDL.recordJoystickState(joystick,state)}}}),joystickAxisValueConversion:(function(value){return Math.ceil((value+1)*32767.5-32768)}),getGamepads:(function(){var fcn=navigator.getGamepads||navigator.webkitGamepads||navigator.mozGamepads||navigator.gamepads||navigator.webkitGetGamepads;if(fcn!==undefined){return fcn.apply(navigator)}else{return[]}}),getGamepad:(function(deviceIndex){var gamepads=SDL.getGamepads();if(gamepads.length>deviceIndex&&deviceIndex>=0){return gamepads[deviceIndex]}return null})};function _Mix_VolumeMusic(volume){return SDL.setGetVolume(SDL.music,volume)}Module["_i64Subtract"]=_i64Subtract;function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}Module["_i64Add"]=_i64Add;function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0){if(info.destructor){Runtime.dynCall("vi",info.destructor,[ptr])}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(ptr));throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(asm["setTempRet0"](0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(asm["setTempRet0"](0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(asm["setTempRet0"](typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(asm["setTempRet0"](throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _Mix_OpenAudio(frequency,format,channels,chunksize){SDL.openAudioContext();SDL.allocateChannels(32);SDL.mixerFrequency=frequency;SDL.mixerFormat=format;SDL.mixerNumChannels=channels;SDL.mixerChunkSize=chunksize;return 0}function _Mix_Volume(channel,volume){if(channel==-1){for(var i=0;i<SDL.numChannels-1;i++){_Mix_Volume(i,volume)}return _Mix_Volume(SDL.numChannels-1,volume)}return SDL.setGetVolume(SDL.channels[channel],volume)}function _SDL_JoystickOpen(deviceIndex){var gamepad=SDL.getGamepad(deviceIndex);if(gamepad){var joystick=deviceIndex+1;SDL.recordJoystickState(joystick,gamepad);return joystick}return 0}function _glBindTexture(target,texture){GLctx.bindTexture(target,texture?GL.textures[texture]:null)}var GLImmediate={MapTreeLib:null,spawnMapTreeLib:(function(){function CNaiveListMap(){var list=[];this.insert=function CNaiveListMap_insert(key,val){if(this.contains(key|0))return false;list.push([key,val]);return true};var __contains_i;this.contains=function CNaiveListMap_contains(key){for(__contains_i=0;__contains_i<list.length;++__contains_i){if(list[__contains_i][0]===key)return true}return false};var __get_i;this.get=function CNaiveListMap_get(key){for(__get_i=0;__get_i<list.length;++__get_i){if(list[__get_i][0]===key)return list[__get_i][1]}return undefined}}function CMapTree(){function CNLNode(){var map=new CNaiveListMap;this.child=function CNLNode_child(keyFrag){if(!map.contains(keyFrag|0)){map.insert(keyFrag|0,new CNLNode)}return map.get(keyFrag|0)};this.value=undefined;this.get=function CNLNode_get(){return this.value};this.set=function CNLNode_set(val){this.value=val}}function CKeyView(root){var cur;this.reset=function CKeyView_reset(){cur=root;return this};this.reset();this.next=function CKeyView_next(keyFrag){cur=cur.child(keyFrag);return this};this.get=function CKeyView_get(){return cur.get()};this.set=function CKeyView_set(val){cur.set(val)}}var root;var staticKeyView;this.createKeyView=function CNLNode_createKeyView(){return new CKeyView(root)};this.clear=function CNLNode_clear(){root=new CNLNode;staticKeyView=this.createKeyView()};this.clear();this.getStaticKeyView=function CNLNode_getStaticKeyView(){staticKeyView.reset();return staticKeyView}}return{create:(function(){return new CMapTree})}}),TexEnvJIT:null,spawnTexEnvJIT:(function(){var GL_TEXTURE0=33984;var GL_TEXTURE_1D=3552;var GL_TEXTURE_2D=3553;var GL_TEXTURE_3D=32879;var GL_TEXTURE_CUBE_MAP=34067;var GL_TEXTURE_ENV=8960;var GL_TEXTURE_ENV_MODE=8704;var GL_TEXTURE_ENV_COLOR=8705;var GL_TEXTURE_CUBE_MAP_POSITIVE_X=34069;var GL_TEXTURE_CUBE_MAP_NEGATIVE_X=34070;var GL_TEXTURE_CUBE_MAP_POSITIVE_Y=34071;var GL_TEXTURE_CUBE_MAP_NEGATIVE_Y=34072;var GL_TEXTURE_CUBE_MAP_POSITIVE_Z=34073;var GL_TEXTURE_CUBE_MAP_NEGATIVE_Z=34074;var GL_SRC0_RGB=34176;var GL_SRC1_RGB=34177;var GL_SRC2_RGB=34178;var GL_SRC0_ALPHA=34184;var GL_SRC1_ALPHA=34185;var GL_SRC2_ALPHA=34186;var GL_OPERAND0_RGB=34192;var GL_OPERAND1_RGB=34193;var GL_OPERAND2_RGB=34194;var GL_OPERAND0_ALPHA=34200;var GL_OPERAND1_ALPHA=34201;var GL_OPERAND2_ALPHA=34202;var GL_COMBINE_RGB=34161;var GL_COMBINE_ALPHA=34162;var GL_RGB_SCALE=34163;var GL_ALPHA_SCALE=3356;var GL_ADD=260;var GL_BLEND=3042;var GL_REPLACE=7681;var GL_MODULATE=8448;var GL_DECAL=8449;var GL_COMBINE=34160;var GL_SUBTRACT=34023;var GL_INTERPOLATE=34165;var GL_TEXTURE=5890;var GL_CONSTANT=34166;var GL_PRIMARY_COLOR=34167;var GL_PREVIOUS=34168;var GL_SRC_COLOR=768;var GL_ONE_MINUS_SRC_COLOR=769;var GL_SRC_ALPHA=770;var GL_ONE_MINUS_SRC_ALPHA=771;var GL_RGB=6407;var GL_RGBA=6408;var TEXENVJIT_NAMESPACE_PREFIX="tej_";var TEX_UNIT_UNIFORM_PREFIX="uTexUnit";var TEX_COORD_VARYING_PREFIX="vTexCoord";var PRIM_COLOR_VARYING="vPrimColor";var TEX_MATRIX_UNIFORM_PREFIX="uTexMatrix";var s_texUnits=null;var s_activeTexture=0;var s_requiredTexUnitsForPass=[];function abort(info){assert(false,"[TexEnvJIT] ABORT: "+info)}function abort_noSupport(info){abort("No support: "+info)}function abort_sanity(info){abort("Sanity failure: "+info)}function genTexUnitSampleExpr(texUnitID){var texUnit=s_texUnits[texUnitID];var texType=texUnit.getTexType();var func=null;switch(texType){case GL_TEXTURE_1D:func="texture2D";break;case GL_TEXTURE_2D:func="texture2D";break;case GL_TEXTURE_3D:return abort_noSupport("No support for 3D textures.");case GL_TEXTURE_CUBE_MAP:func="textureCube";break;default:return abort_sanity("Unknown texType: 0x"+texType.toString(16))}var texCoordExpr=TEX_COORD_VARYING_PREFIX+texUnitID;if(TEX_MATRIX_UNIFORM_PREFIX!=null){texCoordExpr="("+TEX_MATRIX_UNIFORM_PREFIX+texUnitID+" * "+texCoordExpr+")"}return func+"("+TEX_UNIT_UNIFORM_PREFIX+texUnitID+", "+texCoordExpr+".xy)"}function getTypeFromCombineOp(op){switch(op){case GL_SRC_COLOR:case GL_ONE_MINUS_SRC_COLOR:return"vec3";case GL_SRC_ALPHA:case GL_ONE_MINUS_SRC_ALPHA:return"float"}return abort_noSupport("Unsupported combiner op: 0x"+op.toString(16))}function getCurTexUnit(){return s_texUnits[s_activeTexture]}function genCombinerSourceExpr(texUnitID,constantExpr,previousVar,src,op){var srcExpr=null;switch(src){case GL_TEXTURE:srcExpr=genTexUnitSampleExpr(texUnitID);break;case GL_CONSTANT:srcExpr=constantExpr;break;case GL_PRIMARY_COLOR:srcExpr=PRIM_COLOR_VARYING;break;case GL_PREVIOUS:srcExpr=previousVar;break;default:return abort_noSupport("Unsupported combiner src: 0x"+src.toString(16))}var expr=null;switch(op){case GL_SRC_COLOR:expr=srcExpr+".rgb";break;case GL_ONE_MINUS_SRC_COLOR:expr="(vec3(1.0) - "+srcExpr+".rgb)";break;case GL_SRC_ALPHA:expr=srcExpr+".a";break;case GL_ONE_MINUS_SRC_ALPHA:expr="(1.0 - "+srcExpr+".a)";break;default:return abort_noSupport("Unsupported combiner op: 0x"+op.toString(16))}return expr}function valToFloatLiteral(val){if(val==Math.round(val))return val+".0";return val}function CTexEnv(){this.mode=GL_MODULATE;this.colorCombiner=GL_MODULATE;this.alphaCombiner=GL_MODULATE;this.colorScale=1;this.alphaScale=1;this.envColor=[0,0,0,0];this.colorSrc=[GL_TEXTURE,GL_PREVIOUS,GL_CONSTANT];this.alphaSrc=[GL_TEXTURE,GL_PREVIOUS,GL_CONSTANT];this.colorOp=[GL_SRC_COLOR,GL_SRC_COLOR,GL_SRC_ALPHA];this.alphaOp=[GL_SRC_ALPHA,GL_SRC_ALPHA,GL_SRC_ALPHA];this.traverseKey={7681:0,8448:1,260:2,3042:3,8449:4,34160:5,34023:3,34165:4,5890:0,34166:1,34167:2,34168:3,768:0,769:1,770:2,768:3};this.key0=-1;this.key1=0;this.key2=0;this.computeKey0=(function(){var k=this.traverseKey;var key=k[this.mode]*1638400;key+=k[this.colorCombiner]*327680;key+=k[this.alphaCombiner]*65536;key+=(this.colorScale-1)*16384;key+=(this.alphaScale-1)*4096;key+=k[this.colorSrc[0]]*1024;key+=k[this.colorSrc[1]]*256;key+=k[this.colorSrc[2]]*64;key+=k[this.alphaSrc[0]]*16;key+=k[this.alphaSrc[1]]*4;key+=k[this.alphaSrc[2]];return key});this.computeKey1=(function(){var k=this.traverseKey;key=k[this.colorOp[0]]*4096;key+=k[this.colorOp[1]]*1024;key+=k[this.colorOp[2]]*256;key+=k[this.alphaOp[0]]*16;key+=k[this.alphaOp[1]]*4;key+=k[this.alphaOp[2]];return key});this.computeKey2=(function(){return this.envColor[0]*16777216+this.envColor[1]*65536+this.envColor[2]*256+1+this.envColor[3]});this.recomputeKey=(function(){this.key0=this.computeKey0();this.key1=this.computeKey1();this.key2=this.computeKey2()});this.invalidateKey=(function(){this.key0=-1;GLImmediate.currentRenderer=null})}function CTexUnit(){this.env=new CTexEnv;this.enabled_tex1D=false;this.enabled_tex2D=false;this.enabled_tex3D=false;this.enabled_texCube=false;this.texTypesEnabled=0;this.traverseState=function CTexUnit_traverseState(keyView){if(this.texTypesEnabled){if(this.env.key0==-1){this.env.recomputeKey()}keyView.next(this.texTypesEnabled|this.env.key0<<4);keyView.next(this.env.key1);keyView.next(this.env.key2)}else{keyView.next(0)}}}CTexUnit.prototype.enabled=function CTexUnit_enabled(){return this.texTypesEnabled};CTexUnit.prototype.genPassLines=function CTexUnit_genPassLines(passOutputVar,passInputVar,texUnitID){if(!this.enabled()){return["vec4 "+passOutputVar+" = "+passInputVar+";"]}var lines=this.env.genPassLines(passOutputVar,passInputVar,texUnitID).join("\n");var texLoadLines="";var texLoadRegex=/(texture.*?\(.*?\))/g;var loadCounter=0;var load;while(load=texLoadRegex.exec(lines)){var texLoadExpr=load[1];var secondOccurrence=lines.slice(load.index+1).indexOf(texLoadExpr);if(secondOccurrence!=-1){var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var texLoadVar=prefix+"texload"+loadCounter++;var texLoadLine="vec4 "+texLoadVar+" = "+texLoadExpr+";\n";texLoadLines+=texLoadLine+"\n";lines=lines.split(texLoadExpr).join(texLoadVar);texLoadRegex=/(texture.*\(.*\))/g}}return[texLoadLines+lines]};CTexUnit.prototype.getTexType=function CTexUnit_getTexType(){if(this.enabled_texCube){return GL_TEXTURE_CUBE_MAP}else if(this.enabled_tex3D){return GL_TEXTURE_3D}else if(this.enabled_tex2D){return GL_TEXTURE_2D}else if(this.enabled_tex1D){return GL_TEXTURE_1D}return 0};CTexEnv.prototype.genPassLines=function CTexEnv_genPassLines(passOutputVar,passInputVar,texUnitID){switch(this.mode){case GL_REPLACE:{return["vec4 "+passOutputVar+" = "+genTexUnitSampleExpr(texUnitID)+";"]};case GL_ADD:{var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var texVar=prefix+"tex";var colorVar=prefix+"color";var alphaVar=prefix+"alpha";return["vec4 "+texVar+" = "+genTexUnitSampleExpr(texUnitID)+";","vec3 "+colorVar+" = "+passInputVar+".rgb + "+texVar+".rgb;","float "+alphaVar+" = "+passInputVar+".a * "+texVar+".a;","vec4 "+passOutputVar+" = vec4("+colorVar+", "+alphaVar+");"]};case GL_MODULATE:{var line=["vec4 "+passOutputVar," = ",passInputVar," * ",genTexUnitSampleExpr(texUnitID),";"];return[line.join("")]};case GL_DECAL:{var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var texVar=prefix+"tex";var colorVar=prefix+"color";var alphaVar=prefix+"alpha";return["vec4 "+texVar+" = "+genTexUnitSampleExpr(texUnitID)+";",["vec3 "+colorVar+" = ",passInputVar+".rgb * (1.0 - "+texVar+".a)"," + ",texVar+".rgb * "+texVar+".a",";"].join(""),"float "+alphaVar+" = "+passInputVar+".a;","vec4 "+passOutputVar+" = vec4("+colorVar+", "+alphaVar+");"]};case GL_BLEND:{var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var texVar=prefix+"tex";var colorVar=prefix+"color";var alphaVar=prefix+"alpha";return["vec4 "+texVar+" = "+genTexUnitSampleExpr(texUnitID)+";",["vec3 "+colorVar+" = ",passInputVar+".rgb * (1.0 - "+texVar+".rgb)"," + ",PRIM_COLOR_VARYING+".rgb * "+texVar+".rgb",";"].join(""),"float "+alphaVar+" = "+texVar+".a;","vec4 "+passOutputVar+" = vec4("+colorVar+", "+alphaVar+");"]};case GL_COMBINE:{var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var colorVar=prefix+"color";var alphaVar=prefix+"alpha";var colorLines=this.genCombinerLines(true,colorVar,passInputVar,texUnitID,this.colorCombiner,this.colorSrc,this.colorOp);var alphaLines=this.genCombinerLines(false,alphaVar,passInputVar,texUnitID,this.alphaCombiner,this.alphaSrc,this.alphaOp);var scaledColor=this.colorScale==1?colorVar:colorVar+" * "+valToFloatLiteral(this.colorScale);var scaledAlpha=this.alphaScale==1?alphaVar:alphaVar+" * "+valToFloatLiteral(this.alphaScale);var line=["vec4 "+passOutputVar," = ","vec4(",scaledColor,", ",scaledAlpha,")",";"].join("");return[].concat(colorLines,alphaLines,[line])}}return abort_noSupport("Unsupported TexEnv mode: 0x"+this.mode.toString(16))};CTexEnv.prototype.genCombinerLines=function CTexEnv_getCombinerLines(isColor,outputVar,passInputVar,texUnitID,combiner,srcArr,opArr){var argsNeeded=null;switch(combiner){case GL_REPLACE:argsNeeded=1;break;case GL_MODULATE:case GL_ADD:case GL_SUBTRACT:argsNeeded=2;break;case GL_INTERPOLATE:argsNeeded=3;break;default:return abort_noSupport("Unsupported combiner: 0x"+combiner.toString(16))}var constantExpr=["vec4(",valToFloatLiteral(this.envColor[0]),", ",valToFloatLiteral(this.envColor[1]),", ",valToFloatLiteral(this.envColor[2]),", ",valToFloatLiteral(this.envColor[3]),")"].join("");var src0Expr=argsNeeded>=1?genCombinerSourceExpr(texUnitID,constantExpr,passInputVar,srcArr[0],opArr[0]):null;var src1Expr=argsNeeded>=2?genCombinerSourceExpr(texUnitID,constantExpr,passInputVar,srcArr[1],opArr[1]):null;var src2Expr=argsNeeded>=3?genCombinerSourceExpr(texUnitID,constantExpr,passInputVar,srcArr[2],opArr[2]):null;var outputType=isColor?"vec3":"float";var lines=null;switch(combiner){case GL_REPLACE:{var line=[outputType+" "+outputVar," = ",src0Expr,";"];lines=[line.join("")];break};case GL_MODULATE:{var line=[outputType+" "+outputVar+" = ",src0Expr+" * "+src1Expr,";"];lines=[line.join("")];break};case GL_ADD:{var line=[outputType+" "+outputVar+" = ",src0Expr+" + "+src1Expr,";"];lines=[line.join("")];break};case GL_SUBTRACT:{var line=[outputType+" "+outputVar+" = ",src0Expr+" - "+src1Expr,";"];lines=[line.join("")];break};case GL_INTERPOLATE:{var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+texUnitID+"_";var arg2Var=prefix+"colorSrc2";var arg2Line=getTypeFromCombineOp(this.colorOp[2])+" "+arg2Var+" = "+src2Expr+";";var line=[outputType+" "+outputVar," = ",src0Expr+" * "+arg2Var," + ",src1Expr+" * (1.0 - "+arg2Var+")",";"];lines=[arg2Line,line.join("")];break};default:return abort_sanity("Unmatched TexEnv.colorCombiner?")}return lines};return{init:(function(gl,specifiedMaxTextureImageUnits){var maxTexUnits=0;if(specifiedMaxTextureImageUnits){maxTexUnits=specifiedMaxTextureImageUnits}else if(gl){maxTexUnits=gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)}s_texUnits=[];for(var i=0;i<maxTexUnits;i++){s_texUnits.push(new CTexUnit)}}),setGLSLVars:(function(uTexUnitPrefix,vTexCoordPrefix,vPrimColor,uTexMatrixPrefix){TEX_UNIT_UNIFORM_PREFIX=uTexUnitPrefix;TEX_COORD_VARYING_PREFIX=vTexCoordPrefix;PRIM_COLOR_VARYING=vPrimColor;TEX_MATRIX_UNIFORM_PREFIX=uTexMatrixPrefix}),genAllPassLines:(function(resultDest,indentSize){indentSize=indentSize||0;s_requiredTexUnitsForPass.length=0;var lines=[];var lastPassVar=PRIM_COLOR_VARYING;for(var i=0;i<s_texUnits.length;i++){if(!s_texUnits[i].enabled())continue;s_requiredTexUnitsForPass.push(i);var prefix=TEXENVJIT_NAMESPACE_PREFIX+"env"+i+"_";var passOutputVar=prefix+"result";var newLines=s_texUnits[i].genPassLines(passOutputVar,lastPassVar,i);lines=lines.concat(newLines,[""]);lastPassVar=passOutputVar}lines.push(resultDest+" = "+lastPassVar+";");var indent="";for(var i=0;i<indentSize;i++)indent+=" ";var output=indent+lines.join("\n"+indent);return output}),getUsedTexUnitList:(function(){return s_requiredTexUnitsForPass}),traverseState:(function(keyView){for(var i=0;i<s_texUnits.length;i++){s_texUnits[i].traverseState(keyView)}}),getTexUnitType:(function(texUnitID){return s_texUnits[texUnitID].getTexType()}),hook_activeTexture:(function(texture){s_activeTexture=texture-GL_TEXTURE0}),hook_enable:(function(cap){var cur=getCurTexUnit();switch(cap){case GL_TEXTURE_1D:if(!cur.enabled_tex1D){GLImmediate.currentRenderer=null;cur.enabled_tex1D=true;cur.texTypesEnabled|=1}break;case GL_TEXTURE_2D:if(!cur.enabled_tex2D){GLImmediate.currentRenderer=null;cur.enabled_tex2D=true;cur.texTypesEnabled|=2}break;case GL_TEXTURE_3D:if(!cur.enabled_tex3D){GLImmediate.currentRenderer=null;cur.enabled_tex3D=true;cur.texTypesEnabled|=4}break;case GL_TEXTURE_CUBE_MAP:if(!cur.enabled_texCube){GLImmediate.currentRenderer=null;cur.enabled_texCube=true;cur.texTypesEnabled|=8}break}}),hook_disable:(function(cap){var cur=getCurTexUnit();switch(cap){case GL_TEXTURE_1D:if(cur.enabled_tex1D){GLImmediate.currentRenderer=null;cur.enabled_tex1D=false;cur.texTypesEnabled&=~1}break;case GL_TEXTURE_2D:if(cur.enabled_tex2D){GLImmediate.currentRenderer=null;cur.enabled_tex2D=false;cur.texTypesEnabled&=~2}break;case GL_TEXTURE_3D:if(cur.enabled_tex3D){GLImmediate.currentRenderer=null;cur.enabled_tex3D=false;cur.texTypesEnabled&=~4}break;case GL_TEXTURE_CUBE_MAP:if(cur.enabled_texCube){GLImmediate.currentRenderer=null;cur.enabled_texCube=false;cur.texTypesEnabled&=~8}break}}),hook_texEnvf:(function(target,pname,param){if(target!=GL_TEXTURE_ENV)return;var env=getCurTexUnit().env;switch(pname){case GL_RGB_SCALE:if(env.colorScale!=param){env.invalidateKey();env.colorScale=param}break;case GL_ALPHA_SCALE:if(env.alphaScale!=param){env.invalidateKey();env.alphaScale=param}break;default:Module.printErr("WARNING: Unhandled `pname` in call to `glTexEnvf`.")}}),hook_texEnvi:(function(target,pname,param){if(target!=GL_TEXTURE_ENV)return;var env=getCurTexUnit().env;switch(pname){case GL_TEXTURE_ENV_MODE:if(env.mode!=param){env.invalidateKey();env.mode=param}break;case GL_COMBINE_RGB:if(env.colorCombiner!=param){env.invalidateKey();env.colorCombiner=param}break;case GL_COMBINE_ALPHA:if(env.alphaCombiner!=param){env.invalidateKey();env.alphaCombiner=param}break;case GL_SRC0_RGB:if(env.colorSrc[0]!=param){env.invalidateKey();env.colorSrc[0]=param}break;case GL_SRC1_RGB:if(env.colorSrc[1]!=param){env.invalidateKey();env.colorSrc[1]=param}break;case GL_SRC2_RGB:if(env.colorSrc[2]!=param){env.invalidateKey();env.colorSrc[2]=param}break;case GL_SRC0_ALPHA:if(env.alphaSrc[0]!=param){env.invalidateKey();env.alphaSrc[0]=param}break;case GL_SRC1_ALPHA:if(env.alphaSrc[1]!=param){env.invalidateKey();env.alphaSrc[1]=param}break;case GL_SRC2_ALPHA:if(env.alphaSrc[2]!=param){env.invalidateKey();env.alphaSrc[2]=param}break;case GL_OPERAND0_RGB:if(env.colorOp[0]!=param){env.invalidateKey();env.colorOp[0]=param}break;case GL_OPERAND1_RGB:if(env.colorOp[1]!=param){env.invalidateKey();env.colorOp[1]=param}break;case GL_OPERAND2_RGB:if(env.colorOp[2]!=param){env.invalidateKey();env.colorOp[2]=param}break;case GL_OPERAND0_ALPHA:if(env.alphaOp[0]!=param){env.invalidateKey();env.alphaOp[0]=param}break;case GL_OPERAND1_ALPHA:if(env.alphaOp[1]!=param){env.invalidateKey();env.alphaOp[1]=param}break;case GL_OPERAND2_ALPHA:if(env.alphaOp[2]!=param){env.invalidateKey();env.alphaOp[2]=param}break;case GL_RGB_SCALE:if(env.colorScale!=param){env.invalidateKey();env.colorScale=param}break;case GL_ALPHA_SCALE:if(env.alphaScale!=param){env.invalidateKey();env.alphaScale=param}break;default:Module.printErr("WARNING: Unhandled `pname` in call to `glTexEnvi`.")}}),hook_texEnvfv:(function(target,pname,params){if(target!=GL_TEXTURE_ENV)return;var env=getCurTexUnit().env;switch(pname){case GL_TEXTURE_ENV_COLOR:{for(var i=0;i<4;i++){var param=HEAPF32[params+i*4>>2];if(env.envColor[i]!=param){env.invalidateKey();env.envColor[i]=param}}break};default:Module.printErr("WARNING: Unhandled `pname` in call to `glTexEnvfv`.")}}),hook_getTexEnviv:(function(target,pname,param){if(target!=GL_TEXTURE_ENV)return;var env=getCurTexUnit().env;switch(pname){case GL_TEXTURE_ENV_MODE:HEAP32[param>>2]=env.mode;return;case GL_TEXTURE_ENV_COLOR:HEAP32[param>>2]=Math.max(Math.min(env.envColor[0]*255,255,-255));HEAP32[param+1>>2]=Math.max(Math.min(env.envColor[1]*255,255,-255));HEAP32[param+2>>2]=Math.max(Math.min(env.envColor[2]*255,255,-255));HEAP32[param+3>>2]=Math.max(Math.min(env.envColor[3]*255,255,-255));return;case GL_COMBINE_RGB:HEAP32[param>>2]=env.colorCombiner;return;case GL_COMBINE_ALPHA:HEAP32[param>>2]=env.alphaCombiner;return;case GL_SRC0_RGB:HEAP32[param>>2]=env.colorSrc[0];return;case GL_SRC1_RGB:HEAP32[param>>2]=env.colorSrc[1];return;case GL_SRC2_RGB:HEAP32[param>>2]=env.colorSrc[2];return;case GL_SRC0_ALPHA:HEAP32[param>>2]=env.alphaSrc[0];return;case GL_SRC1_ALPHA:HEAP32[param>>2]=env.alphaSrc[1];return;case GL_SRC2_ALPHA:HEAP32[param>>2]=env.alphaSrc[2];return;case GL_OPERAND0_RGB:HEAP32[param>>2]=env.colorOp[0];return;case GL_OPERAND1_RGB:HEAP32[param>>2]=env.colorOp[1];return;case GL_OPERAND2_RGB:HEAP32[param>>2]=env.colorOp[2];return;case GL_OPERAND0_ALPHA:HEAP32[param>>2]=env.alphaOp[0];return;case GL_OPERAND1_ALPHA:HEAP32[param>>2]=env.alphaOp[1];return;case GL_OPERAND2_ALPHA:HEAP32[param>>2]=env.alphaOp[2];return;case GL_RGB_SCALE:HEAP32[param>>2]=env.colorScale;return;case GL_ALPHA_SCALE:HEAP32[param>>2]=env.alphaScale;return;default:Module.printErr("WARNING: Unhandled `pname` in call to `glGetTexEnvi`.")}}),hook_getTexEnvfv:(function(target,pname,param){if(target!=GL_TEXTURE_ENV)return;var env=getCurTexUnit().env;switch(pname){case GL_TEXTURE_ENV_COLOR:HEAPF32[param>>2]=env.envColor[0];HEAPF32[param+4>>2]=env.envColor[1];HEAPF32[param+8>>2]=env.envColor[2];HEAPF32[param+12>>2]=env.envColor[3];return}})}}),vertexData:null,vertexDataU8:null,tempData:null,indexData:null,vertexCounter:0,mode:-1,rendererCache:null,rendererComponents:[],rendererComponentPointer:0,lastRenderer:null,lastArrayBuffer:null,lastProgram:null,lastStride:-1,matrix:[],matrixStack:[],currentMatrix:0,tempMatrix:null,matricesModified:false,useTextureMatrix:false,VERTEX:0,NORMAL:1,COLOR:2,TEXTURE0:3,NUM_ATTRIBUTES:-1,MAX_TEXTURES:-1,totalEnabledClientAttributes:0,enabledClientAttributes:[0,0],clientAttributes:[],liveClientAttributes:[],currentRenderer:null,modifiedClientAttributes:false,clientActiveTexture:0,clientColor:null,usedTexUnitList:[],fixedFunctionProgram:null,setClientAttribute:function setClientAttribute(name,size,type,stride,pointer){var attrib=GLImmediate.clientAttributes[name];if(!attrib){for(var i=0;i<=name;i++){if(!GLImmediate.clientAttributes[i]){GLImmediate.clientAttributes[i]={name:name,size:size,type:type,stride:stride,pointer:pointer,offset:0}}}}else{attrib.name=name;attrib.size=size;attrib.type=type;attrib.stride=stride;attrib.pointer=pointer;attrib.offset=0}GLImmediate.modifiedClientAttributes=true},addRendererComponent:function addRendererComponent(name,size,type){if(!GLImmediate.rendererComponents[name]){GLImmediate.rendererComponents[name]=1;GLImmediate.enabledClientAttributes[name]=true;GLImmediate.setClientAttribute(name,size,type,0,GLImmediate.rendererComponentPointer);GLImmediate.rendererComponentPointer+=size*GL.byteSizeByType[type-GL.byteSizeByTypeRoot]}else{GLImmediate.rendererComponents[name]++}},disableBeginEndClientAttributes:function disableBeginEndClientAttributes(){for(var i=0;i<GLImmediate.NUM_ATTRIBUTES;i++){if(GLImmediate.rendererComponents[i])GLImmediate.enabledClientAttributes[i]=false}},getRenderer:function getRenderer(){if(GLImmediate.currentRenderer){return GLImmediate.currentRenderer}var attributes=GLImmediate.liveClientAttributes;var cacheMap=GLImmediate.rendererCache;var keyView=cacheMap.getStaticKeyView().reset();var enabledAttributesKey=0;for(var i=0;i<attributes.length;i++){enabledAttributesKey|=1<<attributes[i].name}var fogParam=0;if(GLEmulation.fogEnabled){switch(GLEmulation.fogMode){case 2049:fogParam=1;break;case 9729:fogParam=2;break;default:fogParam=3;break}}keyView.next(enabledAttributesKey<<2|fogParam);keyView.next(GL.currProgram);if(!GL.currProgram){GLImmediate.TexEnvJIT.traverseState(keyView)}var renderer=keyView.get();if(!renderer){renderer=GLImmediate.createRenderer();GLImmediate.currentRenderer=renderer;keyView.set(renderer);return renderer}GLImmediate.currentRenderer=renderer;return renderer},createRenderer:function createRenderer(renderer){var useCurrProgram=!!GL.currProgram;var hasTextures=false;for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){var texAttribName=GLImmediate.TEXTURE0+i;if(!GLImmediate.enabledClientAttributes[texAttribName])continue;hasTextures=true}var ret={init:function init(){var uTexUnitPrefix="u_texUnit";var aTexCoordPrefix="a_texCoord";var vTexCoordPrefix="v_texCoord";var vPrimColor="v_color";var uTexMatrixPrefix=GLImmediate.useTextureMatrix?"u_textureMatrix":null;if(useCurrProgram){if(GL.shaderInfos[GL.programShaders[GL.currProgram][0]].type==GLctx.VERTEX_SHADER){this.vertexShader=GL.shaders[GL.programShaders[GL.currProgram][0]];this.fragmentShader=GL.shaders[GL.programShaders[GL.currProgram][1]]}else{this.vertexShader=GL.shaders[GL.programShaders[GL.currProgram][1]];this.fragmentShader=GL.shaders[GL.programShaders[GL.currProgram][0]]}this.program=GL.programs[GL.currProgram];this.usedTexUnitList=[]}else{if(GLEmulation.fogEnabled){switch(GLEmulation.fogMode){case 2049:var fogFormula=" float fog = exp(-u_fogDensity * u_fogDensity * ecDistance * ecDistance); \n";break;case 9729:var fogFormula=" float fog = (u_fogEnd - ecDistance) * u_fogScale; \n";break;default:var fogFormula=" float fog = exp(-u_fogDensity * ecDistance); \n";break}}GLImmediate.TexEnvJIT.setGLSLVars(uTexUnitPrefix,vTexCoordPrefix,vPrimColor,uTexMatrixPrefix);var fsTexEnvPass=GLImmediate.TexEnvJIT.genAllPassLines("gl_FragColor",2);var texUnitAttribList="";var texUnitVaryingList="";var texUnitUniformList="";var vsTexCoordInits="";this.usedTexUnitList=GLImmediate.TexEnvJIT.getUsedTexUnitList();for(var i=0;i<this.usedTexUnitList.length;i++){var texUnit=this.usedTexUnitList[i];texUnitAttribList+="attribute vec4 "+aTexCoordPrefix+texUnit+";\n";texUnitVaryingList+="varying vec4 "+vTexCoordPrefix+texUnit+";\n";texUnitUniformList+="uniform sampler2D "+uTexUnitPrefix+texUnit+";\n";vsTexCoordInits+=" "+vTexCoordPrefix+texUnit+" = "+aTexCoordPrefix+texUnit+";\n";if(GLImmediate.useTextureMatrix){texUnitUniformList+="uniform mat4 "+uTexMatrixPrefix+texUnit+";\n"}}var vsFogVaryingInit=null;if(GLEmulation.fogEnabled){vsFogVaryingInit=" v_fogFragCoord = abs(ecPosition.z);\n"}var vsSource=["attribute vec4 a_position;","attribute vec4 a_color;","varying vec4 v_color;",texUnitAttribList,texUnitVaryingList,GLEmulation.fogEnabled?"varying float v_fogFragCoord;":null,"uniform mat4 u_modelView;","uniform mat4 u_projection;","void main()","{"," vec4 ecPosition = u_modelView * a_position;"," gl_Position = u_projection * ecPosition;"," v_color = a_color;",vsTexCoordInits,vsFogVaryingInit,"}",""].join("\n").replace(/\n\n+/g,"\n");this.vertexShader=GLctx.createShader(GLctx.VERTEX_SHADER);GLctx.shaderSource(this.vertexShader,vsSource);GLctx.compileShader(this.vertexShader);var fogHeaderIfNeeded=null;if(GLEmulation.fogEnabled){fogHeaderIfNeeded=["","varying float v_fogFragCoord; ","uniform vec4 u_fogColor; ","uniform float u_fogEnd; ","uniform float u_fogScale; ","uniform float u_fogDensity; ","float ffog(in float ecDistance) { ",fogFormula," fog = clamp(fog, 0.0, 1.0); "," return fog; ","}",""].join("\n")}var fogPass=null;if(GLEmulation.fogEnabled){fogPass="gl_FragColor = vec4(mix(u_fogColor.rgb, gl_FragColor.rgb, ffog(v_fogFragCoord)), gl_FragColor.a);\n"}var fsSource=["precision mediump float;",texUnitVaryingList,texUnitUniformList,"varying vec4 v_color;",fogHeaderIfNeeded,"void main()","{",fsTexEnvPass,fogPass,"}",""].join("\n").replace(/\n\n+/g,"\n");this.fragmentShader=GLctx.createShader(GLctx.FRAGMENT_SHADER);GLctx.shaderSource(this.fragmentShader,fsSource);GLctx.compileShader(this.fragmentShader);this.program=GLctx.createProgram();GLctx.attachShader(this.program,this.vertexShader);GLctx.attachShader(this.program,this.fragmentShader);GLctx.bindAttribLocation(this.program,GLImmediate.VERTEX,"a_position");GLctx.bindAttribLocation(this.program,GLImmediate.COLOR,"a_color");GLctx.bindAttribLocation(this.program,GLImmediate.NORMAL,"a_normal");var maxVertexAttribs=GLctx.getParameter(GLctx.MAX_VERTEX_ATTRIBS);for(var i=0;i<GLImmediate.MAX_TEXTURES&&GLImmediate.TEXTURE0+i<maxVertexAttribs;i++){GLctx.bindAttribLocation(this.program,GLImmediate.TEXTURE0+i,"a_texCoord"+i);GLctx.bindAttribLocation(this.program,GLImmediate.TEXTURE0+i,aTexCoordPrefix+i)}GLctx.linkProgram(this.program)}this.textureMatrixVersion=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.positionLocation=GLctx.getAttribLocation(this.program,"a_position");this.texCoordLocations=[];for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){if(!GLImmediate.enabledClientAttributes[GLImmediate.TEXTURE0+i]){this.texCoordLocations[i]=-1;continue}if(useCurrProgram){this.texCoordLocations[i]=GLctx.getAttribLocation(this.program,"a_texCoord"+i)}else{this.texCoordLocations[i]=GLctx.getAttribLocation(this.program,aTexCoordPrefix+i)}}this.colorLocation=GLctx.getAttribLocation(this.program,"a_color");if(!useCurrProgram){var prevBoundProg=GLctx.getParameter(GLctx.CURRENT_PROGRAM);GLctx.useProgram(this.program);{for(var i=0;i<this.usedTexUnitList.length;i++){var texUnitID=this.usedTexUnitList[i];var texSamplerLoc=GLctx.getUniformLocation(this.program,uTexUnitPrefix+texUnitID);GLctx.uniform1i(texSamplerLoc,texUnitID)}}GLctx.vertexAttrib4fv(this.colorLocation,[1,1,1,1]);GLctx.useProgram(prevBoundProg)}this.textureMatrixLocations=[];for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){this.textureMatrixLocations[i]=GLctx.getUniformLocation(this.program,"u_textureMatrix"+i)}this.normalLocation=GLctx.getAttribLocation(this.program,"a_normal");this.modelViewLocation=GLctx.getUniformLocation(this.program,"u_modelView");this.projectionLocation=GLctx.getUniformLocation(this.program,"u_projection");this.hasTextures=hasTextures;this.hasNormal=GLImmediate.enabledClientAttributes[GLImmediate.NORMAL]&&GLImmediate.clientAttributes[GLImmediate.NORMAL].size>0&&this.normalLocation>=0;this.hasColor=this.colorLocation===0||this.colorLocation>0;this.floatType=GLctx.FLOAT;this.fogColorLocation=GLctx.getUniformLocation(this.program,"u_fogColor");this.fogEndLocation=GLctx.getUniformLocation(this.program,"u_fogEnd");this.fogScaleLocation=GLctx.getUniformLocation(this.program,"u_fogScale");this.fogDensityLocation=GLctx.getUniformLocation(this.program,"u_fogDensity");this.hasFog=!!(this.fogColorLocation||this.fogEndLocation||this.fogScaleLocation||this.fogDensityLocation)},prepare:function prepare(){var arrayBuffer;if(!GL.currArrayBuffer){var start=GLImmediate.firstVertex*GLImmediate.stride;var end=GLImmediate.lastVertex*GLImmediate.stride;arrayBuffer=GL.getTempVertexBuffer(end)}else{arrayBuffer=GL.currArrayBuffer}var lastRenderer=GLImmediate.lastRenderer;var canSkip=this==lastRenderer&&arrayBuffer==GLImmediate.lastArrayBuffer&&(GL.currProgram||this.program)==GLImmediate.lastProgram&&GLImmediate.stride==GLImmediate.lastStride&&!GLImmediate.matricesModified;if(!canSkip&&lastRenderer)lastRenderer.cleanup();if(!GL.currArrayBuffer){if(arrayBuffer!=GLImmediate.lastArrayBuffer){GLctx.bindBuffer(GLctx.ARRAY_BUFFER,arrayBuffer);GLImmediate.lastArrayBuffer=arrayBuffer}GLctx.bufferSubData(GLctx.ARRAY_BUFFER,start,GLImmediate.vertexData.subarray(start>>2,end>>2))}if(canSkip)return;GLImmediate.lastRenderer=this;GLImmediate.lastProgram=GL.currProgram||this.program;GLImmediate.lastStride==GLImmediate.stride;GLImmediate.matricesModified=false;if(!GL.currProgram){if(GLImmediate.fixedFunctionProgram!=this.program){GLctx.useProgram(this.program);GLImmediate.fixedFunctionProgram=this.program}}if(this.modelViewLocation&&this.modelViewMatrixVersion!=GLImmediate.matrixVersion[0]){this.modelViewMatrixVersion=GLImmediate.matrixVersion[0];GLctx.uniformMatrix4fv(this.modelViewLocation,false,GLImmediate.matrix[0])}if(this.projectionLocation&&this.projectionMatrixVersion!=GLImmediate.matrixVersion[1]){this.projectionMatrixVersion=GLImmediate.matrixVersion[1];GLctx.uniformMatrix4fv(this.projectionLocation,false,GLImmediate.matrix[1])}var clientAttributes=GLImmediate.clientAttributes;var posAttr=clientAttributes[GLImmediate.VERTEX];GLctx.vertexAttribPointer(this.positionLocation,posAttr.size,posAttr.type,false,GLImmediate.stride,posAttr.offset);GLctx.enableVertexAttribArray(this.positionLocation);if(this.hasNormal){var normalAttr=clientAttributes[GLImmediate.NORMAL];GLctx.vertexAttribPointer(this.normalLocation,normalAttr.size,normalAttr.type,true,GLImmediate.stride,normalAttr.offset);GLctx.enableVertexAttribArray(this.normalLocation)}if(this.hasTextures){for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){var attribLoc=this.texCoordLocations[i];if(attribLoc===undefined||attribLoc<0)continue;var texAttr=clientAttributes[GLImmediate.TEXTURE0+i];if(texAttr.size){GLctx.vertexAttribPointer(attribLoc,texAttr.size,texAttr.type,false,GLImmediate.stride,texAttr.offset);GLctx.enableVertexAttribArray(attribLoc)}else{GLctx.vertexAttrib4f(attribLoc,0,0,0,1);GLctx.disableVertexAttribArray(attribLoc)}var t=2+i;if(this.textureMatrixLocations[i]&&this.textureMatrixVersion[t]!=GLImmediate.matrixVersion[t]){this.textureMatrixVersion[t]=GLImmediate.matrixVersion[t];GLctx.uniformMatrix4fv(this.textureMatrixLocations[i],false,GLImmediate.matrix[t])}}}if(GLImmediate.enabledClientAttributes[GLImmediate.COLOR]){var colorAttr=clientAttributes[GLImmediate.COLOR];GLctx.vertexAttribPointer(this.colorLocation,colorAttr.size,colorAttr.type,true,GLImmediate.stride,colorAttr.offset);GLctx.enableVertexAttribArray(this.colorLocation)}else if(this.hasColor){GLctx.disableVertexAttribArray(this.colorLocation);GLctx.vertexAttrib4fv(this.colorLocation,GLImmediate.clientColor)}if(this.hasFog){if(this.fogColorLocation)GLctx.uniform4fv(this.fogColorLocation,GLEmulation.fogColor);if(this.fogEndLocation)GLctx.uniform1f(this.fogEndLocation,GLEmulation.fogEnd);if(this.fogScaleLocation)GLctx.uniform1f(this.fogScaleLocation,1/(GLEmulation.fogEnd-GLEmulation.fogStart));if(this.fogDensityLocation)GLctx.uniform1f(this.fogDensityLocation,GLEmulation.fogDensity)}},cleanup:function cleanup(){GLctx.disableVertexAttribArray(this.positionLocation);if(this.hasTextures){for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){if(GLImmediate.enabledClientAttributes[GLImmediate.TEXTURE0+i]&&this.texCoordLocations[i]>=0){GLctx.disableVertexAttribArray(this.texCoordLocations[i])}}}if(this.hasColor){GLctx.disableVertexAttribArray(this.colorLocation)}if(this.hasNormal){GLctx.disableVertexAttribArray(this.normalLocation)}if(!GL.currProgram){GLctx.useProgram(null);GLImmediate.fixedFunctionProgram=0}if(!GL.currArrayBuffer){GLctx.bindBuffer(GLctx.ARRAY_BUFFER,null);GLImmediate.lastArrayBuffer=null}GLImmediate.lastRenderer=null;GLImmediate.lastProgram=null;GLImmediate.matricesModified=true}};ret.init();return ret},setupFuncs:(function(){_glDrawArrays=_emscripten_glDrawArrays=function _glDrawArrays(mode,first,count){if(GLImmediate.totalEnabledClientAttributes==0&&mode<=6){GLctx.drawArrays(mode,first,count);return}GLImmediate.prepareClientAttributes(count,false);GLImmediate.mode=mode;if(!GL.currArrayBuffer){GLImmediate.vertexData=HEAPF32.subarray(GLImmediate.vertexPointer>>2,GLImmediate.vertexPointer+(first+count)*GLImmediate.stride>>2);GLImmediate.firstVertex=first;GLImmediate.lastVertex=first+count}GLImmediate.flush(null,first);GLImmediate.mode=-1};_glDrawElements=_emscripten_glDrawElements=function _glDrawElements(mode,count,type,indices,start,end){if(GLImmediate.totalEnabledClientAttributes==0&&mode<=6&&GL.currElementArrayBuffer){GLctx.drawElements(mode,count,type,indices);return}GLImmediate.prepareClientAttributes(count,false);GLImmediate.mode=mode;if(!GL.currArrayBuffer){GLImmediate.firstVertex=end?start:TOTAL_MEMORY;GLImmediate.lastVertex=end?end+1:0;GLImmediate.vertexData=HEAPF32.subarray(GLImmediate.vertexPointer>>2,end?GLImmediate.vertexPointer+(end+1)*GLImmediate.stride>>2:undefined)}GLImmediate.flush(count,0,indices);GLImmediate.mode=-1};GLImmediate.MapTreeLib=GLImmediate.spawnMapTreeLib();GLImmediate.spawnMapTreeLib=null;GLImmediate.TexEnvJIT=GLImmediate.spawnTexEnvJIT();GLImmediate.spawnTexEnvJIT=null;GLImmediate.setupHooks()}),setupHooks:(function(){if(!GLEmulation.hasRunInit){GLEmulation.init()}var glActiveTexture=_glActiveTexture;_glActiveTexture=_emscripten_glActiveTexture=function _glActiveTexture(texture){GLImmediate.TexEnvJIT.hook_activeTexture(texture);glActiveTexture(texture)};var glEnable=_glEnable;_glEnable=_emscripten_glEnable=function _glEnable(cap){GLImmediate.TexEnvJIT.hook_enable(cap);glEnable(cap)};var glDisable=_glDisable;_glDisable=_emscripten_glDisable=function _glDisable(cap){GLImmediate.TexEnvJIT.hook_disable(cap);glDisable(cap)};var glTexEnvf=typeof _glTexEnvf!="undefined"?_glTexEnvf:(function(){});_glTexEnvf=_emscripten_glTexEnvf=function _glTexEnvf(target,pname,param){GLImmediate.TexEnvJIT.hook_texEnvf(target,pname,param)};var glTexEnvi=typeof _glTexEnvi!="undefined"?_glTexEnvi:(function(){});_glTexEnvi=_emscripten_glTexEnvi=function _glTexEnvi(target,pname,param){GLImmediate.TexEnvJIT.hook_texEnvi(target,pname,param)};var glTexEnvfv=typeof _glTexEnvfv!="undefined"?_glTexEnvfv:(function(){});_glTexEnvfv=_emscripten_glTexEnvfv=function _glTexEnvfv(target,pname,param){GLImmediate.TexEnvJIT.hook_texEnvfv(target,pname,param)};_glGetTexEnviv=function _glGetTexEnviv(target,pname,param){GLImmediate.TexEnvJIT.hook_getTexEnviv(target,pname,param)};_glGetTexEnvfv=function _glGetTexEnvfv(target,pname,param){GLImmediate.TexEnvJIT.hook_getTexEnvfv(target,pname,param)};var glGetIntegerv=_glGetIntegerv;_glGetIntegerv=_emscripten_glGetIntegerv=function _glGetIntegerv(pname,params){switch(pname){case 35725:{var cur=GLctx.getParameter(GLctx.CURRENT_PROGRAM);if(cur==GLImmediate.fixedFunctionProgram){HEAP32[params>>2]=0;return}break}}glGetIntegerv(pname,params)}}),initted:false,init:(function(){Module.printErr("WARNING: using emscripten GL immediate mode emulation. This is very limited in what it supports");GLImmediate.initted=true;if(!Module.useWebGL)return;GLImmediate.MAX_TEXTURES=Module["GL_MAX_TEXTURE_IMAGE_UNITS"]||GLctx.getParameter(GLctx.MAX_TEXTURE_IMAGE_UNITS);GLImmediate.TexEnvJIT.init(GLctx,GLImmediate.MAX_TEXTURES);GLImmediate.NUM_ATTRIBUTES=3+GLImmediate.MAX_TEXTURES;GLImmediate.clientAttributes=[];GLEmulation.enabledClientAttribIndices=[];for(var i=0;i<GLImmediate.NUM_ATTRIBUTES;i++){GLImmediate.clientAttributes.push({});GLEmulation.enabledClientAttribIndices.push(false)}GLImmediate.matrix=[];GLImmediate.matrixStack=[];GLImmediate.matrixVersion=[];for(var i=0;i<2+GLImmediate.MAX_TEXTURES;i++){GLImmediate.matrixStack.push([]);GLImmediate.matrixVersion.push(0);GLImmediate.matrix.push(GLImmediate.matrixLib.mat4.create());GLImmediate.matrixLib.mat4.identity(GLImmediate.matrix[i])}GLImmediate.rendererCache=GLImmediate.MapTreeLib.create();GLImmediate.tempData=new Float32Array(GL.MAX_TEMP_BUFFER_SIZE>>2);GLImmediate.indexData=new Uint16Array(GL.MAX_TEMP_BUFFER_SIZE>>1);GLImmediate.vertexDataU8=new Uint8Array(GLImmediate.tempData.buffer);GL.generateTempBuffers(true,GL.currentContext);GLImmediate.clientColor=new Float32Array([1,1,1,1])}),prepareClientAttributes:function prepareClientAttributes(count,beginEnd){if(!GLImmediate.modifiedClientAttributes){GLImmediate.vertexCounter=GLImmediate.stride*count/4;return}GLImmediate.modifiedClientAttributes=false;var clientStartPointer=2147483647;var bytes=0;var minStride=2147483647;var maxStride=0;var attributes=GLImmediate.liveClientAttributes;attributes.length=0;for(var i=0;i<3+GLImmediate.MAX_TEXTURES;i++){if(GLImmediate.enabledClientAttributes[i]){var attr=GLImmediate.clientAttributes[i];attributes.push(attr);clientStartPointer=Math.min(clientStartPointer,attr.pointer);attr.sizeBytes=attr.size*GL.byteSizeByType[attr.type-GL.byteSizeByTypeRoot];bytes+=attr.sizeBytes;minStride=Math.min(minStride,attr.stride);maxStride=Math.max(maxStride,attr.stride)}}if((minStride!=maxStride||maxStride<bytes)&&!beginEnd){if(!GLImmediate.restrideBuffer)GLImmediate.restrideBuffer=_malloc(GL.MAX_TEMP_BUFFER_SIZE);var start=GLImmediate.restrideBuffer;bytes=0;for(var i=0;i<attributes.length;i++){var attr=attributes[i];var size=attr.sizeBytes;if(size%4!=0)size+=4-size%4;attr.offset=bytes;bytes+=size}for(var i=0;i<attributes.length;i++){var attr=attributes[i];var srcStride=Math.max(attr.sizeBytes,attr.stride);if((srcStride&3)==0&&(attr.sizeBytes&3)==0){var size4=attr.sizeBytes>>2;var srcStride4=Math.max(attr.sizeBytes,attr.stride)>>2;for(var j=0;j<count;j++){for(var k=0;k<size4;k++){HEAP32[(start+attr.offset+bytes*j>>2)+k]=HEAP32[(attr.pointer>>2)+j*srcStride4+k]}}}else{for(var j=0;j<count;j++){for(var k=0;k<attr.sizeBytes;k++){HEAP8[start+attr.offset+bytes*j+k]=HEAP8[attr.pointer+j*srcStride+k]}}}attr.pointer=start+attr.offset}GLImmediate.stride=bytes;GLImmediate.vertexPointer=start}else{if(GL.currArrayBuffer){GLImmediate.vertexPointer=0}else{GLImmediate.vertexPointer=clientStartPointer}for(var i=0;i<attributes.length;i++){var attr=attributes[i];attr.offset=attr.pointer-GLImmediate.vertexPointer}GLImmediate.stride=Math.max(maxStride,bytes)}if(!beginEnd){GLImmediate.vertexCounter=GLImmediate.stride*count/4}},flush:function flush(numProvidedIndexes,startIndex,ptr){startIndex=startIndex||0;ptr=ptr||0;var renderer=GLImmediate.getRenderer();var numVertexes=4*GLImmediate.vertexCounter/GLImmediate.stride;if(!numVertexes)return;var emulatedElementArrayBuffer=false;var numIndexes=0;if(numProvidedIndexes){numIndexes=numProvidedIndexes;if(!GL.currArrayBuffer&&GLImmediate.firstVertex>GLImmediate.lastVertex){for(var i=0;i<numProvidedIndexes;i++){var currIndex=HEAPU16[ptr+i*2>>1];GLImmediate.firstVertex=Math.min(GLImmediate.firstVertex,currIndex);GLImmediate.lastVertex=Math.max(GLImmediate.lastVertex,currIndex+1)}}if(!GL.currElementArrayBuffer){var indexBuffer=GL.getTempIndexBuffer(numProvidedIndexes<<1);GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,indexBuffer);GLctx.bufferSubData(GLctx.ELEMENT_ARRAY_BUFFER,0,HEAPU16.subarray(ptr>>1,ptr+(numProvidedIndexes<<1)>>1));ptr=0;emulatedElementArrayBuffer=true}}else if(GLImmediate.mode>6){if(GLImmediate.mode!=7)throw"unsupported immediate mode "+GLImmediate.mode;ptr=GLImmediate.firstVertex*3;var numQuads=numVertexes/4;numIndexes=numQuads*6;GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,GL.currentContext.tempQuadIndexBuffer);emulatedElementArrayBuffer=true}renderer.prepare();if(numIndexes){GLctx.drawElements(GLctx.TRIANGLES,numIndexes,GLctx.UNSIGNED_SHORT,ptr)}else{GLctx.drawArrays(GLImmediate.mode,startIndex,numVertexes)}if(emulatedElementArrayBuffer){GLctx.bindBuffer(GLctx.ELEMENT_ARRAY_BUFFER,GL.buffers[GL.currElementArrayBuffer]||null)}}};GLImmediate.matrixLib=(function(){var vec3={};var mat3={};var mat4={};var quat4={};var MatrixArray=Float32Array;vec3.create=(function(vec){var dest=new MatrixArray(3);if(vec){dest[0]=vec[0];dest[1]=vec[1];dest[2]=vec[2]}else{dest[0]=dest[1]=dest[2]=0}return dest});vec3.set=(function(vec,dest){dest[0]=vec[0];dest[1]=vec[1];dest[2]=vec[2];return dest});vec3.add=(function(vec,vec2,dest){if(!dest||vec===dest){vec[0]+=vec2[0];vec[1]+=vec2[1];vec[2]+=vec2[2];return vec}dest[0]=vec[0]+vec2[0];dest[1]=vec[1]+vec2[1];dest[2]=vec[2]+vec2[2];return dest});vec3.subtract=(function(vec,vec2,dest){if(!dest||vec===dest){vec[0]-=vec2[0];vec[1]-=vec2[1];vec[2]-=vec2[2];return vec}dest[0]=vec[0]-vec2[0];dest[1]=vec[1]-vec2[1];dest[2]=vec[2]-vec2[2];return dest});vec3.multiply=(function(vec,vec2,dest){if(!dest||vec===dest){vec[0]*=vec2[0];vec[1]*=vec2[1];vec[2]*=vec2[2];return vec}dest[0]=vec[0]*vec2[0];dest[1]=vec[1]*vec2[1];dest[2]=vec[2]*vec2[2];return dest});vec3.negate=(function(vec,dest){if(!dest){dest=vec}dest[0]=-vec[0];dest[1]=-vec[1];dest[2]=-vec[2];return dest});vec3.scale=(function(vec,val,dest){if(!dest||vec===dest){vec[0]*=val;vec[1]*=val;vec[2]*=val;return vec}dest[0]=vec[0]*val;dest[1]=vec[1]*val;dest[2]=vec[2]*val;return dest});vec3.normalize=(function(vec,dest){if(!dest){dest=vec}var x=vec[0],y=vec[1],z=vec[2],len=Math.sqrt(x*x+y*y+z*z);if(!len){dest[0]=0;dest[1]=0;dest[2]=0;return dest}else if(len===1){dest[0]=x;dest[1]=y;dest[2]=z;return dest}len=1/len;dest[0]=x*len;dest[1]=y*len;dest[2]=z*len;return dest});vec3.cross=(function(vec,vec2,dest){if(!dest){dest=vec}var x=vec[0],y=vec[1],z=vec[2],x2=vec2[0],y2=vec2[1],z2=vec2[2];dest[0]=y*z2-z*y2;dest[1]=z*x2-x*z2;dest[2]=x*y2-y*x2;return dest});vec3.length=(function(vec){var x=vec[0],y=vec[1],z=vec[2];return Math.sqrt(x*x+y*y+z*z)});vec3.dot=(function(vec,vec2){return vec[0]*vec2[0]+vec[1]*vec2[1]+vec[2]*vec2[2]});vec3.direction=(function(vec,vec2,dest){if(!dest){dest=vec}var x=vec[0]-vec2[0],y=vec[1]-vec2[1],z=vec[2]-vec2[2],len=Math.sqrt(x*x+y*y+z*z);if(!len){dest[0]=0;dest[1]=0;dest[2]=0;return dest}len=1/len;dest[0]=x*len;dest[1]=y*len;dest[2]=z*len;return dest});vec3.lerp=(function(vec,vec2,lerp,dest){if(!dest){dest=vec}dest[0]=vec[0]+lerp*(vec2[0]-vec[0]);dest[1]=vec[1]+lerp*(vec2[1]-vec[1]);dest[2]=vec[2]+lerp*(vec2[2]-vec[2]);return dest});vec3.dist=(function(vec,vec2){var x=vec2[0]-vec[0],y=vec2[1]-vec[1],z=vec2[2]-vec[2];return Math.sqrt(x*x+y*y+z*z)});vec3.unproject=(function(vec,view,proj,viewport,dest){if(!dest){dest=vec}var m=mat4.create();var v=new MatrixArray(4);v[0]=(vec[0]-viewport[0])*2/viewport[2]-1;v[1]=(vec[1]-viewport[1])*2/viewport[3]-1;v[2]=2*vec[2]-1;v[3]=1;mat4.multiply(proj,view,m);if(!mat4.inverse(m)){return null}mat4.multiplyVec4(m,v);if(v[3]===0){return null}dest[0]=v[0]/v[3];dest[1]=v[1]/v[3];dest[2]=v[2]/v[3];return dest});vec3.str=(function(vec){return"["+vec[0]+", "+vec[1]+", "+vec[2]+"]"});mat3.create=(function(mat){var dest=new MatrixArray(9);if(mat){dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[8]=mat[8]}return dest});mat3.set=(function(mat,dest){dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[8]=mat[8];return dest});mat3.identity=(function(dest){if(!dest){dest=mat3.create()}dest[0]=1;dest[1]=0;dest[2]=0;dest[3]=0;dest[4]=1;dest[5]=0;dest[6]=0;dest[7]=0;dest[8]=1;return dest});mat3.transpose=(function(mat,dest){if(!dest||mat===dest){var a01=mat[1],a02=mat[2],a12=mat[5];mat[1]=mat[3];mat[2]=mat[6];mat[3]=a01;mat[5]=mat[7];mat[6]=a02;mat[7]=a12;return mat}dest[0]=mat[0];dest[1]=mat[3];dest[2]=mat[6];dest[3]=mat[1];dest[4]=mat[4];dest[5]=mat[7];dest[6]=mat[2];dest[7]=mat[5];dest[8]=mat[8];return dest});mat3.toMat4=(function(mat,dest){if(!dest){dest=mat4.create()}dest[15]=1;dest[14]=0;dest[13]=0;dest[12]=0;dest[11]=0;dest[10]=mat[8];dest[9]=mat[7];dest[8]=mat[6];dest[7]=0;dest[6]=mat[5];dest[5]=mat[4];dest[4]=mat[3];dest[3]=0;dest[2]=mat[2];dest[1]=mat[1];dest[0]=mat[0];return dest});mat3.str=(function(mat){return"["+mat[0]+", "+mat[1]+", "+mat[2]+", "+mat[3]+", "+mat[4]+", "+mat[5]+", "+mat[6]+", "+mat[7]+", "+mat[8]+"]"});mat4.create=(function(mat){var dest=new MatrixArray(16);if(mat){dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[8]=mat[8];dest[9]=mat[9];dest[10]=mat[10];dest[11]=mat[11];dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15]}return dest});mat4.set=(function(mat,dest){dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[8]=mat[8];dest[9]=mat[9];dest[10]=mat[10];dest[11]=mat[11];dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15];return dest});mat4.identity=(function(dest){if(!dest){dest=mat4.create()}dest[0]=1;dest[1]=0;dest[2]=0;dest[3]=0;dest[4]=0;dest[5]=1;dest[6]=0;dest[7]=0;dest[8]=0;dest[9]=0;dest[10]=1;dest[11]=0;dest[12]=0;dest[13]=0;dest[14]=0;dest[15]=1;return dest});mat4.transpose=(function(mat,dest){if(!dest||mat===dest){var a01=mat[1],a02=mat[2],a03=mat[3],a12=mat[6],a13=mat[7],a23=mat[11];mat[1]=mat[4];mat[2]=mat[8];mat[3]=mat[12];mat[4]=a01;mat[6]=mat[9];mat[7]=mat[13];mat[8]=a02;mat[9]=a12;mat[11]=mat[14];mat[12]=a03;mat[13]=a13;mat[14]=a23;return mat}dest[0]=mat[0];dest[1]=mat[4];dest[2]=mat[8];dest[3]=mat[12];dest[4]=mat[1];dest[5]=mat[5];dest[6]=mat[9];dest[7]=mat[13];dest[8]=mat[2];dest[9]=mat[6];dest[10]=mat[10];dest[11]=mat[14];dest[12]=mat[3];dest[13]=mat[7];dest[14]=mat[11];dest[15]=mat[15];return dest});mat4.determinant=(function(mat){var a00=mat[0],a01=mat[1],a02=mat[2],a03=mat[3],a10=mat[4],a11=mat[5],a12=mat[6],a13=mat[7],a20=mat[8],a21=mat[9],a22=mat[10],a23=mat[11],a30=mat[12],a31=mat[13],a32=mat[14],a33=mat[15];return a30*a21*a12*a03-a20*a31*a12*a03-a30*a11*a22*a03+a10*a31*a22*a03+a20*a11*a32*a03-a10*a21*a32*a03-a30*a21*a02*a13+a20*a31*a02*a13+a30*a01*a22*a13-a00*a31*a22*a13-a20*a01*a32*a13+a00*a21*a32*a13+a30*a11*a02*a23-a10*a31*a02*a23-a30*a01*a12*a23+a00*a31*a12*a23+a10*a01*a32*a23-a00*a11*a32*a23-a20*a11*a02*a33+a10*a21*a02*a33+a20*a01*a12*a33-a00*a21*a12*a33-a10*a01*a22*a33+a00*a11*a22*a33});mat4.inverse=(function(mat,dest){if(!dest){dest=mat}var a00=mat[0],a01=mat[1],a02=mat[2],a03=mat[3],a10=mat[4],a11=mat[5],a12=mat[6],a13=mat[7],a20=mat[8],a21=mat[9],a22=mat[10],a23=mat[11],a30=mat[12],a31=mat[13],a32=mat[14],a33=mat[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,d=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06,invDet;if(!d){return null}invDet=1/d;dest[0]=(a11*b11-a12*b10+a13*b09)*invDet;dest[1]=(-a01*b11+a02*b10-a03*b09)*invDet;dest[2]=(a31*b05-a32*b04+a33*b03)*invDet;dest[3]=(-a21*b05+a22*b04-a23*b03)*invDet;dest[4]=(-a10*b11+a12*b08-a13*b07)*invDet;dest[5]=(a00*b11-a02*b08+a03*b07)*invDet;dest[6]=(-a30*b05+a32*b02-a33*b01)*invDet;dest[7]=(a20*b05-a22*b02+a23*b01)*invDet;dest[8]=(a10*b10-a11*b08+a13*b06)*invDet;dest[9]=(-a00*b10+a01*b08-a03*b06)*invDet;dest[10]=(a30*b04-a31*b02+a33*b00)*invDet;dest[11]=(-a20*b04+a21*b02-a23*b00)*invDet;dest[12]=(-a10*b09+a11*b07-a12*b06)*invDet;dest[13]=(a00*b09-a01*b07+a02*b06)*invDet;dest[14]=(-a30*b03+a31*b01-a32*b00)*invDet;dest[15]=(a20*b03-a21*b01+a22*b00)*invDet;return dest});mat4.toRotationMat=(function(mat,dest){if(!dest){dest=mat4.create()}dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[8]=mat[8];dest[9]=mat[9];dest[10]=mat[10];dest[11]=mat[11];dest[12]=0;dest[13]=0;dest[14]=0;dest[15]=1;return dest});mat4.toMat3=(function(mat,dest){if(!dest){dest=mat3.create()}dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[4];dest[4]=mat[5];dest[5]=mat[6];dest[6]=mat[8];dest[7]=mat[9];dest[8]=mat[10];return dest});mat4.toInverseMat3=(function(mat,dest){var a00=mat[0],a01=mat[1],a02=mat[2],a10=mat[4],a11=mat[5],a12=mat[6],a20=mat[8],a21=mat[9],a22=mat[10],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,d=a00*b01+a01*b11+a02*b21,id;if(!d){return null}id=1/d;if(!dest){dest=mat3.create()}dest[0]=b01*id;dest[1]=(-a22*a01+a02*a21)*id;dest[2]=(a12*a01-a02*a11)*id;dest[3]=b11*id;dest[4]=(a22*a00-a02*a20)*id;dest[5]=(-a12*a00+a02*a10)*id;dest[6]=b21*id;dest[7]=(-a21*a00+a01*a20)*id;dest[8]=(a11*a00-a01*a10)*id;return dest});mat4.multiply=(function(mat,mat2,dest){if(!dest){dest=mat}var a00=mat[0],a01=mat[1],a02=mat[2],a03=mat[3],a10=mat[4],a11=mat[5],a12=mat[6],a13=mat[7],a20=mat[8],a21=mat[9],a22=mat[10],a23=mat[11],a30=mat[12],a31=mat[13],a32=mat[14],a33=mat[15],b00=mat2[0],b01=mat2[1],b02=mat2[2],b03=mat2[3],b10=mat2[4],b11=mat2[5],b12=mat2[6],b13=mat2[7],b20=mat2[8],b21=mat2[9],b22=mat2[10],b23=mat2[11],b30=mat2[12],b31=mat2[13],b32=mat2[14],b33=mat2[15];dest[0]=b00*a00+b01*a10+b02*a20+b03*a30;dest[1]=b00*a01+b01*a11+b02*a21+b03*a31;dest[2]=b00*a02+b01*a12+b02*a22+b03*a32;dest[3]=b00*a03+b01*a13+b02*a23+b03*a33;dest[4]=b10*a00+b11*a10+b12*a20+b13*a30;dest[5]=b10*a01+b11*a11+b12*a21+b13*a31;dest[6]=b10*a02+b11*a12+b12*a22+b13*a32;dest[7]=b10*a03+b11*a13+b12*a23+b13*a33;dest[8]=b20*a00+b21*a10+b22*a20+b23*a30;dest[9]=b20*a01+b21*a11+b22*a21+b23*a31;dest[10]=b20*a02+b21*a12+b22*a22+b23*a32;dest[11]=b20*a03+b21*a13+b22*a23+b23*a33;dest[12]=b30*a00+b31*a10+b32*a20+b33*a30;dest[13]=b30*a01+b31*a11+b32*a21+b33*a31;dest[14]=b30*a02+b31*a12+b32*a22+b33*a32;dest[15]=b30*a03+b31*a13+b32*a23+b33*a33;return dest});mat4.multiplyVec3=(function(mat,vec,dest){if(!dest){dest=vec}var x=vec[0],y=vec[1],z=vec[2];dest[0]=mat[0]*x+mat[4]*y+mat[8]*z+mat[12];dest[1]=mat[1]*x+mat[5]*y+mat[9]*z+mat[13];dest[2]=mat[2]*x+mat[6]*y+mat[10]*z+mat[14];return dest});mat4.multiplyVec4=(function(mat,vec,dest){if(!dest){dest=vec}var x=vec[0],y=vec[1],z=vec[2],w=vec[3];dest[0]=mat[0]*x+mat[4]*y+mat[8]*z+mat[12]*w;dest[1]=mat[1]*x+mat[5]*y+mat[9]*z+mat[13]*w;dest[2]=mat[2]*x+mat[6]*y+mat[10]*z+mat[14]*w;dest[3]=mat[3]*x+mat[7]*y+mat[11]*z+mat[15]*w;return dest});mat4.translate=(function(mat,vec,dest){var x=vec[0],y=vec[1],z=vec[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(!dest||mat===dest){mat[12]=mat[0]*x+mat[4]*y+mat[8]*z+mat[12];mat[13]=mat[1]*x+mat[5]*y+mat[9]*z+mat[13];mat[14]=mat[2]*x+mat[6]*y+mat[10]*z+mat[14];mat[15]=mat[3]*x+mat[7]*y+mat[11]*z+mat[15];return mat}a00=mat[0];a01=mat[1];a02=mat[2];a03=mat[3];a10=mat[4];a11=mat[5];a12=mat[6];a13=mat[7];a20=mat[8];a21=mat[9];a22=mat[10];a23=mat[11];dest[0]=a00;dest[1]=a01;dest[2]=a02;dest[3]=a03;dest[4]=a10;dest[5]=a11;dest[6]=a12;dest[7]=a13;dest[8]=a20;dest[9]=a21;dest[10]=a22;dest[11]=a23;dest[12]=a00*x+a10*y+a20*z+mat[12];dest[13]=a01*x+a11*y+a21*z+mat[13];dest[14]=a02*x+a12*y+a22*z+mat[14];dest[15]=a03*x+a13*y+a23*z+mat[15];return dest});mat4.scale=(function(mat,vec,dest){var x=vec[0],y=vec[1],z=vec[2];if(!dest||mat===dest){mat[0]*=x;mat[1]*=x;mat[2]*=x;mat[3]*=x;mat[4]*=y;mat[5]*=y;mat[6]*=y;mat[7]*=y;mat[8]*=z;mat[9]*=z;mat[10]*=z;mat[11]*=z;return mat}dest[0]=mat[0]*x;dest[1]=mat[1]*x;dest[2]=mat[2]*x;dest[3]=mat[3]*x;dest[4]=mat[4]*y;dest[5]=mat[5]*y;dest[6]=mat[6]*y;dest[7]=mat[7]*y;dest[8]=mat[8]*z;dest[9]=mat[9]*z;dest[10]=mat[10]*z;dest[11]=mat[11]*z;dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15];return dest});mat4.rotate=(function(mat,angle,axis,dest){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(!len){return null}if(len!==1){len=1/len;x*=len;y*=len;z*=len}s=Math.sin(angle);c=Math.cos(angle);t=1-c;a00=mat[0];a01=mat[1];a02=mat[2];a03=mat[3];a10=mat[4];a11=mat[5];a12=mat[6];a13=mat[7];a20=mat[8];a21=mat[9];a22=mat[10];a23=mat[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;if(!dest){dest=mat}else if(mat!==dest){dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15]}dest[0]=a00*b00+a10*b01+a20*b02;dest[1]=a01*b00+a11*b01+a21*b02;dest[2]=a02*b00+a12*b01+a22*b02;dest[3]=a03*b00+a13*b01+a23*b02;dest[4]=a00*b10+a10*b11+a20*b12;dest[5]=a01*b10+a11*b11+a21*b12;dest[6]=a02*b10+a12*b11+a22*b12;dest[7]=a03*b10+a13*b11+a23*b12;dest[8]=a00*b20+a10*b21+a20*b22;dest[9]=a01*b20+a11*b21+a21*b22;dest[10]=a02*b20+a12*b21+a22*b22;dest[11]=a03*b20+a13*b21+a23*b22;return dest});mat4.rotateX=(function(mat,angle,dest){var s=Math.sin(angle),c=Math.cos(angle),a10=mat[4],a11=mat[5],a12=mat[6],a13=mat[7],a20=mat[8],a21=mat[9],a22=mat[10],a23=mat[11];if(!dest){dest=mat}else if(mat!==dest){dest[0]=mat[0];dest[1]=mat[1];dest[2]=mat[2];dest[3]=mat[3];dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15]}dest[4]=a10*c+a20*s;dest[5]=a11*c+a21*s;dest[6]=a12*c+a22*s;dest[7]=a13*c+a23*s;dest[8]=a10*-s+a20*c;dest[9]=a11*-s+a21*c;dest[10]=a12*-s+a22*c;dest[11]=a13*-s+a23*c;return dest});mat4.rotateY=(function(mat,angle,dest){var s=Math.sin(angle),c=Math.cos(angle),a00=mat[0],a01=mat[1],a02=mat[2],a03=mat[3],a20=mat[8],a21=mat[9],a22=mat[10],a23=mat[11];if(!dest){dest=mat}else if(mat!==dest){dest[4]=mat[4];dest[5]=mat[5];dest[6]=mat[6];dest[7]=mat[7];dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15]}dest[0]=a00*c+a20*-s;dest[1]=a01*c+a21*-s;dest[2]=a02*c+a22*-s;dest[3]=a03*c+a23*-s;dest[8]=a00*s+a20*c;dest[9]=a01*s+a21*c;dest[10]=a02*s+a22*c;dest[11]=a03*s+a23*c;return dest});mat4.rotateZ=(function(mat,angle,dest){var s=Math.sin(angle),c=Math.cos(angle),a00=mat[0],a01=mat[1],a02=mat[2],a03=mat[3],a10=mat[4],a11=mat[5],a12=mat[6],a13=mat[7];if(!dest){dest=mat}else if(mat!==dest){dest[8]=mat[8];dest[9]=mat[9];dest[10]=mat[10];dest[11]=mat[11];dest[12]=mat[12];dest[13]=mat[13];dest[14]=mat[14];dest[15]=mat[15]}dest[0]=a00*c+a10*s;dest[1]=a01*c+a11*s;dest[2]=a02*c+a12*s;dest[3]=a03*c+a13*s;dest[4]=a00*-s+a10*c;dest[5]=a01*-s+a11*c;dest[6]=a02*-s+a12*c;dest[7]=a03*-s+a13*c;return dest});mat4.frustum=(function(left,right,bottom,top,near,far,dest){if(!dest){dest=mat4.create()}var rl=right-left,tb=top-bottom,fn=far-near;dest[0]=near*2/rl;dest[1]=0;dest[2]=0;dest[3]=0;dest[4]=0;dest[5]=near*2/tb;dest[6]=0;dest[7]=0;dest[8]=(right+left)/rl;dest[9]=(top+bottom)/tb;dest[10]=-(far+near)/fn;dest[11]=-1;dest[12]=0;dest[13]=0;dest[14]=-(far*near*2)/fn;dest[15]=0;return dest});mat4.perspective=(function(fovy,aspect,near,far,dest){var top=near*Math.tan(fovy*Math.PI/360),right=top*aspect;return mat4.frustum(-right,right,-top,top,near,far,dest)});mat4.ortho=(function(left,right,bottom,top,near,far,dest){if(!dest){dest=mat4.create()}var rl=right-left,tb=top-bottom,fn=far-near;dest[0]=2/rl;dest[1]=0;dest[2]=0;dest[3]=0;dest[4]=0;dest[5]=2/tb;dest[6]=0;dest[7]=0;dest[8]=0;dest[9]=0;dest[10]=-2/fn;dest[11]=0;dest[12]=-(left+right)/rl;dest[13]=-(top+bottom)/tb;dest[14]=-(far+near)/fn;dest[15]=1;return dest});mat4.lookAt=(function(eye,center,up,dest){if(!dest){dest=mat4.create()}var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(eyex===centerx&&eyey===centery&&eyez===centerz){return mat4.identity(dest)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}dest[0]=x0;dest[1]=y0;dest[2]=z0;dest[3]=0;dest[4]=x1;dest[5]=y1;dest[6]=z1;dest[7]=0;dest[8]=x2;dest[9]=y2;dest[10]=z2;dest[11]=0;dest[12]=-(x0*eyex+x1*eyey+x2*eyez);dest[13]=-(y0*eyex+y1*eyey+y2*eyez);dest[14]=-(z0*eyex+z1*eyey+z2*eyez);dest[15]=1;return dest});mat4.fromRotationTranslation=(function(quat,vec,dest){if(!dest){dest=mat4.create()}var x=quat[0],y=quat[1],z=quat[2],w=quat[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;dest[0]=1-(yy+zz);dest[1]=xy+wz;dest[2]=xz-wy;dest[3]=0;dest[4]=xy-wz;dest[5]=1-(xx+zz);dest[6]=yz+wx;dest[7]=0;dest[8]=xz+wy;dest[9]=yz-wx;dest[10]=1-(xx+yy);dest[11]=0;dest[12]=vec[0];dest[13]=vec[1];dest[14]=vec[2];dest[15]=1;return dest});mat4.str=(function(mat){return"["+mat[0]+", "+mat[1]+", "+mat[2]+", "+mat[3]+", "+mat[4]+", "+mat[5]+", "+mat[6]+", "+mat[7]+", "+mat[8]+", "+mat[9]+", "+mat[10]+", "+mat[11]+", "+mat[12]+", "+mat[13]+", "+mat[14]+", "+mat[15]+"]"});quat4.create=(function(quat){var dest=new MatrixArray(4);if(quat){dest[0]=quat[0];dest[1]=quat[1];dest[2]=quat[2];dest[3]=quat[3]}return dest});quat4.set=(function(quat,dest){dest[0]=quat[0];dest[1]=quat[1];dest[2]=quat[2];dest[3]=quat[3];return dest});quat4.calculateW=(function(quat,dest){var x=quat[0],y=quat[1],z=quat[2];if(!dest||quat===dest){quat[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return quat}dest[0]=x;dest[1]=y;dest[2]=z;dest[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return dest});quat4.dot=(function(quat,quat2){return quat[0]*quat2[0]+quat[1]*quat2[1]+quat[2]*quat2[2]+quat[3]*quat2[3]});quat4.inverse=(function(quat,dest){var q0=quat[0],q1=quat[1],q2=quat[2],q3=quat[3],dot=q0*q0+q1*q1+q2*q2+q3*q3,invDot=dot?1/dot:0;if(!dest||quat===dest){quat[0]*=-invDot;quat[1]*=-invDot;quat[2]*=-invDot;quat[3]*=invDot;return quat}dest[0]=-quat[0]*invDot;dest[1]=-quat[1]*invDot;dest[2]=-quat[2]*invDot;dest[3]=quat[3]*invDot;return dest});quat4.conjugate=(function(quat,dest){if(!dest||quat===dest){quat[0]*=-1;quat[1]*=-1;quat[2]*=-1;return quat}dest[0]=-quat[0];dest[1]=-quat[1];dest[2]=-quat[2];dest[3]=quat[3];return dest});quat4.length=(function(quat){var x=quat[0],y=quat[1],z=quat[2],w=quat[3];return Math.sqrt(x*x+y*y+z*z+w*w)});quat4.normalize=(function(quat,dest){if(!dest){dest=quat}var x=quat[0],y=quat[1],z=quat[2],w=quat[3],len=Math.sqrt(x*x+y*y+z*z+w*w);if(len===0){dest[0]=0;dest[1]=0;dest[2]=0;dest[3]=0;return dest}len=1/len;dest[0]=x*len;dest[1]=y*len;dest[2]=z*len;dest[3]=w*len;return dest});quat4.add=(function(quat,quat2,dest){if(!dest||quat===dest){quat[0]+=quat2[0];quat[1]+=quat2[1];quat[2]+=quat2[2];quat[3]+=quat2[3];return quat}dest[0]=quat[0]+quat2[0];dest[1]=quat[1]+quat2[1];dest[2]=quat[2]+quat2[2];dest[3]=quat[3]+quat2[3];return dest});quat4.multiply=(function(quat,quat2,dest){if(!dest){dest=quat}var qax=quat[0],qay=quat[1],qaz=quat[2],qaw=quat[3],qbx=quat2[0],qby=quat2[1],qbz=quat2[2],qbw=quat2[3];dest[0]=qax*qbw+qaw*qbx+qay*qbz-qaz*qby;dest[1]=qay*qbw+qaw*qby+qaz*qbx-qax*qbz;dest[2]=qaz*qbw+qaw*qbz+qax*qby-qay*qbx;dest[3]=qaw*qbw-qax*qbx-qay*qby-qaz*qbz;return dest});quat4.multiplyVec3=(function(quat,vec,dest){if(!dest){dest=vec}var x=vec[0],y=vec[1],z=vec[2],qx=quat[0],qy=quat[1],qz=quat[2],qw=quat[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;dest[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;dest[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;dest[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return dest});quat4.scale=(function(quat,val,dest){if(!dest||quat===dest){quat[0]*=val;quat[1]*=val;quat[2]*=val;quat[3]*=val;return quat}dest[0]=quat[0]*val;dest[1]=quat[1]*val;dest[2]=quat[2]*val;dest[3]=quat[3]*val;return dest});quat4.toMat3=(function(quat,dest){if(!dest){dest=mat3.create()}var x=quat[0],y=quat[1],z=quat[2],w=quat[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;dest[0]=1-(yy+zz);dest[1]=xy+wz;dest[2]=xz-wy;dest[3]=xy-wz;dest[4]=1-(xx+zz);dest[5]=yz+wx;dest[6]=xz+wy;dest[7]=yz-wx;dest[8]=1-(xx+yy);return dest});quat4.toMat4=(function(quat,dest){if(!dest){dest=mat4.create()}var x=quat[0],y=quat[1],z=quat[2],w=quat[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;dest[0]=1-(yy+zz);dest[1]=xy+wz;dest[2]=xz-wy;dest[3]=0;dest[4]=xy-wz;dest[5]=1-(xx+zz);dest[6]=yz+wx;dest[7]=0;dest[8]=xz+wy;dest[9]=yz-wx;dest[10]=1-(xx+yy);dest[11]=0;dest[12]=0;dest[13]=0;dest[14]=0;dest[15]=1;return dest});quat4.slerp=(function(quat,quat2,slerp,dest){if(!dest){dest=quat}var cosHalfTheta=quat[0]*quat2[0]+quat[1]*quat2[1]+quat[2]*quat2[2]+quat[3]*quat2[3],halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(dest!==quat){dest[0]=quat[0];dest[1]=quat[1];dest[2]=quat[2];dest[3]=quat[3]}return dest}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){dest[0]=quat[0]*.5+quat2[0]*.5;dest[1]=quat[1]*.5+quat2[1]*.5;dest[2]=quat[2]*.5+quat2[2]*.5;dest[3]=quat[3]*.5+quat2[3]*.5;return dest}ratioA=Math.sin((1-slerp)*halfTheta)/sinHalfTheta;ratioB=Math.sin(slerp*halfTheta)/sinHalfTheta;dest[0]=quat[0]*ratioA+quat2[0]*ratioB;dest[1]=quat[1]*ratioA+quat2[1]*ratioB;dest[2]=quat[2]*ratioA+quat2[2]*ratioB;dest[3]=quat[3]*ratioA+quat2[3]*ratioB;return dest});quat4.str=(function(quat){return"["+quat[0]+", "+quat[1]+", "+quat[2]+", "+quat[3]+"]"});return{vec3:vec3,mat3:mat3,mat4:mat4,quat4:quat4}})();var GLImmediateSetup={};function _glEnable(x0){GLctx.enable(x0)}function _glDisable(x0){GLctx.disable(x0)}function _glIsEnabled(x0){return GLctx.isEnabled(x0)}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=="Integer"&&type!=="Integer64"){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats.length;break;case 35738:ret=5121;break;case 35739:ret=6408;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34068:{ret=0;break};default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case"Integer":HEAP32[p+i*4>>2]=result[i];break;case"Float":HEAPF32[p+i*4>>2]=result[i];break;case"Boolean":HEAP8[p+i>>0]=result[i]?1:0;break;default:throw"internal glGet error, bad type: "+type}}return}else if(result instanceof WebGLBuffer||result instanceof WebGLProgram||result instanceof WebGLFramebuffer||result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}}switch(type){case"Integer64":tempI64=[ret>>>0,(tempDouble=ret,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[p>>2]=tempI64[0],HEAP32[p+4>>2]=tempI64[1];break;case"Integer":HEAP32[p>>2]=ret;break;case"Float":HEAPF32[p>>2]=ret;break;case"Boolean":HEAP8[p>>0]=ret?1:0;break;default:throw"internal glGet error, bad type: "+type}}function _glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,"Boolean")}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,"Integer")}function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];var ret;switch(name_){case 7936:case 7937:case 7938:ret=allocate(intArrayFromString(GLctx.getParameter(name_)),"i8",ALLOC_NORMAL);break;case 7939:var exts=GLctx.getSupportedExtensions();var gl_exts=[];for(var i in exts){gl_exts.push(exts[i]);gl_exts.push("GL_"+exts[i])}ret=allocate(intArrayFromString(gl_exts.join(" ")),"i8",ALLOC_NORMAL);break;case 35724:ret=allocate(intArrayFromString("OpenGL ES GLSL 1.00 (WebGL)"),"i8",ALLOC_NORMAL);break;default:GL.recordError(1280);return 0}GL.stringCache[name_]=ret;return ret}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glUseProgram(program){GLctx.useProgram(program?GL.programs[program]:null)}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null;GL.programInfos[id]=null}function _glBindAttribLocation(program,index,name){name=Pointer_stringify(name);GLctx.bindAttribLocation(GL.programs[program],index,name)}function _glLinkProgram(program){GLctx.linkProgram(GL.programs[program]);GL.programInfos[program]=null;GL.populateUniformTable(program)}function _glBindBuffer(target,buffer){var bufferObj=buffer?GL.buffers[buffer]:null;if(target==GLctx.ARRAY_BUFFER){GL.currArrayBuffer=buffer;GLImmediate.lastArrayBuffer=buffer}else if(target==GLctx.ELEMENT_ARRAY_BUFFER){GL.currElementArrayBuffer=buffer}GLctx.bindBuffer(target,bufferObj)}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,"Float")}function _glHint(x0,x1){GLctx.hint(x0,x1)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,normalized,stride,ptr)}function _glActiveTexture(x0){GLctx.activeTexture(x0)}var GLEmulation={fogStart:0,fogEnd:1,fogDensity:1,fogColor:null,fogMode:2048,fogEnabled:false,vaos:[],currentVao:null,enabledVertexAttribArrays:{},hasRunInit:false,init:(function(){if(GLEmulation.hasRunInit){return}GLEmulation.hasRunInit=true;GLEmulation.fogColor=new Float32Array(4);Module.printErr("WARNING: using emscripten GL emulation. This is a collection of limited workarounds, do not expect it to work.");Module.printErr("WARNING: using emscripten GL emulation unsafe opts. If weirdness happens, try -s GL_UNSAFE_OPTS=0");var validCapabilities={2884:1,3042:1,3024:1,2960:1,2929:1,3089:1,32823:1,32926:1,32928:1};var glEnable=_glEnable;_glEnable=_emscripten_glEnable=function _glEnable(cap){if(GLImmediate.lastRenderer)GLImmediate.lastRenderer.cleanup();if(cap==2912){if(GLEmulation.fogEnabled!=true){GLImmediate.currentRenderer=null;GLEmulation.fogEnabled=true}return}else if(cap==3553){return}else if(!(cap in validCapabilities)){return}glEnable(cap)};var glDisable=_glDisable;_glDisable=_emscripten_glDisable=function _glDisable(cap){if(GLImmediate.lastRenderer)GLImmediate.lastRenderer.cleanup();if(cap==2912){if(GLEmulation.fogEnabled!=false){GLImmediate.currentRenderer=null;GLEmulation.fogEnabled=false}return}else if(cap==3553){return}else if(!(cap in validCapabilities)){return}glDisable(cap)};_glIsEnabled=_emscripten_glIsEnabled=function _glIsEnabled(cap){if(cap==2912){return GLEmulation.fogEnabled?1:0}else if(!(cap in validCapabilities)){return 0}return GLctx.isEnabled(cap)};var glGetBooleanv=_glGetBooleanv;_glGetBooleanv=_emscripten_glGetBooleanv=function _glGetBooleanv(pname,p){var attrib=GLEmulation.getAttributeFromCapability(pname);if(attrib!==null){var result=GLImmediate.enabledClientAttributes[attrib];HEAP8[p>>0]=result===true?1:0;return}glGetBooleanv(pname,p)};var glGetIntegerv=_glGetIntegerv;_glGetIntegerv=_emscripten_glGetIntegerv=function _glGetIntegerv(pname,params){switch(pname){case 34018:pname=GLctx.MAX_TEXTURE_IMAGE_UNITS;break;case 35658:{var result=GLctx.getParameter(GLctx.MAX_VERTEX_UNIFORM_VECTORS);HEAP32[params>>2]=result*4;return};case 35657:{var result=GLctx.getParameter(GLctx.MAX_FRAGMENT_UNIFORM_VECTORS);HEAP32[params>>2]=result*4;return};case 35659:{var result=GLctx.getParameter(GLctx.MAX_VARYING_VECTORS);HEAP32[params>>2]=result*4;return};case 34929:pname=GLctx.MAX_COMBINED_TEXTURE_IMAGE_UNITS;break;case 32890:{var attribute=GLImmediate.clientAttributes[GLImmediate.VERTEX];HEAP32[params>>2]=attribute?attribute.size:0;return};case 32891:{var attribute=GLImmediate.clientAttributes[GLImmediate.VERTEX];HEAP32[params>>2]=attribute?attribute.type:0;return};case 32892:{var attribute=GLImmediate.clientAttributes[GLImmediate.VERTEX];HEAP32[params>>2]=attribute?attribute.stride:0;return};case 32897:{var attribute=GLImmediate.clientAttributes[GLImmediate.COLOR];HEAP32[params>>2]=attribute?attribute.size:0;return};case 32898:{var attribute=GLImmediate.clientAttributes[GLImmediate.COLOR];HEAP32[params>>2]=attribute?attribute.type:0;return};case 32899:{var attribute=GLImmediate.clientAttributes[GLImmediate.COLOR];HEAP32[params>>2]=attribute?attribute.stride:0;return};case 32904:{var attribute=GLImmediate.clientAttributes[GLImmediate.TEXTURE0+GLImmediate.clientActiveTexture];HEAP32[params>>2]=attribute?attribute.size:0;return};case 32905:{var attribute=GLImmediate.clientAttributes[GLImmediate.TEXTURE0+GLImmediate.clientActiveTexture];HEAP32[params>>2]=attribute?attribute.type:0;return};case 32906:{var attribute=GLImmediate.clientAttributes[GLImmediate.TEXTURE0+GLImmediate.clientActiveTexture];HEAP32[params>>2]=attribute?attribute.stride:0;return}}glGetIntegerv(pname,params)};var glGetString=_glGetString;_glGetString=_emscripten_glGetString=function _glGetString(name_){if(GL.stringCache[name_])return GL.stringCache[name_];switch(name_){case 7939:var ret=allocate(intArrayFromString(GLctx.getSupportedExtensions().join(" ")+" GL_EXT_texture_env_combine GL_ARB_texture_env_crossbar GL_ATI_texture_env_combine3 GL_NV_texture_env_combine4 GL_EXT_texture_env_dot3 GL_ARB_multitexture GL_ARB_vertex_buffer_object GL_EXT_framebuffer_object GL_ARB_vertex_program GL_ARB_fragment_program GL_ARB_shading_language_100 GL_ARB_shader_objects GL_ARB_vertex_shader GL_ARB_fragment_shader GL_ARB_texture_cube_map GL_EXT_draw_range_elements"+(GL.currentContext.compressionExt?" GL_ARB_texture_compression GL_EXT_texture_compression_s3tc":"")+(GL.currentContext.anisotropicExt?" GL_EXT_texture_filter_anisotropic":"")),"i8",ALLOC_NORMAL);GL.stringCache[name_]=ret;return ret}return glGetString(name_)};GL.shaderInfos={};var glCreateShader=_glCreateShader;_glCreateShader=_emscripten_glCreateShader=function _glCreateShader(shaderType){var id=glCreateShader(shaderType);GL.shaderInfos[id]={type:shaderType,ftransform:false};return id};function ensurePrecision(source){if(!/precision +(low|medium|high)p +float *;/.test(source)){source="precision mediump float;\n"+source}return source}var glShaderSource=_glShaderSource;_glShaderSource=_emscripten_glShaderSource=function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);if(GL.shaderInfos[shader].type==GLctx.VERTEX_SHADER){var has_pm=source.search(/u_projection/)>=0;var has_mm=source.search(/u_modelView/)>=0;var has_pv=source.search(/a_position/)>=0;var need_pm=0,need_mm=0,need_pv=0;var old=source;source=source.replace(/ftransform\(\)/g,"(u_projection * u_modelView * a_position)");if(old!=source)need_pm=need_mm=need_pv=1;old=source;source=source.replace(/gl_ProjectionMatrix/g,"u_projection");if(old!=source)need_pm=1;old=source;source=source.replace(/gl_ModelViewMatrixTranspose\[2\]/g,"vec4(u_modelView[0][2], u_modelView[1][2], u_modelView[2][2], u_modelView[3][2])");if(old!=source)need_mm=1;old=source;source=source.replace(/gl_ModelViewMatrix/g,"u_modelView");if(old!=source)need_mm=1;old=source;source=source.replace(/gl_Vertex/g,"a_position");if(old!=source)need_pv=1;old=source;source=source.replace(/gl_ModelViewProjectionMatrix/g,"(u_projection * u_modelView)");if(old!=source)need_pm=need_mm=1;if(need_pv&&!has_pv)source="attribute vec4 a_position; \n"+source;if(need_mm&&!has_mm)source="uniform mat4 u_modelView; \n"+source;if(need_pm&&!has_pm)source="uniform mat4 u_projection; \n"+source;GL.shaderInfos[shader].ftransform=need_pm||need_mm||need_pv;for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){var old=source;var need_vtc=source.search("v_texCoord"+i)==-1;source=source.replace(new RegExp("gl_TexCoord\\["+i+"\\]","g"),"v_texCoord"+i).replace(new RegExp("gl_MultiTexCoord"+i,"g"),"a_texCoord"+i);if(source!=old){source="attribute vec4 a_texCoord"+i+"; \n"+source;if(need_vtc){source="varying vec4 v_texCoord"+i+"; \n"+source}}old=source;source=source.replace(new RegExp("gl_TextureMatrix\\["+i+"\\]","g"),"u_textureMatrix"+i);if(source!=old){source="uniform mat4 u_textureMatrix"+i+"; \n"+source}}if(source.indexOf("gl_FrontColor")>=0){source="varying vec4 v_color; \n"+source.replace(/gl_FrontColor/g,"v_color")}if(source.indexOf("gl_Color")>=0){source="attribute vec4 a_color; \n"+source.replace(/gl_Color/g,"a_color")}if(source.indexOf("gl_Normal")>=0){source="attribute vec3 a_normal; \n"+source.replace(/gl_Normal/g,"a_normal")}if(source.indexOf("gl_FogFragCoord")>=0){source="varying float v_fogFragCoord; \n"+source.replace(/gl_FogFragCoord/g,"v_fogFragCoord")}source=ensurePrecision(source)}else{for(var i=0;i<GLImmediate.MAX_TEXTURES;i++){var old=source;source=source.replace(new RegExp("gl_TexCoord\\["+i+"\\]","g"),"v_texCoord"+i);if(source!=old){source="varying vec4 v_texCoord"+i+"; \n"+source}}if(source.indexOf("gl_Color")>=0){source="varying vec4 v_color; \n"+source.replace(/gl_Color/g,"v_color")}if(source.indexOf("gl_Fog.color")>=0){source="uniform vec4 u_fogColor; \n"+source.replace(/gl_Fog.color/g,"u_fogColor")}if(source.indexOf("gl_Fog.end")>=0){source="uniform float u_fogEnd; \n"+source.replace(/gl_Fog.end/g,"u_fogEnd")}if(source.indexOf("gl_Fog.scale")>=0){source="uniform float u_fogScale; \n"+source.replace(/gl_Fog.scale/g,"u_fogScale")}if(source.indexOf("gl_Fog.density")>=0){source="uniform float u_fogDensity; \n"+source.replace(/gl_Fog.density/g,"u_fogDensity")}if(source.indexOf("gl_FogFragCoord")>=0){source="varying float v_fogFragCoord; \n"+source.replace(/gl_FogFragCoord/g,"v_fogFragCoord")}source=ensurePrecision(source)}GLctx.shaderSource(GL.shaders[shader],source)};var glCompileShader=_glCompileShader;_glCompileShader=_emscripten_glCompileShader=function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])};GL.programShaders={};var glAttachShader=_glAttachShader;_glAttachShader=_emscripten_glAttachShader=function _glAttachShader(program,shader){if(!GL.programShaders[program])GL.programShaders[program]=[];GL.programShaders[program].push(shader);glAttachShader(program,shader)};var glDetachShader=_glDetachShader;_glDetachShader=_emscripten_glDetachShader=function _glDetachShader(program,shader){var programShader=GL.programShaders[program];if(!programShader){Module.printErr("WARNING: _glDetachShader received invalid program: "+program);return}var index=programShader.indexOf(shader);programShader.splice(index,1);glDetachShader(program,shader)};var glUseProgram=_glUseProgram;_glUseProgram=_emscripten_glUseProgram=function _glUseProgram(program){if(GL.currProgram!=program){GLImmediate.currentRenderer=null;GL.currProgram=program;GLImmediate.fixedFunctionProgram=0;glUseProgram(program)}};var glDeleteProgram=_glDeleteProgram;_glDeleteProgram=_emscripten_glDeleteProgram=function _glDeleteProgram(program){glDeleteProgram(program);if(program==GL.currProgram){GLImmediate.currentRenderer=null;GL.currProgram=0}};var zeroUsedPrograms={};var glBindAttribLocation=_glBindAttribLocation;_glBindAttribLocation=_emscripten_glBindAttribLocation=function _glBindAttribLocation(program,index,name){if(index==0)zeroUsedPrograms[program]=true;glBindAttribLocation(program,index,name)};var glLinkProgram=_glLinkProgram;_glLinkProgram=_emscripten_glLinkProgram=function _glLinkProgram(program){if(!(program in zeroUsedPrograms)){GLctx.bindAttribLocation(GL.programs[program],0,"a_position")}glLinkProgram(program)};var glBindBuffer=_glBindBuffer;_glBindBuffer=_emscripten_glBindBuffer=function _glBindBuffer(target,buffer){glBindBuffer(target,buffer);if(target==GLctx.ARRAY_BUFFER){if(GLEmulation.currentVao){GLEmulation.currentVao.arrayBuffer=buffer}}else if(target==GLctx.ELEMENT_ARRAY_BUFFER){if(GLEmulation.currentVao)GLEmulation.currentVao.elementArrayBuffer=buffer}};var glGetFloatv=_glGetFloatv;_glGetFloatv=_emscripten_glGetFloatv=function _glGetFloatv(pname,params){if(pname==2982){HEAPF32.set(GLImmediate.matrix[0],params>>2)}else if(pname==2983){HEAPF32.set(GLImmediate.matrix[1],params>>2)}else if(pname==2984){HEAPF32.set(GLImmediate.matrix[2+GLImmediate.clientActiveTexture],params>>2)}else if(pname==2918){HEAPF32.set(GLEmulation.fogColor,params>>2)}else if(pname==2915){HEAPF32[params>>2]=GLEmulation.fogStart}else if(pname==2916){HEAPF32[params>>2]=GLEmulation.fogEnd}else if(pname==2914){HEAPF32[params>>2]=GLEmulation.fogDensity}else if(pname==2917){HEAPF32[params>>2]=GLEmulation.fogMode}else{glGetFloatv(pname,params)}};var glHint=_glHint;_glHint=_emscripten_glHint=function _glHint(target,mode){if(target==34031){return}glHint(target,mode)};var glEnableVertexAttribArray=_glEnableVertexAttribArray;_glEnableVertexAttribArray=_emscripten_glEnableVertexAttribArray=function _glEnableVertexAttribArray(index){glEnableVertexAttribArray(index);GLEmulation.enabledVertexAttribArrays[index]=1;if(GLEmulation.currentVao)GLEmulation.currentVao.enabledVertexAttribArrays[index]=1};var glDisableVertexAttribArray=_glDisableVertexAttribArray;_glDisableVertexAttribArray=_emscripten_glDisableVertexAttribArray=function _glDisableVertexAttribArray(index){glDisableVertexAttribArray(index);delete GLEmulation.enabledVertexAttribArrays[index];if(GLEmulation.currentVao)delete GLEmulation.currentVao.enabledVertexAttribArrays[index]};var glVertexAttribPointer=_glVertexAttribPointer;_glVertexAttribPointer=_emscripten_glVertexAttribPointer=function _glVertexAttribPointer(index,size,type,normalized,stride,pointer){glVertexAttribPointer(index,size,type,normalized,stride,pointer);if(GLEmulation.currentVao){GLEmulation.currentVao.vertexAttribPointers[index]=[index,size,type,normalized,stride,pointer]}}}),getAttributeFromCapability:(function(cap){var attrib=null;switch(cap){case 3553:case 32888:attrib=GLImmediate.TEXTURE0+GLImmediate.clientActiveTexture;break;case 32884:attrib=GLImmediate.VERTEX;break;case 32885:attrib=GLImmediate.NORMAL;break;case 32886:attrib=GLImmediate.COLOR;break}return attrib})};function _glVertexPointer(size,type,stride,pointer){GLImmediate.setClientAttribute(GLImmediate.VERTEX,size,type,stride,pointer)}function _SDL_SetVideoMode(width,height,depth,flags){["touchstart","touchend","touchmove","mousedown","mouseup","mousemove","DOMMouseScroll","mousewheel","wheel","mouseout"].forEach((function(event){Module["canvas"].addEventListener(event,SDL.receiveEvent,true)}));var canvas=Module["canvas"];if(width==0&&height==0){width=canvas.width;height=canvas.height}if(!SDL.addedResizeListener){SDL.addedResizeListener=true;Browser.resizeListeners.push((function(w,h){if(!SDL.settingVideoMode){SDL.receiveEvent({type:"resize",w:w,h:h})}}))}if(width!==canvas.width||height!==canvas.height){SDL.settingVideoMode=true;Browser.setCanvasSize(width,height);SDL.settingVideoMode=false}if(SDL.screen){SDL.freeSurface(SDL.screen);assert(!SDL.screen)}if(SDL.GL)flags=flags|67108864;SDL.screen=SDL.makeSurface(width,height,flags,true,"screen");return SDL.screen}function _Mix_AllocateChannels(num){SDL.allocateChannels(num);return num}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _Mix_PlayChannelTimed(){return _Mix_PlayChannel.apply(null,arguments)}function _Mix_FreeMusic(){return _Mix_FreeChunk.apply(null,arguments)}var PTHREAD_SPECIFIC={};var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _glPopMatrix(){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrix[GLImmediate.currentMatrix]=GLImmediate.matrixStack[GLImmediate.currentMatrix].pop()}function _glClear(x0){GLctx.clear(x0)}function _glScalef(x,y,z){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixLib.mat4.scale(GLImmediate.matrix[GLImmediate.currentMatrix],[x,y,z])}function _emscripten_get_now(){if(!_emscripten_get_now.actual){if(ENVIRONMENT_IS_NODE){_emscripten_get_now.actual=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now.actual=dateNow}else if(typeof self==="object"&&self["performance"]&&typeof self["performance"]["now"]==="function"){_emscripten_get_now.actual=function _emscripten_get_now_actual(){return self["performance"]["now"]()}}else if(typeof performance==="object"&&typeof performance["now"]==="function"){_emscripten_get_now.actual=function _emscripten_get_now_actual(){return performance["now"]()}}else{_emscripten_get_now.actual=Date.now}}return _emscripten_get_now.actual()}var GLFW={Window:(function(id,width,height,title,monitor,share){this.id=id;this.x=0;this.y=0;this.storedX=0;this.storedY=0;this.width=width;this.height=height;this.storedWidth=width;this.storedHeight=height;this.title=title;this.monitor=monitor;this.share=share;this.attributes=GLFW.hints;this.inputModes={208897:212993,208898:0,208899:0};this.buttons=0;this.keys=new Array;this.shouldClose=0;this.title=null;this.windowPosFunc=null;this.windowSizeFunc=null;this.windowCloseFunc=null;this.windowRefreshFunc=null;this.windowFocusFunc=null;this.windowIconifyFunc=null;this.framebufferSizeFunc=null;this.mouseButtonFunc=null;this.cursorPosFunc=null;this.cursorEnterFunc=null;this.scrollFunc=null;this.keyFunc=null;this.charFunc=null;this.userptr=null}),WindowFromId:(function(id){if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]}),errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:(function(keycode){switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 97:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 94;case 27:return 256;case 13:return 257;case 9:return 258;case 8:return 259;case 45:return 260;case 46:return 261;case 39:return 262;case 37:return 263;case 40:return 264;case 38:return 265;case 33:return 266;case 34:return 267;case 36:return 268;case 35:return 269;case 20:return 280;case 145:return 281;case 144:return 282;case 44:return 283;case 19:return 284;case 112:return 290;case 113:return 291;case 114:return 292;case 115:return 293;case 116:return 294;case 117:return 295;case 118:return 296;case 119:return 297;case 120:return 298;case 121:return 299;case 122:return 300;case 123:return 301;case 124:return 302;case 125:return 303;case 126:return 304;case 127:return 305;case 128:return 306;case 129:return 307;case 130:return 308;case 131:return 309;case 132:return 310;case 133:return 311;case 134:return 312;case 135:return 313;case 136:return 314;case 96:return 320;case 97:return 321;case 98:return 322;case 99:return 323;case 100:return 324;case 101:return 325;case 102:return 326;case 103:return 327;case 104:return 328;case 105:return 329;case 110:return 330;case 111:return 331;case 106:return 332;case 109:return 333;case 107:return 334;case 16:return 340;case 17:return 341;case 18:return 342;case 91:return 343;case 93:return 348;default:return-1}}),getModBits:(function(win){var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343])mod|=8;return mod}),onKeyPress:(function(event){if(!GLFW.active||!GLFW.active.charFunc)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;Runtime.dynCall("vii",GLFW.active.charFunc,[charCode,1])}),onKeyChanged:(function(event,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(event.keyCode);if(key==-1)return;GLFW.active.keys[key]=status;if(!GLFW.active.keyFunc)return;Runtime.dynCall("vii",GLFW.active.keyFunc,[key,status])}),onKeydown:(function(event){GLFW.onKeyChanged(event,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}}),onKeyup:(function(event){GLFW.onKeyChanged(event,0)}),onMousemove:(function(event){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"]||!GLFW.active.cursorPosFunc)return;Runtime.dynCall("vii",GLFW.active.cursorPosFunc,[Browser.mouseX,Browser.mouseY])}),onMouseButtonChanged:(function(event,status){if(!GLFW.active||!GLFW.active.mouseButtonFunc)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;if(status==1){try{event.target.setCapture()}catch(e){}}var eventButton=event["button"];if(eventButton>0){if(eventButton==1){eventButton=2}else{eventButton=1}}Runtime.dynCall("vii",GLFW.active.mouseButtonFunc,[eventButton,status])}),onMouseButtonDown:(function(event){if(!GLFW.active)return;GLFW.active.buttons|=1<<event["button"];GLFW.onMouseButtonChanged(event,1)}),onMouseButtonUp:(function(event){if(!GLFW.active)return;GLFW.active.buttons&=~(1<<event["button"]);GLFW.onMouseButtonChanged(event,0)}),onMouseWheel:(function(event){var delta=-Browser.getMouseWheelDelta(event);delta=delta==0?0:delta>0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;Runtime.dynCall("vi",GLFW.active.scrollFunc,[GLFW.wheelPos]);event.preventDefault()}),onFullScreenEventChange:(function(){if(!GLFW.active)return;if(document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height}else{GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight}Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);if(!GLFW.active.windowSizeFunc)return;Runtime.dynCall("vii",GLFW.active.windowSizeFunc,[GLFW.active.width,GLFW.active.height])}),requestFullScreen:(function(){var RFS=Module["canvas"]["requestFullscreen"]||Module["canvas"]["requestFullScreen"]||Module["canvas"]["mozRequestFullScreen"]||Module["canvas"]["webkitRequestFullScreen"]||(function(){});RFS.apply(Module["canvas"],[])}),cancelFullScreen:(function(){var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["webkitCancelFullScreen"]||(function(){});CFS.apply(document,[])}),getTime:(function(){return _emscripten_get_now()/1e3}),setWindowTitle:(function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=Pointer_stringify(title);if(GLFW.active.id==win.id){document.title=win.title}}),setKeyCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.keyFunc=cbfun}),setCharCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.charFunc=cbfun}),setMouseButtonCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.mouseButtonFunc=cbfun}),setCursorPosCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.cursorPosFunc=cbfun}),setScrollCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.scrollFunc=cbfun}),setWindowSizeCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.windowSizeFunc=cbfun}),setWindowCloseCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.windowCloseFunc=cbfun}),setWindowRefreshCallback:(function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return;win.windowRefreshFunc=cbfun}),getKey:(function(winid,key){var win=GLFW.WindowFromId(winid);if(!win)return 0;return win.keys[key]}),getMouseButton:(function(winid,button){var win=GLFW.WindowFromId(winid);if(!win)return 0;return(win.buttons&1<<button)>0}),getCursorPos:(function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")}),getMousePos:(function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")}),setCursorPos:(function(winid,x,y){}),getWindowPos:(function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}setValue(x,wx,"i32");setValue(y,wy,"i32")}),setWindowPos:(function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y}),getWindowSize:(function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}setValue(width,ww,"i32");setValue(height,wh,"i32")}),setWindowSize:(function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){GLFW.requestFullScreen()}else{GLFW.cancelFullScreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowResizeFunc)return;Runtime.dynCall("vii",win.windowResizeFunc,[width,height])}),createWindow:(function(width,height,title,monitor,share){var i,id;for(i=0;i<GLFW.windows.length&&GLFW.windows[i]!==null;i++);if(i>0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){GLFW.requestFullScreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i<GLFW.windows.length&&GLFW.windows[i]==null;i++);if(i==GLFW.windows.length){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}if(!Module.ctx)return 0;var win=new GLFW.Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id}),destroyWindow:(function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i<GLFW.windows.length;i++)if(GLFW.windows[i]!==null)return;Module.ctx=Browser.destroyContext(Module["canvas"],true,true)}),swapBuffers:(function(winid){}),GLFW2ParamToGLFW3Param:(function(param){table={196609:0,196610:0,196611:0,196612:0,196613:0,196614:0,131073:0,131074:0,131075:0,131076:0,131077:135169,131078:135170,131079:135171,131080:135172,131081:135173,131082:135174,131083:135183,131084:135175,131085:135176,131086:135177,131087:135178,131088:135179,131089:135180,131090:0,131091:135181,131092:139266,131093:139267,131094:139270,131095:139271,131096:139272};return table[param]})};function _glfwGetTime(){return GLFW.getTime()-GLFW.initialTime}function _glRotatef(angle,x,y,z){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixLib.mat4.rotate(GLImmediate.matrix[GLImmediate.currentMatrix],angle*Math.PI/180,[x,y,z])}function _SDL_GetError(){if(!SDL.errorMessage){SDL.errorMessage=allocate(intArrayFromString("unknown SDL-emscripten error"),"i8",ALLOC_NORMAL)}return SDL.errorMessage}var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:(function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);dir=dirstream.path}path=PATH.join2(dir,path)}return path}),doStat:(function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-ERRNO_CODES.ENOTDIR}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);ret=ret.slice(0,Math.max(0,bufsize));writeStringToMemory(ret,buf,true);return ret.length}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}),doWritev:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _Migal_HideLink(id){id=Pointer_stringify(id);var el=document.getElementById(id);el.style.display="none"}function _glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}function _glfwOpenWindow(width,height,redbits,greenbits,bluebits,alphabits,depthbits,stencilbits,mode){GLFW.hints[135169]=redbits;GLFW.hints[135170]=greenbits;GLFW.hints[135171]=bluebits;GLFW.hints[135172]=alphabits;GLFW.hints[135173]=depthbits;GLFW.hints[135174]=stencilbits;GLFW.createWindow(width,height,"GLFW2 Window",0,0);return 1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function _SDL_NumJoysticks(){var count=0;var gamepads=SDL.getGamepads();for(var i=0;i<gamepads.length;i++){if(gamepads[i]!==undefined)count++}return count}var _BDtoIHigh=true;function _pthread_cleanup_push(routine,arg){__ATEXIT__.push((function(){Runtime.dynCall("vi",routine,[arg])}));_pthread_cleanup_push.level=__ATEXIT__.length}function _glDisableClientState(cap){var attrib=GLEmulation.getAttributeFromCapability(cap);if(attrib===null){return}if(GLImmediate.enabledClientAttributes[attrib]){GLImmediate.enabledClientAttributes[attrib]=false;GLImmediate.totalEnabledClientAttributes--;GLImmediate.currentRenderer=null;if(GLEmulation.currentVao)delete GLEmulation.currentVao.enabledClientStates[cap];GLImmediate.modifiedClientAttributes=true}}function _glGetError(){if(GL.lastError){var error=GL.lastError;GL.lastError=0;return error}else{return GLctx.getError()}}function _pthread_cleanup_pop(){assert(_pthread_cleanup_push.level==__ATEXIT__.length,"cannot pop if something else added meanwhile!");__ATEXIT__.pop();_pthread_cleanup_push.level=__ATEXIT__.length}function _glfwSetMousePosCallback(cbfun){GLFW.setCursorPosCallback(GLFW.active.id,cbfun)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;assert(Runtime.dynamicAlloc);self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=(function(){abort("cannot dynamically allocate, sbrk now has control")})}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}Module["_memmove"]=_memmove;function _glGenTextures(n,textures){for(var i=0;i<n;i++){var texture=GLctx.createTexture();if(!texture){GL.recordError(1282);while(i<n)HEAP32[textures+i++*4>>2]=0;return}var id=GL.getNewId(GL.textures);texture.name=id;GL.textures[id]=texture;HEAP32[textures+i*4>>2]=id}}function _glDepthFunc(x0){GLctx.depthFunc(x0)}function _glfwInit(){if(GLFW.windows)return 1;GLFW.initialTime=GLFW.getTime();GLFW.hints=GLFW.defaultHints;GLFW.windows=new Array;GLFW.active=null;window.addEventListener("keydown",GLFW.onKeydown,true);window.addEventListener("keypress",GLFW.onKeyPress,true);window.addEventListener("keyup",GLFW.onKeyup,true);Module["canvas"].addEventListener("mousemove",GLFW.onMousemove,true);Module["canvas"].addEventListener("mousedown",GLFW.onMouseButtonDown,true);Module["canvas"].addEventListener("mouseup",GLFW.onMouseButtonUp,true);Module["canvas"].addEventListener("wheel",GLFW.onMouseWheel,true);Module["canvas"].addEventListener("mousewheel",GLFW.onMouseWheel,true);Browser.resizeListeners.push((function(width,height){GLFW.onFullScreenEventChange()}));return 1}function _glfwSwapBuffers(){GLFW.swapBuffers(GLFW.active.id)}function _Migal_Load(path){path=Pointer_stringify(path);var str=localStorage.getItem(path);if(str){return allocate(intArrayFromString(str),"i8",ALLOC_NORMAL)}else{return null}}function _Migal_SendAnalyticsValue(type,id,value){type=Pointer_stringify(type);id=Pointer_stringify(id)}function _Mix_LoadMUS_RW(){return _Mix_LoadWAV_RW.apply(null,arguments)}function _Mix_LoadMUS(filename){var rwops=_SDL_RWFromFile(filename);var result=_Mix_LoadMUS_RW(rwops);_SDL_FreeRW(rwops);return result}function _glTexCoordPointer(size,type,stride,pointer){GLImmediate.setClientAttribute(GLImmediate.TEXTURE0+GLImmediate.clientActiveTexture,size,type,stride,pointer)}function _SDL_EnableUNICODE(on){var ret=SDL.unicode||0;SDL.unicode=on;return ret}function _Migal_ShowLink(id,left,top,right,bottom){id=Pointer_stringify(id);var el=document.getElementById(id);el.style.display="block";el.style.left=100*left/540+"%";el.style.top=100*top/720+"%";el.style.width=100*(right-left)/540+"%";el.style.height=100*(bottom-top)/720+"%"}function emscriptenWebGLComputeImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return Math.floor((x+y-1)/y)*y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height<=0?0:(height-1)*alignedRowSize+plainRowSize}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var sizePerPixel;var numChannels;switch(format){case 6406:case 6409:case 6402:case 6403:numChannels=1;break;case 6410:case 33319:numChannels=2;break;case 6407:case 35904:numChannels=3;break;case 6408:case 35906:numChannels=4;break;default:GL.recordError(1280);return{pixels:null,internalFormat:0}}switch(type){case 5121:sizePerPixel=numChannels*1;break;case 5123:case 36193:sizePerPixel=numChannels*2;break;case 5125:case 5126:sizePerPixel=numChannels*4;break;case 34042:sizePerPixel=4;break;case 33635:case 32819:case 32820:sizePerPixel=2;break;default:GL.recordError(1280);return{pixels:null,internalFormat:0}}var bytes=emscriptenWebGLComputeImageSize(width,height,sizePerPixel,GL.unpackAlignment);if(type==5121){pixels=HEAPU8.subarray(pixels,pixels+bytes)}else if(type==5126){pixels=HEAPF32.subarray(pixels>>2,pixels+bytes>>2)}else if(type==5125||type==34042){pixels=HEAPU32.subarray(pixels>>2,pixels+bytes>>2)}else{pixels=HEAPU16.subarray(pixels>>1,pixels+bytes>>1)}return{pixels:pixels,internalFormat:internalFormat}}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){var pixelData;if(pixels){var data=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat);pixelData=data.pixels;internalFormat=data.internalFormat}else{pixelData=null}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixelData)}function _glTranslatef(x,y,z){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixLib.mat4.translate(GLImmediate.matrix[GLImmediate.currentMatrix],[x,y,z])}Module["_memset"]=_memset;var _BDtoILow=true;Module["_bitshift64Lshr"]=_bitshift64Lshr;var _BItoD=true;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function _glOrtho(left,right,bottom,top_,nearVal,farVal){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixLib.mat4.multiply(GLImmediate.matrix[GLImmediate.currentMatrix],GLImmediate.matrixLib.mat4.ortho(left,right,bottom,top_,nearVal,farVal))}function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Runtime.dynCall("v",func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}function _Mix_PlayingMusic(){return SDL.music.audio&&!SDL.music.audio.paused?1:0}function _Mix_LoadWAV(filename){var rwops=_SDL_RWFromFile(filename);var result=_Mix_LoadWAV_RW(rwops);_SDL_FreeRW(rwops);return result}var _fabs=Math_abs;function _Migal_ShowInter(){console.log("show inter");if(isPokiAdReady){POKI_ADS.requestAd({position:poki.ads.position.midrollNegative});isPokiAdReady=false;return true}else{POKI_ADS.requestAd({position:poki.ads.position.midrollNegative})}return false}var _sqrt=Math_sqrt;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}function _Migal_SendAnalytics(type,id){type=Pointer_stringify(type);id=Pointer_stringify(id)}function _glLoadIdentity(){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixLib.mat4.identity(GLImmediate.matrix[GLImmediate.currentMatrix])}function ___cxa_allocate_exception(size){return _malloc(size)}var _sin=Math_sin;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}var _ceilf=Math_ceil;function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}function _glEnableClientState(cap){var attrib=GLEmulation.getAttributeFromCapability(cap);if(attrib===null){return}if(!GLImmediate.enabledClientAttributes[attrib]){GLImmediate.enabledClientAttributes[attrib]=true;GLImmediate.totalEnabledClientAttributes++;GLImmediate.currentRenderer=null;if(GLEmulation.currentVao)GLEmulation.currentVao.enabledClientStates[cap]=1;GLImmediate.modifiedClientAttributes=true}}var _floorf=Math_floor;function ___cxa_begin_catch(ptr){__ZSt18uncaught_exceptionv.uncaught_exception--;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function _glfwTerminate(){window.removeEventListener("keydown",GLFW.onKeydown,true);window.removeEventListener("keypress",GLFW.onKeyPress,true);window.removeEventListener("keyup",GLFW.onKeyup,true);Module["canvas"].removeEventListener("mousemove",GLFW.onMousemove,true);Module["canvas"].removeEventListener("mousedown",GLFW.onMouseButtonDown,true);Module["canvas"].removeEventListener("mouseup",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("wheel",GLFW.onMouseWheel,true);Module["canvas"].removeEventListener("mousewheel",GLFW.onMouseWheel,true);Module["canvas"].width=Module["canvas"].height=1;GLFW.windows=null;GLFW.active=null}function _Migal_IsMobile(){var userAgent=navigator.userAgent||navigator.vendor||window.opera;return!!(userAgent.match(/iPad/i)||userAgent.match(/iPhone/i)||userAgent.match(/iPod/i)||userAgent.match(/Android/i))}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _glfwSetKeyCallback(cbfun){GLFW.setKeyCallback(GLFW.active.id,cbfun)}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _cos=Math_cos;function _glColorPointer(size,type,stride,pointer){GLImmediate.setClientAttribute(GLImmediate.COLOR,size,type,stride,pointer)}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}function _glPushMatrix(){GLImmediate.matricesModified=true;GLImmediate.matrixVersion[GLImmediate.currentMatrix]=GLImmediate.matrixVersion[GLImmediate.currentMatrix]+1|0;GLImmediate.matrixStack[GLImmediate.currentMatrix].push(Array.prototype.slice.call(GLImmediate.matrix[GLImmediate.currentMatrix]))}function _glMatrixMode(mode){if(mode==5888){GLImmediate.currentMatrix=0}else if(mode==5889){GLImmediate.currentMatrix=1}else if(mode==5890){GLImmediate.useTextureMatrix=true;GLImmediate.currentMatrix=2+GLImmediate.clientActiveTexture}else{throw"Wrong mode "+mode+" passed to glMatrixMode"}}function _glfwSetMouseButtonCallback(cbfun){GLFW.setMouseButtonCallback(GLFW.active.id,cbfun)}function _Migal_Save(path,str){path=Pointer_stringify(path);str=Pointer_stringify(str);localStorage.setItem(path,str)}function _glScissor(x0,x1,x2,x3){GLctx.scissor(x0,x1,x2,x3)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _Migal_PreloadInter(){if(isPokiReady&&!isPokiAdReady){isPokiAdReady=true}}function _pthread_self(){return 0}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;assert(offset_high===0);FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var GLctx;GL.init();FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};___buildEnvironment(ENV);GLEmulation.init();GLImmediate.setupFuncs();Browser.moduleContextCreatedCallbacks.push((function(){GLImmediate.init()}));STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vid(index,a1,a2){try{Module["dynCall_vid"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiiidi(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiidi"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_di(index,a1){try{return Module["dynCall_di"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iid(index,a1,a2){try{return Module["dynCall_iid"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viid(index,a1,a2,a3){try{Module["dynCall_viid"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"invoke_iiii":invoke_iiii,"invoke_vii":invoke_vii,"invoke_viiiii":invoke_viiiii,"invoke_vid":invoke_vid,"invoke_iiiidi":invoke_iiiidi,"invoke_vi":invoke_vi,"invoke_di":invoke_di,"invoke_ii":invoke_ii,"invoke_iid":invoke_iid,"invoke_v":invoke_v,"invoke_viid":invoke_viid,"invoke_viiiiii":invoke_viiiiii,"invoke_iii":invoke_iii,"invoke_viiii":invoke_viiii,"_glUseProgram":_glUseProgram,"_fabs":_fabs,"_SDL_RWFromFile":_SDL_RWFromFile,"___assert_fail":___assert_fail,"_glDeleteProgram":_glDeleteProgram,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_glPushMatrix":_glPushMatrix,"_Mix_AllocateChannels":_Mix_AllocateChannels,"_Mix_Volume":_Mix_Volume,"_SDL_GetError":_SDL_GetError,"_emscripten_set_main_loop_timing":_emscripten_set_main_loop_timing,"_glTranslatef":_glTranslatef,"_sbrk":_sbrk,"_glBlendFunc":_glBlendFunc,"_glDisableVertexAttribArray":_glDisableVertexAttribArray,"_Mix_PlayChannel":_Mix_PlayChannel,"_TTF_RenderText_Solid":_TTF_RenderText_Solid,"_sysconf":_sysconf,"_Mix_PlayMusic":_Mix_PlayMusic,"___syscall221":___syscall221,"_Mix_LoadMUS_RW":_Mix_LoadMUS_RW,"_glLoadIdentity":_glLoadIdentity,"_Mix_LoadWAV_RW":_Mix_LoadWAV_RW,"_glfwInit":_glfwInit,"_glScalef":_glScalef,"_glShaderSource":_glShaderSource,"_glOrtho":_glOrtho,"_SDL_JoystickOpen":_SDL_JoystickOpen,"_pthread_cleanup_push":_pthread_cleanup_push,"_glVertexPointer":_glVertexPointer,"_Mix_HaltMusic":_Mix_HaltMusic,"___syscall140":___syscall140,"___syscall145":___syscall145,"___syscall146":___syscall146,"_pthread_cleanup_pop":_pthread_cleanup_pop,"_glVertexAttribPointer":_glVertexAttribPointer,"_glHint":_glHint,"_Migal_SendAnalytics":_Migal_SendAnalytics,"_glBindBuffer":_glBindBuffer,"_SDL_GetTicks":_SDL_GetTicks,"_glfwOpenWindow":_glfwOpenWindow,"___cxa_find_matching_catch":___cxa_find_matching_catch,"_Migal_ShowLink":_Migal_ShowLink,"_SDL_LockSurface":_SDL_LockSurface,"_glViewport":_glViewport,"_glGetBooleanv":_glGetBooleanv,"___setErrNo":___setErrNo,"_glDeleteTextures":_glDeleteTextures,"_glDepthFunc":_glDepthFunc,"___resumeException":___resumeException,"_pthread_once":_pthread_once,"_glGenTextures":_glGenTextures,"_glGetIntegerv":_glGetIntegerv,"_glEnable":_glEnable,"emscriptenWebGLGet":emscriptenWebGLGet,"_emscripten_get_now":_emscripten_get_now,"_glfwSetMousePosCallback":_glfwSetMousePosCallback,"_glAttachShader":_glAttachShader,"___lock":___lock,"_SDL_SetVideoMode":_SDL_SetVideoMode,"___syscall6":___syscall6,"___syscall5":___syscall5,"_time":_time,"_glDetachShader":_glDetachShader,"_SDL_UpperBlitScaled":_SDL_UpperBlitScaled,"_exit":_exit,"_glGetString":_glGetString,"_Migal_PreloadInter":_Migal_PreloadInter,"_putenv":_putenv,"_llvm_pow_f64":_llvm_pow_f64,"_IMG_Load":_IMG_Load,"_TTF_FontHeight":_TTF_FontHeight,"_ceilf":_ceilf,"_Mix_LoadMUS":_Mix_LoadMUS,"___cxa_allocate_exception":___cxa_allocate_exception,"___buildEnvironment":___buildEnvironment,"_SDL_EnableUNICODE":_SDL_EnableUNICODE,"_glEnableClientState":_glEnableClientState,"_Mix_FreeMusic":_Mix_FreeMusic,"_Mix_LoadWAV":_Mix_LoadWAV,"_glClearColor":_glClearColor,"_glIsEnabled":_glIsEnabled,"_glBindTexture":_glBindTexture,"_glGetFloatv":_glGetFloatv,"_Mix_PlayingMusic":_Mix_PlayingMusic,"___cxa_begin_catch":___cxa_begin_catch,"_pthread_getspecific":_pthread_getspecific,"_glDrawArrays":_glDrawArrays,"_glCreateShader":_glCreateShader,"_glGetError":_glGetError,"_getenv":_getenv,"_floorf":_floorf,"_glfwGetTime":_glfwGetTime,"_pthread_key_create":_pthread_key_create,"_glActiveTexture":_glActiveTexture,"_Migal_SendAnalyticsValue":_Migal_SendAnalyticsValue,"_glfwSwapBuffers":_glfwSwapBuffers,"_SDL_NumJoysticks":_SDL_NumJoysticks,"_glTexCoordPointer":_glTexCoordPointer,"_glfwTerminate":_glfwTerminate,"_glCompileShader":_glCompileShader,"_glRotatef":_glRotatef,"_glEnableVertexAttribArray":_glEnableVertexAttribArray,"_abort":_abort,"_Mix_PlayChannelTimed":_Mix_PlayChannelTimed,"_Mix_VolumeMusic":_Mix_VolumeMusic,"_glTexImage2D":_glTexImage2D,"_Migal_IsMobile":_Migal_IsMobile,"_glDisableClientState":_glDisableClientState,"_glFlush":_glFlush,"_glMatrixMode":_glMatrixMode,"_sin":_sin,"emscriptenWebGLGetTexPixelData":emscriptenWebGLGetTexPixelData,"_glScissor":_glScissor,"emscriptenWebGLComputeImageSize":emscriptenWebGLComputeImageSize,"_SDL_CloseAudio":_SDL_CloseAudio,"_glLinkProgram":_glLinkProgram,"_Migal_Load":_Migal_Load,"_SDL_FreeRW":_SDL_FreeRW,"_SDL_UpperBlit":_SDL_UpperBlit,"_glColorPointer":_glColorPointer,"_SDL_PauseAudio":_SDL_PauseAudio,"_cos":_cos,"_Mix_OpenAudio":_Mix_OpenAudio,"_glClear":_glClear,"_glPopMatrix":_glPopMatrix,"_Mix_FreeChunk":_Mix_FreeChunk,"__exit":__exit,"_IMG_Load_RW":_IMG_Load_RW,"_glBindAttribLocation":_glBindAttribLocation,"_Migal_Save":_Migal_Save,"_pthread_self":_pthread_self,"_TTF_SizeText":_TTF_SizeText,"___syscall54":___syscall54,"___unlock":___unlock,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_emscripten_set_main_loop":_emscripten_set_main_loop,"_glfwSetMouseButtonCallback":_glfwSetMouseButtonCallback,"_Migal_HideLink":_Migal_HideLink,"_pthread_setspecific":_pthread_setspecific,"_Migal_ShowInter":_Migal_ShowInter,"___cxa_throw":___cxa_throw,"_glfwSetKeyCallback":_glfwSetKeyCallback,"_glDisable":_glDisable,"_glTexParameteri":_glTexParameteri,"_sqrt":_sqrt,"_SDL_RWFromConstMem":_SDL_RWFromConstMem,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM
var asm=(function(global,env,buffer) {
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_iiii;var ea=env.invoke_vii;var fa=env.invoke_viiiii;var ga=env.invoke_vid;var ha=env.invoke_iiiidi;var ia=env.invoke_vi;var ja=env.invoke_di;var ka=env.invoke_ii;var la=env.invoke_iid;var ma=env.invoke_v;var na=env.invoke_viid;var oa=env.invoke_viiiiii;var pa=env.invoke_iii;var qa=env.invoke_viiii;var ra=env._glUseProgram;var sa=env._fabs;var ta=env._SDL_RWFromFile;var ua=env.___assert_fail;var va=env._glDeleteProgram;var wa=env.__ZSt18uncaught_exceptionv;var xa=env._glPushMatrix;var ya=env._Mix_AllocateChannels;var za=env._Mix_Volume;var Aa=env._SDL_GetError;var Ba=env._emscripten_set_main_loop_timing;var Ca=env._glTranslatef;var Da=env._sbrk;var Ea=env._glBlendFunc;var Fa=env._glDisableVertexAttribArray;var Ga=env._Mix_PlayChannel;var Ha=env._TTF_RenderText_Solid;var Ia=env._sysconf;var Ja=env._Mix_PlayMusic;var Ka=env.___syscall221;var La=env._Mix_LoadMUS_RW;var Ma=env._glLoadIdentity;var Na=env._Mix_LoadWAV_RW;var Oa=env._glfwInit;var Pa=env._glScalef;var Qa=env._glShaderSource;var Ra=env._glOrtho;var Sa=env._SDL_JoystickOpen;var Ta=env._pthread_cleanup_push;var Ua=env._glVertexPointer;var Va=env._Mix_HaltMusic;var Wa=env.___syscall140;var Xa=env.___syscall145;var Ya=env.___syscall146;var Za=env._pthread_cleanup_pop;var _a=env._glVertexAttribPointer;var $a=env._glHint;var ab=env._Migal_SendAnalytics;var bb=env._glBindBuffer;var cb=env._SDL_GetTicks;var db=env._glfwOpenWindow;var eb=env.___cxa_find_matching_catch;var fb=env._Migal_ShowLink;var gb=env._SDL_LockSurface;var hb=env._glViewport;var ib=env._glGetBooleanv;var jb=env.___setErrNo;var kb=env._glDeleteTextures;var lb=env._glDepthFunc;var mb=env.___resumeException;var nb=env._pthread_once;var ob=env._glGenTextures;var pb=env._glGetIntegerv;var qb=env._glEnable;var rb=env.emscriptenWebGLGet;var sb=env._emscripten_get_now;var tb=env._glfwSetMousePosCallback;var ub=env._glAttachShader;var vb=env.___lock;var wb=env._SDL_SetVideoMode;var xb=env.___syscall6;var yb=env.___syscall5;var zb=env._time;var Ab=env._glDetachShader;var Bb=env._SDL_UpperBlitScaled;var Cb=env._exit;var Db=env._glGetString;var Eb=env._Migal_PreloadInter;var Fb=env._putenv;var Gb=env._llvm_pow_f64;var Hb=env._IMG_Load;var Ib=env._TTF_FontHeight;var Jb=env._ceilf;var Kb=env._Mix_LoadMUS;var Lb=env.___cxa_allocate_exception;var Mb=env.___buildEnvironment;var Nb=env._SDL_EnableUNICODE;var Ob=env._glEnableClientState;var Pb=env._Mix_FreeMusic;var Qb=env._Mix_LoadWAV;var Rb=env._glClearColor;var Sb=env._glIsEnabled;var Tb=env._glBindTexture;var Ub=env._glGetFloatv;var Vb=env._Mix_PlayingMusic;var Wb=env.___cxa_begin_catch;var Xb=env._pthread_getspecific;var Yb=env._glDrawArrays;var Zb=env._glCreateShader;var _b=env._glGetError;var $b=env._getenv;var ac=env._floorf;var bc=env._glfwGetTime;var cc=env._pthread_key_create;var dc=env._glActiveTexture;var ec=env._Migal_SendAnalyticsValue;var fc=env._glfwSwapBuffers;var gc=env._SDL_NumJoysticks;var hc=env._glTexCoordPointer;var ic=env._glfwTerminate;var jc=env._glCompileShader;var kc=env._glRotatef;var lc=env._glEnableVertexAttribArray;var mc=env._abort;var nc=env._Mix_PlayChannelTimed;var oc=env._Mix_VolumeMusic;var pc=env._glTexImage2D;var qc=env._Migal_IsMobile;var rc=env._glDisableClientState;var sc=env._glFlush;var tc=env._glMatrixMode;var uc=env._sin;var vc=env.emscriptenWebGLGetTexPixelData;var wc=env._glScissor;var xc=env.emscriptenWebGLComputeImageSize;var yc=env._SDL_CloseAudio;var zc=env._glLinkProgram;var Ac=env._Migal_Load;var Bc=env._SDL_FreeRW;var Cc=env._SDL_UpperBlit;var Dc=env._glColorPointer;var Ec=env._SDL_PauseAudio;var Fc=env._cos;var Gc=env._Mix_OpenAudio;var Hc=env._glClear;var Ic=env._glPopMatrix;var Jc=env._Mix_FreeChunk;var Kc=env.__exit;var Lc=env._IMG_Load_RW;var Mc=env._glBindAttribLocation;var Nc=env._Migal_Save;var Oc=env._pthread_self;var Pc=env._TTF_SizeText;var Qc=env.___syscall54;var Rc=env.___unlock;var Sc=env._emscripten_memcpy_big;var Tc=env._emscripten_set_main_loop;var Uc=env._glfwSetMouseButtonCallback;var Vc=env._Migal_HideLink;var Wc=env._pthread_setspecific;var Xc=env._Migal_ShowInter;var Yc=env.___cxa_throw;var Zc=env._glfwSetKeyCallback;var _c=env._glDisable;var $c=env._glTexParameteri;var ad=env._sqrt;var bd=env._SDL_RWFromConstMem;var cd=0.0;
// EMSCRIPTEN_START_FUNCS
function Zh(b,e){b=b|0;e=e|0;var f=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.0,y=0.0,z=0,A=0,B=0,C=0,D=0;f=i;i=i+96|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f+88|0;o=f+84|0;p=f+80|0;q=f;r=b+34600|0;do s=(qn()|0)%4|0;while((s|0)==(c[r>>2]|0));t=s;li(b,t);t=((qn()|0)<<1&2^2)+-1|0;r=b+28680|0;s=b+56992|0;Qe(m,+((c[s>>2]|0)+270|0),1.0);u=c[33]|0;v=u+1174|0;w=u+1170|0;x=+(((d[w>>0]|d[w+1>>0]<<8)&65535)-((d[v>>0]|d[v+1>>0]<<8)<<16>>16)|0);y=+h[m+8>>3]*x;h[r>>3]=+h[r>>3]-+h[m>>3]*x;m=b+28688|0;h[m>>3]=+h[m>>3]-y;v=c[2068]|0;c[l>>2]=c[r>>2];c[l+4>>2]=c[r+4>>2];c[l+8>>2]=c[r+8>>2];c[l+12>>2]=c[r+12>>2];w=b+28568|0;u=b+8|0;while(1){z=u+108|0;if(!(a[z>>0]|0)){A=z;B=u;C=6;break}u=u+112|0;if(u>>>0>w>>>0){D=0;break}}if((C|0)==6){c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];C=B+72|0;c[C>>2]=0;c[B+60>>2]=v;c[B+56>>2]=146;v=B+109|0;a[v>>0]=1;h[B+48>>3]=0.0;c[B+40>>2]=0;c[B+44>>2]=8088;a[A>>0]=1;g[B+92>>2]=0.0;g[B+96>>2]=1.0;g[B+104>>2]=1.0;g[B+100>>2]=1.0;g[B+88>>2]=0.0;c[B+68>>2]=0;c[B+64>>2]=c[e>>2];c[B+76>>2]=c[e+8>>2];c[B+80>>2]=c[e+12>>2];c[B+84>>2]=c[e+16>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];A=B+8|0;c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];A=B+24|0;c[A>>2]=c[j>>2];c[A+4>>2]=c[j+4>>2];c[A+8>>2]=c[j+8>>2];c[A+12>>2]=c[j+12>>2];c[C>>2]=c[b+28700>>2];a[v>>0]=a[b+28696>>0]|0;D=B}y=+g[e+24>>2];x=+g[e+28>>2]-y;g[D+96>>2]=+(t|0)*(y+x*(+((qn()|0)&32767|0)/32767.0));g[D+92>>2]=+((qn()|0)%360|0|0);c[n>>2]=177;c[o>>2]=176;c[p>>2]=188;c[l>>2]=c[n>>2];c[k>>2]=c[o>>2];c[j>>2]=c[p>>2];ni(b,l,k,j,e);Qe(q,+((c[s>>2]|0)+270|0),1.0);s=(c[33]|0)+1174|0;x=+(0-((d[s>>0]|d[s+1>>0]<<8)<<16>>16)|0);y=+h[q+8>>3]*x;h[r>>3]=+h[r>>3]+ +h[q>>3]*x;h[m>>3]=y+ +h[m>>3];i=f;return}function _h(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0,G=0.0,H=0.0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0.0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0;f=i;i=i+64|0;j=f+48|0;k=f+32|0;l=f+16|0;m=f;n=b+34600|0;do o=(qn()|0)%4|0;while((o|0)==(c[n>>2]|0));p=o;li(b,p);q=+(e[10]|0)*.4000000059604645;Qe(m,+((c[b+56992>>2]|0)+270|0),1.0);r=+h[m>>3]*q;s=q*+h[m+8>>3];m=b+28680|0;q=+h[m>>3]-r;h[m>>3]=q;p=b+28688|0;t=+h[p>>3]-s;h[p>>3]=t;n=b+34560|0;o=b+32040|0;do{u=o+28|0;if(!(c[u>>2]|0)){v=u;w=o;x=5;break}o=o+40|0}while(o>>>0<=n>>>0);if((x|0)==5){n=b+56200|0;o=c[n>>2]|0;c[n>>2]=o+1;switch(c[372]|0){case 0:{y=5352;x=8;break}case 2:{y=5356;x=8;break}case 3:{y=5368;x=8;break}default:{}}if((x|0)==8?(n=c[y>>2]|0,(n|0)==(o|0)&((n|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=t;h[w+8>>3]=q;h[w+16>>3]=t;c[v>>2]=1;g[w+24>>2]=1.0;a[w+32>>0]=(c[372]|0)!=3&1}w=c[2105]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];v=b+28568|0;n=b+8|0;while(1){o=n+108|0;if(!(a[o>>0]|0)){z=o;A=n;break}n=n+112|0;if(n>>>0>v>>>0){B=0;x=16;break}}if((x|0)==16){C=B+100|0;g[C>>2]=.8999999761581421;D=d+24|0;E=+g[D>>2];F=d+28|0;G=+g[F>>2];H=G-E;I=qn()|0;J=I&32767;K=+(J|0);L=K/32767.0;M=H*L;N=E+M;O=qn()|0;P=O<<1;Q=P&2;R=Q^2;S=R+-1|0;T=+(S|0);U=N*T;V=B+96|0;g[V>>2]=U;W=+h[m>>3];X=W-r;h[m>>3]=X;Y=+h[p>>3];Z=Y-s;h[p>>3]=Z;i=f;return};c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=A+72|0;c[l>>2]=0;c[A+60>>2]=w;c[A+56>>2]=195;w=A+109|0;a[w>>0]=1;h[A+48>>3]=0.0;c[A+40>>2]=0;c[A+44>>2]=8088;a[z>>0]=1;g[A+92>>2]=0.0;g[A+96>>2]=1.0;g[A+104>>2]=1.0;g[A+100>>2]=1.0;g[A+88>>2]=0.0;c[A+68>>2]=0;c[A+64>>2]=c[d>>2];c[A+76>>2]=c[d+8>>2];c[A+80>>2]=c[d+12>>2];c[A+84>>2]=c[d+16>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];z=A+8|0;c[z>>2]=c[k>>2];c[z+4>>2]=c[k+4>>2];c[z+8>>2]=c[k+8>>2];c[z+12>>2]=c[k+12>>2];k=A+24|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[l>>2]=c[b+28700>>2];a[w>>0]=a[b+28696>>0]|0;B=A;C=B+100|0;g[C>>2]=.8999999761581421;D=d+24|0;E=+g[D>>2];F=d+28|0;G=+g[F>>2];H=G-E;I=qn()|0;J=I&32767;K=+(J|0);L=K/32767.0;M=H*L;N=E+M;O=qn()|0;P=O<<1;Q=P&2;R=Q^2;S=R+-1|0;T=+(S|0);U=N*T;V=B+96|0;g[V>>2]=U;W=+h[m>>3];X=W-r;h[m>>3]=X;Y=+h[p>>3];Z=Y-s;h[p>>3]=Z;i=f;return}function $h(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.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,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;f=i;i=i+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;if((c[372]|0)==3?(o=+g[d+20>>2],o!=0.0):0){c[j>>2]=~~o;Pn(240518,j)|0;i=f;return}j=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[j>>2]|0));q=p;li(b,q);o=+((e[10]|0)>>>1&65535|0);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);r=o*+h[n>>3];s=o*+h[n+8>>3];n=c[j>>2]|0;o=+g[d+40>>2];t=+g[d+44>>2];if(!(o==0.0&t==0.0)){j=~~o;q=~~t;if((q|0)>(j|0))u=((qn()|0)%(1-j+q|0)|0)+j|0;else u=j;if((u|0)>0)v=u;else{i=f;return}}else v=1;u=b+28680|0;j=b+28688|0;q=b+32040|0;p=b+34560|0;w=b+56200|0;x=b+56192|0;y=b+8|0;z=b+28568|0;A=d+8|0;B=d+12|0;C=d+16|0;D=b+28700|0;E=b+28696|0;b=d+24|0;F=d+28|0;t=+h[u>>3];o=+h[j>>3];G=(v|0)==2?(n+3|0)%4|0:n;n=0;while(1){H=t-r;h[u>>3]=H;I=o-s;h[j>>3]=I;J=q;do{K=J+28|0;if(!(c[K>>2]|0)){L=K;M=J;N=13;break}J=J+40|0}while(J>>>0<=p>>>0);if((N|0)==13){N=0;J=c[w>>2]|0;c[w>>2]=J+1;switch(c[372]|0){case 0:{O=5352;N=16;break}case 2:{O=5356;N=16;break}case 3:{O=5368;N=16;break}default:{}}if((N|0)==16?(N=0,K=c[O>>2]|0,(K|0)==(J|0)&((K|0)>1&(c[366]|0)<0)):0)h[x>>3]=I;h[M+8>>3]=H;h[M+16>>3]=I;c[L>>2]=1;g[M+24>>2]=1.0;a[M+32>>0]=(c[372]|0)!=3&1}K=c[2106]|0;c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];J=y;while(1){P=J+108|0;if(!(a[P>>0]|0)){Q=P;R=J;N=23;break}J=J+112|0;if(J>>>0>z>>>0){S=0;break}}if((N|0)==23){N=0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];J=R+72|0;c[J>>2]=0;c[R+60>>2]=K;c[R+56>>2]=0;P=R+109|0;a[P>>0]=1;h[R+48>>3]=0.0;c[R+40>>2]=0;c[R+44>>2]=8088;a[Q>>0]=1;g[R+92>>2]=0.0;g[R+96>>2]=1.0;g[R+104>>2]=1.0;g[R+100>>2]=1.0;g[R+88>>2]=0.0;c[R+68>>2]=0;c[R+64>>2]=c[d>>2];c[R+76>>2]=c[A>>2];c[R+80>>2]=c[B>>2];c[R+84>>2]=c[C>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];T=R+8|0;c[T>>2]=c[l>>2];c[T+4>>2]=c[l+4>>2];c[T+8>>2]=c[l+8>>2];c[T+12>>2]=c[l+12>>2];T=R+24|0;c[T>>2]=c[k>>2];c[T+4>>2]=c[k+4>>2];c[T+8>>2]=c[k+8>>2];c[T+12>>2]=c[k+12>>2];c[J>>2]=c[D>>2];a[P>>0]=a[E>>0]|0;S=R}c[S+40>>2]=G;I=+g[b>>2];H=+g[F>>2]-I;g[S+96>>2]=I+H*(+((qn()|0)&32767|0)/32767.0);t=+h[u>>3]-r;h[u>>3]=t;o=+h[j>>3]-s;h[j>>3]=o;n=n+1|0;if((n|0)==(v|0))break;else G=(G+1|0)%4|0}i=f;return}function ai(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0;f=i;i=i+80|0;j=f+56|0;k=f+48|0;l=f+32|0;m=f;n=f+16|0;o=f+72|0;if((c[372]|0)==3?(p=+g[d+20>>2],p!=0.0):0){c[k>>2]=~~p;Pn(240518,k)|0;i=f;return}k=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[k>>2]|0));r=q;li(b,r);p=+((e[10]|0)>>>3&65535|0);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);s=p*+h[n>>3];t=p*+h[n+8>>3];n=b+28680|0;h[n>>3]=+h[n>>3]-s;r=b+28688|0;h[r>>3]=+h[r>>3]-t;c[o>>2]=192;c[j>>2]=c[o>>2];mi(b,j);o=c[2075]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];k=b+28568|0;q=b+8|0;while(1){u=q+108|0;if(!(a[u>>0]|0)){v=u;w=q;x=9;break}q=q+112|0;if(q>>>0>k>>>0){y=0;break}}if((x|0)==9){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=w+72|0;c[m>>2]=0;c[w+60>>2]=o;c[w+56>>2]=184;o=w+109|0;a[o>>0]=1;h[w+48>>3]=0.0;c[w+40>>2]=0;c[w+44>>2]=8088;a[v>>0]=1;g[w+92>>2]=0.0;g[w+96>>2]=1.0;g[w+104>>2]=1.0;g[w+100>>2]=1.0;g[w+88>>2]=0.0;c[w+68>>2]=0;c[w+64>>2]=c[d>>2];c[w+76>>2]=c[d+8>>2];c[w+80>>2]=c[d+12>>2];c[w+84>>2]=c[d+16>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];v=w+8|0;c[v>>2]=c[l>>2];c[v+4>>2]=c[l+4>>2];c[v+8>>2]=c[l+8>>2];c[v+12>>2]=c[l+12>>2];l=w+24|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];c[m>>2]=c[b+28700>>2];a[o>>0]=a[b+28696>>0]|0;y=w}p=+g[d+24>>2];z=+g[d+28>>2]-p;g[y+96>>2]=p+z*(+((qn()|0)&32767|0)/32767.0);g[y+92>>2]=+((qn()|0)%360|0|0);h[n>>3]=+h[n>>3]-s;h[r>>3]=+h[r>>3]-t;i=f;return}function bi(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0,F=0.0,G=0.0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,Q=0.0,R=0,S=0.0,T=0.0,U=0.0,V=0.0;f=i;i=i+64|0;j=f+48|0;k=f+32|0;l=f+16|0;m=f;n=b+34600|0;do o=(qn()|0)%4|0;while((o|0)==(c[n>>2]|0));p=o;li(b,p);q=+(e[10]|0)*.4000000059604645;Qe(m,+((c[b+56992>>2]|0)+270|0),1.0);r=+h[m>>3]*q;s=q*+h[m+8>>3];m=b+28680|0;q=+h[m>>3]-r;h[m>>3]=q;p=b+28688|0;t=+h[p>>3]-s;h[p>>3]=t;n=b+34560|0;o=b+32040|0;do{u=o+28|0;if(!(c[u>>2]|0)){v=u;w=o;x=5;break}o=o+40|0}while(o>>>0<=n>>>0);if((x|0)==5){n=b+56200|0;o=c[n>>2]|0;c[n>>2]=o+1;switch(c[372]|0){case 0:{y=5352;x=8;break}case 2:{y=5356;x=8;break}case 3:{y=5368;x=8;break}default:{}}if((x|0)==8?(n=c[y>>2]|0,(n|0)==(o|0)&((n|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=t;h[w+8>>3]=q;h[w+16>>3]=t;c[v>>2]=1;g[w+24>>2]=1.0;a[w+32>>0]=(c[372]|0)!=3&1}w=c[2076]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];v=b+28568|0;n=b+8|0;while(1){o=n+108|0;if(!(a[o>>0]|0)){z=o;A=n;break}n=n+112|0;if(n>>>0>v>>>0){B=0;x=16;break}}if((x|0)==16){C=d+24|0;D=+g[C>>2];E=d+28|0;F=+g[E>>2];G=F-D;H=qn()|0;I=H&32767;J=+(I|0);K=J/32767.0;L=G*K;M=D+L;N=B+96|0;g[N>>2]=M;O=qn()|0;P=(O|0)%360|0;Q=+(P|0);R=B+92|0;g[R>>2]=Q;S=+h[m>>3];T=S-r;h[m>>3]=T;U=+h[p>>3];V=U-s;h[p>>3]=V;i=f;return};c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=A+72|0;c[l>>2]=0;c[A+60>>2]=w;c[A+56>>2]=184;w=A+109|0;a[w>>0]=1;h[A+48>>3]=0.0;c[A+40>>2]=0;c[A+44>>2]=8088;a[z>>0]=1;g[A+92>>2]=0.0;g[A+96>>2]=1.0;g[A+104>>2]=1.0;g[A+100>>2]=1.0;g[A+88>>2]=0.0;c[A+68>>2]=0;c[A+64>>2]=c[d>>2];c[A+76>>2]=c[d+8>>2];c[A+80>>2]=c[d+12>>2];c[A+84>>2]=c[d+16>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];z=A+8|0;c[z>>2]=c[k>>2];c[z+4>>2]=c[k+4>>2];c[z+8>>2]=c[k+8>>2];c[z+12>>2]=c[k+12>>2];k=A+24|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[l>>2]=c[b+28700>>2];a[w>>0]=a[b+28696>>0]|0;B=A;C=d+24|0;D=+g[C>>2];E=d+28|0;F=+g[E>>2];G=F-D;H=qn()|0;I=H&32767;J=+(I|0);K=J/32767.0;L=G*K;M=D+L;N=B+96|0;g[N>>2]=M;O=qn()|0;P=(O|0)%360|0;Q=+(P|0);R=B+92|0;g[R>>2]=Q;S=+h[m>>3];T=S-r;h[m>>3]=T;U=+h[p>>3];V=U-s;h[p>>3]=V;i=f;return}function ci(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0,G=0.0,H=0.0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0.0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0;f=i;i=i+64|0;j=f+48|0;k=f+32|0;l=f+16|0;m=f;n=b+34600|0;do o=(qn()|0)%4|0;while((o|0)==(c[n>>2]|0));p=o;li(b,p);q=+(e[10]|0)*.44999998807907104;p=b+56992|0;Qe(m,+((c[p>>2]|0)+270|0),1.0);r=+h[m>>3]*q;s=q*+h[m+8>>3];m=b+28680|0;q=+h[m>>3]-r;h[m>>3]=q;n=b+28688|0;t=+h[n>>3]-s;h[n>>3]=t;o=b+34560|0;u=b+32040|0;do{v=u+28|0;if(!(c[v>>2]|0)){w=v;x=u;y=5;break}u=u+40|0}while(u>>>0<=o>>>0);if((y|0)==5){o=b+56200|0;u=c[o>>2]|0;c[o>>2]=u+1;switch(c[372]|0){case 0:{z=5352;y=8;break}case 2:{z=5356;y=8;break}case 3:{z=5368;y=8;break}default:{}}if((y|0)==8?(o=c[z>>2]|0,(o|0)==(u|0)&((o|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=t;h[x+8>>3]=q;h[x+16>>3]=t;c[w>>2]=1;g[x+24>>2]=1.0;a[x+32>>0]=(c[372]|0)!=3&1}x=c[2079]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];w=b+28568|0;o=b+8|0;while(1){u=o+108|0;if(!(a[u>>0]|0)){A=u;B=o;break}o=o+112|0;if(o>>>0>w>>>0){C=0;y=16;break}}if((y|0)==16){D=d+24|0;E=+g[D>>2];F=d+28|0;G=+g[F>>2];H=G-E;I=qn()|0;J=I&32767;K=+(J|0);L=K/32767.0;M=H*L;N=E+M;O=C+96|0;g[O>>2]=N;P=c[p>>2]|0;Q=C+68|0;c[Q>>2]=P;R=qn()|0;S=(R|0)%360|0;T=+(S|0);U=C+92|0;g[U>>2]=T;V=+h[m>>3];W=V-r;h[m>>3]=W;X=+h[n>>3];Y=X-s;h[n>>3]=Y;i=f;return};c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=B+72|0;c[l>>2]=0;c[B+60>>2]=x;c[B+56>>2]=184;x=B+109|0;a[x>>0]=1;h[B+48>>3]=0.0;c[B+40>>2]=0;c[B+44>>2]=8088;a[A>>0]=1;g[B+92>>2]=0.0;g[B+96>>2]=1.0;g[B+104>>2]=1.0;g[B+100>>2]=1.0;g[B+88>>2]=0.0;c[B+68>>2]=0;c[B+64>>2]=c[d>>2];c[B+76>>2]=c[d+8>>2];c[B+80>>2]=c[d+12>>2];c[B+84>>2]=c[d+16>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];A=B+8|0;c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];k=B+24|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[l>>2]=c[b+28700>>2];a[x>>0]=a[b+28696>>0]|0;C=B;D=d+24|0;E=+g[D>>2];F=d+28|0;G=+g[F>>2];H=G-E;I=qn()|0;J=I&32767;K=+(J|0);L=K/32767.0;M=H*L;N=E+M;O=C+96|0;g[O>>2]=N;P=c[p>>2]|0;Q=C+68|0;c[Q>>2]=P;R=qn()|0;S=(R|0)%360|0;T=+(S|0);U=C+92|0;g[U>>2]=T;V=+h[m>>3];W=V-r;h[m>>3]=W;X=+h[n>>3];Y=X-s;h[n>>3]=Y;i=f;return}function di(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;f=i;i=i+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;if((c[372]|0)==3?(o=+g[d+20>>2],o!=0.0):0){c[j>>2]=~~o;Pn(240518,j)|0;i=f;return}j=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[j>>2]|0));q=p;li(b,q);o=+g[d+40>>2];r=+g[d+44>>2];if(!(o==0.0&r==0.0)){q=~~o;j=~~r;if((j|0)>(q|0))s=((qn()|0)%(1-q+j|0)|0)+q|0;else s=q}else s=1;r=+((_(e[10]|0,s+1|0)|0)/6|0|0)*.5;Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);o=r*+h[n>>3];t=r*+h[n+8>>3];n=b+28680|0;r=+h[n>>3]-o;h[n>>3]=r;q=b+28688|0;u=+h[q>>3]-t;h[q>>3]=u;j=b+34560|0;p=b+32040|0;do{v=p+28|0;if(!(c[v>>2]|0)){w=v;x=p;y=11;break}p=p+40|0}while(p>>>0<=j>>>0);if((y|0)==11){j=b+56200|0;p=c[j>>2]|0;c[j>>2]=p+1;switch(c[372]|0){case 0:{z=5352;y=14;break}case 2:{z=5356;y=14;break}case 3:{z=5368;y=14;break}default:{}}if((y|0)==14?(j=c[z>>2]|0,(j|0)==(p|0)&((j|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=u;h[x+8>>3]=r;h[x+16>>3]=u;c[w>>2]=1;g[x+24>>2]=1.0;a[x+32>>0]=(c[372]|0)!=3&1}x=c[2080]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];w=b+28568|0;j=b+8|0;while(1){p=j+108|0;if(!(a[p>>0]|0)){A=p;B=j;y=21;break}j=j+112|0;if(j>>>0>w>>>0){C=0;break}}if((y|0)==21){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=B+72|0;c[m>>2]=0;c[B+60>>2]=x;c[B+56>>2]=184;x=B+109|0;a[x>>0]=1;h[B+48>>3]=0.0;c[B+40>>2]=0;c[B+44>>2]=8088;a[A>>0]=1;g[B+92>>2]=0.0;g[B+96>>2]=1.0;g[B+104>>2]=1.0;g[B+100>>2]=1.0;g[B+88>>2]=0.0;c[B+68>>2]=0;c[B+64>>2]=c[d>>2];c[B+76>>2]=c[d+8>>2];c[B+80>>2]=c[d+12>>2];c[B+84>>2]=c[d+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];A=B+8|0;c[A>>2]=c[l>>2];c[A+4>>2]=c[l+4>>2];c[A+8>>2]=c[l+8>>2];c[A+12>>2]=c[l+12>>2];l=B+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[x>>0]=a[b+28696>>0]|0;C=B}u=+g[d+24>>2];r=+g[d+28>>2]-u;g[C+96>>2]=u+r*(+((qn()|0)&32767|0)/32767.0);g[C+88>>2]=+(s|0);g[C+92>>2]=+((qn()|0)%360|0|0);h[n>>3]=+h[n>>3]-o;h[q>>3]=+h[q>>3]-t;i=f;return}function ei(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0.0;f=i;i=i+80|0;j=f+56|0;k=f+48|0;l=f+32|0;m=f;n=f+16|0;o=f+72|0;if((c[372]|0)==3?(p=+g[e+20>>2],p!=0.0):0){c[k>>2]=~~p;Pn(240518,k)|0;i=f;return}k=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[k>>2]|0));r=q;li(b,r);r=(c[33]|0)+1682|0;p=+(((d[r>>0]|d[r+1>>0]<<8)&65535)>>>1&65535|0);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);s=p*+h[n>>3];t=p*+h[n+8>>3];n=b+28680|0;h[n>>3]=+h[n>>3]-s;r=b+28688|0;h[r>>3]=+h[r>>3]-t;c[o>>2]=214;c[j>>2]=c[o>>2];mi(b,j);o=c[2107]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];k=b+28568|0;q=b+8|0;while(1){u=q+108|0;if(!(a[u>>0]|0)){v=u;w=q;x=9;break}q=q+112|0;if(q>>>0>k>>>0){y=0;break}}if((x|0)==9){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=w+72|0;c[m>>2]=0;c[w+60>>2]=o;c[w+56>>2]=210;o=w+109|0;a[o>>0]=1;h[w+48>>3]=0.0;c[w+40>>2]=0;c[w+44>>2]=8088;a[v>>0]=1;g[w+92>>2]=0.0;g[w+96>>2]=1.0;g[w+104>>2]=1.0;g[w+100>>2]=1.0;g[w+88>>2]=0.0;c[w+68>>2]=0;c[w+64>>2]=c[e>>2];c[w+76>>2]=c[e+8>>2];c[w+80>>2]=c[e+12>>2];c[w+84>>2]=c[e+16>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];v=w+8|0;c[v>>2]=c[l>>2];c[v+4>>2]=c[l+4>>2];c[v+8>>2]=c[l+8>>2];c[v+12>>2]=c[l+12>>2];l=w+24|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];c[m>>2]=c[b+28700>>2];a[o>>0]=a[b+28696>>0]|0;y=w}p=+g[e+24>>2];z=+g[e+28>>2]-p;g[y+96>>2]=p+z*(+((qn()|0)&32767|0)/32767.0);g[y+92>>2]=+((qn()|0)%360|0|0);h[n>>3]=+h[n>>3]-s;h[r>>3]=+h[r>>3]-t;i=f;return}function fi(b,e,f){b=b|0;e=e|0;f=+f;var j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0;j=i;i=i+32|0;k=j+16|0;l=j;if((c[372]|0)==3?(m=+g[e+20>>2],m!=0.0):0){c[k>>2]=~~m;Pn(240518,k)|0;i=j;return}k=b+34600|0;do n=(qn()|0)%4|0;while((n|0)==(c[k>>2]|0));o=n;li(b,o);Qe(l,+((c[b+56992>>2]|0)+270|0),1.0);o=(c[33]|0)+1314|0;m=+((d[o>>0]|d[o+1>>0]<<8)&65535|0);p=f;q=p*(+h[l>>3]*m*1.2);r=p*(+h[l+8>>3]*m*1.2);l=(qn()|0)<<1&2^2;m=+g[e+24>>2];p=+g[e+28>>2]-m;s=p*(+((qn()|0)&32767|0)/32767.0);o=b+28680|0;p=+h[o>>3]-q;h[o>>3]=p;n=b+28688|0;t=+h[n>>3]-r;h[n>>3]=t;u=c[2108]|0;v=q*.5;w=v+p;x=b+8|0;y=x;while(1){z=y+108|0;if(!(a[z>>0]|0)){A=z;B=y;break}else y=y+112|0}p=m+s;s=r*.5;m=s+t;c[B+60>>2]=u;c[B+56>>2]=164;h[B+48>>3]=0.0;c[B+44>>2]=8088;a[A>>0]=1;g[B+92>>2]=0.0;g[B+104>>2]=1.0;g[B+88>>2]=0.0;c[B+68>>2]=0;c[B+64>>2]=c[e>>2];A=e+8|0;c[B+76>>2]=c[A>>2];u=e+12|0;c[B+80>>2]=c[u>>2];y=e+16|0;c[B+84>>2]=c[y>>2];h[B+8>>3]=w;h[B+16>>3]=m;h[B+24>>3]=w;h[B+32>>3]=m;z=b+28700|0;c[B+72>>2]=c[z>>2];C=b+28696|0;a[B+109>>0]=a[C>>0]|0;c[B+40>>2]=c[k>>2];g[B+100>>2]=f;g[B+96>>2]=+(l+-1|0)*p;B=c[2108]|0;m=+h[o>>3];w=+h[n>>3];D=x;while(1){x=D+108|0;if(!(a[x>>0]|0)){E=x;F=D;break}else D=D+112|0}t=m-v;m=w-s;c[F+60>>2]=B;c[F+56>>2]=164;h[F+48>>3]=0.0;c[F+44>>2]=8088;a[E>>0]=1;g[F+104>>2]=1.0;g[F+88>>2]=0.0;c[F+68>>2]=0;c[F+64>>2]=c[e>>2];c[F+76>>2]=c[A>>2];c[F+80>>2]=c[u>>2];c[F+84>>2]=c[y>>2];h[F+8>>3]=t;h[F+16>>3]=m;h[F+24>>3]=t;h[F+32>>3]=m;c[F+72>>2]=c[z>>2];a[F+109>>0]=a[C>>0]|0;c[F+40>>2]=((c[k>>2]|0)+2|0)%4|0;g[F+100>>2]=f;g[F+92>>2]=90.0;g[F+96>>2]=+(1-l|0)*p;p=+h[o>>3];f=p-v;v=+h[n>>3];m=v-s;l=b+34560|0;F=b+32040|0;while(1){k=F+28|0;if(!(c[k>>2]|0)){G=k;H=F;I=12;break}F=F+40|0;if(F>>>0>l>>>0){J=p;K=v;break}}if((I|0)==12){l=b+56200|0;F=c[l>>2]|0;c[l>>2]=F+1;switch(c[372]|0){case 0:{L=5352;I=15;break}case 2:{L=5356;I=15;break}case 3:{L=5368;I=15;break}default:{}}if((I|0)==15?(I=c[L>>2]|0,(I|0)==(F|0)&((I|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=m;h[H+8>>3]=f;h[H+16>>3]=m;c[G>>2]=1;g[H+24>>2]=1.0;a[H+32>>0]=(c[372]|0)!=3&1;J=+h[o>>3];K=+h[n>>3]}h[o>>3]=J-q;h[n>>3]=K-r;i=j;return}function gi(b,e,f,j){b=b|0;e=e|0;f=f|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0;k=i;i=i+80|0;l=k+64|0;m=k+48|0;n=k+32|0;o=k+16|0;p=k;if((c[372]|0)==3?(q=+g[e+20>>2],q!=0.0):0){c[l>>2]=~~q;Pn(240518,l)|0;i=k;return}l=b+34600|0;do r=(qn()|0)%4|0;while((r|0)==(c[l>>2]|0));s=r;li(b,s);Qe(p,+((c[b+56992>>2]|0)+270|0),1.0);s=(c[33]|0)+1314|0;q=+((d[s>>0]|d[s+1>>0]<<8)&65535|0);t=j;u=t*(+h[p>>3]*q*1.5);v=t*(+h[p+8>>3]*q*1.5);p=((qn()|0)<<1&2^2)+-1|0;q=+g[e+24>>2];t=+g[e+28>>2]-q;w=q+t*(+((qn()|0)&32767|0)/32767.0);s=b+28680|0;h[s>>3]=+h[s>>3]-u;r=b+28688|0;h[r>>3]=+h[r>>3]-v;x=c[2109]|0;c[o>>2]=c[s>>2];c[o+4>>2]=c[s+4>>2];c[o+8>>2]=c[s+8>>2];c[o+12>>2]=c[s+12>>2];y=b+28568|0;z=b+8|0;while(1){A=z+108|0;if(!(a[A>>0]|0)){B=A;C=z;D=9;break}z=z+112|0;if(z>>>0>y>>>0){E=0;break}}if((D|0)==9){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=C+72|0;c[o>>2]=0;c[C+60>>2]=x;c[C+56>>2]=164;x=C+109|0;a[x>>0]=1;h[C+48>>3]=0.0;c[C+40>>2]=0;c[C+44>>2]=8088;a[B>>0]=1;g[C+92>>2]=0.0;g[C+96>>2]=1.0;g[C+104>>2]=1.0;g[C+100>>2]=1.0;g[C+88>>2]=0.0;c[C+68>>2]=0;c[C+64>>2]=c[e>>2];c[C+76>>2]=c[e+8>>2];c[C+80>>2]=c[e+12>>2];c[C+84>>2]=c[e+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];e=C+8|0;c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];n=C+24|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[o>>2]=c[b+28700>>2];a[x>>0]=a[b+28696>>0]|0;E=C}c[E+40>>2]=c[l>>2];g[E+100>>2]=j;g[E+88>>2]=(f|0)==0?0.0:2.0;g[E+96>>2]=+(p|0)*w;w=+h[b+28680>>3];j=+h[r>>3];p=b+34560|0;E=b+32040|0;while(1){f=E+28|0;if(!(c[f>>2]|0)){F=f;G=E;D=12;break}E=E+40|0;if(E>>>0>p>>>0){H=w;I=j;break}}if((D|0)==12){p=b+56200|0;E=c[p>>2]|0;c[p>>2]=E+1;switch(c[372]|0){case 0:{J=5352;D=15;break}case 2:{J=5356;D=15;break}case 3:{J=5368;D=15;break}default:{}}if((D|0)==15?(D=c[J>>2]|0,(D|0)==(E|0)&((D|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=j;h[G+8>>3]=w;h[G+16>>3]=j;c[F>>2]=1;g[G+24>>2]=1.0;a[G+32>>0]=(c[372]|0)!=3&1;H=+h[s>>3];I=+h[r>>3]}h[s>>3]=H-u;h[r>>3]=I-v;i=k;return}function hi(b,e,f){b=b|0;e=e|0;f=+f;var j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0;j=i;i=i+80|0;k=j+64|0;l=j+48|0;m=j+32|0;n=j+16|0;o=j;if((c[372]|0)==3?(p=+g[e+20>>2],p!=0.0):0){c[k>>2]=~~p;Pn(240518,k)|0;i=j;return}k=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[k>>2]|0));r=q;li(b,r);Qe(o,+((c[b+56992>>2]|0)+270|0),1.0);r=(c[33]|0)+1314|0;p=+((d[r>>0]|d[r+1>>0]<<8)&65535|0);s=f;t=s*(+h[o>>3]*p);u=s*(+h[o+8>>3]*p);p=+g[e+24>>2];s=+g[e+28>>2]-p;v=p+s*(+((qn()|0)&32767|0)/32767.0);o=b+28680|0;h[o>>3]=+h[o>>3]-t;r=b+28688|0;h[r>>3]=+h[r>>3]-u;k=c[2110]|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];q=b+28568|0;w=b+8|0;while(1){x=w+108|0;if(!(a[x>>0]|0)){y=x;z=w;A=9;break}w=w+112|0;if(w>>>0>q>>>0){B=0;break}}if((A|0)==9){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];n=z+72|0;c[n>>2]=0;c[z+60>>2]=k;c[z+56>>2]=164;k=z+109|0;a[k>>0]=1;h[z+48>>3]=0.0;c[z+40>>2]=0;c[z+44>>2]=8088;a[y>>0]=1;g[z+92>>2]=0.0;g[z+96>>2]=1.0;g[z+104>>2]=1.0;g[z+100>>2]=1.0;g[z+88>>2]=0.0;c[z+68>>2]=0;c[z+64>>2]=c[e>>2];c[z+76>>2]=c[e+8>>2];c[z+80>>2]=c[e+12>>2];c[z+84>>2]=c[e+16>>2];c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];e=z+8|0;c[e>>2]=c[m>>2];c[e+4>>2]=c[m+4>>2];c[e+8>>2]=c[m+8>>2];c[e+12>>2]=c[m+12>>2];m=z+24|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[n>>2]=c[b+28700>>2];a[k>>0]=a[b+28696>>0]|0;B=z}g[B+100>>2]=f;g[B+96>>2]=v;v=+h[b+28680>>3];f=+h[r>>3];B=b+34560|0;z=b+32040|0;while(1){k=z+28|0;if(!(c[k>>2]|0)){C=k;D=z;A=12;break}z=z+40|0;if(z>>>0>B>>>0){E=v;F=f;break}}if((A|0)==12){B=b+56200|0;z=c[B>>2]|0;c[B>>2]=z+1;switch(c[372]|0){case 0:{G=5352;A=15;break}case 2:{G=5356;A=15;break}case 3:{G=5368;A=15;break}default:{}}if((A|0)==15?(A=c[G>>2]|0,(A|0)==(z|0)&((A|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=f;h[D+8>>3]=v;h[D+16>>3]=f;c[C>>2]=1;g[D+24>>2]=1.0;a[D+32>>0]=(c[372]|0)!=3&1;E=+h[o>>3];F=+h[r>>3]}h[o>>3]=E-t;h[r>>3]=F-u;i=j;return}function ii(b,f,j,k,l){b=b|0;f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;j=i;i=i+64|0;m=j+48|0;n=j+32|0;o=j+16|0;p=j;q=b+34600|0;do r=(qn()|0)%4|0;while((r|0)==(c[q>>2]|0));s=r;li(b,s);s=k+8|0;r=b+56992|0;if(+g[s>>2]!=0.0){Qe(m,+((c[r>>2]|0)+270|0),1.0);t=+(e[10]|0)*.10999999940395355;u=+h[m+8>>3]*t;v=b+28680|0;h[v>>3]=+h[v>>3]-+h[m>>3]*t;w=b+28688|0;h[w>>3]=+h[w>>3]-u;x=w;y=v}else{x=b+28688|0;y=b+28680|0}v=((qn()|0)<<1&2^2)+-1|0;w=(_(c[q>>2]|0,-90)|0)+-135|0;q=w+(c[r>>2]|0)|0;u=+g[k+24>>2];t=+g[k+28>>2]-u;z=u+t*(+((qn()|0)&32767|0)/32767.0);Qe(p,+((c[r>>2]|0)+270|0),1.0);w=c[f>>2]|0;A=c[33]|0;B=A+((w&65535)<<3)+2|0;C=A+1472|0;t=+((((d[B>>0]|d[B+1>>0]<<8)&65535)>>>1&65535)+((d[C>>0]|d[C+1>>0]<<8)&65535)|0);u=+h[p>>3]*t;D=+h[p+8>>3]*t;p=b+28680|0;t=+h[p>>3]-u;h[p>>3]=t;E=+h[x>>3]-D;h[x>>3]=E;C=b+34560|0;B=b+32040|0;do{A=B+28|0;if(!(c[A>>2]|0)){F=A;G=B;H=8;break}B=B+40|0}while(B>>>0<=C>>>0);if((H|0)==8){C=b+56200|0;B=c[C>>2]|0;c[C>>2]=B+1;switch(c[372]|0){case 0:{I=5352;H=11;break}case 2:{I=5356;H=11;break}case 3:{I=5368;H=11;break}default:{}}if((H|0)==11?(C=c[I>>2]|0,(C|0)==(B|0)&((C|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=E;h[G+8>>3]=t;h[G+16>>3]=E;c[F>>2]=1;g[G+24>>2]=1.0;a[G+32>>0]=(c[372]|0)!=3&1}G=c[2068]|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];F=b+8|0;C=b+28568|0;B=F;while(1){I=B+108|0;if(!(a[I>>0]|0)){J=I;K=B;H=18;break}B=B+112|0;if(B>>>0>C>>>0){L=0;break}}if((H|0)==18){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];B=K+72|0;c[B>>2]=0;c[K+60>>2]=G;c[K+56>>2]=w;w=K+109|0;a[w>>0]=1;h[K+48>>3]=0.0;c[K+40>>2]=0;c[K+44>>2]=8088;a[J>>0]=1;g[K+92>>2]=0.0;g[K+96>>2]=1.0;g[K+104>>2]=1.0;g[K+100>>2]=1.0;g[K+88>>2]=0.0;c[K+68>>2]=0;c[K+64>>2]=c[k>>2];c[K+76>>2]=c[s>>2];c[K+80>>2]=c[k+12>>2];c[K+84>>2]=c[k+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];J=K+8|0;c[J>>2]=c[n>>2];c[J+4>>2]=c[n+4>>2];c[J+8>>2]=c[n+8>>2];c[J+12>>2]=c[n+12>>2];J=K+24|0;c[J>>2]=c[m>>2];c[J+4>>2]=c[m+4>>2];c[J+8>>2]=c[m+8>>2];c[J+12>>2]=c[m+12>>2];c[B>>2]=c[b+28700>>2];a[w>>0]=a[b+28696>>0]|0;L=K}E=+(v|0)*z;g[L+96>>2]=E;z=+(q|0);g[L+92>>2]=z;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];L=F;while(1){F=L+108|0;if(!(a[F>>0]|0)){M=F;N=L;H=22;break}L=L+112|0;if(L>>>0>C>>>0){O=0;break}}if((H|0)==22){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=N+72|0;c[o>>2]=0;c[N+60>>2]=l;c[N+56>>2]=184;l=N+109|0;a[l>>0]=1;h[N+48>>3]=0.0;c[N+40>>2]=0;c[N+44>>2]=8088;a[M>>0]=1;g[N+92>>2]=0.0;g[N+96>>2]=1.0;g[N+104>>2]=1.0;g[N+100>>2]=1.0;g[N+88>>2]=0.0;c[N+68>>2]=0;c[N+64>>2]=c[k>>2];c[N+76>>2]=c[s>>2];c[N+80>>2]=c[k+12>>2];c[N+84>>2]=c[k+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];k=N+8|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];n=N+24|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[o>>2]=c[b+28700>>2];a[l>>0]=a[b+28696>>0]|0;O=N}g[O+96>>2]=E*.7;g[O+88>>2]=+(c[f>>2]|0);g[O+92>>2]=z;h[p>>3]=+h[p>>3]-u;h[x>>3]=+h[x>>3]-D;if(!(+g[s>>2]!=0.0)){i=j;return}Qe(m,+((c[r>>2]|0)+270|0),1.0);D=+(e[10]|0)*.10999999940395355;u=+h[m+8>>3]*D;h[y>>3]=+h[y>>3]-+h[m>>3]*D;h[x>>3]=+h[x>>3]-u;i=j;return}function ji(b,e,f){b=b|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j;n=j+16|0;o=j+64|0;p=e+-1|0;q=b+34600|0;do r=c[8104+(p*12|0)+(((qn()|0)%3|0)<<2)>>2]|0;while((r|0)==(c[q>>2]|0));s=r;q=8104+(p*12|0)|0;li(b,s);s=((qn()|0)<<1&2^2)+-1|0;t=+g[f+24>>2];u=+g[f+28>>2]-t;v=t+u*(+((qn()|0)&32767|0)/32767.0);p=(e|0)==1?218:219;e=c[2077]|0;r=c[33]|0;w=r+(p<<3)+6|0;x=r+1472|0;u=+((d[x>>0]|d[x+1>>0]<<8)&65535|0)-+(0-((d[w>>0]|d[w+1>>0]<<8)<<16>>16)|0);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);t=+h[n>>3]*u;y=u*+h[n+8>>3];n=b+28680|0;h[n>>3]=+h[n>>3]-t;w=b+28688|0;h[w>>3]=+h[w>>3]-y;c[o>>2]=221;c[k>>2]=c[o>>2];mi(b,k);o=c[2071]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];x=b+8|0;r=b+28568|0;z=x;while(1){A=z+108|0;if(!(a[A>>0]|0)){B=A;C=z;D=6;break}z=z+112|0;if(z>>>0>r>>>0){E=0;break}}if((D|0)==6){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];z=C+72|0;c[z>>2]=0;c[C+60>>2]=o;c[C+56>>2]=p;o=C+109|0;a[o>>0]=1;h[C+48>>3]=0.0;c[C+40>>2]=0;c[C+44>>2]=8088;a[B>>0]=1;g[C+92>>2]=0.0;g[C+96>>2]=1.0;g[C+104>>2]=1.0;g[C+100>>2]=1.0;g[C+88>>2]=0.0;c[C+68>>2]=0;c[C+64>>2]=c[f>>2];c[C+76>>2]=c[f+8>>2];c[C+80>>2]=c[f+12>>2];c[C+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];B=C+8|0;c[B>>2]=c[l>>2];c[B+4>>2]=c[l+4>>2];c[B+8>>2]=c[l+8>>2];c[B+12>>2]=c[l+12>>2];B=C+24|0;c[B>>2]=c[k>>2];c[B+4>>2]=c[k+4>>2];c[B+8>>2]=c[k+8>>2];c[B+12>>2]=c[k+12>>2];c[z>>2]=c[b+28700>>2];a[o>>0]=a[b+28696>>0]|0;E=C}u=+(s|0)*v;g[E+96>>2]=u;c[E+44>>2]=q;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];q=x;while(1){x=q+108|0;if(!(a[x>>0]|0)){F=x;G=q;break}q=q+112|0;if(q>>>0>r>>>0){H=0;D=11;break}}if((D|0)==11){I=u;J=I*.7;K=J;L=H+96|0;g[L>>2]=K;M=+(p|0);N=H+88|0;g[N>>2]=M;O=+h[n>>3];P=O-t;h[n>>3]=P;Q=+h[w>>3];R=Q-y;h[w>>3]=R;i=j;return};c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=G+72|0;c[m>>2]=0;c[G+60>>2]=e;c[G+56>>2]=184;e=G+109|0;a[e>>0]=1;h[G+48>>3]=0.0;c[G+40>>2]=0;c[G+44>>2]=8088;a[F>>0]=1;g[G+92>>2]=0.0;g[G+96>>2]=1.0;g[G+104>>2]=1.0;g[G+100>>2]=1.0;g[G+88>>2]=0.0;c[G+68>>2]=0;c[G+64>>2]=c[f>>2];c[G+76>>2]=c[f+8>>2];c[G+80>>2]=c[f+12>>2];c[G+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];f=G+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=G+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[e>>0]=a[b+28696>>0]|0;H=G;I=u;J=I*.7;K=J;L=H+96|0;g[L>>2]=K;M=+(p|0);N=H+88|0;g[N>>2]=M;O=+h[n>>3];P=O-t;h[n>>3]=P;Q=+h[w>>3];R=Q-y;h[w>>3]=R;i=j;return}function ki(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0;f=i;i=i+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;if((c[372]|0)==3?(o=+g[e+20>>2],o!=0.0):0){c[j>>2]=~~o;Pn(240518,j)|0;i=f;return}j=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[j>>2]|0));q=p;li(b,q);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);q=(c[33]|0)+1306|0;o=+((d[q>>0]|d[q+1>>0]<<8)&65535|0);r=+h[n>>3]*o*1.1;s=+h[n+8>>3]*o*1.1;o=+g[e+24>>2];t=+g[e+28>>2]-o;u=o+t*(+((qn()|0)&32767|0)/32767.0);n=b+28680|0;h[n>>3]=+h[n>>3]-r;q=b+28688|0;h[q>>3]=+h[q>>3]-s;p=c[2111]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];v=b+8|0;w=b+28568|0;x=v;while(1){y=x+108|0;if(!(a[y>>0]|0)){z=y;A=x;B=9;break}x=x+112|0;if(x>>>0>w>>>0){C=0;D=p;break}}if((B|0)==9){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];x=A+72|0;c[x>>2]=0;c[A+60>>2]=p;c[A+56>>2]=163;p=A+109|0;a[p>>0]=1;h[A+48>>3]=0.0;c[A+40>>2]=0;c[A+44>>2]=8088;a[z>>0]=1;g[A+92>>2]=0.0;g[A+96>>2]=1.0;g[A+104>>2]=1.0;g[A+100>>2]=1.0;g[A+88>>2]=0.0;c[A+68>>2]=0;c[A+64>>2]=c[e>>2];c[A+76>>2]=c[e+8>>2];c[A+80>>2]=c[e+12>>2];c[A+84>>2]=c[e+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];z=A+8|0;c[z>>2]=c[l>>2];c[z+4>>2]=c[l+4>>2];c[z+8>>2]=c[l+8>>2];c[z+12>>2]=c[l+12>>2];z=A+24|0;c[z>>2]=c[k>>2];c[z+4>>2]=c[k+4>>2];c[z+8>>2]=c[k+8>>2];c[z+12>>2]=c[k+12>>2];c[x>>2]=c[b+28700>>2];a[p>>0]=a[b+28696>>0]|0;C=A;D=c[2111]|0}A=c[j>>2]|0;c[C+40>>2]=A;g[C+100>>2]=.6000000238418579;g[C+96>>2]=u;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];C=v;while(1){v=C+108|0;if(!(a[v>>0]|0)){E=v;F=C;B=13;break}C=C+112|0;if(C>>>0>w>>>0){G=0;H=A;break}}if((B|0)==13){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=F+72|0;c[m>>2]=0;c[F+60>>2]=D;c[F+56>>2]=163;D=F+109|0;a[D>>0]=1;h[F+48>>3]=0.0;c[F+40>>2]=0;c[F+44>>2]=8088;a[E>>0]=1;g[F+92>>2]=0.0;g[F+96>>2]=1.0;g[F+104>>2]=1.0;g[F+100>>2]=1.0;g[F+88>>2]=0.0;c[F+68>>2]=0;c[F+64>>2]=c[e>>2];c[F+76>>2]=c[e+8>>2];c[F+80>>2]=c[e+12>>2];c[F+84>>2]=c[e+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];e=F+8|0;c[e>>2]=c[l>>2];c[e+4>>2]=c[l+4>>2];c[e+8>>2]=c[l+8>>2];c[e+12>>2]=c[l+12>>2];l=F+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[D>>0]=a[b+28696>>0]|0;G=F;H=c[j>>2]|0}c[G+40>>2]=H+1;g[G+100>>2]=1.0;g[G+96>>2]=-u;u=+h[b+28680>>3];t=+h[q>>3];G=b+34560|0;H=b+32040|0;while(1){j=H+28|0;if(!(c[j>>2]|0)){I=j;J=H;B=16;break}H=H+40|0;if(H>>>0>G>>>0){K=u;L=t;break}}if((B|0)==16){G=b+56200|0;H=c[G>>2]|0;c[G>>2]=H+1;switch(c[372]|0){case 0:{M=5352;B=19;break}case 2:{M=5356;B=19;break}case 3:{M=5368;B=19;break}default:{}}if((B|0)==19?(B=c[M>>2]|0,(B|0)==(H|0)&((B|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=t;h[J+8>>3]=u;h[J+16>>3]=t;c[I>>2]=1;g[J+24>>2]=1.0;a[J+32>>0]=(c[372]|0)!=3&1;K=+h[n>>3];L=+h[q>>3]}h[n>>3]=K-r;h[q>>3]=L-s;i=f;return}function li(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+48|0;j=f+32|0;k=f+16|0;l=f;m=b+56204|0;if(a[m>>0]|0){Qe(j,+((c[b+56992>>2]|0)+270|0),1.0);n=+g[2482]*+(e[11]|0);o=n;p=+h[j+8>>3]*o;q=b+28680|0;h[q>>3]=+h[q>>3]-+h[j>>3]*o;j=b+28688|0;h[j>>3]=+h[j>>3]-p;c[b+34600>>2]=d;j=b+28784|0;if((c[j>>2]|0)!=(d|0)){c[j>>2]=d;j=c[(c[58267]|0)+(d<<2)>>2]|0;c[b+28736>>2]=j;c[b+28740>>2]=j;g[b+28744>>2]=0.0;g[b+28748>>2]=1.0;h[b+28760>>3]=+h[b+28720>>3]-n*.4000000059604645}j=b+28888|0;if((c[j>>2]|0)!=(d|0)){c[j>>2]=d;j=c[(c[58267]|0)+(d<<2)>>2]|0;c[b+28840>>2]=j;c[b+28844>>2]=j;g[b+28848>>2]=0.0;g[b+28852>>2]=1.0;h[b+28864>>3]=+h[b+28824>>3]-n*.4000000059604645}h[b+28872>>3]=1.0;a[m>>0]=0;i=f;return}n=+g[2482]*+(e[11]|0)*.5;p=(c[372]|0)==3?n*2.0:n;m=b+28680|0;j=b+56992|0;Qe(k,+((c[j>>2]|0)+270|0),1.0);n=+h[k+8>>3]*p;h[m>>3]=+h[m>>3]-+h[k>>3]*p;k=b+28688|0;h[k>>3]=+h[k>>3]-n;do if((c[372]|0)==3){c[b+34600>>2]=d;if((c[367]&c[366]|0)==-1){q=(((qn()|0)%3|0)*45|0)+-45|0;c[j>>2]=q+(c[j>>2]|0);break}else{c[j>>2]=~~-+g[(c[b+56864>>2]|0)+32+(((c[b+56996>>2]|0)+1|0)*52|0)+20>>2];break}}else{h[m>>3]=+((e[16]|0)>>>1&65535|0);c[b+34600>>2]=d}while(0);q=b+31992|0;r=b+28968|0;do{s=r+32|0;if(!(a[s>>0]|0)){t=s;u=r;v=14;break}r=r+48|0}while(r>>>0<=q>>>0);if((v|0)==14){v=c[b+56264>>2]|0;q=(c[j>>2]|0)+90|0;Do(u+8|0,m|0,16)|0;a[u+29>>0]=d;c[u+24>>2]=q;a[u+28>>0]=(v|0)==1?1:3;a[t>>0]=1;h[u+40>>3]=0.0;t=c[372]|0;a[u+30>>0]=(t|0)!=3&1;a[u+31>>0]=(t|0)==3&1;t=b+56996|0;c[t>>2]=(c[t>>2]|0)+1}Qe(l,+((c[j>>2]|0)+270|0),1.0);n=p*+h[l+8>>3];h[m>>3]=+h[m>>3]-p*+h[l>>3];h[k>>3]=+h[k>>3]-n;i=f;return}function mi(f,j){f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0;k=i;i=i+80|0;l=k+64|0;m=k+48|0;n=k+32|0;o=k+16|0;p=k;q=c[j>>2]&65535;j=(c[33]|0)+(q<<3)+4|0;r=b[16]|0;h[m>>3]=+(~~(+((d[j>>0]|d[j+1>>0]<<8)<<16>>16)+ +(((r&65535)-(e[10]|0)|0)/2|0|0))|0)-+((r&65535)>>>1&65535|0);h[m+8>>3]=0.0;r=f+56992|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;s=+(c[r>>2]|0);c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];Pe(o,m,l,s);s=+h[f+28680>>3]+ +h[o>>3];t=+h[f+28688>>3]+ +h[o+8>>3];Qe(p,+((c[r>>2]|0)+270|0),1.0);r=(c[33]|0)+(q<<3)+6|0;u=+((d[r>>0]|d[r+1>>0]<<8)<<16>>16)-+((e[11]|0)>>>1&65535|0);v=s+ +h[p>>3]*u;s=t+ +h[p+8>>3]*u;p=f+34560|0;r=f+32040|0;while(1){q=r+28|0;if(!(c[q>>2]|0)){w=q;x=r;break}r=r+40|0;if(r>>>0>p>>>0){y=10;break}}if((y|0)==10){i=k;return}p=f+56200|0;r=c[p>>2]|0;c[p>>2]=r+1;switch(c[372]|0){case 0:{z=5352;y=6;break}case 2:{z=5356;y=6;break}case 3:{z=5368;y=6;break}default:{}}if((y|0)==6?(y=c[z>>2]|0,(y|0)==(r|0)&((y|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=s;h[x+8>>3]=v;h[x+16>>3]=s;c[w>>2]=1;g[x+24>>2]=1.0;a[x+32>>0]=(c[372]|0)!=3&1;i=k;return}function ni(f,j,k,l,m){f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0,Q=0,R=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;n=i;i=i+128|0;o=n+112|0;p=n+80|0;q=n+48|0;r=n+96|0;s=n+64|0;t=n+32|0;u=n+16|0;v=n;w=(c[m+48>>2]|0)!=0?1:-1;if((c[372]|0)==3)x=((qn()|0)&1|0)!=0;else x=0;y=+g[m+24>>2];z=+g[m+28>>2]-y;A=y+z*(+((qn()|0)&32767|0)/32767.0);B=f+56992|0;C=(c[B>>2]|0)+-135|0;D=f+8|0;if(x){x=c[k>>2]|0;E=c[2069]|0;F=Rd(x&65535)|0;G=b[16]|0;H=G&65535;h[p>>3]=+(H-F+((H-(e[10]|0)|0)/-2|0)|0)-+((G&65535)>>>1&65535|0);h[p+8>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;z=+(c[B>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(r,p,o,z);G=f+28680|0;H=f+28688|0;z=+h[G>>3]+ +h[r>>3];y=+h[H>>3]+ +h[r+8>>3];r=f+28568|0;F=D;while(1){I=F+108|0;if(!(a[I>>0]|0)){J=I;K=F;L=7;break}F=F+112|0;if(F>>>0>r>>>0){M=0;break}}if((L|0)==7){c[K+60>>2]=E;c[K+56>>2]=x;h[K+48>>3]=0.0;c[K+40>>2]=0;c[K+44>>2]=8088;a[J>>0]=1;g[K+92>>2]=0.0;g[K+96>>2]=1.0;g[K+104>>2]=1.0;g[K+100>>2]=1.0;g[K+88>>2]=0.0;c[K+68>>2]=0;c[K+64>>2]=c[m>>2];c[K+76>>2]=c[m+8>>2];c[K+80>>2]=c[m+12>>2];c[K+84>>2]=c[m+16>>2];h[K+8>>3]=z;h[K+16>>3]=y;h[K+24>>3]=z;h[K+32>>3]=y;c[K+72>>2]=c[f+28700>>2];a[K+109>>0]=a[f+28696>>0]|0;M=K}g[M+96>>2]=+(w|0)*A;g[M+92>>2]=+(C|0);M=c[j>>2]|0;K=c[2069]|0;J=Rd(M&65535)|0;x=b[16]|0;E=x&65535;h[p>>3]=+(E-J+((E-(e[10]|0)|0)/-2|0)|0)-+((x&65535)>>>1&65535|0);h[p+8>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;y=+(c[B>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(s,p,o,y);y=+h[G>>3];z=+h[H>>3];N=+h[s>>3];O=+h[s+8>>3];s=D;while(1){x=s+108|0;if(!(a[x>>0]|0)){P=x;Q=s;break}else s=s+112|0}R=y+N;N=z+O;c[Q+60>>2]=K;c[Q+56>>2]=M;h[Q+48>>3]=0.0;c[Q+40>>2]=0;c[Q+44>>2]=8088;a[P>>0]=1;g[Q+104>>2]=1.0;g[Q+100>>2]=1.0;g[Q+88>>2]=0.0;c[Q+68>>2]=0;c[Q+64>>2]=c[m>>2];c[Q+76>>2]=c[m+8>>2];c[Q+80>>2]=c[m+12>>2];c[Q+84>>2]=c[m+16>>2];h[Q+8>>3]=R;h[Q+16>>3]=N;h[Q+24>>3]=R;h[Q+32>>3]=N;c[Q+72>>2]=c[f+28700>>2];a[Q+109>>0]=a[f+28696>>0]|0;g[Q+96>>2]=+(0-w|0)*A;g[Q+92>>2]=+(((c[f+34600>>2]&-3|0)==0?90:-90)+C|0);S=G;T=H;U=j}else{H=c[j>>2]|0;G=c[2069]|0;Q=Rd(H&65535)|0;P=b[16]|0;h[p>>3]=+((((P&65535)-(e[10]|0)|0)/2|0)+Q|0)-+((P&65535)>>>1&65535|0);h[p+8>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;N=+(c[B>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(t,p,o,N);P=f+28680|0;N=+h[P>>3];Q=f+28688|0;R=+h[Q>>3];O=+h[t>>3];z=+h[t+8>>3];t=D;while(1){M=t+108|0;if(!(a[M>>0]|0)){V=M;W=t;break}else t=t+112|0}y=N+O;O=R+z;c[W+60>>2]=G;c[W+56>>2]=H;h[W+48>>3]=0.0;c[W+40>>2]=0;c[W+44>>2]=8088;a[V>>0]=1;g[W+104>>2]=1.0;g[W+100>>2]=1.0;g[W+88>>2]=0.0;c[W+68>>2]=0;c[W+64>>2]=c[m>>2];V=m+8|0;c[W+76>>2]=c[V>>2];H=m+12|0;c[W+80>>2]=c[H>>2];G=m+16|0;c[W+84>>2]=c[G>>2];h[W+8>>3]=y;h[W+16>>3]=O;h[W+24>>3]=y;h[W+32>>3]=O;t=f+28700|0;c[W+72>>2]=c[t>>2];M=f+28696|0;a[W+109>>0]=a[M>>0]|0;g[W+96>>2]=+(w|0)*A;g[W+92>>2]=+(C|0);W=c[k>>2]|0;k=c[2069]|0;K=Rd(W&65535)|0;s=b[16]|0;h[p>>3]=+((((s&65535)-(e[10]|0)|0)/2|0)+K|0)-+((s&65535)>>>1&65535|0);h[p+8>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;O=+(c[B>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(u,p,o,O);O=+h[P>>3];y=+h[Q>>3];z=+h[u>>3];R=+h[u+8>>3];u=D;while(1){D=u+108|0;if(!(a[D>>0]|0)){X=D;Y=u;break}else u=u+112|0}N=O+z;z=y+R;c[Y+60>>2]=k;c[Y+56>>2]=W;h[Y+48>>3]=0.0;c[Y+40>>2]=0;c[Y+44>>2]=8088;a[X>>0]=1;g[Y+104>>2]=1.0;g[Y+100>>2]=1.0;g[Y+88>>2]=0.0;c[Y+68>>2]=0;c[Y+64>>2]=c[m>>2];c[Y+76>>2]=c[V>>2];c[Y+80>>2]=c[H>>2];c[Y+84>>2]=c[G>>2];h[Y+8>>3]=N;h[Y+16>>3]=z;h[Y+24>>3]=N;h[Y+32>>3]=z;c[Y+72>>2]=c[t>>2];a[Y+109>>0]=a[M>>0]|0;g[Y+96>>2]=+(0-w|0)*A;g[Y+92>>2]=+(((c[f+34600>>2]&-3|0)==0?90:-90)+C|0);S=P;T=Q;U=j}Qe(v,+((c[B>>2]|0)+270|0),1.0);A=+(Sd(c[U>>2]&65535)|0);U=(c[33]|0)+((c[l>>2]&65535)<<3)+6|0;z=A-+((d[U>>0]|d[U+1>>0]<<8)<<16>>16);A=+h[S>>3]-+h[v>>3]*z;N=+h[T>>3]-+h[v+8>>3]*z;v=f+34560|0;T=f+32040|0;while(1){S=T+28|0;if(!(c[S>>2]|0)){Z=S;_=T;break}T=T+40|0;if(T>>>0>v>>>0){L=25;break}}if((L|0)==25){i=n;return}v=f+56200|0;T=c[v>>2]|0;c[v>>2]=T+1;switch(c[372]|0){case 0:{$=5352;L=21;break}case 2:{$=5356;L=21;break}case 3:{$=5368;L=21;break}default:{}}if((L|0)==21?(L=c[$>>2]|0,(L|0)==(T|0)&((L|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=N;h[_+8>>3]=A;h[_+16>>3]=N;c[Z>>2]=1;g[_+24>>2]=1.0;a[_+32>>0]=(c[372]|0)!=3&1;i=n;return}function oi(){var b=0,e=0,f=0,g=0,h=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;b=i;i=i+304|0;e=b+32|0;f=b+24|0;g=b+16|0;h=b+8|0;j=b;k=b+40|0;l=2344;m=0;while(1){n=(d[l>>0]|0)+m|0;l=l+1|0;if(l>>>0>2471>>>0){o=n;break}else m=n}m=2472;l=0;while(1){n=(d[m>>0]|0)+l|0;m=m+1|0;if(m>>>0>2983>>>0){p=n;break}else l=n}l=2984;m=0;while(1){n=(d[l>>0]|0)+m|0;l=l+1|0;if(l>>>0>3239>>>0){q=n;break}else m=n}m=0;l=0;while(1){n=7548+(m*12|0)|0;switch(c[7548+(m*12|0)+4>>2]|0){case 0:{if((c[1338]|0)<(c[7548+(m*12|0)+8>>2]|0))r=l;else{s=c[n>>2]|0;t=5288+s|0;u=(a[t>>0]|0)!=0;if(!u)a[t>>0]=1;c[j>>2]=s;Sn(k,240601,j)|0;r=l|u^1}break}case 2:{if((c[1345]|0)<(c[7548+(m*12|0)+8>>2]|0))r=l;else{u=c[n>>2]|0;s=5288+u|0;t=(a[s>>0]|0)!=0;if(!t)a[s>>0]=1;c[h>>2]=u;Sn(k,240601,h)|0;r=l|t^1}break}case 1:{if((o|0)<(c[7548+(m*12|0)+8>>2]|0))r=l;else{t=c[n>>2]|0;u=5288+t|0;s=(a[u>>0]|0)!=0;if(!s)a[u>>0]=1;c[g>>2]=t;Sn(k,240601,g)|0;r=l|s^1}break}case 3:{if((p|0)<(c[7548+(m*12|0)+8>>2]|0))r=l;else{s=c[n>>2]|0;t=5288+s|0;u=(a[t>>0]|0)!=0;if(!u)a[t>>0]=1;c[f>>2]=s;Sn(k,240601,f)|0;r=l|u^1}break}case 4:{if((q|0)<(c[7548+(m*12|0)+8>>2]|0))r=l;else{u=c[n>>2]|0;n=5288+u|0;s=(a[n>>0]|0)!=0;if(!s)a[n>>0]=1;c[e>>2]=u;Sn(k,240601,e)|0;r=l|s^1}break}default:r=l}m=m+1|0;if((m|0)==17)break;else l=r}if(!r){i=b;return}Ml();i=b;return}function pi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+272|0;e=d+8|0;f=d;g=d+16|0;switch(a|0){case 1:{h=5352;break}case 2:{h=5420;break}case 3:{h=5356;break}case 4:{h=5368;break}default:{c[f>>2]=a;Pn(240646,f)|0;h=5352}}if((c[h>>2]|0)<(b|0)){c[h>>2]=b;Ml()}c[e>>2]=a;Sn(g,240629,e)|0;i=d;return}function qi(b,d){b=b|0;d=d|0;a[239969]=1;if((b|0)==2?(eo(c[d+4>>2]|0,240678)|0)==0:0)Je(240683,240695,270,360,540,720);else Je(240683,240695,540,720,0,0);a[1455]=(eo(290,240704)|0)==0&1;a[1474]=0;ng(7752,14,7808,9);og(.5);Vl();Nl();a[108]=1;c[7]=-14079703;Td(-14079703);a[2344]=1;g[1961]=+pg();c[361]=0;a[1460]=1;c[102]=-1;c[100]=-1;c[101]=1;a[1452]=0;c[366]=-1;c[367]=-1;a[1453]=0;a[1454]=0;c[364]=0;c[105]=Eg()|0;c[106]=si()|0;c[107]=ti()|0;c[108]=am()|0;c[104]=0;return}function ri(){var b=0,d=0,e=0,f=0,g=0,i=0;if((c[26]|0)>2)rg(c[364]&65535,-1);h[185]=+h[10]+ +h[185];b=c[104]|0;d=(b|0)==0;e=c[100]|0;f=c[101]|0;if(!d?!((e|0)!=(f|0)&(a[74]|0)!=0):0)g=b;else{c[102]=e;if((f|0)!=255)if(d)i=f;else{id[c[(c[b>>2]|0)+24>>2]&63](b);i=c[101]|0}else{c[101]=e;i=e}a[1474]=0;c[100]=i;e=c[420+(i<<2)>>2]|0;c[104]=e;id[c[(c[e>>2]|0)+8>>2]&63](e);g=c[104]|0}h[10]=.01666666753590107;id[c[(c[g>>2]|0)+32>>2]&63](g);g=c[104]|0;id[c[(c[g>>2]|0)+40>>2]&63](g);return}function si(){var a=0;a=qm(296)|0;c[a>>2]=7856;ui(a+4|0,0);c[a+188>>2]=0;c[a+192>>2]=-1;g[a+196>>2]=0.0;g[a+200>>2]=0.0;c[a+216>>2]=7916;c[a+256>>2]=7948;return a|0}function ti(){var a=0;a=qm(264)|0;c[a>>2]=7980;ui(a+4|0,1);c[a+188>>2]=0;c[a+192>>2]=-1;g[a+196>>2]=0.0;g[a+200>>2]=0.0;c[a+204>>2]=0;c[a+208>>2]=-1;g[a+212>>2]=0.0;g[a+216>>2]=0.0;c[a+224>>2]=7948;return a|0}function ui(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0;a[d>>0]=e&1;c[d+4>>2]=0;c[d+8>>2]=-1;g[d+12>>2]=0.0;g[d+16>>2]=0.0;e=d+20|0;c[e>>2]=0;f=d+24|0;c[f>>2]=-1;h=d+28|0;g[h>>2]=0.0;i=d+32|0;g[i>>2]=0.0;j=d+36|0;c[j>>2]=0;k=d+40|0;c[k>>2]=-1;l=d+44|0;g[l>>2]=0.0;m=d+48|0;g[m>>2]=0.0;c[d+52>>2]=0;c[d+56>>2]=-1;g[d+60>>2]=0.0;g[d+64>>2]=0.0;n=d+68|0;c[n>>2]=0;o=d+72|0;c[o>>2]=-1;p=d+76|0;g[p>>2]=0.0;q=d+80|0;g[q>>2]=0.0;r=d+84|0;c[r>>2]=0;s=d+88|0;c[s>>2]=-1;t=d+92|0;g[t>>2]=0.0;u=d+96|0;g[u>>2]=0.0;v=d+100|0;c[v>>2]=0;c[d+104>>2]=-1;g[d+108>>2]=0.0;g[d+112>>2]=0.0;c[d+116>>2]=0;c[d+120>>2]=-1;g[d+124>>2]=0.0;g[d+128>>2]=0.0;c[d+132>>2]=0;c[d+136>>2]=-1;g[d+140>>2]=0.0;g[d+144>>2]=0.0;c[d+148>>2]=0;c[d+152>>2]=-1;g[d+156>>2]=0.0;g[d+160>>2]=0.0;c[d+164>>2]=0;c[d+168>>2]=-1;g[d+172>>2]=0.0;g[d+176>>2]=0.0;w=b[17]|0;x=b[11]|0;y=(w&65535)>(x&65535);z=y?7:4;if(!y)if((w&65535)<(x&65535))A=0-(((x&65535)/40|0)&65535)|0;else A=0;else A=(x&65535|0)/-30|0;B=+(A|0);c[d+36>>2]=129;c[k>>2]=z;g[l>>2]=0.0;g[m>>2]=B;c[v>>2]=c[j>>2];c[v+4>>2]=c[j+4>>2];c[v+8>>2]=c[j+8>>2];c[v+12>>2]=c[j+12>>2];j=d+116|0;c[d+68>>2]=130;c[o>>2]=z;g[p>>2]=0.0;g[q>>2]=B;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];n=d+132|0;c[d+20>>2]=131;c[f>>2]=z;g[h>>2]=0.0;g[i>>2]=B;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];e=d+148|0;c[d+84>>2]=128;c[s>>2]=z;g[t>>2]=0.0;g[u>>2]=B;c[e>>2]=c[r>>2];c[e+4>>2]=c[r+4>>2];c[e+8>>2]=c[r+8>>2];c[e+12>>2]=c[r+12>>2];return}function vi(a){a=a|0;rm(a);return}function wi(b){b=b|0;var f=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0;f=i;i=i+16|0;j=f;c[103]=1;k=b+224|0;a[b+228>>0]=0;g[b+232>>2]=0.0;l=b+240|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;id[c[c[k>>2]>>2]&63](k);c[b+184>>2]=k;k=b+24|0;Ei(j,k);m=+h[j>>3];l=c[k>>2]&65535;k=c[33]|0;n=k+(l<<3)+4|0;o=(d[n>>0]|d[n+1>>0]<<8)<<16>>16;p=+h[j+8>>3];j=k+(l<<3)+6|0;n=(d[j>>0]|d[j+1>>0]<<8)<<16>>16;j=k+(l<<3)|0;q=k+(l<<3)+2|0;fb(241110,~~(m+ +(0-o|0))|0,~~(p+ +(0-n|0))|0,~~(m+ +(((d[j>>0]|d[j+1>>0]<<8)&65535)-o|0))|0,~~(p+ +(((d[q>>0]|d[q+1>>0]<<8)&65535)-n|0))|0);n=(e[17]|0)>(e[11]|0)?1:4;c[b+188>>2]=123;c[b+192>>2]=4;g[b+196>>2]=0.0;g[b+200>>2]=0.0;c[b+204>>2]=97;c[b+208>>2]=n;g[b+212>>2]=0.0;g[b+216>>2]=0.0;c[b+220>>2]=(c[1347]|0)-(_((a[5392]|0)!=0?2:1,c[361]|0)|0);i=f;return}function xi(a){a=a|0;Vc(241110);return}function yi(d,e){d=d|0;e=+e;var f=0,i=0.0,j=0,k=0,l=0.0,m=0;if(!(Xd()|0))return;f=d+224|0;i=e;j=d+240|0;h[j>>3]=i+ +h[j>>3];if(a[d+228>>0]|0){j=d+248|0;h[j>>3]=i+ +h[j>>3];j=d+232|0;e=i*2.0+ +g[j>>2];g[j>>2]=e;if(e>=.9)gd[c[(c[f>>2]|0)+16>>2]&15](f,i);if(!(b[2908]&4096))k=j;else{id[c[(c[f>>2]|0)+12>>2]&63](f);k=j}}else{j=d+232|0;g[j>>2]=+g[j>>2]-i*4.0;k=j}e=+g[k>>2];l=e<0.0?0.0:e>1.0?1.0:e;g[k>>2]=l;if(l>0.0)return;Di(d+4|0,i);if(((c[26]|0)%5|0|0)==0?(k=d+220|0,j=c[1347]|0,f=c[k>>2]|0,m=j-f|0,(j|0)!=(f|0)):0)c[k>>2]=((m+9|0)>>>0<19?m>>31|1:(m|0)/10|0)+f;if(!(sh(d+188|0,8,0.0,0.0)|0)){if(!(sh(d+204|0,8,0.0,0.0)|0)?(b[2908]&4096)==0:0)return;qg(1);if((c[101]|0)==1)return;c[101]=1;Wd(250);return}qg(1);switch(c[372]|0){case 7:{if(!(c[101]|0))return;c[101]=0;Wd(250);return}case 8:{if(!(c[101]|0))return;c[101]=0;Wd(250);return}default:{ab(241092,241099);if(!(c[101]|0))return;c[101]=0;Wd(250);return}}}function zi(b){b=b|0;var d=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0;d=i;i=i+400|0;f=d+396|0;h=d;j=d+392|0;k=d+328|0;l=d+264|0;m=d+200|0;n=d+136|0;o=d+72|0;p=d+8|0;Ai();Bi(b+4|0,1.0);q=c[b+188>>2]|0;r=c[b+192>>2]|0;s=+g[b+196>>2];t=+g[b+200>>2];if((r|0)==-1){u=t;v=s}else{w=q&65535;x=s+ +(Rd(w)|0);s=x+ +((r|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);x=t+ +(Sd(w)|0);u=x+ +((r|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);v=s}a[k>>0]=1;c[k+4>>2]=q;c[k+8>>2]=0;g[k+12>>2]=+(~~v|0);g[k+16>>2]=+(~~u|0);q=k+20|0;g[q>>2]=1.0;r=k+24|0;g[r>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+36>>2]=-1;a[k+44>>0]=0;w=k+48|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[k+40>>2]=2147483647;u=+we(+(c[26]|0),0.0,60.0,.9800000190734863,1.0700000524520874);g[r>>2]=u;g[q>>2]=u;if(a[k>>0]|0)Oe(k);k=c[b+204>>2]|0;q=c[b+208>>2]|0;u=+g[b+212>>2];v=+g[b+216>>2];if((q|0)==-1){y=v;z=u}else{r=k&65535;s=u+ +(Rd(r)|0);u=s+ +((q|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);s=v+ +(Sd(r)|0);y=s+ +((q|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);z=u}a[l>>0]=1;c[l+4>>2]=k;c[l+8>>2]=0;g[l+12>>2]=+(~~z|0);g[l+16>>2]=+(~~y|0);g[l+20>>2]=1.0;g[l+24>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;c[l+36>>2]=-1;a[l+44>>0]=0;k=l+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[l+40>>2]=2147483647;Oe(l);a[m>>0]=1;c[m+4>>2]=99;c[m+8>>2]=0;l=m+12|0;g[l>>2]=0.0;k=m+16|0;g[k>>2]=0.0;g[m+20>>2]=1.0;g[m+24>>2]=1.0;g[m+28>>2]=0.0;c[m+32>>2]=0;q=m+36|0;c[q>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;r=m+48|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;y=+(Rd(99)|0);g[l>>2]=+(~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);y=+(Sd(99)|0);g[k>>2]=+(~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);switch(c[372]|0){case 0:{A=-13264910;break}case 2:{A=-6737552;break}case 3:{A=-11723035;break}default:A=-1}c[q>>2]=A;if(a[m>>0]|0)Oe(m);a[n>>0]=1;c[n+4>>2]=101;c[n+8>>2]=0;m=n+12|0;g[m>>2]=0.0;A=n+16|0;g[A>>2]=0.0;g[n+20>>2]=1.0;g[n+24>>2]=1.0;g[n+28>>2]=0.0;c[n+32>>2]=0;c[n+36>>2]=-1;c[n+40>>2]=0;a[n+44>>0]=0;q=n+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;y=+(Rd(101)|0);g[m>>2]=+(~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);y=+(Sd(101)|0);g[A>>2]=+(~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);if(a[n>>0]|0)Oe(n);a[o>>0]=1;c[o+4>>2]=102;c[o+8>>2]=0;n=o+12|0;g[n>>2]=0.0;A=o+16|0;g[A>>2]=0.0;g[o+20>>2]=1.0;g[o+24>>2]=1.0;g[o+28>>2]=0.0;c[o+32>>2]=0;c[o+36>>2]=-1;c[o+40>>2]=0;a[o+44>>0]=0;m=o+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;y=+(Rd(102)|0);g[n>>2]=+(~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);y=+(Sd(102)|0);g[A>>2]=+(~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);if(a[o>>0]|0)Oe(o);a[p>>0]=1;c[p+4>>2]=100;c[p+8>>2]=0;o=p+12|0;g[o>>2]=0.0;A=p+16|0;g[A>>2]=0.0;g[p+20>>2]=1.0;g[p+24>>2]=1.0;g[p+28>>2]=0.0;c[p+32>>2]=0;c[p+36>>2]=-1;c[p+40>>2]=0;a[p+44>>0]=0;n=p+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;y=+(Rd(100)|0);g[o>>2]=+(~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);y=+(Sd(100)|0);g[A>>2]=+(~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);if(a[p>>0]|0)Oe(p);p=c[361]|0;c[j>>2]=103;y=+(Rd(103)|0);A=~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5);y=+(Sd(103)|0);o=~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5);c[f>>2]=c[j>>2];Me(f,p,A,o,-1,1.0,1);o=c[372]|0;switch(o|0){case 0:{B=5352;break}case 2:{B=5356;break}case 7:{B=5360;break}case 8:{B=5364;break}case 3:{B=5368;break}default:{c[h>>2]=o;Pn(241056,h)|0;B=5352}}h=c[B>>2]|0;c[j>>2]=113;y=+(Rd(113)|0);B=~~(y+ +((e[16]|0)-(e[10]|0)|0)*.5);y=+(Sd(113)|0);o=~~(y+ +((e[17]|0)-(e[11]|0)|0)*.5);c[f>>2]=c[j>>2];Me(f,h,B,o,-1,1.0,1);o=b+224|0;y=+g[b+232>>2];if(y<=0.0){i=d;return}b=c[8]|0;Md(0.0,0.0,+(b&65535|0),+(b>>>16|0),0,~~(y*224.0)<<24)|0;id[c[(c[o>>2]|0)+20>>2]&63](o);i=d;return}function Ai(){var d=0,f=0,h=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;d=i;i=i+192|0;f=d+128|0;h=d+64|0;j=d;k=b[17]|0;l=b[11]|0;m=+(c[26]<<1|0);a[f>>0]=1;c[f+4>>2]=137;n=f+12|0;g[n>>2]=0.0;o=f+16|0;g[o>>2]=0.0;g[f+20>>2]=1.0;g[f+24>>2]=1.0;p=f+28|0;g[p>>2]=0.0;c[f+32>>2]=0;c[f+36>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;q=f+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[f+8>>2]=0;r=+(Rd(137)|0);g[n>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);r=+(Sd(137)|0);s=+((k&65535)<=(l&65535)|0)*.5;g[o>>2]=+(~~(r+s*+((e[17]|0)-(e[11]|0)|0))|0);g[p>>2]=m;if(a[f>>0]|0)Oe(f);a[h>>0]=1;c[h+4>>2]=137;f=h+12|0;g[f>>2]=0.0;p=h+16|0;g[p>>2]=0.0;g[h+20>>2]=1.0;g[h+24>>2]=1.0;o=h+28|0;g[o>>2]=0.0;c[h+32>>2]=0;c[h+36>>2]=-1;c[h+40>>2]=0;a[h+44>>0]=0;l=h+48|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[h+8>>2]=1;r=+(Rd(138)|0);g[f>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);r=+(Sd(138)|0);g[p>>2]=+(~~(r+s*+((e[17]|0)-(e[11]|0)|0))|0);g[o>>2]=-m;if(a[h>>0]|0)Oe(h);a[j>>0]=1;c[j+4>>2]=136;c[j+8>>2]=0;h=j+12|0;g[h>>2]=0.0;o=j+16|0;g[o>>2]=0.0;g[j+20>>2]=1.0;g[j+24>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;c[j+40>>2]=0;a[j+44>>0]=0;p=j+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;m=+(Rd(136)|0);g[h>>2]=+(~~(m+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);m=+(Sd(136)|0);g[o>>2]=+(~~(m+s*+((e[17]|0)-(e[11]|0)|0))|0);if(!(a[j>>0]|0)){i=d;return}Oe(j);i=d;return}function Bi(b,d){b=b|0;d=+d;var f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;f=i;i=i+304|0;h=f+256|0;j=f+272|0;k=f+192|0;l=f+128|0;m=f+64|0;n=f;o=c[26]<<1;p=b+20|0;c[h>>2]=c[p>>2];c[h+4>>2]=c[p+4>>2];c[h+8>>2]=c[p+8>>2];c[h+12>>2]=c[p+12>>2];Ci(k,b,h,d);q=+(0-o|0);g[k+28>>2]=q;if(a[k>>0]|0)Oe(k);k=b+68|0;c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];Ci(l,b,h,d);r=+(o|0);g[l+28>>2]=r;if(a[l>>0]|0)Oe(l);l=b+36|0;c[h>>2]=c[l>>2];c[h+4>>2]=c[l+4>>2];c[h+8>>2]=c[l+8>>2];c[h+12>>2]=c[l+12>>2];Ci(m,b,h,d);g[m+28>>2]=q;if(a[m>>0]|0)Oe(m);m=c[b+84>>2]|0;l=c[b+88>>2]|0;q=+g[b+92>>2];d=+g[b+96>>2];if((l|0)==-1){s=d;t=q}else{b=m&65535;u=q+ +(Rd(b)|0);q=u+ +((l|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);u=d+ +(Sd(b)|0);s=u+ +((l|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);t=q}q=+(~~t|0);t=+(~~s|0);l=j+3|0;b=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(b|0));a[n>>0]=1;o=n+1|0;a[o>>0]=a[h>>0]|0;a[o+1>>0]=a[h+1>>0]|0;a[o+2>>0]=a[h+2>>0]|0;c[n+4>>2]=m;c[n+8>>2]=0;g[n+12>>2]=q;g[n+16>>2]=t;g[n+20>>2]=1.0;g[n+24>>2]=1.0;m=n+28|0;c[n+32>>2]=0;h=n+36|0;c[n+40>>2]=-8421505;a[n+44>>0]=0;l=n+45|0;o=j;b=l+19|0;do{a[l>>0]=a[o>>0]|0;l=l+1|0;o=o+1|0}while((l|0)<(b|0));g[m>>2]=r;c[h>>2]=(a[5372]|0)!=0?2147483647:-1;Oe(n);i=f;return}function Ci(b,d,f,h){b=b|0;d=d|0;f=f|0;h=+h;var j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;d=i;i=i+64|0;j=d;k=c[f>>2]|0;l=c[f+4>>2]|0;m=+g[f+8>>2];n=+g[f+12>>2];if((l|0)==-1){o=n;p=m}else{f=k&65535;q=m+ +(Rd(f)|0);m=q+ +((l|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);q=n+ +(Sd(f)|0);o=q+ +((l|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);p=m}a[j>>0]=1;c[j+4>>2]=k;c[j+8>>2]=0;g[j+12>>2]=+(~~p|0);g[j+16>>2]=+(~~o|0);g[j+20>>2]=1.0;g[j+24>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;a[j+44>>0]=0;k=j+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[j+40>>2]=-8421505;k=~~(h*255.0);c[j+36>>2]=(k|0)<0?16777215:(k|0)>255?-1:k<<24|16777215;k=b;b=j;j=k+64|0;do{c[k>>2]=c[b>>2];k=k+4|0;b=b+4|0}while((k|0)<(j|0));i=d;return}function Di(b,d){b=b|0;d=+d;var e=0;if(sh(b+20|0,8,0.0,0.0)|0){qg(1);if(!(c[2478]|0))return;a[5374]=a[5374]^1;Ml();return}if(sh(b+84|0,8,0.0,0.0)|0){Ol();qg(1);return}if(sh(b+68|0,8,0.0,0.0)|0){qg(1);if((c[101]|0)==3)return;c[101]=3;Wd(250);return}if(!(sh(b+36|0,8,0.0,0.0)|0))return;qg(1);e=c[b+180>>2]|0;b=e+4|0;if(a[b>>0]|0)return;h[e+24>>3]=0.0;a[b>>0]=1;id[c[(c[e>>2]|0)+4>>2]&63](e);return}function Ei(a,b){a=a|0;b=b|0;var d=0,f=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0;d=b+4|0;f=+g[b+8>>2];if((c[d>>2]|0)!=-1){i=f+ +(Rd(c[b>>2]&65535)|0);j=c[d>>2]|0;k=+(~~(i+ +((j|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0))|0);i=+g[b+12>>2];if((j|0)==-1){l=i;m=k}else{n=i+ +(Sd(c[b>>2]&65535)|0);l=n+ +((c[d>>2]|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);m=k}}else{l=+g[b+12>>2];m=+(~~f|0)}h[a>>3]=m;h[a+8>>3]=+(~~l|0);return}function Fi(b){b=b|0;a[b+32>>0]=0;return}function Gi(a){a=a|0;var b=0.0,f=0.0,g=0.0,h=0,i=0,j=0,k=0;ab(241150,241156);b=+(Rd(236)|0);f=+(~~(b+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);b=+(Sd(236)|0);g=+(~~(b+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);a=c[33]|0;h=a+1892|0;i=(d[h>>0]|d[h+1>>0]<<8)<<16>>16;h=a+1894|0;j=(d[h>>0]|d[h+1>>0]<<8)<<16>>16;h=a+1888|0;k=a+1890|0;fb(241128,~~(f+ +(0-i|0))|0,~~(+(0-j|0)+g)|0,~~(f+ +(((d[h>>0]|d[h+1>>0]<<8)&65535)-i|0))|0,~~(g+ +(((d[k>>0]|d[k+1>>0]<<8)&65535)-j|0))|0);g=+(Rd(237)|0);f=+(~~(g+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);g=+(Sd(237)|0);b=+(~~(g+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);j=c[33]|0;k=j+1900|0;i=(d[k>>0]|d[k+1>>0]<<8)<<16>>16;k=j+1902|0;h=(d[k>>0]|d[k+1>>0]<<8)<<16>>16;k=j+1896|0;a=j+1898|0;fb(241137,~~(f+ +(0-i|0))|0,~~(+(0-h|0)+b)|0,~~(f+ +(((d[k>>0]|d[k+1>>0]<<8)&65535)-i|0))|0,~~(b+ +(((d[a>>0]|d[a+1>>0]<<8)&65535)-h|0))|0);return}function Hi(a){a=a|0;Vc(241128);Vc(241137);return}function Ii(b){b=b|0;qg(1);a[b+4>>0]=0;id[c[(c[b>>2]|0)+8>>2]&63](b);return}function Ji(b,d){b=b|0;d=+d;var e=0,f=0,h=0,j=0;e=i;i=i+48|0;f=e+32|0;h=e+16|0;j=e;c[f>>2]=235;c[f+4>>2]=4;g[f+8>>2]=0.0;g[f+12>>2]=0.0;if(sh(f,8,0.0,0.0)|0){qg(1);a[b+4>>0]=0;id[c[(c[b>>2]|0)+8>>2]&63](b);i=e;return}c[h>>2]=237;c[h+4>>2]=4;g[h+8>>2]=0.0;g[h+12>>2]=0.0;if(sh(h,8,0.0,0.0)|0){qg(1);i=e;return}c[j>>2]=236;c[j+4>>2]=4;g[j+8>>2]=0.0;g[j+12>>2]=0.0;if(!(sh(j,8,0.0,0.0)|0)){i=e;return}qg(1);i=e;return}function Ki(b){b=b|0;var d=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;d=i;i=i+384|0;f=d+320|0;h=d+256|0;j=d+192|0;k=d+128|0;l=d+64|0;m=d;a[f>>0]=1;c[f+4>>2]=233;c[f+8>>2]=0;n=f+12|0;g[n>>2]=0.0;o=f+16|0;g[o>>2]=0.0;g[f+20>>2]=1.0;g[f+24>>2]=1.0;p=f+28|0;g[p>>2]=0.0;c[f+32>>2]=0;q=f+36|0;c[q>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;r=f+48|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;s=+(Rd(233)|0);g[n>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);s=+(Sd(233)|0);g[o>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);o=b+8|0;n=~~(+g[o>>2]*255.0);c[q>>2]=((n|0)<0?0:(n|0)>255?-16777216:n<<24)|c[q>>2]&16777215;a[f>>0]=0;s=+(c[26]|0)/6.0;g[p>>2]=0.0-s;Oe(f);g[p>>2]=30.0-s;Oe(f);g[p>>2]=60.0-s;Oe(f);g[p>>2]=90.0-s;Oe(f);g[p>>2]=120.0-s;Oe(f);g[p>>2]=150.0-s;Oe(f);g[p>>2]=180.0-s;Oe(f);g[p>>2]=210.0-s;Oe(f);g[p>>2]=240.0-s;Oe(f);g[p>>2]=270.0-s;Oe(f);g[p>>2]=300.0-s;Oe(f);g[p>>2]=330.0-s;Oe(f);if(a[f>>0]|0)Oe(f);a[h>>0]=1;c[h+4>>2]=234;c[h+8>>2]=0;f=h+12|0;g[f>>2]=0.0;p=h+16|0;g[p>>2]=0.0;g[h+20>>2]=1.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;q=h+36|0;c[q>>2]=-1;c[h+40>>2]=0;a[h+44>>0]=0;n=h+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;s=+(Rd(234)|0);g[f>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);s=+(Sd(234)|0);g[p>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);p=~~(+g[o>>2]*255.0);c[q>>2]=((p|0)<0?0:(p|0)>255?-16777216:p<<24)|c[q>>2]&16777215;if(a[h>>0]|0)Oe(h);if((a[b+32>>0]|0)==0?(a[j>>0]=1,c[j+4>>2]=235,c[j+8>>2]=0,b=j+12|0,g[b>>2]=0.0,h=j+16|0,g[h>>2]=0.0,g[j+20>>2]=1.0,g[j+24>>2]=1.0,g[j+28>>2]=0.0,c[j+32>>2]=0,q=j+36|0,c[q>>2]=-1,c[j+40>>2]=0,a[j+44>>0]=0,p=j+48|0,c[p>>2]=0,c[p+4>>2]=0,c[p+8>>2]=0,c[p+12>>2]=0,s=+(Rd(235)|0),g[b>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0),s=+(Sd(235)|0),g[h>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0),h=~~(+g[o>>2]*255.0),c[q>>2]=((h|0)<0?0:(h|0)>255?-16777216:h<<24)|c[q>>2]&16777215,(a[j>>0]|0)!=0):0)Oe(j);a[k>>0]=1;c[k+4>>2]=236;c[k+8>>2]=0;j=k+12|0;g[j>>2]=0.0;q=k+16|0;g[q>>2]=0.0;g[k+20>>2]=1.0;g[k+24>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;h=k+36|0;c[h>>2]=-1;b=k+40|0;c[b>>2]=0;a[k+44>>0]=0;p=k+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;s=+(Rd(236)|0);g[j>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);s=+(Sd(236)|0);g[q>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);c[b>>2]=-8421505;b=~~(+g[o>>2]*255.0);c[h>>2]=((b|0)<0?0:(b|0)>255?-16777216:b<<24)|c[h>>2]&16777215;if(a[k>>0]|0)Oe(k);a[l>>0]=1;c[l+4>>2]=237;c[l+8>>2]=0;k=l+12|0;g[k>>2]=0.0;h=l+16|0;g[h>>2]=0.0;g[l+20>>2]=1.0;g[l+24>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;b=l+36|0;c[b>>2]=-1;q=l+40|0;c[q>>2]=0;a[l+44>>0]=0;j=l+48|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;s=+(Rd(237)|0);g[k>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);s=+(Sd(237)|0);g[h>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);c[q>>2]=-8421505;q=~~(+g[o>>2]*255.0);c[b>>2]=((q|0)<0?0:(q|0)>255?-16777216:q<<24)|c[b>>2]&16777215;if(a[l>>0]|0)Oe(l);a[m>>0]=1;c[m+4>>2]=238;c[m+8>>2]=0;l=m+12|0;g[l>>2]=0.0;b=m+16|0;g[b>>2]=0.0;g[m+20>>2]=1.0;g[m+24>>2]=1.0;q=m+28|0;g[q>>2]=0.0;c[m+32>>2]=0;h=m+36|0;c[h>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;k=m+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;s=+(Rd(238)|0);g[l>>2]=+(~~(s+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);s=+(Sd(238)|0);g[b>>2]=+(~~(s+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);g[q>>2]=+we(+(c[26]|0),0.0,60.0,-10.0,10.0);q=~~(+g[o>>2]*255.0);c[h>>2]=((q|0)<0?0:(q|0)>255?-16777216:q<<24)|c[h>>2]&16777215;if(!(a[m>>0]|0)){i=d;return}Oe(m);i=d;return}function Li(b){b=b|0;var d=0;d=c[1356]|0;if(!((c[2479]|0)!=0|(d|0)<3))return;if(!((d|0)<=0?!((d|0)==0&(c[1338]|0)!=0):0)){d=b+4|0;if(!(a[d>>0]|0)){h[b+24>>3]=0.0;a[d>>0]=1;id[c[(c[b>>2]|0)+4>>2]&63](b)}g[b+8>>2]=1.0}c[1356]=3;Ml();return}function Mi(a){a=a|0;return}function Ni(a){a=a|0;return}function Oi(b,d){b=b|0;d=+d;if(!(fe(8)|0))return;qg(1);a[b+4>>0]=0;id[c[(c[b>>2]|0)+8>>2]&63](b);return}function Pi(b){b=b|0;var d=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0;d=i;i=i+128|0;f=d+64|0;h=d;a[f>>0]=1;c[f+4>>2]=233;c[f+8>>2]=0;j=f+12|0;g[j>>2]=0.0;k=f+16|0;g[k>>2]=0.0;g[f+20>>2]=1.0;g[f+24>>2]=1.0;l=f+28|0;g[l>>2]=0.0;c[f+32>>2]=0;m=f+36|0;c[m>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;n=f+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;o=+(Rd(233)|0);g[j>>2]=+(~~(o+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);o=+(Sd(233)|0);g[k>>2]=+(~~(o+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);k=b+8|0;b=~~(+g[k>>2]*255.0);c[m>>2]=((b|0)<0?0:(b|0)>255?-16777216:b<<24)|c[m>>2]&16777215;a[f>>0]=0;o=+(c[26]|0)/6.0;g[l>>2]=0.0-o;Oe(f);g[l>>2]=30.0-o;Oe(f);g[l>>2]=60.0-o;Oe(f);g[l>>2]=90.0-o;Oe(f);g[l>>2]=120.0-o;Oe(f);g[l>>2]=150.0-o;Oe(f);g[l>>2]=180.0-o;Oe(f);g[l>>2]=210.0-o;Oe(f);g[l>>2]=240.0-o;Oe(f);g[l>>2]=270.0-o;Oe(f);g[l>>2]=300.0-o;Oe(f);g[l>>2]=330.0-o;Oe(f);if(a[f>>0]|0)Oe(f);a[h>>0]=1;c[h+4>>2]=234;c[h+8>>2]=0;f=h+12|0;g[f>>2]=0.0;l=h+16|0;g[l>>2]=0.0;g[h+20>>2]=1.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;m=h+36|0;c[m>>2]=-1;c[h+40>>2]=0;a[h+44>>0]=0;b=h+48|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;o=+(Rd(234)|0);g[f>>2]=+(~~(o+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);o=+(Sd(234)|0);g[l>>2]=+(~~(o+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);l=~~(+g[k>>2]*255.0);c[m>>2]=((l|0)<0?0:(l|0)>255?-16777216:l<<24)|c[m>>2]&16777215;if(!(a[h>>0]|0)){i=d;return}Oe(h);i=d;return}function Qi(a){a=a|0;rm(a);return}function Ri(f){f=f|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.0,v=0.0;j=i;i=i+16|0;k=j;l=f+212|0;g[l>>2]=0.0;m=f+256|0;n=f+260|0;a[n>>0]=0;g[f+264>>2]=0.0;o=f+272|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;id[c[c[m>>2]>>2]&63](m);o=f+248|0;g[o>>2]=0.0;p=b[11]|0;if((e[17]|0)<(p&65535))g[l>>2]=+((p&65535|0)/-40|0|0);c[103]=1;c[372]=0;p=2472;q=0;while(1){r=(d[p>>0]|0)+q|0;p=p+1|0;if(p>>>0>2983>>>0){s=r;break}else q=r}c[f+204>>2]=s;s=2984;q=0;while(1){p=(d[s>>0]|0)+q|0;s=s+1|0;if(s>>>0>3239>>>0){t=p;break}else q=p}c[f+208>>2]=t;c[364]=0;c[f+184>>2]=m;t=f+24|0;Ei(k,t);u=+h[k>>3];q=c[t>>2]&65535;t=c[33]|0;s=t+(q<<3)+4|0;p=(d[s>>0]|d[s+1>>0]<<8)<<16>>16;v=+h[k+8>>3];k=t+(q<<3)+6|0;s=(d[k>>0]|d[k+1>>0]<<8)<<16>>16;k=t+(q<<3)|0;r=t+(q<<3)+2|0;fb(241110,~~(u+ +(0-p|0))|0,~~(v+ +(0-s|0))|0,~~(u+ +(((d[k>>0]|d[k+1>>0]<<8)&65535)-p|0))|0,~~(v+ +(((d[r>>0]|d[r+1>>0]<<8)&65535)-s|0))|0);s=f+216|0;a[f+220>>0]=0;r=f+224|0;g[r>>2]=0.0;p=f+232|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;id[c[c[s>>2]>>2]&63](s);if(+g[r>>2]>0.0)g[o>>2]=1.0;o=c[l>>2]|0;c[f+188>>2]=132;c[f+192>>2]=4;g[f+196>>2]=0.0;c[f+200>>2]=o;if(qc()|0){if(!(a[n>>0]|0)){h[f+280>>3]=0.0;a[n>>0]=1;id[c[(c[m>>2]|0)+4>>2]&63](m)}a[f+288>>0]=1}v=+(Rd(143)|0);u=+(Sd(143)|0);f=c[33]|0;m=f+1148|0;n=(d[m>>0]|d[m+1>>0]<<8)<<16>>16;m=f+1150|0;o=(d[m>>0]|d[m+1>>0]<<8)<<16>>16;m=f+1144|0;l=f+1146|0;fb(241219,~~(v+ +(0-n|0))|0,~~(u+ +(0-o|0))|0,~~(v+ +(((d[m>>0]|d[m+1>>0]<<8)&65535)-n|0))|0,~~(u+ +(((d[l>>0]|d[l+1>>0]<<8)&65535)-o|0))|0);i=j;return}function Si(a){a=a|0;Ie(250);Vc(241110);Vc(241219);return}function Ti(d,e){d=d|0;e=+e;var f=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0;f=i;i=i+16|0;j=f;if(!(Xd()|0)){i=f;return}k=d+216|0;l=e;m=d+232|0;h[m>>3]=l+ +h[m>>3];if(a[d+220>>0]|0){m=d+240|0;h[m>>3]=l+ +h[m>>3];m=d+224|0;n=l*2.0+ +g[m>>2];g[m>>2]=n;if(n>=.9)gd[c[(c[k>>2]|0)+16>>2]&15](k,l);if(!(b[2908]&4096))o=m;else{id[c[(c[k>>2]|0)+12>>2]&63](k);o=m}}else{m=d+224|0;g[m>>2]=+g[m>>2]-l*4.0;o=m}n=+g[o>>2];g[o>>2]=n<0.0?0.0:n>1.0?1.0:n;o=d+256|0;m=d+272|0;h[m>>3]=l+ +h[m>>3];m=d+260|0;if(a[m>>0]|0){k=d+280|0;h[k>>3]=l+ +h[k>>3];k=d+264|0;n=l*2.0+ +g[k>>2];g[k>>2]=n;if(n>=.9)gd[c[(c[o>>2]|0)+16>>2]&15](o,l);if(!(b[2908]&4096))p=k;else{id[c[(c[o>>2]|0)+12>>2]&63](o);p=k}}else{k=d+264|0;g[k>>2]=+g[k>>2]-l*4.0;p=k}n=+g[p>>2];g[p>>2]=n<0.0?0.0:n>1.0?1.0:n;p=d+248|0;n=+g[p>>2];if(n>0.0&n<1.0)g[p>>2]=n-e*2.0;if(+g[d+224>>2]>0.0){i=f;return}if(+g[d+264>>2]>0.0){i=f;return}Di(d+4|0,l);l=+g[d+212>>2]*.5;c[j>>2]=142;c[j+4>>2]=4;g[j+8>>2]=0.0;g[j+12>>2]=l;if(!(sh(j,8,0.0,0.0)|0)){if(b[2908]&4096)Ag();if(!(sh(d+188|0,8,0.0,0.0)|0)){i=f;return}qg(1);ab(241092,241201);if(a[m>>0]|0){i=f;return}h[d+280>>3]=0.0;a[m>>0]=1;id[c[(c[o>>2]|0)+4>>2]&63](o);i=f;return}qg(1);c[366]=-1;c[367]=-1;ab(241092,241099);if(!(c[1338]|0)){c[103]=0;if((c[101]|0)==3){i=f;return}c[101]=3;Wd(250);i=f;return}else{if(!(c[101]|0)){i=f;return}c[101]=0;Wd(250);i=f;return}}function Ui(b){b=b|0;var d=0,f=0,h=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.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0;d=i;i=i+800|0;f=d+787|0;h=d+768|0;j=d+704|0;k=d+640|0;l=d+576|0;m=d+512|0;n=d+448|0;o=d+384|0;p=d+320|0;q=d+256|0;r=d+192|0;s=d+128|0;t=d+64|0;u=d;Vi(b);Ai();Bi(b+4|0,1.0);v=c[b+188>>2]|0;w=c[b+192>>2]|0;x=+g[b+196>>2];y=+g[b+200>>2];if((w|0)==-1){z=y;A=x}else{B=v&65535;C=x+ +(Rd(B)|0);x=C+ +((w|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);C=y+ +(Sd(B)|0);z=C+ +((w|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);A=x}x=+(~~A|0);A=+(~~z|0);w=h+3|0;B=w+16|0;do{a[w>>0]=0;w=w+1|0}while((w|0)<(B|0));a[j>>0]=1;D=j+1|0;a[D>>0]=a[f>>0]|0;a[D+1>>0]=a[f+1>>0]|0;a[D+2>>0]=a[f+2>>0]|0;c[j+4>>2]=v;c[j+8>>2]=0;g[j+12>>2]=x;g[j+16>>2]=A;v=j+20|0;g[v>>2]=1.0;f=j+24|0;g[f>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;c[j+40>>2]=-8421505;a[j+44>>0]=0;w=j+45|0;D=h;B=w+19|0;do{a[w>>0]=a[D>>0]|0;w=w+1|0;D=D+1|0}while((w|0)<(B|0));A=+we(+(c[26]|0),0.0,57.599998474121094,1.0,.9200000166893005);g[f>>2]=A;g[v>>2]=A;if(a[j>>0]|0)Oe(j);a[k>>0]=1;c[k+4>>2]=133;c[k+8>>2]=0;j=k+12|0;g[j>>2]=0.0;v=k+16|0;g[v>>2]=0.0;f=k+20|0;g[f>>2]=1.0;D=k+24|0;g[D>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+36>>2]=-1;c[k+40>>2]=0;a[k+44>>0]=0;w=k+48|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;A=+(Rd(133)|0);g[j>>2]=+(~~(A+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);A=+(Sd(133)|0);x=+(~~(A+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);w=b+212|0;A=+g[w>>2];g[j>>2]=+g[j>>2]+0.0;g[v>>2]=A+x;x=+we(+(c[26]|0),0.0,57.599998474121094,1.0,.9200000166893005);g[D>>2]=x;g[f>>2]=x;if(a[k>>0]|0)Oe(k);a[l>>0]=1;c[l+4>>2]=135;c[l+8>>2]=0;k=l+12|0;g[k>>2]=0.0;f=l+16|0;g[f>>2]=0.0;g[l+20>>2]=1.0;g[l+24>>2]=1.0;D=l+28|0;g[D>>2]=0.0;c[l+32>>2]=0;c[l+36>>2]=-1;c[l+40>>2]=0;a[l+44>>0]=0;v=l+48|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;x=+(Rd(135)|0);g[k>>2]=+(~~(x+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);x=+(Sd(135)|0);A=+(~~(x+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);x=+g[w>>2];g[k>>2]=+g[k>>2]+0.0;g[f>>2]=x+A;g[D>>2]=+(_(c[26]|0,-2)|0);if(a[l>>0]|0)Oe(l);a[m>>0]=1;c[m+4>>2]=134;c[m+8>>2]=0;l=m+12|0;g[l>>2]=0.0;D=m+16|0;g[D>>2]=0.0;g[m+20>>2]=1.0;g[m+24>>2]=1.0;f=m+28|0;g[f>>2]=0.0;c[m+32>>2]=0;c[m+36>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;k=m+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;A=+(Rd(134)|0);g[l>>2]=+(~~(A+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);A=+(Sd(134)|0);x=+(~~(A+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);A=+g[w>>2];g[l>>2]=+g[l>>2]+0.0;g[D>>2]=A+x;g[f>>2]=+(c[26]<<1|0);if(a[m>>0]|0)Oe(m);m=c[8]|0;a[n>>0]=1;c[n+4>>2]=34;c[n+8>>2]=0;g[n+12>>2]=+(m<<1&131070|0);g[n+16>>2]=+(m>>>16<<1|0);g[n+20>>2]=1.0;g[n+24>>2]=1.0;g[n+28>>2]=0.0;c[n+32>>2]=0;c[n+36>>2]=-1;c[n+40>>2]=0;a[n+44>>0]=0;m=n+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;Oe(n);n=c[8]|0;a[o>>0]=1;c[o+4>>2]=144;c[o+8>>2]=0;g[o+12>>2]=+(n<<1&131070|0);g[o+16>>2]=+(n>>>16<<1|0);g[o+20>>2]=1.0;g[o+24>>2]=1.0;g[o+28>>2]=0.0;c[o+32>>2]=0;c[o+36>>2]=-1;c[o+40>>2]=0;a[o+44>>0]=0;n=o+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;Oe(o);o=c[8]|0;a[p>>0]=1;c[p+4>>2]=162;c[p+8>>2]=0;g[p+12>>2]=+(o<<1&131070|0);g[p+16>>2]=+(o>>>15&131070|0);g[p+20>>2]=1.0;g[p+24>>2]=1.0;g[p+28>>2]=0.0;c[p+32>>2]=0;c[p+36>>2]=-1;c[p+40>>2]=0;a[p+44>>0]=0;o=p+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;Oe(p);p=c[8]|0;a[q>>0]=1;c[q+4>>2]=175;c[q+8>>2]=0;g[q+12>>2]=+(p<<1&131070|0);g[q+16>>2]=+(p>>>15&131070|0);g[q+20>>2]=1.0;g[q+24>>2]=1.0;g[q+28>>2]=0.0;c[q+32>>2]=0;c[q+36>>2]=-1;c[q+40>>2]=0;a[q+44>>0]=0;p=q+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;Oe(q);q=c[8]|0;a[r>>0]=1;c[r+4>>2]=193;c[r+8>>2]=0;g[r+12>>2]=+(q<<1&131070|0);g[r+16>>2]=+(q>>>15&131070|0);g[r+20>>2]=1.0;g[r+24>>2]=1.0;g[r+28>>2]=0.0;c[r+32>>2]=0;c[r+36>>2]=-1;c[r+40>>2]=0;a[r+44>>0]=0;q=r+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;Oe(r);r=c[8]|0;a[s>>0]=1;c[s+4>>2]=205;c[s+8>>2]=0;g[s+12>>2]=+(r<<1&131070|0);g[s+16>>2]=+(r>>>15&131070|0);g[s+20>>2]=1.0;g[s+24>>2]=1.0;g[s+28>>2]=0.0;c[s+32>>2]=0;c[s+36>>2]=-1;c[s+40>>2]=0;a[s+44>>0]=0;r=s+48|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;Oe(s);s=c[8]|0;a[t>>0]=1;c[t+4>>2]=215;c[t+8>>2]=0;g[t+12>>2]=+(s<<1&131070|0);g[t+16>>2]=+(s>>>15&131070|0);g[t+20>>2]=1.0;g[t+24>>2]=1.0;g[t+28>>2]=0.0;c[t+32>>2]=0;c[t+36>>2]=-1;c[t+40>>2]=0;a[t+44>>0]=0;s=t+48|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;Oe(t);a[u>>0]=1;c[u+4>>2]=143;c[u+8>>2]=0;t=u+12|0;g[t>>2]=0.0;s=u+16|0;g[s>>2]=0.0;g[u+20>>2]=1.0;g[u+24>>2]=1.0;g[u+28>>2]=0.0;c[u+32>>2]=0;c[u+36>>2]=-1;c[u+40>>2]=0;a[u+44>>0]=0;r=u+48|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;x=+(Rd(143)|0);g[t>>2]=+(~~(x+ +((e[16]|0)-(e[10]|0)|0)*0.0)|0);x=+(Sd(143)|0);g[s>>2]=+(~~(x+ +((e[17]|0)-(e[11]|0)|0)*0.0)|0);if(a[u>>0]|0)Oe(u);u=b+216|0;x=+g[b+224>>2];if(!(x<=0.0)){s=c[8]|0;Md(0.0,0.0,+(s&65535|0),+(s>>>16|0),0,~~(x*224.0)<<24)|0;id[c[(c[u>>2]|0)+20>>2]&63](u)}u=b+256|0;x=+g[b+264>>2];if(x<=0.0){i=d;return}b=c[8]|0;Md(0.0,0.0,+(b&65535|0),+(b>>>16|0),0,~~(x*224.0)<<24)|0;id[c[(c[u>>2]|0)+20>>2]&63](u);i=d;return}function Vi(b){b=b|0;var d=0,f=0,h=0,j=0.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.0,y=0,z=0.0;d=i;i=i+128|0;f=d+64|0;h=d;j=+(c[26]|0);k=f+4|0;l=f+8|0;m=f+12|0;n=f+16|0;o=f+20|0;p=f+24|0;q=f+28|0;r=f+32|0;s=f+36|0;t=f+40|0;u=f+44|0;v=f+48|0;w=b+212|0;b=0;do{a[f>>0]=1;c[k>>2]=139;g[m>>2]=0.0;g[n>>2]=0.0;g[o>>2]=1.0;g[p>>2]=1.0;g[q>>2]=0.0;c[r>>2]=0;c[s>>2]=-1;c[t>>2]=0;a[u>>0]=0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[l>>2]=b;x=+g[w>>2]*.5;y=b+139&65535;z=+(Rd(y)|0);g[m>>2]=+(~~(z+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);z=+(Sd(y)|0);g[n>>2]=x+ +(~~(z+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);g[q>>2]=j*(+((b<<1&2^2)+-1|0)*+xe(+(b|0),2.0,0.0,1.5,1.0));if(a[f>>0]|0)Oe(f);b=b+1|0}while((b|0)<3);a[h>>0]=1;c[h+4>>2]=142;c[h+8>>2]=0;b=h+12|0;g[b>>2]=0.0;f=h+16|0;g[f>>2]=0.0;g[h+20>>2]=1.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;c[h+36>>2]=-1;q=h+40|0;c[q>>2]=0;a[h+44>>0]=0;n=h+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;j=+g[w>>2]*.5;z=+(Rd(142)|0);g[b>>2]=+(~~(z+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);z=+(Sd(142)|0);g[f>>2]=j+ +(~~(z+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);c[q>>2]=2147483647;if(!(a[h>>0]|0)){i=d;return}Oe(h);i=d;return}function Wi(b,d){b=b|0;d=d|0;var e=0,f=0,j=0.0,l=0.0,m=0,n=0,o=0,p=0;b=i;i=i+64|0;e=b;f=c[d+56>>2]|0;j=+h[d+8>>3];l=+h[d+16>>3];a[e>>0]=1;c[e+4>>2]=f;c[e+8>>2]=0;f=e+12|0;g[f>>2]=j;m=e+16|0;g[m>>2]=l;g[e+20>>2]=1.0;g[e+24>>2]=1.0;n=e+28|0;c[e+32>>2]=0;c[e+40>>2]=0;a[e+44>>0]=0;o=e+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;o=c[d+92>>2]|0;c[n>>2]=o;p=~~(+g[d+104>>2]*255.0);c[e+36>>2]=(p|0)<0?16777215:(p|0)>255?-1:p<<24|16777215;if(!(a[1473]|0)){Oe(e);i=b;return}g[n>>2]=(c[k>>2]=o,+g[k>>2])+180.0;o=c[8]|0;g[f>>2]=+(o&65535|0)-j;g[m>>2]=+(o>>>16|0)-l;Oe(e);i=b;return}function Xi(a,b){a=+a;b=+b;var c=0.0;c=+en(a,b);return +(c<0.0?c+b:c)}function Yi(){var a=0;a=qm(4)|0;c[a>>2]=8456;c[2068]=a;a=qm(4)|0;c[a>>2]=8480;c[2069]=a;a=qm(4)|0;c[a>>2]=8504;c[2071]=a;a=qm(4)|0;c[a>>2]=8528;c[2072]=a;a=qm(4)|0;c[a>>2]=8552;c[2074]=a;a=qm(4)|0;c[a>>2]=8576;c[2073]=a;a=qm(4)|0;c[a>>2]=8600;c[2070]=a;a=qm(4)|0;c[a>>2]=8624;c[2082]=a;a=qm(4)|0;c[a>>2]=8648;c[2083]=a;a=qm(4)|0;c[a>>2]=8688;c[2084]=a;a=qm(4)|0;c[a>>2]=8728;c[2085]=a;a=qm(4)|0;c[a>>2]=8768;c[2086]=a;a=qm(4)|0;c[a>>2]=8808;c[2087]=a;a=qm(4)|0;c[a>>2]=8848;c[2088]=a;a=qm(4)|0;c[a>>2]=8888;c[2098]=a;a=qm(4)|0;c[a>>2]=8928;c[2095]=a;a=qm(4)|0;c[a>>2]=8968;c[2096]=a;a=qm(4)|0;c[a>>2]=9008;c[2090]=a;a=qm(4)|0;c[a>>2]=9048;c[2093]=a;a=qm(4)|0;c[a>>2]=9088;c[2094]=a;a=qm(4)|0;c[a>>2]=9128;c[2091]=a;a=qm(4)|0;c[a>>2]=9168;c[2100]=a;a=qm(4)|0;c[a>>2]=9208;c[2092]=a;a=qm(4)|0;c[a>>2]=9248;c[2097]=a;a=qm(4)|0;c[a>>2]=9288;c[2099]=a;a=qm(4)|0;c[a>>2]=9328;c[2103]=a;a=qm(4)|0;c[a>>2]=9352;c[2101]=a;a=qm(4)|0;c[a>>2]=9376;c[2102]=a;a=qm(4)|0;c[a>>2]=9400;c[2104]=a;a=qm(4)|0;c[a>>2]=9424;c[2105]=a;a=qm(4)|0;c[a>>2]=9448;c[2106]=a;a=qm(4)|0;c[a>>2]=9472;c[2081]=a;a=qm(4)|0;c[a>>2]=9496;c[2075]=a;a=qm(4)|0;c[a>>2]=9528;c[2076]=a;a=qm(4)|0;c[a>>2]=9560;c[2080]=a;a=qm(4)|0;c[a>>2]=9592;c[2107]=a;a=qm(4)|0;c[a>>2]=9616;c[2089]=a;a=qm(4)|0;c[a>>2]=9656;c[2108]=a;a=qm(4)|0;c[a>>2]=9680;c[2109]=a;a=qm(4)|0;c[a>>2]=9712;c[2078]=a;a=qm(4)|0;c[a>>2]=9744;c[2077]=a;a=qm(4)|0;c[a>>2]=9776;c[2079]=a;a=qm(4)|0;c[a>>2]=9808;c[2110]=a;a=qm(4)|0;c[a>>2]=9840;c[2111]=a;return}function Zi(a){a=a|0;return 0.0}function _i(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0;k=i;i=i+144|0;l=k+120|0;m=k+104|0;n=k+88|0;o=k+64|0;p=k+48|0;q=k+32|0;r=k+16|0;s=k;t=c[b+56>>2]&65535;u=c[33]|0;v=u+(t<<3)|0;w=+g[b+100>>2];x=(~~(w*+((d[v>>0]|d[v+1>>0]<<8)&65535|0)*.5)|0)/2|0;v=u+(t<<3)+2|0;t=d[v>>0]|d[v+1>>0]<<8;v=o+16|0;if((kd[c[(c[a>>2]|0)+16>>2]&31](a)|0)<=0){y=0;i=k;return y|0}u=o+20|0;z=+((~~(w*+(t&65535|0)-+(x|0))|0)/2|0|0);t=p+8|0;A=o+8|0;B=q+8|0;C=r+8|0;D=s+8|0;w=+(x|0)+f;x=0;while(1){qd[c[(c[a>>2]|0)+20>>2]&31](o,a,b,x);if((c[u>>2]|0)!=(j|0)?(E=~~+g[v>>2],Qe(p,+(E+90|0),z),f=+h[p>>3]+ +h[o>>3],F=+h[t>>3]+ +h[A>>3],Qe(q,+(E+-90|0),z),G=+h[q>>3]+ +h[o>>3],H=+h[B>>3]+ +h[A>>3],h[r>>3]=f,h[C>>3]=F,h[s>>3]=G,h[D>>3]=H,c[n>>2]=c[e>>2],c[n+4>>2]=c[e+4>>2],c[n+8>>2]=c[e+8>>2],c[n+12>>2]=c[e+12>>2],c[m>>2]=c[r>>2],c[m+4>>2]=c[r+4>>2],c[m+8>>2]=c[r+8>>2],c[m+12>>2]=c[r+12>>2],c[l>>2]=c[s>>2],c[l+4>>2]=c[s+4>>2],c[l+8>>2]=c[s+8>>2],c[l+12>>2]=c[s+12>>2],+Te(n,m,l)<=w):0){y=1;I=6;break}x=x+1|0;if((x|0)>=(kd[c[(c[a>>2]|0)+16>>2]&31](a)|0)){y=0;I=6;break}}if((I|0)==6){i=k;return y|0}return 0}function $i(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function aj(b,d){b=b|0;d=d|0;var e=0,f=0,j=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.0,G=0.0,H=0;e=i;i=i+96|0;f=e;j=e+24|0;if((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)<=0){i=e;return}l=d+56|0;m=f+8|0;n=j+4|0;o=j+8|0;p=j+12|0;q=j+16|0;r=j+20|0;s=j+24|0;t=j+28|0;u=j+32|0;v=j+36|0;w=j+40|0;x=j+44|0;y=j+48|0;z=f+16|0;A=d+104|0;B=f+20|0;C=d+100|0;D=0;do{qd[c[(c[b>>2]|0)+20>>2]&31](f,b,d,D);E=c[l>>2]|0;F=+h[f>>3];G=+h[m>>3];a[j>>0]=1;c[n>>2]=E;c[o>>2]=0;g[p>>2]=F;g[q>>2]=G;c[u>>2]=0;c[w>>2]=0;a[x>>0]=0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;E=c[z>>2]|0;c[t>>2]=E;H=~~(+g[A>>2]*255.0);c[v>>2]=(H|0)<0?16777215:(H|0)>255?-1:H<<24|16777215;c[v>>2]=c[(c[58267]|0)+(c[B>>2]<<2)>>2];H=c[C>>2]|0;c[s>>2]=H;c[r>>2]=H;if(a[1473]|0){g[t>>2]=(c[k>>2]=E,+g[k>>2])+180.0;E=c[8]|0;g[p>>2]=+(E&65535|0)-F;g[q>>2]=+(E>>>16|0)-G}Oe(j);D=D+1|0}while((D|0)<(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0));i=e;return}function bj(a){a=a|0;return 3}function cj(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0;j=i;i=i+16|0;k=j;l=(c[33]|0)+((c[e+56>>2]&65535)<<3)+2|0;m=~~(+g[e+100>>2]*+((d[l>>0]|d[l+1>>0]<<8)&65535|0)*.6);n=+g[e+92>>2];o=n+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0);Qe(k,o,+(m|0));n=+h[k+8>>3]+ +h[e+16>>3];m=((c[e+40>>2]|0)+f|0)%4|0;h[a>>3]=+h[k>>3]+ +h[e+8>>3];h[a+8>>3]=n;g[a+16>>2]=o;c[a+20>>2]=m;i=j;return}function dj(a){a=a|0;return 16}function ej(a,b,f,i){a=a|0;b=b|0;f=f|0;i=i|0;var j=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0;b=(i<<1&2)+-1|0;j=(i|0)/2|0;k=+en(+g[f+92>>2]+ +(j*45|0),360.0);l=k<0.0?k+360.0:k;i=(j|0)%4|0;j=~~(+(e[10]|0|0)*.6);m=(c[33]|0)+((c[f+56>>2]&65535)<<3)|0;n=((d[m>>0]|d[m+1>>0]<<8)&65535)>>>3&65535;if(l<240.0){k=+(b|0)*+xe(l,0.0,240.0,+(0-j|0),+(0-n|0));o=+h[f+16>>3]+0.0;h[a>>3]=+h[f+8>>3]+k;h[a+8>>3]=o;g[a+16>>2]=0.0;c[a+20>>2]=i;return}if(l<270.0)p=+xe(l,250.0,270.0,0.0,90.0);else p=+xe(l,350.0,330.0,180.0,90.0);o=+R(+(+xe(l,240.0,360.0,180.0,360.0)*6.283/360.0));k=+O(+(+O(+(o>0.0?o:-o))));o=+(b|0)*+xe(l,350.0,250.0,+(0-j|0),+(0-n|0));l=+h[f+16>>3]+k*+((j|0)/-4|0|0);k=+(_(~~p,b)|0);h[a>>3]=+h[f+8>>3]+o;h[a+8>>3]=l;g[a+16>>2]=k;c[a+20>>2]=i;return}function fj(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0.0,z=0;k=i;i=i+16|0;l=k;if((pd[c[(c[a>>2]|0)+16>>2]&31](a,b)|0)<=0){m=0;i=k;return m|0}n=+h[e>>3];o=+h[e+8>>3];e=l+8|0;p=b+8|0;q=b+16|0;r=b+56|0;s=b+92|0;t=b+44|0;u=0;while(1){qd[c[(c[a>>2]|0)+20>>2]&31](l,a,b,u);v=n-(+h[l>>3]+ +h[p>>3]);w=o-(+h[e>>3]+ +h[q>>3]);x=(c[33]|0)+((c[r>>2]&65535)<<3)+2|0;if(+O(+(v*v+w*w))<+(((d[x>>0]|d[x+1>>0]<<8)&65535)>>>1&65535|0)+f?(y=+ue(v,-w),w=+en(y-(+g[s>>2]+135.0),360.0),(c[(c[t>>2]|0)+(((~~(w<0.0?w+360.0:w)|0)/90|0)<<2)>>2]|0)!=(j|0)):0){m=1;z=6;break}u=u+1|0;if((u|0)>=(pd[c[(c[a>>2]|0)+16>>2]&31](a,b)|0)){m=0;z=6;break}}if((z|0)==6){i=k;return m|0}return 0}function gj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/3.0+ +g[a>>2];return}function hj(b,d){b=b|0;d=d|0;var e=0,f=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.0,E=0.0,F=0.0;e=i;i=i+80|0;f=e+16|0;j=e;if((pd[c[(c[b>>2]|0)+16>>2]&31](b,d)|0)<=0){i=e;return}k=d+56|0;l=j+8|0;m=d+8|0;n=d+16|0;o=f+4|0;p=f+8|0;q=f+12|0;r=f+16|0;s=f+20|0;t=f+24|0;u=f+28|0;v=f+32|0;w=f+36|0;x=f+40|0;y=f+44|0;z=f+48|0;A=d+92|0;B=0;do{C=c[k>>2]|0;qd[c[(c[b>>2]|0)+20>>2]&31](j,b,d,B);D=+h[j>>3]+ +h[m>>3];E=+h[l>>3]+ +h[n>>3];a[f>>0]=1;c[o>>2]=C;c[p>>2]=0;g[q>>2]=D;g[r>>2]=E;g[s>>2]=1.0;g[t>>2]=1.0;c[v>>2]=0;c[w>>2]=-1;c[x>>2]=0;a[y>>0]=0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;F=+g[A>>2]*4.0;g[u>>2]=F;if(a[1473]|0){g[u>>2]=F+180.0;C=c[8]|0;g[q>>2]=+(C&65535|0)-D;g[r>>2]=+(C>>>16|0)-E}Oe(f);B=B+1|0}while((B|0)<(pd[c[(c[b>>2]|0)+16>>2]&31](b,d)|0));i=e;return}function ij(a,b){a=a|0;b=b|0;return 6}function jj(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var h=0.0,i=0.0,j=0.0;h=+g[d+92>>2];i=+en(h+ +((f*360|0)/(pd[c[(c[b>>2]|0)+16>>2]&31](b,d)|0)|0|0),360.0);j=+we((i<0.0?i+360.0:i)/360.0,0.0,2.0,0.0,1.0);Qe(a,j*360.0+(h*.2+ +(c[d+68>>2]|0)+-90.0),+(~~(+(e[10]|0|0)*.3)|0));return}function kj(a,b){a=a|0;b=b|0;return 4}function lj(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var i=0,j=0,k=0.0,l=0.0,m=0.0;b=c[33]|0;i=b+((~~+g[e+88>>2]&65535)<<3)|0;j=b+((c[e+56>>2]&65535)<<3)|0;k=(+(f*90|0)+ +g[e+92>>2])*6.283/360.0;l=+((((d[j>>0]|d[j+1>>0]<<8)&65535)>>>1&65535)+(((d[i>>0]|d[i+1>>0]<<8)&65535)>>>1&65535)|0);m=+R(+k)*l;h[a>>3]=+Q(+k)*l;h[a+8>>3]=m;return}function mj(a,b){a=a|0;b=b|0;return 4}function nj(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var i=0,j=0,k=0.0,l=0.0,m=0.0;b=c[33]|0;i=b+((~~+g[e+88>>2]&65535)<<3)|0;j=b+((c[e+56>>2]&65535)<<3)|0;k=(+(f*180|0)+ +g[e+92>>2])*6.283/360.0;l=+((((d[j>>0]|d[j+1>>0]<<8)&65535)>>>1&65535)+(((d[i>>0]|d[i+1>>0]<<8)&65535)>>>1&65535)|0);m=+R(+k)*l;h[a>>3]=+Q(+k)*l;h[a+8>>3]=m;return}function oj(a){a=a|0;return 8}function pj(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var j=0,k=0,l=0.0,m=0.0;b=i;i=i+16|0;j=b;k=(c[33]|0)+((c[e+56>>2]&65535)<<3)+2|0;l=+(f*45|0);Qe(j,l+(+g[e+92>>2]+-90.0),+(~~(+g[e+100>>2]*+((d[k>>0]|d[k+1>>0]<<8)&65535|0))|0));m=+h[j+8>>3]+ +h[e+16>>3];k=((c[e+40>>2]|0)+f+~~+g[e+88>>2]|0)%4|0;h[a>>3]=+h[j>>3]+ +h[e+8>>3];h[a+8>>3]=m;g[a+16>>2]=l;c[a+20>>2]=k;i=b;return}function qj(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0;a=i;i=i+112|0;k=a+96|0;l=a+80|0;m=a+64|0;n=a+48|0;o=a+32|0;p=a+16|0;q=a;r=b+56|0;s=c[r>>2]&65535;t=c[33]|0;u=t+(s<<3)|0;v=b+100|0;w=+g[v>>2];x=(~~(w*+((d[u>>0]|d[u+1>>0]<<8)&65535|0)*.5)|0)/2|0;u=t+(s<<3)+2|0;s=b+40|0;t=b+92|0;y=k+8|0;z=b+8|0;A=b+16|0;B=+((~~(w*+((d[u>>0]|d[u+1>>0]<<8)&65535|0)-+(x|0))|0)/2|0|0);u=n+8|0;b=k+8|0;C=o+8|0;D=p+8|0;E=q+8|0;w=+(x|0)+f;x=0;while(1){if((((c[s>>2]|0)+x|0)%4|0|0)!=(j|0)?(F=c[r>>2]&65535,G=c[33]|0,H=G+(F<<3)+2|0,I=G+(F<<3)|0,f=+(x*180|0),Qe(k,f+ +g[t>>2],+((~~(+g[v>>2]*+(((d[H>>0]|d[H+1>>0]<<8)&65535)-((d[I>>0]|d[I+1>>0]<<8)&65535)|0))|0)/2|0|0)),J=+h[k>>3]+ +h[z>>3],K=+h[y>>3]+ +h[A>>3],Qe(n,+g[t>>2]+90.0,B),L=J+ +h[n>>3],J=K+ +h[u>>3],I=c[r>>2]&65535,H=c[33]|0,F=H+(I<<3)+2|0,G=H+(I<<3)|0,Qe(k,f+ +g[t>>2],+((~~(+g[v>>2]*+(((d[F>>0]|d[F+1>>0]<<8)&65535)-((d[G>>0]|d[G+1>>0]<<8)&65535)|0))|0)/2|0|0)),f=+h[k>>3]+ +h[z>>3],K=+h[b>>3]+ +h[A>>3],Qe(o,+g[t>>2]+-90.0,B),M=f+ +h[o>>3],f=K+ +h[C>>3],h[p>>3]=L,h[D>>3]=J,h[q>>3]=M,h[E>>3]=f,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[l>>2]=c[p>>2],c[l+4>>2]=c[p+4>>2],c[l+8>>2]=c[p+8>>2],c[l+12>>2]=c[p+12>>2],c[k>>2]=c[q>>2],c[k+4>>2]=c[q+4>>2],c[k+8>>2]=c[q+8>>2],c[k+12>>2]=c[q+12>>2],+Te(m,l,k)<=w):0){N=1;O=5;break}x=x+1|0;if((x|0)>=2){N=0;O=5;break}}if((O|0)==5){i=a;return N|0}return 0}function rj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function sj(b,e){b=b|0;e=e|0;var f=0,j=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,I=0,J=0,K=0.0,L=0.0;b=i;i=i+80|0;f=b;j=b+16|0;l=e+56|0;m=e+100|0;n=e+92|0;o=f+8|0;p=e+8|0;q=e+16|0;r=j+4|0;s=j+8|0;t=j+12|0;u=j+16|0;v=j+20|0;w=j+24|0;x=j+28|0;y=j+32|0;z=j+36|0;A=j+40|0;B=j+44|0;C=j+48|0;D=e+104|0;E=e+40|0;e=0;do{F=c[l>>2]|0;G=F&65535;H=c[33]|0;I=H+(G<<3)+2|0;J=H+(G<<3)|0;Qe(f,+(e*180|0)+ +g[n>>2],+((~~(+g[m>>2]*+(((d[I>>0]|d[I+1>>0]<<8)&65535)-((d[J>>0]|d[J+1>>0]<<8)&65535)|0))|0)/2|0|0));K=+h[f>>3]+ +h[p>>3];L=+h[o>>3]+ +h[q>>3];a[j>>0]=1;c[r>>2]=F;c[s>>2]=0;g[t>>2]=K;g[u>>2]=L;c[y>>2]=0;c[A>>2]=0;a[B>>0]=0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;F=c[n>>2]|0;c[x>>2]=F;J=~~(+g[D>>2]*255.0);c[z>>2]=(J|0)<0?16777215:(J|0)>255?-1:J<<24|16777215;c[z>>2]=c[(c[58267]|0)+((((c[E>>2]|0)+e|0)%4|0)<<2)>>2];J=c[m>>2]|0;c[w>>2]=J;c[v>>2]=J;if(a[1473]|0){g[x>>2]=(c[k>>2]=F,+g[k>>2])+180.0;F=c[8]|0;g[t>>2]=+(F&65535|0)-K;g[u>>2]=+(F>>>16|0)-L}Oe(j);e=e+1|0}while((e|0)!=2);i=b;return}function tj(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=+f;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;j=i;i=i+16|0;k=j;l=(c[33]|0)+((c[b+56>>2]&65535)<<3)|0;m=d[l>>0]|d[l+1>>0]<<8;l=kd[c[(c[a>>2]|0)+16>>2]&31](a)|0;if((l|0)<=0){n=0;i=j;return n|0}o=b+44|0;p=k+8|0;q=+h[e>>3];r=+h[e+8>>3];s=+(~~(+((m&65535)>>>1&65535|0)+f)|0);m=0;while(1){e=dd[c[(c[a>>2]|0)+24>>2]&15](a,b,m)|0;if((c[(c[o>>2]|0)+(e<<2)>>2]|0)!=(g|0)?(qd[c[(c[a>>2]|0)+28>>2]&31](k,a,b,m),f=q-+h[k>>3],t=r-+h[p>>3],+O(+(f*f+t*t))<s):0){n=1;u=6;break}m=m+1|0;if((m|0)>=(l|0)){n=0;u=6;break}}if((u|0)==6){i=j;return n|0}return 0}function uj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function vj(b,d){b=b|0;d=d|0;var e=0,f=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.0,F=0.0,G=0;e=i;i=i+80|0;f=e+16|0;j=e;k=kd[c[(c[b>>2]|0)+16>>2]&31](b)|0;if((k|0)<=0){i=e;return}l=d+56|0;m=j+8|0;n=f+4|0;o=f+8|0;p=f+12|0;q=f+16|0;r=f+20|0;s=f+24|0;t=f+28|0;u=f+32|0;v=f+36|0;w=f+40|0;x=f+44|0;y=f+48|0;z=d+100|0;A=d+44|0;B=d+104|0;C=0;do{D=c[l>>2]|0;qd[c[(c[b>>2]|0)+28>>2]&31](j,b,d,C);E=+h[j>>3];F=+h[m>>3];a[f>>0]=1;c[n>>2]=D;c[o>>2]=0;g[p>>2]=E;g[q>>2]=F;g[t>>2]=0.0;c[u>>2]=0;c[v>>2]=-1;c[w>>2]=0;a[x>>0]=0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;D=c[z>>2]|0;c[s>>2]=D;c[r>>2]=D;D=dd[c[(c[b>>2]|0)+24>>2]&15](b,d,C)|0;G=~~(+g[B>>2]*255.0);c[v>>2]=((G|0)<0?0:(G|0)>255?-16777216:G<<24)|c[(c[58267]|0)+(c[(c[A>>2]|0)+(D<<2)>>2]<<2)>>2]&16777215;if(a[1473]|0){g[t>>2]=+g[t>>2]+180.0;D=c[8]|0;g[p>>2]=+(D&65535|0)-+g[p>>2];g[q>>2]=+(D>>>16|0)-+g[q>>2]}if(a[f>>0]|0)Oe(f);C=C+1|0}while((C|0)<(k|0));i=e;return}function wj(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((e[10]|0)<<1>>>0)/3|0|0)*1.100000023841858+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function xj(a){a=a|0;return 24}function yj(a,b){a=a|0;b=b|0;return ((b|0)/3|0|0)%4|0|0}function zj(a,b,d){a=a|0;b=b|0;d=d|0;return pd[c[(c[a>>2]|0)+20>>2]&31](a,d)|0}function Aj(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0.0,j=0.0,k=0.0,l=0.0;i=+g[d+92>>2];j=+en(i+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);i=j<0.0?j+360.0:j;j=+(((e[10]|0)/3|0)&65535|0);k=+R(+(i*2.0*6.283/360.0))*j*.5;l=j*+Q(+(i*6.283/360.0))*1.100000023841858;i=+h[d+16>>3]+l;h[a>>3]=k+ +h[d+8>>3];h[a+8>>3]=i;return}function Bj(a,b,e,f,i){a=a|0;b=b|0;e=e|0;f=+f;i=i|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0;j=+h[e>>3]-+h[b+8>>3];k=+h[e+8>>3]-+h[b+16>>3];l=+O(+(j*j+k*k));e=(c[33]|0)+((c[b+56>>2]&65535)<<3)|0;m=+g[b+100>>2]*+(((d[e>>0]|d[e+1>>0]<<8)&65535)>>>1&65535|0);n=l;if(n>m+f){o=0;return o|0}if(n<m*.8280000000000001-f){o=0;return o|0}f=+ue(j,-k)+-45.0;k=+g[b+92>>2];j=+en(k,90.0);m=j<0.0?j+90.0:j;j=+en(f-(+xe(m,60.0,90.0,0.0,90.0)+(k-m)),360.0);o=(c[8160+(((~~(j<0.0?j+360.0:j)|0)/90|0)<<2)>>2]|0)!=(i|0);return o|0}function Cj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Dj(b,d){b=b|0;d=d|0;var e=0,f=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0;b=i;i=i+128|0;e=b+64|0;f=b;j=+g[d+92>>2];k=+en(j,90.0);l=k<0.0?k+90.0:k;k=+xe(l,60.0,90.0,0.0,90.0)+(j-l);m=d+56|0;n=c[m>>2]|0;o=d+8|0;p=d+16|0;l=+h[o>>3];j=+h[p>>3];a[e>>0]=1;c[e+4>>2]=n;c[e+8>>2]=0;n=e+12|0;g[n>>2]=l;q=e+16|0;g[q>>2]=j;g[e+20>>2]=1.0;g[e+24>>2]=1.0;r=e+28|0;c[e+32>>2]=0;c[e+40>>2]=0;a[e+44>>0]=0;s=e+48|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;g[r>>2]=k;s=d+104|0;d=~~(+g[s>>2]*255.0);c[e+36>>2]=(d|0)<0?16777215:(d|0)>255?-1:d<<24|16777215;if(a[1473]|0){g[r>>2]=k+180.0;r=c[8]|0;g[n>>2]=+(r&65535|0)-l;g[q>>2]=+(r>>>16|0)-j}Oe(e);j=+(Rd(211)|0);l=+(Sd(211)|0);t=+(Rd(c[m>>2]&65535)|0);u=l-+(Sd(c[m>>2]&65535)|0);l=j-t+ +h[o>>3];t=+h[p>>3]+u;a[f>>0]=1;c[f+4>>2]=211;c[f+8>>2]=0;g[f+12>>2]=l;g[f+16>>2]=t;g[f+20>>2]=1.0;g[f+24>>2]=1.0;c[f+40>>2]=0;a[f+44>>0]=0;p=f+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[f+32>>2]=1;g[f+28>>2]=k*-3.0;p=~~(+g[s>>2]*255.0);c[f+36>>2]=(p|0)<0?16777215:(p|0)>255?-1:p<<24|16777215;Oe(f);i=b;return}function Ej(a,b){a=a|0;b=b|0;return ~~(+g[b+88>>2]*2.0)|0}function Fj(a,e,f,i){a=a|0;e=e|0;f=f|0;i=i|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;j=pd[c[(c[e>>2]|0)+16>>2]&31](e,f)|0;e=(j|0)/2|0;k=(i|0)%(e|0)|0;l=b[10]|0;m=~~(+(l&65535|0)*.2800000011920929);n=+en(+g[f+92>>2]-+(k*360|0)/((j|0)<10?+(e|0):4.0),360.0);o=n<0.0?n+360.0:n;n=-((+(k|0)-+(e+-1|0)*.5)*+(((l&65535)/6|0)&65535|0));if(o<180.0){p=+(m|0);q=+xe(+xe(o,90.0,120.0,0.0,1.0),0.0,1.0,0.0,.7408000230789185);do if(!(q<.35350000858306885)){if(q<.7408000230789185){r=q+-.5471900105476379;s=1.2999999523162842-r*r*8.0;break}if(q<.9643999934196472){r=q+-.8525999784469604;s=r*r*8.0+.8999999761581421}else s=1.0}else s=q*q*8.0;while(0);if(!(q>=.35350000858306885))t=s;else{q=(s+-1.0)*.5;t=1.0-(q>0.0?q:-q)}u=p*t+0.0-p}else u=+xe(o,180.0,270.0,0.0,0.0-+(m|0));m=(c[33]|0)+((c[f+56>>2]&65535)<<3)|0;o=u-+(((d[m>>0]|d[m+1>>0]<<8)&65535)>>>1&65535|0);h[a>>3]=(e|0)>(i|0)?o:-o;h[a+8>>3]=n;return}function Gj(a,b){a=a|0;b=b|0;return 4}function Hj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0.0,i=0.0,j=0.0,k=0.0,l=0.0;f=+g[c+92>>2];i=(+(d*90|0)+f)*6.283/360.0;j=+Q(+i);k=+(e[10]|0|0);l=+R(+i)*k/3.0;i=+we(f,0.0,180.0,.6000000238418579,1.0);h[a>>3]=j*k/3.0*i;h[a+8>>3]=l*i;return}function Ij(a,b){a=a|0;b=b|0;return 2}function Jj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0.0,i=0.0;f=+Q(+(+g[c+92>>2]*6.283/360.0));i=f*+(e[10]|0|0)/3.0;h[a>>3]=(d|0)==0?i:-i;h[a+8>>3]=0.0;return}function Kj(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=+f;g=g|0;var i=0,j=0.0,k=0;a=c[b+56>>2]&65535;i=c[33]|0;if((((c[b+40>>2]|0)!=(g|0)?(g=i+(a<<3)+2|0,j=+h[e+8>>3]-+h[b+16>>3],+(~~(j>0.0?j:-j)|0)<+(((d[g>>0]|d[g+1>>0]<<8)&65535)>>>1&65535|0)+f):0)?(f=+h[e>>3],j=+(~~+h[b+8>>3]|0),b=i+(a<<3)+4|0,e=(d[b>>0]|d[b+1>>0]<<8)<<16>>16,f>=j+ +(0-e|0)):0)?(b=i+(a<<3)|0,f<=j+ +(((d[b>>0]|d[b+1>>0]<<8)&65535)-e|0)):0){k=1;return k|0}k=0;return k|0}function Lj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Mj(b,e){b=b|0;e=e|0;var f=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;b=i;i=i+224|0;f=b+160|0;j=b+96|0;l=b+16|0;m=b+32|0;n=b;o=e+56|0;p=c[o>>2]|0;q=e+8|0;r=e+16|0;s=+h[q>>3];t=+h[r>>3];a[f>>0]=1;c[f+4>>2]=p;c[f+8>>2]=0;p=f+12|0;g[p>>2]=s;u=f+16|0;g[u>>2]=t;g[f+20>>2]=1.0;g[f+24>>2]=1.0;v=f+28|0;c[f+32>>2]=0;w=f+36|0;c[w>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;x=f+48|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;x=e+92|0;y=c[x>>2]|0;c[v>>2]=y;z=e+40|0;A=e+104|0;e=~~(+g[A>>2]*255.0);c[w>>2]=((e|0)<0?0:(e|0)>255?-16777216:e<<24)|c[(c[58267]|0)+(c[z>>2]<<2)>>2]&16777215;if(a[1473]|0){g[v>>2]=(c[k>>2]=y,+g[k>>2])+180.0;y=c[8]|0;g[p>>2]=+(y&65535|0)-s;g[u>>2]=+(y>>>16|0)-t}Oe(f);f=(c[33]|0)+((c[o>>2]&65535)<<3)|0;t=+(((d[f>>0]|d[f+1>>0]<<8)&65535)>>>1&65535|0);Qe(l,+g[x>>2],t);s=+h[l>>3]+ +h[q>>3];B=+h[l+8>>3]+ +h[r>>3];a[j>>0]=1;c[j+4>>2]=13;c[j+8>>2]=0;l=j+12|0;g[l>>2]=s;f=j+16|0;g[f>>2]=B;o=j+20|0;g[o>>2]=1.0;y=j+24|0;g[y>>2]=1.0;u=j+28|0;g[u>>2]=0.0;c[j+32>>2]=0;p=j+36|0;c[p>>2]=-1;c[j+40>>2]=0;a[j+44>>0]=0;v=j+48|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;v=c[(c[58267]|0)+(c[z>>2]<<2)>>2]|0;c[p>>2]=v;if(a[1473]|0){g[u>>2]=180.0;u=c[8]|0;g[l>>2]=+(u&65535|0)-s;g[f>>2]=+(u>>>16|0)-B}g[y>>2]=1.5;g[o>>2]=1.5;o=~~(+g[A>>2]*255.0);c[p>>2]=((o|0)<0?0:(o|0)>255?-16777216:o<<24)|v&16777215;Oe(j);Qe(n,+g[x>>2],t);t=+h[q>>3]-+h[n>>3];B=+h[r>>3]-+h[n+8>>3];a[m>>0]=1;c[m+4>>2]=13;c[m+8>>2]=0;n=m+12|0;g[n>>2]=t;r=m+16|0;g[r>>2]=B;q=m+20|0;g[q>>2]=1.0;x=m+24|0;g[x>>2]=1.0;j=m+28|0;g[j>>2]=0.0;c[m+32>>2]=0;v=m+36|0;c[v>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;o=m+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;o=c[(c[58267]|0)+(c[z>>2]<<2)>>2]|0;c[v>>2]=o;if(!(a[1473]|0)){g[x>>2]=1.5;g[q>>2]=1.5;C=+g[A>>2];D=C*255.0;E=~~D;F=(E|0)<0;G=(E|0)>255;H=o&16777215;I=E<<24;J=G?-16777216:I;K=F?0:J;L=K|H;c[v>>2]=L;Oe(m);i=b;return}g[j>>2]=180.0;j=c[8]|0;g[n>>2]=+(j&65535|0)-t;g[r>>2]=+(j>>>16|0)-B;g[x>>2]=1.5;g[q>>2]=1.5;C=+g[A>>2];D=C*255.0;E=~~D;F=(E|0)<0;G=(E|0)>255;H=o&16777215;I=E<<24;J=G?-16777216:I;K=F?0:J;L=K|H;c[v>>2]=L;Oe(m);i=b;return}function Nj(a,b,d,f,g){a=a|0;b=b|0;d=d|0;f=+f;g=g|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;j=i;i=i+16|0;k=j;l=b+40|0;m=k+8|0;n=+h[d+8>>3];d=0;a:while(1){do if(((d+3+(c[l>>2]|0)|0)%4|0|0)!=(g|0)){Qj(k,a,b,d);o=+((e[16]|0)>>>1&65535|0)-+h[k>>3];p=~~(o>0.0?o:-o);o=+h[m>>3]-n;q=~~(o>0.0?o:-o);r=(e[10]|0)>>>3&65535;if((q|0)<(r|0))if(+(p|0)<f){s=1;t=8;break a}else break;if(+(q|0)<+(r|0)+f?+(p|0)+ +(q-r|0)<f:0){s=1;t=8;break a}}while(0);d=d+1|0;if((d|0)>=4){s=0;t=8;break}}if((t|0)==8){i=j;return s|0}return 0}function Oj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/3.0+ +g[a>>2];return}function Pj(d,f){d=d|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0;g=i;i=i+16|0;j=g;k=j+8|0;l=f+40|0;m=0;do{Qj(j,d,f,m);n=b[10]|0;o=+h[j>>3];p=+h[k>>3];if(!(a[1473]|0))q=p;else q=+(e[17]|0)-p;p=+(((n&65535)/12|0)&65535|0);r=+((n&65535)>>>3&65535|0);n=m+3|0;s=+(~~(q-r)|0);t=+(~~(r+q)|0);Md(+(~~(o-p)|0),s,+(~~o|0),t,0,c[(c[58267]|0)+((((c[l>>2]|0)+n|0)%4|0)<<2)>>2]|0)|0;r=+(e[16]|0)-o;h[j>>3]=r;h[k>>3]=q;Md(+(~~(p+r)|0),s,+(~~r|0),t,0,c[(c[58267]|0)+((((c[l>>2]|0)+n|0)%4|0)<<2)>>2]|0)|0;m=m+1|0}while((m|0)!=4);i=g;return}function Qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;f=+en(+(d*90|0)+ +g[c+92>>2],360.0);i=f<0.0?f+360.0:f;f=+((e[16]|0)>>>1&65535|0);j=+((e[10]|0)>>>2&65535|0);k=+h[c+16>>3]-(+(d|0)+-1.5)*j;if(!(i<180.0)){h[a>>3]=+xe(i,180.0,270.0,f,f-j)+1.0;h[a+8>>3]=k;return}j=+xe(i,90.0,120.0,0.0,1.0);i=+((e[10]|0)>>>2&65535|0);l=+xe(j,0.0,1.0,0.0,.7408000230789185);do if(!(l<.35350000858306885)){if(l<.7408000230789185){j=l+-.5471900105476379;m=1.2999999523162842-j*j*8.0;break}if(l<.9643999934196472){j=l+-.8525999784469604;m=j*j*8.0+.8999999761581421}else m=1.0}else m=l*l*8.0;while(0);if(!(l>=.35350000858306885))n=m;else{l=(m+-1.0)*.5;n=1.0-(l>0.0?l:-l)}h[a>>3]=f+i*n-+((e[10]|0)>>>2&65535|0)+1.0;h[a+8>>3]=k;return}function Rj(a,b,f,j,k){a=a|0;b=b|0;f=f|0;j=+j;k=k|0;var 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.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0;a=i;i=i+96|0;l=a+80|0;m=a+64|0;n=a+48|0;o=a+32|0;p=a+16|0;q=a;r=b+92|0;s=l+8|0;t=b+8|0;u=b+16|0;v=b+56|0;w=b+100|0;b=o+8|0;x=p+8|0;y=q+8|0;z=0;while(1){if(((z|0)%4|0|0)!=(k|0)?(A=+(z*45|0),Qe(l,+(~~(A+ +g[r>>2])|0),+((e[10]|0)>>>2&65535|0)),B=+h[l>>3]+ +h[t>>3],C=+h[s>>3]+ +h[u>>3],D=c[v>>2]&65535,E=c[33]|0,F=E+(D<<3)+2|0,G=+(((d[F>>0]|d[F+1>>0]<<8)&65535)>>>1&65535|0),F=E+(D<<3)|0,Qe(o,+(~~(A+ +g[r>>2])|0),+g[w>>2]*(+(((d[F>>0]|d[F+1>>0]<<8)&65535)>>>1&65535|0)-G)),A=+h[o>>3],H=+h[b>>3],h[p>>3]=B+A,h[x>>3]=C+H,h[q>>3]=B-A,h[y>>3]=C-H,c[n>>2]=c[f>>2],c[n+4>>2]=c[f+4>>2],c[n+8>>2]=c[f+8>>2],c[n+12>>2]=c[f+12>>2],c[m>>2]=c[p>>2],c[m+4>>2]=c[p+4>>2],c[m+8>>2]=c[p+8>>2],c[m+12>>2]=c[p+12>>2],c[l>>2]=c[q>>2],c[l+4>>2]=c[q+4>>2],c[l+8>>2]=c[q+8>>2],c[l+12>>2]=c[q+12>>2],+Te(n,m,l)<=G+j):0){I=1;J=5;break}z=z+1|0;if((z|0)>=8){I=0;J=5;break}}if((J|0)==5){i=a;return I|0}return 0}function Sj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Tj(b,d){b=b|0;d=d|0;var f=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.0,E=0,F=0.0,G=0.0,H=0.0;b=i;i=i+80|0;f=b;j=b+16|0;k=d+92|0;l=f+8|0;m=d+8|0;n=d+16|0;o=d+56|0;p=j+4|0;q=j+8|0;r=j+12|0;s=j+16|0;t=j+20|0;u=j+24|0;v=j+28|0;w=j+32|0;x=j+36|0;y=j+40|0;z=j+44|0;A=j+48|0;B=d+100|0;C=d+104|0;d=0;do{D=+(d*45|0);Qe(f,+(~~(D+ +g[k>>2])|0),+((e[10]|0)>>>2&65535|0));E=c[o>>2]|0;F=+h[f>>3]+ +h[m>>3];G=+h[l>>3]+ +h[n>>3];a[j>>0]=1;c[p>>2]=E;c[q>>2]=0;g[r>>2]=F;g[s>>2]=G;c[w>>2]=0;c[x>>2]=-1;c[y>>2]=0;a[z>>0]=0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;E=c[B>>2]|0;c[u>>2]=E;c[t>>2]=E;H=+(~~(D+ +g[k>>2])|0);g[v>>2]=H;if(a[1473]|0){g[v>>2]=H+180.0;E=c[8]|0;g[r>>2]=+(E&65535|0)-F;g[s>>2]=+(E>>>16|0)-G}E=~~(+g[C>>2]*255.0);c[x>>2]=((E|0)<0?0:(E|0)>255?-16777216:E<<24)|c[(c[58267]|0)+(((d|0)%4|0)<<2)>>2]&16777215;Oe(j);d=d+1|0}while((d|0)!=8);i=b;return}function Uj(a,f,j,k,l){a=a|0;f=f|0;j=j|0;k=+k;l=l|0;var 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.0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0,K=0;a=i;i=i+96|0;m=a+80|0;n=a+64|0;o=a+48|0;p=a+32|0;q=a+16|0;r=a;s=f+92|0;t=m+8|0;u=f+8|0;v=f+16|0;w=f+56|0;x=f+100|0;f=p+8|0;y=q+8|0;z=r+8|0;A=0;while(1){if(((A|0)%4|0|0)!=(l|0)?(Qe(m,+g[s>>2]+ +((A*360|0)/16|0|0),+((e[10]|0)>>>1&65535|0)),B=+h[m>>3],C=b[10]|0,D=C&65535,E=+((D|0)/-2|0|0),F=+((C&65535)>>>2&65535|0),G=B<E?E:B>F?F:B,h[m>>3]=G,B=+((D|0)/-4|0|0)+(+h[u>>3]+G),G=+h[t>>3]+ +h[v>>3]+0.0,D=c[w>>2]&65535,C=c[33]|0,H=C+(D<<3)+2|0,F=+(((d[H>>0]|d[H+1>>0]<<8)&65535)>>>1&65535|0),H=C+(D<<3)|0,Qe(p,0.0,+g[x>>2]*(+(((d[H>>0]|d[H+1>>0]<<8)&65535)>>>1&65535|0)-F)),E=+h[p>>3],I=+h[f>>3],h[q>>3]=B+E,h[y>>3]=G+I,h[r>>3]=B-E,h[z>>3]=G-I,c[o>>2]=c[j>>2],c[o+4>>2]=c[j+4>>2],c[o+8>>2]=c[j+8>>2],c[o+12>>2]=c[j+12>>2],c[n>>2]=c[q>>2],c[n+4>>2]=c[q+4>>2],c[n+8>>2]=c[q+8>>2],c[n+12>>2]=c[q+12>>2],c[m>>2]=c[r>>2],c[m+4>>2]=c[r+4>>2],c[m+8>>2]=c[r+8>>2],c[m+12>>2]=c[r+12>>2],+Te(o,n,m)<=F+k):0){J=1;K=5;break}A=A+1|0;if((A|0)>=16){J=0;K=5;break}}if((K|0)==5){i=a;return J|0}return 0}function Vj(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Wj(d,f){d=d|0;f=f|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.0,F=0,G=0,H=0.0,I=0.0,J=0.0;d=i;i=i+80|0;j=d;k=d+16|0;l=f+92|0;m=j+8|0;n=f+8|0;o=f+16|0;p=f+56|0;q=k+4|0;r=k+8|0;s=k+12|0;t=k+16|0;u=k+20|0;v=k+24|0;w=k+28|0;x=k+32|0;y=k+36|0;z=k+40|0;A=k+44|0;B=k+48|0;C=f+100|0;D=f+104|0;f=0;do{Qe(j,+g[l>>2]+ +((f*360|0)/16|0|0),+((e[10]|0)>>>1&65535|0));E=+h[j>>3];F=b[10]|0;G=F&65535;H=+((G|0)/-2|0|0);I=+((F&65535)>>>2&65535|0);J=E<H?H:E>I?I:E;h[j>>3]=J;E=+((G|0)/-4|0|0)+(+h[n>>3]+J);J=+h[m>>3]+ +h[o>>3]+0.0;H=+xe(+((e[16]|0)>>>1&65535|0)-E,0.0,I,1.0,0.0);G=c[p>>2]|0;I=E;E=J;a[k>>0]=1;c[q>>2]=G;c[r>>2]=0;g[s>>2]=I;g[t>>2]=E;g[w>>2]=0.0;c[x>>2]=0;c[y>>2]=-1;c[z>>2]=0;a[A>>0]=0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;G=c[C>>2]|0;c[v>>2]=G;c[u>>2]=G;if(a[1473]|0){g[w>>2]=180.0;G=c[8]|0;g[s>>2]=+(G&65535|0)-I;g[t>>2]=+(G>>>16|0)-E}G=~~(H*+g[D>>2]*255.0);c[y>>2]=((G|0)<0?0:(G|0)>255?-16777216:G<<24)|c[(c[58267]|0)+(((f|0)%4|0)<<2)>>2]&16777215;Oe(k);f=f+1|0}while((f|0)!=16);i=d;return}function Xj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;return 0}function Yj(a,b,d){a=a|0;b=b|0;d=+d;var f=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0;f=i;i=i+16|0;j=f;k=+h[196];l=b+96|0;m=+g[l>>2];n=k*m*2.0;o=+we(k,0.0,3.0,-40.0,40.0);if(!(+M(+n)!=+M(+((k-d)*m*2.0)))){i=f;return}p=((c[b+40>>2]|0)+~~n|0)%4|0;q=b+8|0;if(+h[q>>3]<+((e[16]|0)>>>1&65535|0)){n=+g[l>>2];c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];_j(a,b,j,p,o,n);i=f;return}else{n=+g[l>>2];c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];_j(a,b,j,p,o+180.0,n);i=f;return}}function Zj(a,b){a=a|0;b=b|0;return}function _j(b,e,f,j,k,l){b=b|0;e=e|0;f=f|0;j=j|0;k=+k;l=+l;var m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0;b=i;i=i+64|0;m=b+48|0;n=b+32|0;o=b+16|0;p=b;Qe(p,k,1.0);q=(c[33]|0)+1560|0;r=+((d[q>>0]|d[q+1>>0]<<8)&65535|0);q=f+8|0;s=+h[q>>3]-+h[p+8>>3]*r*.5;h[f>>3]=+h[f>>3]-+h[p>>3]*r*.5;h[q>>3]=s;q=c[2008]|0;p=c[2103]|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];f=q+28560|0;t=q;while(1){u=t+108|0;if(!(a[u>>0]|0)){v=u;w=t;x=4;break}t=t+112|0;if(t>>>0>f>>>0){y=0;break}}if((x|0)==4)if(!w)y=0;else{c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=w+72|0;c[o>>2]=0;c[w+60>>2]=p;c[w+56>>2]=195;p=w+109|0;a[p>>0]=1;h[w+48>>3]=0.0;c[w+40>>2]=0;c[w+44>>2]=8088;a[v>>0]=1;g[w+92>>2]=0.0;g[w+96>>2]=1.0;g[w+104>>2]=1.0;g[w+100>>2]=1.0;g[w+88>>2]=0.0;c[w+68>>2]=0;c[w+64>>2]=c[2009];c[w+76>>2]=c[2011];c[w+80>>2]=c[2012];c[w+84>>2]=c[2013];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];v=w+8|0;c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];n=w+24|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[o>>2]=c[q+28692>>2];a[p>>0]=a[q+28688>>0]|0;y=w}c[y+40>>2]=j;g[y+96>>2]=l;g[y+100>>2]=.5;g[y+92>>2]=k;k=+g[e+80>>2];if(!(k!=0.0)){i=b;return}g[y+80>>2]=k;h[y+48>>3]=+h[e+48>>3];i=b;return}function $j(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;return 0}function ak(a,b,d){a=a|0;b=b|0;d=+d;var f=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0;f=i;i=i+16|0;j=f;k=+h[196];l=b+96|0;m=+g[l>>2];n=m;o=k*n*2.0;p=+g[b+88>>2];q=p!=0.0?p:30.0;if(!(+M(+o)!=+M(+((k-d)*n*2.0)))){i=f;return}r=((c[b+40>>2]|0)+~~o|0)%4|0;s=b+8|0;if(+h[s>>3]<+((e[16]|0)>>>1&65535|0)){c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];ck(a,b,j,r,q,m);o=+g[l>>2];c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];ck(a,b,j,r,-q,o);i=f;return}else{c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];ck(a,b,j,r,q+180.0,m);m=+g[l>>2];c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];ck(a,b,j,r,180.0-q,m);i=f;return}}function bk(a,b){a=a|0;b=b|0;return}function ck(b,e,f,j,k,l){b=b|0;e=e|0;f=f|0;j=j|0;k=+k;l=+l;var m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0;b=i;i=i+64|0;m=b+48|0;n=b+32|0;o=b+16|0;p=b;Qe(p,k,1.0);q=(c[33]|0)+1560|0;r=+((d[q>>0]|d[q+1>>0]<<8)&65535|0);q=f+8|0;s=+h[q>>3]-+h[p+8>>3]*r*.5;h[f>>3]=+h[f>>3]-+h[p>>3]*r*.5;h[q>>3]=s;q=c[2008]|0;p=c[2103]|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];f=q+28560|0;t=q;while(1){u=t+108|0;if(!(a[u>>0]|0)){v=u;w=t;x=4;break}t=t+112|0;if(t>>>0>f>>>0){y=0;break}}if((x|0)==4)if(!w)y=0;else{c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=w+72|0;c[o>>2]=0;c[w+60>>2]=p;c[w+56>>2]=195;p=w+109|0;a[p>>0]=1;h[w+48>>3]=0.0;c[w+40>>2]=0;c[w+44>>2]=8088;a[v>>0]=1;g[w+92>>2]=0.0;g[w+96>>2]=1.0;g[w+104>>2]=1.0;g[w+100>>2]=1.0;g[w+88>>2]=0.0;c[w+68>>2]=0;c[w+64>>2]=c[2009];c[w+76>>2]=c[2011];c[w+80>>2]=c[2012];c[w+84>>2]=c[2013];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];v=w+8|0;c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];n=w+24|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[o>>2]=c[q+28692>>2];a[p>>0]=a[q+28688>>0]|0;y=w}c[y+40>>2]=j;g[y+96>>2]=l;g[y+100>>2]=.5;g[y+92>>2]=k;k=+g[e+80>>2];if(!(k!=0.0)){i=b;return}g[y+80>>2]=k;h[y+48>>3]=+h[e+48>>3];i=b;return}function dk(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;a=i;i=i+96|0;k=a+80|0;l=a+64|0;m=a+48|0;n=a+32|0;o=a+16|0;p=a;if((c[b+40>>2]|0)==(j|0)){q=0;i=a;return q|0}j=c[b+56>>2]&65535;r=c[33]|0;s=r+(j<<3)+2|0;t=+(((d[s>>0]|d[s+1>>0]<<8)&65535)>>>1&65535|0);s=r+(j<<3)|0;Qe(n,+g[b+92>>2],+g[b+100>>2]*(+(((d[s>>0]|d[s+1>>0]<<8)&65535)>>>1&65535|0)-t));u=+h[n>>3];v=+h[n+8>>3];w=+h[b+8>>3];x=+h[b+16>>3];h[o>>3]=u+w;h[o+8>>3]=v+x;h[p>>3]=w-u;h[p+8>>3]=x-v;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[l+12>>2]=c[o+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];q=+Te(m,l,k)<=t+f;i=a;return q|0}function ek(a,b,c){a=a|0;b=b|0;c=+c;var d=0,f=0,j=0.0,k=0,l=0.0,m=0,n=0;a=i;i=i+32|0;d=a+16|0;f=a;j=+g[b+96>>2]*+((e[16]|0)>>>1&65535|0);k=b+92|0;Qe(d,+g[k>>2],1.0);l=j;j=c;m=b+8|0;n=b+16|0;c=+h[n>>3]+j*(+h[d+8>>3]*l);h[m>>3]=+h[m>>3]+j*(+h[d>>3]*l);h[n>>3]=c;Qe(f,+g[k>>2],1.0);k=b+24|0;n=b+32|0;c=+h[n>>3]+j*(l*+h[f+8>>3]);h[k>>3]=+h[k>>3]+j*(l*+h[f>>3]);h[n>>3]=c;i=a;return}function fk(b,d){b=b|0;d=d|0;var e=0,f=0,j=0.0,l=0.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;b=i;i=i+64|0;e=b;f=c[d+56>>2]|0;j=+h[d+8>>3];l=+h[d+16>>3];a[e>>0]=1;c[e+4>>2]=f;c[e+8>>2]=0;f=e+12|0;g[f>>2]=j;m=e+16|0;g[m>>2]=l;n=e+28|0;c[e+32>>2]=0;o=e+36|0;c[e+40>>2]=0;a[e+44>>0]=0;p=e+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=c[d+92>>2]|0;c[n>>2]=p;q=~~(+g[d+104>>2]*255.0);r=(q|0)<0?0:(q|0)>255?-16777216:q<<24;c[o>>2]=r|16777215;q=c[d+100>>2]|0;c[e+24>>2]=q;c[e+20>>2]=q;if(!(a[1473]|0)){s=d+40|0;t=c[s>>2]|0;u=c[58267]|0;v=u+(t<<2)|0;w=c[v>>2]|0;x=w&16777215;y=r|x;c[o>>2]=y;Oe(e);i=b;return}g[n>>2]=(c[k>>2]=p,+g[k>>2])+180.0;p=c[8]|0;g[f>>2]=+(p&65535|0)-j;g[m>>2]=+(p>>>16|0)-l;s=d+40|0;t=c[s>>2]|0;u=c[58267]|0;v=u+(t<<2)|0;w=c[v>>2]|0;x=w&16777215;y=r|x;c[o>>2]=y;Oe(e);i=b;return}function gk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function hk(a){a=a|0;return 4}function ik(a,b){a=a|0;b=b|0;return (b|0)/5|0|0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+en(+g[b+92>>2]+180.0,360.0);return ~~((d<0.0?d+360.0:d)/90.0)|0}function kk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0.0,j=0.0,k=0.0,l=0.0;i=+en(+g[d+92>>2],90.0);j=+xe(+(f|0),0.0,+((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)+-1|0),.20000000298023224,1.0);k=(i<0.0?i+90.0:i)*4.0*6.283/360.0;i=+(~~(j*+(e[10]|0|0)*.25)|0);j=+Q(+k)*i;l=+R(+k)*i;i=+h[d+16>>3]+l;h[a>>3]=+h[d+8>>3]+j;h[a+8>>3]=i;return}function lk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.35+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function mk(a){a=a|0;return 24}function nk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;d=c[b+40>>2]|0;e=+en(-(+g[b+92>>2]*(+g[b+96>>2]<0.0?-1.0:1.0)),360.0);return (((~~(e<0.0?e+360.0:e)|0)/90|0)+d|0)%4|0|0}function ok(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var f=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;f=i;i=i+32|0;j=f+16|0;k=f;l=+en(-(+g[c+92>>2]*(+g[c+96>>2]<0.0?-1.0:1.0)),360.0);m=l<0.0?l+360.0:l;n=~~(m/90.0);l=+xe(m-+(n*90|0),0.0,20.0,1.0,0.0);pk(j,b,n,d);pk(k,b,(n+3|0)%4|0,d);m=+(((e[10]|0)/20|0)&65535|0);o=+h[j+8>>3];p=+h[k+8>>3];q=+xe(l,0.0,1.0,+h[j>>3],+h[k>>3]);r=m*+xe(l,0.0,1.0,o,p);p=+h[c+16>>3]+r;h[a>>3]=+h[c+8>>3]+m*q;h[a+8>>3]=p;i=f;return}function pk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=((a[241583+(e*42|0)+40>>0]|0)!=32&1)+(((a[241583+(e*42|0)+39>>0]|0)!=32&1)+(((a[241583+(e*42|0)+38>>0]|0)!=32&1)+(((a[241583+(e*42|0)+37>>0]|0)!=32&1)+(((a[241583+(e*42|0)+36>>0]|0)!=32&1)+(((a[241583+(e*42|0)+34>>0]|0)!=32&1)+(((a[241583+(e*42|0)+33>>0]|0)!=32&1)+(((a[241583+(e*42|0)+32>>0]|0)!=32&1)+(((a[241583+(e*42|0)+31>>0]|0)!=32&1)+(((a[241583+(e*42|0)+30>>0]|0)!=32&1)+(((a[241583+(e*42|0)+28>>0]|0)!=32&1)+(((a[241583+(e*42|0)+27>>0]|0)!=32&1)+(((a[241583+(e*42|0)+26>>0]|0)!=32&1)+(((a[241583+(e*42|0)+25>>0]|0)!=32&1)+(((a[241583+(e*42|0)+24>>0]|0)!=32&1)+(((a[241583+(e*42|0)+22>>0]|0)!=32&1)+(((a[241583+(e*42|0)+21>>0]|0)!=32&1)+(((a[241583+(e*42|0)+20>>0]|0)!=32&1)+(((a[241583+(e*42|0)+19>>0]|0)!=32&1)+(((a[241583+(e*42|0)+18>>0]|0)!=32&1)+(((a[241583+(e*42|0)+16>>0]|0)!=32&1)+(((a[241583+(e*42|0)+15>>0]|0)!=32&1)+(((a[241583+(e*42|0)+14>>0]|0)!=32&1)+(((a[241583+(e*42|0)+13>>0]|0)!=32&1)+(((a[241583+(e*42|0)+12>>0]|0)!=32&1)+(((a[241583+(e*42|0)+10>>0]|0)!=32&1)+(((a[241583+(e*42|0)+9>>0]|0)!=32&1)+(((a[241583+(e*42|0)+8>>0]|0)!=32&1)+(((a[241583+(e*42|0)+7>>0]|0)!=32&1)+(((a[241583+(e*42|0)+6>>0]|0)!=32&1)+(((a[241583+(e*42|0)+4>>0]|0)!=32&1)+(((a[241583+(e*42|0)+3>>0]|0)!=32&1)+(((a[241583+(e*42|0)+2>>0]|0)!=32&1)+(((a[241583+(e*42|0)+1>>0]|0)!=32&1)+((a[241583+(e*42|0)>>0]|0)!=32&1))))))))))))))))))))))))))))))))))|0;i=~~+xe(+(f|0),0.0,+((kd[c[(c[d>>2]|0)+16>>2]&31](d)|0)+-1|0),0.0,+(g+-1|0));g=0;while(1){if((a[241583+(e*42|0)+(g*6|0)>>0]|0)!=32)if((i|0)<1){j=-2.0;k=g;l=4;break}else m=i+-1|0;else m=i;if((a[241583+(e*42|0)+(g*6|0)+1>>0]|0)!=32)if((m|0)<1){j=-1.0;k=g;l=4;break}else n=m+-1|0;else n=m;if((a[241583+(e*42|0)+(g*6|0)+2>>0]|0)!=32)if((n|0)<1){j=0.0;k=g;l=4;break}else o=n+-1|0;else o=n;if((a[241583+(e*42|0)+(g*6|0)+3>>0]|0)!=32)if((o|0)<1){j=1.0;k=g;l=4;break}else p=o+-1|0;else p=o;if((a[241583+(e*42|0)+(g*6|0)+4>>0]|0)!=32)if((p|0)<1){j=2.0;k=g;l=4;break}else q=p+-1|0;else q=p;g=g+1|0;if((g|0)>=7){l=6;break}else i=q}if((l|0)==4){h[b>>3]=j;h[b+8>>3]=+(k+-3|0);return}else if((l|0)==6){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}}function qk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.800000011920929+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function rk(a){a=a|0;return 48}function sk(a,b){a=a|0;b=b|0;return ((b|0)%16|0|0)/4|0|0}function tk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0;j=i;i=i+64|0;k=j+48|0;l=j+32|0;m=j+16|0;n=j;o=+g[d+92>>2];p=+en(o+ +((f*360|0)/((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/3|0|0)|0|0),360.0);q=~~(+(e[10]|0|0)*.4);r=((f*3|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0)*60|0;o=((p<0.0?p+360.0:p)+ +(r|0))*6.283/360.0;p=+(q|0);s=p*+R(+o)*.5;h[m>>3]=p*+Q(+o);h[m+8>>3]=s;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;s=+((c[d+68>>2]|0)+r|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,s);s=+h[l+8>>3]+ +h[d+16>>3];h[a>>3]=+h[l>>3]+ +h[d+8>>3];h[a+8>>3]=s;i=j;return}function uk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function vk(a){a=a|0;return 6}function wk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+en(+g[b+92>>2]+180.0,360.0);return ~~((d<0.0?d+360.0:d)/90.0)|0}function xk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0;i=d+92|0;j=+en(+g[i>>2],90.0);k=+we((j<0.0?j+90.0:j)*4.0,0.0,360.0,0.0,1.0);l=~~(k*+(e[10]|0|0)*.25);m=(f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0;k=(+g[i>>2]+ +(m|0))*6.283/360.0;j=+(l|0);n=j*+Q(+k);o=j*+R(+k);k=o+ +h[d+16>>3];h[a>>3]=n+ +h[d+8>>3];h[a+8>>3]=k;return}function yk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.800000011920929+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function zk(a){a=a|0;return 40}function Ak(a,b){a=a|0;b=b|0;return ((b|0)/5|0|0)%4|0|0}function Bk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|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.0,w=0.0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0;j=i;i=i+176|0;k=j+160|0;l=j+144|0;m=j+128|0;n=j+112|0;o=j+96|0;p=j+80|0;q=j+64|0;r=j+48|0;s=j+32|0;t=j+16|0;u=j;v=+g[d+92>>2];w=+en(v+ +((f*360|0)/((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)|0|0),360.0);v=w<0.0?w+360.0:w;x=~~(+(e[10]|0|0)*.3);if(((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)>(f|0)){w=v+90.0;y=+en(w,120.0);z=y<0.0?y+120.0:y;y=w+90.0-z;w=+xe(z,0.0,120.0,0.0,1.0);z=+(x|0);Qe(r,y,z);Qe(s,y+120.0,z);z=+h[r+8>>3];y=+h[s+8>>3];A=+xe(w,0.0,1.0,+h[r>>3],+h[s>>3]);B=+xe(w,0.0,1.0,z,y);h[t>>3]=A;h[t+8>>3]=B;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;B=+(c[d+68>>2]|0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[k+12>>2]=c[u+12>>2];Pe(q,t,k,B);C=+h[q+8>>3]+ +h[d+16>>3];D=+h[q>>3]+ +h[d+8>>3];h[a>>3]=D;E=a+8|0;h[E>>3]=C;i=j;return}else{B=v+-90.0;v=+en(B,120.0);A=v<0.0?v+120.0:v;v=B+90.0-A;B=+xe(A,0.0,120.0,0.0,1.0);A=+(x|0);Qe(m,-v,A);Qe(n,-(v+120.0),A);A=+h[m+8>>3];v=+h[n+8>>3];y=+xe(B,0.0,1.0,+h[m>>3],+h[n>>3]);z=+xe(B,0.0,1.0,A,v);h[o>>3]=y;h[o+8>>3]=z;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;z=+(c[d+68>>2]|0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];Pe(l,o,k,z);C=+h[l+8>>3]+ +h[d+16>>3];D=+h[l>>3]+ +h[d+8>>3];h[a>>3]=D;E=a+8|0;h[E>>3]=C;i=j;return}}function Ck(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.8999999761581421+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function Dk(a){a=a|0;return 40}function Ek(a,b){a=a|0;b=b|0;return ((b|0)/5|0|0)%4|0|0}function Fk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|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.0,w=0.0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;j=i;i=i+176|0;k=j+160|0;l=j+144|0;m=j+128|0;n=j+112|0;o=j+96|0;p=j+80|0;q=j+64|0;r=j+48|0;s=j+32|0;t=j+16|0;u=j;v=+g[d+92>>2];w=+en(v+ +((f*360|0)/((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)|0|0),360.0);v=w<0.0?w+360.0:w;x=~~(+(e[10]|0|0)*.3);y=(x|0)/2|0;z=((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)>(f|0);w=+en(v,120.0);A=w<0.0?w+120.0:w;w=v+90.0-A;v=+xe(A,0.0,120.0,0.0,1.0);f=d+8|0;if(z){A=+(x|0);Qe(r,w,A);Qe(s,w+120.0,A);A=+h[r+8>>3];B=+h[s+8>>3];C=+xe(v,0.0,1.0,+h[r>>3],+h[s>>3]);D=+(0-y|0)+ +xe(v,0.0,1.0,A,B);h[t>>3]=C+0.0;h[t+8>>3]=D;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;D=+(c[d+68>>2]|0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[k+12>>2]=c[u+12>>2];Pe(q,t,k,D);E=+h[q+8>>3]+ +h[d+16>>3];F=+h[q>>3]+ +h[f>>3];h[a>>3]=F;G=a+8|0;h[G>>3]=E;i=j;return}else{D=+(x|0);Qe(m,-w,D);Qe(n,-(w+120.0),D);D=+h[m+8>>3];w=+h[n+8>>3];C=+xe(v,0.0,1.0,+h[m>>3],+h[n>>3]);B=+(y|0)+ +xe(v,0.0,1.0,D,w);h[o>>3]=C+0.0;h[o+8>>3]=B;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;B=+(c[d+68>>2]|0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];Pe(l,o,k,B);E=+h[l+8>>3]+ +h[d+16>>3];F=+h[l>>3]+ +h[f>>3];h[a>>3]=F;G=a+8|0;h[G>>3]=E;i=j;return}}function Gk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.8500000238418579+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function Hk(a){a=a|0;return 40}function Ik(a,b){a=a|0;b=b|0;return ((b|0)/5|0|0)%4|0|0}function Jk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|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.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;j=i;i=i+176|0;k=j+160|0;l=j+144|0;m=j+128|0;n=j+112|0;o=j+96|0;p=j+80|0;q=j+64|0;r=j+48|0;s=j+32|0;t=j+16|0;u=j;v=+g[d+92>>2];w=+en(v+ +((f*360|0)/((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)|0|0),360.0);v=w<0.0?w+360.0:w;w=+(~~(+(e[10]|0|0)*.27)|0);x=~~w;y=((kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)/2|0|0)>(f|0);z=+en(v,120.0);A=z<0.0?z+120.0:z;z=v+90.0-A;v=+xe(A,0.0,120.0,0.0,1.0);f=d+8|0;if(y){Qe(r,z,w);Qe(s,z+120.0,w);A=+h[r+8>>3];B=+h[s+8>>3];C=+xe(v,0.0,1.0,+h[r>>3],+h[s>>3]);D=+(x|0)+ +xe(v,0.0,1.0,A,B);h[t>>3]=C+0.0;h[t+8>>3]=D;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;D=+(c[d+68>>2]|0);c[k>>2]=c[u>>2];c[k+4>>2]=c[u+4>>2];c[k+8>>2]=c[u+8>>2];c[k+12>>2]=c[u+12>>2];Pe(q,t,k,D);E=+h[q+8>>3]+ +h[d+16>>3];F=+h[q>>3]+ +h[f>>3];h[a>>3]=F;G=a+8|0;h[G>>3]=E;i=j;return}else{Qe(m,-z,w);Qe(n,-(z+120.0),w);w=+h[m+8>>3];z=+h[n+8>>3];D=+xe(v,0.0,1.0,+h[m>>3],+h[n>>3]);C=+(0-x|0)+ +xe(v,0.0,1.0,w,z);h[o>>3]=D+0.0;h[o+8>>3]=C;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;C=+(c[d+68>>2]|0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];Pe(l,o,k,C);E=+h[l+8>>3]+ +h[d+16>>3];F=+h[l>>3]+ +h[f>>3];h[a>>3]=F;G=a+8|0;h[G>>3]=E;i=j;return}}function Kk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.6000000238418579+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function Lk(a){a=a|0;return 16}function Mk(a,b){a=a|0;b=b|0;return ((b|0)/4|0|0)%4|0|0}function Nk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0;j=i;i=i+96|0;k=j+80|0;l=j+64|0;m=j+48|0;n=j+32|0;o=j+16|0;p=j;q=+g[d+92>>2];r=+en(q+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);q=r<0.0?r+360.0:r;r=+en(q,120.0);s=r<0.0?r+120.0:r;r=q+90.0-s;q=+xe(s,0.0,120.0,0.0,1.0);s=+(~~(+(e[10]|0|0)*.30000001192092896)|0);Qe(m,r,s);Qe(n,r+120.0,s);s=+h[m+8>>3];r=+h[n+8>>3];t=+xe(q,0.0,1.0,+h[m>>3],+h[n>>3]);u=+xe(q,0.0,1.0,s,r);h[o>>3]=t;h[o+8>>3]=u;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;u=+(c[d+68>>2]|0);c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];Pe(l,o,k,u);u=+h[l+8>>3]+ +h[d+16>>3];h[a>>3]=+h[l>>3]+ +h[d+8>>3];h[a+8>>3]=u;i=j;return}function Ok(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.6000000238418579+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function Pk(a){a=a|0;return 12}function Qk(a,b){a=a|0;b=b|0;return (b|0)%4|0|0}function Rk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0.0,m=0.0,n=0.0;j=i;i=i+16|0;k=j;l=+g[d+92>>2];m=+en(l+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);n=+P(+((m<0.0?m+360.0:m)/360.0),1.5);Qe(k,n*360.0+(l*.2+ +(c[d+68>>2]|0)+-90.0),+(~~(+(e[10]|0|0)*.3)|0));l=+h[k+8>>3]+ +h[d+16>>3];h[a>>3]=+h[k>>3]+ +h[d+8>>3];h[a+8>>3]=l;i=j;return}function Sk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(e[10]|0|0)*.6000000238418579+ +((d[a>>0]|d[a+1>>0]<<8)&65535|0))}function Tk(a){a=a|0;return 12}function Uk(a,b){a=a|0;b=b|0;return (b|0)/3|0|0}function Vk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0.0,m=0.0;j=i;i=i+16|0;k=j;l=+g[d+92>>2];m=+en(l+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);l=+P(+((m<0.0?m+360.0:m)/360.0),1.5);Qe(k,l*360.0+ +((c[d+68>>2]|0)+-90|0),+(~~(+(e[10]|0|0)*.3)|0));l=+h[k+8>>3]+ +h[d+16>>3];h[a>>3]=+h[k>>3]+ +h[d+8>>3];h[a+8>>3]=l;i=j;return}function Wk(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function Xk(a){a=a|0;return 24}function Yk(a,b){a=a|0;b=b|0;return ((b|0)/3|0|0)%4|0|0}function Zk(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;i=+g[d+92>>2]*.5;j=+en(i,45.0);k=j<0.0?j+45.0:j;j=+xe(k,30.0,45.0,0.0,45.0)+(i-k);k=j+ +(720/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0);j=+en(k+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);k=j<0.0?j+360.0:j;b=((e[10]|0)/3|0)&65535;f=~~+xe(k>=180.0?k+-180.0:k,0.0,180.0,+(0-b|0),+(b|0));j=+h[d+8>>3]+0.0;i=+h[d+16>>3]+ +((e[10]|0)>>>3&65535|0);if(k<180.0){k=+(f|0);l=k;m=k;n=m+i;o=l+j;h[a>>3]=o;p=a+8|0;h[p>>3]=n;return}else{l=+(0-f|0);m=+(f|0);n=m+i;o=l+j;h[a>>3]=o;p=a+8|0;h[p>>3]=n;return}}function _k(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function $k(a){a=a|0;return 24}function al(a,b){a=a|0;b=b|0;return ((b|0)/3|0|0)%4|0|0}function bl(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0,j=0.0,k=0.0,l=0.0,m=0.0;i=d+92|0;j=+g[i>>2];k=+en(j+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);j=k<0.0?k+360.0:k;k=+((e[10]|0)>>>2&65535|0);l=j*6.283/360.0;m=+(~~(+we(j-+g[i>>2]*.5,0.0,90.0,.6000000238418579,1.0)*k)|0);k=+Q(+l)*m;j=+R(+l)*m;m=+h[d+16>>3]+j;h[a>>3]=+h[d+8>>3]+k;h[a+8>>3]=m;return}function cl(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function dl(a){a=a|0;return 32}function el(a,b){a=a|0;b=b|0;return ((b|0)/4|0|0)%4|0|0}function fl(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0.0,j=0.0,k=0.0,l=0.0;i=+g[d+92>>2];j=+en(i+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);i=+((e[10]|0)>>>2&65535|0);k=(j<0.0?j+360.0:j)*6.283/360.0;j=+(~~(+we(+(f|0),0.0,4.0,.6000000238418579,1.0)*i)|0);i=+Q(+k)*j;l=+R(+k)*j;j=+h[d+16>>3]+l;h[a>>3]=+h[d+8>>3]+i;h[a+8>>3]=j;return}function gl(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function hl(a){a=a|0;return 16}function il(a,b){a=a|0;b=b|0;return ((b|0)/4|0|0)%4|0|0}function jl(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var i=0.0,j=0.0,k=0.0,l=0.0;i=+g[d+92>>2];j=+en(i+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);i=+((e[10]|0)>>>2&65535|0);k=(j<0.0?j+360.0:j)*6.283/360.0;j=+(~~(+we(+h[d+48>>3],0.0,1.0,.6000000238418579,1.0)*i)|0);i=+Q(+k)*j;l=+R(+k)*j;j=+h[d+16>>3]+l;h[a>>3]=+h[d+8>>3]+i;h[a+8>>3]=j;return}function kl(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>2&65535)|0))}function ll(a){a=a|0;return 24}function ml(a,b){a=a|0;b=b|0;return ((b|0)/3|0|0)%4|0|0}function nl(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0;j=i;i=i+64|0;k=j+48|0;l=j+32|0;m=j+16|0;n=j;o=+g[d+92>>2];p=+en(o+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);o=p<0.0?p+360.0:p;p=+((e[10]|0)>>>2&65535|0);q=p*+R(+(o*2.0*6.283/360.0))*.5;h[m>>3]=+Q(+(o*6.283/360.0))*p;h[m+8>>3]=q;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;q=+(c[d+68>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,q);q=+h[l+8>>3]+ +h[d+16>>3];h[a>>3]=+h[l>>3]+ +h[d+8>>3];h[a+8>>3]=q;i=j;return}function ol(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function pl(a){a=a|0;return 20}function ql(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;j=i;i=i+32|0;k=j+16|0;l=j;m=+g[d+92>>2];n=+en(m+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);m=n<0.0?n+360.0:n;n=+(0-(c[d+68>>2]|0)|0)+m;o=+en(m,90.0);m=o<0.0?o+90.0:o;o=n-m;n=+xe(m,0.0,90.0,0.0,1.0);m=+((e[10]|0)>>>2&65535|0);Qe(k,o,m);Qe(l,o+90.0,m);m=+h[k+8>>3];o=+h[l+8>>3];p=+xe(n,0.0,1.0,+h[k>>3],+h[l>>3]);q=+xe(n,0.0,1.0,m,o);o=q+ +h[d+16>>3];h[a>>3]=p+ +h[d+8>>3];h[a+8>>3]=o;i=j;return}function rl(a){a=a|0;a=(c[33]|0)+104|0;return +(+(((d[a>>0]|d[a+1>>0]<<8)&65535)+((e[10]|0)>>>1&65535)|0))}function sl(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;j=i;i=i+32|0;k=j+16|0;l=j;m=+g[d+92>>2];n=+en(m+ +((f*360|0)/(kd[c[(c[b>>2]|0)+16>>2]&31](b)|0)|0|0),360.0);m=n<0.0?n+360.0:n;n=+(45-(c[d+68>>2]|0)|0)+m;o=+en(m,90.0);m=o<0.0?o+90.0:o;o=n-m;n=+xe(m,0.0,90.0,0.0,1.0);m=+((e[10]|0)>>>2&65535|0);Qe(k,o,m);Qe(l,o+90.0,m);m=+h[k+8>>3];o=+h[l+8>>3];p=+xe(n,0.0,1.0,+h[k>>3],+h[l>>3]);q=+xe(n,0.0,1.0,m,o);o=q+ +h[d+16>>3];h[a>>3]=p+ +h[d+8>>3];h[a+8>>3]=o;i=j;return}function tl(a,b,f,i,j){a=a|0;b=b|0;f=f|0;i=+i;j=j|0;var k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;a=c[b+56>>2]&65535;k=c[33]|0;l=k+(a<<3)|0;m=+g[b+100>>2];n=k+(a<<3)+2|0;a=c[b+40>>2]|0;o=+h[b+8>>3];p=+g[b+92>>2];q=+(~~(+(e[10]|0|0)*.5)|0);r=+h[f>>3];s=+h[b+16>>3]-+h[f+8>>3];t=+((~~(m*+((d[l>>0]|d[l+1>>0]<<8)&65535|0))|0)/2|0|0)+i;if(!((s>0.0?s:-s)<+((~~(m*+((d[n>>0]|d[n+1>>0]<<8)&65535|0))|0)/2|0|0)+i)){u=0;return u|0}if(((a|0)%4|0|0)!=(j|0)?(i=o+ +(~~(+R(+((p+0.0)*6.283/360.0))*q)|0)-r,(i>0.0?i:-i)<t):0){u=1;return u|0}if(((a+1|0)%4|0|0)!=(j|0)?(i=o+ +(~~(+R(+((p+45.0)*6.283/360.0))*q)|0)-r,(i>0.0?i:-i)<t):0){u=1;return u|0}if(((a+2|0)%4|0|0)!=(j|0)?(i=o+ +(~~(+R(+((p+90.0)*6.283/360.0))*q)|0)-r,(i>0.0?i:-i)<t):0){u=1;return u|0}if(((a+3|0)%4|0|0)!=(j|0)?(i=o+ +(~~(+R(+((p+135.0)*6.283/360.0))*q)|0)-r,(i>0.0?i:-i)<t):0){u=1;return u|0}u=0;return u|0}function ul(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function vl(b,d){b=b|0;d=d|0;var f=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.0,E=0.0;b=i;i=i+64|0;f=b;j=d+56|0;k=d+8|0;l=d+92|0;m=d+16|0;n=f+4|0;o=f+8|0;p=f+12|0;q=f+16|0;r=f+20|0;s=f+24|0;t=f+28|0;u=f+32|0;v=f+36|0;w=f+40|0;x=f+44|0;y=f+48|0;z=d+100|0;A=d+40|0;B=d+104|0;d=0;do{C=c[j>>2]|0;D=+h[k>>3]+ +(~~(+R(+((+(d*45|0)+ +g[l>>2])*6.283/360.0))*+(~~(+(e[10]|0)*.5)|0))|0);E=+h[m>>3];a[f>>0]=1;c[n>>2]=C;c[o>>2]=0;g[p>>2]=D;g[q>>2]=E;g[t>>2]=0.0;c[u>>2]=0;c[v>>2]=-1;c[w>>2]=0;a[x>>0]=0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;C=c[z>>2]|0;c[s>>2]=C;c[r>>2]=C;C=~~(+g[B>>2]*255.0);c[v>>2]=((C|0)<0?0:(C|0)>255?-16777216:C<<24)|c[(c[58267]|0)+((((c[A>>2]|0)+d|0)%4|0)<<2)>>2]&16777215;if(a[1473]|0){g[t>>2]=180.0;C=c[8]|0;g[p>>2]=+(C&65535|0)-D;g[q>>2]=+(C>>>16|0)-E}Oe(f);d=d+1|0}while((d|0)!=4);i=b;return}function wl(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0;a=i;i=i+112|0;k=a+96|0;l=a+80|0;m=a+64|0;n=a+48|0;o=a+32|0;p=a+16|0;q=a;r=c[b+56>>2]&65535;s=c[33]|0;t=s+(r<<3)|0;u=+((d[t>>0]|d[t+1>>0]<<8)&65535|0);v=+g[b+100>>2];w=v*u*.5;x=v!=1.0?u*1.2000000476837158:0.0;t=s+(r<<3)+6|0;y=d[t>>0]|d[t+1>>0]<<8;t=y<<16>>16;z=s+(r<<3)+2|0;r=((d[z>>0]|d[z+1>>0]<<8)&65535)-t|0;u=+(r|0);v=+(0-t|0);if((c[b+40>>2]|0)==(j|0)){A=0;i=a;return A|0}j=b+92|0;Qe(n,+g[j>>2]+90.0,x+(w+((r|0)>0?u:-u)));r=b+8|0;u=+h[n>>3]+ +h[r>>3];t=b+16|0;B=+h[n+8>>3]+ +h[t>>3];Qe(o,+g[j>>2]+90.0,x+((y<<16>>16<0?v:-v)-w));v=+h[o>>3]+ +h[r>>3];x=+h[o+8>>3]+ +h[t>>3];h[p>>3]=u;h[p+8>>3]=B;h[q>>3]=v;h[q+8>>3]=x;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[p>>2];c[l+4>>2]=c[p+4>>2];c[l+8>>2]=c[p+8>>2];c[l+12>>2]=c[p+12>>2];c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];A=+Te(m,l,k)<w*.4000000059604645+f;i=a;return A|0}function xl(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function yl(b,e){b=b|0;e=e|0;var f=0,j=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;b=i;i=i+80|0;f=b+16|0;j=b;l=e+100|0;m=c[e+56>>2]|0;if(+g[l>>2]!=1.0){n=(c[33]|0)+((m&65535)<<3)|0;o=+((d[n>>0]|d[n+1>>0]<<8)&65535|0)*1.2000000476837158}else o=0.0;n=e+92|0;Qe(j,+g[n>>2]+90.0,o);o=+h[j>>3]+ +h[e+8>>3];p=+h[j+8>>3]+ +h[e+16>>3];a[f>>0]=1;c[f+4>>2]=m;c[f+8>>2]=0;m=f+12|0;g[m>>2]=o;j=f+16|0;g[j>>2]=p;q=f+28|0;c[f+32>>2]=0;r=f+36|0;c[r>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;s=f+48|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;s=c[n>>2]|0;c[q>>2]=s;c[r>>2]=c[(c[58267]|0)+(c[e+40>>2]<<2)>>2];e=c[l>>2]|0;c[f+24>>2]=e;c[f+20>>2]=e;if(!(a[1473]|0)){Oe(f);i=b;return}g[q>>2]=(c[k>>2]=s,+g[k>>2])+180.0;s=c[8]|0;g[m>>2]=+(s&65535|0)-o;g[j>>2]=+(s>>>16|0)-p;Oe(f);i=b;return}function zl(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var 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.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0;a=i;i=i+272|0;k=a+256|0;l=a+240|0;m=a+224|0;n=a+80|0;o=a+208|0;p=a+64|0;q=a+48|0;r=a+32|0;s=a+16|0;t=a;u=c[b+56>>2]&65535;v=c[33]|0;w=v+(u<<3)|0;x=+(((d[w>>0]|d[w+1>>0]<<8)&65535)>>>1&65535|0);y=+g[b+100>>2];z=y*(x*.8600000143051147);w=v+(u<<3)+2|0;A=y*(+(((d[w>>0]|d[w+1>>0]<<8)&65535)>>>1&65535|0)*.8600000143051147);y=x*.10000000149011612;h[n>>3]=-z;h[n+8>>3]=0.0;x=y*2.0;B=0.0-x;h[n+16>>3]=B;h[n+24>>3]=A-x;h[n+32>>3]=0.0;h[n+40>>3]=-A;C=y*1.5;h[n+48>>3]=C-z;h[n+56>>3]=B;h[n+64>>3]=z;h[n+72>>3]=0.0;B=x+0.0;h[n+80>>3]=B;h[n+88>>3]=x-A;h[n+96>>3]=0.0;h[n+104>>3]=A;h[n+112>>3]=z-C;h[n+120>>3]=B;w=b+92|0;u=o+8|0;v=b+8|0;D=b+16|0;b=q+8|0;E=s+8|0;F=t+8|0;B=y+f;G=0;while(1){if((c[8128+(G<<2)>>2]|0)!=(j|0)?(c[p>>2]=0,c[p+4>>2]=0,c[p+8>>2]=0,c[p+12>>2]=0,f=+g[w>>2],c[k>>2]=c[p>>2],c[k+4>>2]=c[p+4>>2],c[k+8>>2]=c[p+8>>2],c[k+12>>2]=c[p+12>>2],Pe(o,n+(G<<5)|0,k,f),f=+h[o>>3]+ +h[v>>3],y=+h[u>>3]+ +h[D>>3],c[r>>2]=0,c[r+4>>2]=0,c[r+8>>2]=0,c[r+12>>2]=0,C=+g[w>>2],c[k>>2]=c[r>>2],c[k+4>>2]=c[r+4>>2],c[k+8>>2]=c[r+8>>2],c[k+12>>2]=c[r+12>>2],Pe(q,n+(G<<5)+16|0,k,C),C=+h[q>>3]+ +h[v>>3],z=+h[b>>3]+ +h[D>>3],h[s>>3]=f,h[E>>3]=y,h[t>>3]=C,h[F>>3]=z,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[l>>2]=c[s>>2],c[l+4>>2]=c[s+4>>2],c[l+8>>2]=c[s+8>>2],c[l+12>>2]=c[s+12>>2],c[k>>2]=c[t>>2],c[k+4>>2]=c[t+4>>2],c[k+8>>2]=c[t+8>>2],c[k+12>>2]=c[t+12>>2],+Te(m,l,k)<=B):0){H=1;I=5;break}G=G+1|0;if((G|0)>=4){H=0;I=5;break}}if((I|0)==5){i=a;return H|0}return 0}function Al(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Bl(a,b,e,f,i){a=a|0;b=b|0;e=e|0;f=+f;i=i|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0;a=c[b+56>>2]&65535;j=c[33]|0;k=j+(a<<3)+2|0;l=c[b+44>>2]|0;m=j+(a<<3)|0;n=+g[b+92>>2];o=+h[e+8>>3]-+h[b+16>>3];p=+h[b+8>>3];q=+h[e>>3];e=j+(a<<3)+4|0;a=!(+(~~(o>0.0?o:-o)|0)<+(((d[k>>0]|d[k+1>>0]<<8)&65535)>>>1&65535|0)+f);k=0;while(1){if(!((c[l+(k<<2)>>2]|0)==(i|0)|a)){j=(d[m>>0]|d[m+1>>0]<<8)&65535;f=+(j<<2|0);o=+en(n+ +(_(j,k)|0),f);r=+(_(j,-4)|0);s=+(~~(+(~~(r+(o<0.0?o+f:o))|0)+p)|0);b=(d[e>>0]|d[e+1>>0]<<8)<<16>>16;if(q>=s+ +(0-b|0)?q<=s+ +(j-b|0):0){t=1;u=6;break}b=(d[m>>0]|d[m+1>>0]<<8)&65535;s=+(b<<2|0);o=+en(n+ +(_(b,k)|0),s);f=+(~~(+(~~((o<0.0?o+s:o)+0.0)|0)+p)|0);j=(d[e>>0]|d[e+1>>0]<<8)<<16>>16;if(q>=f+ +(0-j|0)?q<=f+ +(b-j|0):0){t=1;u=6;break}j=(d[m>>0]|d[m+1>>0]<<8)&65535;f=+(j<<2|0);o=+en(n+ +(_(j,k)|0),f);s=+(~~(+(~~(+(j<<2|0)+(o<0.0?o+f:o))|0)+p)|0);b=(d[e>>0]|d[e+1>>0]<<8)<<16>>16;if(q>=s+ +(0-b|0)?q<=s+ +(j-b|0):0){t=1;u=6;break}}k=k+1|0;if((k|0)>=4){t=0;u=6;break}}if((u|0)==6)return t|0;return 0}function Cl(a,b,e){a=a|0;b=b|0;e=+e;var f=0;a=(c[33]|0)+((c[b+56>>2]&65535)<<3)|0;f=b+92|0;g[f>>2]=+g[b+96>>2]*e*+(((d[a>>0]|d[a+1>>0]<<8)&65535)<<2|0)/6.0+ +g[f>>2];return}function Dl(b,e){b=b|0;e=e|0;var f=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.0,E=0,F=0,G=0.0,H=0.0,I=0.0;b=i;i=i+64|0;f=b;j=e+56|0;k=e+8|0;l=e+92|0;m=e+16|0;n=f+4|0;o=f+8|0;p=f+12|0;q=f+16|0;r=f+20|0;s=f+24|0;t=f+28|0;u=f+32|0;v=f+36|0;w=f+40|0;x=f+44|0;y=f+48|0;z=e+44|0;A=e+104|0;e=0;do{B=-1;do{C=c[j>>2]|0;D=+h[k>>3];E=(c[33]|0)+((C&65535)<<3)|0;F=(d[E>>0]|d[E+1>>0]<<8)&65535;G=+(F<<2|0);H=+en(+g[l>>2]+ +(_(F,e)|0),G);I=D+ +(~~(+(_(B<<2,F)|0)+(H<0.0?H+G:H))|0);H=+h[m>>3];a[f>>0]=1;c[n>>2]=C;c[o>>2]=0;g[p>>2]=I;g[q>>2]=H;g[r>>2]=1.0;g[s>>2]=1.0;g[t>>2]=0.0;c[u>>2]=0;c[v>>2]=-1;c[w>>2]=0;a[x>>0]=0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;C=~~(+g[A>>2]*255.0);c[v>>2]=((C|0)<0?0:(C|0)>255?-16777216:C<<24)|c[(c[58267]|0)+(c[(c[z>>2]|0)+(e<<2)>>2]<<2)>>2]&16777215;if(a[1473]|0){g[t>>2]=180.0;C=c[8]|0;g[p>>2]=+(C&65535|0)-I;g[q>>2]=+(C>>>16|0)-H}Oe(f);B=B+1|0}while((B|0)!=2);e=e+1|0}while((e|0)!=4);i=b;return}function El(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var 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.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;a=i;i=i+272|0;k=a+256|0;l=a+240|0;m=a+224|0;n=a+80|0;o=a+208|0;p=a+64|0;q=a+48|0;r=a+32|0;s=a+16|0;t=a;u=c[b+56>>2]&65535;v=c[33]|0;w=v+(u<<3)|0;x=+(((d[w>>0]|d[w+1>>0]<<8)&65535)>>>1&65535|0);y=+g[b+100>>2];z=y*(x*.8600000143051147);w=v+(u<<3)+2|0;A=y*(+(((d[w>>0]|d[w+1>>0]<<8)&65535)>>>1&65535|0)*.8600000143051147);y=x*.14000000059604645;x=-z;B=-A;h[n>>3]=x;h[n+8>>3]=B;C=y*2.0;h[n+16>>3]=x;h[n+24>>3]=A-C;D=z;h[n+32>>3]=D;h[n+40>>3]=B;h[n+48>>3]=C-z;h[n+56>>3]=B;B=A;h[n+64>>3]=D;h[n+72>>3]=B;h[n+80>>3]=D;h[n+88>>3]=C-A;h[n+96>>3]=x;h[n+104>>3]=B;h[n+112>>3]=z-C;h[n+120>>3]=B;w=b+44|0;u=b+92|0;v=o+8|0;E=b+8|0;F=b+16|0;b=q+8|0;G=s+8|0;H=t+8|0;B=y+f;I=0;while(1){if((c[(c[w>>2]|0)+(I<<2)>>2]|0)!=(j|0)?(c[p>>2]=0,c[p+4>>2]=0,c[p+8>>2]=0,c[p+12>>2]=0,f=+g[u>>2],c[k>>2]=c[p>>2],c[k+4>>2]=c[p+4>>2],c[k+8>>2]=c[p+8>>2],c[k+12>>2]=c[p+12>>2],Pe(o,n+(I<<5)|0,k,f),f=+h[o>>3]+ +h[E>>3],y=+h[v>>3]+ +h[F>>3],c[r>>2]=0,c[r+4>>2]=0,c[r+8>>2]=0,c[r+12>>2]=0,C=+g[u>>2],c[k>>2]=c[r>>2],c[k+4>>2]=c[r+4>>2],c[k+8>>2]=c[r+8>>2],c[k+12>>2]=c[r+12>>2],Pe(q,n+(I<<5)+16|0,k,C),C=+h[q>>3]+ +h[E>>3],z=+h[b>>3]+ +h[F>>3],h[s>>3]=f,h[G>>3]=y,h[t>>3]=C,h[H>>3]=z,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[l>>2]=c[s>>2],c[l+4>>2]=c[s+4>>2],c[l+8>>2]=c[s+8>>2],c[l+12>>2]=c[s+12>>2],c[k>>2]=c[t>>2],c[k+4>>2]=c[t+4>>2],c[k+8>>2]=c[t+8>>2],c[k+12>>2]=c[t+12>>2],+Te(m,l,k)<=B):0){J=1;K=5;break}I=I+1|0;if((I|0)>=4){J=0;K=5;break}}if((K|0)==5){i=a;return J|0}return 0}function Fl(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Gl(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0;a=i;i=i+112|0;k=a+96|0;l=a+80|0;m=a+64|0;n=a+48|0;o=a+32|0;p=a+16|0;q=a;r=(c[33]|0)+((c[b+56>>2]&65535)<<3)+6|0;s=+g[b+100>>2]*(+(0-((d[r>>0]|d[r+1>>0]<<8)<<16>>16)|0)*-.949999988079071);r=b+92|0;t=b+44|0;u=n+8|0;v=b+8|0;w=b+16|0;b=o+8|0;x=p+8|0;y=q+8|0;z=s*.05000000074505806+f;A=c[t>>2]|0;do if((c[A>>2]|0)!=(j|0)){Qe(n,+g[r>>2]+-30.0+0.0,s);f=+h[n>>3]+ +h[v>>3];B=+h[u>>3]+ +h[w>>3];Qe(o,+g[r>>2]+90.0+0.0,s);C=+h[o>>3]+ +h[v>>3];D=+h[b>>3]+ +h[w>>3];h[p>>3]=f;h[x>>3]=B;h[q>>3]=C;h[y>>3]=D;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[p>>2];c[l+4>>2]=c[p+4>>2];c[l+8>>2]=c[p+8>>2];c[l+12>>2]=c[p+12>>2];c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];if(!(+Te(m,l,k)<=z)){E=c[t>>2]|0;break}else{F=1;i=a;return F|0}}else E=A;while(0);do if((c[E+4>>2]|0)!=(j|0)){Qe(n,+g[r>>2]+-30.0+120.0,s);D=+h[n>>3]+ +h[v>>3];C=+h[u>>3]+ +h[w>>3];Qe(o,+g[r>>2]+90.0+120.0,s);B=+h[o>>3]+ +h[v>>3];f=+h[b>>3]+ +h[w>>3];h[p>>3]=D;h[x>>3]=C;h[q>>3]=B;h[y>>3]=f;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[p>>2];c[l+4>>2]=c[p+4>>2];c[l+8>>2]=c[p+8>>2];c[l+12>>2]=c[p+12>>2];c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];if(!(+Te(m,l,k)<=z)){G=c[t>>2]|0;break}else{F=1;i=a;return F|0}}else G=E;while(0);if((c[G+8>>2]|0)!=(j|0)?(Qe(n,+g[r>>2]+-30.0+240.0,s),f=+h[n>>3]+ +h[v>>3],B=+h[u>>3]+ +h[w>>3],Qe(o,+g[r>>2]+90.0+240.0,s),s=+h[o>>3]+ +h[v>>3],C=+h[b>>3]+ +h[w>>3],h[p>>3]=f,h[x>>3]=B,h[q>>3]=s,h[y>>3]=C,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[l>>2]=c[p>>2],c[l+4>>2]=c[p+4>>2],c[l+8>>2]=c[p+8>>2],c[l+12>>2]=c[p+12>>2],c[k>>2]=c[q>>2],c[k+4>>2]=c[q+4>>2],c[k+8>>2]=c[q+8>>2],c[k+12>>2]=c[q+12>>2],+Te(m,l,k)<=z):0){F=1;i=a;return F|0}F=0;i=a;return F|0}function Hl(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Il(a,b,e,f,j){a=a|0;b=b|0;e=e|0;f=+f;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0.0,w=0,x=0;a=i;i=i+96|0;k=a+80|0;l=a+64|0;m=a+48|0;n=a+32|0;o=a+16|0;p=a;q=(c[33]|0)+((c[b+56>>2]&65535)<<3)+6|0;r=+g[b+100>>2]*(+(0-((d[q>>0]|d[q+1>>0]<<8)<<16>>16)|0)*-.949999988079071);q=b+8|0;s=b+92|0;t=o+8|0;u=b+16|0;b=p+8|0;v=r*.05000000074505806+f;do if(j){c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];Qe(o,+g[s>>2]+180.0+0.0,r);f=+h[t>>3]+ +h[u>>3];h[p>>3]=+h[o>>3]+ +h[q>>3];h[b>>3]=f;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];if(!(+Te(m,l,k)<=v))if((j|0)==1){w=7;break}else{w=5;break}else{x=1;i=a;return x|0}}else w=5;while(0);do if((w|0)==5){c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];Qe(o,+g[s>>2]+180.0+90.0,r);f=+h[t>>3]+ +h[u>>3];h[p>>3]=+h[o>>3]+ +h[q>>3];h[b>>3]=f;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];if(!(+Te(m,l,k)<=v))if((j|0)==2){w=9;break}else{w=7;break}else{x=1;i=a;return x|0}}while(0);do if((w|0)==7){c[n>>2]=c[q>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];c[n+12>>2]=c[q+12>>2];Qe(o,+g[s>>2]+180.0+180.0,r);f=+h[t>>3]+ +h[u>>3];h[p>>3]=+h[o>>3]+ +h[q>>3];h[b>>3]=f;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];if(!(+Te(m,l,k)<=v))if((j|0)==3)break;else{w=9;break}else{x=1;i=a;return x|0}}while(0);if((w|0)==9?(c[n>>2]=c[q>>2],c[n+4>>2]=c[q+4>>2],c[n+8>>2]=c[q+8>>2],c[n+12>>2]=c[q+12>>2],Qe(o,+g[s>>2]+180.0+270.0,r),r=+h[t>>3]+ +h[u>>3],h[p>>3]=+h[o>>3]+ +h[q>>3],h[b>>3]=r,c[m>>2]=c[e>>2],c[m+4>>2]=c[e+4>>2],c[m+8>>2]=c[e+8>>2],c[m+12>>2]=c[e+12>>2],c[l>>2]=c[n>>2],c[l+4>>2]=c[n+4>>2],c[l+8>>2]=c[n+8>>2],c[l+12>>2]=c[n+12>>2],c[k>>2]=c[p>>2],c[k+4>>2]=c[p+4>>2],c[k+8>>2]=c[p+8>>2],c[k+12>>2]=c[p+12>>2],+Te(m,l,k)<=v):0){x=1;i=a;return x|0}x=0;i=a;return x|0}function Jl(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Kl(a,b,e,f,i){a=a|0;b=b|0;e=e|0;f=+f;i=i|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0;j=+h[e>>3]-+h[b+8>>3];k=+h[e+8>>3]-+h[b+16>>3];l=+O(+(j*j+k*k));e=(c[33]|0)+((c[b+56>>2]&65535)<<3)|0;m=+g[b+100>>2]*+(((d[e>>0]|d[e+1>>0]<<8)&65535)>>>1&65535|0);n=l;if(n>m+f){o=0;return o|0}if(n<m*.8280000000000001-f){o=0;return o|0}f=+ue(j,-k);k=+en(f-+g[b+92>>2],360.0);o=(c[(c[b+44>>2]|0)+(((~~(k<0.0?k+360.0:k)|0)/90|0)<<2)>>2]|0)!=(i|0);return o|0}function Ll(a,b,c){a=a|0;b=b|0;c=+c;a=b+92|0;g[a>>2]=+g[b+96>>2]*c*360.0/6.0+ +g[a>>2];return}function Ml(){Sl(242166,2336);return}function Nl(){a[242165]=0;if(!(Rl(242166,2336)|0)){Qn(242175)|0;a[242165]=1}tg(d[5372]|0);c[584]=1;Sl(242166,2336);return}function Ol(){var b=0;b=a[5372]^1;a[5372]=b;tg(b&255);Sl(242166,2336);return}function Pl(){if((a[242209]|a[5373])<<24>>24)return;Eb();a[242209]=1;return}function Ql(){var b=0;if((a[5373]|0)==0?Xc()|0:0){a[242209]=0;b=1}else b=0;return b|0}
function Vg(f,j){f=f|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0.0;k=i;i=i+48|0;l=k+32|0;m=k+16|0;n=k;o=f+4|0;if((c[o>>2]|0)!=2?(jh(f+56112|0,j),(a[f+56176>>0]|0)!=0):0){i=k;return}p=f+56872|0;q=j;kh(p,q);r=f+57448|0;a:do if(a[r>>0]|0){switch(c[f+56964>>2]|0){case 2:break;case 3:{a[r>>0]=0;break a;break}default:break a}c[o>>2]=3;g[f+57452>>2]=2.0;s=f+28712|0;t=f+57432|0;c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];a[r>>0]=0;c[m>>2]=c[t>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];c[m+12>>2]=c[t+12>>2];t=f+56056|0;s=32;u=f+45360|0;while(1){if(+h[u+40>>3]==0.0){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];lh(u,l,0.0);v=s+-1|0;if(!v)break;else w=v}else w=s;u=u+56|0;if(u>>>0>t>>>0)break;else s=w}}while(0);if(a[p>>0]|0){i=k;return}if((c[372]|0)!=3){x=+((e[16]|0)>>>1&65535|0);h[f+28712>>3]=x;h[f+28816>>3]=x}if((c[367]|0)>-1){p=f+56776|0;w=f+56272|0;do{if(((c[w+36>>2]|0)%5|0|0)==2?(r=w+48|0,x=+g[r>>2]+q*+g[w+52>>2],g[r>>2]=x,x>1.0):0)mh(w);w=w+56|0}while(w>>>0<=p>>>0)}p=f+56184|0;h[p>>3]=q+ +h[p>>3];p=f+8|0;c[2008]=p;h[196]=q+ +h[196];w=f+28568|0;r=p;do{nh(r,j);r=r+112|0}while(r>>>0<=w>>>0);r=(c[o>>2]|0)==0;oh(f+57008|0,q);s=c[o>>2]|0;b:do switch(s|0){case 0:{if(((b[2908]&4)==0?(a[5608]&4)==0:0)?(fe(4)|0)==0:0){y=39;break b}c[o>>2]=1;y=41;break}case 3:{t=f+57452|0;g[t>>2]=+g[t>>2]-j;u=f+28712|0;c[l>>2]=c[u>>2];c[l+4>>2]=c[u+4>>2];c[l+8>>2]=c[u+8>>2];c[l+12>>2]=c[u+12>>2];u=f+56056|0;v=f+45360|0;do{if(+h[v+40>>3]>0.0){c[v>>2]=c[l>>2];c[v+4>>2]=c[l+4>>2];c[v+8>>2]=c[l+8>>2];c[v+12>>2]=c[l+12>>2]}v=v+56|0}while(v>>>0<=u>>>0);if((c[372]|0)==3)ph(f,j,1);else qh(f,j,1);if(!(+g[t>>2]<=0.0))y=39;else{a[f+28793>>0]=1;if(((b[2908]&4)==0?(a[5608]&4)==0:0)?(fe(4)|0)==0:0){y=39;break b}c[o>>2]=1;y=41}break}default:{z=s;y=40}}while(0);if((y|0)==39){z=c[o>>2]|0;y=40}c:do if((y|0)==40){switch(z|0){case 1:{y=41;break c;break}case 2:break;default:break c}x=+(e[17]|0)*j*.699999988079071;do if(!(a[1472]|0)){s=f+28824|0;h[s>>3]=+h[s>>3]-x;s=f+28712|0;u=f+28793|0;if(a[u>>0]|0){uh(s,j);wh(f,j);v=f+31992|0;A=f+56264|0;B=f+28816|0;C=f+28968|0;do{gd[c[c[C>>2]>>2]&15](C,j);if((a[C+32>>0]|0)!=0?(xh(f,C,s,0),(c[A>>2]|0)==2):0)xh(f,C,B,1);C=C+48|0}while(C>>>0<=v>>>0);v=c[f+28784>>2]|0;C=c[(c[58267]|0)+(v<<2)>>2]|0;c[f+28736>>2]=C;c[f+28740>>2]=C;g[f+28744>>2]=0.0;g[f+28748>>2]=1.0;D=+g[f+28780>>2];c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];c[n+8>>2]=c[s+8>>2];c[n+12>>2]=c[s+12>>2];E=D;C=m+8|0;B=p;while(1){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];if((a[B+108>>0]|0)!=0?(D=+h[C>>3]-+h[B+16>>3],!((D>0.0?D:-D)>+(e[11]|0))):0){A=c[B+60>>2]|0;F=c[c[A>>2]>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];if(hd[F&31](A,B,l,E,v)|0)break}B=B+112|0;if(B>>>0>w>>>0){y=145;break}}if((y|0)==145)break;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];B=f+45304|0;v=32;C=f+34608|0;while(1){if(+h[C+40>>3]==0.0){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];lh(C,l,0.0);A=v+-1|0;if(!A)break;else G=A}else G=v;C=C+56|0;if(C>>>0>B>>>0)break;else v=G}a[u>>0]=0}}else{v=f+28720|0;h[v>>3]=+h[v>>3]-x;v=f+28816|0;B=f+28897|0;if(a[B>>0]|0){uh(v,j);C=f+31992|0;s=f+28712|0;A=f+56264|0;F=f+28968|0;do{gd[c[c[F>>2]>>2]&15](F,j);if((a[F+32>>0]|0)!=0?(xh(f,F,s,0),(c[A>>2]|0)==2):0)xh(f,F,v,1);F=F+48|0}while(F>>>0<=C>>>0);C=c[f+28888>>2]|0;F=c[(c[58267]|0)+(C<<2)>>2]|0;c[f+28840>>2]=F;c[f+28844>>2]=F;g[f+28848>>2]=0.0;g[f+28852>>2]=1.0;E=+g[f+28884>>2];c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];D=E;F=m+8|0;A=p;while(1){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];if((a[A+108>>0]|0)!=0?(E=+h[F>>3]-+h[A+16>>3],!((E>0.0?E:-E)>+(e[11]|0))):0){s=c[A+60>>2]|0;u=c[c[s>>2]>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];if(hd[u&31](s,A,l,D,C)|0)break}A=A+112|0;if(A>>>0>w>>>0){y=127;break}}if((y|0)==127)break;c[m>>2]=c[v>>2];c[m+4>>2]=c[v+4>>2];c[m+8>>2]=c[v+8>>2];c[m+12>>2]=c[v+12>>2];A=f+45304|0;C=32;F=f+34608|0;while(1){if(+h[F+40>>3]==0.0){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];lh(F,l,0.0);s=C+-1|0;if(!s)break;else H=s}else H=C;F=F+56|0;if(F>>>0>A>>>0)break;else C=H}a[B>>0]=0}}while(0);t=f+28944|0;x=+h[t>>3]-q;h[t>>3]=x;t=f+28952|0;h[t>>3]=+h[t>>3]-q;if(x<=0.0){t=c[101]|0;if(!t){yh(f);a[1452]=0;C=c[1851]|0;c[1851]=C+-1;A=(c[1852]|0)+-1|0;c[1852]=A;do if((C|0)<2)if(Ql()|0){c[1851]=1;break}else{I=c[1852]|0;y=157;break}else{I=A;y=157}while(0);if((y|0)==157){if((I|0)<1)a[1452]=0;if((c[1851]|0)<2)Pl()}J=c[101]|0}else J=t;if((J|0)!=2){c[101]=2;Wd(250)}}}while(0);do if((y|0)==41){J=f+56260|0;c[J>>2]=(c[J>>2]|0)+-1;rh(f);if((c[372]|0)==6?(I=f+56832|0,x=j/+g[(c[f+56864>>2]|0)+12>>2]+ +g[I>>2],g[I>>2]=x,x>=1.0):0){g[I>>2]=x+-1.0;I=f+34600|0;H=c[I>>2]|0;G=f+28784|0;if((c[G>>2]|0)!=(H|0)){c[G>>2]=H;G=c[(c[58267]|0)+(H<<2)>>2]|0;c[f+28736>>2]=G;c[f+28740>>2]=G;g[f+28744>>2]=0.0;g[f+28748>>2]=1.0;h[f+28760>>3]=+h[f+28720>>3]-+g[2482]*+(e[11]|0)*.4000000059604645}g[f+28796>>2]=1.0;qg(2);do G=(qn()|0)%4|0;while((G|0)==(c[I>>2]|0));K=G;c[I>>2]=K}do if(!(sh(f+56112|0,1,0.0,0.0)|0)){do if((c[372]|0)==9){if((a[5608]&1)==0?(fe(1)|0)==0:0){y=54;break}h[f+28808>>3]=.3}else y=54;while(0);do if((y|0)==54){if(((b[2908]&4)==0?(a[5608]&4)==0:0)?(fe(4)|0)==0:0)break;if(!(a[f+28804>>0]|0)){x=(a[1473]|0)!=0?1.0:-1.0;B=c[f+28776>>2]|0;D=+g[B+16>>2];if(r)L=x*+g[B+8>>2]*(D*+(e[11]|0)*.0009765625);else L=x*+g[B>>2]*(D*+(e[11]|0)*.0009765625);h[f+28728>>3]=L}else h[f+28808>>3]=.01;qg(5)}while(0);B=f+56264|0;if(((c[B>>2]|0)>1?(c[J>>2]|0)<1:0)?th(f,f+28816|0,1,30)|0:0){c[J>>2]=~~+g[229700+((c[367]|0)*3364|0)+8>>2];if(!(a[f+28908>>0]|0)){t=c[f+28880>>2]|0;h[f+28832>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[t>>2]*(+g[t+16>>2]*+(e[11]|0)*.0009765625);M=B;break}else{h[f+28912>>3]=.01;M=B;break}}else M=B}else M=f+56264|0;while(0);J=f+28712|0;uh(J,j);if((c[M>>2]|0)>1)uh(f+28816|0,j);I=c[367]|0;do if((I&c[366]|0)!=-1?(c[f+57e3>>2]|0)>=((c[(c[f+56864>>2]|0)+3360>>2]|0)+-2|0):0){D=+h[f+28720>>3];x=+((e[11]|0)>>>2&65535|0);Qe(l,+((c[f+56992>>2]|0)+270|0),1.0);if(!(D<=+h[f+28688>>3]-x*+h[l+8>>3])){N=c[367]|0;y=77;break}else{vh(f);break}}else{N=I;y=77}while(0);do if((y|0)==77){if((N|0)>-1?(x=+h[f+28824>>3],D=+((e[11]|0)>>>2&65535|0),Qe(l,+((c[f+56992>>2]|0)+270|0),1.0),x<=+h[f+28688>>3]-D*+h[l+8>>3]):0){qg(3);c[o>>2]=2;h[f+28944>>3]=2.0;h[f+28952>>3]=0.0;a[f+56268>>0]=1;c[361]=c[f+28960>>2];break}I=f+28720|0;D=+h[I>>3];if((c[f+57e3>>2]|0)==0?(x=+h[f+28928>>3],D>x):0){h[I>>3]=x;h[f+28728>>3]=0.0;break}I=c[33]|0;B=I+278|0;t=(d[B>>0]|d[B+1>>0]<<8)<<16>>16;B=!(D>=+((e[17]|0)-t|0));if((c[372]|0)==3){if(((B?(G=I+274|0,!(D<=+(((d[G>>0]|d[G+1>>0]<<8)&65535)-t|0))):0)?(x=+h[f+28712>>3],t=I+276|0,G=(d[t>>0]|d[t+1>>0]<<8)<<16>>16,!(x>=+((e[16]|0)-G|0))):0)?(t=I+272|0,!(x<=+(((d[t>>0]|d[t+1>>0]<<8)&65535)-G|0))):0){ph(f,j,0);break}}else if(B){if(!(D<+h[f+28936>>3]))break;qh(f,j,0);break}c[o>>2]=2;h[f+28944>>3]=1.0;h[f+28952>>3]=.5;c[m>>2]=c[J>>2];c[m+4>>2]=c[J+4>>2];c[m+8>>2]=c[J+8>>2];c[m+12>>2]=c[J+12>>2];B=f+45304|0;G=32;t=f+34608|0;while(1){if(+h[t+40>>3]==0.0){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];lh(t,l,0.0);I=G+-1|0;if(!I)break;else O=I}else O=G;t=t+56|0;if(t>>>0>B>>>0)break;else G=O}a[f+28793>>0]=0;qg(3);c[361]=c[f+28960>>2]}while(0);wh(f,j);G=f+31992|0;B=f+28816|0;t=f+28968|0;do{gd[c[c[t>>2]>>2]&15](t,j);if((a[t+32>>0]|0)!=0?(xh(f,t,J,0),(c[M>>2]|0)==2):0)xh(f,t,B,1);t=t+48|0}while(t>>>0<=G>>>0);G=c[f+28784>>2]|0;t=c[(c[58267]|0)+(G<<2)>>2]|0;c[f+28736>>2]=t;c[f+28740>>2]=t;g[f+28744>>2]=0.0;g[f+28748>>2]=1.0;D=+g[f+28780>>2];c[n>>2]=c[J>>2];c[n+4>>2]=c[J+4>>2];c[n+8>>2]=c[J+8>>2];c[n+12>>2]=c[J+12>>2];x=D;t=m+8|0;B=p;while(1){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];if((a[B+108>>0]|0)!=0?(D=+h[t>>3]-+h[B+16>>3],!((D>0.0?D:-D)>+(e[11]|0))):0){I=c[B+60>>2]|0;H=c[c[I>>2]>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];if(hd[H&31](I,B,l,x,G)|0)break}B=B+112|0;if(B>>>0>w>>>0){y=108;break}}if((y|0)==108)break;c[o>>2]=2;h[f+28944>>3]=1.0;h[f+28952>>3]=.5;c[m>>2]=c[J>>2];c[m+4>>2]=c[J+4>>2];c[m+8>>2]=c[J+8>>2];c[m+12>>2]=c[J+12>>2];B=f+45304|0;G=32;t=f+34608|0;while(1){if(+h[t+40>>3]==0.0){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];lh(t,l,0.0);I=G+-1|0;if(!I)break;else P=I}else P=G;t=t+56|0;if(t>>>0>B>>>0)break;else G=P}a[f+28793>>0]=0;qg(3);c[361]=c[f+28960>>2]}while(0);P=f+45304|0;L=j*.5;x=+(e[10]<<1|0)*j;l=f+34608|0;do{f=l+40|0;D=+h[f>>3];do if(!(D<=0.0)){m=l+48|0;E=+g[m>>2];if(E>0.0){Q=E-j;g[m>>2]=Q;if(Q>0.0)break;g[m>>2]=0.0}Q=D-L;h[f>>3]=Q<=0.0?0.0:Q;m=l+24|0;Q=x+ +h[m>>3];h[m>>3]=Q;m=l+16|0;E=+h[m>>3];R=+h[l>>3]+q*E;o=l+8|0;S=q*Q+ +h[o>>3];h[l>>3]=R;h[o>>3]=S;if(E<0.0&R<0.0){h[m>>3]=-E;break}if(E>0.0&R>=+(e[16]|0))h[m>>3]=-E}while(0);l=l+56|0}while(l>>>0<=P>>>0);i=k;return}function Wg(a){a=a|0;id[c[(c[a>>2]|0)+44>>2]&63](a);return}function Xg(f){f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=i;i=i+192|0;k=j+128|0;l=j+64|0;m=j;n=f+4|0;o=c[n>>2]|0;do if((o|0)!=2&(c[372]|0)==6){p=+g[f+56832>>2];q=p*p;if(q>.30000001192092896){p=+we(q,0.0,.15000000596046448,0.0,1.0);r=f+34600|0;s=c[(c[58267]|0)+(c[r>>2]<<2)>>2]|0;t=~~+xe(.5,0.0,1.0,41.0,+(s&255));u=~~+xe(.5,0.0,1.0,41.0,+(s>>>8&255));v=~~+xe(.5,0.0,1.0,41.0,+(s>>>16&255));w=~~+xe(.5,0.0,1.0,255.0,+(s>>>24&255))&255;s=~~+xe(p,.5,.8999999761581421,41.0,+(t&255));t=~~+xe(p,.5,.8999999761581421,41.0,+(u&255));u=~~+xe(p,.5,.8999999761581421,41.0,+(v&255));v=t<<8&65280|s&255|u<<16&16711680|~~+xe(p,.5,.8999999761581421,255.0,+(w&255))<<24;q=+(Rd(185)|0);w=b[17]|0;a[k>>0]=1;c[k+4>>2]=185;c[k+8>>2]=0;g[k+12>>2]=q;g[k+16>>2]=+((w&65535)>>>1&65535|0);g[k+20>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+40>>2]=0;a[k+44>>0]=0;u=k+48|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;u=(c[33]|0)+1482|0;g[k+24>>2]=+(w&65535|0)*1.2000000476837158/+((d[u>>0]|d[u+1>>0]<<8)&65535|0);c[k+36>>2]=v;Oe(k);u=e[16]|0;q=+(u-(Rd(185)|0)|0);u=b[17]|0;a[l>>0]=1;c[l+4>>2]=185;c[l+8>>2]=0;g[l+12>>2]=q;g[l+16>>2]=+((u&65535)>>>1&65535|0);g[l+20>>2]=1.0;g[l+28>>2]=0.0;c[l+40>>2]=0;a[l+44>>0]=0;w=l+48|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;w=(c[33]|0)+1482|0;g[l+24>>2]=+(u&65535|0)*1.2000000476837158/+((d[w>>0]|d[w+1>>0]<<8)&65535|0);c[l+32>>2]=1;c[l+36>>2]=v;Oe(l);v=c[(c[58267]|0)+(c[r>>2]<<2)>>2]|0;r=~~+xe(.05000000074505806,0.0,1.0,41.0,+(v&255));w=~~+xe(.05000000074505806,0.0,1.0,41.0,+(v>>>8&255));u=~~+xe(.05000000074505806,0.0,1.0,41.0,+(v>>>16&255));s=~~+xe(.05000000074505806,0.0,1.0,255.0,+(v>>>24&255))&255;v=~~+xe(p,.5,.8999999761581421,41.0,+(r&255));r=~~+xe(p,.5,.8999999761581421,41.0,+(w&255));w=~~+xe(p,.5,.8999999761581421,41.0,+(u&255));c[7]=r<<8&65280|v&255|w<<16&16711680|~~+xe(p,.5,.8999999761581421,255.0,+(s&255))<<24;x=c[n>>2]|0;break}else{c[7]=-14079703;x=o;break}}else{c[7]=-14079703;x=o}while(0);do if((x|0)==2){if(+h[f+28952>>3]>0.0){o=b[11]|0;l=(o&65535|0)/-256|0;k=(o&65535)>>>8&65535;if((k|0)>(l|0)){o=((qn()|0)%(1-l+k|0)|0)+l|0;k=c[n>>2]|0;c[1396]=o;if((k|0)!=2){y=0;break}}else{z=l;A=10}}else{z=0;A=10}if((A|0)==10)c[1396]=z;if(+h[f+28952>>3]>0.0){l=b[11]|0;k=(l&65535|0)/-256|0;o=(l&65535)>>>8&65535;if((o|0)>(k|0))y=((qn()|0)%(1-k+o|0)|0)+k|0;else y=k}else y=0}else{c[1396]=0;y=0}while(0);c[1397]=y;Yg(f);Zg(f);_g(f+56112|0);c[1396]=0;c[1397]=0;do if((c[n>>2]|0)==2){if(!(a[f+56268>>0]|0)){y=~~+xe(+h[f+28952>>3],.5,0.0,255.0,0.0);z=c[8]|0;Md(0.0,0.0,+(z&65535|0),+(z>>>16|0),0,y<<24|16777215)|0;break}y=f+28944|0;z=~~+xe(+h[y>>3],2.0,1.0,0.0,192.0);p=+xe(+h[y>>3],2.0,1.5,0.0,255.0);y=c[8]|0;Md(0.0,0.0,+(y&65535|0),+(y>>>16|0),0,z<<24)|0;a[m>>0]=1;c[m+4>>2]=58;c[m+8>>2]=0;z=m+12|0;g[z>>2]=0.0;y=m+16|0;g[y>>2]=0.0;g[m+20>>2]=1.0;g[m+24>>2]=1.0;g[m+28>>2]=0.0;c[m+32>>2]=0;A=m+36|0;c[A>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;x=m+48|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;q=+(Rd(58)|0);g[z>>2]=+(~~(q+ +((e[16]|0)-(e[10]|0)|0)*.5)|0);q=+(Sd(58)|0);g[y>>2]=+(~~(q+ +((e[17]|0)-(e[11]|0)|0)*.5)|0);c[A>>2]=c[A>>2]&16777215|~~p<<24;if(a[m>>0]|0)Oe(m)}while(0);$g(f+56872|0);p=+g[f+57452>>2];if(!(p>0.0)){i=j;return}q=p;m=f+56056|0;n=f+45360|0;do{ah(n,q);n=n+56|0}while(n>>>0<=m>>>0);i=j;return}function Yg(b){b=b|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+336|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;o=f+272|0;p=f+208|0;q=f+144|0;r=f+80|0;if((c[372]|0)==3)bh(b+57008|0);s=b+28920|0;t=+h[s>>3];u=b+28928|0;v=+h[u>>3]-+(((e[11]|0)/6|0)&65535|0);w=c[366]|0;x=c[367]|0;if((x&w|0)>-1){h[k>>3]=t;h[k+8>>3]=v;if((w|0)<=-1)if((x|0)>-1)y=(c[b+4>>2]|0)!=0;else y=0;else y=1;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];ch(b,j,y);z=+((e[11]|0)>>>2&65535|0);y=b+56992|0;Qe(j,+((c[y>>2]|0)+270|0),1.0);A=+h[b+28680>>3]-z*+h[j>>3];B=+h[b+28688>>3]-z*+h[j+8>>3];Qe(m,+((c[y>>2]|0)+270|0),1.0);z=+(((e[17]|0)/6|0)&65535|0);C=B-+h[m+8>>3]*z;h[l>>3]=A-+h[m>>3]*z;h[l+8>>3]=C;c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];ch(b,j,0)}else{h[n>>3]=t;h[n+8>>3]=v;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];dh(b,j)}if((c[367]&c[366]|0)==-1?(n=b+56192|0,+h[n>>3]<+(e[17]<<1|0)):0){l=Rd(32)|0;m=c[8]|0;y=(((m&65535)-(e[10]|0)|0)/2|0)+l|0;v=+h[n>>3];if(!(a[1473]|0))D=v;else D=+(m>>>16|0)-v;v=D;a[o>>0]=1;c[o+4>>2]=32;c[o+8>>2]=0;g[o+12>>2]=+(y|0);g[o+16>>2]=v;g[o+20>>2]=1.0;g[o+24>>2]=1.0;g[o+28>>2]=0.0;c[o+32>>2]=0;c[o+36>>2]=-1;c[o+40>>2]=0;a[o+44>>0]=0;m=o+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;Oe(o);o=(c[33]|0)+256|0;D=+(((d[o>>0]|d[o+1>>0]<<8)&65535)+y|0);if(D<+(e[16]|0)*1.100000023841858){y=p+4|0;o=p+8|0;m=p+12|0;n=p+16|0;l=p+20|0;k=p+24|0;x=p+28|0;w=p+32|0;E=p+36|0;F=p+40|0;G=p+44|0;H=p+48|0;t=D;do{a[p>>0]=1;c[y>>2]=33;c[o>>2]=0;g[m>>2]=t;g[n>>2]=v;g[l>>2]=1.0;g[k>>2]=1.0;g[x>>2]=0.0;c[w>>2]=0;c[E>>2]=-1;c[F>>2]=0;a[G>>0]=0;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;Oe(p);I=(c[33]|0)+264|0;t=+(~~(t+ +((d[I>>0]|d[I+1>>0]<<8)&65535|0)*1.5)|0)}while(t<+(e[16]|0)*1.100000023841858)}}if((c[372]|0)!=6){p=b+31992|0;H=b+28968|0;do{id[c[(c[H>>2]|0)+4>>2]&63](H);H=H+48|0}while(H>>>0<=p>>>0)}if((c[367]&c[366]|0)!=-1){t=+((e[11]|0)>>>2&65535|0);Qe(j,+((c[b+56992>>2]|0)+270|0),1.0);v=+h[b+28680>>3]-t*+h[j>>3];D=+h[b+28688>>3]-t*+h[j+8>>3];a[q>>0]=1;c[q+4>>2]=69;c[q+8>>2]=0;p=q+12|0;g[p>>2]=v;H=q+16|0;g[H>>2]=D;g[q+20>>2]=1.0;g[q+24>>2]=1.0;G=q+28|0;g[G>>2]=0.0;c[q+32>>2]=0;c[q+36>>2]=-1;c[q+40>>2]=0;a[q+44>>0]=0;F=q+48|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;if(a[1473]|0){g[G>>2]=180.0;G=c[8]|0;g[p>>2]=+(G&65535|0)-v;g[H>>2]=+(G>>>16|0)-D}Oe(q)}q=b+28568|0;G=b+8|0;do{if(((a[G+108>>0]|0)!=0?(D=+h[G+16>>3]+ +(c[1397]|0),H=e[17]|0,!(D<+(0-H|0))):0)?!(D>+(H<<1|0)):0){H=c[G+60>>2]|0;ed[c[(c[H>>2]|0)+8>>2]&31](H,G)}G=G+112|0}while(G>>>0<=q>>>0);q=b+34560|0;G=b+32040|0;do{id[c[(c[G>>2]|0)+4>>2]&63](G);G=G+40|0}while(G>>>0<=q>>>0);eh(b);if((c[367]|0)>-1?!(+h[u>>3]>+(e[17]|0)*1.5):0){q=b+56776|0;G=b+56272|0;do{c[j>>2]=c[s>>2];c[j+4>>2]=c[s+4>>2];c[j+8>>2]=c[s+8>>2];c[j+12>>2]=c[s+12>>2];fh(G,j);G=G+56|0}while(G>>>0<=q>>>0)}D=+h[s>>3]+0.0;v=+h[u>>3]+ +(((e[11]|0)/20|0)&65535|0);a[r>>0]=1;c[r+4>>2]=17;c[r+8>>2]=0;u=r+12|0;g[u>>2]=D;s=r+16|0;g[s>>2]=v;g[r+20>>2]=1.0;g[r+24>>2]=1.0;q=r+28|0;g[q>>2]=0.0;c[r+32>>2]=0;c[r+36>>2]=-1;c[r+40>>2]=0;a[r+44>>0]=0;G=r+48|0;c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[G+12>>2]=0;if(!(a[1473]|0)){Oe(r);i=f;return}g[q>>2]=180.0;q=c[8]|0;g[u>>2]=+(q&65535|0)-D;g[s>>2]=+(q>>>16|0)-v;Oe(r);i=f;return}function Zg(b){b=b|0;var d=0,f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;d=i;i=i+272|0;f=d+260|0;j=d+256|0;k=d+192|0;l=d+128|0;m=d+64|0;n=d;if((c[367]|0)<=-1){c[j>>2]=18;o=c[b+28960>>2]|0;p=Rd(18)|0;q=Sd(18)|0;c[f>>2]=c[j>>2];Ne(f,o,p,q,-1,1.0);i=d;return}if(!(+h[b+28720>>3]<=+h[b+28824>>3])){a[m>>0]=1;c[m+4>>2]=30;c[m+8>>2]=0;b=m+12|0;g[b>>2]=0.0;q=m+16|0;g[q>>2]=0.0;g[m+20>>2]=1.0;g[m+24>>2]=1.0;g[m+28>>2]=0.0;c[m+32>>2]=0;c[m+36>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;p=m+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;r=+(Rd(30)|0);g[b>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*0.0)|0);r=+(Sd(30)|0);g[q>>2]=+(~~(r+ +((e[17]|0)-(e[11]|0)|0)*0.0)|0);if(a[m>>0]|0)Oe(m);a[n>>0]=1;c[n+4>>2]=31;c[n+8>>2]=0;m=n+12|0;g[m>>2]=0.0;q=n+16|0;g[q>>2]=0.0;g[n+20>>2]=1.0;g[n+24>>2]=1.0;g[n+28>>2]=0.0;c[n+32>>2]=0;c[n+36>>2]=-1;c[n+40>>2]=0;a[n+44>>0]=0;b=n+48|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;r=+(Rd(31)|0);g[m>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*0.0)|0);r=+(Sd(31)|0);g[q>>2]=+(~~(r+ +((e[17]|0)-(e[11]|0)|0)*0.0)|0);if(!(a[n>>0]|0)){i=d;return}Oe(n);i=d;return}else{a[k>>0]=1;c[k+4>>2]=28;c[k+8>>2]=0;n=k+12|0;g[n>>2]=0.0;q=k+16|0;g[q>>2]=0.0;g[k+20>>2]=1.0;g[k+24>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+36>>2]=-1;c[k+40>>2]=0;a[k+44>>0]=0;m=k+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;r=+(Rd(28)|0);g[n>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*0.0)|0);r=+(Sd(28)|0);g[q>>2]=+(~~(r+ +((e[17]|0)-(e[11]|0)|0)*0.0)|0);if(a[k>>0]|0)Oe(k);a[l>>0]=1;c[l+4>>2]=29;c[l+8>>2]=0;k=l+12|0;g[k>>2]=0.0;q=l+16|0;g[q>>2]=0.0;g[l+20>>2]=1.0;g[l+24>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;c[l+36>>2]=-1;c[l+40>>2]=0;a[l+44>>0]=0;n=l+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;r=+(Rd(29)|0);g[k>>2]=+(~~(r+ +((e[16]|0)-(e[10]|0)|0)*0.0)|0);r=+(Sd(29)|0);g[q>>2]=+(~~(r+ +((e[17]|0)-(e[11]|0)|0)*0.0)|0);if(!(a[l>>0]|0)){i=d;return}Oe(l);i=d;return}}function _g(b){b=b|0;var d=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;d=i;i=i+256|0;f=d+192|0;h=d+128|0;j=d+64|0;k=d;if(!(a[b+64>>0]|0)){l=c[b>>2]|0;m=c[b+4>>2]|0;n=+g[b+8>>2];o=+g[b+12>>2];if((m|0)==-1){p=o;q=n}else{r=l&65535;s=n+ +(Rd(r)|0);n=s+ +((m|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);s=o+ +(Sd(r)|0);p=s+ +((m|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);q=n}a[k>>0]=1;c[k+4>>2]=l;c[k+8>>2]=0;g[k+12>>2]=+(~~q|0);g[k+16>>2]=+(~~p|0);g[k+20>>2]=1.0;g[k+24>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+36>>2]=-1;a[k+44>>0]=0;l=k+48|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[k+40>>2]=2147483647;Oe(k);i=d;return}k=c[8]|0;Md(0.0,0.0,+(k&65535|0),+(k>>>16|0),0,-536870912)|0;k=c[b+16>>2]|0;l=c[b+20>>2]|0;p=+g[b+24>>2];q=+g[b+28>>2];if((l|0)==-1){t=q;u=p}else{m=k&65535;n=p+ +(Rd(m)|0);p=n+ +((l|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);n=q+ +(Sd(m)|0);t=n+ +((l|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);u=p}a[f>>0]=1;c[f+4>>2]=k;c[f+8>>2]=0;g[f+12>>2]=+(~~u|0);g[f+16>>2]=+(~~t|0);g[f+20>>2]=1.0;g[f+24>>2]=1.0;g[f+28>>2]=0.0;c[f+32>>2]=0;c[f+36>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;k=f+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;Oe(f);f=c[b+32>>2]|0;k=c[b+36>>2]|0;t=+g[b+40>>2];u=+g[b+44>>2];if((k|0)==-1){v=u;w=t}else{l=f&65535;p=t+ +(Rd(l)|0);t=p+ +((k|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);p=u+ +(Sd(l)|0);v=p+ +((k|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);w=t}a[h>>0]=1;c[h+4>>2]=f;c[h+8>>2]=0;g[h+12>>2]=+(~~w|0);g[h+16>>2]=+(~~v|0);g[h+20>>2]=1.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;a[h+44>>0]=0;f=h+48|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[h+36>>2]=-8421505;c[h+40>>2]=-1;Oe(h);h=c[b+48>>2]|0;f=c[b+52>>2]|0;v=+g[b+56>>2];w=+g[b+60>>2];if((f|0)==-1){x=w;y=v}else{b=h&65535;t=v+ +(Rd(b)|0);v=t+ +((f|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);t=w+ +(Sd(b)|0);x=t+ +((f|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);y=v}a[j>>0]=1;c[j+4>>2]=h;c[j+8>>2]=0;g[j+12>>2]=+(~~y|0);g[j+16>>2]=+(~~x|0);h=j+20|0;g[h>>2]=1.0;f=j+24|0;g[f>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;b=j+40|0;c[b>>2]=0;a[j+44>>0]=0;k=j+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;x=+we(+(c[26]|0),0.0,60.0,.9800000190734863,1.0700000524520874);g[f>>2]=x;g[h>>2]=x;c[b>>2]=2147483647;if(!(a[j>>0]|0)){i=d;return}Oe(j);i=d;return}function $g(b){b=b|0;var d=0,f=0,h=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0,J=0.0,K=0,L=0.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;d=i;i=i+256|0;f=d+192|0;h=d+128|0;j=d+64|0;l=d;m=b+4|0;n=+g[m>>2];if(!(n>=1.0)){o=+xe(n,0.0,1.0,0.0,.7408000230789185);do if(!(o<.35350000858306885)){if(o<.7408000230789185){n=o+-.5471900105476379;p=1.2999999523162842-n*n*8.0;break}if(o<.9643999934196472){n=o+-.8525999784469604;p=n*n*8.0+.8999999761581421}else p=1.0}else p=o*o*8.0;while(0);if(!(o>=.35350000858306885))q=p;else{o=(p+-1.0)*.5;q=(o>0.0?o:-o)+1.0}}else q=1.0;r=c[b+12>>2]|0;s=c[b+16>>2]|0;o=+g[b+20>>2];p=+g[b+24>>2];if((s|0)==-1){t=p;u=o}else{v=r&65535;n=o+ +(Rd(v)|0);o=n+ +((s|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);n=p+ +(Sd(v)|0);t=n+ +((s|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);u=o}a[f>>0]=1;c[f+4>>2]=r;c[f+8>>2]=0;g[f+12>>2]=+(~~u|0);g[f+16>>2]=+(~~t|0);r=f+20|0;g[r>>2]=1.0;s=f+24|0;g[s>>2]=1.0;g[f+28>>2]=0.0;c[f+32>>2]=0;c[f+36>>2]=-1;v=f+40|0;c[v>>2]=0;a[f+44>>0]=0;w=f+48|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;if(!(a[b>>0]|0))x=0;else x=+g[m>>2]>.9?-8421505:0;c[v>>2]=x;g[s>>2]=q;g[r>>2]=q;Oe(f);f=c[b+60>>2]|0;r=c[b+64>>2]|0;t=+g[b+68>>2];u=+g[b+72>>2];if((r|0)==-1){y=u;z=t}else{s=f&65535;o=t+ +(Rd(s)|0);t=o+ +((r|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);o=u+ +(Sd(s)|0);y=o+ +((r|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);z=t}a[h>>0]=1;c[h+4>>2]=f;c[h+8>>2]=0;g[h+12>>2]=+(~~z|0);g[h+16>>2]=+(~~y|0);f=h+20|0;g[f>>2]=1.0;r=h+24|0;g[r>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;c[h+36>>2]=-1;s=h+40|0;c[s>>2]=0;a[h+44>>0]=0;x=h+48|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;if(!(a[b>>0]|0))A=0;else A=+g[m>>2]>.9?-8421505:0;c[s>>2]=A;g[r>>2]=q;g[f>>2]=q;Oe(h);if(+g[m>>2]<1.0){m=b+8|0;if(!(+g[m>>2]<=0.0))B=m;else{h=c[b+28>>2]|0;f=c[b+32>>2]|0;y=+g[b+36>>2];z=+g[b+40>>2];if((f|0)==-1){C=z;D=y}else{r=h&65535;t=y+ +(Rd(r)|0);y=t+ +((f|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);t=z+ +(Sd(r)|0);C=t+ +((f|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);D=y}a[j>>0]=1;c[j+4>>2]=h;c[j+8>>2]=0;g[j+12>>2]=+(~~D|0);g[j+16>>2]=+(~~C|0);g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;c[j+40>>2]=0;a[j+44>>0]=0;h=j+48|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;g[j+24>>2]=q;g[j+20>>2]=q;Oe(j);B=m}}else{m=b+44|0;j=c[m>>2]&65535;h=b+48|0;C=+g[b+52>>2];if((c[h>>2]|0)!=-1){D=C+ +(Rd(j)|0);f=c[h>>2]|0;r=~~(D+ +((f|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0));D=+g[b+56>>2];if((f|0)==-1){E=r;F=D}else{y=D+ +(Sd(c[m>>2]&65535)|0);E=r;F=y+ +((c[h>>2]|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0)}}else{E=~~C;F=+g[b+56>>2]}h=b+8|0;Kd(j,E,~~F,0,90.0,-+xe(+g[h>>2],0.0,5.0,360.0,0.0),1.0,0)|0;B=h}h=~~+Z(+(+g[B>>2]));B=(c[b+76>>2]|0)+h|0;h=c[b+80>>2]|0;F=+g[b+84>>2];E=c[b+88>>2]|0;if((h|0)==-1){G=(c[k>>2]=E,+g[k>>2]);H=F;I=~~H;J=+(I|0);K=~~G;L=+(K|0);a[l>>0]=1;M=l+4|0;c[M>>2]=B;N=l+8|0;c[N>>2]=0;O=l+12|0;g[O>>2]=J;P=l+16|0;g[P>>2]=L;Q=l+20|0;R=l+24|0;S=l+28|0;g[S>>2]=0.0;T=l+32|0;c[T>>2]=0;U=l+36|0;c[U>>2]=-1;V=l+40|0;c[V>>2]=0;W=l+44|0;a[W>>0]=0;X=l+48|0;c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;c[X+12>>2]=0;g[R>>2]=q;g[Q>>2]=q;Oe(l);i=d;return}else{b=B&65535;j=Rd(b)|0;C=(c[k>>2]=E,+g[k>>2]);y=F+ +(j|0)+ +((h|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);F=C+ +(Sd(b)|0);G=F+ +((h|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);H=y;I=~~H;J=+(I|0);K=~~G;L=+(K|0);a[l>>0]=1;M=l+4|0;c[M>>2]=B;N=l+8|0;c[N>>2]=0;O=l+12|0;g[O>>2]=J;P=l+16|0;g[P>>2]=L;Q=l+20|0;R=l+24|0;S=l+28|0;g[S>>2]=0.0;T=l+32|0;c[T>>2]=0;U=l+36|0;c[U>>2]=-1;V=l+40|0;c[V>>2]=0;W=l+44|0;a[W>>0]=0;X=l+48|0;c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;c[X+12>>2]=0;g[R>>2]=q;g[Q>>2]=q;Oe(l);i=d;return}}function ah(b,d){b=b|0;d=+d;var f=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+64|0;j=f;k=+h[b>>3]+ +h[b+16>>3]*d;l=+h[b+8>>3]+ +h[b+24>>3]*d+ +(e[10]<<1|0)*d*d;m=+h[b+40>>3]-d*.5;a[j>>0]=1;c[j+4>>2]=34;c[j+8>>2]=0;n=j+12|0;g[n>>2]=k;o=j+16|0;g[o>>2]=l;p=j+28|0;g[p>>2]=0.0;c[j+32>>2]=0;q=j+36|0;c[j+40>>2]=0;a[j+44>>0]=0;r=j+48|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;r=c[b+32>>2]|0;c[j+24>>2]=r;c[j+20>>2]=r;c[q>>2]=c[b+52>>2];b=~~(+xe(m,0.0,.25,0.0,1.0)*255.0);c[q>>2]=c[q>>2]&16777215|((b|0)<0?0:(b|0)>255?-16777216:b<<24);if(a[1473]|0){g[p>>2]=+g[p>>2]+180.0;p=c[8]|0;g[n>>2]=+(p&65535|0)-+g[n>>2];g[o>>2]=+(p>>>16|0)-+g[o>>2]}if(!(a[j>>0]|0)){i=f;return}Oe(j);i=f;return}function bh(d){d=d|0;var f=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.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0;f=i;i=i+80|0;j=f;k=f+16|0;l=d+404|0;Qe(j,+(c[l>>2]|0),+(((e[10]|0)/10|0)&65535|0));m=d+384|0;n=d+416|0;o=j+8|0;p=k+4|0;q=k+8|0;r=k+12|0;s=k+16|0;t=k+20|0;u=k+24|0;v=k+28|0;w=k+32|0;x=k+36|0;y=k+40|0;z=k+44|0;A=k+48|0;B=0;C=d;while(1){d=c[8]|0;D=+h[C>>3]-+(d>>>1&32767|0);E=C+8|0;F=+h[E>>3]-+(d>>>17|0);G=+O(+(D*D+F*F));F=+(B|0)*.699999988079071+ +h[n>>3]*.5;D=+R(+(F*360.0*6.283/360.0));H=+we(F,0.0,1.0,-1.0,1.0);F=+h[C>>3]-+h[j>>3]*H;I=+h[E>>3]-H*+h[o>>3];a[k>>0]=1;c[p>>2]=86;c[q>>2]=0;g[r>>2]=F;g[s>>2]=I;g[t>>2]=1.0;g[u>>2]=1.0;g[v>>2]=0.0;c[w>>2]=0;c[x>>2]=-1;c[y>>2]=0;a[z>>0]=0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;E=b[16]|0;I=+xe(G,+(E&65535),+((E&65535)>>>2&65535|0),.800000011920929,.10000000149011612);g[u>>2]=I;g[t>>2]=I;g[v>>2]=+((c[l>>2]|0)+-90|0);E=~~((D<0.0?0.0:D>1.0?1.0:D)*+xe(G,+(e[16]|0),0.0,.10000000149011612,.009999999776482582)*255.0);c[x>>2]=c[x>>2]&16777215|((E|0)<0?0:(E|0)>255?-16777216:E<<24);if(a[k>>0]|0)Oe(k);C=C+16|0;if(C>>>0>m>>>0)break;else B=B+1|0}i=f;return}function ch(f,j,k){f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;l=i;i=i+256|0;m=l+16|0;n=l+240|0;o=l+224|0;p=l;q=l+160|0;r=l+96|0;s=l+32|0;t=j+8|0;u=+h[t>>3];v=b[11]|0;w=v&65535;if(u<+(0-w|0)){i=l;return}if(u>+(w<<1|0)){i=l;return}if(!(a[1473]|0))x=u;else{y=+(e[17]|0)-u;h[t>>3]=y;x=y}z=c[367]|0;if((z|0)>-1?(c[f+4>>2]|0)==0:0){A=(w|0)/-512|0;w=(v&65535)>>>9&65535;if((w|0)>(A|0)){B=((qn()|0)%(1-A+w|0)|0)+A|0;C=B;D=b[11]|0}else{C=A;D=v}v=(D&65535|0)/-512|0;A=(D&65535)>>>9&65535;if((A|0)>(v|0))E=((qn()|0)%(1-v+A|0)|0)+v|0;else E=v;y=+(E|0)+x;h[j>>3]=+(C|0)+ +h[j>>3];h[t>>3]=y;F=c[367]|0;G=y}else{F=z;G=x}z=c[366]|0;t=((c[372]|0)==2?-99:1)+((z|0)>-1?z:F)|0;c[n>>2]=-1;c[n+4>>2]=-1;c[n+8>>2]=-1;c[n+12>>2]=-1;c[o>>2]=c[1880];c[o+4>>2]=c[1881];c[o+8>>2]=c[1882];c[o+12>>2]=c[1883];z=(F|0)>-1?(k?o:n):k?c[58267]|0:n;n=~~(+h[f+56184>>3]/.4000000059604645);k=Sd(59)|0;o=k-(Sd(38)|0)|0;x=+h[j>>3];h[p>>3]=x+0.0;h[p+8>>3]=+((o|0)/-2|0|0)+G;c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];c[m+12>>2]=c[p+12>>2];ih(f,m,z);m=(c[33]|0)+472|0;y=x-+((d[m>>0]|d[m+1>>0]<<8)&65535|0);u=G+ +((o|0)/2|0|0);a[q>>0]=1;c[q+4>>2]=59;g[q+12>>2]=y;g[q+16>>2]=u;g[q+20>>2]=1.0;g[q+24>>2]=1.0;g[q+28>>2]=0.0;c[q+32>>2]=0;o=q+36|0;c[o>>2]=-1;c[q+40>>2]=0;a[q+44>>0]=0;m=q+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[q+8>>2]=((t|0)/100|0|0)%10|0;c[o>>2]=c[z+(((n+1|0)%4|0)<<2)>>2];Oe(q);a[r>>0]=1;c[r+4>>2]=59;g[r+12>>2]=x;g[r+16>>2]=u;g[r+20>>2]=1.0;g[r+24>>2]=1.0;g[r+28>>2]=0.0;c[r+32>>2]=0;q=r+36|0;c[q>>2]=-1;c[r+40>>2]=0;a[r+44>>0]=0;o=r+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[r+8>>2]=((t|0)/10|0|0)%10|0;c[q>>2]=c[z+(((n+2|0)%4|0)<<2)>>2];Oe(r);r=(c[33]|0)+472|0;y=x+ +((d[r>>0]|d[r+1>>0]<<8)&65535|0);a[s>>0]=1;c[s+4>>2]=59;g[s+12>>2]=y;g[s+16>>2]=u;g[s+20>>2]=1.0;g[s+24>>2]=1.0;g[s+28>>2]=0.0;c[s+32>>2]=0;r=s+36|0;c[r>>2]=-1;c[s+40>>2]=0;a[s+44>>0]=0;q=s+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[s+8>>2]=(t|0)%10|0;c[r>>2]=c[z+(((n+3|0)%4|0)<<2)>>2];Oe(s);i=l;return}function dh(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;f=i;i=i+192|0;j=f+128|0;k=f+64|0;l=f;m=+h[b+56184>>3]*120.0;n=+h[d>>3];b=d+8|0;o=+h[b>>3];if(!(a[1473]|0))p=o;else{q=+(e[17]|0)-o;h[b>>3]=q;p=q}q=+(Rd(137)|0);o=+(Sd(137)|0)+p;r=+(Rd(136)|0);s=o-+(Sd(136)|0);a[j>>0]=1;c[j+4>>2]=137;c[j+8>>2]=0;g[j+12>>2]=q+n-r;g[j+16>>2]=s;g[j+20>>2]=1.0;g[j+24>>2]=1.0;c[j+32>>2]=0;c[j+36>>2]=-1;c[j+40>>2]=0;a[j+44>>0]=0;b=j+48|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;g[j+28>>2]=m;Oe(j);s=+(Rd(138)|0);r=+(Sd(138)|0)+p;q=+(Rd(136)|0);o=r-+(Sd(136)|0);a[k>>0]=1;c[k+4>>2]=138;c[k+8>>2]=0;g[k+12>>2]=s+n-q;g[k+16>>2]=o;g[k+20>>2]=1.0;g[k+24>>2]=1.0;c[k+32>>2]=0;c[k+36>>2]=-1;c[k+40>>2]=0;a[k+44>>0]=0;j=k+48|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;g[k+28>>2]=-m;Oe(k);a[l>>0]=1;c[l+4>>2]=35;c[l+8>>2]=0;g[l+12>>2]=n;g[l+16>>2]=p;g[l+20>>2]=1.0;g[l+24>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;c[l+36>>2]=-1;c[l+40>>2]=0;a[l+44>>0]=0;k=l+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;Oe(l);i=f;return}function eh(b){b=b|0;var d=0,e=0,f=0,j=0.0,k=0.0,l=0,m=0;d=i;i=i+64|0;e=d;f=b+28712|0;if(a[b+28793>>0]|0){if((c[b+4>>2]|0)==3?(j=+h[b+28712>>3],k=+h[b+28720>>3],a[e>>0]=1,c[e+4>>2]=16,c[e+8>>2]=0,g[e+12>>2]=j,g[e+16>>2]=k,g[e+20>>2]=1.0,g[e+24>>2]=1.0,g[e+28>>2]=0.0,c[e+32>>2]=0,l=e+36|0,c[l>>2]=-1,c[e+40>>2]=0,a[e+44>>0]=0,m=e+48|0,c[m>>2]=0,c[m+4>>2]=0,c[m+8>>2]=0,c[m+12>>2]=0,k=+we(+h[b+56184>>3],0.0,1.0,0.0,1.2000000476837158),m=k<0.0?0:k>1.0?255:~~(k*255.0),c[l>>2]=c[l>>2]&16777215|((m|0)<0?0:(m|0)>255?-16777216:m<<24),(a[e>>0]|0)!=0):0)Oe(e);gh(f)}if((c[b+56264>>2]|0)>1?(a[b+28897>>0]|0)!=0:0)gh(b+28816|0);f=b+45304|0;e=b+34608|0;do{hh(e);e=e+56|0}while(e>>>0<=f>>>0);i=d;return}function fh(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;f=i;i=i+128|0;j=f+64|0;k=f;l=+we(+h[b+16>>3]+ +g[b+24>>2]*+(c[26]|0)/60.0,0.0,1.0,-1.0,2.0);m=c[b+32>>2]|0;n=+h[d>>3];o=+h[d+8>>3];d=b+8|0;p=n+0.0+ +h[b>>3];q=+h[d>>3]+(o+(l<-1.0?-1.0:l>0.0?0.0:l)*+(((e[10]|0)/12|0)&65535|0));a[j>>0]=1;c[j+4>>2]=m;c[j+8>>2]=0;g[j+12>>2]=p;g[j+16>>2]=q;g[j+20>>2]=1.0;g[j+24>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+40>>2]=0;a[j+44>>0]=0;m=j+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[j+36>>2]=c[b+40>>2];Oe(j);if(((c[b+36>>2]|0)%5|0|0)!=2){i=f;return}q=+g[b+48>>2]+-.5;p=+xe(q>0.0?q:-q,.5,.4000000059604645,0.0,1.0);j=c[b+28>>2]|0;q=+(c[b+44>>2]|0)+n+ +h[b>>3];n=+((e[10]|0|0)/-6|0|0)+o+ +h[d>>3];a[k>>0]=1;c[k+4>>2]=j;c[k+8>>2]=0;g[k+12>>2]=q;g[k+16>>2]=n;g[k+20>>2]=1.0;g[k+24>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+40>>2]=0;a[k+44>>0]=0;j=k+48|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;j=~~(p*255.0);c[k+36>>2]=(j|0)<0?16777215:(j|0)>255?-1:j<<24|16777215;Oe(k);i=f;return}function gh(b){b=b|0;var d=0,e=0,f=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0.0,A=0.0,B=0.0;d=i;i=i+64|0;e=d;f=b+76|0;j=c[f>>2]|0;k=c[224064+(j*44|0)+40>>2]|0;l=+h[b>>3];m=+h[b+8>>3];a[e>>0]=1;c[e+4>>2]=k;c[e+8>>2]=0;k=e+12|0;g[k>>2]=l;n=e+16|0;g[n>>2]=m;o=e+20|0;g[o>>2]=1.0;p=e+24|0;g[p>>2]=1.0;q=e+28|0;g[q>>2]=0.0;c[e+32>>2]=0;r=e+36|0;c[r>>2]=-1;c[e+40>>2]=0;a[e+44>>0]=0;s=e+48|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;s=c[b+24>>2]|0;t=c[b+28>>2]|0;if((s|0)==(t|0)){u=s;v=j}else{m=+g[b+32>>2];l=+g[b+36>>2];j=~~+xe(m,0.0,l,+(s&255),+(t&255));w=~~+xe(m,0.0,l,+(s>>>8&255),+(t>>>8&255));x=+xe(m,0.0,l,+(s>>>16&255),+(t>>>16&255));y=w<<8&65280|j&255|~~x<<16&16711680|~~+xe(m,0.0,l,+(s>>>24&255),+(t>>>24&255))<<24;u=y;v=c[f>>2]|0}c[r>>2]=u;if(!v)z=0.0;else z=+h[b+40>>3]*-180.0;g[q>>2]=z;if(a[1473]|0){g[q>>2]=z+180.0;q=c[8]|0;g[k>>2]=+(q&65535|0)-+g[k>>2];g[n>>2]=+(q>>>16|0)-+g[n>>2]}z=+g[b+84>>2];if(!(z<=.009999999776482582)){l=1.0-z;do if(!(l<.35350000858306885)){if(l<.7408000230789185){z=l+-.5471900105476379;A=1.2999999523162842-z*z*8.0;break}if(l<.9643999934196472){z=l+-.8525999784469604;A=z*z*8.0+.8999999761581421}else A=1.0}else A=l*l*8.0;while(0);B=1.5-A*.5}else B=1.0;g[p>>2]=B;g[o>>2]=B;c[r>>2]=u&16777215|((a[b+80>>0]|0)!=0?2130706432:-16777216);if(!(a[e>>0]|0)){i=d;return}Oe(e);i=d;return}function hh(b){b=b|0;var d=0,e=0,f=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0;d=i;i=i+64|0;e=d;f=+h[b+40>>3];if(f<=0.0){i=d;return}if(+g[b+48>>2]>0.0){i=d;return}j=+h[b>>3];k=+h[b+8>>3];a[e>>0]=1;c[e+4>>2]=34;c[e+8>>2]=0;l=e+12|0;g[l>>2]=j;m=e+16|0;g[m>>2]=k;n=e+28|0;g[n>>2]=0.0;c[e+32>>2]=0;o=e+36|0;c[e+40>>2]=0;a[e+44>>0]=0;p=e+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=c[b+32>>2]|0;c[e+24>>2]=p;c[e+20>>2]=p;c[o>>2]=c[b+52>>2];b=~~(+xe(f,0.0,.25,0.0,1.0)*255.0);c[o>>2]=c[o>>2]&16777215|((b|0)<0?0:(b|0)>255?-16777216:b<<24);if(a[1473]|0){g[n>>2]=+g[n>>2]+180.0;n=c[8]|0;g[l>>2]=+(n&65535|0)-+g[l>>2];g[m>>2]=+(n>>>16|0)-+g[m>>2]}if(!(a[e>>0]|0)){i=d;return}Oe(e);i=d;return}function ih(b,d,f){b=b|0;d=d|0;f=f|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.0,x=0.0,y=0.0,z=0;j=i;i=i+560|0;k=j+32|0;l=j+496|0;m=j+432|0;n=j+368|0;o=j+304|0;p=j+240|0;q=j+176|0;r=j+112|0;s=j+16|0;t=j;u=j+48|0;v=b+56184|0;w=+h[v>>3];b=~~(w/.4000000059604645);switch(c[372]|0){case 1:{x=+h[d>>3];y=+h[d+8>>3];a[l>>0]=1;c[l+4>>2]=38;c[l+8>>2]=0;g[l+12>>2]=x;g[l+16>>2]=y;g[l+20>>2]=1.0;g[l+24>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;c[l+40>>2]=0;a[l+44>>0]=0;z=l+48|0;c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;c[z+12>>2]=0;c[l+36>>2]=c[f+(((b|0)%4|0)<<2)>>2];Oe(l);i=j;return}case 4:{y=+h[d>>3];x=+h[d+8>>3];a[m>>0]=1;c[m+4>>2]=39;c[m+8>>2]=0;g[m+12>>2]=y;g[m+16>>2]=x;g[m+20>>2]=1.0;g[m+24>>2]=1.0;g[m+28>>2]=0.0;c[m+32>>2]=0;c[m+40>>2]=0;a[m+44>>0]=0;l=m+48|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[m+36>>2]=c[f+(((b|0)%4|0)<<2)>>2];Oe(m);i=j;return}case 2:{x=+h[d>>3];y=+h[d+8>>3];a[n>>0]=1;c[n+4>>2]=40;c[n+8>>2]=0;g[n+12>>2]=x;g[n+16>>2]=y;g[n+20>>2]=1.0;m=n+24|0;g[m>>2]=1.0;g[n+28>>2]=0.0;c[n+32>>2]=0;c[n+40>>2]=0;a[n+44>>0]=0;l=n+48|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[n+36>>2]=c[f>>2];y=+we(w,0.0,2.0,-2.0,2.0);g[m>>2]=y<-1.0?-1.0:y>1.0?1.0:y;if(!(a[n>>0]|0)){i=j;return}Oe(n);i=j;return}case 6:{y=+h[d>>3];w=+h[d+8>>3];a[o>>0]=1;c[o+4>>2]=43;c[o+8>>2]=0;g[o+12>>2]=y;g[o+16>>2]=w;g[o+20>>2]=1.0;g[o+24>>2]=1.0;g[o+28>>2]=0.0;c[o+32>>2]=0;c[o+40>>2]=0;a[o+44>>0]=0;n=o+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[o+36>>2]=c[f+(((b|0)%4|0)<<2)>>2];Oe(o);i=j;return}case 5:{w=+h[d>>3];y=+h[d+8>>3];a[p>>0]=1;c[p+4>>2]=41;c[p+8>>2]=0;g[p+12>>2]=w;g[p+16>>2]=y;g[p+20>>2]=1.0;g[p+24>>2]=1.0;g[p+28>>2]=0.0;c[p+32>>2]=0;c[p+36>>2]=-1;c[p+40>>2]=0;a[p+44>>0]=0;o=p+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;Oe(p);x=+h[v>>3];a[q>>0]=1;c[q+4>>2]=42;c[q+8>>2]=0;g[q+12>>2]=w;g[q+16>>2]=y;g[q+20>>2]=1.0;g[q+24>>2]=1.0;g[q+28>>2]=0.0;c[q+32>>2]=0;p=q+36|0;c[p>>2]=-1;c[q+40>>2]=0;a[q+44>>0]=0;o=q+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;y=+we(x,0.0,2.0,0.0,1.5);o=y<0.0?0:y>1.0?255:~~(y*255.0);c[p>>2]=c[p>>2]&16777215|((o|0)<0?0:(o|0)>255?-16777216:o<<24);if(!(a[q>>0]|0)){i=j;return}Oe(q);i=j;return}case 3:{y=+h[d>>3];x=+h[d+8>>3];a[r>>0]=1;c[r+4>>2]=44;c[r+8>>2]=0;g[r+12>>2]=y;g[r+16>>2]=x;g[r+20>>2]=1.0;g[r+24>>2]=1.0;g[r+28>>2]=0.0;c[r+32>>2]=0;c[r+40>>2]=0;a[r+44>>0]=0;q=r+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[r+36>>2]=c[f+(((b|0)%4|0)<<2)>>2];Oe(r);r=(Sd(59)|0)-(Sd(38)|0)|0;q=(e[10]|0)>>>2&65535;w=+(r|0)+x;h[s>>3]=y+ +(0-q|0);h[s+8>>3]=w;x=+h[v>>3];c[k>>2]=c[s>>2];c[k+4>>2]=c[s+4>>2];c[k+8>>2]=c[s+8>>2];c[k+12>>2]=c[s+12>>2];Dg(k,x,90.0,1.0);h[t>>3]=+(q|0)+y;h[t+8>>3]=w;w=+h[v>>3];c[k>>2]=c[t>>2];c[k+4>>2]=c[t+4>>2];c[k+8>>2]=c[t+8>>2];c[k+12>>2]=c[t+12>>2];Dg(k,w,90.0,1.0);i=j;return}default:{w=+h[d>>3];y=+h[d+8>>3];a[u>>0]=1;c[u+4>>2]=38;c[u+8>>2]=0;g[u+12>>2]=w;g[u+16>>2]=y;g[u+20>>2]=1.0;g[u+24>>2]=1.0;g[u+28>>2]=0.0;c[u+32>>2]=0;c[u+40>>2]=0;a[u+44>>0]=0;d=u+48|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[u+36>>2]=c[f+(((b|0)%4|0)<<2)>>2];Oe(u);i=j;return}}}function jh(d,e){d=d|0;e=+e;var f=0,g=0;if(!(a[1474]|0)){f=d+64|0;if(!(a[f>>0]|0)){if(!(sh(d,8,0.0,0.0)|0)?(b[2908]&4096)==0:0)return;a[f>>0]=1;return}else g=f}else{a[1474]=0;f=d+64|0;a[f>>0]=1;g=f}if(!(sh(d+48|0,8,0.0,0.0)|0)?(b[2908]&4096)==0:0){if(!(sh(d+32|0,8,0.0,0.0)|0))return;do switch(c[372]|0){case 0:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 8:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 1:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 2:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 4:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 3:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 9:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 10:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}case 11:{if((c[101]|0)==1)return;c[101]=1;Wd(250);return}default:return}while(0)}a[g>>0]=0;return}function kh(d,e){d=d|0;e=+e;var f=0,i=0,j=0.0,k=0,l=0;f=d+92|0;if((c[f>>2]|0)==1){i=d+96|0;h[i>>3]=+h[i>>3]-e;if(a[1453]|0){a[d>>0]=0;c[f>>2]=2;a[1453]=0;return}if(a[1454]|0){a[d>>0]=0;c[f>>2]=3;a[1454]=0;return}if(!(sh(d+60|0,8,0.0,0.0)|0))return;qg(1);a[d>>0]=0;c[f>>2]=3;return}do if(a[d>>0]|0){i=d+4|0;j=e*2.0+ +g[i>>2];g[i>>2]=j;if(!(j>=1.0))k=i;else{l=d+8|0;j=+g[l>>2]-e;g[l>>2]=j;if(j<0.0){g[l>>2]=0.0;a[d>>0]=0;c[f>>2]=3;k=i;break}if(!(sh(d+60|0,8,0.0,0.0)|0)?(b[2908]&4096)==0:0){if(sh(d+12|0,8,0.0,0.0)|0){qg(1);c[f>>2]=1;a[240203]=0;a[1452]=0;a[1453]=1;c[1851]=5;c[1852]=4;k=i;break}if(!(fe(8)|0)){k=i;break}qg(1);a[d>>0]=0;c[f>>2]=3;k=i;break}qg(1);a[d>>0]=0;c[f>>2]=3;k=i}}else{i=d+4|0;g[i>>2]=+g[i>>2]-e*4.0;k=i}while(0);e=+g[k>>2];g[k>>2]=e<0.0?0.0:e>1.0?1.0:e;return}function lh(a,b,d){a=a|0;b=b|0;d=+d;var f=0.0,i=0.0,j=0.0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];g[a+48>>2]=d;h[a+40>>3]=+xe(+((qn()|0)&32767|0)/32767.0,0.0,1.0,0.0,.5)+1.0;g[a+32>>2]=+xe(+((qn()|0)&32767|0)/32767.0,0.0,1.0,.10000000149011612,.5);d=+(e[10]|0|0)*1.5;f=+(((qn()|0)<<1&2^2)+-1|0);i=+((qn()|0)&32767|0)/32767.0*f;f=+(((qn()|0)<<1&2^2)+-1|0);j=d*(+((qn()|0)&32767|0)/32767.0*f);h[a+16>>3]=d*i;h[a+24>>3]=j;b=(qn()|0)%4|0;c[a+52>>2]=c[(c[58267]|0)+(b<<2)>>2];return}function mh(a){a=a|0;var f=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0;g[a+48>>2]=0.0;g[a+52>>2]=+xe(+((qn()|0)&32767|0)/32767.0,0.0,1.0,.5,.699999988079071);f=a+28|0;i=a+44|0;while(1){c[f>>2]=((qn()|0)%9|0)+75;j=+((qn()|0)%3|0|0);k=e[16]|0;l=~~+xe(j,0.0,2.0,+(0-k|0)*.07500000298023224,+(k|0)*.07500000298023224);c[i>>2]=l;k=b[16]|0;j=+(l|0)+(+h[a>>3]+ +((k&65535)>>>1&65535|0));l=c[f>>2]&65535;m=c[33]|0;n=m+(l<<3)+4|0;o=(d[n>>0]|d[n+1>>0]<<8)<<16>>16;if(j+ +(0-o|0)<0.0)continue;n=m+(l<<3)|0;if(!(j+ +(((d[n>>0]|d[n+1>>0]<<8)&65535)-o|0)>+(k&65535|0)))break}return}function nh(b,d){b=b|0;d=+d;var e=0,f=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;e=b+108|0;if(!(a[e>>0]|0))return;f=b+48|0;i=d+ +h[f>>3];h[f>>3]=i;j=b+76|0;if(+g[j>>2]!=0.0){k=b+8|0;l=b+24|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];m=+jd[c[(c[b>>2]|0)+4>>2]&31](b);n=+h[f>>3];o=m*+Q(+(n*+g[j>>2]*360.0*6.283/360.0));j=b+16|0;h[j>>3]=+h[j>>3]+o;p=n}else p=i;i=+g[b+80>>2];if(i!=0.0){n=+Q(+(i*p*360.0*.5*6.283/360.0));g[b+104>>2]=n>0.0?n:-n}n=+g[b+84>>2];if(n!=0.0){i=+we(n*p*.5,0.0,1.0,-1.0,4.0);q=i<1.0?1.0:i>3.0?3.0:i}else q=1.0;j=c[b+60>>2]|0;nd[c[(c[j>>2]|0)+4>>2]&31](j,b,q*d);if(!(a[b+109>>0]|0))return;if(!(kd[c[c[b>>2]>>2]&31](b)|0))return;a[e>>0]=0;return}function oh(a,b){a=a|0;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0.0;d=a+416|0;h[d>>3]=+h[d>>3]+b;d=a+400|0;e=c[d>>2]|0;f=a+404|0;i=c[f>>2]|0;if((e|0)==(i|0))return;j=a+408|0;if(+g[j>>2]<=0.0)g[j>>2]=.25;j=a+408|0;if(!(+g[j>>2]>0.0))return;a=~~+Xi(+(e-i|0),360.0);k=+xe(b,0.0,+g[j>>2],0.0,+(((a|0)>179?a+-360|0:a)|0));c[f>>2]=~~(k+ +(c[f>>2]|0));k=+g[j>>2]-b;g[j>>2]=k;if(!(k<=0.0))return;g[j>>2]=0.0;c[f>>2]=c[d>>2];return}function ph(b,d,e){b=b|0;d=+d;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;f=i;i=i+112|0;j=f+96|0;k=f+80|0;l=f+48|0;m=f+64|0;n=f+32|0;o=f+16|0;p=f;q=c[8]|0;r=+(q>>>1&32767|0);s=+(q>>>17|0);q=b+28712|0;h[n>>3]=r;h[n+8>>3]=s;t=b+56976|0;u=s-+h[b+56984>>3];h[o>>3]=r-+h[b+56976>>3];h[o+8>>3]=u;c[l>>2]=c[q>>2];c[l+4>>2]=c[q+4>>2];c[l+8>>2]=c[q+8>>2];c[l+12>>2]=c[q+12>>2];c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];Se(m,l,k,j);u=s-+h[m+8>>3];h[p>>3]=r-+h[m>>3];h[p+8>>3]=u;c[k>>2]=c[p>>2];c[k+4>>2]=c[p+4>>2];c[k+8>>2]=c[p+8>>2];c[k+12>>2]=c[p+12>>2];c[j>>2]=c[t>>2];c[j+4>>2]=c[t+4>>2];c[j+8>>2]=c[t+8>>2];c[j+12>>2]=c[t+12>>2];if(!(+Re(k,j)>0.0|e)){i=f;return}h[b+56224>>3]=r;e=b+56232|0;h[e>>3]=s;u=+h[b+28712>>3];j=b+28720|0;v=+h[j>>3];w=d*3.75/+g[2481];if(!(w>=1.0)){k=b+56208|0;d=+h[k>>3];t=b+56216|0;x=+h[t>>3];y=w;h[k>>3]=d+y*(r-u-d*2.0);h[t>>3]=x+y*(s-v-x*2.0);z=u+y*d;A=v+y*x}else{t=b+56208|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;z=r;A=s}x=z-u;z=A-v;h[b+56224>>3]=r-x;h[e>>3]=s-z;h[q>>3]=x+u;h[j>>3]=z+v;j=b+28760|0;h[j>>3]=z+ +h[j>>3];j=b+28816|0;h[j>>3]=x+ +h[j>>3];j=b+28824|0;h[j>>3]=z+ +h[j>>3];j=b+28864|0;h[j>>3]=z+ +h[j>>3];j=b+28920|0;h[j>>3]=x+ +h[j>>3];j=b+28928|0;h[j>>3]=z+ +h[j>>3];j=b+28680|0;h[j>>3]=x+ +h[j>>3];j=b+28688|0;h[j>>3]=z+ +h[j>>3];j=b+28568|0;q=b+8|0;do{if(a[q+108>>0]|0){e=q+8|0;t=q+16|0;v=z+ +h[t>>3];h[e>>3]=x+ +h[e>>3];h[t>>3]=v;t=q+24|0;e=q+32|0;v=z+ +h[e>>3];h[t>>3]=x+ +h[t>>3];h[e>>3]=v}q=q+112|0}while(q>>>0<=j>>>0);j=b+31992|0;q=b+28968|0;do{e=q+8|0;h[e>>3]=x+ +h[e>>3];e=q+16|0;h[e>>3]=z+ +h[e>>3];q=q+48|0}while(q>>>0<=j>>>0);j=b+34560|0;q=b+32040|0;do{e=q+8|0;h[e>>3]=x+ +h[e>>3];e=q+16|0;h[e>>3]=z+ +h[e>>3];q=q+40|0}while(q>>>0<=j>>>0);j=b+57432|0;h[j>>3]=x+ +h[j>>3];j=b+57440|0;h[j>>3]=z+ +h[j>>3];i=f;return}function qh(b,c,d){b=b|0;c=+c;d=d|0;var e=0.0,f=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0;e=+h[b+28936>>3];f=+h[b+28720>>3];if(!d){d=b+56248|0;i=+h[d>>3];if(e-f>i){j=d;k=4}else{l=d;m=i}}else{j=b+56248|0;k=4}if((k|0)==4){i=e-f;h[j>>3]=i;l=j;m=i}j=b+56240|0;i=c*3.75/+g[2481];if(!(i>=1.0)){c=+h[j>>3];e=i;n=e*c+0.0;o=c+e*(m-c*2.0)}else{n=m;o=0.0}h[j>>3]=o;h[l>>3]=m-n-n;l=b+28712|0;h[l>>3]=+h[l>>3]+0.0;h[b+28720>>3]=n+f;l=b+28760|0;h[l>>3]=n+ +h[l>>3];l=b+28816|0;h[l>>3]=+h[l>>3]+0.0;l=b+28824|0;h[l>>3]=n+ +h[l>>3];l=b+28864|0;h[l>>3]=n+ +h[l>>3];l=b+28920|0;h[l>>3]=+h[l>>3]+0.0;l=b+28928|0;h[l>>3]=n+ +h[l>>3];l=b+28680|0;h[l>>3]=+h[l>>3]+0.0;l=b+28688|0;h[l>>3]=n+ +h[l>>3];l=b+28568|0;j=b+8|0;do{if(a[j+108>>0]|0){k=j+8|0;d=j+16|0;f=n+ +h[d>>3];h[k>>3]=+h[k>>3]+0.0;h[d>>3]=f;d=j+24|0;k=j+32|0;f=n+ +h[k>>3];h[d>>3]=+h[d>>3]+0.0;h[k>>3]=f}j=j+112|0}while(j>>>0<=l>>>0);l=b+31992|0;j=b+28968|0;do{k=j+8|0;h[k>>3]=+h[k>>3]+0.0;k=j+16|0;h[k>>3]=n+ +h[k>>3];j=j+48|0}while(j>>>0<=l>>>0);l=b+34560|0;j=b+32040|0;do{k=j+8|0;h[k>>3]=+h[k>>3]+0.0;k=j+16|0;h[k>>3]=n+ +h[k>>3];j=j+40|0}while(j>>>0<=l>>>0);l=b+56192|0;h[l>>3]=n+ +h[l>>3];l=b+57432|0;h[l>>3]=+h[l>>3]+0.0;l=b+57440|0;h[l>>3]=n+ +h[l>>3];return}function rh(a){a=a|0;var b=0,d=0,f=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0;if((c[367]&c[366]|0)!=-1)return;b=a+28688|0;if(!(+h[b>>3]>+(0-(e[17]|0)|0)))return;d=a+28704|0;f=0;while(1){if(!(c[372]|0))i=Wl(c[d>>2]|0)|0;else i=f;j=i+3340|0;k=c[j>>2]|0;if((k|0)>0){l=0;m=0.0;while(1){n=m+ +g[i+12+(l*52|0)+4>>2];l=l+1|0;if((l|0)==(k|0)){o=n;break}else m=n}}else o=0.0;k=qn()|0;l=c[j>>2]|0;p=l+-1|0;a:do if((l|0)>1){q=0;m=o*(+(k&32767|0)/32767.0);while(1){n=+g[i+12+(q*52|0)+4>>2];if(m<=n){r=q;break a}q=q+1|0;if((q|0)>=(p|0)){r=p;break}else m=m-n}}else r=p;while(0);Ah(a,i+12+(r*52|0)|0);c[d>>2]=(c[d>>2]|0)+1;if(+h[b>>3]>+(0-(e[17]|0)|0))f=i;else break}return}function sh(a,b,d,f){a=a|0;b=b|0;d=+d;f=+f;var h=0,i=0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;h=c[a>>2]&65535;i=a+4|0;j=+g[a+8>>2];if((c[i>>2]|0)!=-1){k=j+ +(Rd(h)|0);l=c[i>>2]|0;m=+(~~(k+ +((l|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0))|0)+d;k=+g[a+12>>2];if((l|0)==-1){n=k;o=m}else{p=k+ +(Sd(c[a>>2]&65535)|0);n=p+ +((c[i>>2]|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);o=m}}else{n=+g[a+12>>2];o=+(~~j|0)+d}return (ge(h,o,+(~~n|0)+f,b,0.0,0.0)|0)!=0|0}function th(f,j,k,l){f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0,ca=0,da=0.0,ea=0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0,na=0,oa=0.0,pa=0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0,va=0,wa=0,xa=0.0,ya=0.0,za=0.0,Aa=0,Ba=0,Ca=0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0.0,Ha=0.0,Ia=0.0,Ja=0.0,Ka=0,La=0.0,Ma=0.0,Na=0.0,Oa=0,Pa=0,Qa=0.0,Ra=0.0,Sa=0.0,Ta=0.0,Ua=0.0,Va=0,Wa=0.0,Xa=0.0,Ya=0.0,Za=0.0,_a=0,$a=0.0;m=i;i=i+57632|0;n=m+57512|0;o=m+57496|0;p=m+57616|0;q=m;r=m+57392|0;s=m+28696|0;t=f+31992|0;u=1<<k;k=f+28968|0;while(1){if(d[k+28>>0]&u){v=k;break}k=k+48|0;if(k>>>0>t>>>0){v=0;break}}w=+h[j>>3];x=+h[j+8>>3];y=+h[j+16>>3];t=c[j+24>>2]|0;k=c[j+28>>2]|0;z=+g[j+32>>2];A=+g[j+36>>2];B=+h[j+40>>3];C=+h[j+48>>3];D=+h[j+56>>3];u=c[j+64>>2]|0;E=c[j+72>>2]|0;F=j+76|0;G=c[F>>2]|0;H=c[F+4>>2]|0;I=+g[j+84>>2];F=c[j+88>>2]|0;J=a[j+92>>0]|0;K=j+93|0;a[p>>0]=a[K>>0]|0;a[p+1>>0]=a[K+1>>0]|0;a[p+2>>0]=a[K+2>>0]|0;K=(c[33]|0)+272|0;L=+((d[K>>0]|d[K+1>>0]<<8)&65535|0)*.6499999761581421;K=J<<24>>24==0;if(K){M=+h[j+96>>3];N=((a[1473]|0)!=0?1.0:-1.0)*+g[u>>2]*(+g[u+16>>2]*+(e[11]|0)*.0009765625)}else{M=.01;N=y}j=0;do{c[q+(j*112|0)>>2]=7480;O=q+(j*112|0)+8|0;P=f+8+(j*112|0)+8|0;j=j+1|0;Q=O;R=P;S=Q+100|0;do{c[Q>>2]=c[R>>2];Q=Q+4|0;R=R+4|0}while((Q|0)<(S|0));b[O+100>>1]=b[P+100>>1]|0}while((j|0)!=256);j=q+28672|0;T=f+28680|0;c[j>>2]=c[T>>2];c[j+4>>2]=c[T+4>>2];c[j+8>>2]=c[T+8>>2];c[j+12>>2]=c[T+12>>2];c[j+16>>2]=c[T+16>>2];c[j+20>>2]=c[T+20>>2];T=u+20|0;U=(F|0)==0;V=u+24|0;W=u+12|0;X=u+16|0;Y=F+8|0;Z=(v|0)==0;_=q+28560|0;y=L;$=o+8|0;aa=v+16|0;ba=L*2.0;ca=v+29|0;da=x;x=N;N=w;w=I;I=C;ea=E;E=t;t=k;C=z;z=A;A=B;B=D;D=M;k=0;a:while(1){M=A+.01600000075995922;fa=B+-.01600000075995922;if(K){ga=+g[T>>2]*.01600000075995922;if(U){ha=0.0;ia=1.0}else{ha=+h[F>>3];ia=+h[Y>>3]}ja=ga;ka=N+ja*(x*ha);la=da+ja*(x*ia);ma=(a[1473]|0)!=0?-1:1;na=b[11]|0;ja=x+ga*(+g[((ma|0)==((x<0.0?-1:1)|0)?V:W)>>2]*+(ma|0)*(+g[X>>2]*+(na&65535|0)*.0009765625));if(w>0.0){ga=w+-.03200000151991844;if(ga<0.0){oa=la;pa=na;qa=ka;ra=D;sa=0.0;ta=ja}else{oa=la;pa=na;qa=ka;ra=D;sa=ga;ta=ja}}else{oa=la;pa=na;qa=ka;ra=D;sa=w;ta=ja}}else{na=b[11]|0;oa=da-(D>0.0?+g[2507]:+g[2506])*+(na&65535|0)*.0009765625*.01600000075995922;pa=na;qa=N;ra=D+-.01600000075995922;sa=w;ta=x}if(!(!(fa>0.0)|oa>I)){ua=0;va=58;break}if((!Z?(ja=+h[aa>>3]-oa,(ja>0.0?ja:-ja)<ba):0)?(na=d[ca>>0]|0,(ea|0)!=(na|0)):0){ma=c[(c[58267]|0)+(na<<2)>>2]|0;wa=na;xa=oa-+g[2482]*+(pa&65535|0)*.4000000059604645;ya=1.0;za=0.0;Aa=ma;Ba=ma}else{wa=ea;xa=I;ya=z;za=C;Aa=t;Ba=E}ma=q;do{h[o>>3]=qa;h[$>>3]=oa;if((a[ma+108>>0]|0)!=0?(ja=oa-+h[ma+16>>3],!((ja>0.0?ja:-ja)>+(e[11]|0))):0){na=c[ma+60>>2]|0;Ca=c[c[na>>2]>>2]|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];if(hd[Ca&31](na,ma,n,y,wa)|0){ua=0;va=58;break a}}ma=ma+112|0}while(ma>>>0<=_>>>0);c[2008]=q;h[196]=+h[196]+.01600000075995922;ma=q;do{nh(ma,.01600000075995922);ma=ma+112|0}while(ma>>>0<=_>>>0);k=k+1|0;if((k|0)>=10){Da=M;Ea=fa;Fa=ra;Ga=sa;Ha=ta;Ia=oa;Ja=qa;Ka=wa;La=xa;Ma=ya;Na=za;Oa=Aa;Pa=Ba;va=30;break}else{da=oa;x=ta;N=qa;w=sa;I=xa;ea=wa;E=Ba;t=Aa;C=za;z=ya;A=M;B=fa;D=ra}}if((va|0)==30){h[r>>3]=Ja;h[r+8>>3]=Ia;h[r+16>>3]=Ha;c[r+24>>2]=Pa;c[r+28>>2]=Oa;g[r+32>>2]=Na;g[r+36>>2]=Ma;h[r+40>>3]=Da;h[r+48>>3]=La;h[r+56>>3]=Ea;c[r+64>>2]=u;g[r+68>>2]=L;c[r+72>>2]=Ka;Oa=r+76|0;c[Oa>>2]=G;c[Oa+4>>2]=H;g[r+84>>2]=Ga;c[r+88>>2]=F;a[r+92>>0]=J;J=r+93|0;a[J>>0]=a[p>>0]|0;a[J+1>>0]=a[p+1>>0]|0;a[J+2>>0]=a[p+2>>0]|0;h[r+96>>3]=Fa;p=0;do{c[s+(p*112|0)>>2]=7480;J=s+(p*112|0)+8|0;H=q+(p*112|0)+8|0;p=p+1|0;Q=J;R=H;S=Q+100|0;do{c[Q>>2]=c[R>>2];Q=Q+4|0;R=R+4|0}while((Q|0)<(S|0));b[J+100>>1]=b[H+100>>1]|0}while((p|0)!=256);p=l+-10|0;Oa=s+28672|0;c[Oa>>2]=c[j>>2];c[Oa+4>>2]=c[j+4>>2];c[Oa+8>>2]=c[j+8>>2];c[Oa+12>>2]=c[j+12>>2];c[Oa+16>>2]=c[j+16>>2];c[Oa+20>>2]=c[j+20>>2];Q=n;R=r;S=Q+104|0;do{c[Q>>2]=c[R>>2];Q=Q+4|0;R=R+4|0}while((Q|0)<(S|0));if(zh(f,n,s,p,v)|0){ua=1;i=m;return ua|0}if(K){Qa=Fa;Ra=((a[1473]|0)!=0?1.0:-1.0)*+g[u>>2]*(+g[X>>2]*+(e[11]|0)*.0009765625)}else{Qa=.01;Ra=Ha}if((l|0)<=10){ua=1;i=m;return ua|0}l=o+8|0;Ha=Ea;Ea=Qa;Qa=Ia;Ia=Ra;Ra=Ja;Ja=Ga;Ga=La;u=Ka;Ka=0;b:while(1){Ha=Ha+-.01600000075995922;if(K){La=+g[T>>2]*.01600000075995922;if(U){Sa=0.0;Ta=1.0}else{Sa=+h[F>>3];Ta=+h[Y>>3]}Fa=La;fa=Ra+Fa*(Ia*Sa);M=Qa+Fa*(Ia*Ta);v=(a[1473]|0)!=0?-1:1;s=b[11]|0;Fa=Ia+La*(+g[((v|0)==((Ia<0.0?-1:1)|0)?V:W)>>2]*+(v|0)*(+g[X>>2]*+(s&65535|0)*.0009765625));if(Ja>0.0){La=Ja+-.03200000151991844;if(La<0.0){Ua=M;Va=s;Wa=fa;Xa=Ea;Ya=0.0;Za=Fa}else{Ua=M;Va=s;Wa=fa;Xa=Ea;Ya=La;Za=Fa}}else{Ua=M;Va=s;Wa=fa;Xa=Ea;Ya=Ja;Za=Fa}}else{s=b[11]|0;Ua=Qa-(Ea>0.0?+g[2507]:+g[2506])*+(s&65535|0)*.0009765625*.01600000075995922;Va=s;Wa=Ra;Xa=Ea+-.01600000075995922;Ya=Ja;Za=Ia}if(!(!(Ha>0.0)|Ua>Ga)){ua=0;va=58;break}if((!Z?(Fa=+h[aa>>3]-Ua,(Fa>0.0?Fa:-Fa)<ba):0)?(s=d[ca>>0]|0,(u|0)!=(s|0)):0){_a=s;$a=Ua-+g[2482]*+(Va&65535|0)*.4000000059604645}else{_a=u;$a=Ga}s=q;do{h[o>>3]=Wa;h[l>>3]=Ua;if((a[s+108>>0]|0)!=0?(Fa=Ua-+h[s+16>>3],!((Fa>0.0?Fa:-Fa)>+(e[11]|0))):0){v=c[s+60>>2]|0;f=c[c[v>>2]>>2]|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];if(hd[f&31](v,s,n,y,_a)|0){ua=0;va=58;break b}}s=s+112|0}while(s>>>0<=_>>>0);c[2008]=q;h[196]=+h[196]+.01600000075995922;s=q;do{nh(s,.01600000075995922);s=s+112|0}while(s>>>0<=_>>>0);Ka=Ka+1|0;if((Ka|0)>=(p|0)){ua=1;va=58;break}else{Ea=Xa;Qa=Ua;Ia=Za;Ra=Wa;Ja=Ya;Ga=$a;u=_a}}if((va|0)==58){i=m;return ua|0}}else if((va|0)==58){i=m;return ua|0}return 0}function uh(b,d){b=b|0;d=+d;var f=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0;f=d;i=b+40|0;h[i>>3]=f+ +h[i>>3];i=b+56|0;h[i>>3]=+h[i>>3]-f;if(a[b+92>>0]|0){i=b+96|0;j=+h[i>>3];k=b+8|0;h[k>>3]=+h[k>>3]-(j>0.0?+g[2507]:+g[2506])*+(e[11]|0)*.0009765625*d;h[i>>3]=j-f;return}i=c[b+64>>2]|0;f=+g[i+20>>2]*d;k=c[b+88>>2]|0;if(!k){l=0.0;m=1.0}else{l=+h[k>>3];m=+h[k+8>>3]}k=b+16|0;j=+h[k>>3];n=f;o=b+8|0;p=+h[o>>3]+n*(m*j);h[b>>3]=+h[b>>3]+n*(l*j);h[o>>3]=p;o=(a[1473]|0)!=0?-1:1;h[k>>3]=j+f*(+(o|0)*+g[((o|0)==((j<0.0?-1:1)|0)?i+24|0:i+12|0)>>2]*(+g[i+16>>2]*+(e[11]|0)*.0009765625));i=b+84|0;j=+g[i>>2];if(!(j>0.0))return;f=j-d*2.0;g[i>>2]=f;if(!(f<0.0))return;g[i>>2]=0.0;return}function vh(b){b=b|0;var d=0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=i;i=i+32|0;f=d+16|0;g=d;qg(7);c[b+4>>2]=2;j=+(((e[17]|0)/5|0)&65535|0);h[g>>3]=+((e[16]|0)>>>1&65535|0);h[g+8>>3]=j;k=b+34608|0;l=b+45304|0;m=64;n=k;while(1){if(+h[n+40>>3]==0.0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];lh(n,f,.5);o=m+-1|0;if(!o)break;else p=o}else p=m;n=n+56|0;if(n>>>0>l>>>0)break;else m=p}h[g>>3]=+(((e[16]|0)/3|0)&65535|0);h[g+8>>3]=j*2.0;p=32;m=k;while(1){if(+h[m+40>>3]==0.0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];lh(m,f,0.0);n=p+-1|0;if(!n)break;else q=n}else q=p;m=m+56|0;if(m>>>0>l>>>0)break;else p=q}h[g>>3]=+(((e[16]|0)<<1>>>0)/3|0|0);h[g+8>>3]=j*1.5;q=32;p=k;while(1){if(+h[p+40>>3]==0.0){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];lh(p,f,.20000000298023224);k=q+-1|0;if(!k){r=13;break}else s=k}else s=q;p=p+56|0;if(p>>>0>l>>>0){r=13;break}else q=s}if((r|0)==13){a[1472]=1;h[b+28944>>3]=2.0;h[b+28952>>3]=0.0;c[361]=c[b+28960>>2];i=d;return}}function wh(a,b){a=a|0;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0;d=a+34560|0;e=a+28712|0;f=a+28720|0;i=a+28780|0;j=a+28960|0;k=a+32040|0;do{gd[c[c[k>>2]>>2]&15](k,b);a=k+28|0;a:do if(((c[a>>2]|0)==1?(l=+h[k+8>>3]-+h[e>>3],m=+h[k+16>>3]-+h[f>>3],n=+O(+(l*l+m*m)),n<+g[i>>2]*2.0):0)?(c[a>>2]=2,g[k+24>>2]=1.0,c[j>>2]=(c[j>>2]|0)+1,qg(6),(c[367]&c[366]|0)==-1):0){o=c[372]|0;switch(o|0){case 0:{p=5352;break}case 2:{p=5356;break}case 3:{p=5368;break}default:break a}if((c[p>>2]|0)>0){q=c[j>>2]|0;switch(o|0){case 0:{r=c[1338]|0;break}case 2:{r=c[1339]|0;break}case 3:{r=c[1342]|0;break}default:r=0}if((q|0)==(r+1|0))qg(7)}}while(0);k=k+40|0}while(k>>>0<=d>>>0);return}function xh(b,f,j,k){b=b|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0;l=i;i=i+16|0;m=l;n=f+28|0;o=a[n>>0]|0;p=1<<k;if(!(o&255&p)){i=l;return}q=f+8|0;r=j+8|0;s=+h[q>>3]-+h[j>>3];t=+h[f+16>>3]-+h[r>>3];u=+O(+(s*s+t*t));if(!(u<+g[j+68>>2]*2.0)){i=l;return}if(!k){k=b+57432|0;c[k>>2]=c[q>>2];c[k+4>>2]=c[q+4>>2];c[k+8>>2]=c[q+8>>2];c[k+12>>2]=c[q+12>>2];k=b+57e3|0;c[k>>2]=(c[k>>2]|0)+1;v=a[n>>0]|0}else v=o;o=v&255&(p^255)&255;a[n>>0]=o;if(!(o<<24>>24))a[f+32>>0]=0;o=c[372]|0;if((o|0)==6){i=l;return}n=d[f+29>>0]|0;p=j+72|0;if((c[p>>2]|0)!=(n|0)){c[p>>2]=n;p=c[(c[58267]|0)+(n<<2)>>2]|0;c[j+24>>2]=p;c[j+28>>2]=p;g[j+32>>2]=0.0;g[j+36>>2]=1.0;h[j+48>>3]=+h[r>>3]-+g[2482]*+(e[11]|0)*.4000000059604645}do if((o|0)==3){r=b+56976|0;p=f+24|0;Qe(m,+((c[p>>2]|0)+180|0),1.0);c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];c[r+12>>2]=c[m+12>>2];c[b+57408>>2]=(c[p>>2]|0)+180;c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];if(!(a[j+92>>0]|0)){p=c[j+64>>2]|0;h[j+16>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[p>>2]*(+g[p+16>>2]*+(e[11]|0)*.0009765625);break}else{h[j+96>>3]=.01;break}}while(0);qg(2);i=l;return}function yh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d;f=b+28960|0;ec(240249,240259,c[f>>2]|0);b=c[f>>2]|0;f=_((a[5392]|0)!=0?2:1,b)|0;c[1347]=f+(c[1347]|0);c[1345]=(c[1345]|0)+1;f=c[366]|0;g=c[367]|0;a:do if((g&f|0)!=-1){if(a[1472]|0)switch(c[372]|0){case 1:{a[2472+f>>0]=1;break a;break}case 2:{a[2472+f>>0]=1;break a;break}case 5:{a[3240+f>>0]=1;break a;break}case 6:{a[3496+f>>0]=1;break a;break}case 3:{a[4008+f>>0]=1;break a;break}case 4:{a[2984+g>>0]=1;break a;break}default:break a}}else{h=c[372]|0;switch(h|0){case 0:{pi(1,b);break a;break}case 2:{pi(3,b);break a;break}case 3:{pi(4,b);break a;break}default:{c[e>>2]=h;Pn(240274,e)|0;break a}}}while(0);oi();Ml();i=d;return}function zh(b,f,j,k,l){b=b|0;f=f|0;j=j|0;k=k|0;l=l|0;var 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.0,G=0,H=0.0,I=0,J=0,K=0,L=0.0;b=i;i=i+48|0;m=b+32|0;n=b+16|0;o=b;if((k|0)<1){p=1;i=b;return p|0}q=f+56|0;r=f+8|0;s=f+48|0;t=f+68|0;u=f+72|0;v=j+28560|0;w=n+8|0;x=l+16|0;y=l+29|0;z=f+24|0;A=f+28|0;B=f+32|0;C=f+36|0;a:do if(!l){D=0;while(1){uh(f,.01600000075995922);if(+h[q>>3]>0.0?!(+h[r>>3]>+h[s>>3]):0){p=0;E=29;break}F=+g[t>>2];G=c[u>>2]|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];H=F;I=j;do{c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];if((a[I+108>>0]|0)!=0?(F=+h[w>>3]-+h[I+16>>3],!((F>0.0?F:-F)>+(e[11]|0))):0){J=c[I+60>>2]|0;K=c[c[J>>2]>>2]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];if(hd[K&31](J,I,m,H,G)|0)break a}I=I+112|0}while(I>>>0<=v>>>0);c[2008]=j;h[196]=+h[196]+.01600000075995922;I=j;do{nh(I,.01600000075995922);I=I+112|0}while(I>>>0<=v>>>0);D=D+1|0;if((D|0)>=(k|0)){p=1;E=29;break}}if((E|0)==29){i=b;return p|0}}else{D=0;while(1){uh(f,.01600000075995922);if(+h[q>>3]>0.0?!(+h[r>>3]>+h[s>>3]):0){p=0;E=29;break}H=+h[r>>3];F=+h[x>>3]-H;L=+g[t>>2];if((F>0.0?F:-F)<L*2.0?(I=d[y>>0]|0,(c[u>>2]|0)!=(I|0)):0){c[u>>2]=I;G=c[(c[58267]|0)+(I<<2)>>2]|0;c[z>>2]=G;c[A>>2]=G;g[B>>2]=0.0;g[C>>2]=1.0;h[s>>3]=H-+g[2482]*+(e[11]|0)*.4000000059604645}G=c[u>>2]|0;c[o>>2]=c[f>>2];c[o+4>>2]=c[f+4>>2];c[o+8>>2]=c[f+8>>2];c[o+12>>2]=c[f+12>>2];H=L;I=j;do{c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];if((a[I+108>>0]|0)!=0?(L=+h[w>>3]-+h[I+16>>3],!((L>0.0?L:-L)>+(e[11]|0))):0){J=c[I+60>>2]|0;K=c[c[J>>2]>>2]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];if(hd[K&31](J,I,m,H,G)|0)break a}I=I+112|0}while(I>>>0<=v>>>0);c[2008]=j;h[196]=+h[196]+.01600000075995922;I=j;do{nh(I,.01600000075995922);I=I+112|0}while(I>>>0<=v>>>0);D=D+1|0;if((D|0)>=(k|0)){p=1;E=29;break}}if((E|0)==29){i=b;return p|0}}while(0);p=0;i=b;return p|0}function Ah(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=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,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;d=i;i=i+256|0;e=d+240|0;f=d+236|0;g=d+212|0;h=d+232|0;j=d+228|0;k=d+224|0;l=d+220|0;m=d+216|0;n=d+208|0;o=d+204|0;p=d+200|0;q=d+196|0;r=d+192|0;s=d+188|0;t=d+184|0;u=d+180|0;v=d+176|0;w=d+172|0;x=d+168|0;y=d+164|0;z=d+160|0;A=d+156|0;B=d+152|0;C=d+148|0;D=d+144|0;E=d+140|0;F=d+136|0;G=d+132|0;H=d+128|0;I=d+124|0;J=d+120|0;K=d+116|0;L=d+112|0;M=d+108|0;N=d+104|0;O=d+100|0;P=d+96|0;Q=d+92|0;R=d+88|0;S=d+84|0;T=d+80|0;U=d+76|0;c[a+28700>>2]=c[a+28704>>2];do switch(c[b>>2]|0){case 0:{c[h>>2]=145;c[j>>2]=155;c[f>>2]=c[h>>2];c[e>>2]=c[j>>2];Bh(a,f,e,b);i=d;return}case 1:{c[k>>2]=147;c[l>>2]=157;c[f>>2]=c[k>>2];c[e>>2]=c[l>>2];Bh(a,f,e,b);i=d;return}case 2:{c[m>>2]=148;c[n>>2]=158;c[f>>2]=c[m>>2];c[e>>2]=c[n>>2];Bh(a,f,e,b);i=d;return}case 3:{c[o>>2]=146;c[p>>2]=156;c[f>>2]=c[o>>2];c[e>>2]=c[p>>2];Bh(a,f,e,b);i=d;return}case 11:{c[q>>2]=150;c[r>>2]=149;c[s>>2]=159;c[g>>2]=c[q>>2];c[f>>2]=c[r>>2];c[e>>2]=c[s>>2];Ch(a,g,f,e,b);i=d;return}case 12:{c[t>>2]=151;c[u>>2]=152;c[v>>2]=160;c[g>>2]=c[t>>2];c[f>>2]=c[u>>2];c[e>>2]=c[v>>2];Ch(a,g,f,e,b);i=d;return}case 13:{c[w>>2]=154;c[x>>2]=153;c[y>>2]=161;c[g>>2]=c[w>>2];c[f>>2]=c[x>>2];c[e>>2]=c[y>>2];Ch(a,g,f,e,b);i=d;return}case 9:{Dh(a,b);i=d;return}case 10:{Eh(a,b);i=d;return}case 6:{Fh(a,1,1,1,b);i=d;return}case 7:{Fh(a,1,0,1,b);i=d;return}case 8:{Fh(a,1,1,0,b);i=d;return}case 14:{c[z>>2]=177;c[A>>2]=176;c[B>>2]=188;c[g>>2]=c[z>>2];c[f>>2]=c[A>>2];c[e>>2]=c[B>>2];Gh(a,g,f,e,b);i=d;return}case 17:{c[C>>2]=179;c[D>>2]=178;c[E>>2]=189;c[g>>2]=c[C>>2];c[f>>2]=c[D>>2];c[e>>2]=c[E>>2];Gh(a,g,f,e,b);i=d;return}case 15:{c[F>>2]=196;c[G>>2]=202;c[f>>2]=c[F>>2];c[e>>2]=c[G>>2];Hh(a,f,e,b);i=d;return}case 16:{c[H>>2]=197;c[I>>2]=203;c[f>>2]=c[H>>2];c[e>>2]=c[I>>2];Hh(a,f,e,b);i=d;return}case 19:{Ih(a,1,b);i=d;return}case 20:{Ih(a,2,b);i=d;return}case 21:{Jh(a,1,b);i=d;return}case 22:{Jh(a,2,b);i=d;return}case 25:{c[J>>2]=217;c[K>>2]=220;c[f>>2]=c[J>>2];c[e>>2]=c[K>>2];Kh(a,f,e,b);i=d;return}case 26:{c[L>>2]=217;c[M>>2]=220;c[f>>2]=c[L>>2];c[e>>2]=c[M>>2];Lh(a,f,e,b);i=d;return}case 58:{Mh(a,b);i=d;return}case 29:{Nh(a,b);i=d;return}case 30:{Oh(a,b);i=d;return}case 64:{Ph(a,b);i=d;return}case 31:{Qh(a,b);i=d;return}case 27:{c[N>>2]=169;c[O>>2]=174;c[f>>2]=c[N>>2];c[e>>2]=c[O>>2];Rh(a,f,e,b);i=d;return}case 18:{Sh(a,b);i=d;return}case 28:{Th(a,b);i=d;return}case 32:{Uh(a,c[2083]|0,1,b);i=d;return}case 33:{Uh(a,c[2084]|0,1,b);i=d;return}case 34:{Uh(a,c[2085]|0,0,b);i=d;return}case 36:{Uh(a,c[2087]|0,1,b);i=d;return}case 37:{Uh(a,c[2088]|0,1,b);i=d;return}case 44:{Uh(a,c[2090]|0,1,b);i=d;return}case 45:{Uh(a,c[2091]|0,1,b);i=d;return}case 46:{Uh(a,c[2092]|0,1,b);i=d;return}case 42:{Uh(a,c[2099]|0,1,b);i=d;return}case 43:{Uh(a,c[2100]|0,1,b);i=d;return}case 41:{Uh(a,c[2097]|0,1,b);i=d;return}case 47:{Uh(a,c[2093]|0,1,b);i=d;return}case 48:{Uh(a,c[2094]|0,1,b);i=d;return}case 38:{Uh(a,c[2098]|0,1,b);i=d;return}case 39:{Uh(a,c[2095]|0,1,b);i=d;return}case 40:{Uh(a,c[2096]|0,1,b);i=d;return}case 35:{Uh(a,c[2086]|0,1,b);i=d;return}case 65:{Uh(a,c[2089]|0,1,b);i=d;return}case 49:{V=c[2084]|0;c[P>>2]=148;c[e>>2]=c[P>>2];Vh(a,V,e,b);i=d;return}case 50:{V=c[2083]|0;c[Q>>2]=148;c[e>>2]=c[Q>>2];Vh(a,V,e,b);i=d;return}case 51:{Wh(a,c[2101]|0,b);i=d;return}case 52:{Wh(a,c[2102]|0,b);i=d;return}case 53:{Xh(a,b);i=d;return}case 54:{Yh(a,b);i=d;return}case 55:{Zh(a,b);i=d;return}case 56:{_h(a,b);i=d;return}case 57:{$h(a,b);i=d;return}case 59:{ai(a,b);i=d;return}case 60:{bi(a,b);i=d;return}case 62:{ci(a,b);i=d;return}case 61:{di(a,b);i=d;return}case 63:{ei(a,b);i=d;return}case 76:{fi(a,b,1.0);i=d;return}case 77:{fi(a,b,.6000000238418579);i=d;return}case 78:{gi(a,b,0,.6000000238418579);i=d;return}case 79:{gi(a,b,1,.6000000238418579);i=d;return}case 80:{hi(a,b,.6000000238418579);i=d;return}case 4:{c[R>>2]=145;c[S>>2]=155;V=c[2077]|0;c[f>>2]=c[R>>2];c[e>>2]=c[S>>2];ii(a,f,e,b,V);i=d;return}case 5:{c[T>>2]=148;c[U>>2]=158;V=c[2078]|0;c[f>>2]=c[T>>2];c[e>>2]=c[U>>2];ii(a,f,e,b,V);i=d;return}case 23:{ji(a,1,b);i=d;return}case 24:{ji(a,2,b);i=d;return}case 81:{ki(a,b);i=d;return}case 66:{Pn(240311,d)|0;i=d;return}case 67:{Pn(240335,d+8|0)|0;i=d;return}case 68:{Pn(240355,d+16|0)|0;i=d;return}case 69:{Pn(240380,d+24|0)|0;i=d;return}case 70:{Pn(240403,d+32|0)|0;i=d;return}case 71:{Pn(240422,d+40|0)|0;i=d;return}case 72:{Pn(240440,d+48|0)|0;i=d;return}case 73:{Pn(240459,d+56|0)|0;i=d;return}case 74:{Pn(240482,d+64|0)|0;i=d;return}case 75:{Pn(240499,d+72|0)|0;i=d;return}default:{i=d;return}}while(0)}function Bh(b,f,j,k){b=b|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0,L=0,M=0.0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;j=i;i=i+64|0;l=j+48|0;m=j+32|0;n=j+16|0;o=j;p=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[p>>2]|0));r=q;li(b,r);r=k+8|0;if(+g[r>>2]!=0.0){Qe(l,+((c[b+56992>>2]|0)+270|0),1.0);s=+(e[10]|0)*.10999999940395355;t=+h[l+8>>3]*s;q=b+28680|0;h[q>>3]=+h[q>>3]-+h[l>>3]*s;q=b+28688|0;h[q>>3]=+h[q>>3]-t}q=((qn()|0)<<1&2^2)+-1|0;t=+g[k+40>>2];s=+g[k+44>>2];if(!(t==0.0&s==0.0)){u=~~t;v=~~s;if((v|0)>(u|0))w=((qn()|0)%(1-u+v|0)|0)+u|0;else w=u}else w=1;u=c[p>>2]|0;p=b+56992|0;v=c[p>>2]|0;s=+g[k+24>>2];t=+g[k+28>>2]-s;x=s+t*(+((qn()|0)&32767|0)/32767.0);Qe(o,+((c[p>>2]|0)+270|0),1.0);y=(c[33]|0)+((c[f>>2]&65535)<<3)+2|0;t=+(((d[y>>0]|d[y+1>>0]<<8)&65535)>>>1&65535|0);s=+h[o>>3]*t;z=+h[o+8>>3]*t;if((w|0)>0){o=(_(u,-90)|0)+-135+v|0;v=b+28680|0;u=b+28688|0;y=b+32040|0;A=b+34560|0;B=b+56200|0;C=b+56192|0;D=b+8|0;E=b+28568|0;F=k+12|0;G=k+16|0;H=b+28700|0;I=b+28696|0;t=+h[u>>3];J=+h[v>>3];K=o;o=0;L=q;while(1){M=J-s;h[v>>3]=M;N=t-z;h[u>>3]=N;q=y;do{O=q+28|0;if(!(c[O>>2]|0)){P=O;Q=q;R=12;break}q=q+40|0}while(q>>>0<=A>>>0);if((R|0)==12){R=0;q=c[B>>2]|0;c[B>>2]=q+1;switch(c[372]|0){case 0:{S=5352;R=15;break}case 2:{S=5356;R=15;break}case 3:{S=5368;R=15;break}default:{}}if((R|0)==15?(R=0,O=c[S>>2]|0,(O|0)==(q|0)&((O|0)>1&(c[366]|0)<0)):0)h[C>>3]=N;h[Q+8>>3]=M;h[Q+16>>3]=N;c[P>>2]=1;g[Q+24>>2]=1.0;a[Q+32>>0]=(c[372]|0)!=3&1}O=c[f>>2]|0;q=c[2068]|0;c[n>>2]=c[v>>2];c[n+4>>2]=c[v+4>>2];c[n+8>>2]=c[v+8>>2];c[n+12>>2]=c[v+12>>2];T=D;while(1){U=T+108|0;if(!(a[U>>0]|0)){V=U;W=T;R=22;break}T=T+112|0;if(T>>>0>E>>>0){X=0;break}}if((R|0)==22){R=0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];T=W+72|0;c[T>>2]=0;c[W+60>>2]=q;c[W+56>>2]=O;U=W+109|0;a[U>>0]=1;h[W+48>>3]=0.0;c[W+40>>2]=0;c[W+44>>2]=8088;a[V>>0]=1;g[W+92>>2]=0.0;g[W+96>>2]=1.0;g[W+104>>2]=1.0;g[W+100>>2]=1.0;g[W+88>>2]=0.0;c[W+68>>2]=0;c[W+64>>2]=c[k>>2];c[W+76>>2]=c[r>>2];c[W+80>>2]=c[F>>2];c[W+84>>2]=c[G>>2];c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];Y=W+8|0;c[Y>>2]=c[m>>2];c[Y+4>>2]=c[m+4>>2];c[Y+8>>2]=c[m+8>>2];c[Y+12>>2]=c[m+12>>2];Y=W+24|0;c[Y>>2]=c[l>>2];c[Y+4>>2]=c[l+4>>2];c[Y+8>>2]=c[l+8>>2];c[Y+12>>2]=c[l+12>>2];c[T>>2]=c[H>>2];a[U>>0]=a[I>>0]|0;X=W}g[X+96>>2]=x*+(L|0);g[X+92>>2]=+(K|0);J=+h[v>>3]-s;h[v>>3]=J;t=+h[u>>3]-z;h[u>>3]=t;o=o+1|0;if((o|0)==(w|0))break;else{K=K+180|0;L=0-L|0}}}if(!(+g[r>>2]!=0.0)){i=j;return}Qe(l,+((c[p>>2]|0)+270|0),1.0);t=+(e[10]|0)*.10999999940395355;z=+h[l+8>>3]*t;p=b+28680|0;h[p>>3]=+h[p>>3]-+h[l>>3]*t;l=b+28688|0;h[l>>3]=+h[l>>3]-z;i=j;return}function Ch(f,j,k,l,m){f=f|0;j=j|0;k=k|0;l=l|0;m=m|0;var 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.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0.0,na=0.0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0.0,va=0.0,wa=0.0,xa=0,ya=0,za=0.0,Aa=0.0,Ba=0,Ca=0,Da=0.0,Ea=0.0,Fa=0.0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0;n=i;i=i+160|0;o=n+128|0;p=n+64|0;q=n+32|0;r=n+112|0;s=n+96|0;t=n+144|0;u=n+80|0;v=n+48|0;w=n+16|0;x=n;y=f+34600|0;do z=(qn()|0)%4|0;while((z|0)==(c[y>>2]|0));A=z;li(f,A);B=+g[m+24>>2];C=+g[m+28>>2]-B;D=B+C*(+((qn()|0)&32767|0)/32767.0);C=(c[m+48>>2]|0)==0?D:-D;D=+g[m+40>>2];B=+g[m+44>>2];if(!(D==0.0&B==0.0)){A=~~D;z=~~B;if((z|0)>(A|0))E=((qn()|0)%(1-A+z|0)|0)+A|0;else E=A}else E=1;A=c[j>>2]|0;z=c[33]|0;F=z+((A&65535)<<3)+2|0;G=(d[F>>0]|d[F+1>>0]<<8)&65535;F=c[k>>2]|0;H=z+((F&65535)<<3)+2|0;z=(d[H>>0]|d[H+1>>0]<<8)&65535;H=f+56992|0;B=+((c[H>>2]|0)+270|0);if(+((G>>>0>z>>>0?G:z)|0)>+((G>>>0<z>>>0?G:z)|0)*1.2000000476837158){Qe(r,B,1.0);z=(c[33]|0)+578|0;D=+((d[z>>0]|d[z+1>>0]<<8)&65535|0)*.6000000238418579;I=+h[r>>3]*D;J=+h[r+8>>3]*D}else{Qe(s,B,1.0);r=(c[33]|0)+578|0;B=+((d[r>>0]|d[r+1>>0]<<8)&65535|0)*1.399999976158142;I=+h[s>>3]*B;J=+h[s+8>>3]*B}if((E|0)<=0){i=n;return}s=o+8|0;r=f+28680|0;z=f+28688|0;G=(E|0)>1;K=o+8|0;B=I*.5;D=J*.5;L=f+32040|0;M=f+34560|0;N=f+56200|0;O=f+56192|0;P=p+8|0;Q=u+8|0;R=f+8|0;S=m+8|0;T=m+12|0;U=m+16|0;V=f+28700|0;W=f+28696|0;X=p+8|0;Y=v+8|0;Z=o+8|0;$=p+8|0;aa=w+8|0;ba=p+8|0;ca=x+8|0;da=A;A=F;F=0;ea=0;fa=C;while(1){C=+((qn()|0)&32767|0)/32767.0*60.0;ga=+(Sd(da&65535)|0);ha=da&65535;ia=c[33]|0;ja=ia+(ha<<3)+6|0;ka=ia+(ha<<3)+2|0;ha=~~(ga+ +(((d[ka>>0]|d[ka+1>>0]<<8)&65535)-((d[ja>>0]|d[ja+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0));ga=+(Sd(A&65535)|0);ja=A&65535;ka=c[33]|0;ia=ka+(ja<<3)+6|0;la=ka+(ja<<3)+2|0;ja=~~(ga+ +(((d[la>>0]|d[la+1>>0]<<8)&65535)-((d[ia>>0]|d[ia+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0));Qe(o,+((c[H>>2]|0)+270|0),1.0);ga=+(((ha|0)>(ja|0)?ha:ja)|0);ma=+h[s>>3]*ga;h[r>>3]=+h[r>>3]-+h[o>>3]*ga;h[z>>3]=+h[z>>3]-ma;ja=c[l>>2]|0;a:do if(G){ha=(c[33]|0)+((ja&65535)<<3)+6|0;ma=+((d[ha>>0]|d[ha+1>>0]<<8)<<16>>16)-+((e[11]|0)>>>1&65535|0);Qe(o,+((c[H>>2]|0)+270|0),1.0);ga=ma;ma=+h[o>>3]*ga+ +h[r>>3]-B;na=ga*+h[K>>3]+ +h[z>>3]-D;ha=L;while(1){ia=ha+28|0;if(!(c[ia>>2]|0)){oa=ia;pa=ha;break}ha=ha+40|0;if(ha>>>0>M>>>0)break a}ha=c[N>>2]|0;c[N>>2]=ha+1;switch(c[372]|0){case 0:{qa=5352;ra=17;break}case 2:{qa=5356;ra=17;break}case 3:{qa=5368;ra=17;break}default:{}}if((ra|0)==17?(ra=0,ia=c[qa>>2]|0,(ia|0)==(ha|0)&((ia|0)>1&(c[366]|0)<0)):0)h[O>>3]=na;h[pa+8>>3]=ma;h[pa+16>>3]=na;c[oa>>2]=1;g[pa+24>>2]=1.0;a[pa+32>>0]=(c[372]|0)!=3&1}else{c[t>>2]=ja;c[o>>2]=c[t>>2];mi(f,o)}while(0);ja=c[H>>2]|0;ia=ja+-45|0;if(ea){ha=c[k>>2]|0;la=c[2068]|0;ka=Rd(ha&65535)|0;sa=b[16]|0;ta=sa&65535;h[p>>3]=+(ta-ka+((ta-(e[10]|0)|0)/-2|0)|0)-+((sa&65535)>>>1&65535|0);h[P>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;ga=+(c[H>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(u,p,o,ga);ga=+h[r>>3];ua=+h[z>>3];va=+h[u>>3];wa=+h[Q>>3];sa=R;while(1){ta=sa+108|0;if(!(a[ta>>0]|0)){xa=ta;ya=sa;break}else sa=sa+112|0}za=ga+va;Aa=ua+wa;c[ya+60>>2]=la;c[ya+56>>2]=ha;h[ya+48>>3]=0.0;c[ya+40>>2]=0;c[ya+44>>2]=8088;a[xa>>0]=1;g[ya+104>>2]=1.0;g[ya+100>>2]=1.0;g[ya+88>>2]=0.0;c[ya+68>>2]=0;c[ya+64>>2]=c[m>>2];c[ya+76>>2]=c[S>>2];c[ya+80>>2]=c[T>>2];c[ya+84>>2]=c[U>>2];h[ya+8>>3]=za;h[ya+16>>3]=Aa;h[ya+24>>3]=za;h[ya+32>>3]=Aa;c[ya+72>>2]=c[V>>2];a[ya+109>>0]=a[W>>0]|0;g[ya+96>>2]=fa;Aa=fa*C*360.0;g[ya+92>>2]=Aa+ +(ia+(_(c[y>>2]|0,-90)|0)|0);sa=c[j>>2]|0;ta=c[2068]|0;ka=Rd(sa&65535)|0;Ba=b[16]|0;Ca=Ba&65535;h[p>>3]=+(Ca-ka+((Ca-(e[10]|0)|0)/-2|0)|0)-+((Ba&65535)>>>1&65535|0);h[X>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;za=+(c[H>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(v,p,o,za);za=+h[r>>3];Da=+h[z>>3];Ea=+h[v>>3];Fa=+h[Y>>3];Ba=R;while(1){Ca=Ba+108|0;if(!(a[Ca>>0]|0)){Ga=Ca;Ha=Ba;break}else Ba=Ba+112|0}wa=za+Ea;ua=Da+Fa;c[Ha+60>>2]=ta;c[Ha+56>>2]=sa;h[Ha+48>>3]=0.0;c[Ha+40>>2]=0;c[Ha+44>>2]=8088;a[Ga>>0]=1;g[Ha+104>>2]=1.0;g[Ha+100>>2]=1.0;g[Ha+88>>2]=0.0;c[Ha+68>>2]=0;c[Ha+64>>2]=c[m>>2];c[Ha+76>>2]=c[S>>2];c[Ha+80>>2]=c[T>>2];c[Ha+84>>2]=c[U>>2];h[Ha+8>>3]=wa;h[Ha+16>>3]=ua;h[Ha+24>>3]=wa;h[Ha+32>>3]=ua;c[Ha+72>>2]=c[V>>2];a[Ha+109>>0]=a[W>>0]|0;g[Ha+96>>2]=-fa;g[Ha+92>>2]=+(ja+135+(_(c[y>>2]|0,-90)|0)|0)-Aa}else{Ba=c[j>>2]|0;ha=c[2068]|0;la=Rd(Ba&65535)|0;Ca=b[16]|0;h[p>>3]=+((((Ca&65535)-(e[10]|0)|0)/2|0)+la|0)-+((Ca&65535)>>>1&65535|0);h[$>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;ua=+(c[H>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(w,p,o,ua);ua=+h[r>>3];wa=+h[z>>3];va=+h[w>>3];ga=+h[aa>>3];Ca=R;while(1){la=Ca+108|0;if(!(a[la>>0]|0)){Ia=la;Ja=Ca;break}else Ca=Ca+112|0}Aa=ua+va;Fa=wa+ga;c[Ja+60>>2]=ha;c[Ja+56>>2]=Ba;h[Ja+48>>3]=0.0;c[Ja+40>>2]=0;c[Ja+44>>2]=8088;a[Ia>>0]=1;g[Ja+104>>2]=1.0;g[Ja+100>>2]=1.0;g[Ja+88>>2]=0.0;c[Ja+68>>2]=0;c[Ja+64>>2]=c[m>>2];c[Ja+76>>2]=c[S>>2];c[Ja+80>>2]=c[T>>2];c[Ja+84>>2]=c[U>>2];h[Ja+8>>3]=Aa;h[Ja+16>>3]=Fa;h[Ja+24>>3]=Aa;h[Ja+32>>3]=Fa;c[Ja+72>>2]=c[V>>2];a[Ja+109>>0]=a[W>>0]|0;g[Ja+96>>2]=fa;Fa=fa*C*360.0;g[Ja+92>>2]=Fa+ +(ia+(_(c[y>>2]|0,-90)|0)|0);Ca=c[k>>2]|0;sa=c[2068]|0;ta=Rd(Ca&65535)|0;la=b[16]|0;h[p>>3]=+((((la&65535)-(e[10]|0)|0)/2|0)+ta|0)-+((la&65535)>>>1&65535|0);h[ba>>3]=0.0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;Aa=+(c[H>>2]|0);c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];Pe(x,p,o,Aa);Aa=+h[r>>3];Da=+h[z>>3];Ea=+h[x>>3];za=+h[ca>>3];la=R;while(1){ta=la+108|0;if(!(a[ta>>0]|0)){Ka=ta;La=la;break}else la=la+112|0}C=Aa+Ea;ga=Da+za;c[La+60>>2]=sa;c[La+56>>2]=Ca;h[La+48>>3]=0.0;c[La+40>>2]=0;c[La+44>>2]=8088;a[Ka>>0]=1;g[La+104>>2]=1.0;g[La+100>>2]=1.0;g[La+88>>2]=0.0;c[La+68>>2]=0;c[La+64>>2]=c[m>>2];c[La+76>>2]=c[S>>2];c[La+80>>2]=c[T>>2];c[La+84>>2]=c[U>>2];h[La+8>>3]=C;h[La+16>>3]=ga;h[La+24>>3]=C;h[La+32>>3]=ga;c[La+72>>2]=c[V>>2];a[La+109>>0]=a[W>>0]|0;g[La+96>>2]=-fa;g[La+92>>2]=+(ja+135+(_(c[y>>2]|0,-90)|0)|0)-Fa}da=c[j>>2]|0;ga=+(Sd(da&65535)|0);la=(c[33]|0)+((da&65535)<<3)+6|0;ia=~~(ga+ +(0-((d[la>>0]|d[la+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0));A=c[k>>2]|0;ga=+(Sd(A&65535)|0);la=(c[33]|0)+((A&65535)<<3)+6|0;Ba=~~(ga+ +(0-((d[la>>0]|d[la+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0));Qe(o,+((c[H>>2]|0)+270|0),1.0);ga=+(((ia|0)<(Ba|0)?ia:Ba)|0);C=+h[Z>>3]*ga;wa=+h[r>>3]+ +h[o>>3]*ga;h[r>>3]=wa;ga=+h[z>>3]+C;h[z>>3]=ga;if(G){h[r>>3]=wa-I;h[z>>3]=ga-J}F=F+1|0;if((F|0)==(E|0))break;else{ea=ea^1;fa=-fa}}i=n;return}function Dh(b,f){b=b|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0,T=0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j;n=j+16|0;o=j+64|0;p=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[p>>2]|0));r=q;li(b,r);r=((qn()|0)<<1&2^2)+-1|0;s=+g[f+40>>2];t=+g[f+44>>2];if(!(s==0.0&t==0.0)){q=~~s;u=~~t;if((u|0)>(q|0))v=((qn()|0)%(1-q+u|0)|0)+q|0;else v=q}else v=1;q=(_(c[p>>2]|0,-90)|0)+-135|0;p=b+56992|0;u=q+(c[p>>2]|0)|0;t=+g[f+24>>2];s=+g[f+28>>2]-t;w=t+s*(+((qn()|0)&32767|0)/32767.0);q=f+8|0;if(+g[q>>2]!=0.0){Qe(k,+((c[p>>2]|0)+270|0),1.0);s=+(e[10]|0)*.10999999940395355;t=+h[k+8>>3]*s;x=b+28680|0;h[x>>3]=+h[x>>3]-+h[k>>3]*s;x=b+28688|0;h[x>>3]=+h[x>>3]-t}Qe(n,+((c[p>>2]|0)+270|0),1.0);x=(c[33]|0)+1650|0;t=+(((d[x>>0]|d[x+1>>0]<<8)&65535)>>>1&65535|0);s=+h[n>>3]*t;y=+h[n+8>>3]*t;if((v|0)>0){n=b+28680|0;x=b+28688|0;z=b+8|0;A=b+28568|0;B=f+12|0;C=f+16|0;D=b+28700|0;E=b+28696|0;t=+h[n>>3];F=+h[x>>3];G=u;u=0;H=r;while(1){h[n>>3]=t-s;h[x>>3]=F-y;c[o>>2]=212;c[k>>2]=c[o>>2];mi(b,k);r=c[2068]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];I=z;while(1){J=I+108|0;if(!(a[J>>0]|0)){K=J;L=I;M=13;break}I=I+112|0;if(I>>>0>A>>>0){N=0;O=r;break}}if((M|0)==13){M=0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];I=L+72|0;c[I>>2]=0;c[L+60>>2]=r;c[L+56>>2]=206;J=L+109|0;a[J>>0]=1;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+96>>2]=1.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[f>>2];c[L+76>>2]=c[q>>2];c[L+80>>2]=c[B>>2];c[L+84>>2]=c[C>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];P=L+8|0;c[P>>2]=c[l>>2];c[P+4>>2]=c[l+4>>2];c[P+8>>2]=c[l+8>>2];c[P+12>>2]=c[l+12>>2];P=L+24|0;c[P>>2]=c[k>>2];c[P+4>>2]=c[k+4>>2];c[P+8>>2]=c[k+8>>2];c[P+12>>2]=c[k+12>>2];c[I>>2]=c[D>>2];a[J>>0]=a[E>>0]|0;N=L;O=c[2068]|0}g[N+96>>2]=w*+(H|0);Q=+(G|0);g[N+92>>2]=Q;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];J=z;while(1){I=J+108|0;if(!(a[I>>0]|0)){R=I;S=J;M=17;break}J=J+112|0;if(J>>>0>A>>>0){T=0;break}}if((M|0)==17){M=0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];J=S+72|0;c[J>>2]=0;c[S+60>>2]=O;c[S+56>>2]=207;r=S+109|0;a[r>>0]=1;h[S+48>>3]=0.0;c[S+40>>2]=0;c[S+44>>2]=8088;a[R>>0]=1;g[S+92>>2]=0.0;g[S+96>>2]=1.0;g[S+104>>2]=1.0;g[S+100>>2]=1.0;g[S+88>>2]=0.0;c[S+68>>2]=0;c[S+64>>2]=c[f>>2];c[S+76>>2]=c[q>>2];c[S+80>>2]=c[B>>2];c[S+84>>2]=c[C>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];I=S+8|0;c[I>>2]=c[l>>2];c[I+4>>2]=c[l+4>>2];c[I+8>>2]=c[l+8>>2];c[I+12>>2]=c[l+12>>2];I=S+24|0;c[I>>2]=c[k>>2];c[I+4>>2]=c[k+4>>2];c[I+8>>2]=c[k+8>>2];c[I+12>>2]=c[k+12>>2];c[J>>2]=c[D>>2];a[r>>0]=a[E>>0]|0;T=S}H=0-H|0;g[T+96>>2]=w*+(H|0);g[T+92>>2]=Q;t=+h[n>>3]-s;h[n>>3]=t;F=+h[x>>3]-y;h[x>>3]=F;u=u+1|0;if((u|0)==(v|0))break;else G=G+180|0}}if(!(+g[q>>2]!=0.0)){i=j;return}Qe(k,+((c[p>>2]|0)+270|0),1.0);F=+(e[10]|0)*.10999999940395355;y=+h[k+8>>3]*F;p=b+28680|0;h[p>>3]=+h[p>>3]-+h[k>>3]*F;k=b+28688|0;h[k>>3]=+h[k>>3]-y;i=j;return}function Eh(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;f=i;i=i+80|0;j=f+48|0;k=f+32|0;l=f;m=f+16|0;n=f+64|0;o=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[o>>2]|0));q=p;li(b,q);q=((qn()|0)<<1&2^2)+-1|0;r=+g[e+40>>2];s=+g[e+44>>2];if(!(r==0.0&s==0.0)){p=~~r;t=~~s;if((t|0)>(p|0))u=((qn()|0)%(1-p+t|0)|0)+p|0;else u=p}else u=1;p=c[o>>2]|0;o=b+56992|0;t=c[o>>2]|0;s=+g[e+24>>2];r=+g[e+28>>2]-s;v=s+r*(+((qn()|0)&32767|0)/32767.0);Qe(m,+((c[o>>2]|0)+270|0),1.0);o=(c[33]|0)+1730|0;r=+(((d[o>>0]|d[o+1>>0]<<8)&65535)>>>1&65535|0);s=+h[m>>3]*r;w=+h[m+8>>3]*r;if((u|0)<=0){i=f;return}m=(_(p,-90)|0)+-135+t|0;t=b+28680|0;p=b+28688|0;o=b+8|0;x=b+28568|0;y=e+8|0;z=e+12|0;A=e+16|0;B=b+28700|0;C=b+28696|0;r=+h[t>>3];D=+h[p>>3];E=m;m=0;F=q;while(1){h[t>>3]=r-s;h[p>>3]=D-w;c[n>>2]=213;c[j>>2]=c[n>>2];mi(b,j);q=c[2068]|0;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];G=o;while(1){H=G+108|0;if(!(a[H>>0]|0)){I=H;J=G;K=11;break}G=G+112|0;if(G>>>0>x>>>0){L=0;M=q;break}}if((K|0)==11){K=0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];G=J+72|0;c[G>>2]=0;c[J+60>>2]=q;c[J+56>>2]=216;H=J+109|0;a[H>>0]=1;h[J+48>>3]=0.0;c[J+40>>2]=0;c[J+44>>2]=8088;a[I>>0]=1;g[J+92>>2]=0.0;g[J+96>>2]=1.0;g[J+104>>2]=1.0;g[J+100>>2]=1.0;g[J+88>>2]=0.0;c[J+68>>2]=0;c[J+64>>2]=c[e>>2];c[J+76>>2]=c[y>>2];c[J+80>>2]=c[z>>2];c[J+84>>2]=c[A>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];N=J+8|0;c[N>>2]=c[k>>2];c[N+4>>2]=c[k+4>>2];c[N+8>>2]=c[k+8>>2];c[N+12>>2]=c[k+12>>2];N=J+24|0;c[N>>2]=c[j>>2];c[N+4>>2]=c[j+4>>2];c[N+8>>2]=c[j+8>>2];c[N+12>>2]=c[j+12>>2];c[G>>2]=c[B>>2];a[H>>0]=a[C>>0]|0;L=J;M=c[2068]|0}O=v*+(F|0);g[L+96>>2]=O;P=+(E|0);g[L+92>>2]=P;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];H=o;while(1){G=H+108|0;if(!(a[G>>0]|0)){Q=G;R=H;K=15;break}H=H+112|0;if(H>>>0>x>>>0){S=0;T=M;break}}if((K|0)==15){K=0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];H=R+72|0;c[H>>2]=0;c[R+60>>2]=M;c[R+56>>2]=208;q=R+109|0;a[q>>0]=1;h[R+48>>3]=0.0;c[R+40>>2]=0;c[R+44>>2]=8088;a[Q>>0]=1;g[R+92>>2]=0.0;g[R+96>>2]=1.0;g[R+104>>2]=1.0;g[R+100>>2]=1.0;g[R+88>>2]=0.0;c[R+68>>2]=0;c[R+64>>2]=c[e>>2];c[R+76>>2]=c[y>>2];c[R+80>>2]=c[z>>2];c[R+84>>2]=c[A>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];G=R+8|0;c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];G=R+24|0;c[G>>2]=c[j>>2];c[G+4>>2]=c[j+4>>2];c[G+8>>2]=c[j+8>>2];c[G+12>>2]=c[j+12>>2];c[H>>2]=c[B>>2];a[q>>0]=a[C>>0]|0;S=R;T=c[2068]|0}F=0-F|0;g[S+96>>2]=v*+(F|0);g[S+92>>2]=P;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];q=o;while(1){H=q+108|0;if(!(a[H>>0]|0)){U=H;V=q;K=19;break}q=q+112|0;if(q>>>0>x>>>0){W=0;break}}if((K|0)==19){K=0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=V+72|0;c[q>>2]=0;c[V+60>>2]=T;c[V+56>>2]=209;H=V+109|0;a[H>>0]=1;h[V+48>>3]=0.0;c[V+40>>2]=0;c[V+44>>2]=8088;a[U>>0]=1;g[V+92>>2]=0.0;g[V+96>>2]=1.0;g[V+104>>2]=1.0;g[V+100>>2]=1.0;g[V+88>>2]=0.0;c[V+68>>2]=0;c[V+64>>2]=c[e>>2];c[V+76>>2]=c[y>>2];c[V+80>>2]=c[z>>2];c[V+84>>2]=c[A>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];G=V+8|0;c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];G=V+24|0;c[G>>2]=c[j>>2];c[G+4>>2]=c[j+4>>2];c[G+8>>2]=c[j+8>>2];c[G+12>>2]=c[j+12>>2];c[q>>2]=c[B>>2];a[H>>0]=a[C>>0]|0;W=V}g[W+96>>2]=O;g[W+92>>2]=P;r=+h[t>>3]-s;h[t>>3]=r;D=+h[p>>3]-w;h[p>>3]=D;m=m+1|0;if((m|0)==(u|0))break;else E=E+180|0}i=f;return}function Fh(b,e,f,j,k){b=b|0;e=e|0;f=f|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0;l=i;i=i+80|0;m=l+48|0;n=l+32|0;o=l;p=l+16|0;q=l+64|0;r=b+34600|0;do s=(qn()|0)%4|0;while((s|0)==(c[r>>2]|0));t=s;li(b,t);t=(qn()|0)<<1&2^2;s=b+56992|0;Qe(p,+((c[s>>2]|0)+270|0),1.0);u=(c[33]|0)+1554|0;v=+(((d[u>>0]|d[u+1>>0]<<8)&65535)>>>1&65535|0);w=+h[p>>3]*v;x=+h[p+8>>3]*v;p=k+8|0;u=+g[p>>2]!=0.0;v=u?x*1.2999999523162842:x;x=u?w*1.2999999523162842:w;u=b+28680|0;h[u>>3]=+h[u>>3]-x;y=b+28688|0;h[y>>3]=+h[y>>3]-v;c[q>>2]=155;c[m>>2]=c[q>>2];mi(b,m);q=c[r>>2]|0;r=0;while(1)if((q|0)==(c[8144+(r<<2)>>2]|0)){z=r;break}else r=r+1|0;r=t+-1|0;q=b+8|0;w=+g[k+24>>2];A=+g[k+28>>2]-w;B=w+A*(+((qn()|0)&32767|0)/32767.0);C=(c[s>>2]|0)+-135|0;if(e){e=c[2068]|0;c[o>>2]=c[u>>2];c[o+4>>2]=c[u+4>>2];c[o+8>>2]=c[u+8>>2];c[o+12>>2]=c[u+12>>2];s=b+28568|0;D=q;while(1){E=D+108|0;if(!(a[E>>0]|0)){F=E;G=D;H=9;break}D=D+112|0;if(D>>>0>s>>>0){I=0;break}}if((H|0)==9){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];s=G+72|0;c[s>>2]=0;c[G+60>>2]=e;c[G+56>>2]=194;e=G+109|0;a[e>>0]=1;h[G+48>>3]=0.0;c[G+40>>2]=0;c[G+44>>2]=8088;a[F>>0]=1;g[G+92>>2]=0.0;g[G+96>>2]=1.0;g[G+104>>2]=1.0;g[G+100>>2]=1.0;g[G+88>>2]=0.0;c[G+68>>2]=0;c[G+64>>2]=c[k>>2];c[G+76>>2]=c[p>>2];c[G+80>>2]=c[k+12>>2];c[G+84>>2]=c[k+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];F=G+8|0;c[F>>2]=c[n>>2];c[F+4>>2]=c[n+4>>2];c[F+8>>2]=c[n+8>>2];c[F+12>>2]=c[n+12>>2];F=G+24|0;c[F>>2]=c[m>>2];c[F+4>>2]=c[m+4>>2];c[F+8>>2]=c[m+8>>2];c[F+12>>2]=c[m+12>>2];c[s>>2]=c[b+28700>>2];a[e>>0]=a[b+28696>>0]|0;I=G}g[I+96>>2]=+(r|0)*B;c[I+44>>2]=8144;g[I+92>>2]=+(C+(_(z,-90)|0)|0)}if(f){I=c[2068]|0;c[o>>2]=c[u>>2];c[o+4>>2]=c[u+4>>2];c[o+8>>2]=c[u+8>>2];c[o+12>>2]=c[u+12>>2];G=b+28568|0;e=q;while(1){s=e+108|0;if(!(a[s>>0]|0)){J=s;K=e;H=15;break}e=e+112|0;if(e>>>0>G>>>0){L=0;break}}if((H|0)==15){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];G=K+72|0;c[G>>2]=0;c[K+60>>2]=I;c[K+56>>2]=165;I=K+109|0;a[I>>0]=1;h[K+48>>3]=0.0;c[K+40>>2]=0;c[K+44>>2]=8088;a[J>>0]=1;g[K+92>>2]=0.0;g[K+96>>2]=1.0;g[K+104>>2]=1.0;g[K+100>>2]=1.0;g[K+88>>2]=0.0;c[K+68>>2]=0;c[K+64>>2]=c[k>>2];c[K+76>>2]=c[p>>2];c[K+80>>2]=c[k+12>>2];c[K+84>>2]=c[k+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];J=K+8|0;c[J>>2]=c[n>>2];c[J+4>>2]=c[n+4>>2];c[J+8>>2]=c[n+8>>2];c[J+12>>2]=c[n+12>>2];J=K+24|0;c[J>>2]=c[m>>2];c[J+4>>2]=c[m+4>>2];c[J+8>>2]=c[m+8>>2];c[J+12>>2]=c[m+12>>2];c[G>>2]=c[b+28700>>2];a[I>>0]=a[b+28696>>0]|0;L=K}g[L+96>>2]=+(1-t|0)*B;c[L+44>>2]=8144;g[L+92>>2]=+(C+(_(z,-90)|0)|0)}if(!j){M=+h[u>>3];N=M-x;h[u>>3]=N;O=+h[y>>3];P=O-v;h[y>>3]=P;i=l;return}j=f?r:1-t|0;t=c[2068]|0;c[o>>2]=c[u>>2];c[o+4>>2]=c[u+4>>2];c[o+8>>2]=c[u+8>>2];c[o+12>>2]=c[u+12>>2];r=b+28568|0;f=q;while(1){q=f+108|0;if(!(a[q>>0]|0)){Q=q;R=f;H=21;break}f=f+112|0;if(f>>>0>r>>>0){S=0;break}}if((H|0)==21){c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];o=R+72|0;c[o>>2]=0;c[R+60>>2]=t;c[R+56>>2]=166;t=R+109|0;a[t>>0]=1;h[R+48>>3]=0.0;c[R+40>>2]=0;c[R+44>>2]=8088;a[Q>>0]=1;g[R+92>>2]=0.0;g[R+96>>2]=1.0;g[R+104>>2]=1.0;g[R+100>>2]=1.0;g[R+88>>2]=0.0;c[R+68>>2]=0;c[R+64>>2]=c[k>>2];c[R+76>>2]=c[p>>2];c[R+80>>2]=c[k+12>>2];c[R+84>>2]=c[k+16>>2];c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];k=R+8|0;c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];n=R+24|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];c[o>>2]=c[b+28700>>2];a[t>>0]=a[b+28696>>0]|0;S=R}g[S+96>>2]=+(j|0)*B;c[S+44>>2]=8144;g[S+92>>2]=+(C+(_(z,-90)|0)|0);M=+h[u>>3];N=M-x;h[u>>3]=N;O=+h[y>>3];P=O-v;h[y>>3]=P;i=l;return}function Gh(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|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.0,y=0.0;j=i;i=i+64|0;k=j+52|0;l=j+48|0;m=j+44|0;n=j+16|0;o=j+40|0;p=j+36|0;q=j+32|0;r=j;s=a+34600|0;do t=(qn()|0)%4|0;while((t|0)==(c[s>>2]|0));u=t;li(a,u);u=a+56992|0;Qe(n,+((c[u>>2]|0)+270|0),1.0);s=c[b>>2]|0;b=s&65535;t=c[33]|0;v=t+(b<<3)+6|0;w=t+(b<<3)+2|0;x=+(((d[w>>0]|d[w+1>>0]<<8)&65535)-((d[v>>0]|d[v+1>>0]<<8)<<16>>16)|0);y=+h[n+8>>3]*x;v=a+28680|0;h[v>>3]=+h[v>>3]-+h[n>>3]*x;n=a+28688|0;h[n>>3]=+h[n>>3]-y;c[o>>2]=s;c[p>>2]=c[e>>2];c[q>>2]=c[f>>2];c[m>>2]=c[o>>2];c[l>>2]=c[p>>2];c[k>>2]=c[q>>2];ni(a,m,l,k,g);Qe(r,+((c[u>>2]|0)+270|0),1.0);u=(c[33]|0)+(b<<3)+6|0;y=+(0-((d[u>>0]|d[u+1>>0]<<8)<<16>>16)|0);x=+h[r+8>>3]*y;h[v>>3]=+h[v>>3]+ +h[r>>3]*y;h[n>>3]=x+ +h[n>>3];i=j;return}function Hh(f,j,k,l){f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0.0,N=0,O=0,P=0,Q=0,R=0,S=0.0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0;m=i;i=i+112|0;n=m+96|0;o=m+80|0;p=m+64|0;q=m+48|0;r=m+32|0;s=m+16|0;t=m;u=f+34600|0;do v=(qn()|0)%4|0;while((v|0)==(c[u>>2]|0));w=v;li(f,w);w=c[j>>2]|0;u=w&65535;v=Rd(u)|0;x=(v|0)<((e[10]|0)>>>1&65535|0)?-1:1;v=c[l+48>>2]|0;y=0-x|0;z=+g[l+24>>2];A=+g[l+28>>2]-z;B=A*(+((qn()|0)&32767|0)/32767.0);C=f+56992|0;Qe(q,+((c[C>>2]|0)+270|0),1.0);D=w&65535;E=c[33]|0;F=E+(D<<3)+6|0;G=E+(D<<3)+2|0;A=+(((d[G>>0]|d[G+1>>0]<<8)&65535)-((d[F>>0]|d[F+1>>0]<<8)<<16>>16)|0);H=+h[q+8>>3]*A;F=f+28680|0;h[F>>3]=+h[F>>3]-+h[q>>3]*A;q=f+28688|0;h[q>>3]=+h[q>>3]-H;G=c[2069]|0;D=Rd(u)|0;u=b[16]|0;h[o>>3]=+((((u&65535)-(e[10]|0)|0)/2|0)+D|0)-+((u&65535)>>>1&65535|0);h[o+8>>3]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;H=+(c[C>>2]|0);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Pe(r,o,n,H);H=+h[F>>3];A=+h[q>>3];I=+h[r>>3];J=+h[r+8>>3];r=f+8|0;while(1){n=r+108|0;if(!(a[n>>0]|0)){K=n;L=r;break}else r=r+112|0}M=H+I;I=A+J;c[L+60>>2]=G;c[L+56>>2]=w;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[l>>2];c[L+76>>2]=c[l+8>>2];c[L+80>>2]=c[l+12>>2];c[L+84>>2]=c[l+16>>2];h[L+8>>3]=M;h[L+16>>3]=I;h[L+24>>3]=M;h[L+32>>3]=I;c[L+72>>2]=c[f+28700>>2];a[L+109>>0]=a[f+28696>>0]|0;g[L+96>>2]=+(((v|0)==0?x:y)|0)*(z+B);Qe(s,+((c[C>>2]|0)+270|0),1.0);y=c[j>>2]|0;B=+(Sd(y&65535)|0);j=(c[33]|0)+((c[k>>2]&65535)<<3)+6|0;z=B-+((d[j>>0]|d[j+1>>0]<<8)<<16>>16);B=+h[F>>3]-+h[s>>3]*z;I=+h[q>>3]-+h[s+8>>3]*z;s=f+34560|0;j=f+32040|0;while(1){k=j+28|0;if(!(c[k>>2]|0)){N=k;O=j;break}j=j+40|0;if(j>>>0>s>>>0){P=14;break}}if((P|0)==14){Q=c[C>>2]|0;R=Q+270|0;S=+(R|0);Qe(t,S,1.0);T=y&65535;U=c[33]|0;V=U+(T<<3)+6|0;W=d[V>>0]|d[V+1>>0]<<8;X=W<<16>>16;Y=0-X|0;Z=+(Y|0);_=Z;$=+h[t>>3];aa=$*_;ba=t+8|0;ca=+h[ba>>3];da=ca*_;ea=+h[F>>3];fa=ea+aa;h[F>>3]=fa;ga=+h[q>>3];ha=da+ga;h[q>>3]=ha;i=m;return}s=f+56200|0;j=c[s>>2]|0;c[s>>2]=j+1;switch(c[372]|0){case 0:{ia=5352;P=10;break}case 2:{ia=5356;P=10;break}case 3:{ia=5368;P=10;break}default:{}}if((P|0)==10?(P=c[ia>>2]|0,(P|0)==(j|0)&((P|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=I;h[O+8>>3]=B;h[O+16>>3]=I;c[N>>2]=1;g[O+24>>2]=1.0;a[O+32>>0]=(c[372]|0)!=3&1;Q=c[C>>2]|0;R=Q+270|0;S=+(R|0);Qe(t,S,1.0);T=y&65535;U=c[33]|0;V=U+(T<<3)+6|0;W=d[V>>0]|d[V+1>>0]<<8;X=W<<16>>16;Y=0-X|0;Z=+(Y|0);_=Z;$=+h[t>>3];aa=$*_;ba=t+8|0;ca=+h[ba>>3];da=ca*_;ea=+h[F>>3];fa=ea+aa;h[F>>3]=fa;ga=+h[q>>3];ha=da+ga;h[q>>3]=ha;i=m;return}function Ih(b,e,f){b=b|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0.0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j;n=j+16|0;o=j+64|0;p=e+-1|0;q=b+34600|0;do r=c[8104+(p*12|0)+(((qn()|0)%3|0)<<2)>>2]|0;while((r|0)==(c[q>>2]|0));s=r;q=8104+(p*12|0)|0;li(b,s);s=((qn()|0)<<1&2^2)+-1|0;t=+g[f+24>>2];u=+g[f+28>>2]-t;v=t+u*(+((qn()|0)&32767|0)/32767.0);p=(e|0)==1?218:219;e=(c[33]|0)+(p<<3)+6|0;u=-+(0-((d[e>>0]|d[e+1>>0]<<8)<<16>>16)|0);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);t=u*+h[n>>3];w=u*+h[n+8>>3];n=b+28680|0;h[n>>3]=+h[n>>3]-t;e=b+28688|0;h[e>>3]=+h[e>>3]-w;c[o>>2]=221;c[k>>2]=c[o>>2];mi(b,k);o=c[2071]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];r=b+28568|0;x=b+8|0;while(1){y=x+108|0;if(!(a[y>>0]|0)){z=y;A=x;break}x=x+112|0;if(x>>>0>r>>>0){B=0;C=7;break}}if((C|0)==7){D=+(s|0);E=D*v;F=B+96|0;g[F>>2]=E;G=B+44|0;c[G>>2]=q;H=+h[n>>3];I=H-t;h[n>>3]=I;J=+h[e>>3];K=J-w;h[e>>3]=K;i=j;return};c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=A+72|0;c[m>>2]=0;c[A+60>>2]=o;c[A+56>>2]=p;p=A+109|0;a[p>>0]=1;h[A+48>>3]=0.0;c[A+40>>2]=0;c[A+44>>2]=8088;a[z>>0]=1;g[A+92>>2]=0.0;g[A+96>>2]=1.0;g[A+104>>2]=1.0;g[A+100>>2]=1.0;g[A+88>>2]=0.0;c[A+68>>2]=0;c[A+64>>2]=c[f>>2];c[A+76>>2]=c[f+8>>2];c[A+80>>2]=c[f+12>>2];c[A+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];f=A+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=A+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[p>>0]=a[b+28696>>0]|0;B=A;D=+(s|0);E=D*v;F=B+96|0;g[F>>2]=E;G=B+44|0;c[G>>2]=q;H=+h[n>>3];I=H-t;h[n>>3]=I;J=+h[e>>3];K=J-w;h[e>>3]=K;i=j;return}function Jh(b,e,f){b=b|0;e=e|0;f=f|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.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0,R=0,S=0.0,T=0.0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j;n=j+16|0;o=j+64|0;p=e+-1|0;q=b+34600|0;do{r=(qn()|0)%3|0;s=c[8104+(p*12|0)+(r<<2)>>2]|0}while((s|0)==(c[q>>2]|0));t=r;u=s;q=8104+(p*12|0)|0;li(b,u);p=(qn()|0)<<1&2^2;s=p+-1|0;r=(e|0)==1?180:182;e=(c[33]|0)+(r<<3)+6|0;v=-+(0-((d[e>>0]|d[e+1>>0]<<8)<<16>>16)|0);e=b+56992|0;Qe(n,+((c[e>>2]|0)+270|0),1.0);w=v*+h[n>>3];x=v*+h[n+8>>3];n=b+28680|0;h[n>>3]=+h[n>>3]-w;y=b+28688|0;h[y>>3]=+h[y>>3]-x;v=+g[f+24>>2];z=+g[f+28>>2]-v;A=v+z*(+((qn()|0)&32767|0)/32767.0);c[o>>2]=221;c[k>>2]=c[o>>2];mi(b,k);o=c[e>>2]|0;e=o+-135|0;B=c[2071]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];C=b+8|0;D=b+28568|0;E=C;while(1){F=E+108|0;if(!(a[F>>0]|0)){G=F;H=E;I=6;break}E=E+112|0;if(E>>>0>D>>>0){J=0;break}}if((I|0)==6){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];E=H+72|0;c[E>>2]=0;c[H+60>>2]=B;c[H+56>>2]=r;r=H+109|0;a[r>>0]=1;h[H+48>>3]=0.0;c[H+40>>2]=0;c[H+44>>2]=8088;a[G>>0]=1;g[H+92>>2]=0.0;g[H+96>>2]=1.0;g[H+104>>2]=1.0;g[H+100>>2]=1.0;g[H+88>>2]=0.0;c[H+68>>2]=0;c[H+64>>2]=c[f>>2];c[H+76>>2]=c[f+8>>2];c[H+80>>2]=c[f+12>>2];c[H+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];G=H+8|0;c[G>>2]=c[l>>2];c[G+4>>2]=c[l+4>>2];c[G+8>>2]=c[l+8>>2];c[G+12>>2]=c[l+12>>2];G=H+24|0;c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];c[E>>2]=c[b+28700>>2];a[r>>0]=a[b+28696>>0]|0;J=H}c[J+44>>2]=q;g[J+92>>2]=+(o+-120+(_(t,-120)|0)|0);g[J+96>>2]=+(s|0)*A;s=c[2068]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];J=C;while(1){C=J+108|0;if(!(a[C>>0]|0)){K=C;L=J;break}J=J+112|0;if(J>>>0>D>>>0){M=0;I=11;break}}if((I|0)==11){N=_(u,-90)|0;O=e+N|0;P=+(O|0);Q=M+92|0;g[Q>>2]=P;R=1-p|0;S=+(R|0);T=S*A;U=M+96|0;g[U>>2]=T;V=+h[n>>3];W=V-w;h[n>>3]=W;X=+h[y>>3];Y=X-x;h[y>>3]=Y;i=j;return};c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=L+72|0;c[m>>2]=0;c[L+60>>2]=s;c[L+56>>2]=181;s=L+109|0;a[s>>0]=1;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+96>>2]=1.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[f>>2];c[L+76>>2]=c[f+8>>2];c[L+80>>2]=c[f+12>>2];c[L+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];f=L+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=L+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[s>>0]=a[b+28696>>0]|0;M=L;N=_(u,-90)|0;O=e+N|0;P=+(O|0);Q=M+92|0;g[Q>>2]=P;R=1-p|0;S=+(R|0);T=S*A;U=M+96|0;g[U>>2]=T;V=+h[n>>3];W=V-w;h[n>>3]=W;X=+h[y>>3];Y=X-x;h[y>>3]=Y;i=j;return}function Kh(f,j,k,l){f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0.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;m=i;i=i+112|0;n=m+96|0;o=m+80|0;p=m+64|0;q=m+48|0;r=m+32|0;s=m+16|0;t=m;u=f+34600|0;do v=(qn()|0)%4|0;while((v|0)==(c[u>>2]|0));w=v;li(f,w);w=l+8|0;u=f+56992|0;if(+g[w>>2]!=0.0){Qe(n,+((c[u>>2]|0)+270|0),1.0);x=+(e[10]|0)*.10999999940395355;y=+h[n+8>>3]*x;v=f+28680|0;h[v>>3]=+h[v>>3]-+h[n>>3]*x;z=f+28688|0;h[z>>3]=+h[z>>3]-y;A=v;B=z}else{A=f+28680|0;B=f+28688|0}z=((qn()|0)<<1&2^2)+-1|0;y=+g[l+24>>2];x=+g[l+28>>2]-y;C=y+x*(+((qn()|0)&32767|0)/32767.0);Qe(q,+((c[u>>2]|0)+270|0),1.0);v=c[j>>2]|0;D=v&65535;E=c[33]|0;F=E+(D<<3)+6|0;G=E+(D<<3)+2|0;x=+(((d[G>>0]|d[G+1>>0]<<8)&65535)-((d[F>>0]|d[F+1>>0]<<8)<<16>>16)|0)*1.4142135623730951;y=+h[q+8>>3]*x;h[A>>3]=+h[A>>3]-+h[q>>3]*x;h[B>>3]=+h[B>>3]-y;q=c[2072]|0;F=Rd(v&65535)|0;G=b[16]|0;h[o>>3]=+((((G&65535)-(e[10]|0)|0)/2|0)+F|0)-+((G&65535)>>>1&65535|0);h[o+8>>3]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;y=+(c[u>>2]|0);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Pe(r,o,n,y);y=+h[A>>3]+ +h[r>>3];x=+h[B>>3]+ +h[r+8>>3];r=f+28568|0;o=f+8|0;while(1){p=o+108|0;if(!(a[p>>0]|0)){H=p;I=o;J=9;break}o=o+112|0;if(o>>>0>r>>>0){K=0;L=v;break}}if((J|0)==9){c[I+60>>2]=q;c[I+56>>2]=v;h[I+48>>3]=0.0;c[I+40>>2]=0;c[I+44>>2]=8088;a[H>>0]=1;g[I+92>>2]=0.0;g[I+96>>2]=1.0;g[I+104>>2]=1.0;g[I+100>>2]=1.0;g[I+88>>2]=0.0;c[I+68>>2]=0;c[I+64>>2]=c[l>>2];c[I+76>>2]=c[w>>2];c[I+80>>2]=c[l+12>>2];c[I+84>>2]=c[l+16>>2];h[I+8>>3]=y;h[I+16>>3]=x;h[I+24>>3]=y;h[I+32>>3]=x;c[I+72>>2]=c[f+28700>>2];a[I+109>>0]=a[f+28696>>0]|0;K=I;L=c[j>>2]|0}c[K+44>>2]=8128;g[K+96>>2]=+(z|0)*C;Qe(s,+((c[u>>2]|0)+270|0),1.0);C=+(Sd(L&65535)|0);z=(c[33]|0)+((c[k>>2]&65535)<<3)+6|0;x=C-+((d[z>>0]|d[z+1>>0]<<8)<<16>>16);C=+h[A>>3]-+h[s>>3]*x;y=+h[B>>3]-+h[s+8>>3]*x;s=f+34560|0;z=f+32040|0;do{k=z+28|0;if(!(c[k>>2]|0)){M=k;N=z;J=12;break}z=z+40|0}while(z>>>0<=s>>>0);if((J|0)==12){s=f+56200|0;z=c[s>>2]|0;c[s>>2]=z+1;switch(c[372]|0){case 0:{O=5352;J=15;break}case 2:{O=5356;J=15;break}case 3:{O=5368;J=15;break}default:{}}if((J|0)==15?(J=c[O>>2]|0,(J|0)==(z|0)&((J|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=y;h[N+8>>3]=C;h[N+16>>3]=y;c[M>>2]=1;g[N+24>>2]=1.0;a[N+32>>0]=(c[372]|0)!=3&1}Qe(t,+((c[u>>2]|0)+270|0),1.0);N=(c[33]|0)+((L&65535)<<3)+6|0;y=+(0-((d[N>>0]|d[N+1>>0]<<8)<<16>>16)|0)*1.4142135623730951;C=+h[t+8>>3]*y;h[A>>3]=+h[A>>3]+ +h[t>>3]*y;h[B>>3]=+h[B>>3]+C;if(!(+g[w>>2]!=0.0)){i=m;return}Qe(n,+((c[u>>2]|0)+270|0),1.0);C=+(e[10]|0)*.10999999940395355;y=+h[n+8>>3]*C;h[A>>3]=+h[A>>3]-+h[n>>3]*C;h[B>>3]=+h[B>>3]-y;i=m;return}function Lh(f,j,k,l){f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0.0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;m=i;i=i+112|0;n=m+96|0;o=m+80|0;p=m+64|0;q=m+48|0;r=m+32|0;s=m+16|0;t=m;u=f+34600|0;do v=(qn()|0)%4|0;while((v|0)==(c[u>>2]|0));w=v;li(f,w);w=l+8|0;u=f+56992|0;if(+g[w>>2]!=0.0){Qe(n,+((c[u>>2]|0)+270|0),1.0);x=+(e[10]|0)*.10999999940395355;y=+h[n+8>>3]*x;v=f+28680|0;h[v>>3]=+h[v>>3]-+h[n>>3]*x;z=f+28688|0;h[z>>3]=+h[z>>3]-y;A=z;B=v}else{A=f+28688|0;B=f+28680|0}v=(qn()|0)<<1&2^2;y=+g[l+24>>2];x=+g[l+28>>2]-y;C=x*(+((qn()|0)&32767|0)/32767.0);z=c[2077]|0;D=f+28680|0;Qe(q,+((c[u>>2]|0)+270|0),1.0);E=c[j>>2]|0;F=E&65535;G=c[33]|0;H=G+(F<<3)+6|0;I=G+(F<<3)+2|0;F=G+1472|0;x=+((d[F>>0]|d[F+1>>0]<<8)&65535|0)+ +(((d[I>>0]|d[I+1>>0]<<8)&65535)-((d[H>>0]|d[H+1>>0]<<8)<<16>>16)|0)*1.4142135623730951;J=+h[q+8>>3]*x;h[D>>3]=+h[D>>3]-+h[q>>3]*x;h[A>>3]=+h[A>>3]-J;q=c[2072]|0;H=Rd(E&65535)|0;I=b[16]|0;h[o>>3]=+((((I&65535)-(e[10]|0)|0)/2|0)+H|0)-+((I&65535)>>>1&65535|0);h[o+8>>3]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;J=+(c[u>>2]|0);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Pe(r,o,n,J);J=+h[B>>3];x=+h[A>>3];K=+h[r>>3];L=+h[r+8>>3];r=f+8|0;I=r;while(1){H=I+108|0;if(!(a[H>>0]|0)){M=H;N=I;break}else I=I+112|0}O=J+K;K=x+L;I=f+28568|0;c[N+60>>2]=q;c[N+56>>2]=E;h[N+48>>3]=0.0;c[N+40>>2]=0;a[M>>0]=1;g[N+92>>2]=0.0;g[N+104>>2]=1.0;g[N+100>>2]=1.0;g[N+88>>2]=0.0;c[N+68>>2]=0;c[N+64>>2]=c[l>>2];c[N+76>>2]=c[w>>2];M=l+12|0;c[N+80>>2]=c[M>>2];E=l+16|0;c[N+84>>2]=c[E>>2];h[N+8>>3]=O;h[N+16>>3]=K;h[N+24>>3]=O;h[N+32>>3]=K;q=f+28700|0;c[N+72>>2]=c[q>>2];H=f+28696|0;a[N+109>>0]=a[H>>0]|0;c[N+44>>2]=8128;K=+(v+-1|0)*(y+C);g[N+96>>2]=K;c[p>>2]=c[D>>2];c[p+4>>2]=c[D+4>>2];c[p+8>>2]=c[D+8>>2];c[p+12>>2]=c[D+12>>2];N=r;while(1){r=N+108|0;if(!(a[r>>0]|0)){P=r;Q=N;R=11;break}N=N+112|0;if(N>>>0>I>>>0){S=0;break}}if((R|0)==11){c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=Q+72|0;c[p>>2]=0;c[Q+60>>2]=z;c[Q+56>>2]=184;z=Q+109|0;a[z>>0]=1;h[Q+48>>3]=0.0;c[Q+40>>2]=0;c[Q+44>>2]=8088;a[P>>0]=1;g[Q+92>>2]=0.0;g[Q+96>>2]=1.0;g[Q+104>>2]=1.0;g[Q+100>>2]=1.0;g[Q+88>>2]=0.0;c[Q+68>>2]=0;c[Q+64>>2]=c[l>>2];c[Q+76>>2]=c[w>>2];c[Q+80>>2]=c[M>>2];c[Q+84>>2]=c[E>>2];c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];E=Q+8|0;c[E>>2]=c[o>>2];c[E+4>>2]=c[o+4>>2];c[E+8>>2]=c[o+8>>2];c[E+12>>2]=c[o+12>>2];o=Q+24|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[p>>2]=c[q>>2];a[z>>0]=a[H>>0]|0;S=Q}g[S+96>>2]=K*.7;Q=c[j>>2]|0;g[S+88>>2]=+(Q|0);Qe(s,+((c[u>>2]|0)+270|0),1.0);K=+(Sd(Q&65535)|0);S=(c[33]|0)+((c[k>>2]&65535)<<3)+6|0;C=K-+((d[S>>0]|d[S+1>>0]<<8)<<16>>16);K=+h[D>>3]-+h[s>>3]*C;y=+h[A>>3]-+h[s+8>>3]*C;s=f+34560|0;S=f+32040|0;do{k=S+28|0;if(!(c[k>>2]|0)){T=k;U=S;R=14;break}S=S+40|0}while(S>>>0<=s>>>0);if((R|0)==14){s=f+56200|0;S=c[s>>2]|0;c[s>>2]=S+1;switch(c[372]|0){case 0:{V=5352;R=17;break}case 2:{V=5356;R=17;break}case 3:{V=5368;R=17;break}default:{}}if((R|0)==17?(R=c[V>>2]|0,(R|0)==(S|0)&((R|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=y;h[U+8>>3]=K;h[U+16>>3]=y;c[T>>2]=1;g[U+24>>2]=1.0;a[U+32>>0]=(c[372]|0)!=3&1}Qe(t,+((c[u>>2]|0)+270|0),1.0);U=c[33]|0;T=U+((Q&65535)<<3)+6|0;Q=U+1472|0;y=+(0-((d[T>>0]|d[T+1>>0]<<8)<<16>>16)|0)*1.4142135623730951-+((d[Q>>0]|d[Q+1>>0]<<8)&65535|0);K=+h[t+8>>3]*y;h[D>>3]=+h[D>>3]+ +h[t>>3]*y;h[A>>3]=+h[A>>3]+K;if(!(+g[w>>2]!=0.0)){i=m;return}Qe(n,+((c[u>>2]|0)+270|0),1.0);K=+(e[10]|0)*.10999999940395355;y=+h[n+8>>3]*K;h[B>>3]=+h[B>>3]-+h[n>>3]*K;h[A>>3]=+h[A>>3]-y;i=m;return}function Mh(b,e){b=b|0;e=e|0;var f=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.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;f=i;i=i+144|0;j=f+112|0;k=f+96|0;l=f+80|0;m=f+64|0;n=f+48|0;o=f+32|0;p=f+128|0;q=f+16|0;r=f;s=b+34600|0;do t=(qn()|0)%4|0;while((t|0)==(c[s>>2]|0));u=t;li(b,u);u=((qn()|0)<<1&2^2)+-1|0;v=+g[e+24>>2];w=+g[e+28>>2]-v;x=v+w*(+((qn()|0)&32767|0)/32767.0);w=x>0.0?1.5:.75;s=b+28680|0;t=(c[33]|0)+1562|0;v=+((d[t>>0]|d[t+1>>0]<<8)&65535|0)*w;t=b+56992|0;Qe(m,+((c[t>>2]|0)+270|0),1.0);y=v*+h[m+8>>3];h[s>>3]=+h[s>>3]-+h[m>>3]*v;m=b+28688|0;h[m>>3]=+h[m>>3]-y;z=c[2081]|0;c[l>>2]=c[s>>2];c[l+4>>2]=c[s+4>>2];c[l+8>>2]=c[s+8>>2];c[l+12>>2]=c[s+12>>2];A=b+28568|0;B=b+8|0;while(1){C=B+108|0;if(!(a[C>>0]|0)){D=C;E=B;F=6;break}B=B+112|0;if(B>>>0>A>>>0){G=0;break}}if((F|0)==6){c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=E+72|0;c[l>>2]=0;c[E+60>>2]=z;c[E+56>>2]=195;z=E+109|0;a[z>>0]=1;h[E+48>>3]=0.0;c[E+40>>2]=0;c[E+44>>2]=8088;a[D>>0]=1;g[E+92>>2]=0.0;g[E+96>>2]=1.0;g[E+104>>2]=1.0;g[E+100>>2]=1.0;g[E+88>>2]=0.0;c[E+68>>2]=0;c[E+64>>2]=c[e>>2];c[E+76>>2]=c[e+8>>2];c[E+80>>2]=c[e+12>>2];c[E+84>>2]=c[e+16>>2];c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];e=E+8|0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];k=E+24|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[l>>2]=c[b+28700>>2];a[z>>0]=a[b+28696>>0]|0;G=E}c[G+40>>2]=(qn()|0)%4|0;g[G+96>>2]=+(u|0)*x;g[G+92>>2]=0.0;G=(c[33]|0)+1562|0;x=w*+((d[G>>0]|d[G+1>>0]<<8)&65535|0);Qe(n,+((c[t>>2]|0)+270|0),1.0);w=x*+h[n+8>>3];h[s>>3]=+h[s>>3]-+h[n>>3]*x;h[m>>3]=+h[m>>3]-w;n=Sd(195)|0;G=(c[33]|0)+1614|0;w=+(n-((d[G>>0]|d[G+1>>0]<<8)<<16>>16)|0)*.20000000298023224;Qe(o,+((c[t>>2]|0)+270|0),1.0);x=+h[o+8>>3]*w;h[s>>3]=+h[s>>3]-+h[o>>3]*w;h[m>>3]=+h[m>>3]-x;c[p>>2]=201;c[j>>2]=c[p>>2];mi(b,j);j=Sd(195)|0;b=(c[33]|0)+1614|0;x=+(j-((d[b>>0]|d[b+1>>0]<<8)<<16>>16)|0)*2.200000047683716;Qe(q,+((c[t>>2]|0)+270|0),1.0);w=+h[q+8>>3]*x;h[s>>3]=+h[s>>3]-+h[q>>3]*x;h[m>>3]=+h[m>>3]-w;q=Sd(195)|0;b=(c[33]|0)+1614|0;w=+(q-((d[b>>0]|d[b+1>>0]<<8)<<16>>16)|0);Qe(r,+((c[t>>2]|0)+270|0),1.0);x=w*+h[r+8>>3];h[s>>3]=+h[r>>3]*w+ +h[s>>3];h[m>>3]=x+ +h[m>>3];i=f;return}function Nh(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=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.0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0,S=0.0;f=i;i=i+128|0;j=f+104|0;k=f+96|0;l=f+80|0;m=f+64|0;n=f+48|0;o=f+32|0;p=f+120|0;q=f+16|0;r=f;if((c[372]|0)==3?(s=+g[e+20>>2],s!=0.0):0){c[k>>2]=~~s;Pn(240518,k)|0;i=f;return}k=b+34600|0;do t=(qn()|0)%4|0;while((t|0)==(c[k>>2]|0));u=t;li(b,u);u=((qn()|0)<<1&2^2)+-1|0;s=+g[e+24>>2];v=+g[e+28>>2]-s;w=s+v*(+((qn()|0)&32767|0)/32767.0);k=(c[33]|0)+1562|0;v=+((d[k>>0]|d[k+1>>0]<<8)&65535|0)*.75;k=b+56992|0;Qe(n,+((c[k>>2]|0)+270|0),1.0);s=+h[n>>3]*v;x=v*+h[n+8>>3];n=b+28680|0;t=b+28688|0;y=b+8|0;z=b+28568|0;A=e+8|0;B=e+12|0;C=e+16|0;D=b+28700|0;E=b+28696|0;F=o+8|0;G=q+8|0;v=+h[n>>3];H=+h[t>>3];I=0;J=u;while(1){h[n>>3]=v-s;h[t>>3]=H-x;u=c[2074]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];K=y;while(1){L=K+108|0;if(!(a[L>>0]|0)){M=L;N=K;O=10;break}K=K+112|0;if(K>>>0>z>>>0){P=0;break}}if((O|0)==10){O=0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];K=N+72|0;c[K>>2]=0;c[N+60>>2]=u;c[N+56>>2]=195;L=N+109|0;a[L>>0]=1;h[N+48>>3]=0.0;c[N+40>>2]=0;c[N+44>>2]=8088;a[M>>0]=1;g[N+92>>2]=0.0;g[N+96>>2]=1.0;g[N+104>>2]=1.0;g[N+100>>2]=1.0;g[N+88>>2]=0.0;c[N+68>>2]=0;c[N+64>>2]=c[e>>2];c[N+76>>2]=c[A>>2];c[N+80>>2]=c[B>>2];c[N+84>>2]=c[C>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];Q=N+8|0;c[Q>>2]=c[l>>2];c[Q+4>>2]=c[l+4>>2];c[Q+8>>2]=c[l+8>>2];c[Q+12>>2]=c[l+12>>2];Q=N+24|0;c[Q>>2]=c[j>>2];c[Q+4>>2]=c[j+4>>2];c[Q+8>>2]=c[j+8>>2];c[Q+12>>2]=c[j+12>>2];c[K>>2]=c[D>>2];a[L>>0]=a[E>>0]|0;P=N}g[P+96>>2]=w*+(J|0);g[P+92>>2]=+((qn()|0)%360|0|0);h[n>>3]=+h[n>>3]-s;h[t>>3]=+h[t>>3]-x;L=Sd(195)|0;K=(c[33]|0)+1614|0;R=+(L-((d[K>>0]|d[K+1>>0]<<8)<<16>>16)|0)*.20000000298023224;Qe(o,+((c[k>>2]|0)+270|0),1.0);S=+h[F>>3]*R;h[n>>3]=+h[n>>3]-+h[o>>3]*R;h[t>>3]=+h[t>>3]-S;c[p>>2]=201;c[j>>2]=c[p>>2];mi(b,j);K=Sd(195)|0;L=(c[33]|0)+1614|0;S=+(K-((d[L>>0]|d[L+1>>0]<<8)<<16>>16)|0)*2.200000047683716;Qe(q,+((c[k>>2]|0)+270|0),1.0);R=+h[G>>3]*S;v=+h[n>>3]-+h[q>>3]*S;h[n>>3]=v;H=+h[t>>3]-R;h[t>>3]=H;I=I+1|0;if((I|0)==4)break;else J=0-J|0}J=Sd(195)|0;I=(c[33]|0)+1614|0;H=+(J-((d[I>>0]|d[I+1>>0]<<8)<<16>>16)|0);Qe(r,+((c[k>>2]|0)+270|0),1.0);v=H*+h[r+8>>3];h[n>>3]=+h[r>>3]*H+ +h[n>>3];h[t>>3]=v+ +h[t>>3];i=f;return}function Oh(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0,L=0,M=0;f=i;i=i+144|0;j=f+120|0;k=f+112|0;l=f+96|0;m=f+80|0;n=f+64|0;o=f+48|0;p=f+32|0;q=f+16|0;r=f+136|0;s=f;if((c[372]|0)==3?(t=+g[e+20>>2],t!=0.0):0){c[k>>2]=~~t;Pn(240518,k)|0;i=f;return}k=b+34600|0;do u=(qn()|0)%4|0;while((u|0)==(c[k>>2]|0));v=u;li(b,v);v=((qn()|0)<<1&2^2)+-1|0;u=b+28680|0;w=(c[33]|0)+1562|0;t=+((d[w>>0]|d[w+1>>0]<<8)&65535|0)*.6000000238418579;w=b+56992|0;Qe(n,+((c[w>>2]|0)+270|0),1.0);x=t*+h[n+8>>3];h[u>>3]=+h[u>>3]-+h[n>>3]*t;n=b+28688|0;h[n>>3]=+h[n>>3]-x;y=(c[33]|0)+1560|0;z=_((d[y>>0]|d[y+1>>0]<<8)&65535,0-(c[k>>2]|0)|0)|0;x=+g[e+24>>2];t=+g[e+28>>2]-x;A=x+t*(+((qn()|0)&32767|0)/32767.0);k=c[2074]|0;c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];y=b+8|0;B=b+28568|0;C=y;while(1){D=C+108|0;if(!(a[D>>0]|0)){E=D;F=C;G=9;break}C=C+112|0;if(C>>>0>B>>>0){H=0;break}}if((G|0)==9){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];C=F+72|0;c[C>>2]=0;c[F+60>>2]=k;c[F+56>>2]=195;k=F+109|0;a[k>>0]=1;h[F+48>>3]=0.0;c[F+40>>2]=0;c[F+44>>2]=8088;a[E>>0]=1;g[F+92>>2]=0.0;g[F+96>>2]=1.0;g[F+104>>2]=1.0;g[F+100>>2]=1.0;g[F+88>>2]=0.0;c[F+68>>2]=0;c[F+64>>2]=c[e>>2];c[F+76>>2]=c[e+8>>2];c[F+80>>2]=c[e+12>>2];c[F+84>>2]=c[e+16>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];E=F+8|0;c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];E=F+24|0;c[E>>2]=c[j>>2];c[E+4>>2]=c[j+4>>2];c[E+8>>2]=c[j+8>>2];c[E+12>>2]=c[j+12>>2];c[C>>2]=c[b+28700>>2];a[k>>0]=a[b+28696>>0]|0;H=F}t=+(v|0);g[H+96>>2]=t*1.5*A;x=+(z|0);g[H+92>>2]=x;H=(c[33]|0)+1562|0;I=+((d[H>>0]|d[H+1>>0]<<8)&65535|0);Qe(o,+((c[w>>2]|0)+270|0),1.0);J=I*+h[o+8>>3];h[u>>3]=+h[u>>3]-I*+h[o>>3];h[n>>3]=+h[n>>3]-J;o=c[2074]|0;c[m>>2]=c[u>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];c[m+12>>2]=c[u+12>>2];H=y;while(1){y=H+108|0;if(!(a[y>>0]|0)){K=y;L=H;G=13;break}H=H+112|0;if(H>>>0>B>>>0){M=0;break}}if((G|0)==13){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=L+72|0;c[m>>2]=0;c[L+60>>2]=o;c[L+56>>2]=195;o=L+109|0;a[o>>0]=1;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+96>>2]=1.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[e>>2];c[L+76>>2]=c[e+8>>2];c[L+80>>2]=c[e+12>>2];c[L+84>>2]=c[e+16>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];e=L+8|0;c[e>>2]=c[l>>2];c[e+4>>2]=c[l+4>>2];c[e+8>>2]=c[l+8>>2];c[e+12>>2]=c[l+12>>2];l=L+24|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];c[m>>2]=c[b+28700>>2];a[o>>0]=a[b+28696>>0]|0;M=L}g[M+96>>2]=t*-.75*A;g[M+92>>2]=x;M=(c[33]|0)+1562|0;x=+((d[M>>0]|d[M+1>>0]<<8)&65535|0)*.6000000238418579;Qe(p,+((c[w>>2]|0)+270|0),1.0);A=x*+h[p+8>>3];h[u>>3]=+h[u>>3]-+h[p>>3]*x;h[n>>3]=+h[n>>3]-A;p=Sd(195)|0;M=(c[33]|0)+1614|0;A=+(p-((d[M>>0]|d[M+1>>0]<<8)<<16>>16)|0)*.20000000298023224;Qe(q,+((c[w>>2]|0)+270|0),1.0);x=+h[q+8>>3]*A;h[u>>3]=+h[u>>3]-+h[q>>3]*A;h[n>>3]=+h[n>>3]-x;c[r>>2]=201;c[j>>2]=c[r>>2];mi(b,j);j=Sd(195)|0;b=(c[33]|0)+1614|0;x=+(j-((d[b>>0]|d[b+1>>0]<<8)<<16>>16)|0);Qe(s,+((c[w>>2]|0)+270|0),1.0);A=x*+h[s+8>>3];h[u>>3]=+h[u>>3]-+h[s>>3]*x;h[n>>3]=+h[n>>3]-A;i=f;return}function Ph(b,e){b=b|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=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,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0.0,T=0.0;f=i;i=i+128|0;j=f+104|0;k=f+96|0;l=f+80|0;m=f+64|0;n=f+48|0;o=f+32|0;p=f+120|0;q=f+16|0;r=f;if((c[372]|0)==3?(s=+g[e+20>>2],s!=0.0):0){c[k>>2]=~~s;Pn(240518,k)|0;i=f;return}k=b+34600|0;do t=(qn()|0)%4|0;while((t|0)==(c[k>>2]|0));u=t;li(b,u);u=((qn()|0)<<1&2^2)+-1|0;s=+g[e+24>>2];v=+g[e+28>>2]-s;w=s+v*(+((qn()|0)&32767|0)/32767.0);k=(qn()|0)%6|0;t=(c[33]|0)+1562|0;v=+((d[t>>0]|d[t+1>>0]<<8)&65535|0)*.75;t=b+56992|0;Qe(n,+((c[t>>2]|0)+270|0),1.0);s=+h[n>>3]*v;x=v*+h[n+8>>3];n=b+28680|0;y=b+28688|0;z=b+8|0;A=b+28568|0;B=e+8|0;C=e+12|0;D=e+16|0;E=b+28700|0;F=b+28696|0;G=o+8|0;H=q+8|0;v=+h[n>>3];I=+h[y>>3];J=0;K=u;while(1){h[n>>3]=v-s;h[y>>3]=I-x;u=c[2074]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];L=z;while(1){M=L+108|0;if(!(a[M>>0]|0)){N=M;O=L;P=10;break}L=L+112|0;if(L>>>0>A>>>0){Q=0;break}}if((P|0)==10){P=0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];L=O+72|0;c[L>>2]=0;c[O+60>>2]=u;c[O+56>>2]=195;M=O+109|0;a[M>>0]=1;h[O+48>>3]=0.0;c[O+40>>2]=0;c[O+44>>2]=8088;a[N>>0]=1;g[O+92>>2]=0.0;g[O+96>>2]=1.0;g[O+104>>2]=1.0;g[O+100>>2]=1.0;g[O+88>>2]=0.0;c[O+68>>2]=0;c[O+64>>2]=c[e>>2];c[O+76>>2]=c[B>>2];c[O+80>>2]=c[C>>2];c[O+84>>2]=c[D>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];R=O+8|0;c[R>>2]=c[l>>2];c[R+4>>2]=c[l+4>>2];c[R+8>>2]=c[l+8>>2];c[R+12>>2]=c[l+12>>2];R=O+24|0;c[R>>2]=c[j>>2];c[R+4>>2]=c[j+4>>2];c[R+8>>2]=c[j+8>>2];c[R+12>>2]=c[j+12>>2];c[L>>2]=c[E>>2];a[M>>0]=a[F>>0]|0;Q=O}c[Q+44>>2]=8176+(((J+k|0)%6|0)<<4);g[Q+96>>2]=w*+(K|0);g[Q+92>>2]=+((qn()|0)%360|0|0);h[n>>3]=+h[n>>3]-s;h[y>>3]=+h[y>>3]-x;M=Sd(195)|0;L=(c[33]|0)+1614|0;S=+(M-((d[L>>0]|d[L+1>>0]<<8)<<16>>16)|0)*.20000000298023224;Qe(o,+((c[t>>2]|0)+270|0),1.0);T=+h[G>>3]*S;h[n>>3]=+h[n>>3]-+h[o>>3]*S;h[y>>3]=+h[y>>3]-T;c[p>>2]=201;c[j>>2]=c[p>>2];mi(b,j);L=Sd(195)|0;M=(c[33]|0)+1614|0;T=+(L-((d[M>>0]|d[M+1>>0]<<8)<<16>>16)|0)*2.200000047683716;Qe(q,+((c[t>>2]|0)+270|0),1.0);S=+h[H>>3]*T;v=+h[n>>3]-+h[q>>3]*T;h[n>>3]=v;I=+h[y>>3]-S;h[y>>3]=I;J=J+1|0;if((J|0)==4)break;else K=0-K|0}K=Sd(195)|0;J=(c[33]|0)+1614|0;I=+(K-((d[J>>0]|d[J+1>>0]<<8)<<16>>16)|0);Qe(r,+((c[t>>2]|0)+270|0),1.0);v=I*+h[r+8>>3];h[n>>3]=+h[r>>3]*I+ +h[n>>3];h[y>>3]=v+ +h[y>>3];i=f;return}function Qh(b,f){b=b|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0.0;j=i;i=i+112|0;k=j+88|0;l=j+80|0;m=j+64|0;n=j+32|0;o=j+16|0;p=j+48|0;q=j+104|0;r=j;if((c[372]|0)==3?(s=+g[f+20>>2],s!=0.0):0){c[l>>2]=~~s;Pn(240518,l)|0;i=j;return}l=b+34600|0;do t=(qn()|0)%4|0;while((t|0)==(c[l>>2]|0));u=t;li(b,u);u=b+56992|0;Qe(p,+((c[u>>2]|0)+270|0),1.0);s=+(Sd(163)|0);t=c[33]|0;v=t+1310|0;w=t+1306|0;x=+(~~(s+ +(((d[w>>0]|d[w+1>>0]<<8)&65535)-((d[v>>0]|d[v+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);s=+h[p+8>>3]*x;v=b+28680|0;h[v>>3]=+h[v>>3]-+h[p>>3]*x;p=b+28688|0;h[p>>3]=+h[p>>3]-s;c[q>>2]=170;c[k>>2]=c[q>>2];mi(b,k);s=+((qn()|0)%21|0|0);x=+g[f+24>>2];y=+g[f+28>>2]-x;z=x+y*(+((qn()|0)&32767|0)/32767.0);q=c[2082]|0;w=Rd(163)|0;t=w-((e[10]|0)>>>1&65535)|0;w=Sd(163)|0;y=+(w-((e[11]|0)>>>1&65535)|0);h[n>>3]=+(t|0);h[n+8>>3]=y;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;y=+(c[u>>2]|0);c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];Pe(m,n,k,y);y=+h[m>>3]+ +h[v>>3];x=+h[m+8>>3]+ +h[p>>3];t=b+8|0;w=b+28568|0;A=t;while(1){B=A+108|0;if(!(a[B>>0]|0)){C=B;D=A;E=9;break}A=A+112|0;if(A>>>0>w>>>0){F=0;break}}if((E|0)==9){c[D+60>>2]=q;c[D+56>>2]=163;h[D+48>>3]=0.0;c[D+40>>2]=0;c[D+44>>2]=8088;a[C>>0]=1;g[D+92>>2]=0.0;g[D+96>>2]=1.0;g[D+104>>2]=1.0;g[D+100>>2]=1.0;g[D+88>>2]=0.0;c[D+68>>2]=0;c[D+64>>2]=c[f>>2];c[D+76>>2]=c[f+8>>2];c[D+80>>2]=c[f+12>>2];c[D+84>>2]=c[f+16>>2];h[D+8>>3]=y;h[D+16>>3]=x;h[D+24>>3]=y;h[D+32>>3]=x;c[D+72>>2]=c[b+28700>>2];a[D+109>>0]=a[b+28696>>0]|0;F=D}c[F+40>>2]=c[l>>2];g[F+96>>2]=-z;x=s*z;g[F+92>>2]=x;g[F+100>>2]=.800000011920929;F=c[2082]|0;D=Rd(163)|0;C=D-((e[10]|0)>>>1&65535)|0;D=Sd(163)|0;s=+(D-((e[11]|0)>>>1&65535)|0);h[n>>3]=+(C|0);h[n+8>>3]=s;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;s=+(c[u>>2]|0);c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];Pe(m,n,k,s);s=+h[m>>3];y=+h[m+8>>3];G=+h[v>>3];H=+h[p>>3];m=t;while(1){t=m+108|0;if(!(a[t>>0]|0)){I=t;J=m;break}else m=m+112|0}K=s+G;G=y+H;c[J+60>>2]=F;c[J+56>>2]=163;h[J+48>>3]=0.0;c[J+44>>2]=8088;a[I>>0]=1;g[J+104>>2]=1.0;g[J+88>>2]=0.0;c[J+68>>2]=0;c[J+64>>2]=c[f>>2];c[J+76>>2]=c[f+8>>2];c[J+80>>2]=c[f+12>>2];c[J+84>>2]=c[f+16>>2];h[J+8>>3]=K;h[J+16>>3]=G;h[J+24>>3]=K;h[J+32>>3]=G;c[J+72>>2]=c[b+28700>>2];a[J+109>>0]=a[b+28696>>0]|0;c[J+40>>2]=c[l>>2];g[J+96>>2]=z;g[J+92>>2]=x;g[J+100>>2]=1.0;Qe(r,+((c[u>>2]|0)+270|0),1.0);x=+(Sd(163)|0);u=(c[33]|0)+1310|0;z=+(~~(x+ +(0-((d[u>>0]|d[u+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);x=+h[r+8>>3]*z;h[v>>3]=+h[v>>3]+ +h[r>>3]*z;h[p>>3]=+h[p>>3]+x;i=j;return}function Rh(f,j,k,l){f=f|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0.0,N=0,O=0,P=0,Q=0;m=i;i=i+112|0;n=m+96|0;o=m+80|0;p=m+64|0;q=m+48|0;r=m+32|0;s=m+16|0;t=m;u=f+34600|0;do v=(qn()|0)%4|0;while((v|0)==(c[u>>2]|0));w=v;li(f,w);w=l+8|0;u=f+56992|0;if(+g[w>>2]!=0.0){Qe(n,+((c[u>>2]|0)+270|0),1.0);x=+(e[10]|0)*.10999999940395355;y=+h[n+8>>3]*x;v=f+28680|0;h[v>>3]=+h[v>>3]-+h[n>>3]*x;z=f+28688|0;h[z>>3]=+h[z>>3]-y;A=v;B=z}else{A=f+28680|0;B=f+28688|0}z=(qn()|0)<<1&2^2;y=+g[l+24>>2];x=+g[l+28>>2]-y;C=x*(+((qn()|0)&32767|0)/32767.0);Qe(q,+((c[u>>2]|0)+270|0),1.0);v=c[j>>2]|0;D=v&65535;E=c[33]|0;F=E+(D<<3)+6|0;G=E+(D<<3)+2|0;x=+(((d[G>>0]|d[G+1>>0]<<8)&65535)-((d[F>>0]|d[F+1>>0]<<8)<<16>>16)|0);H=+h[q+8>>3]*x;h[A>>3]=+h[A>>3]-+h[q>>3]*x;h[B>>3]=+h[B>>3]-H;q=c[2073]|0;F=Rd(v&65535)|0;G=b[16]|0;h[o>>3]=+((((G&65535)-(e[10]|0)|0)/2|0)+F|0)-+((G&65535)>>>1&65535|0);h[o+8>>3]=0.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;H=+(c[u>>2]|0);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Pe(r,o,n,H);H=+h[A>>3];x=+h[B>>3];I=+h[r>>3];J=+h[r+8>>3];r=f+8|0;while(1){o=r+108|0;if(!(a[o>>0]|0)){K=o;L=r;break}else r=r+112|0}M=H+I;I=x+J;c[L+60>>2]=q;c[L+56>>2]=v;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[l>>2];c[L+76>>2]=c[w>>2];c[L+80>>2]=c[l+12>>2];c[L+84>>2]=c[l+16>>2];h[L+8>>3]=M;h[L+16>>3]=I;h[L+24>>3]=M;h[L+32>>3]=I;c[L+72>>2]=c[f+28700>>2];a[L+109>>0]=a[f+28696>>0]|0;g[L+96>>2]=+(z+-1|0)*(y+C);Qe(s,+((c[u>>2]|0)+270|0),1.0);z=c[j>>2]|0;C=+(Sd(z&65535)|0);j=(c[33]|0)+((c[k>>2]&65535)<<3)+6|0;y=C-+((d[j>>0]|d[j+1>>0]<<8)<<16>>16);C=+h[A>>3]-+h[s>>3]*y;I=+h[B>>3]-+h[s+8>>3]*y;s=f+34560|0;j=f+32040|0;do{k=j+28|0;if(!(c[k>>2]|0)){N=k;O=j;P=10;break}j=j+40|0}while(j>>>0<=s>>>0);if((P|0)==10){s=f+56200|0;j=c[s>>2]|0;c[s>>2]=j+1;switch(c[372]|0){case 0:{Q=5352;P=13;break}case 2:{Q=5356;P=13;break}case 3:{Q=5368;P=13;break}default:{}}if((P|0)==13?(P=c[Q>>2]|0,(P|0)==(j|0)&((P|0)>1&(c[366]|0)<0)):0)h[f+56192>>3]=I;h[O+8>>3]=C;h[O+16>>3]=I;c[N>>2]=1;g[O+24>>2]=1.0;a[O+32>>0]=(c[372]|0)!=3&1}Qe(t,+((c[u>>2]|0)+270|0),1.0);O=(c[33]|0)+((z&65535)<<3)+6|0;I=+(0-((d[O>>0]|d[O+1>>0]<<8)<<16>>16)|0);C=+h[t+8>>3]*I;h[A>>3]=+h[A>>3]+ +h[t>>3]*I;h[B>>3]=C+ +h[B>>3];if(!(+g[w>>2]!=0.0)){i=m;return}Qe(n,+((c[u>>2]|0)+270|0),1.0);C=+(e[10]|0)*.10999999940395355;I=+h[n+8>>3]*C;h[A>>3]=+h[A>>3]-+h[n>>3]*C;h[B>>3]=+h[B>>3]-I;i=m;return}function Sh(b,f){b=b|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j+16|0;n=j;o=j+64|0;p=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[p>>2]|0));r=q;li(b,r);s=+(Sd(167)|0);r=c[33]|0;q=r+1342|0;t=r+1338|0;u=+(~~(s+ +(((d[t>>0]|d[t+1>>0]<<8)&65535)-((d[q>>0]|d[q+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);q=b+56992|0;Qe(k,+((c[q>>2]|0)+270|0),1.0);s=u;u=+h[k+8>>3]*s;t=b+28680|0;h[t>>3]=+h[t>>3]-+h[k>>3]*s;r=b+28688|0;h[r>>3]=+h[r>>3]-u;c[o>>2]=173;c[k>>2]=c[o>>2];mi(b,k);u=+g[f+24>>2];s=+g[f+28>>2]-u;v=u+s*(+((qn()|0)&32767|0)/32767.0);o=c[q>>2]|0;w=o+-135|0;x=c[2068]|0;y=Rd(167)|0;z=y-((e[10]|0)>>>1&65535)|0;y=Sd(167)|0;s=+(y-((e[11]|0)>>>1&65535)|0);h[m>>3]=+(z|0);h[m+8>>3]=s;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;s=+(c[q>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,s);s=+h[l>>3]+ +h[t>>3];u=+h[l+8>>3]+ +h[r>>3];z=b+8|0;y=b+28568|0;A=z;while(1){B=A+108|0;if(!(a[B>>0]|0)){C=B;D=A;E=6;break}A=A+112|0;if(A>>>0>y>>>0){F=0;break}}if((E|0)==6){c[D+60>>2]=x;c[D+56>>2]=167;h[D+48>>3]=0.0;c[D+40>>2]=0;c[D+44>>2]=8088;a[C>>0]=1;g[D+92>>2]=0.0;g[D+96>>2]=1.0;g[D+104>>2]=1.0;g[D+100>>2]=1.0;g[D+88>>2]=0.0;c[D+68>>2]=0;c[D+64>>2]=c[f>>2];c[D+76>>2]=c[f+8>>2];c[D+80>>2]=c[f+12>>2];c[D+84>>2]=c[f+16>>2];h[D+8>>3]=s;h[D+16>>3]=u;h[D+24>>3]=s;h[D+32>>3]=u;c[D+72>>2]=c[b+28700>>2];a[D+109>>0]=a[b+28696>>0]|0;F=D}g[F+96>>2]=v*+(((qn()|0)<<1&2^2)+-1|0);g[F+92>>2]=+(w+(_(c[p>>2]|0,-90)|0)|0);w=Rd(168)|0;F=w-((e[10]|0)>>>1&65535)|0;w=Sd(168)|0;u=+(w-((e[11]|0)>>>1&65535)|0);h[m>>3]=+(F|0);h[m+8>>3]=u;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;u=+(c[q>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,u);u=+h[l>>3]+ +h[t>>3];s=+h[l+8>>3]+ +h[r>>3];if((c[372]|0)!=3?((qn()|0)&1|0)!=0:0){G=+(e[16]|0)-u;H=-1.0}else{G=u;H=1.0}l=c[2069]|0;m=z;while(1){z=m+108|0;if(!(a[z>>0]|0)){I=z;J=m;break}else m=m+112|0}c[J+60>>2]=l;c[J+56>>2]=168;h[J+48>>3]=0.0;c[J+40>>2]=0;c[J+44>>2]=8088;a[I>>0]=1;g[J+104>>2]=1.0;g[J+100>>2]=1.0;g[J+88>>2]=0.0;c[J+68>>2]=0;c[J+64>>2]=c[f>>2];c[J+76>>2]=c[f+8>>2];c[J+80>>2]=c[f+12>>2];c[J+84>>2]=c[f+16>>2];h[J+8>>3]=G;h[J+16>>3]=s;h[J+24>>3]=G;h[J+32>>3]=s;c[J+72>>2]=c[b+28700>>2];a[J+109>>0]=a[b+28696>>0]|0;g[J+96>>2]=v*H;g[J+92>>2]=+(o+90+(_(c[p>>2]|0,-90)|0)|0);H=+(Sd(167)|0);p=(c[33]|0)+1342|0;v=+(~~(H+ +(0-((d[p>>0]|d[p+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);Qe(k,+((c[q>>2]|0)+270|0),1.0);H=v;v=+h[k+8>>3]*H;h[t>>3]=+h[t>>3]+ +h[k>>3]*H;h[r>>3]=v+ +h[r>>3];i=j;return}function Th(b,f){b=b|0;f=f|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.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.0,H=0.0,I=0,J=0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0,T=0,U=0.0;j=i;i=i+80|0;k=j+48|0;l=j+32|0;m=j+16|0;n=j;o=j+68|0;p=j+64|0;q=b+34600|0;do r=(qn()|0)%4|0;while((r|0)==(c[q>>2]|0));s=r;li(b,s);do{s=(qn()|0)%4|0;r=c[q>>2]|0}while((s|0)==(r|0));t=s;u=r;c[o>>2]=t;c[o+4>>2]=u;q=o+8|0;c[q>>2]=-1;do{r=(qn()|0)%4|0;c[q>>2]=r}while((r|0)==(t|0)|(r|0)==(u|0));v=+(Sd(199)|0);u=c[33]|0;t=u+1598|0;q=u+1594|0;w=+(~~(v+ +(((d[q>>0]|d[q+1>>0]<<8)&65535)-((d[t>>0]|d[t+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);t=b+56992|0;Qe(k,+((c[t>>2]|0)+270|0),1.0);v=w;w=+h[k+8>>3]*v;q=b+28680|0;h[q>>3]=+h[q>>3]-+h[k>>3]*v;u=b+28688|0;h[u>>3]=+h[u>>3]-w;c[p>>2]=204;c[k>>2]=c[p>>2];mi(b,k);p=(qn()|0)%100|0;r=(qn()|0)<<1&2^2;w=+g[f+24>>2];v=+g[f+28>>2]-w;x=w+v*(+((qn()|0)&32767|0)/32767.0);s=m+8|0;y=l+8|0;z=b+8|0;A=b+28568|0;B=f+8|0;C=f+12|0;D=f+16|0;E=b+28700|0;F=b+28696|0;v=+(1-r|0);w=+(p|0);p=0;do{G=x*+g[7536+(p<<2)>>2];H=(p|0)==1?1.0:.800000011920929;b=c[2070]|0;I=Rd(198)|0;J=I-((e[10]|0)>>>1&65535)|0;I=Sd(198)|0;K=+(I-((e[11]|0)>>>1&65535)|0);h[m>>3]=+(J|0);h[s>>3]=K;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;K=+(c[t>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,K);K=+h[l>>3]+ +h[q>>3];L=+h[y>>3]+ +h[u>>3];J=z;while(1){I=J+108|0;if(!(a[I>>0]|0)){M=I;N=J;O=11;break}J=J+112|0;if(J>>>0>A>>>0){P=0;break}}if((O|0)==11){O=0;c[N+60>>2]=b;c[N+56>>2]=198;h[N+48>>3]=0.0;c[N+40>>2]=0;c[N+44>>2]=8088;a[M>>0]=1;g[N+92>>2]=0.0;g[N+96>>2]=1.0;g[N+104>>2]=1.0;g[N+100>>2]=1.0;g[N+88>>2]=0.0;c[N+68>>2]=0;c[N+64>>2]=c[f>>2];c[N+76>>2]=c[B>>2];c[N+80>>2]=c[C>>2];c[N+84>>2]=c[D>>2];h[N+8>>3]=K;h[N+16>>3]=L;h[N+24>>3]=K;h[N+32>>3]=L;c[N+72>>2]=c[E>>2];a[N+109>>0]=a[F>>0]|0;P=N}g[P+96>>2]=v*G;c[P+40>>2]=c[o+(p<<2)>>2];g[P+100>>2]=H;g[P+92>>2]=+(p*120|0)+w*G;p=p+1|0}while((p|0)!=3);p=r+-1|0;r=c[2068]|0;P=Rd(199)|0;o=P-((e[10]|0)>>>1&65535)|0;P=Sd(199)|0;w=+(P-((e[11]|0)>>>1&65535)|0);h[m>>3]=+(o|0);h[m+8>>3]=w;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;w=+(c[t>>2]|0);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];c[k+12>>2]=c[n+12>>2];Pe(l,m,k,w);w=+h[l>>3];v=+h[l+8>>3];Q=+h[q>>3];R=+h[u>>3];l=z;while(1){z=l+108|0;if(!(a[z>>0]|0)){S=z;T=l;break}else l=l+112|0}U=w+Q;Q=v+R;c[T+60>>2]=r;c[T+56>>2]=199;h[T+48>>3]=0.0;c[T+40>>2]=0;c[T+44>>2]=8088;a[S>>0]=1;g[T+104>>2]=1.0;g[T+100>>2]=1.0;g[T+88>>2]=0.0;c[T+68>>2]=0;c[T+64>>2]=c[f>>2];c[T+76>>2]=c[B>>2];c[T+80>>2]=c[C>>2];c[T+84>>2]=c[D>>2];h[T+8>>3]=U;h[T+16>>3]=Q;h[T+24>>3]=U;h[T+32>>3]=Q;c[T+72>>2]=c[E>>2];a[T+109>>0]=a[F>>0]|0;g[T+96>>2]=+(p|0)*x;g[T+92>>2]=0.0;x=+(Sd(199)|0);T=(c[33]|0)+1598|0;Q=+(~~(x+ +(0-((d[T>>0]|d[T+1>>0]<<8)<<16>>16)|0)-+((e[11]|0)>>>1&65535|0))|0);Qe(k,+((c[t>>2]|0)+270|0),1.0);x=Q;Q=+h[k+8>>3]*x;h[q>>3]=+h[q>>3]+ +h[k>>3]*x;h[u>>3]=Q+ +h[u>>3];i=j;return}function Uh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=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,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0;j=i;i=i+64|0;k=j+48|0;l=j+32|0;m=j+16|0;n=j;o=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[o>>2]|0));q=p;li(b,q);q=b+56992|0;Qe(n,+((c[q>>2]|0)+270|0),1.0);r=+jd[c[(c[d>>2]|0)+12>>2]&31](d)*.5;s=+h[n>>3]*r;t=+h[n+8>>3]*r;n=b+28680|0;h[n>>3]=+h[n>>3]-s;p=b+28688|0;h[p>>3]=+h[p>>3]-t;u=(c[f+48>>2]|0)!=0?-1:1;if(e)v=((qn()|0)<<1&2^2)+-1|0;else v=u;r=+g[f+24>>2];w=+g[f+28>>2]-r;x=r+w*(+((qn()|0)&32767|0)/32767.0);w=+h[b+28680>>3];r=+h[p>>3];u=b+34560|0;e=b+32040|0;do{y=e+28|0;if(!(c[y>>2]|0)){z=y;A=e;B=7;break}e=e+40|0}while(e>>>0<=u>>>0);if((B|0)==7){u=b+56200|0;e=c[u>>2]|0;c[u>>2]=e+1;switch(c[372]|0){case 0:{C=5352;B=10;break}case 2:{C=5356;B=10;break}case 3:{C=5368;B=10;break}default:{}}if((B|0)==10?(u=c[C>>2]|0,(u|0)==(e|0)&((u|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=r;h[A+8>>3]=w;h[A+16>>3]=r;c[z>>2]=1;g[A+24>>2]=1.0;a[A+32>>0]=(c[372]|0)!=3&1};c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];A=b+28568|0;z=b+8|0;while(1){u=z+108|0;if(!(a[u>>0]|0)){D=u;E=z;break}z=z+112|0;if(z>>>0>A>>>0){F=0;B=18;break}}if((B|0)==18){G=c[o>>2]|0;H=F+40|0;c[H>>2]=G;I=c[q>>2]|0;J=F+68|0;c[J>>2]=I;K=+(v|0);L=K*1.5;M=L*x;N=F+96|0;g[N>>2]=M;O=+h[n>>3];P=O-s;h[n>>3]=P;Q=+h[p>>3];R=Q-t;h[p>>3]=R;i=j;return};c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=E+72|0;c[m>>2]=0;c[E+60>>2]=d;c[E+56>>2]=13;d=E+109|0;a[d>>0]=1;h[E+48>>3]=0.0;c[E+40>>2]=0;c[E+44>>2]=8088;a[D>>0]=1;g[E+92>>2]=0.0;g[E+96>>2]=1.0;g[E+104>>2]=1.0;g[E+100>>2]=1.0;g[E+88>>2]=0.0;c[E+68>>2]=0;c[E+64>>2]=c[f>>2];c[E+76>>2]=c[f+8>>2];c[E+80>>2]=c[f+12>>2];c[E+84>>2]=c[f+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];f=E+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=c[l+4>>2];c[f+8>>2]=c[l+8>>2];c[f+12>>2]=c[l+12>>2];l=E+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[d>>0]=a[b+28696>>0]|0;F=E;G=c[o>>2]|0;H=F+40|0;c[H>>2]=G;I=c[q>>2]|0;J=F+68|0;c[J>>2]=I;K=+(v|0);L=K*1.5;M=L*x;N=F+96|0;g[N>>2]=M;O=+h[n>>3];P=O-s;h[n>>3]=P;Q=+h[p>>3];R=Q-t;h[p>>3]=R;i=j;return}function Vh(b,d,f,j){b=b|0;d=d|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;k=i;i=i+64|0;l=k+48|0;m=k+32|0;n=k+16|0;o=k;p=b+34600|0;do q=(qn()|0)%4|0;while((q|0)==(c[p>>2]|0));r=q;li(b,r);r=j+8|0;q=b+56992|0;if(+g[r>>2]!=0.0){Qe(l,+((c[q>>2]|0)+270|0),1.0);s=+(e[10]|0)*.10999999940395355;t=+h[l+8>>3]*s;u=b+28680|0;h[u>>3]=+h[u>>3]-+h[l>>3]*s;v=b+28688|0;h[v>>3]=+h[v>>3]-t;w=v;x=u}else{w=b+28688|0;x=b+28680|0}Qe(o,+((c[q>>2]|0)+270|0),1.0);t=+(e[10]|0);s=+h[o>>3]*t/3.0;y=t*+h[o+8>>3]/3.0;o=b+28680|0;t=+h[o>>3]-s;h[o>>3]=t;z=+h[w>>3]-y;h[w>>3]=z;u=b+34560|0;v=b+32040|0;do{A=v+28|0;if(!(c[A>>2]|0)){B=A;C=v;D=8;break}v=v+40|0}while(v>>>0<=u>>>0);if((D|0)==8){u=b+56200|0;v=c[u>>2]|0;c[u>>2]=v+1;switch(c[372]|0){case 0:{E=5352;D=11;break}case 2:{E=5356;D=11;break}case 3:{E=5368;D=11;break}default:{}}if((D|0)==11?(u=c[E>>2]|0,(u|0)==(v|0)&((u|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=z;h[C+8>>3]=t;h[C+16>>3]=z;c[B>>2]=1;g[C+24>>2]=1.0;a[C+32>>0]=(c[372]|0)!=3&1}C=(qn()|0)<<1&2^2;B=C+-1|0;z=+g[j+24>>2];t=+g[j+28>>2]-z;F=z+t*(+((qn()|0)&32767|0)/32767.0);u=(c[q>>2]|0)+-135|0;v=c[f>>2]|0;f=c[2068]|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];E=b+8|0;A=b+28568|0;G=E;while(1){H=G+108|0;if(!(a[H>>0]|0)){I=H;J=G;D=18;break}G=G+112|0;if(G>>>0>A>>>0){K=0;break}}if((D|0)==18){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];G=J+72|0;c[G>>2]=0;c[J+60>>2]=f;c[J+56>>2]=v;v=J+109|0;a[v>>0]=1;h[J+48>>3]=0.0;c[J+40>>2]=0;c[J+44>>2]=8088;a[I>>0]=1;g[J+92>>2]=0.0;g[J+96>>2]=1.0;g[J+104>>2]=1.0;g[J+100>>2]=1.0;g[J+88>>2]=0.0;c[J+68>>2]=0;c[J+64>>2]=c[j>>2];c[J+76>>2]=c[r>>2];c[J+80>>2]=c[j+12>>2];c[J+84>>2]=c[j+16>>2];c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];I=J+8|0;c[I>>2]=c[m>>2];c[I+4>>2]=c[m+4>>2];c[I+8>>2]=c[m+8>>2];c[I+12>>2]=c[m+12>>2];I=J+24|0;c[I>>2]=c[l>>2];c[I+4>>2]=c[l+4>>2];c[I+8>>2]=c[l+8>>2];c[I+12>>2]=c[l+12>>2];c[G>>2]=c[b+28700>>2];a[v>>0]=a[b+28696>>0]|0;K=J}g[K+96>>2]=+(B|0)*F;B=c[p>>2]|0;g[K+92>>2]=+(u+(_(B,-90)|0)|0);c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];u=E;while(1){E=u+108|0;if(!(a[E>>0]|0)){L=E;M=u;D=22;break}u=u+112|0;if(u>>>0>A>>>0){N=0;O=B;break}}if((D|0)==22){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];n=M+72|0;c[n>>2]=0;c[M+60>>2]=d;c[M+56>>2]=13;d=M+109|0;a[d>>0]=1;h[M+48>>3]=0.0;c[M+40>>2]=0;c[M+44>>2]=8088;a[L>>0]=1;g[M+92>>2]=0.0;g[M+96>>2]=1.0;g[M+104>>2]=1.0;g[M+100>>2]=1.0;g[M+88>>2]=0.0;c[M+68>>2]=0;c[M+64>>2]=c[j>>2];c[M+76>>2]=c[r>>2];c[M+80>>2]=c[j+12>>2];c[M+84>>2]=c[j+16>>2];c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];j=M+8|0;c[j>>2]=c[m>>2];c[j+4>>2]=c[m+4>>2];c[j+8>>2]=c[m+8>>2];c[j+12>>2]=c[m+12>>2];m=M+24|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[n>>2]=c[b+28700>>2];a[d>>0]=a[b+28696>>0]|0;N=M;O=c[p>>2]|0}g[N+96>>2]=+(1-C|0)*F;C=c[q>>2]|0;c[N+68>>2]=C;g[N+92>>2]=+((C<<1)+-135+(_(O,-90)|0)|0);h[o>>3]=+h[o>>3]-s;h[w>>3]=+h[w>>3]-y;if(!(+g[r>>2]!=0.0)){i=k;return}Qe(l,+((c[q>>2]|0)+270|0),1.0);y=+(e[10]|0)*.10999999940395355;s=+h[l+8>>3]*y;h[x>>3]=+h[x>>3]-+h[l>>3]*y;h[w>>3]=+h[w>>3]-s;i=k;return}function Wh(d,f,j){d=d|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0;k=i;i=i+48|0;l=k+32|0;m=k+16|0;n=k;if((c[372]|0)==3?(o=+g[j+20>>2],o!=0.0):0){c[l>>2]=~~o;Pn(240518,l)|0;i=k;return}l=d+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[l>>2]|0));q=p;li(d,q);o=+(((e[11]|0)/3|0)&65535|0);q=d+56992|0;Qe(m,+((c[q>>2]|0)+270|0),1.0);r=o*+h[m+8>>3];p=d+28680|0;h[p>>3]=+h[p>>3]-o*+h[m>>3];m=d+28688|0;h[m>>3]=+h[m>>3]-r;r=+g[j+24>>2];o=+g[j+28>>2]-r;s=r+o*(+((qn()|0)&32767|0)/32767.0);o=+h[p>>3];r=+h[m>>3];t=d+34560|0;u=d+32040|0;while(1){v=u+28|0;if(!(c[v>>2]|0)){w=v;x=u;y=8;break}u=u+40|0;if(u>>>0>t>>>0){z=r;break}}if((y|0)==8){t=d+56200|0;u=c[t>>2]|0;c[t>>2]=u+1;switch(c[372]|0){case 0:{A=5352;y=11;break}case 2:{A=5356;y=11;break}case 3:{A=5368;y=11;break}default:{}}if((y|0)==11?(y=c[A>>2]|0,(y|0)==(u|0)&((y|0)>1&(c[366]|0)<0)):0)h[d+56192>>3]=r;h[x+8>>3]=o;h[x+16>>3]=r;c[w>>2]=1;g[x+24>>2]=1.0;a[x+32>>0]=(c[372]|0)!=3&1;z=+h[m>>3]}x=d+8|0;w=x;while(1){y=w+108|0;if(!(a[y>>0]|0)){B=y;C=w;break}else w=w+112|0}c[C+60>>2]=f;c[C+56>>2]=0;h[C+48>>3]=0.0;c[C+44>>2]=8088;a[B>>0]=1;g[C+92>>2]=0.0;g[C+104>>2]=1.0;g[C+100>>2]=1.0;g[C+88>>2]=0.0;c[C+68>>2]=0;c[C+64>>2]=c[j>>2];B=j+8|0;c[C+76>>2]=c[B>>2];w=j+12|0;c[C+80>>2]=c[w>>2];y=j+16|0;c[C+84>>2]=c[y>>2];h[C+8>>3]=0.0;h[C+16>>3]=z;h[C+24>>3]=0.0;h[C+32>>3]=z;u=d+28700|0;c[C+72>>2]=c[u>>2];A=d+28696|0;a[C+109>>0]=a[A>>0]|0;c[C+40>>2]=c[l>>2];g[C+96>>2]=s;C=b[16]|0;z=+h[m>>3];d=x;while(1){x=d+108|0;if(!(a[x>>0]|0)){D=x;E=d;break}else d=d+112|0}r=+(C&65535);c[E+60>>2]=f;c[E+56>>2]=0;h[E+48>>3]=0.0;c[E+44>>2]=8088;a[D>>0]=1;g[E+92>>2]=0.0;g[E+104>>2]=1.0;g[E+100>>2]=1.0;g[E+88>>2]=0.0;c[E+68>>2]=0;c[E+64>>2]=c[j>>2];c[E+76>>2]=c[B>>2];c[E+80>>2]=c[w>>2];c[E+84>>2]=c[y>>2];h[E+8>>3]=r;h[E+16>>3]=z;h[E+24>>3]=r;h[E+32>>3]=z;c[E+72>>2]=c[u>>2];a[E+109>>0]=a[A>>0]|0;c[E+40>>2]=c[l>>2];g[E+96>>2]=s;s=+(((e[11]|0)/3|0)&65535|0);Qe(n,+((c[q>>2]|0)+270|0),1.0);z=s*+h[n+8>>3];h[p>>3]=+h[p>>3]-s*+h[n>>3];h[m>>3]=+h[m>>3]-z;i=k;return}function Xh(d,f){d=d|0;f=f|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;j=i;i=i+96|0;k=j+80|0;l=j+64|0;m=j+48|0;n=j+32|0;o=j+16|0;p=j;if((c[372]|0)==3?(q=+g[f+20>>2],q!=0.0):0){c[k>>2]=~~q;Pn(240518,k)|0;i=j;return}k=d+34600|0;do r=(qn()|0)%4|0;while((r|0)==(c[k>>2]|0));s=r;li(d,s);s=d+28680|0;r=d+56992|0;Qe(o,+((c[r>>2]|0)+270|0),1.0);q=+(e[11]|0);t=q*+h[o+8>>3]*.5;h[s>>3]=+h[s>>3]-+h[o>>3]*q*.5;o=d+28688|0;h[o>>3]=+h[o>>3]-t;t=+g[f+24>>2];q=+g[f+28>>2]-t;u=t+q*(+((qn()|0)&32767|0)/32767.0);q=+g[f+32>>2];t=+g[f+36>>2]-q;v=q+t*(+((qn()|0)&32767|0)/32767.0);t=v==0.0?u:v;v=+h[d+28680>>3];q=+h[o>>3];w=d+34560|0;x=d+32040|0;while(1){y=x+28|0;if(!(c[y>>2]|0)){z=y;A=x;B=8;break}x=x+40|0;if(x>>>0>w>>>0){C=q;break}}if((B|0)==8){w=d+56200|0;x=c[w>>2]|0;c[w>>2]=x+1;switch(c[372]|0){case 0:{D=5352;B=11;break}case 2:{D=5356;B=11;break}case 3:{D=5368;B=11;break}default:{}}if((B|0)==11?(w=c[D>>2]|0,(w|0)==(x|0)&((w|0)>1&(c[366]|0)<0)):0)h[d+56192>>3]=q;h[A+8>>3]=v;h[A+16>>3]=q;c[z>>2]=1;g[A+24>>2]=1.0;a[A+32>>0]=(c[372]|0)!=3&1;C=+h[o>>3]}A=c[2101]|0;z=d+8|0;w=z;while(1){x=w+108|0;if(!(a[x>>0]|0)){E=x;F=w;break}else w=w+112|0}w=d+28568|0;c[F+60>>2]=A;c[F+56>>2]=0;h[F+48>>3]=0.0;c[F+44>>2]=8088;a[E>>0]=1;g[F+92>>2]=0.0;g[F+104>>2]=1.0;g[F+100>>2]=1.0;c[F+68>>2]=0;c[F+64>>2]=c[f>>2];E=f+8|0;c[F+76>>2]=c[E>>2];A=f+12|0;c[F+80>>2]=c[A>>2];x=f+16|0;c[F+84>>2]=c[x>>2];h[F+8>>3]=0.0;h[F+16>>3]=C;h[F+24>>3]=0.0;h[F+32>>3]=C;D=d+28700|0;c[F+72>>2]=c[D>>2];y=d+28696|0;a[F+109>>0]=a[y>>0]|0;c[F+40>>2]=c[k>>2];g[F+88>>2]=45.0;g[F+96>>2]=u;F=c[2101]|0;d=b[16]|0;C=+h[o>>3];G=z;while(1){H=G+108|0;if(!(a[H>>0]|0)){I=H;J=G;break}else G=G+112|0}q=+(d&65535);c[J+60>>2]=F;c[J+56>>2]=0;h[J+48>>3]=0.0;c[J+44>>2]=8088;a[I>>0]=1;g[J+92>>2]=0.0;g[J+104>>2]=1.0;g[J+100>>2]=1.0;c[J+68>>2]=0;c[J+64>>2]=c[f>>2];c[J+76>>2]=c[E>>2];c[J+80>>2]=c[A>>2];c[J+84>>2]=c[x>>2];h[J+8>>3]=q;h[J+16>>3]=C;h[J+24>>3]=q;h[J+32>>3]=C;c[J+72>>2]=c[D>>2];a[J+109>>0]=a[y>>0]|0;c[J+40>>2]=c[k>>2];g[J+88>>2]=45.0;g[J+96>>2]=u;J=c[2068]|0;c[n>>2]=c[s>>2];c[n+4>>2]=c[s+4>>2];c[n+8>>2]=c[s+8>>2];c[n+12>>2]=c[s+12>>2];k=z;while(1){z=k+108|0;if(!(a[z>>0]|0)){K=z;L=k;B=22;break}k=k+112|0;if(k>>>0>w>>>0){M=0;break}}if((B|0)==22){c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];n=L+72|0;c[n>>2]=0;c[L+60>>2]=J;c[L+56>>2]=148;J=L+109|0;a[J>>0]=1;h[L+48>>3]=0.0;c[L+40>>2]=0;c[L+44>>2]=8088;a[K>>0]=1;g[L+92>>2]=0.0;g[L+96>>2]=1.0;g[L+104>>2]=1.0;g[L+100>>2]=1.0;g[L+88>>2]=0.0;c[L+68>>2]=0;c[L+64>>2]=c[f>>2];c[L+76>>2]=c[E>>2];c[L+80>>2]=c[A>>2];c[L+84>>2]=c[x>>2];c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];x=L+8|0;c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];m=L+24|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[n>>2]=c[D>>2];a[J>>0]=a[y>>0]|0;M=L}g[M+96>>2]=t*+(((qn()|0)<<1&2^2)+-1|0);g[M+92>>2]=+((qn()|0)%360|0|0);Qe(p,+((c[r>>2]|0)+270|0),1.0);t=+(e[11]|0);u=t*+h[p+8>>3]*.5;h[s>>3]=+h[s>>3]-+h[p>>3]*t*.5;h[o>>3]=+h[o>>3]-u;i=j;return}function Yh(b,d){b=b|0;d=d|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=i;i=i+80|0;j=f+64|0;k=f+48|0;l=f+32|0;m=f+16|0;n=f;if((c[372]|0)==3?(o=+g[d+20>>2],o!=0.0):0){c[j>>2]=~~o;Pn(240518,j)|0;i=f;return}j=b+34600|0;do p=(qn()|0)%4|0;while((p|0)==(c[j>>2]|0));q=p;li(b,q);Qe(n,+((c[b+56992>>2]|0)+270|0),1.0);o=+((e[10]|0)>>>1&65535|0);r=+h[n>>3]*o;s=+h[n+8>>3]*o;n=b+28680|0;o=+h[n>>3]-r;h[n>>3]=o;q=b+28688|0;t=+h[q>>3]-s;h[q>>3]=t;j=b+34560|0;p=b+32040|0;do{u=p+28|0;if(!(c[u>>2]|0)){v=u;w=p;x=8;break}p=p+40|0}while(p>>>0<=j>>>0);if((x|0)==8){j=b+56200|0;p=c[j>>2]|0;c[j>>2]=p+1;switch(c[372]|0){case 0:{y=5352;x=11;break}case 2:{y=5356;x=11;break}case 3:{y=5368;x=11;break}default:{}}if((x|0)==11?(j=c[y>>2]|0,(j|0)==(p|0)&((j|0)>1&(c[366]|0)<0)):0)h[b+56192>>3]=t;h[w+8>>3]=o;h[w+16>>3]=t;c[v>>2]=1;g[w+24>>2]=1.0;a[w+32>>0]=(c[372]|0)!=3&1}w=c[2104]|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];v=b+28568|0;j=b+8|0;while(1){p=j+108|0;if(!(a[p>>0]|0)){z=p;A=j;x=18;break}j=j+112|0;if(j>>>0>v>>>0){B=0;break}}if((x|0)==18){c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];m=A+72|0;c[m>>2]=0;c[A+60>>2]=w;c[A+56>>2]=195;w=A+109|0;a[w>>0]=1;h[A+48>>3]=0.0;c[A+40>>2]=0;c[A+44>>2]=8088;a[z>>0]=1;g[A+92>>2]=0.0;g[A+96>>2]=1.0;g[A+104>>2]=1.0;g[A+100>>2]=1.0;g[A+88>>2]=0.0;c[A+68>>2]=0;c[A+64>>2]=c[d>>2];c[A+76>>2]=c[d+8>>2];c[A+80>>2]=c[d+12>>2];c[A+84>>2]=c[d+16>>2];c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];z=A+8|0;c[z>>2]=c[l>>2];c[z+4>>2]=c[l+4>>2];c[z+8>>2]=c[l+8>>2];c[z+12>>2]=c[l+12>>2];l=A+24|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];c[m>>2]=c[b+28700>>2];a[w>>0]=a[b+28696>>0]|0;B=A}t=+g[d+24>>2];o=+g[d+28>>2]-t;g[B+96>>2]=t+o*(+((qn()|0)&32767|0)/32767.0);h[n>>3]=+h[n>>3]-r;h[q>>3]=+h[q>>3]-s;i=f;return}
function Rl(b,d){b=b|0;d=d|0;var e=0,f=0,g=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,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;e=i;i=i+16|0;f=e;g=e+4|0;j=Ac(b|0)|0;if((j|0)!=0?(b=go(j)|0,(b|0)!=0):0){k=to(16)|0;if((b|0)<16){Qn(242502)|0;l=k;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));n=to(16)|0;Qn(242502)|0;l=n;m=l+16|0;do{a[l>>0]=0;l=l+1|0}while((l|0)<(m|0));o=n;p=0;q=g}else{n=0;do{l=n<<1;m=a[j+(l+8)>>0]|0;r=m<<24>>24;do if((m+-97&255)>=6)if((m+-65&255)<6){s=r+-55|0;break}else{s=r+-48|0;break}else s=r+-87|0;while(0);r=s<<4;m=a[j+(l+9)>>0]|0;t=m<<24>>24;do if((m+-97&255)>=6)if((m+-65&255)<6){u=t+-55|0;break}else{u=t+-48|0;break}else u=t+-87|0;while(0);a[k+n>>0]=u|r;n=n+1|0}while((n|0)!=16);n=g+1|0;u=0;do{c[f>>2]=1382297751>>>(u<<3&24)&255;Sn(g,242528,f)|0;s=u<<1;a[j+(s+8)>>0]=a[g>>0]|0;a[j+((s|1)+8)>>0]=a[n>>0]|0;u=u+1|0}while((u|0)!=16);u=Ae(j,b)|0;o=u;p=a[u>>0]|0;q=g}do if(((((((((((((((a[k>>0]|0)==p<<24>>24?(a[k+1>>0]|0)==(a[o+1>>0]|0):0)?(a[k+2>>0]|0)==(a[o+2>>0]|0):0)?(a[k+3>>0]|0)==(a[o+3>>0]|0):0)?(a[k+4>>0]|0)==(a[o+4>>0]|0):0)?(a[k+5>>0]|0)==(a[o+5>>0]|0):0)?(a[k+6>>0]|0)==(a[o+6>>0]|0):0)?(a[k+7>>0]|0)==(a[o+7>>0]|0):0)?(a[k+8>>0]|0)==(a[o+8>>0]|0):0)?(a[k+9>>0]|0)==(a[o+9>>0]|0):0)?(a[k+10>>0]|0)==(a[o+10>>0]|0):0)?(a[k+11>>0]|0)==(a[o+11>>0]|0):0)?(a[k+12>>0]|0)==(a[o+12>>0]|0):0)?(a[k+13>>0]|0)==(a[o+13>>0]|0):0)?(a[k+14>>0]|0)==(a[o+14>>0]|0):0){if((a[k+15>>0]|0)!=(a[o+15>>0]|0))break;uo(k);uo(o);g=qm(8)|0;Ue(g,j);c[d>>2]=Ye(g,242221,1)|0;c[d+4>>2]=Ye(g,263063,0)|0;q=$e(g,242229)|0;do if(q){u=af(q)|0;b=u>>>0>128?128:u;if(!b){v=0;w=170;break}n=(u^-128)>>>0>4294967167?u:128;u=0;do{a[d+8+u>>0]=(cf(q,u,0)|0)&1;u=u+1|0}while((u|0)!=(n|0));if(b>>>0<128){v=b;w=170}}else{v=0;w=170}while(0);if((w|0)==170)Eo(d+(v+8)|0,0,128-v|0)|0;q=$e(g,263074)|0;do if(q){r=af(q)|0;n=r>>>0>512?512:r;if(!n){x=0;w=176;break}u=(r^-512)>>>0>4294966783?r:512;r=0;do{a[d+136+r>>0]=(cf(q,r,0)|0)&1;r=r+1|0}while((r|0)!=(u|0));if(n>>>0<512){x=n;w=176}}else{x=0;w=176}while(0);if((w|0)==176)Eo(d+(x+136)|0,0,512-x|0)|0;q=$e(g,263085)|0;do if(q){u=af(q)|0;r=u>>>0>256?256:u;if(!r){y=0;w=182;break}b=(u^-256)>>>0>4294967039?u:256;u=0;do{a[d+648+u>>0]=(cf(q,u,0)|0)&1;u=u+1|0}while((u|0)!=(b|0));if(r>>>0<256){y=r;w=182}}else{y=0;w=182}while(0);if((w|0)==182)Eo(d+(y+648)|0,0,256-y|0)|0;q=$e(g,263107)|0;do if(q){b=af(q)|0;u=b>>>0>256?256:b;if(!u){z=0;w=188;break}n=(b^-256)>>>0>4294967039?b:256;b=0;do{a[d+904+b>>0]=(cf(q,b,0)|0)&1;b=b+1|0}while((b|0)!=(n|0));if(u>>>0<256){z=u;w=188}}else{z=0;w=188}while(0);if((w|0)==188)Eo(d+(z+904)|0,0,256-z|0)|0;q=$e(g,263097)|0;do if(q){n=af(q)|0;b=n>>>0>256?256:n;if(!b){A=0;w=194;break}r=(n^-256)>>>0>4294967039?n:256;n=0;do{a[d+1160+n>>0]=(cf(q,n,0)|0)&1;n=n+1|0}while((n|0)!=(r|0));if(b>>>0<256){A=b;w=194}}else{A=0;w=194}while(0);if((w|0)==194)Eo(d+(A+1160)|0,0,256-A|0)|0;q=$e(g,242235)|0;do if(q){r=af(q)|0;n=r>>>0>256?256:r;if(!n){B=0;w=200;break}u=(r^-256)>>>0>4294967039?r:256;r=0;do{a[d+1416+r>>0]=(cf(q,r,0)|0)&1;r=r+1|0}while((r|0)!=(u|0));if(n>>>0<256){B=n;w=200}}else{B=0;w=200}while(0);if((w|0)==200)Eo(d+(B+1416)|0,0,256-B|0)|0;q=$e(g,262791)|0;do if(q){u=af(q)|0;r=u>>>0>256?256:u;if(!r){C=0;w=206;break}b=(u^-256)>>>0>4294967039?u:256;u=0;do{a[d+1672+u>>0]=(cf(q,u,0)|0)&1;u=u+1|0}while((u|0)!=(b|0));if(r>>>0<256){C=r;w=206}}else{C=0;w=206}while(0);if((w|0)==206)Eo(d+(C+1672)|0,0,256-C|0)|0;q=$e(g,242243)|0;do if(q){b=af(q)|0;u=b>>>0>256?256:b;if(!u){D=0;w=212;break}n=(b^-256)>>>0>4294967039?b:256;b=0;do{a[d+1928+b>>0]=(cf(q,b,0)|0)&1;b=b+1|0}while((b|0)!=(n|0));if(u>>>0<256){D=u;w=212}}else{D=0;w=212}while(0);if((w|0)==212)Eo(d+(D+1928)|0,0,256-D|0)|0;q=$e(g,263091)|0;do if(q){n=af(q)|0;b=n>>>0>256?256:n;if(!b){E=0;w=218;break}r=(n^-256)>>>0>4294967039?n:256;n=0;do{a[d+2184+n>>0]=(cf(q,n,0)|0)&1;n=n+1|0}while((n|0)!=(r|0));if(b>>>0<256){E=b;w=218}}else{E=0;w=218}while(0);if((w|0)==218)Eo(d+(E+2184)|0,0,256-E|0)|0;q=$e(g,242248)|0;do if(q){r=af(q)|0;n=r>>>0>256?256:r;if(!n){F=0;w=224;break}u=(r^-256)>>>0>4294967039?r:256;r=0;do{a[d+2440+r>>0]=(cf(q,r,0)|0)&1;r=r+1|0}while((r|0)!=(u|0));if(n>>>0<256){F=n;w=224}}else{F=0;w=224}while(0);if((w|0)==224)Eo(d+(F+2440)|0,0,256-F|0)|0;q=$e(g,263125)|0;do if(q){u=af(q)|0;r=u>>>0>256?256:u;if(!r){G=0;w=230;break}b=(u^-256)>>>0>4294967039?u:256;u=0;do{a[d+2696+u>>0]=(cf(q,u,0)|0)&1;u=u+1|0}while((u|0)!=(b|0));if(r>>>0<256){G=r;w=230}}else{G=0;w=230}while(0);if((w|0)==230)Eo(d+(G+2696)|0,0,256-G|0)|0;q=$e(g,242254)|0;do if(q){b=af(q)|0;u=b>>>0>64?64:b;if(!u){H=0;w=236;break}n=(b^-64)>>>0>4294967231?b:64;b=0;do{a[d+2952+b>>0]=(cf(q,b,0)|0)&1;b=b+1|0}while((b|0)!=(n|0));if(u>>>0<64){H=u;w=236}}else{H=0;w=236}while(0);if((w|0)==236)Eo(d+(H+2952)|0,0,64-H|0)|0;c[d+3016>>2]=Ye(g,242266,0)|0;c[d+3020>>2]=Ye(g,242276,0)|0;c[d+3024>>2]=Ye(g,242289,0)|0;c[d+3028>>2]=Ye(g,242302,0)|0;c[d+3032>>2]=Ye(g,242313,0)|0;a[d+3036>>0]=(Xe(g,242326,0)|0)&1;a[d+3037>>0]=(Xe(g,242331,0)|0)&1;a[d+3038>>0]=(Xe(g,242342,0)|0)&1;a[d+3039>>0]=(Xe(g,242352,0)|0)&1;a[d+3040>>0]=(Xe(g,242365,0)|0)&1;c[d+3044>>2]=Ye(g,242375,0)|0;c[d+3048>>2]=Ye(g,242387,0)|0;c[d+3052>>2]=Ye(g,242400,0)|0;a[d+3056>>0]=(Xe(g,242406,0)|0)&1;a[d+3057>>0]=(Xe(g,242418,1)|0)&1;h[d+3064>>3]=+_e(g,242430,0.0);c[d+3072>>2]=Ye(g,242440,0)|0;c[d+3076>>2]=Ye(g,242454,1)|0;c[d+3080>>2]=Ye(g,242464,-1)|0;c[d+3084>>2]=Ye(g,242474,-1)|0;c[d+3088>>2]=Ye(g,242489,0)|0;Ve(g);rm(g);uo(j);I=1;i=e;return I|0}while(0);Qn(242533)|0;uo(k);uo(o);o=qm(8)|0;Ue(o,242218);c[d>>2]=Ye(o,242221,1)|0;c[d+4>>2]=Ye(o,263063,0)|0;k=$e(o,242229)|0;if((k|0)!=0?(j=af(k)|0,H=j>>>0>128?128:j,(H|0)!=0):0){G=(j^-128)>>>0>4294967167?j:128;j=0;do{a[d+8+j>>0]=(cf(k,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<128){J=H;w=98}}else{J=0;w=98}if((w|0)==98)Eo(d+(J+8)|0,0,128-J|0)|0;J=$e(o,263074)|0;if((J|0)!=0?(H=af(J)|0,G=H>>>0>512?512:H,(G|0)!=0):0){j=(H^-512)>>>0>4294966783?H:512;H=0;do{a[d+136+H>>0]=(cf(J,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<512){K=G;w=104}}else{K=0;w=104}if((w|0)==104)Eo(d+(K+136)|0,0,512-K|0)|0;K=$e(o,263085)|0;if((K|0)!=0?(G=af(K)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+648+G>>0]=(cf(K,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){L=j;w=110}}else{L=0;w=110}if((w|0)==110)Eo(d+(L+648)|0,0,256-L|0)|0;L=$e(o,263107)|0;if((L|0)!=0?(j=af(L)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+904+j>>0]=(cf(L,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){M=H;w=116}}else{M=0;w=116}if((w|0)==116)Eo(d+(M+904)|0,0,256-M|0)|0;M=$e(o,263097)|0;if((M|0)!=0?(H=af(M)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+1160+H>>0]=(cf(M,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){N=G;w=122}}else{N=0;w=122}if((w|0)==122)Eo(d+(N+1160)|0,0,256-N|0)|0;N=$e(o,242235)|0;if((N|0)!=0?(G=af(N)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+1416+G>>0]=(cf(N,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){O=j;w=128}}else{O=0;w=128}if((w|0)==128)Eo(d+(O+1416)|0,0,256-O|0)|0;O=$e(o,262791)|0;if((O|0)!=0?(j=af(O)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+1672+j>>0]=(cf(O,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){P=H;w=134}}else{P=0;w=134}if((w|0)==134)Eo(d+(P+1672)|0,0,256-P|0)|0;P=$e(o,242243)|0;if((P|0)!=0?(H=af(P)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+1928+H>>0]=(cf(P,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){Q=G;w=140}}else{Q=0;w=140}if((w|0)==140)Eo(d+(Q+1928)|0,0,256-Q|0)|0;Q=$e(o,263091)|0;if((Q|0)!=0?(G=af(Q)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+2184+G>>0]=(cf(Q,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){R=j;w=146}}else{R=0;w=146}if((w|0)==146)Eo(d+(R+2184)|0,0,256-R|0)|0;R=$e(o,242248)|0;if((R|0)!=0?(j=af(R)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+2440+j>>0]=(cf(R,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){S=H;w=152}}else{S=0;w=152}if((w|0)==152)Eo(d+(S+2440)|0,0,256-S|0)|0;S=$e(o,263125)|0;if((S|0)!=0?(H=af(S)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+2696+H>>0]=(cf(S,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){T=G;w=158}}else{T=0;w=158}if((w|0)==158)Eo(d+(T+2696)|0,0,256-T|0)|0;T=$e(o,242254)|0;if((T|0)!=0?(G=af(T)|0,j=G>>>0>64?64:G,(j|0)!=0):0){H=(G^-64)>>>0>4294967231?G:64;G=0;do{a[d+2952+G>>0]=(cf(T,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<64){U=j;w=164}}else{U=0;w=164}if((w|0)==164)Eo(d+(U+2952)|0,0,64-U|0)|0;c[d+3016>>2]=Ye(o,242266,0)|0;c[d+3020>>2]=Ye(o,242276,0)|0;c[d+3024>>2]=Ye(o,242289,0)|0;c[d+3028>>2]=Ye(o,242302,0)|0;c[d+3032>>2]=Ye(o,242313,0)|0;a[d+3036>>0]=(Xe(o,242326,0)|0)&1;a[d+3037>>0]=(Xe(o,242331,0)|0)&1;a[d+3038>>0]=(Xe(o,242342,0)|0)&1;a[d+3039>>0]=(Xe(o,242352,0)|0)&1;a[d+3040>>0]=(Xe(o,242365,0)|0)&1;c[d+3044>>2]=Ye(o,242375,0)|0;c[d+3048>>2]=Ye(o,242387,0)|0;c[d+3052>>2]=Ye(o,242400,0)|0;a[d+3056>>0]=(Xe(o,242406,0)|0)&1;a[d+3057>>0]=(Xe(o,242418,1)|0)&1;h[d+3064>>3]=+_e(o,242430,0.0);c[d+3072>>2]=Ye(o,242440,0)|0;c[d+3076>>2]=Ye(o,242454,1)|0;c[d+3080>>2]=Ye(o,242464,-1)|0;c[d+3084>>2]=Ye(o,242474,-1)|0;c[d+3088>>2]=Ye(o,242489,0)|0;Ve(o);rm(o);I=0;i=e;return I|0}Qn(242210)|0;o=qm(8)|0;Ue(o,242218);c[d>>2]=Ye(o,242221,1)|0;c[d+4>>2]=Ye(o,263063,0)|0;U=$e(o,242229)|0;if((U|0)!=0?(j=af(U)|0,H=j>>>0>128?128:j,(H|0)!=0):0){G=(j^-128)>>>0>4294967167?j:128;j=0;do{a[d+8+j>>0]=(cf(U,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<128){V=H;w=7}}else{V=0;w=7}if((w|0)==7)Eo(d+(V+8)|0,0,128-V|0)|0;V=$e(o,263074)|0;if((V|0)!=0?(H=af(V)|0,G=H>>>0>512?512:H,(G|0)!=0):0){j=(H^-512)>>>0>4294966783?H:512;H=0;do{a[d+136+H>>0]=(cf(V,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<512){W=G;w=13}}else{W=0;w=13}if((w|0)==13)Eo(d+(W+136)|0,0,512-W|0)|0;W=$e(o,263085)|0;if((W|0)!=0?(G=af(W)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+648+G>>0]=(cf(W,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){X=j;w=19}}else{X=0;w=19}if((w|0)==19)Eo(d+(X+648)|0,0,256-X|0)|0;X=$e(o,263107)|0;if((X|0)!=0?(j=af(X)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+904+j>>0]=(cf(X,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){Y=H;w=25}}else{Y=0;w=25}if((w|0)==25)Eo(d+(Y+904)|0,0,256-Y|0)|0;Y=$e(o,263097)|0;if((Y|0)!=0?(H=af(Y)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+1160+H>>0]=(cf(Y,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){Z=G;w=31}}else{Z=0;w=31}if((w|0)==31)Eo(d+(Z+1160)|0,0,256-Z|0)|0;Z=$e(o,242235)|0;if((Z|0)!=0?(G=af(Z)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+1416+G>>0]=(cf(Z,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){_=j;w=37}}else{_=0;w=37}if((w|0)==37)Eo(d+(_+1416)|0,0,256-_|0)|0;_=$e(o,262791)|0;if((_|0)!=0?(j=af(_)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+1672+j>>0]=(cf(_,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){$=H;w=43}}else{$=0;w=43}if((w|0)==43)Eo(d+($+1672)|0,0,256-$|0)|0;$=$e(o,242243)|0;if(($|0)!=0?(H=af($)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+1928+H>>0]=(cf($,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){aa=G;w=49}}else{aa=0;w=49}if((w|0)==49)Eo(d+(aa+1928)|0,0,256-aa|0)|0;aa=$e(o,263091)|0;if((aa|0)!=0?(G=af(aa)|0,j=G>>>0>256?256:G,(j|0)!=0):0){H=(G^-256)>>>0>4294967039?G:256;G=0;do{a[d+2184+G>>0]=(cf(aa,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<256){ba=j;w=55}}else{ba=0;w=55}if((w|0)==55)Eo(d+(ba+2184)|0,0,256-ba|0)|0;ba=$e(o,242248)|0;if((ba|0)!=0?(j=af(ba)|0,H=j>>>0>256?256:j,(H|0)!=0):0){G=(j^-256)>>>0>4294967039?j:256;j=0;do{a[d+2440+j>>0]=(cf(ba,j,0)|0)&1;j=j+1|0}while((j|0)!=(G|0));if(H>>>0<256){ca=H;w=61}}else{ca=0;w=61}if((w|0)==61)Eo(d+(ca+2440)|0,0,256-ca|0)|0;ca=$e(o,263125)|0;if((ca|0)!=0?(H=af(ca)|0,G=H>>>0>256?256:H,(G|0)!=0):0){j=(H^-256)>>>0>4294967039?H:256;H=0;do{a[d+2696+H>>0]=(cf(ca,H,0)|0)&1;H=H+1|0}while((H|0)!=(j|0));if(G>>>0<256){da=G;w=67}}else{da=0;w=67}if((w|0)==67)Eo(d+(da+2696)|0,0,256-da|0)|0;da=$e(o,242254)|0;if((da|0)!=0?(G=af(da)|0,j=G>>>0>64?64:G,(j|0)!=0):0){H=(G^-64)>>>0>4294967231?G:64;G=0;do{a[d+2952+G>>0]=(cf(da,G,0)|0)&1;G=G+1|0}while((G|0)!=(H|0));if(j>>>0<64){ea=j;w=73}}else{ea=0;w=73}if((w|0)==73)Eo(d+(ea+2952)|0,0,64-ea|0)|0;c[d+3016>>2]=Ye(o,242266,0)|0;c[d+3020>>2]=Ye(o,242276,0)|0;c[d+3024>>2]=Ye(o,242289,0)|0;c[d+3028>>2]=Ye(o,242302,0)|0;c[d+3032>>2]=Ye(o,242313,0)|0;a[d+3036>>0]=(Xe(o,242326,0)|0)&1;a[d+3037>>0]=(Xe(o,242331,0)|0)&1;a[d+3038>>0]=(Xe(o,242342,0)|0)&1;a[d+3039>>0]=(Xe(o,242352,0)|0)&1;a[d+3040>>0]=(Xe(o,242365,0)|0)&1;c[d+3044>>2]=Ye(o,242375,0)|0;c[d+3048>>2]=Ye(o,242387,0)|0;c[d+3052>>2]=Ye(o,242400,0)|0;a[d+3056>>0]=(Xe(o,242406,0)|0)&1;a[d+3057>>0]=(Xe(o,242418,1)|0)&1;h[d+3064>>3]=+_e(o,242430,0.0);c[d+3072>>2]=Ye(o,242440,0)|0;c[d+3076>>2]=Ye(o,242454,1)|0;c[d+3080>>2]=Ye(o,242464,-1)|0;c[d+3084>>2]=Ye(o,242474,-1)|0;c[d+3088>>2]=Ye(o,242489,0)|0;Ve(o);rm(o);I=0;i=e;return I|0}function Sl(b,e){b=b|0;e=e|0;var f=0,g=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,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0.0,qb=0;f=i;i=i+65952|0;g=f+392|0;j=f+384|0;k=f+376|0;l=f+368|0;m=f+360|0;n=f+352|0;o=f+344|0;p=f+328|0;q=f+320|0;r=f+312|0;s=f+304|0;t=f+296|0;u=f+288|0;v=f+280|0;w=f+272|0;x=f+264|0;y=f+256|0;z=f+248|0;A=f+240|0;B=f+232|0;C=f+224|0;D=f+216|0;E=f+208|0;F=f+200|0;G=f+192|0;H=f+184|0;I=f+176|0;J=f+168|0;K=f+160|0;L=f+152|0;M=f+144|0;N=f+136|0;O=f+128|0;P=f+120|0;Q=f+112|0;R=f+104|0;S=f+96|0;T=f+88|0;U=f+80|0;V=f+72|0;W=f+64|0;X=f+56|0;Y=f+48|0;Z=f+40|0;_=f+32|0;$=f+24|0;aa=f+16|0;ba=f+8|0;ca=f;da=f+400|0;ea=f+65936|0;fa=da;ga=242559;ha=fa+42|0;do{a[fa>>0]=a[ga>>0]|0;fa=fa+1|0;ga=ga+1|0}while((fa|0)<(ha|0));ga=c[e>>2]|0;c[ca>>2]=242221;c[ca+4>>2]=ga;ga=(Sn(da+41|0,242601,ca)|0)+41|0;ca=c[e+4>>2]|0;c[ba>>2]=263063;c[ba+4>>2]=ca;ca=(Sn(da+ga|0,242601,ba)|0)+ga|0;c[aa>>2]=242229;ga=ca+(Sn(da+ca|0,242613,aa)|0)|0;aa=(a[e+8>>0]|0)!=0;ca=aa?4:5;Co(da+ga|0,(aa?242630:242635)|0,ca+1|0)|0;aa=da+(ca+ga)|0;ga=1;while(1){c[$>>2]=(a[e+8+ga>>0]|0)!=0?242630:242635;ca=Sn(aa,242641,$)|0;ba=aa+ca|0;if((ga&15|0)==15){a[ba>>0]=a[242646]|0;a[ba+1>>0]=a[242647]|0;a[ba+2>>0]=a[242648]|0;a[ba+3>>0]=a[242649]|0;a[ba+4>>0]=a[242650]|0;a[ba+5>>0]=a[242651]|0;ia=ca+5|0;ja=ia;ka=aa+ia|0}else{ja=ca;ka=ba}ga=ga+1|0;if((ga|0)==128){la=ja;ma=aa;na=ka;break}else aa=ka}a[na>>0]=93;a[na+1>>0]=0;c[_>>2]=263074;na=(Sn(ma+(la+1)|0,242613,_)|0)+1|0;_=(a[e+136>>0]|0)!=0;ka=_?4:5;Co(ma+(la+na)|0,(_?242630:242635)|0,ka+1|0)|0;_=ma+(la+(ka+na))|0;na=1;while(1){c[Z>>2]=(a[e+136+na>>0]|0)!=0?242630:242635;ka=Sn(_,242641,Z)|0;la=_+ka|0;if((na&15|0)==15){a[la>>0]=a[242646]|0;a[la+1>>0]=a[242647]|0;a[la+2>>0]=a[242648]|0;a[la+3>>0]=a[242649]|0;a[la+4>>0]=a[242650]|0;a[la+5>>0]=a[242651]|0;ma=ka+5|0;oa=ma;pa=_+ma|0}else{oa=ka;pa=la}na=na+1|0;if((na|0)==512){qa=oa;ra=_;sa=pa;break}else _=pa}a[sa>>0]=93;a[sa+1>>0]=0;c[Y>>2]=263085;sa=(Sn(ra+(qa+1)|0,242613,Y)|0)+1|0;Y=(a[e+648>>0]|0)!=0;pa=Y?4:5;Co(ra+(qa+sa)|0,(Y?242630:242635)|0,pa+1|0)|0;Y=ra+(qa+(pa+sa))|0;sa=1;while(1){c[X>>2]=(a[e+648+sa>>0]|0)!=0?242630:242635;pa=Sn(Y,242641,X)|0;qa=Y+pa|0;if((sa&15|0)==15){a[qa>>0]=a[242646]|0;a[qa+1>>0]=a[242647]|0;a[qa+2>>0]=a[242648]|0;a[qa+3>>0]=a[242649]|0;a[qa+4>>0]=a[242650]|0;a[qa+5>>0]=a[242651]|0;ra=pa+5|0;ta=ra;ua=Y+ra|0}else{ta=pa;ua=qa}sa=sa+1|0;if((sa|0)==256){va=ta;wa=Y;xa=ua;break}else Y=ua}a[xa>>0]=93;a[xa+1>>0]=0;c[W>>2]=263107;xa=(Sn(wa+(va+1)|0,242613,W)|0)+1|0;W=(a[e+904>>0]|0)!=0;ua=W?4:5;Co(wa+(va+xa)|0,(W?242630:242635)|0,ua+1|0)|0;W=wa+(va+(ua+xa))|0;xa=1;while(1){c[V>>2]=(a[e+904+xa>>0]|0)!=0?242630:242635;ua=Sn(W,242641,V)|0;va=W+ua|0;if((xa&15|0)==15){a[va>>0]=a[242646]|0;a[va+1>>0]=a[242647]|0;a[va+2>>0]=a[242648]|0;a[va+3>>0]=a[242649]|0;a[va+4>>0]=a[242650]|0;a[va+5>>0]=a[242651]|0;wa=ua+5|0;ya=wa;za=W+wa|0}else{ya=ua;za=va}xa=xa+1|0;if((xa|0)==256){Aa=ya;Ba=W;Ca=za;break}else W=za}a[Ca>>0]=93;a[Ca+1>>0]=0;c[U>>2]=263097;Ca=(Sn(Ba+(Aa+1)|0,242613,U)|0)+1|0;U=(a[e+1160>>0]|0)!=0;za=U?4:5;Co(Ba+(Aa+Ca)|0,(U?242630:242635)|0,za+1|0)|0;U=Ba+(Aa+(za+Ca))|0;Ca=1;while(1){c[T>>2]=(a[e+1160+Ca>>0]|0)!=0?242630:242635;za=Sn(U,242641,T)|0;Aa=U+za|0;if((Ca&15|0)==15){a[Aa>>0]=a[242646]|0;a[Aa+1>>0]=a[242647]|0;a[Aa+2>>0]=a[242648]|0;a[Aa+3>>0]=a[242649]|0;a[Aa+4>>0]=a[242650]|0;a[Aa+5>>0]=a[242651]|0;Ba=za+5|0;Da=Ba;Ea=U+Ba|0}else{Da=za;Ea=Aa}Ca=Ca+1|0;if((Ca|0)==256){Fa=Da;Ga=U;Ha=Ea;break}else U=Ea}a[Ha>>0]=93;a[Ha+1>>0]=0;c[S>>2]=242235;Ha=(Sn(Ga+(Fa+1)|0,242613,S)|0)+1|0;S=(a[e+1416>>0]|0)!=0;Ea=S?4:5;Co(Ga+(Fa+Ha)|0,(S?242630:242635)|0,Ea+1|0)|0;S=Ga+(Fa+(Ea+Ha))|0;Ha=1;while(1){c[R>>2]=(a[e+1416+Ha>>0]|0)!=0?242630:242635;Ea=Sn(S,242641,R)|0;Fa=S+Ea|0;if((Ha&15|0)==15){a[Fa>>0]=a[242646]|0;a[Fa+1>>0]=a[242647]|0;a[Fa+2>>0]=a[242648]|0;a[Fa+3>>0]=a[242649]|0;a[Fa+4>>0]=a[242650]|0;a[Fa+5>>0]=a[242651]|0;Ga=Ea+5|0;Ia=Ga;Ja=S+Ga|0}else{Ia=Ea;Ja=Fa}Ha=Ha+1|0;if((Ha|0)==256){Ka=Ia;La=S;Ma=Ja;break}else S=Ja}a[Ma>>0]=93;a[Ma+1>>0]=0;c[Q>>2]=262791;Ma=(Sn(La+(Ka+1)|0,242613,Q)|0)+1|0;Q=(a[e+1672>>0]|0)!=0;Ja=Q?4:5;Co(La+(Ka+Ma)|0,(Q?242630:242635)|0,Ja+1|0)|0;Q=La+(Ka+(Ja+Ma))|0;Ma=1;while(1){c[P>>2]=(a[e+1672+Ma>>0]|0)!=0?242630:242635;Ja=Sn(Q,242641,P)|0;Ka=Q+Ja|0;if((Ma&15|0)==15){a[Ka>>0]=a[242646]|0;a[Ka+1>>0]=a[242647]|0;a[Ka+2>>0]=a[242648]|0;a[Ka+3>>0]=a[242649]|0;a[Ka+4>>0]=a[242650]|0;a[Ka+5>>0]=a[242651]|0;La=Ja+5|0;Na=La;Oa=Q+La|0}else{Na=Ja;Oa=Ka}Ma=Ma+1|0;if((Ma|0)==256){Pa=Na;Qa=Q;Ra=Oa;break}else Q=Oa}a[Ra>>0]=93;a[Ra+1>>0]=0;c[O>>2]=242243;Ra=(Sn(Qa+(Pa+1)|0,242613,O)|0)+1|0;O=(a[e+1928>>0]|0)!=0;Oa=O?4:5;Co(Qa+(Pa+Ra)|0,(O?242630:242635)|0,Oa+1|0)|0;O=Qa+(Pa+(Oa+Ra))|0;Ra=1;while(1){c[N>>2]=(a[e+1928+Ra>>0]|0)!=0?242630:242635;Oa=Sn(O,242641,N)|0;Pa=O+Oa|0;if((Ra&15|0)==15){a[Pa>>0]=a[242646]|0;a[Pa+1>>0]=a[242647]|0;a[Pa+2>>0]=a[242648]|0;a[Pa+3>>0]=a[242649]|0;a[Pa+4>>0]=a[242650]|0;a[Pa+5>>0]=a[242651]|0;Qa=Oa+5|0;Sa=Qa;Ta=O+Qa|0}else{Sa=Oa;Ta=Pa}Ra=Ra+1|0;if((Ra|0)==256){Ua=Sa;Va=O;Wa=Ta;break}else O=Ta}a[Wa>>0]=93;a[Wa+1>>0]=0;c[M>>2]=263091;Wa=(Sn(Va+(Ua+1)|0,242613,M)|0)+1|0;M=(a[e+2184>>0]|0)!=0;Ta=M?4:5;Co(Va+(Ua+Wa)|0,(M?242630:242635)|0,Ta+1|0)|0;M=Va+(Ua+(Ta+Wa))|0;Wa=1;while(1){c[L>>2]=(a[e+2184+Wa>>0]|0)!=0?242630:242635;Ta=Sn(M,242641,L)|0;Ua=M+Ta|0;if((Wa&15|0)==15){a[Ua>>0]=a[242646]|0;a[Ua+1>>0]=a[242647]|0;a[Ua+2>>0]=a[242648]|0;a[Ua+3>>0]=a[242649]|0;a[Ua+4>>0]=a[242650]|0;a[Ua+5>>0]=a[242651]|0;Va=Ta+5|0;Xa=Va;Ya=M+Va|0}else{Xa=Ta;Ya=Ua}Wa=Wa+1|0;if((Wa|0)==256){Za=Xa;_a=M;$a=Ya;break}else M=Ya}a[$a>>0]=93;a[$a+1>>0]=0;c[K>>2]=242248;$a=(Sn(_a+(Za+1)|0,242613,K)|0)+1|0;K=(a[e+2440>>0]|0)!=0;Ya=K?4:5;Co(_a+(Za+$a)|0,(K?242630:242635)|0,Ya+1|0)|0;K=_a+(Za+(Ya+$a))|0;$a=1;while(1){c[J>>2]=(a[e+2440+$a>>0]|0)!=0?242630:242635;Ya=Sn(K,242641,J)|0;Za=K+Ya|0;if(($a&15|0)==15){a[Za>>0]=a[242646]|0;a[Za+1>>0]=a[242647]|0;a[Za+2>>0]=a[242648]|0;a[Za+3>>0]=a[242649]|0;a[Za+4>>0]=a[242650]|0;a[Za+5>>0]=a[242651]|0;_a=Ya+5|0;ab=_a;bb=K+_a|0}else{ab=Ya;bb=Za}$a=$a+1|0;if(($a|0)==256){cb=ab;db=K;eb=bb;break}else K=bb}a[eb>>0]=93;a[eb+1>>0]=0;c[I>>2]=263125;eb=(Sn(db+(cb+1)|0,242613,I)|0)+1|0;I=(a[e+2696>>0]|0)!=0;bb=I?4:5;Co(db+(cb+eb)|0,(I?242630:242635)|0,bb+1|0)|0;I=db+(cb+(bb+eb))|0;eb=1;while(1){c[H>>2]=(a[e+2696+eb>>0]|0)!=0?242630:242635;bb=Sn(I,242641,H)|0;cb=I+bb|0;if((eb&15|0)==15){a[cb>>0]=a[242646]|0;a[cb+1>>0]=a[242647]|0;a[cb+2>>0]=a[242648]|0;a[cb+3>>0]=a[242649]|0;a[cb+4>>0]=a[242650]|0;a[cb+5>>0]=a[242651]|0;db=bb+5|0;fb=db;gb=I+db|0}else{fb=bb;gb=cb}eb=eb+1|0;if((eb|0)==256){hb=fb;ib=I;jb=gb;break}else I=gb}a[jb>>0]=93;a[jb+1>>0]=0;c[G>>2]=242254;jb=(Sn(ib+(hb+1)|0,242613,G)|0)+1|0;G=(a[e+2952>>0]|0)!=0;gb=G?4:5;Co(ib+(hb+jb)|0,(G?242630:242635)|0,gb+1|0)|0;G=ib+(hb+(gb+jb))|0;jb=1;while(1){c[F>>2]=(a[e+2952+jb>>0]|0)!=0?242630:242635;gb=Sn(G,242641,F)|0;hb=G+gb|0;if((jb&15|0)==15){a[hb>>0]=a[242646]|0;a[hb+1>>0]=a[242647]|0;a[hb+2>>0]=a[242648]|0;a[hb+3>>0]=a[242649]|0;a[hb+4>>0]=a[242650]|0;a[hb+5>>0]=a[242651]|0;ib=gb+5|0;kb=ib;lb=G+ib|0}else{kb=gb;lb=hb}jb=jb+1|0;if((jb|0)==64){mb=kb;nb=G;ob=lb;break}else G=lb}a[ob>>0]=93;a[ob+1>>0]=0;ob=c[e+3016>>2]|0;c[E>>2]=242266;c[E+4>>2]=ob;ob=(Sn(nb+(mb+1)|0,242601,E)|0)+1|0;E=c[e+3020>>2]|0;c[D>>2]=242276;c[D+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242601,D)|0)+ob|0;ob=c[e+3024>>2]|0;c[C>>2]=242289;c[C+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,C)|0)+E|0;E=c[e+3028>>2]|0;c[B>>2]=242302;c[B+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242601,B)|0)+ob|0;ob=c[e+3032>>2]|0;c[A>>2]=242313;c[A+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,A)|0)+E|0;E=(a[e+3036>>0]|0)!=0?242630:242635;c[z>>2]=242326;c[z+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242652,z)|0)+ob|0;ob=(a[e+3037>>0]|0)!=0?242630:242635;c[y>>2]=242331;c[y+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242652,y)|0)+E|0;E=(a[e+3038>>0]|0)!=0?242630:242635;c[x>>2]=242342;c[x+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242652,x)|0)+ob|0;ob=(a[e+3039>>0]|0)!=0?242630:242635;c[w>>2]=242352;c[w+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242652,w)|0)+E|0;E=(a[e+3040>>0]|0)!=0?242630:242635;c[v>>2]=242365;c[v+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242652,v)|0)+ob|0;ob=c[e+3044>>2]|0;c[u>>2]=242375;c[u+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,u)|0)+E|0;E=c[e+3048>>2]|0;c[t>>2]=242387;c[t+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242601,t)|0)+ob|0;ob=c[e+3052>>2]|0;c[s>>2]=242400;c[s+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,s)|0)+E|0;E=(a[e+3056>>0]|0)!=0?242630:242635;c[r>>2]=242406;c[r+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242652,r)|0)+ob|0;ob=(a[e+3057>>0]|0)!=0?242630:242635;c[q>>2]=242418;c[q+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242652,q)|0)+E|0;pb=+h[e+3064>>3];c[p>>2]=242430;h[p+8>>3]=pb;E=(Sn(nb+(mb+ob)|0,242664,p)|0)+ob|0;ob=c[e+3072>>2]|0;c[o>>2]=242440;c[o+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,o)|0)+E|0;E=c[e+3076>>2]|0;c[n>>2]=242454;c[n+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242601,n)|0)+ob|0;ob=c[e+3080>>2]|0;c[m>>2]=242464;c[m+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,m)|0)+E|0;E=c[e+3084>>2]|0;c[l>>2]=242474;c[l+4>>2]=E;E=(Sn(nb+(mb+ob)|0,242601,l)|0)+ob|0;ob=c[e+3088>>2]|0;c[k>>2]=242489;c[k+4>>2]=ob;ob=(Sn(nb+(mb+E)|0,242601,k)|0)+E|0;E=nb+(mb+ob)|0;a[E>>0]=a[242680]|0;a[E+1>>0]=a[242681]|0;a[E+2>>0]=a[242682]|0;E=nb+(mb+(ob+2))-da|0;if((E|0)<16){ob=to(16)|0;Qn(242502)|0;fa=ob;ha=fa+16|0;do{a[fa>>0]=0;fa=fa+1|0}while((fa|0)<(ha|0));qb=ob}else{ob=k+1|0;fa=0;do{c[j>>2]=1382297751>>>(fa<<3&24)&255;Sn(k,242528,j)|0;ha=fa<<1;a[da+(ha+8)>>0]=a[k>>0]|0;a[da+((ha|1)+8)>>0]=a[ob>>0]|0;fa=fa+1|0}while((fa|0)!=16);qb=Ae(da,E)|0}E=ea+1|0;fa=0;do{c[g>>2]=d[qb+fa>>0];Sn(ea,242528,g)|0;ob=fa<<1;a[da+(ob+8)>>0]=a[ea>>0]|0;a[da+((ob|1)+8)>>0]=a[E>>0]|0;fa=fa+1|0}while((fa|0)!=16);uo(qb);Nc(b|0,da|0);i=f;return}function Tl(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;do if(eo(a,261306)|0)if(eo(a,261313)|0)if(eo(a,261327)|0)if(eo(a,261339)|0)if(eo(a,261351)|0)if(eo(a,261370)|0)if(eo(a,261394)|0)if(eo(a,261407)|0)if(eo(a,261428)|0)if(eo(a,261450)|0)if(eo(a,261460)|0)if(eo(a,261471)|0)if(eo(a,261486)|0)if(eo(a,261501)|0)if(eo(a,261516)|0)if(eo(a,261522)|0)if(eo(a,261533)|0)if(eo(a,261545)|0)if(!(eo(a,261554)|0))e=18;else{if(!(eo(a,261567)|0)){e=19;break}if(!(eo(a,261577)|0)){e=20;break}if(!(eo(a,261587)|0)){e=23;break}if(!(eo(a,261609)|0)){e=24;break}if(!(eo(a,261631)|0)){e=21;break}if(!(eo(a,261647)|0)){e=22;break}if(!(eo(a,261663)|0)){e=25;break}if(!(eo(a,261670)|0)){e=26;break}if(!(eo(a,261689)|0)){e=27;break}if(!(eo(a,261697)|0)){e=29;break}if(!(eo(a,261713)|0)){e=30;break}if(!(eo(a,261730)|0)){e=31;break}if(!(eo(a,261744)|0)){e=28;break}if(!(eo(a,261750)|0)){e=32;break}if(!(eo(a,261763)|0)){e=33;break}if(!(eo(a,261777)|0)){e=34;break}if(!(eo(a,261792)|0)){e=49;break}if(!(eo(a,261813)|0)){e=50;break}if(!(eo(a,261833)|0)){e=35;break}if(!(eo(a,261852)|0)){e=36;break}if(!(eo(a,261866)|0)){e=37;break}if(!(eo(a,261880)|0)){e=38;break}if(!(eo(a,261888)|0)){e=39;break}if(!(eo(a,261905)|0)){e=40;break}if(!(eo(a,261923)|0)){e=41;break}if(!(eo(a,261939)|0)){e=44;break}if(!(eo(a,261954)|0)){e=45;break}if(!(eo(a,261974)|0)){e=46;break}if(!(eo(a,261985)|0)){e=47;break}if(!(eo(a,262002)|0)){e=48;break}if(!(eo(a,262020)|0)){e=42;break}if(!(eo(a,262030)|0)){e=43;break}if(!(eo(a,262046)|0)){e=51;break}if(!(eo(a,262060)|0)){e=52;break}if(!(eo(a,262075)|0)){e=53;break}if(!(eo(a,262089)|0)){e=54;break}if(!(eo(a,262098)|0)){e=55;break}if(!(eo(a,262117)|0)){e=56;break}if(!(eo(a,262121)|0)){e=57;break}if(!(eo(a,262127)|0)){e=58;break}if(!(eo(a,262138)|0)){e=59;break}if(!(eo(a,262145)|0)){e=60;break}if(!(eo(a,262153)|0)){e=61;break}if(!(eo(a,262165)|0)){e=62;break}if(!(eo(a,262176)|0)){e=63;break}if(!(eo(a,262182)|0)){e=64;break}if(!(eo(a,262205)|0)){e=65;break}if(!(eo(a,262223)|0)){e=66;break}if(!(eo(a,262238)|0)){e=67;break}if(!(eo(a,262248)|0)){e=68;break}if(!(eo(a,262264)|0)){e=69;break}if(!(eo(a,262278)|0)){e=70;break}if(!(eo(a,262288)|0)){e=71;break}if(!(eo(a,262297)|0)){e=72;break}if(!(eo(a,262307)|0)){e=73;break}if(!(eo(a,262321)|0)){e=74;break}if(!(eo(a,262329)|0)){e=75;break}if(!(eo(a,262339)|0)){e=76;break}if(!(eo(a,262351)|0)){e=77;break}if(!(eo(a,262369)|0)){e=78;break}if(!(eo(a,262381)|0)){e=79;break}if(!(eo(a,262393)|0)){e=80;break}if(!(eo(a,262405)|0)){e=81;break}c[d>>2]=a;Pn(262421,d)|0;e=0}else e=17;else e=16;else e=15;else e=14;else e=8;else e=7;else e=6;else e=10;else e=9;else e=13;else e=12;else e=11;else e=5;else e=4;else e=3;else e=2;else e=1;else e=0;while(0);i=b;return e|0}function Ul(){var b=0,d=0,e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0;b=i;i=i+320|0;d=b+304|0;e=b+296|0;f=b+288|0;h=b+280|0;j=b+24|0;k=b+8|0;l=b;Qn(262442)|0;m=c[2466]|0;if((a[242683]|0)==-17&(a[242684]|0)==-69&(a[242685]|0)==-65){Pn(262456,b+16|0)|0;n=m+-4|0;o=242686}else{n=m+-1|0;o=242683}c[j>>2]=n;Pn(262482,j)|0;n=qm(8)|0;Ue(n,o);c[2467]=Ye(n,262501,0)|0;c[2468]=Ye(n,262516,0)|0;c[2469]=Ye(n,262526,0)|0;c[2470]=Ye(n,262540,0)|0;c[2471]=Ye(n,262555,0)|0;c[2472]=Ye(n,262575,0)|0;c[2473]=Ye(n,262588,0)|0;c[2474]=Ye(n,262601,0)|0;c[2475]=Ye(n,262612,0)|0;c[2476]=Ye(n,262622,0)|0;c[2477]=Ye(n,262633,0)|0;c[2478]=(Xe(n,262645,0)|0)&1;c[2479]=(Xe(n,262660,0)|0)&1;c[2480]=Ye(n,262677,0)|0;g[2481]=+_e(n,262700,0.0);g[2482]=+_e(n,262710,0.0);g[2483]=+_e(n,262727,0.0);c[2484]=(Xe(n,262737,0)|0)&1;o=We(n,262753)|0;g[2485]=+_e(o,262761,0.0);g[2486]=+_e(o,262771,0.0);g[2487]=+_e(o,262780,0.0);g[2488]=+_e(o,262791,0.0);g[2489]=+_e(o,262799,0.0);g[2490]=+_e(o,262810,0.0);g[2491]=+_e(o,262816,0.0);o=We(n,262828)|0;g[2492]=+_e(o,262761,0.0);g[2493]=+_e(o,262771,0.0);g[2494]=+_e(o,262780,0.0);g[2495]=+_e(o,262791,0.0);g[2496]=+_e(o,262799,0.0);g[2497]=+_e(o,262810,0.0);g[2498]=+_e(o,262816,0.0);o=We(n,262843)|0;g[2499]=+_e(o,262761,0.0);g[2500]=+_e(o,262771,0.0);g[2501]=+_e(o,262780,0.0);g[2502]=+_e(o,262791,0.0);g[2503]=+_e(o,262799,0.0);g[2504]=+_e(o,262810,0.0);g[2505]=+_e(o,262816,0.0);o=We(n,262857)|0;g[2506]=+_e(o,262810,0.0);g[2507]=+_e(o,262869,0.0);o=We(n,262879)|0;g[2508]=+_e(o,262810,0.0);g[2509]=+_e(o,262892,0.0);g[2510]=+_e(o,262901,0.0);o=$e(n,262909)|0;if(o){m=af(o)|0;c[56015]=m;if((m|0)>0){m=j+4|0;p=k+4|0;q=l+4|0;r=0;do{s=bf(o,r)|0;c[10044+(r*3344|0)>>2]=Ye(s,262951,0)|0;g[10044+(r*3344|0)+4>>2]=+_e(s,262957,0.0);g[10044+(r*3344|0)+8>>2]=+_e(s,262901,0.0);t=$e(s,262973)|0;if(t){s=af(t)|0;u=10044+(r*3344|0)+3340|0;c[u>>2]=s;if((s|0)>0){s=0;do{v=bf(t,s)|0;c[10044+(r*3344|0)+12+(s*52|0)>>2]=Tl(Ze(v,262983,261289)|0)|0;w=10044+(r*3344|0)+12+(s*52|0)+4|0;g[w>>2]=+_e(v,262988,0.0);g[10044+(r*3344|0)+12+(s*52|0)+8>>2]=+_e(v,262994,0.0);g[10044+(r*3344|0)+12+(s*52|0)+12>>2]=+_e(v,263001,0.0);g[10044+(r*3344|0)+12+(s*52|0)+16>>2]=+_e(v,263011,0.0);g[10044+(r*3344|0)+12+(s*52|0)+20>>2]=+_e(v,263024,0.0);x=10044+(r*3344|0)+12+(s*52|0)+24|0;y=Ze(v,262810,261289)|0;if((y|0)!=0?(a[y>>0]|0)!=0:0)Yl(j,y);else{z=+_e(v,262810,0.0);g[j>>2]=z;g[m>>2]=z}y=j;A=c[y+4>>2]|0;B=x;c[B>>2]=c[y>>2];c[B+4>>2]=A;A=10044+(r*3344|0)+12+(s*52|0)+32|0;B=Ze(v,263037,261289)|0;if((B|0)!=0?(a[B>>0]|0)!=0:0)Yl(k,B);else{z=+_e(v,263037,0.0);g[k>>2]=z;g[p>>2]=z}B=k;y=c[B+4>>2]|0;x=A;c[x>>2]=c[B>>2];c[x+4>>2]=y;y=10044+(r*3344|0)+12+(s*52|0)+40|0;x=Ze(v,263048,261289)|0;if((x|0)!=0?(a[x>>0]|0)!=0:0)Yl(l,x);else{z=+_e(v,263048,0.0);g[l>>2]=z;g[q>>2]=z}x=l;B=c[x+4>>2]|0;A=y;c[A>>2]=c[x>>2];c[A+4>>2]=B;c[10044+(r*3344|0)+12+(s*52|0)+48>>2]=(Xe(v,263055,0)|0)&1;if(+g[w>>2]==0.0)g[w>>2]=1.0;s=s+1|0}while((s|0)<(c[u>>2]|0))}}else{c[f>>2]=262973;Pn(262915,f)|0;c[10044+(r*3344|0)+3340>>2]=0}r=r+1|0}while((r|0)<(c[56015]|0))}}else{c[h>>2]=262909;Pn(262915,h)|0;c[56015]=0}h=$e(n,263063)|0;if(h){r=af(h)|0;c[57424]=r;if((r|0)>0){r=0;do{f=bf(h,r)|0;c[224064+(r*44|0)>>2]=Ye(f,263068,0)|0;c[224064+(r*44|0)+4>>2]=Ye(f,263074,0)|0;c[224064+(r*44|0)+8>>2]=Ye(f,263085,0)|0;c[224064+(r*44|0)+12>>2]=Ye(f,263091,0)|0;c[224064+(r*44|0)+16>>2]=Ye(f,263097,0)|0;c[224064+(r*44|0)+20>>2]=Ye(f,263107,0)|0;c[224064+(r*44|0)+24>>2]=Ye(f,263116,0)|0;c[224064+(r*44|0)+28>>2]=Ye(f,262791,0)|0;c[224064+(r*44|0)+32>>2]=Ye(f,263125,0)|0;c[224064+(r*44|0)+36>>2]=(Xe(f,263132,0)|0)&1;c[d>>2]=Ze(f,263138,261289)|0;c[d+4>>2]=263143;Sn(j,261290,d)|0;f=a[j>>0]|0;if(f<<24>>24){l=f;f=j;q=0;do{a[f>>0]=Wm(l<<24>>24)|0;q=q+1|0;f=j+q|0;l=a[f>>0]|0}while(l<<24>>24!=0)}c[224064+(r*44|0)+40>>2]=13;r=r+1|0}while((r|0)<(c[57424]|0))}}else{c[e>>2]=263063;Pn(262915,e)|0;c[57424]=0}e=$e(n,263148)|0;c[58267]=vo(af(e)|0,4)|0;if((af(e)|0)>0)C=0;else{Ve(n);rm(n);i=b;return}do{r=df(e,C,0)|0;c[(c[58267]|0)+(C<<2)>>2]=r;C=C+1|0}while((C|0)<(af(e)|0));Ve(n);rm(n);i=b;return}function Vl(){Ul();return}function Wl(a){a=a|0;var b=0,d=0,e=0,f=0;b=(c[56015]|0)+-1|0;d=0;while(1){if((d|0)>=(b|0)){e=b;break}f=d+1|0;if((c[10044+(f*3344|0)>>2]|0)>(a|0)){e=d;break}else d=f}return 10044+(e*3344|0)|0}function Xl(){c[58268]=0;c[58269]=263155;c[58270]=1;c[58271]=263165;c[58272]=2;c[58273]=263176;c[58274]=3;c[58275]=263192;c[58276]=4;c[58277]=263201;c[58278]=5;c[58279]=263211;c[58280]=6;c[58281]=263220;c[58282]=7;c[58283]=263229;c[58284]=8;c[58285]=263241;Zl(9868);return}function Yl(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0.0,u=0.0;if(!c){g[b>>2]=0.0;g[b+4>>2]=0.0;return}d=bo(c,45)|0;e=a[c>>0]|0;if((e+-48&255)<10){f=c;h=e;i=0.0;while(1){j=i*10.0+ +((h<<24>>24)+-48|0);k=f+1|0;l=a[k>>0]|0;if((l+-48&255)<10){f=k;h=l;i=j}else{m=k;n=l;o=j;break}}}else{m=c;n=e;o=0.0}if(n<<24>>24==46?(n=m+1|0,m=a[n>>0]|0,(m+-48&255)<10):0){e=n;n=m;i=.1;j=o;while(1){p=j+i*+((n<<24>>24)+-48|0);e=e+1|0;n=a[e>>0]|0;if((n+-48&255)>=10){q=p;break}else{i=i*.1;j=p}}}else q=o;o=q;g[b>>2]=o;if(d){n=d+1|0;e=a[n>>0]|0;if((e+-48&255)<10){m=n;n=e;q=0.0;while(1){j=q*10.0+ +((n<<24>>24)+-48|0);c=m+1|0;h=a[c>>0]|0;if((h+-48&255)<10){m=c;n=h;q=j}else{r=h;s=m;t=j;break}}}else{r=e;s=d;t=0.0}if(r<<24>>24==46?(r=s+2|0,s=a[r>>0]|0,(s+-48&255)<10):0){d=r;r=s;q=.1;j=t;while(1){i=j+q*+((r<<24>>24)+-48|0);d=d+1|0;r=a[d>>0]|0;if((r+-48&255)>=10){u=i;break}else{q=q*.1;j=i}}}else u=t}else u=o;g[b+4>>2]=u;return}function Zl(a){a=a|0;_l(a+176|0);_l(a+3520|0);_l(a+6864|0);_l(a+10208|0);_l(a+13552|0);_l(a+16896|0);_l(a+20240|0);_l(a+23584|0);_l(a+26928|0);_l(a+30272|0);_l(a+33616|0);_l(a+36960|0);_l(a+40304|0);_l(a+43648|0);_l(a+46992|0);_l(a+50336|0);_l(a+53680|0);_l(a+57024|0);_l(a+60368|0);_l(a+63712|0);_l(a+67056|0);_l(a+70400|0);_l(a+73744|0);_l(a+77088|0);_l(a+80432|0);_l(a+83776|0);_l(a+87120|0);_l(a+90464|0);_l(a+93808|0);_l(a+97152|0);_l(a+100496|0);_l(a+103840|0);_l(a+107184|0);_l(a+110528|0);_l(a+113872|0);_l(a+117216|0);_l(a+120560|0);_l(a+123904|0);_l(a+127248|0);_l(a+130592|0);_l(a+133936|0);_l(a+137280|0);_l(a+140624|0);_l(a+143968|0);_l(a+147312|0);_l(a+150656|0);_l(a+154e3|0);_l(a+157344|0);_l(a+160688|0);_l(a+164032|0);_l(a+167376|0);_l(a+170720|0);_l(a+174064|0);_l(a+177408|0);_l(a+180752|0);_l(a+184096|0);_l(a+187440|0);_l(a+190784|0);_l(a+194128|0);_l(a+197472|0);_l(a+200816|0);_l(a+204160|0);_l(a+207504|0);_l(a+210848|0);c[a+214236>>2]=0;c[a+214280>>2]=0;c[a+214324>>2]=0;c[a+214368>>2]=0;c[a+214412>>2]=0;c[a+214456>>2]=0;c[a+214500>>2]=0;c[a+214544>>2]=0;c[a+214588>>2]=0;c[a+214632>>2]=0;c[a+214676>>2]=0;c[a+214720>>2]=0;c[a+214764>>2]=0;c[a+214808>>2]=0;c[a+214852>>2]=0;c[a+214896>>2]=0;c[a+214940>>2]=0;c[a+214984>>2]=0;c[a+215028>>2]=0;c[a+215072>>2]=0;c[a+215116>>2]=0;c[a+215160>>2]=0;c[a+215204>>2]=0;c[a+215248>>2]=0;c[a+215292>>2]=0;c[a+215336>>2]=0;c[a+215380>>2]=0;c[a+215424>>2]=0;c[a+215468>>2]=0;c[a+215512>>2]=0;c[a+215556>>2]=0;c[a+215600>>2]=0;c[a+215644>>2]=0;c[a+215688>>2]=0;c[a+215732>>2]=0;c[a+215776>>2]=0;c[a+215820>>2]=0;c[a+215864>>2]=0;c[a+215908>>2]=0;c[a+215952>>2]=0;c[a+215996>>2]=0;c[a+216040>>2]=0;c[a+216084>>2]=0;c[a+216128>>2]=0;c[a+216172>>2]=0;c[a+216216>>2]=0;c[a+216260>>2]=0;c[a+216304>>2]=0;c[a+216348>>2]=0;c[a+216392>>2]=0;c[a+216436>>2]=0;c[a+216480>>2]=0;c[a+216524>>2]=0;c[a+216568>>2]=0;c[a+216612>>2]=0;c[a+216656>>2]=0;c[a+216700>>2]=0;c[a+216744>>2]=0;c[a+216788>>2]=0;c[a+216832>>2]=0;c[a+216876>>2]=0;c[a+216920>>2]=0;c[a+216964>>2]=0;c[a+217008>>2]=0;c[a+217052>>2]=0;c[a+217096>>2]=0;c[a+217140>>2]=0;c[a+217184>>2]=0;c[a+217228>>2]=0;c[a+217272>>2]=0;c[a+217316>>2]=0;c[a+217360>>2]=0;c[a+217404>>2]=0;c[a+217448>>2]=0;c[a+217492>>2]=0;c[a+217536>>2]=0;c[a+217580>>2]=0;c[a+217624>>2]=0;c[a+217668>>2]=0;c[a+217712>>2]=0;c[a+217756>>2]=0;c[a+217800>>2]=0;c[a+217844>>2]=0;c[a+217888>>2]=0;c[a+217932>>2]=0;c[a+217976>>2]=0;c[a+218020>>2]=0;c[a+218064>>2]=0;c[a+218108>>2]=0;c[a+218152>>2]=0;c[a+218196>>2]=0;c[a+218240>>2]=0;c[a+218284>>2]=0;c[a+218328>>2]=0;c[a+218372>>2]=0;c[a+218416>>2]=0;c[a+218460>>2]=0;c[a+218504>>2]=0;c[a+218548>>2]=0;c[a+218592>>2]=0;c[a+218636>>2]=0;c[a+218680>>2]=0;c[a+218724>>2]=0;c[a+218768>>2]=0;c[a+218812>>2]=0;c[a+218856>>2]=0;c[a+218900>>2]=0;c[a+218944>>2]=0;c[a+218988>>2]=0;c[a+219032>>2]=0;c[a+219076>>2]=0;c[a+219120>>2]=0;c[a+219164>>2]=0;c[a+219208>>2]=0;c[a+219252>>2]=0;c[a+219296>>2]=0;c[a+219340>>2]=0;c[a+219384>>2]=0;c[a+219428>>2]=0;c[a+219472>>2]=0;c[a+219516>>2]=0;c[a+219560>>2]=0;c[a+219604>>2]=0;c[a+219648>>2]=0;c[a+219692>>2]=0;c[a+219736>>2]=0;c[a+219780>>2]=0;c[a+219824>>2]=0;$l(a+219832|0);return}function _l(a){a=a|0;var b=0;b=a+36|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+88|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+140|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+192|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+244|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+296|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+348|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+400|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+452|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+504|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+556|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+608|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+660|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+712|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+764|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+816|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+868|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+920|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+972|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1024|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1076|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1128|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1180|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1232|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1284|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1336|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1388|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1440|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1492|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1544|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1596|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1648|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1700|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1752|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1804|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1856|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1908|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+1960|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2012|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2064|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2116|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2168|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2220|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2272|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2324|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2376|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2428|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2480|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2532|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2584|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2636|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2688|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2740|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2792|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2844|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2896|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+2948|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3e3|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3052|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3104|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3156|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3208|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3260|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;b=a+3312|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;return}function $l(a){a=a|0;var b=0,d=0;b=a+16|0;d=a+56|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+108|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+160|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+212|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+264|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+316|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+368|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+420|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+472|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+524|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+576|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+628|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+680|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+732|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+784|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+836|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+888|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+940|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+992|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1044|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1096|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1148|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1200|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1252|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1304|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1356|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1408|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1460|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1512|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1564|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1616|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1668|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1720|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1772|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1824|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1876|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1928|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+1980|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2032|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2084|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2136|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2188|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2240|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2292|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2344|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2396|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2448|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2500|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2552|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2604|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2656|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2708|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2760|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2812|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2864|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2916|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+2968|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3020|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3072|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3124|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3176|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3228|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3280|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;d=a+3332|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;return}function am(){var a=0,b=0;a=qm(208)|0;Eo(a|0,0,208)|0;c[a>>2]=233152;c[a+8>>2]=0;c[a+12>>2]=-1;g[a+16>>2]=0.0;g[a+20>>2]=0.0;b=a+32|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return a|0}function bm(a){a=a|0;rm(a);return}function cm(b){b=b|0;var f=0,i=0,j=0,k=0.0,l=0.0;f=c[33]|0;i=f+1862|0;j=(d[i>>0]|d[i+1>>0]<<8)<<16>>16;i=f+1858|0;f=((d[i>>0]|d[i+1>>0]<<8)&65535)>>>1&65535;c[b+24>>2]=~~+(j-f|0);c[b+28>>2]=~~+(f+j+(e[17]|0)-(e[11]|0)|0);c[b+8>>2]=226;c[b+12>>2]=7;g[b+16>>2]=0.0;g[b+20>>2]=0.0;g[b+136>>2]=0.0;k=+(e[11]|0|0);a[b+112>>0]=0;c[b+108>>2]=0;c[b+96>>2]=9940;h[b+72>>3]=0.0;c[b+104>>2]=0;j=c[c[58267]>>2]|0;c[b+56>>2]=j;c[b+60>>2]=j;g[b+64>>2]=0.0;g[b+68>>2]=1.0;h[b+32>>3]=+((e[16]|0)>>>1&65535|0);l=+(~~(k*.6)|0);h[b+40>>3]=l;h[b+48>>3]=0.0;h[b+88>>3]=0.0;j=(c[33]|0)+272|0;g[b+100>>2]=+((d[j>>0]|d[j+1>>0]<<8)&65535|0)*.4399999976158142;a[b+113>>0]=1;g[b+116>>2]=0.0;c[b+120>>2]=0;a[b+124>>0]=0;h[b+128>>3]=0.0;c[b+188>>2]=0;c[b+192>>2]=1;g[b+196>>2]=0.0;g[b+180>>2]=0.0;g[b+140>>2]=l-k*.65;g[b+144>>2]=l-k*1.05;h[b+168>>3]=0.0;c[b+160>>2]=0;g[b+176>>2]=0.0;h[b+152>>3]=0.0;g[b+4>>2]=0.0;g[b+200>>2]=0.0;c[b+184>>2]=0;return}function dm(a){a=a|0;Ie(249);return}function em(f,i){f=f|0;i=+i;var j=0,k=0,l=0.0,m=0,n=0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0.0;j=f+196|0;i=+g[j>>2]+.03200000151991844;g[j>>2]=i>1.0?1.0:i;k=f+200|0;i=+g[k>>2];if(i>0.0?(l=i+.01600000075995922,g[k>>2]=l,l>1.0):0)g[k>>2]=1.0;m=f+160|0;switch(c[m>>2]|0){case 0:{n=f+180|0;g[n>>2]=+g[n>>2]+.03200000151991844;uh(f+32|0,.01600000075995922);n=f+152|0;l=+h[n>>3]+-.01600000075995922;h[n>>3]=l;if(l<0.0){h[n>>3]=.4000000059604645;qg(5);if(!(a[f+124>>0]|0)){o=c[f+96>>2]|0;h[f+48>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[o>>2]*(+g[o+16>>2]*+(e[11]|0)*.0009765625)}else h[f+128>>3]=.01;g[f+136>>2]=.15000000596046448}o=f+40|0;l=+h[o>>3];i=+((e[17]|0)>>>1&65535|0);if(l<i){p=i-l;q=f+140|0;i=p+ +g[q>>2];g[q>>2]=i;q=f+144|0;g[q>>2]=p+ +g[q>>2];r=l+p;h[o>>3]=r;s=i;t=r}else{s=+g[f+140>>2];t=l}if(t-s<+((e[11]|0)>>>2&65535|0)?(c[m>>2]=1,h[f+168>>3]=0.0,h[n>>3]=+h[n>>3]+.15000000596046448,n=f+192|0,o=c[n>>2]|0,(o|0)!=2):0){c[f+188>>2]=o;c[n>>2]=2;g[j>>2]=0.0}break}case 1:{n=f+176|0;s=+g[n>>2]+.01600000075995922;g[n>>2]=s>1.0?1.0:s;uh(f+32|0,.01600000075995922);n=f+152|0;s=+h[n>>3]+-.01600000075995922;h[n>>3]=s;if(s<0.0){h[n>>3]=.550000011920929;qg(5);if(!(a[f+124>>0]|0)){n=c[f+96>>2]|0;h[f+48>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[n>>2]*(+g[n+16>>2]*+(e[11]|0)*.0009765625)}else h[f+128>>3]=.01;g[f+136>>2]=.15000000596046448}n=f+40|0;s=+h[n>>3];t=+((e[17]|0)>>>1&65535|0);if(s<t){l=t-s;o=f+140|0;g[o>>2]=l+ +g[o>>2];o=f+144|0;g[o>>2]=l+ +g[o>>2];h[n>>3]=s+l}n=f+168|0;l=+h[n>>3]+.01600000075995922;h[n>>3]=l;if(l>2.0){c[m>>2]=2;h[n>>3]=0.0}break}case 2:{uh(f+32|0,.01600000075995922);n=f+152|0;l=+h[n>>3]+-.01600000075995922;h[n>>3]=l;if(l<0.0){h[n>>3]=.3499999940395355;qg(5);if(!(a[f+124>>0]|0)){n=c[f+96>>2]|0;h[f+48>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[n>>2]*(+g[n+16>>2]*+(e[11]|0)*.0009765625)}else h[f+128>>3]=.01;g[f+136>>2]=.15000000596046448}n=f+40|0;l=+h[n>>3];s=+((e[17]|0)>>>1&65535|0);if(l<s){t=s-l;o=f+140|0;g[o>>2]=t+ +g[o>>2];o=f+144|0;g[o>>2]=t+ +g[o>>2];s=l+t;h[n>>3]=s;u=s}else u=l;if(+g[k>>2]==0.0?(o=c[33]|0,q=o+1830|0,v=o+1826|0,u<+g[f+140>>2]+ +(((d[v>>0]|d[v+1>>0]<<8)&65535)-((d[q>>0]|d[q+1>>0]<<8)<<16>>16)|0)*.7):0){qg(6);g[k>>2]=.009999999776482582;w=+h[n>>3]}else w=u;q=f+144|0;v=c[33]|0;o=v+1830|0;x=v+1826|0;if(w<+g[q>>2]+ +(((d[x>>0]|d[x+1>>0]<<8)&65535)-((d[o>>0]|d[o+1>>0]<<8)<<16>>16)|0)*.7){qg(2);o=((c[f+184>>2]|0)+1|0)%4|0;x=f+104|0;if((c[x>>2]|0)!=(o|0)){c[x>>2]=o;x=c[(c[58267]|0)+(o<<2)>>2]|0;c[f+56>>2]=x;c[f+60>>2]=x;g[f+64>>2]=0.0;g[f+68>>2]=1.0;h[f+80>>3]=+h[n>>3]-+g[2482]*+(e[11]|0)*.4000000059604645}g[q>>2]=+(e[17]<<1|0);c[m>>2]=3;g[f+180>>2]=1.0}break}case 3:{q=f+180|0;g[q>>2]=+g[q>>2]+-.03200000151991844;uh(f+32|0,.01600000075995922);n=f+152|0;w=+h[n>>3]+-.01600000075995922;h[n>>3]=w;if(w<0.0){h[n>>3]=.3499999940395355;qg(5);if(!(a[f+124>>0]|0)){x=c[f+96>>2]|0;h[f+48>>3]=((a[1473]|0)!=0?1.0:-1.0)*+g[x>>2]*(+g[x+16>>2]*+(e[11]|0)*.0009765625)}else h[f+128>>3]=.01;g[f+136>>2]=.15000000596046448}x=f+40|0;w=+h[x>>3];u=+((e[17]|0)>>>1&65535|0);if(w<u){l=u-w;o=f+140|0;g[o>>2]=l+ +g[o>>2];o=f+144|0;g[o>>2]=l+ +g[o>>2];u=w+l;h[x>>3]=u;y=u}else y=w;if(+g[q>>2]<0.0?+h[n>>3]<.05:0){x=f+192|0;o=c[x>>2]|0;if((o|0)!=1){c[f+188>>2]=o;c[x>>2]=1;g[j>>2]=0.0}g[q>>2]=0.0;w=+(e[11]|0);g[f+140>>2]=y-w*.65;g[f+144>>2]=y-w*1.05;h[f+168>>3]=0.0;c[m>>2]=0;g[f+176>>2]=0.0;h[n>>3]=0.0;g[f+4>>2]=0.0;g[k>>2]=0.0;c[f+184>>2]=c[f+104>>2]}break}default:{}}k=f+180|0;if(+g[k>>2]>1.0)g[k>>2]=1.0;k=f+4|0;g[k>>2]=+g[k>>2]+.01600000075995922;k=f+136|0;g[k>>2]=+g[k>>2]+-.01600000075995922;if(!(sh(f+8|0,8,0.0,0.0)|0)?(b[2908]&4096)==0:0)return;f=c[103]|0;if((c[101]|0)!=(f|0)){c[101]=f;Wd(250)}qg(1);return}function fm(a){a=a|0;gm(a);hm(a);return}function gm(b){b=b|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0;f=i;i=i+400|0;j=f+376|0;k=f+312|0;l=f+248|0;m=f+184|0;n=f+128|0;o=f+64|0;p=f;q=c[b+140>>2]|0;r=+((e[16]|0)>>>1&65535|0);a[k>>0]=1;c[k+4>>2]=229;c[k+8>>2]=0;g[k+12>>2]=r;c[k+16>>2]=q;g[k+20>>2]=1.0;g[k+24>>2]=1.0;c[k+32>>2]=0;s=k+36|0;c[s>>2]=-1;c[k+40>>2]=0;a[k+44>>0]=0;t=k+48|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;t=b+4|0;u=+g[t>>2];g[k+28>>2]=u*128.0+135.0+-50.0;v=b+184|0;c[s>>2]=c[(c[58267]|0)+(c[v>>2]<<2)>>2];w=b+176|0;x=+g[w>>2];y=b+180|0;z=+g[y>>2];A=+we(u,0.0,1.0,0.0,.699999988079071);B=~~(x*z*(A<0.0?0.0:A>.5?.5:A)*255.0);c[s>>2]=c[s>>2]&16777215|((B|0)<0?0:(B|0)>255?-16777216:B<<24);if(a[k>>0]|0)Oe(k);A=+h[b+32>>3];z=+h[b+40>>3];a[l>>0]=1;c[l+4>>2]=16;c[l+8>>2]=0;g[l+12>>2]=A;g[l+16>>2]=z;k=l+20|0;g[k>>2]=1.0;B=l+24|0;g[B>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;s=l+36|0;c[s>>2]=-1;c[l+40>>2]=0;a[l+44>>0]=0;C=l+48|0;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;C=c[(c[58267]|0)+(c[v>>2]<<2)>>2]|0;D=~~+xe(.25,0.0,1.0,+(C&255),255.0);E=~~+xe(.25,0.0,1.0,+(C>>>8&255),255.0);z=+xe(.25,0.0,1.0,+(C>>>16&255),255.0);c[s>>2]=E<<8&65280|D&255|~~z<<16&16711680|~~+xe(.25,0.0,1.0,+(C>>>24&255),255.0)<<24;g[B>>2]=1.5;g[k>>2]=1.5;z=+g[w>>2];A=+g[y>>2];x=+we(+g[t>>2],0.0,1.0,.30000001192092896,1.399999976158142);w=~~(z*A*(x<0.0?0.0:x>1.0?1.0:x)*255.0);c[s>>2]=c[s>>2]&16777215|((w|0)<0?0:(w|0)>255?-16777216:w<<24);if(a[l>>0]|0)Oe(l);a[m>>0]=1;c[m+4>>2]=72;c[m+8>>2]=0;g[m+12>>2]=r;c[m+16>>2]=q;l=m+20|0;g[l>>2]=1.0;w=m+24|0;g[w>>2]=1.0;g[m+28>>2]=0.0;c[m+32>>2]=0;s=m+36|0;c[s>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;k=m+48|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;x=+we(+(c[26]|0),0.0,60.0,.7350000143051147,.8025000095367432);g[w>>2]=x;g[l>>2]=x;l=b+200|0;w=~~(+xe(+g[l>>2],0.0,.25,1.0,0.0)*255.0);c[s>>2]=c[s>>2]&16777215|((w|0)<0?0:(w|0)>255?-16777216:w<<24);if(a[m>>0]|0)Oe(m);c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;a[n>>0]=1;c[n+4>>2]=72;m=n+8|0;c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];c[m+8>>2]=c[j+8>>2];c[m+12>>2]=c[j+12>>2];g[n+32>>2]=1.0;j=n+36|0;c[j>>2]=-1;c[n+40>>2]=8;c[n+44>>2]=0;c[n+48>>2]=0;a[n+52>>0]=0;m=(c[33]|0)+576|0;x=+((((d[m>>0]|d[m+1>>0]<<8)&65535)/3|0)&65535|0);g[n+12>>2]=r;c[n+16>>2]=q;A=+(~~(x*2.0)|0);g[n+20>>2]=A;g[n+24>>2]=A;g[n+28>>2]=.20000000298023224;m=~~(+xe(+g[l>>2],.5,0.0,1.0,0.0)*255.0);c[j>>2]=(m|0)<0?16777215:(m|0)>255?-1:m<<24|16777215;Jg(n);a[o>>0]=1;c[o+4>>2]=145;c[o+8>>2]=0;g[o+12>>2]=r;c[o+16>>2]=q;g[o+20>>2]=1.0;g[o+24>>2]=1.0;c[o+32>>2]=0;c[o+40>>2]=0;a[o+44>>0]=0;q=o+48|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;g[o+28>>2]=+g[t>>2]*128.0-+((c[v>>2]|0)*90|0)+-50.0;v=~~(+g[y>>2]*255.0);c[o+36>>2]=(v|0)<0?16777215:(v|0)>255?-1:v<<24|16777215;Oe(o);r=+g[y>>2];A=+((e[16]|0)>>>1&65535|0);y=c[b+144>>2]|0;a[p>>0]=1;c[p+4>>2]=228;c[p+8>>2]=0;g[p+12>>2]=A;c[p+16>>2]=y;g[p+20>>2]=1.0;g[p+24>>2]=1.0;g[p+28>>2]=0.0;c[p+32>>2]=0;c[p+40>>2]=0;a[p+44>>0]=0;y=p+48|0;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;c[y+12>>2]=0;y=~~(r*255.0);c[p+36>>2]=(y|0)<0?16777215:(y|0)>255?-1:y<<24|16777215;Oe(p);gh(b+32|0);i=f;return}function hm(b){b=b|0;var d=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0;d=i;i=i+256|0;f=d+192|0;h=d+128|0;j=d+64|0;k=d;Md(0.0,0.0,+(e[16]|0),+(c[b+24>>2]|0),0,-16777216)|0;a[f>>0]=1;l=f+4|0;c[l>>2]=225;m=f+8|0;c[m>>2]=0;n=f+12|0;g[n>>2]=0.0;o=f+16|0;g[o>>2]=0.0;g[f+20>>2]=1.0;g[f+24>>2]=1.0;g[f+28>>2]=0.0;c[f+32>>2]=0;c[f+36>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;p=f+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=Rd(225)|0;g[n>>2]=+((((e[16]|0)-(e[10]|0)|0)/2|0)+p|0);g[o>>2]=+(Sd((c[l>>2]|0)+(c[m>>2]|0)&65535)|0);if(a[f>>0]|0)Oe(f);a[h>>0]=1;f=h+4|0;c[f>>2]=227;m=h+8|0;c[m>>2]=0;l=h+12|0;g[l>>2]=0.0;o=h+16|0;g[o>>2]=0.0;g[h+20>>2]=1.0;g[h+24>>2]=1.0;g[h+28>>2]=0.0;c[h+32>>2]=0;c[h+36>>2]=-1;c[h+40>>2]=0;a[h+44>>0]=0;p=h+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;p=Rd(227)|0;g[l>>2]=+((((e[16]|0)-(e[10]|0)|0)/2|0)+p|0);g[o>>2]=+(Sd((c[f>>2]|0)+(c[m>>2]|0)&65535)|0);if(a[h>>0]|0)Oe(h);h=c[b+188>>2]|0;m=b+196|0;im(b,h,+xe(+g[m>>2],0.0,1.0,0.0,-1.0));h=c[b+192>>2]|0;q=+g[m>>2];if(!(q>=1.0)){r=+xe(q,0.0,1.0,0.0,.7408000230789185);do if(!(r<.35350000858306885)){if(r<.7408000230789185){q=r+-.5471900105476379;s=1.2999999523162842-q*q*8.0;break}if(r<.9643999934196472){q=r+-.8525999784469604;s=q*q*8.0+.8999999761581421}else s=1.0}else s=r*r*8.0;while(0);if(!(r>=.35350000858306885))t=s;else{r=(s+-1.0)*.5;t=(r>0.0?r:-r)+1.0}}else t=1.0;im(b,h,1.0-t);h=c[b+8>>2]|0;m=c[b+12>>2]|0;t=+g[b+16>>2];r=+g[b+20>>2];if((m|0)==-1){u=r;v=t}else{f=h&65535;s=t+ +(Rd(f)|0);t=s+ +((m|0)%3|0|0)*.5*+((e[16]|0)-(e[10]|0)|0);s=r+ +(Sd(f)|0);u=s+ +((m|0)/3|0|0)*.5*+((e[17]|0)-(e[11]|0)|0);v=t}a[j>>0]=1;c[j+4>>2]=h;c[j+8>>2]=0;g[j+12>>2]=+(~~v|0);g[j+16>>2]=+(~~u|0);g[j+20>>2]=1.0;g[j+24>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;a[j+44>>0]=0;h=j+48|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[j+40>>2]=2147483647;Oe(j);j=c[8]|0;a[k>>0]=1;c[k+4>>2]=223;g[k+12>>2]=+(j&65535|0)*.82;g[k+16>>2]=+(j>>>16|0)*.6;g[k+20>>2]=1.0;g[k+24>>2]=1.0;g[k+28>>2]=0.0;c[k+32>>2]=0;c[k+36>>2]=-1;c[k+40>>2]=0;a[k+44>>0]=0;j=k+48|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[k+8>>2]=+g[b+136>>2]>0.0&1;Oe(k);i=d;return}function im(d,f,h){d=d|0;f=f|0;h=+h;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=i;i=i+64|0;j=d;if(!f){i=d;return}k=f+229|0;a[j>>0]=1;f=j+4|0;c[f>>2]=k;l=j+8|0;c[l>>2]=0;m=j+12|0;g[m>>2]=0.0;n=j+16|0;g[n>>2]=0.0;g[j+20>>2]=1.0;g[j+24>>2]=1.0;g[j+28>>2]=0.0;c[j+32>>2]=0;c[j+36>>2]=-1;c[j+40>>2]=0;a[j+44>>0]=0;o=j+48|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;o=b[16]|0;p=Rd(k&65535)|0;g[m>>2]=+(o&65535|0)*h+ +((((e[16]|0)-(e[10]|0)|0)/2|0)+p|0);p=Sd((c[f>>2]|0)+(c[l>>2]|0)&65535)|0;g[n>>2]=+((e[17]|0)+p-(e[11]|0)|0);if(!(a[j>>0]|0)){i=d;return}Oe(j);i=d;return}function jm(){var a=0.0,b=0.0;a=+bc();h[681]=a;b=a-+h[682];if(!(b>=.016666666666666666))return;nm(b);b=+h[682]+.016666666666666666;h[682]=b;a=+h[681];if(!(a>b+.1))return;h[682]=a;return}function km(){var a=0;if(!(Oa()|0)){Qn(263262)|0;a=-1;return a|0}if((db(540,720,0,0,0,0,16,0,65537)|0)==1){Zc(18);tb(19);Uc(20);mm();h[682]=+bc();lm(2);ic();a=0;return a|0}else{Qn(263291)|0;ic();a=-1;return a|0}return 0}function lm(a){a=a|0;Tc(a|0,0,1);return}function mm(){qi(3,233204);return}function nm(a){a=+a;ri();Ke();return}function om(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=c[58396]|0;Un(b,a,e)|0;Hn(10,b)|0;mc()}function pm(){var a=0,b=0;a=i;i=i+16|0;if(!(nb(233328,3)|0)){b=Xb(c[58331]|0)|0;i=a;return b|0}else om(263547,a);return 0}function qm(a){a=a|0;var b=0,d=0,e=0;b=(a|0)==0?1:a;a=to(b)|0;a:do if(!a){while(1){d=xm()|0;if(!d)break;md[d&3]();d=to(b)|0;if(d){e=d;break a}}d=Lb(4)|0;c[d>>2]=233228;Yc(d|0,5464,37)}else e=a;while(0);return e|0}function rm(a){a=a|0;uo(a);return}function sm(a){a=a|0;return}function tm(a){a=a|0;rm(a);return}function um(a){a=a|0;return 263596}function vm(a){a=a|0;var b=0;b=i;i=i+16|0;md[a&3]();om(263611,b)}function wm(){var a=0,b=0;a=pm()|0;if(((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0)?(a=b+48|0,(c[a>>2]&-256|0)==1126902528?(c[a+4>>2]|0)==1129074247:0):0)vm(c[b+12>>2]|0);b=c[58304]|0;c[58304]=b+0;vm(b)}function xm(){var a=0;a=c[58310]|0;c[58310]=a+0;return a|0}function ym(a){a=a|0;return}function zm(a){a=a|0;return}function Am(a){a=a|0;return}function Bm(a){a=a|0;return}function Cm(a){a=a|0;return}function Dm(a){a=a|0;rm(a);return}function Em(a){a=a|0;rm(a);return}function Fm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+64|0;f=e;if((a|0)!=(b|0))if((b|0)!=0?(g=Jm(b,5496,5512,0)|0,(g|0)!=0):0){b=f;h=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(h|0));c[f>>2]=g;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;qd[c[(c[g>>2]|0)+28>>2]&31](g,f,c[d>>2]|0,1);if((c[f+24>>2]|0)==1){c[d>>2]=c[f+16>>2];j=1}else j=0;k=j}else k=0;else k=1;i=e;return k|0}function Gm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}h=d+24|0;if((c[h>>2]|0)==2)c[h>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function Hm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((a|0)==(c[b+8>>2]|0))Gm(0,b,d,e);return}function Im(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==(c[b+8>>2]|0))Gm(0,b,d,e);else{f=c[a+8>>2]|0;qd[c[(c[f>>2]|0)+28>>2]&31](f,b,d,e)}return}function Jm(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;i=i+64|0;j=h;k=c[d>>2]|0;l=d+(c[k+-8>>2]|0)|0;m=c[k+-4>>2]|0;c[j>>2]=f;c[j+4>>2]=d;c[j+8>>2]=e;c[j+12>>2]=g;g=j+16|0;e=j+20|0;d=j+24|0;k=j+28|0;n=j+32|0;o=j+40|0;p=(m|0)==(f|0);q=g;r=q+36|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(r|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(p){c[j+48>>2]=1;od[c[(c[f>>2]|0)+20>>2]&3](f,j,l,l,1,0);s=(c[d>>2]|0)==1?l:0}else{fd[c[(c[m>>2]|0)+24>>2]&3](m,j,l,1,0);switch(c[j+36>>2]|0){case 0:{s=(c[o>>2]|0)==1&(c[k>>2]|0)==1&(c[n>>2]|0)==1?c[e>>2]|0:0;break a;break}case 1:break;default:{s=0;break a}}if((c[d>>2]|0)!=1?!((c[o>>2]|0)==0&(c[k>>2]|0)==1&(c[n>>2]|0)==1):0){s=0;break}s=c[g>>2]|0}while(0);i=h;return s|0}function Km(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;h=c[b>>2]|0;if(!h){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((h|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54>>0]=1;break}h=d+24|0;b=c[h>>2]|0;if((b|0)==2){c[h>>2]=g;i=g}else i=b;if((i|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function Lm(b,d,e,f,g){b=b|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;a:do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(h=d+28|0,(c[h>>2]|0)!=1):0)c[h>>2]=f}else{if((b|0)!=(c[d>>2]|0)){h=c[b+8>>2]|0;fd[c[(c[h>>2]|0)+24>>2]&3](h,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;i=d+44|0;if((c[i>>2]|0)==4)break;j=d+52|0;a[j>>0]=0;k=d+53|0;a[k>>0]=0;l=c[b+8>>2]|0;od[c[(c[l>>2]|0)+20>>2]&3](l,d,e,e,1,g);if(a[k>>0]|0){if(!(a[j>>0]|0)){m=1;n=13}}else{m=0;n=13}do if((n|0)==13){c[h>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0){a[d+54>>0]=1;if(m)break}else n=16;if((n|0)==16?m:0)break;c[i>>2]=4;break a}while(0);c[i>>2]=3;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function Mm(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if((b|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)==(e|0)?(g=d+28|0,(c[g>>2]|0)!=1):0)c[g>>2]=f}else if((b|0)==(c[d>>2]|0)){if((c[d+16>>2]|0)!=(e|0)?(g=d+20|0,(c[g>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[g>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}while(0);return}function Nm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;if((a|0)==(c[b+8>>2]|0))Km(0,b,d,e,f);else{h=c[a+8>>2]|0;od[c[(c[h>>2]|0)+20>>2]&3](h,b,d,e,f,g)}return}function Om(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((a|0)==(c[b+8>>2]|0))Km(0,b,d,e,f);return}function Pm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=c[d>>2];g=dd[c[(c[a>>2]|0)+16>>2]&15](a,b,f)|0;if(g)c[d>>2]=c[f>>2];i=e;return g&1|0}function Qm(a){a=a|0;var b=0;if(!a)b=0;else b=(Jm(a,5496,5544,0)|0)!=0;return b&1|0}function Rm(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;a=i;i=i+48|0;b=a+32|0;d=a+24|0;e=a+16|0;f=a;g=a+36|0;a=pm()|0;if((a|0)!=0?(h=c[a>>2]|0,(h|0)!=0):0){a=h+48|0;j=c[a>>2]|0;k=c[a+4>>2]|0;if(!((j&-256|0)==1126902528&(k|0)==1129074247)){c[d>>2]=c[58333];om(263840,d)}if((j|0)==1126902529&(k|0)==1129074247)l=c[h+44>>2]|0;else l=h+80|0;c[g>>2]=l;l=c[h>>2]|0;h=c[l+4>>2]|0;if(dd[c[(c[5480>>2]|0)+16>>2]&15](5480,l,g)|0){l=c[g>>2]|0;g=c[58333]|0;k=kd[c[(c[l>>2]|0)+8>>2]&31](l)|0;c[f>>2]=g;c[f+4>>2]=h;c[f+8>>2]=k;om(263754,f)}else{c[e>>2]=c[58333];c[e+4>>2]=h;om(263799,e)}}om(263878,b)}function Sm(){var a=0;a=i;i=i+16|0;if(!(cc(233324,48)|0)){i=a;return}else om(263651,a)}function Tm(a){a=a|0;var b=0;b=i;i=i+16|0;uo(a);if(!(Wc(c[58331]|0,0)|0)){i=b;return}else om(263701,b)}function Um(a){a=a|0;return (a+-97|0)>>>0<26|0}function Vm(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Wm(a){a=a|0;var b=0;b=(Um(a)|0)==0;return (b?a:a&95)|0}function Xm(){var a=0;if(!(c[58334]|0))a=233596;else a=c[(Oc()|0)+60>>2]|0;return a|0}function Ym(b){b=b|0;var c=0,e=0,f=0,g=0,h=0,i=0,j=0;c=0;while(1){if((d[263899+c>>0]|0)==(b|0)){e=c;f=2;break}c=c+1|0;if((c|0)==87){g=87;h=263987;f=5;break}}if((f|0)==2)if(!e)i=263987;else{g=e;h=263987;f=5}if((f|0)==5)while(1){f=0;e=h;while(1){c=e+1|0;if(!(a[e>>0]|0)){j=c;break}else e=c}g=g+-1|0;if(!g){i=j;break}else{h=j;f=5}}return i|0}function Zm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0.0,$=0,aa=0.0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0.0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0.0,ua=0,va=0.0,wa=0.0,xa=0,ya=0.0,za=0,Aa=0.0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0.0,La=0,Ma=0,Na=0,Oa=0,Pa=0.0,Qa=0,Ra=0,Sa=0,Ta=0.0,Ua=0.0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0.0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0.0,fd=0.0,gd=0.0,hd=0.0,id=0.0,jd=0.0,kd=0.0,ld=0,md=0,nd=0.0,od=0,pd=0.0;g=i;i=i+512|0;h=g;switch(e|0){case 0:{j=24;k=-149;l=4;break}case 1:{j=53;k=-1074;l=4;break}case 2:{j=53;k=-1074;l=4;break}default:m=0.0}a:do if((l|0)==4){e=b+4|0;n=b+100|0;do{o=c[e>>2]|0;if(o>>>0<(c[n>>2]|0)>>>0){c[e>>2]=o+1;p=d[o>>0]|0}else p=an(b)|0}while((Vm(p)|0)!=0);q=p;b:do switch(q|0){case 43:case 45:{o=1-(((q|0)==45&1)<<1)|0;t=c[e>>2]|0;if(t>>>0<(c[n>>2]|0)>>>0){c[e>>2]=t+1;u=d[t>>0]|0;v=o;break b}else{u=an(b)|0;v=o;break b}break}default:{u=q;v=1}}while(0);o=u;t=0;while(1){if((o|32|0)!=(a[265791+t>>0]|0)){w=o;x=t;break}do if(t>>>0<7){y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;z=d[y>>0]|0;break}else{z=an(b)|0;break}}else z=o;while(0);y=t+1|0;if(y>>>0<8){o=z;t=y}else{w=z;x=y;break}}c:do switch(x|0){case 8:break;case 3:{l=23;break}default:{t=(f|0)!=0;if(t&x>>>0>3)if((x|0)==8)break c;else{l=23;break c}d:do if(!x){o=w;y=0;while(1){if((o|32|0)!=(a[267634+y>>0]|0)){A=o;B=y;break d}do if(y>>>0<2){D=c[e>>2]|0;if(D>>>0<(c[n>>2]|0)>>>0){c[e>>2]=D+1;E=d[D>>0]|0;break}else{E=an(b)|0;break}}else E=o;while(0);D=y+1|0;if(D>>>0<3){o=E;y=D}else{A=E;B=D;break}}}else{A=w;B=x}while(0);switch(B|0){case 3:{y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;F=d[y>>0]|0}else F=an(b)|0;if((F|0)==40)G=1;else{if(!(c[n>>2]|0)){m=r;break a}c[e>>2]=(c[e>>2]|0)+-1;m=r;break a}while(1){y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;H=d[y>>0]|0}else H=an(b)|0;if(!((H+-48|0)>>>0<10|(H+-65|0)>>>0<26)?!((H|0)==95|(H+-97|0)>>>0<26):0){I=H;J=G;break}G=G+1|0}if((I|0)==41){m=r;break a}y=(c[n>>2]|0)==0;if(!y)c[e>>2]=(c[e>>2]|0)+-1;if(!t){c[(Xm()|0)>>2]=22;$m(b,0);m=0.0;break a}if(!J){m=r;break a}else K=J;while(1){K=K+-1|0;if(!y)c[e>>2]=(c[e>>2]|0)+-1;if(!K){m=r;break a}}break}case 0:{do if((A|0)==48){y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;L=d[y>>0]|0}else L=an(b)|0;if((L|32|0)!=120){if(!(c[n>>2]|0)){M=48;break}c[e>>2]=(c[e>>2]|0)+-1;M=48;break}y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;O=d[y>>0]|0;P=0}else{O=an(b)|0;P=0}e:while(1){switch(O|0){case 46:{Q=P;l=74;break e;break}case 48:break;default:{R=0;S=0;T=0;U=0;V=O;W=P;X=0;Y=0;Z=1.0;$=0;aa=0.0;break e}}y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;O=d[y>>0]|0;P=1;continue}else{O=an(b)|0;P=1;continue}}if((l|0)==74){y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;ba=d[y>>0]|0}else ba=an(b)|0;if((ba|0)==48){y=0;t=0;while(1){o=c[e>>2]|0;if(o>>>0<(c[n>>2]|0)>>>0){c[e>>2]=o+1;ca=d[o>>0]|0}else ca=an(b)|0;o=Bo(y|0,t|0,-1,-1)|0;D=C;if((ca|0)==48){y=o;t=D}else{R=0;S=0;T=o;U=D;V=ca;W=1;X=1;Y=0;Z=1.0;$=0;aa=0.0;break}}}else{R=0;S=0;T=0;U=0;V=ba;W=Q;X=1;Y=0;Z=1.0;$=0;aa=0.0}}while(1){t=V+-48|0;y=V|32;if(t>>>0>=10){D=(V|0)==46;if(!(D|(y+-97|0)>>>0<6)){da=S;ea=T;fa=R;ga=U;ha=V;ia=W;ja=X;ka=$;la=aa;break}if(D)if(!X){ma=S;na=R;oa=S;pa=R;qa=W;ra=1;sa=Y;ta=Z;ua=$;va=aa}else{da=S;ea=T;fa=R;ga=U;ha=46;ia=W;ja=X;ka=$;la=aa;break}else l=86}else l=86;if((l|0)==86){l=0;D=(V|0)>57?y+-87|0:t;do if(!((R|0)<0|(R|0)==0&S>>>0<8)){if((R|0)<0|(R|0)==0&S>>>0<14){wa=Z*.0625;xa=Y;ya=wa;za=$;Aa=aa+wa*+(D|0);break}if((Y|0)!=0|(D|0)==0){xa=Y;ya=Z;za=$;Aa=aa}else{xa=1;ya=Z;za=$;Aa=aa+Z*.5}}else{xa=Y;ya=Z;za=D+($<<4)|0;Aa=aa}while(0);D=Bo(S|0,R|0,1,0)|0;ma=T;na=U;oa=D;pa=C;qa=1;ra=X;sa=xa;ta=ya;ua=za;va=Aa}D=c[e>>2]|0;if(D>>>0<(c[n>>2]|0)>>>0){c[e>>2]=D+1;R=pa;S=oa;T=ma;U=na;V=d[D>>0]|0;W=qa;X=ra;Y=sa;Z=ta;$=ua;aa=va;continue}else{R=pa;S=oa;T=ma;U=na;V=an(b)|0;W=qa;X=ra;Y=sa;Z=ta;$=ua;aa=va;continue}}if(!ia){D=(c[n>>2]|0)==0;if(!D)c[e>>2]=(c[e>>2]|0)+-1;if(f){if(!D?(D=c[e>>2]|0,c[e>>2]=D+-1,(ja|0)!=0):0)c[e>>2]=D+-2}else $m(b,0);m=+(v|0)*0.0;break a}D=(ja|0)==0;t=D?da:ea;y=D?fa:ga;if((fa|0)<0|(fa|0)==0&da>>>0<8){D=da;o=fa;Ba=ka;while(1){Ca=Ba<<4;D=Bo(D|0,o|0,1,0)|0;o=C;if(!((o|0)<0|(o|0)==0&D>>>0<8)){Da=Ca;break}else Ba=Ca}}else Da=ka;if((ha|32|0)==112){Ba=io(b,f)|0;D=C;if((Ba|0)==0&(D|0)==-2147483648){if(!f){$m(b,0);m=0.0;break a}if(!(c[n>>2]|0)){Ea=0;Fa=0}else{c[e>>2]=(c[e>>2]|0)+-1;Ea=0;Fa=0}}else{Ea=Ba;Fa=D}}else if(!(c[n>>2]|0)){Ea=0;Fa=0}else{c[e>>2]=(c[e>>2]|0)+-1;Ea=0;Fa=0}D=Go(t|0,y|0,2)|0;Ba=Bo(D|0,C|0,-32,-1)|0;D=Bo(Ba|0,C|0,Ea|0,Fa|0)|0;Ba=C;if(!Da){m=+(v|0)*0.0;break a}if((Ba|0)>0|(Ba|0)==0&D>>>0>(0-k|0)>>>0){c[(Xm()|0)>>2]=34;m=+(v|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}o=k+-106|0;Ca=((o|0)<0)<<31>>31;if((Ba|0)<(Ca|0)|(Ba|0)==(Ca|0)&D>>>0<o>>>0){c[(Xm()|0)>>2]=34;m=+(v|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((Da|0)>-1){o=D;Ca=Ba;Ga=Da;wa=la;while(1){Ha=!(wa>=.5);Ia=Ha&1|Ga<<1;Ja=Ia^1;Ka=wa+(Ha?wa:wa+-1.0);Ha=Bo(o|0,Ca|0,-1,-1)|0;La=C;if((Ia|0)>-1){o=Ha;Ca=La;Ga=Ja;wa=Ka}else{Ma=Ha;Na=La;Oa=Ja;Pa=Ka;break}}}else{Ma=D;Na=Ba;Oa=Da;Pa=la}Ga=Ao(32,0,k|0,((k|0)<0)<<31>>31|0)|0;Ca=Bo(Ma|0,Na|0,Ga|0,C|0)|0;Ga=C;if(0>(Ga|0)|0==(Ga|0)&j>>>0>Ca>>>0)if((Ca|0)<0){Qa=0;l=127}else{Ra=Ca;l=125}else{Ra=j;l=125}if((l|0)==125)if((Ra|0)<53){Qa=Ra;l=127}else{Sa=Ra;Ta=+(v|0);Ua=0.0}if((l|0)==127){wa=+(v|0);Sa=Qa;Ta=wa;Ua=+dn(+jn(1.0,84-Qa|0),wa)}Ca=(Oa&1|0)==0&(Pa!=0.0&(Sa|0)<32);wa=Ta*(Ca?0.0:Pa)+(Ua+Ta*+(((Ca&1)+Oa|0)>>>0))-Ua;if(!(wa!=0.0))c[(Xm()|0)>>2]=34;m=+kn(wa,Ma);break a}else M=A;while(0);Ca=k+j|0;Ga=0-Ca|0;o=M;y=0;f:while(1){switch(o|0){case 46:{Va=y;l=138;break f;break}case 48:break;default:{Wa=o;Xa=0;Ya=0;Za=y;_a=0;break f}}t=c[e>>2]|0;if(t>>>0<(c[n>>2]|0)>>>0){c[e>>2]=t+1;o=d[t>>0]|0;y=1;continue}else{o=an(b)|0;y=1;continue}}if((l|0)==138){y=c[e>>2]|0;if(y>>>0<(c[n>>2]|0)>>>0){c[e>>2]=y+1;$a=d[y>>0]|0}else $a=an(b)|0;if(($a|0)==48){y=0;o=0;while(1){t=Bo(y|0,o|0,-1,-1)|0;Ja=C;La=c[e>>2]|0;if(La>>>0<(c[n>>2]|0)>>>0){c[e>>2]=La+1;ab=d[La>>0]|0}else ab=an(b)|0;if((ab|0)==48){y=t;o=Ja}else{Wa=ab;Xa=t;Ya=Ja;Za=1;_a=1;break}}}else{Wa=$a;Xa=0;Ya=0;Za=Va;_a=1}}c[h>>2]=0;o=Wa+-48|0;y=(Wa|0)==46;g:do if(y|o>>>0<10){Ja=h+496|0;t=Wa;La=0;Ha=0;Ia=y;bb=o;cb=Xa;db=Ya;eb=Za;fb=_a;gb=0;hb=0;ib=0;h:while(1){do if(Ia)if(!fb){jb=La;kb=Ha;lb=La;mb=Ha;nb=eb;ob=1;pb=gb;qb=hb;rb=ib}else{sb=cb;tb=db;ub=La;vb=Ha;wb=eb;xb=gb;yb=hb;zb=ib;break h}else{Ab=Bo(La|0,Ha|0,1,0)|0;Bb=C;Cb=(t|0)!=48;if((hb|0)>=125){if(!Cb){jb=cb;kb=db;lb=Ab;mb=Bb;nb=eb;ob=fb;pb=gb;qb=hb;rb=ib;break}c[Ja>>2]=c[Ja>>2]|1;jb=cb;kb=db;lb=Ab;mb=Bb;nb=eb;ob=fb;pb=gb;qb=hb;rb=ib;break}Db=h+(hb<<2)|0;if(!gb)Eb=bb;else Eb=t+-48+((c[Db>>2]|0)*10|0)|0;c[Db>>2]=Eb;Db=gb+1|0;Fb=(Db|0)==9;jb=cb;kb=db;lb=Ab;mb=Bb;nb=1;ob=fb;pb=Fb?0:Db;qb=(Fb&1)+hb|0;rb=Cb?Ab:ib}while(0);Ab=c[e>>2]|0;if(Ab>>>0<(c[n>>2]|0)>>>0){c[e>>2]=Ab+1;Gb=d[Ab>>0]|0}else Gb=an(b)|0;bb=Gb+-48|0;Ia=(Gb|0)==46;if(!(Ia|bb>>>0<10)){Hb=Gb;Ib=lb;Jb=jb;Kb=mb;Lb=kb;Mb=nb;Nb=ob;Ob=pb;Pb=qb;Qb=rb;l=161;break g}else{t=Gb;La=lb;Ha=mb;cb=jb;db=kb;eb=nb;fb=ob;gb=pb;hb=qb;ib=rb}}Rb=ub;Sb=vb;Tb=sb;Ub=tb;Vb=(wb|0)!=0;Wb=xb;Xb=yb;Yb=zb;l=169}else{Hb=Wa;Ib=0;Jb=Xa;Kb=0;Lb=Ya;Mb=Za;Nb=_a;Ob=0;Pb=0;Qb=0;l=161}while(0);do if((l|0)==161){o=(Nb|0)==0;y=o?Ib:Jb;ib=o?Kb:Lb;o=(Mb|0)!=0;if(!((Hb|32|0)==101&o))if((Hb|0)>-1){Rb=Ib;Sb=Kb;Tb=y;Ub=ib;Vb=o;Wb=Ob;Xb=Pb;Yb=Qb;l=169;break}else{Zb=Ib;_b=Kb;$b=o;ac=y;bc=ib;cc=Ob;dc=Pb;ec=Qb;l=171;break}o=io(b,f)|0;hb=C;if((o|0)==0&(hb|0)==-2147483648){if(!f){$m(b,0);fc=0.0;break}if(!(c[n>>2]|0)){gc=0;hc=0}else{c[e>>2]=(c[e>>2]|0)+-1;gc=0;hc=0}}else{gc=o;hc=hb}hb=Bo(gc|0,hc|0,y|0,ib|0)|0;ic=hb;jc=Ib;kc=C;lc=Kb;mc=Ob;nc=Pb;oc=Qb;l=173}while(0);if((l|0)==169)if(c[n>>2]|0){c[e>>2]=(c[e>>2]|0)+-1;if(Vb){ic=Tb;jc=Rb;kc=Ub;lc=Sb;mc=Wb;nc=Xb;oc=Yb;l=173}else l=172}else{Zb=Rb;_b=Sb;$b=Vb;ac=Tb;bc=Ub;cc=Wb;dc=Xb;ec=Yb;l=171}if((l|0)==171)if($b){ic=ac;jc=Zb;kc=bc;lc=_b;mc=cc;nc=dc;oc=ec;l=173}else l=172;do if((l|0)==172){c[(Xm()|0)>>2]=22;$m(b,0);fc=0.0}else if((l|0)==173){hb=c[h>>2]|0;if(!hb){fc=+(v|0)*0.0;break}if(((lc|0)<0|(lc|0)==0&jc>>>0<10)&((ic|0)==(jc|0)&(kc|0)==(lc|0))?j>>>0>30|(hb>>>j|0)==0:0){fc=+(v|0)*+(hb>>>0);break}hb=(k|0)/-2|0;ib=((hb|0)<0)<<31>>31;if((kc|0)>(ib|0)|(kc|0)==(ib|0)&ic>>>0>hb>>>0){c[(Xm()|0)>>2]=34;fc=+(v|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}hb=k+-106|0;ib=((hb|0)<0)<<31>>31;if((kc|0)<(ib|0)|(kc|0)==(ib|0)&ic>>>0<hb>>>0){c[(Xm()|0)>>2]=34;fc=+(v|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(!mc)pc=nc;else{if((mc|0)<9){hb=h+(nc<<2)|0;ib=c[hb>>2]|0;y=mc;while(1){o=ib*10|0;y=y+1|0;if((y|0)==9){qc=o;break}else ib=o}c[hb>>2]=qc}pc=nc+1|0}if((oc|0)<9?(oc|0)<=(ic|0)&(ic|0)<18:0){if((ic|0)==9){fc=+(v|0)*+((c[h>>2]|0)>>>0);break}if((ic|0)<9){fc=+(v|0)*+((c[h>>2]|0)>>>0)/+(c[233600+(8-ic<<2)>>2]|0);break}ib=j+27+(_(ic,-3)|0)|0;y=c[h>>2]|0;if((ib|0)>30|(y>>>ib|0)==0){fc=+(v|0)*+(y>>>0)*+(c[233600+(ic+-10<<2)>>2]|0);break}}y=(ic|0)%9|0;if(!y){rc=0;sc=0;tc=ic;uc=pc}else{ib=(ic|0)>-1?y:y+9|0;y=c[233600+(8-ib<<2)>>2]|0;if(pc){o=1e9/(y|0)|0;gb=0;fb=0;eb=0;db=ic;while(1){cb=h+(eb<<2)|0;Ha=c[cb>>2]|0;La=((Ha>>>0)/(y>>>0)|0)+fb|0;c[cb>>2]=La;cb=_((Ha>>>0)%(y>>>0)|0,o)|0;Ha=(eb|0)==(gb|0)&(La|0)==0;eb=eb+1|0;La=Ha?db+-9|0:db;t=Ha?eb&127:gb;if((eb|0)==(pc|0)){vc=cb;wc=t;xc=La;break}else{gb=t;fb=cb;db=La}}if(!vc){yc=wc;zc=xc;Ac=pc}else{c[h+(pc<<2)>>2]=vc;yc=wc;zc=xc;Ac=pc+1|0}}else{yc=0;zc=ic;Ac=0}rc=yc;sc=0;tc=9-ib+zc|0;uc=Ac}i:while(1){db=(tc|0)<18;fb=(tc|0)==18;gb=h+(rc<<2)|0;eb=sc;o=uc;while(1){if(!db){if(!fb){Bc=rc;Cc=eb;Dc=tc;Ec=o;break i}if((c[gb>>2]|0)>>>0>=9007199){Bc=rc;Cc=eb;Dc=18;Ec=o;break i}}y=0;hb=o+127|0;La=o;while(1){cb=hb&127;t=h+(cb<<2)|0;Ha=Go(c[t>>2]|0,0,29)|0;bb=Bo(Ha|0,C|0,y|0,0)|0;Ha=C;if(Ha>>>0>0|(Ha|0)==0&bb>>>0>1e9){Ia=No(bb|0,Ha|0,1e9,0)|0;Ja=Oo(bb|0,Ha|0,1e9,0)|0;Fc=Ja;Gc=Ia}else{Fc=bb;Gc=0}c[t>>2]=Fc;t=(cb|0)==(rc|0);bb=(cb|0)!=(La+127&127|0)|t?La:(Fc|0)==0?cb:La;if(t){Hc=Gc;Ic=bb;break}else{y=Gc;hb=cb+-1|0;La=bb}}La=eb+-29|0;if(!Hc){eb=La;o=Ic}else{Jc=La;Kc=Hc;Lc=Ic;break}}o=rc+127&127;if((o|0)==(Lc|0)){eb=Lc+127&127;gb=h+((Lc+126&127)<<2)|0;c[gb>>2]=c[gb>>2]|c[h+(eb<<2)>>2];Mc=eb}else Mc=Lc;c[h+(o<<2)>>2]=Kc;rc=o;sc=Jc;tc=tc+9|0;uc=Mc}j:while(1){Nc=Ec+1&127;ib=h+((Ec+127&127)<<2)|0;o=Bc;eb=Cc;gb=Dc;while(1){fb=(gb|0)==18;db=(gb|0)>27?9:1;La=fb^1;Oc=o;Pc=eb;while(1){Qc=Oc&127;Rc=(Qc|0)==(Ec|0);do if(!Rc){hb=c[h+(Qc<<2)>>2]|0;if(hb>>>0<9007199){l=219;break}if(hb>>>0>9007199)break;hb=Oc+1&127;if((hb|0)==(Ec|0)){l=219;break}y=c[h+(hb<<2)>>2]|0;if(y>>>0<254740991){l=219;break}if(!(y>>>0>254740991|La)){Sc=Qc;Tc=Oc;Uc=Pc;Vc=Ec;break j}}else l=219;while(0);if((l|0)==219?(l=0,fb):0){l=220;break j}y=Pc+db|0;if((Oc|0)==(Ec|0)){Oc=Ec;Pc=y}else{Wc=y;Xc=Oc;break}}fb=(1<<db)+-1|0;La=1e9>>>db;y=Xc;hb=0;bb=Xc;cb=gb;while(1){t=h+(bb<<2)|0;Ia=c[t>>2]|0;Ja=(Ia>>>db)+hb|0;c[t>>2]=Ja;t=_(Ia&fb,La)|0;Ia=(bb|0)==(y|0)&(Ja|0)==0;bb=bb+1&127;Ja=Ia?cb+-9|0:cb;Ha=Ia?bb:y;if((bb|0)==(Ec|0)){Yc=t;Zc=Ha;_c=Ja;break}else{y=Ha;hb=t;cb=Ja}}if(!Yc){o=Zc;eb=Wc;gb=_c;continue}if((Nc|0)!=(Zc|0)){$c=Wc;ad=Yc;bd=Zc;cd=_c;break}c[ib>>2]=c[ib>>2]|1;o=Zc;eb=Wc;gb=_c}c[h+(Ec<<2)>>2]=ad;Bc=bd;Cc=$c;Dc=cd;Ec=Nc}if((l|0)==220)if(Rc){c[h+(Nc+-1<<2)>>2]=0;Sc=Ec;Tc=Oc;Uc=Pc;Vc=Nc}else{Sc=Qc;Tc=Oc;Uc=Pc;Vc=Ec}wa=+((c[h+(Sc<<2)>>2]|0)>>>0);gb=Tc+1&127;if((gb|0)==(Vc|0)){eb=Tc+2&127;c[h+(eb+-1<<2)>>2]=0;dd=eb}else dd=Vc;Ka=+(v|0);ed=Ka*(wa*1.0e9+ +((c[h+(gb<<2)>>2]|0)>>>0));gb=Uc+53|0;eb=gb-k|0;o=(eb|0)<(j|0);ib=o&1;cb=o?((eb|0)<0?0:eb):j;if((cb|0)<53){wa=+dn(+jn(1.0,105-cb|0),ed);fd=+fn(ed,+jn(1.0,53-cb|0));gd=wa;hd=fd;id=wa+(ed-fd)}else{gd=0.0;hd=0.0;id=ed}hb=Tc+2&127;do if((hb|0)==(dd|0))jd=hd;else{y=c[h+(hb<<2)>>2]|0;do if(y>>>0>=5e8){if(y>>>0>5e8){kd=Ka*.75+hd;break}if((Tc+3&127|0)==(dd|0)){kd=Ka*.5+hd;break}else{kd=Ka*.75+hd;break}}else{if((y|0)==0?(Tc+3&127|0)==(dd|0):0){kd=hd;break}kd=Ka*.25+hd}while(0);if((53-cb|0)<=1){jd=kd;break}if(+fn(kd,1.0)!=0.0){jd=kd;break}jd=kd+1.0}while(0);Ka=id+jd-gd;do if((gb&2147483647|0)>(-2-Ca|0)){if(!(+N(+Ka)>=9007199254740992.0)){ld=ib;md=Uc;nd=Ka}else{ld=o&(cb|0)==(eb|0)?0:ib;md=Uc+1|0;nd=Ka*.5}if((md+50|0)<=(Ga|0)?!(jd!=0.0&(ld|0)!=0):0){od=md;pd=nd;break}c[(Xm()|0)>>2]=34;od=md;pd=nd}else{od=Uc;pd=Ka}while(0);fc=+kn(pd,od)}while(0);m=fc;break a;break}default:{if(c[n>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;c[(Xm()|0)>>2]=22;$m(b,0);m=0.0;break a}}}}while(0);if((l|0)==23){Ga=(c[n>>2]|0)==0;if(!Ga)c[e>>2]=(c[e>>2]|0)+-1;if((f|0)!=0&x>>>0>3){Ca=x;do{if(!Ga)c[e>>2]=(c[e>>2]|0)+-1;Ca=Ca+-1|0}while(Ca>>>0>3)}}m=+(v|0)*s}while(0);i=g;return +m}function _m(b,e,f,g,h){b=b|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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0;a:do if(e>>>0>36){c[(Xm()|0)>>2]=22;i=0;j=0}else{k=b+4|0;l=b+100|0;do{m=c[k>>2]|0;if(m>>>0<(c[l>>2]|0)>>>0){c[k>>2]=m+1;n=d[m>>0]|0}else n=an(b)|0}while((Vm(n)|0)!=0);o=n;b:do switch(o|0){case 43:case 45:{m=((o|0)==45)<<31>>31;p=c[k>>2]|0;if(p>>>0<(c[l>>2]|0)>>>0){c[k>>2]=p+1;q=d[p>>0]|0;r=m;break b}else{q=an(b)|0;r=m;break b}break}default:{q=o;r=0}}while(0);m=(e|0)==0;do if((e&-17|0)==0&(q|0)==48){p=c[k>>2]|0;if(p>>>0<(c[l>>2]|0)>>>0){c[k>>2]=p+1;s=d[p>>0]|0}else s=an(b)|0;if((s|32|0)!=120)if(m){t=8;u=s;v=46;break}else{w=e;x=s;v=32;break}p=c[k>>2]|0;if(p>>>0<(c[l>>2]|0)>>>0){c[k>>2]=p+1;y=d[p>>0]|0}else y=an(b)|0;if((d[265800+(y+1)>>0]|0)>15){p=(c[l>>2]|0)==0;if(!p)c[k>>2]=(c[k>>2]|0)+-1;if(!f){$m(b,0);i=0;j=0;break a}if(p){i=0;j=0;break a}c[k>>2]=(c[k>>2]|0)+-1;i=0;j=0;break a}else{t=16;u=y;v=46}}else{p=m?10:e;if((d[265800+(q+1)>>0]|0)>>>0<p>>>0){w=p;x=q;v=32}else{if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;$m(b,0);c[(Xm()|0)>>2]=22;i=0;j=0;break a}}while(0);if((v|0)==32)if((w|0)==10){m=x+-48|0;if(m>>>0<10){p=m;m=0;while(1){z=(m*10|0)+p|0;A=c[k>>2]|0;if(A>>>0<(c[l>>2]|0)>>>0){c[k>>2]=A+1;B=d[A>>0]|0}else B=an(b)|0;p=B+-48|0;if(!(p>>>0<10&z>>>0<429496729)){D=z;E=B;break}else m=z}F=D;G=0;H=E}else{F=0;G=0;H=x}m=H+-48|0;if(m>>>0<10){p=F;z=G;A=m;m=H;while(1){I=Mo(p|0,z|0,10,0)|0;J=C;K=((A|0)<0)<<31>>31;L=~K;if(J>>>0>L>>>0|(J|0)==(L|0)&I>>>0>~A>>>0){M=A;N=p;O=z;P=m;break}L=Bo(I|0,J|0,A|0,K|0)|0;K=C;J=c[k>>2]|0;if(J>>>0<(c[l>>2]|0)>>>0){c[k>>2]=J+1;Q=d[J>>0]|0}else Q=an(b)|0;J=Q+-48|0;if(J>>>0<10&(K>>>0<429496729|(K|0)==429496729&L>>>0<2576980378)){p=L;z=K;A=J;m=Q}else{M=J;N=L;O=K;P=Q;break}}if(M>>>0>9){R=O;S=N;T=r}else{U=10;V=N;W=O;X=P;v=72}}else{R=G;S=F;T=r}}else{t=w;u=x;v=46}c:do if((v|0)==46){if(!(t+-1&t)){m=a[266057+((t*23|0)>>>5&7)>>0]|0;A=a[265800+(u+1)>>0]|0;z=A&255;if(z>>>0<t>>>0){p=z;z=0;while(1){K=p|z<<m;L=c[k>>2]|0;if(L>>>0<(c[l>>2]|0)>>>0){c[k>>2]=L+1;Y=d[L>>0]|0}else Y=an(b)|0;L=a[265800+(Y+1)>>0]|0;p=L&255;if(!(K>>>0<134217728&p>>>0<t>>>0)){Z=K;$=L;aa=Y;break}else z=K}ba=$;ca=0;da=Z;ea=aa}else{ba=A;ca=0;da=0;ea=u}z=Fo(-1,-1,m|0)|0;p=C;if((ba&255)>>>0>=t>>>0|(ca>>>0>p>>>0|(ca|0)==(p|0)&da>>>0>z>>>0)){U=t;V=da;W=ca;X=ea;v=72;break}else{fa=da;ga=ca;ha=ba}while(1){K=Go(fa|0,ga|0,m|0)|0;L=C;J=ha&255|K;K=c[k>>2]|0;if(K>>>0<(c[l>>2]|0)>>>0){c[k>>2]=K+1;ia=d[K>>0]|0}else ia=an(b)|0;ha=a[265800+(ia+1)>>0]|0;if((ha&255)>>>0>=t>>>0|(L>>>0>p>>>0|(L|0)==(p|0)&J>>>0>z>>>0)){U=t;V=J;W=L;X=ia;v=72;break c}else{fa=J;ga=L}}}z=a[265800+(u+1)>>0]|0;p=z&255;if(p>>>0<t>>>0){m=p;p=0;while(1){A=m+(_(p,t)|0)|0;L=c[k>>2]|0;if(L>>>0<(c[l>>2]|0)>>>0){c[k>>2]=L+1;ja=d[L>>0]|0}else ja=an(b)|0;L=a[265800+(ja+1)>>0]|0;m=L&255;if(!(A>>>0<119304647&m>>>0<t>>>0)){ka=A;la=L;ma=ja;break}else p=A}na=la;oa=ka;pa=0;qa=ma}else{na=z;oa=0;pa=0;qa=u}if((na&255)>>>0<t>>>0){p=No(-1,-1,t|0,0)|0;m=C;A=pa;L=oa;J=na;K=qa;while(1){if(A>>>0>m>>>0|(A|0)==(m|0)&L>>>0>p>>>0){U=t;V=L;W=A;X=K;v=72;break c}I=Mo(L|0,A|0,t|0,0)|0;ra=C;sa=J&255;if(ra>>>0>4294967295|(ra|0)==-1&I>>>0>~sa>>>0){U=t;V=L;W=A;X=K;v=72;break c}ta=Bo(sa|0,0,I|0,ra|0)|0;ra=C;I=c[k>>2]|0;if(I>>>0<(c[l>>2]|0)>>>0){c[k>>2]=I+1;ua=d[I>>0]|0}else ua=an(b)|0;J=a[265800+(ua+1)>>0]|0;if((J&255)>>>0>=t>>>0){U=t;V=ta;W=ra;X=ua;v=72;break}else{A=ra;L=ta;K=ua}}}else{U=t;V=oa;W=pa;X=qa;v=72}}while(0);if((v|0)==72)if((d[265800+(X+1)>>0]|0)>>>0<U>>>0){do{K=c[k>>2]|0;if(K>>>0<(c[l>>2]|0)>>>0){c[k>>2]=K+1;va=d[K>>0]|0}else va=an(b)|0}while((d[265800+(va+1)>>0]|0)>>>0<U>>>0);c[(Xm()|0)>>2]=34;R=h;S=g;T=(g&1|0)==0&0==0?r:0}else{R=W;S=V;T=r}if(c[l>>2]|0)c[k>>2]=(c[k>>2]|0)+-1;if(!(R>>>0<h>>>0|(R|0)==(h|0)&S>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(T|0)!=0)){c[(Xm()|0)>>2]=34;K=Bo(g|0,h|0,-1,-1)|0;i=C;j=K;break}if(R>>>0>h>>>0|(R|0)==(h|0)&S>>>0>g>>>0){c[(Xm()|0)>>2]=34;i=h;j=g;break}}K=((T|0)<0)<<31>>31;L=Ao(S^T|0,R^K|0,T|0,K|0)|0;i=C;j=L}while(0);C=i;return j|0}function $m(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=d+b;else c[a+100>>2]=e;return}function an(b){b=b|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;e=b+104|0;f=c[e>>2]|0;if((f|0)!=0?(c[b+108>>2]|0)>=(f|0):0)g=4;else{f=En(b)|0;if((f|0)>=0){h=c[e>>2]|0;e=b+8|0;if(h){i=c[e>>2]|0;j=c[b+4>>2]|0;k=i;l=h-(c[b+108>>2]|0)+-1|0;if((k-j|0)>(l|0)){c[b+100>>2]=j+l;m=i}else{n=k;o=i;g=9}}else{i=c[e>>2]|0;n=i;o=i;g=9}if((g|0)==9){c[b+100>>2]=n;m=o}o=c[b+4>>2]|0;if(m){n=b+108|0;c[n>>2]=m+1-o+(c[n>>2]|0)}n=o+-1|0;if((d[n>>0]|0|0)==(f|0))p=f;else{a[n>>0]=f;p=f}}else g=4}if((g|0)==4){c[b+100>>2]=0;p=-1}return p|0}function bn(a){a=a|0;var b=0;if(a>>>0>4294963200){c[(Xm()|0)>>2]=0-a;b=-1}else b=a;return b|0}function cn(a,b){a=+a;b=+b;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;h[k>>3]=b;f=c[k+4>>2]&-2147483648|e&2147483647;c[k>>2]=d;c[k+4>>2]=f;return +(+h[k>>3])}function dn(a,b){a=+a;b=+b;return +(+cn(a,b))}function en(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;h[k>>3]=b;f=c[k>>2]|0;g=c[k+4>>2]|0;i=Fo(d|0,e|0,52)|0;j=i&2047;i=Fo(f|0,g|0,52)|0;l=i&2047;i=e&-2147483648;m=Go(f|0,g|0,1)|0;n=C;a:do if(!((m|0)==0&(n|0)==0)?(o=g&2147483647,!(o>>>0>2146435072|(o|0)==2146435072&f>>>0>0|(j|0)==2047)):0){o=Go(d|0,e|0,1)|0;p=C;if(!(p>>>0>n>>>0|(p|0)==(n|0)&o>>>0>m>>>0))return +((o|0)==(m|0)&(p|0)==(n|0)?a*0.0:a);if(!j){p=Go(d|0,e|0,12)|0;o=C;if((o|0)>-1|(o|0)==-1&p>>>0>4294967295){q=p;p=o;o=0;while(1){r=o+-1|0;q=Go(q|0,p|0,1)|0;p=C;if(!((p|0)>-1|(p|0)==-1&q>>>0>4294967295)){s=r;break}else o=r}}else s=0;o=Go(d|0,e|0,1-s|0)|0;t=o;u=C;v=s}else{t=d;u=e&1048575|1048576;v=j}if(!l){o=Go(f|0,g|0,12)|0;q=C;if((q|0)>-1|(q|0)==-1&o>>>0>4294967295){p=o;o=q;q=0;while(1){r=q+-1|0;p=Go(p|0,o|0,1)|0;o=C;if(!((o|0)>-1|(o|0)==-1&p>>>0>4294967295)){w=r;break}else q=r}}else w=0;q=Go(f|0,g|0,1-w|0)|0;x=q;y=C;z=w}else{x=f;y=g&1048575|1048576;z=l}q=Ao(t|0,u|0,x|0,y|0)|0;p=C;o=(p|0)>-1|(p|0)==-1&q>>>0>4294967295;b:do if((v|0)>(z|0)){r=o;A=q;B=p;D=t;E=u;F=v;while(1){if(r)if((D|0)==(x|0)&(E|0)==(y|0))break;else{G=A;H=B}else{G=D;H=E}I=Go(G|0,H|0,1)|0;J=C;K=F+-1|0;L=Ao(I|0,J|0,x|0,y|0)|0;M=C;N=(M|0)>-1|(M|0)==-1&L>>>0>4294967295;if((K|0)>(z|0)){r=N;A=L;B=M;D=I;E=J;F=K}else{O=N;P=I;Q=J;R=L;S=M;T=K;break b}}U=a*0.0;break a}else{O=o;P=t;Q=u;R=q;S=p;T=v}while(0);if(O)if((P|0)==(x|0)&(Q|0)==(y|0)){U=a*0.0;break}else{V=S;W=R}else{V=Q;W=P}if(V>>>0<1048576|(V|0)==1048576&W>>>0<0){p=W;q=V;o=T;while(1){F=Go(p|0,q|0,1)|0;E=C;D=o+-1|0;if(E>>>0<1048576|(E|0)==1048576&F>>>0<0){p=F;q=E;o=D}else{X=F;Y=E;Z=D;break}}}else{X=W;Y=V;Z=T}if((Z|0)>0){o=Bo(X|0,Y|0,0,-1048576)|0;q=C;p=Go(Z|0,0,52)|0;_=q|C;$=o|p}else{p=Fo(X|0,Y|0,1-Z|0)|0;_=C;$=p}c[k>>2]=$;c[k+4>>2]=_|i;U=+h[k>>3]}else aa=3;while(0);if((aa|0)==3){ba=a*b;U=ba/ba}return +U}function fn(a,b){a=+a;b=+b;return +(+en(a,b))}function gn(a,b){a=+a;b=b|0;var d=0,e=0,f=0,g=0,i=0.0,j=0.0,l=0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=Fo(d|0,e|0,52)|0;g=f&2047;switch(g|0){case 0:{if(a!=0.0){i=+gn(a*18446744073709551616.0,b);j=i;l=(c[b>>2]|0)+-64|0}else{j=a;l=0}c[b>>2]=l;m=j;break}case 2047:{m=a;break}default:{c[b>>2]=g+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;m=+h[k>>3]}}return +m}function hn(a,b){a=+a;b=b|0;return +(+gn(a,b))}function jn(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0,i=0.0;if((b|0)>1023){d=a*8988465674311579538646525.0e283;e=b+-1023|0;if((e|0)>1023){f=b+-2046|0;g=(f|0)>1023?1023:f;i=d*8988465674311579538646525.0e283}else{g=e;i=d}}else if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;if((e|0)<-1022){f=b+2044|0;g=(f|0)<-1022?-1022:f;i=d*2.2250738585072014e-308}else{g=e;i=d}}else{g=b;i=a}b=Go(g+1023|0,0,52)|0;g=C;c[k>>2]=b;c[k+4>>2]=g;return +(i*+h[k>>3])}function kn(a,b){a=+a;b=b|0;return +(+jn(a,b))}function ln(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+16|0;h=g;j=(f|0)==0?233632:f;f=c[j>>2]|0;a:do if(!d)if(!f)k=0;else l=15;else{m=(b|0)==0?h:b;if(!e)k=-2;else{if(!f){n=a[d>>0]|0;o=n&255;if(n<<24>>24>-1){c[m>>2]=o;k=n<<24>>24!=0&1;break}n=o+-194|0;if(n>>>0>50){l=15;break}o=c[233380+(n<<2)>>2]|0;n=e+-1|0;if(!n)p=o;else{q=n;r=o;s=d+1|0;l=9}}else{q=e;r=f;s=d;l=9}b:do if((l|0)==9){o=a[s>>0]|0;n=(o&255)>>>3;if((n+-16|n+(r>>26))>>>0>7){l=15;break a}else{t=q;u=o;v=r;w=s}while(1){w=w+1|0;v=(u&255)+-128|v<<6;t=t+-1|0;if((v|0)>=0){x=v;y=t;break}if(!t){p=v;break b}u=a[w>>0]|0;if((u&-64)<<24>>24!=-128){l=15;break a}}c[j>>2]=0;c[m>>2]=x;k=e-y|0;break a}while(0);c[j>>2]=p;k=-2}}while(0);if((l|0)==15){c[j>>2]=0;c[(Xm()|0)>>2]=84;k=-1}i=g;return k|0}function mn(a){a=a|0;var b=0;if(!a)b=1;else b=(c[a>>2]|0)==0;return b&1|0}function nn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;do if(b){if(d>>>0<128){a[b>>0]=d;f=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;f=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;f=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;f=4;break}else{c[(Xm()|0)>>2]=84;f=-1;break}}else f=1;while(0);return f|0}function on(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=nn(a,b,0)|0;return c|0}function pn(a){a=a|0;var b=0;b=5576;c[b>>2]=a+-1;c[b+4>>2]=0;return}function qn(){var a=0,b=0,d=0;a=5576;b=Mo(c[a>>2]|0,c[a+4>>2]|0,1284865837,1481765933)|0;a=Bo(b|0,C|0,1,0)|0;b=C;d=5576;c[d>>2]=a;c[d+4>>2]=b;d=Fo(a|0,b|0,33)|0;return d|0}function rn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=i;i=i+112|0;f=e+40|0;g=e+24|0;h=e+16|0;j=e;k=e+52|0;l=a[d>>0]|0;if(_n(266066,l<<24>>24,4)|0){m=to(1144)|0;if(!m)n=0;else{o=m;p=o+112|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(p|0));if(!(bo(d,43)|0))c[m>>2]=l<<24>>24==114?8:4;if(!(bo(d,101)|0))q=l;else{c[j>>2]=b;c[j+4>>2]=2;c[j+8>>2]=1;Ka(221,j|0)|0;q=a[d>>0]|0}if(q<<24>>24==97){c[h>>2]=b;c[h+4>>2]=3;q=Ka(221,h|0)|0;if(!(q&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=q|1024;Ka(221,g|0)|0}g=c[m>>2]|128;c[m>>2]=g;r=g}else r=c[m>>2]|0;c[m+60>>2]=b;c[m+44>>2]=m+120;c[m+48>>2]=1024;g=m+75|0;a[g>>0]=-1;if((r&8|0)==0?(c[f>>2]=b,c[f+4>>2]=21505,c[f+8>>2]=k,(Qc(54,f|0)|0)==0):0)a[g>>0]=10;c[m+32>>2]=13;c[m+36>>2]=9;c[m+40>>2]=10;c[m+12>>2]=28;if(!(c[58335]|0))c[m+76>>2]=-1;vb(233364);g=c[58340]|0;c[m+56>>2]=g;if(g)c[g+52>>2]=m;c[58340]=m;Rc(233364);n=m}}else{c[(Xm()|0)>>2]=22;n=0}i=e;return n|0}function sn(b){b=b|0;var c=0,d=0,e=0,f=0;c=(bo(b,43)|0)==0;d=a[b>>0]|0;e=c?d<<24>>24!=114&1:2;c=(bo(b,120)|0)==0;f=c?e:e|128;e=(bo(b,101)|0)==0;b=e?f:f|524288;f=d<<24>>24==114?b:b|64;b=d<<24>>24==119?f|512:f;return (d<<24>>24==97?b|1024:b)|0}function tn(a){a=a|0;return 0}function un(a){a=a|0;return}function vn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+16|0;g=f;h=e&255;a[g>>0]=h;j=b+16|0;k=c[j>>2]|0;if(!k)if(!(Dn(b)|0)){l=c[j>>2]|0;m=4}else n=-1;else{l=k;m=4}do if((m|0)==4){k=b+20|0;j=c[k>>2]|0;if(j>>>0<l>>>0?(o=e&255,(o|0)!=(a[b+75>>0]|0)):0){c[k>>2]=j+1;a[j>>0]=h;n=o;break}if((dd[c[b+36>>2]&15](b,g,1)|0)==1)n=d[g>>0]|0;else n=-1}while(0);i=f;return n|0}function wn(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=bn(xb(6,d|0)|0)|0;i=b;return a|0}function xn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=i;i=i+48|0;g=f+16|0;h=f;j=f+32|0;c[j>>2]=d;k=j+4|0;l=b+48|0;m=c[l>>2]|0;c[k>>2]=e-((m|0)!=0&1);n=b+44|0;c[j+8>>2]=c[n>>2];c[j+12>>2]=m;if(!(c[58334]|0)){c[g>>2]=c[b+60>>2];c[g+4>>2]=j;c[g+8>>2]=2;o=bn(Xa(145,g|0)|0)|0}else{Ta(49,b|0);c[h>>2]=c[b+60>>2];c[h+4>>2]=j;c[h+8>>2]=2;j=bn(Xa(145,h|0)|0)|0;Za(0);o=j}if((o|0)>=1){j=c[k>>2]|0;if(o>>>0>j>>>0){k=c[n>>2]|0;n=b+4|0;c[n>>2]=k;h=k;c[b+8>>2]=h+(o-j);if(!(c[l>>2]|0))p=e;else{c[n>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;p=e}}else p=o}else{c[b>>2]=c[b>>2]|o&48^16;c[b+8>>2]=0;c[b+4>>2]=0;p=o}i=f;return p|0}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+20|0;c[f>>2]=c[a+60>>2];c[f+4>>2]=0;c[f+8>>2]=b;c[f+12>>2]=g;c[f+16>>2]=d;if((bn(Wa(140,f|0)|0)|0)<0){c[g>>2]=-1;h=-1}else h=c[g>>2]|0;i=e;return h|0}function zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=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;e=i;i=i+48|0;f=e+16|0;g=e;h=e+32|0;j=a+28|0;k=c[j>>2]|0;c[h>>2]=k;l=a+20|0;m=(c[l>>2]|0)-k|0;c[h+4>>2]=m;c[h+8>>2]=b;c[h+12>>2]=d;b=a+60|0;k=a+44|0;n=h;h=2;o=m+d|0;while(1){if(!(c[58334]|0)){c[f>>2]=c[b>>2];c[f+4>>2]=n;c[f+8>>2]=h;p=bn(Ya(146,f|0)|0)|0}else{Ta(50,a|0);c[g>>2]=c[b>>2];c[g+4>>2]=n;c[g+8>>2]=h;m=bn(Ya(146,g|0)|0)|0;Za(0);p=m}if((o|0)==(p|0)){q=6;break}if((p|0)<0){r=n;s=h;q=8;break}m=o-p|0;t=c[n+4>>2]|0;if(p>>>0<=t>>>0)if((h|0)==2){c[j>>2]=(c[j>>2]|0)+p;u=t;v=p;w=n;x=2}else{u=t;v=p;w=n;x=h}else{y=c[k>>2]|0;c[j>>2]=y;c[l>>2]=y;u=c[n+12>>2]|0;v=p-t|0;w=n+8|0;x=h+-1|0}c[w>>2]=(c[w>>2]|0)+v;c[w+4>>2]=u-v;n=w;h=x;o=m}if((q|0)==6){o=c[k>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);k=o;c[j>>2]=k;c[l>>2]=k;z=d}else if((q|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[l>>2]=0;c[a>>2]=c[a>>2]|32;if((s|0)==2)z=0;else z=d-(c[r+4>>2]|0)|0}i=e;return z|0}function An(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+80|0;g=f;c[b+36>>2]=9;if((c[b>>2]&64|0)==0?(c[g>>2]=c[b+60>>2],c[g+4>>2]=21505,c[g+8>>2]=f+12,(Qc(54,g|0)|0)!=0):0)a[b+75>>0]=-1;g=zn(b,d,e)|0;i=f;return g|0}function Bn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+84|0;f=c[e>>2]|0;g=d+256|0;h=_n(f,0,g)|0;i=(h|0)==0?g:h-f|0;h=i>>>0<d>>>0?i:d;Co(b|0,f|0,h|0)|0;c[a+4>>2]=f+h;b=f+i|0;c[a+8>>2]=b;c[e>>2]=b;return h|0}function Cn(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=b+20|0;d=b+44|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)dd[c[b+36>>2]&15](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[e>>2]=0;e=c[b>>2]|0;if(e&20)if(!(e&4))f=-1;else{c[b>>2]=e|32;f=-1}else{e=c[d>>2]|0;c[b+8>>2]=e;c[b+4>>2]=e;f=0}return f|0}function Dn(b){b=b|0;var d=0,e=0,f=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;e=c[b>>2]|0;if(!(e&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);f=0}else{c[b>>2]=e|32;f=-1}return f|0}function En(a){a=a|0;var b=0,e=0,f=0;b=i;i=i+16|0;e=b;if((c[a+8>>2]|0)==0?(Cn(a)|0)!=0:0)f=-1;else if((dd[c[a+32>>2]&15](a,e,1)|0)==1)f=d[e>>0]|0;else f=-1;i=b;return f|0}function Fn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;do if(a){if((c[a+76>>2]|0)<=-1){b=lo(a)|0;break}d=(tn(a)|0)==0;e=lo(a)|0;if(d)b=e;else{un(a);b=e}}else{if(!(c[58398]|0))f=0;else f=Fn(c[58398]|0)|0;vb(233364);e=c[58340]|0;if(!e)g=f;else{d=e;e=f;while(1){if((c[d+76>>2]|0)>-1)h=tn(d)|0;else h=0;if((c[d+20>>2]|0)>>>0>(c[d+28>>2]|0)>>>0)i=lo(d)|0|e;else i=e;if(h)un(d);d=c[d+56>>2]|0;if(!d){g=i;break}else e=i}}Rc(233364);b=g}while(0);return b|0}function Gn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;f=e+16|0;g=e;if(_n(266066,a[d>>0]|0,4)|0){h=sn(d)|0|32768;c[g>>2]=b;c[g+4>>2]=h;c[g+8>>2]=438;h=bn(yb(5,g|0)|0)|0;if((h|0)>=0){g=rn(h,d)|0;if(!g){c[f>>2]=h;xb(6,f|0)|0;j=0}else j=g}else j=0}else{c[(Xm()|0)>>2]=22;j=0}i=e;return j|0}function Hn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(tn(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(e=d+20|0,f=c[e>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[e>>2]=f+1;a[f>>0]=b;g=b&255}else g=vn(d,b)|0;un(d);h=g}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(g=d+20|0,f=c[g>>2]|0,f>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=f+1;a[f>>0]=b;h=b&255;break}h=vn(d,b)|0}while(0);return h|0}function In(a,b){a=a|0;b=b|0;return (On(a,go(a)|0,1,b)|0)+-1|0}function Jn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=_(e,d)|0;if((c[f+76>>2]|0)>-1)h=tn(f)|0;else h=0;i=f+74|0;j=a[i>>0]|0;a[i>>0]=j+255|j;j=f+4|0;i=c[j>>2]|0;k=(c[f+8>>2]|0)-i|0;if((k|0)>0){l=k>>>0<g>>>0?k:g;Co(b|0,i|0,l|0)|0;c[j>>2]=i+l;m=b+l|0;n=g-l|0}else{m=b;n=g}a:do if(!n)o=13;else{b=f+32|0;l=m;i=n;while(1){if(Cn(f)|0){p=i;break}j=dd[c[b>>2]&15](f,l,i)|0;if((j+1|0)>>>0<2){p=i;break}if((i|0)==(j|0)){o=13;break a}else{l=l+j|0;i=i-j|0}}if(h)un(f);q=((g-p|0)>>>0)/(d>>>0)|0}while(0);if((o|0)==13)if(!h)q=e;else{un(f);q=e}return q|0}function Kn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((d|0)==1)e=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;else e=b;b=a+20|0;f=a+28|0;if((c[b>>2]|0)>>>0>(c[f>>2]|0)>>>0?(dd[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)g=-1;else{c[a+16>>2]=0;c[f>>2]=0;c[b>>2]=0;if((dd[c[a+40>>2]&15](a,e,d)|0)<0)g=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;g=0}}return g|0}function Ln(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((c[a+76>>2]|0)>-1){e=(tn(a)|0)==0;f=Kn(a,b,d)|0;if(e)g=f;else{un(a);g=f}}else g=Kn(a,b,d)|0;return g|0}function Mn(a,b,c){a=a|0;b=b|0;c=c|0;return Ln(a,b,c)|0}function Nn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(Dn(e)|0)){h=c[f>>2]|0;i=4}else j=0;else{h=g;i=4}a:do if((i|0)==4){g=e+20|0;f=c[g>>2]|0;if((h-f|0)>>>0<d>>>0){j=dd[c[e+36>>2]&15](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){k=d;while(1){if(!k){l=d;m=b;n=f;o=0;break b}p=k+-1|0;if((a[b+p>>0]|0)==10){q=k;break}else k=p}if((dd[c[e+36>>2]&15](e,b,q)|0)>>>0<q>>>0){j=q;break a}l=d-q|0;m=b+q|0;n=c[g>>2]|0;o=q}else{l=d;m=b;n=f;o=0}while(0);Co(n|0,m|0,l|0)|0;c[g>>2]=(c[g>>2]|0)+l;j=o+l|0}while(0);return j|0}function On(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(tn(e)|0)==0;h=Nn(a,f,e)|0;if(g)i=h;else{un(e);i=h}}else i=Nn(a,f,e)|0;if((i|0)==(f|0))j=d;else j=(i>>>0)/(b>>>0)|0;return j|0}function Pn(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=Un(c[58397]|0,a,e)|0;i=d;return b|0}function Qn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[58397]|0;if((c[d+76>>2]|0)>-1)e=tn(d)|0;else e=0;do if((In(b,d)|0)<0)f=1;else{if((a[d+75>>0]|0)!=10?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=10;f=0;break}f=(vn(d,10)|0)<0}while(0);if(e)un(d);return f<<31>>31|0}function Rn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=Wn(a,b,d,g)|0;i=f;return e|0}function Sn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Xn(a,b,f)|0;i=e;return d|0}function Tn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Yn(a,b,f)|0;i=e;return d|0}function Un(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+224|0;g=f+80|0;h=f+96|0;j=f;k=f+136|0;l=h;m=l+40|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[g>>2]=c[e>>2];if((mo(0,d,g,j,h)|0)<0)n=-1;else{if((c[b+76>>2]|0)>-1)o=tn(b)|0;else o=0;e=c[b>>2]|0;l=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){m=b+44|0;p=c[m>>2]|0;c[m>>2]=k;q=b+28|0;c[q>>2]=k;r=b+20|0;c[r>>2]=k;c[e>>2]=80;s=b+16|0;c[s>>2]=k+80;k=mo(b,d,g,j,h)|0;if(!p)t=k;else{dd[c[b+36>>2]&15](b,0,0)|0;u=(c[r>>2]|0)==0?-1:k;c[m>>2]=p;c[e>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;t=u}}else t=mo(b,d,g,j,h)|0;h=c[b>>2]|0;c[b>>2]=h|l;if(o)un(b);n=(h&32|0)==0?t:-1}i=f;return n|0}function Vn(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0.0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0;k=i;i=i+304|0;l=k+16|0;m=k+8|0;n=k+33|0;o=k;p=k+32|0;if((c[e+76>>2]|0)>-1)q=tn(e)|0;else q=0;r=a[f>>0]|0;a:do if(r<<24>>24){s=e+4|0;t=e+100|0;u=e+108|0;v=e+8|0;w=n+10|0;x=n+33|0;y=m+4|0;z=n+46|0;A=n+94|0;B=r;D=0;E=f;F=0;G=0;H=0;b:while(1){c:do if(!(Vm(B&255)|0)){I=(a[E>>0]|0)==37;d:do if(I){J=E+1|0;K=a[J>>0]|0;e:do switch(K<<24>>24){case 37:{break d;break}case 42:{L=0;M=E+2|0;break}default:{N=(K&255)+-48|0;if(N>>>0<10?(a[E+2>>0]|0)==36:0){c[l>>2]=c[j>>2];O=N;while(1){N=(c[l>>2]|0)+(4-1)&~(4-1);P=c[N>>2]|0;c[l>>2]=N+4;if(O>>>0>1)O=O+-1|0;else{Q=P;break}}L=Q;M=E+3|0;break e}O=(c[j>>2]|0)+(4-1)&~(4-1);P=c[O>>2]|0;c[j>>2]=O+4;L=P;M=J}}while(0);J=a[M>>0]|0;K=J&255;if((K+-48|0)>>>0<10){P=K;K=M;O=0;while(1){N=(O*10|0)+-48+P|0;R=K+1|0;S=a[R>>0]|0;P=S&255;if((P+-48|0)>>>0>=10){T=S;U=R;V=N;break}else{K=R;O=N}}}else{T=J;U=M;V=0}if(T<<24>>24==109){O=U+1|0;W=a[O>>0]|0;X=(L|0)!=0&1;Y=O;Z=0;_=0}else{W=T;X=0;Y=U;Z=G;_=H}O=Y+1|0;switch(W&255|0){case 104:{K=(a[O>>0]|0)==104;$=K?Y+2|0:O;aa=K?-2:-1;break}case 108:{K=(a[O>>0]|0)==108;$=K?Y+2|0:O;aa=K?3:1;break}case 106:{$=O;aa=3;break}case 116:case 122:{$=O;aa=1;break}case 76:{$=O;aa=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{$=Y;aa=0;break}default:{ba=X;ca=D;da=Z;ea=_;fa=152;break b}}O=d[$>>0]|0;K=(O&47|0)==3;P=K?O|32:O;O=K?1:aa;switch(P|0){case 99:{ga=F;ha=(V|0)<1?1:V;break}case 91:{ga=F;ha=V;break}case 110:{if(!L){ia=D;ja=$;ka=F;la=Z;ma=_;break c}switch(O|0){case -2:{a[L>>0]=F;ia=D;ja=$;ka=F;la=Z;ma=_;break c;break}case -1:{b[L>>1]=F;ia=D;ja=$;ka=F;la=Z;ma=_;break c;break}case 0:{c[L>>2]=F;ia=D;ja=$;ka=F;la=Z;ma=_;break c;break}case 1:{c[L>>2]=F;ia=D;ja=$;ka=F;la=Z;ma=_;break c;break}case 3:{K=L;c[K>>2]=F;c[K+4>>2]=((F|0)<0)<<31>>31;ia=D;ja=$;ka=F;la=Z;ma=_;break c;break}default:{ia=D;ja=$;ka=F;la=Z;ma=_;break c}}break}default:{$m(e,0);do{K=c[s>>2]|0;if(K>>>0<(c[t>>2]|0)>>>0){c[s>>2]=K+1;na=d[K>>0]|0}else na=an(e)|0}while((Vm(na)|0)!=0);J=c[s>>2]|0;if(!(c[t>>2]|0))oa=J;else{K=J+-1|0;c[s>>2]=K;oa=K}ga=(c[u>>2]|0)+F+oa-(c[v>>2]|0)|0;ha=V}}$m(e,ha);K=c[s>>2]|0;J=c[t>>2]|0;if(K>>>0<J>>>0){c[s>>2]=K+1;pa=J}else{if((an(e)|0)<0){ba=X;ca=D;da=Z;ea=_;fa=152;break b}pa=c[t>>2]|0}if(pa)c[s>>2]=(c[s>>2]|0)+-1;f:do switch(P|0){case 91:case 99:case 115:{J=(P|0)==99;g:do if((P&239|0)==99){Eo(n|0,-1,257)|0;a[n>>0]=0;if((P|0)==115){a[x>>0]=0;a[w>>0]=0;a[w+1>>0]=0;a[w+2>>0]=0;a[w+3>>0]=0;a[w+4>>0]=0;qa=$}else qa=$}else{K=$+1|0;N=(a[K>>0]|0)==94;R=N&1;S=N?K:$;ra=N?$+2|0:K;Eo(n|0,N&1|0,257)|0;a[n>>0]=0;switch(a[ra>>0]|0){case 45:{N=(R^1)&255;a[z>>0]=N;sa=N;ta=S+2|0;break}case 93:{N=(R^1)&255;a[A>>0]=N;sa=N;ta=S+2|0;break}default:{sa=(R^1)&255;ta=ra}}ra=ta;while(1){R=a[ra>>0]|0;h:do switch(R<<24>>24){case 0:{ba=X;ca=D;da=Z;ea=_;fa=152;break b;break}case 93:{qa=ra;break g;break}case 45:{S=ra+1|0;N=a[S>>0]|0;switch(N<<24>>24){case 93:case 0:{ua=45;va=ra;break h;break}default:{}}K=a[ra+-1>>0]|0;if((K&255)<(N&255)){wa=K&255;do{wa=wa+1|0;a[n+wa>>0]=sa;K=a[S>>0]|0}while((wa|0)<(K&255|0));ua=K;va=S}else{ua=N;va=S}break}default:{ua=R;va=ra}}while(0);a[n+((ua&255)+1)>>0]=sa;ra=va+1|0}}while(0);ra=J?ha+1|0:31;R=(O|0)==1;wa=(X|0)!=0;i:do if(R){if(wa){K=to(ra<<2)|0;if(!K){ba=X;ca=D;da=0;ea=K;fa=152;break b}else xa=K}else xa=L;c[m>>2]=0;c[y>>2]=0;K=0;ya=ra;za=xa;j:while(1){Aa=(za|0)==0;Ba=K;while(1){k:while(1){Ca=c[s>>2]|0;if(Ca>>>0<(c[t>>2]|0)>>>0){c[s>>2]=Ca+1;Da=d[Ca>>0]|0}else Da=an(e)|0;if(!(a[n+(Da+1)>>0]|0)){Ea=Ba;Fa=za;break j}a[p>>0]=Da;switch(ln(o,p,1,m)|0){case -1:{ba=X;ca=D;da=0;ea=za;fa=152;break b;break}case -2:break;default:break k}}if(Aa)Ga=Ba;else{c[za+(Ba<<2)>>2]=c[o>>2];Ga=Ba+1|0}if(wa&(Ga|0)==(ya|0))break;else Ba=Ga}Ba=ya<<1|1;Aa=wo(za,Ba<<2)|0;if(!Aa){ba=X;ca=D;da=0;ea=za;fa=152;break b}S=ya;ya=Ba;za=Aa;K=S}if(!(mn(m)|0)){ba=X;ca=D;da=0;ea=Fa;fa=152;break b}else{Ha=Ea;Ia=0;Ja=Fa}}else{if(wa){K=to(ra)|0;if(!K){ba=X;ca=D;da=0;ea=0;fa=152;break b}else{Ka=0;La=ra;Ma=K}while(1){K=Ka;do{za=c[s>>2]|0;if(za>>>0<(c[t>>2]|0)>>>0){c[s>>2]=za+1;Na=d[za>>0]|0}else Na=an(e)|0;if(!(a[n+(Na+1)>>0]|0)){Ha=K;Ia=Ma;Ja=0;break i}a[Ma+K>>0]=Na;K=K+1|0}while((K|0)!=(La|0));K=La<<1|1;za=wo(Ma,K)|0;if(!za){ba=X;ca=D;da=Ma;ea=0;fa=152;break b}else{ya=La;La=K;Ma=za;Ka=ya}}}if(!L){ya=pa;while(1){za=c[s>>2]|0;if(za>>>0<ya>>>0){c[s>>2]=za+1;Oa=d[za>>0]|0}else Oa=an(e)|0;if(!(a[n+(Oa+1)>>0]|0)){Ha=0;Ia=0;Ja=0;break i}ya=c[t>>2]|0}}else{ya=pa;za=0;while(1){K=c[s>>2]|0;if(K>>>0<ya>>>0){c[s>>2]=K+1;Pa=d[K>>0]|0}else Pa=an(e)|0;if(!(a[n+(Pa+1)>>0]|0)){Ha=za;Ia=L;Ja=0;break i}a[L+za>>0]=Pa;ya=c[t>>2]|0;za=za+1|0}}}while(0);ra=c[s>>2]|0;if(!(c[t>>2]|0))Qa=ra;else{za=ra+-1|0;c[s>>2]=za;Qa=za}za=Qa-(c[v>>2]|0)+(c[u>>2]|0)|0;if(!za){Ra=X;Sa=D;Ta=Ia;Ua=Ja;break b}if(!((za|0)==(ha|0)|J^1)){Ra=X;Sa=D;Ta=Ia;Ua=Ja;break b}do if(wa)if(R){c[L>>2]=Ja;break}else{c[L>>2]=Ia;break}while(0);if(J){Va=qa;Wa=Ia;Xa=Ja}else{if(Ja)c[Ja+(Ha<<2)>>2]=0;if(!Ia){Va=qa;Wa=0;Xa=Ja;break f}a[Ia+Ha>>0]=0;Va=qa;Wa=Ia;Xa=Ja}break}case 120:case 88:case 112:{Ya=16;fa=134;break}case 111:{Ya=8;fa=134;break}case 117:case 100:{Ya=10;fa=134;break}case 105:{Ya=0;fa=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{Za=+Zm(e,O,0);if((c[u>>2]|0)==((c[v>>2]|0)-(c[s>>2]|0)|0)){Ra=X;Sa=D;Ta=Z;Ua=_;break b}if(!L){Va=$;Wa=Z;Xa=_}else switch(O|0){case 0:{g[L>>2]=Za;Va=$;Wa=Z;Xa=_;break f;break}case 1:{h[L>>3]=Za;Va=$;Wa=Z;Xa=_;break f;break}case 2:{h[L>>3]=Za;Va=$;Wa=Z;Xa=_;break f;break}default:{Va=$;Wa=Z;Xa=_;break f}}break}default:{Va=$;Wa=Z;Xa=_}}while(0);l:do if((fa|0)==134){fa=0;R=_m(e,Ya,0,-1,-1)|0;if((c[u>>2]|0)==((c[v>>2]|0)-(c[s>>2]|0)|0)){Ra=X;Sa=D;Ta=Z;Ua=_;break b}if((L|0)!=0&(P|0)==112){c[L>>2]=R;Va=$;Wa=Z;Xa=_;break}if(!L){Va=$;Wa=Z;Xa=_}else switch(O|0){case -2:{a[L>>0]=R;Va=$;Wa=Z;Xa=_;break l;break}case -1:{b[L>>1]=R;Va=$;Wa=Z;Xa=_;break l;break}case 0:{c[L>>2]=R;Va=$;Wa=Z;Xa=_;break l;break}case 1:{c[L>>2]=R;Va=$;Wa=Z;Xa=_;break l;break}case 3:{wa=L;c[wa>>2]=R;c[wa+4>>2]=C;Va=$;Wa=Z;Xa=_;break l;break}default:{Va=$;Wa=Z;Xa=_;break l}}}while(0);ia=((L|0)!=0&1)+D|0;ja=Va;ka=(c[u>>2]|0)+ga+(c[s>>2]|0)-(c[v>>2]|0)|0;la=Wa;ma=Xa;break c}while(0);O=E+(I&1)|0;$m(e,0);P=c[s>>2]|0;if(P>>>0<(c[t>>2]|0)>>>0){c[s>>2]=P+1;_a=d[P>>0]|0}else _a=an(e)|0;if((_a|0)!=(d[O>>0]|0)){$a=_a;ab=D;bb=G;cb=H;fa=21;break b}ia=D;ja=O;ka=F+1|0;la=G;ma=H}else{O=E;while(1){P=O+1|0;if(!(Vm(d[P>>0]|0)|0)){db=O;break}else O=P}$m(e,0);do{O=c[s>>2]|0;if(O>>>0<(c[t>>2]|0)>>>0){c[s>>2]=O+1;eb=d[O>>0]|0}else eb=an(e)|0}while((Vm(eb)|0)!=0);O=c[s>>2]|0;if(!(c[t>>2]|0))fb=O;else{I=O+-1|0;c[s>>2]=I;fb=I}ia=D;ja=db;ka=(c[u>>2]|0)+F+fb-(c[v>>2]|0)|0;la=G;ma=H}while(0);E=ja+1|0;B=a[E>>0]|0;if(!(B<<24>>24)){gb=ia;break a}else{D=ia;F=ka;G=la;H=ma}}if((fa|0)==21){if(c[t>>2]|0)c[s>>2]=(c[s>>2]|0)+-1;if((ab|0)!=0|($a|0)>-1){gb=ab;break}else{hb=0;ib=bb;jb=cb;fa=153}}else if((fa|0)==152)if(!ca){hb=ba;ib=da;jb=ea;fa=153}else{Ra=ba;Sa=ca;Ta=da;Ua=ea}if((fa|0)==153){Ra=hb;Sa=-1;Ta=ib;Ua=jb}if(!Ra)gb=Sa;else{uo(Ta);uo(Ua);gb=Sa}}else gb=0;while(0);if(q)un(e);i=k;return gb|0}function Wn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+128|0;h=g+112|0;j=g;k=j;l=233636;m=k+112|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));if((d+-1|0)>>>0>2147483646)if(!d){n=h;o=1;p=4}else{c[(Xm()|0)>>2]=75;q=-1}else{n=b;o=d;p=4}if((p|0)==4){p=-2-n|0;d=o>>>0>p>>>0?p:o;c[j+48>>2]=d;o=j+20|0;c[o>>2]=n;c[j+44>>2]=n;p=n+d|0;n=j+16|0;c[n>>2]=p;c[j+28>>2]=p;p=Un(j,e,f)|0;if(!d)q=p;else{d=c[o>>2]|0;a[d+(((d|0)==(c[n>>2]|0))<<31>>31)>>0]=0;q=p}}i=g;return q|0}function Xn(a,b,c){a=a|0;b=b|0;c=c|0;return Wn(a,2147483647,b,c)|0}function Yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+112|0;f=e;g=f;h=g+112|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));c[f+32>>2]=14;c[f+44>>2]=a;c[f+76>>2]=-1;c[f+84>>2]=a;a=Vn(f,b,d)|0;i=e;return a|0}function Zn(a,b){a=a|0;b=b|0;return +(+oo(a,b,1))}function _n(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,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;f=d&255;g=(e|0)!=0;a:do if(g&(b&3|0)!=0){h=d&255;i=e;j=b;while(1){if((a[j>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=j+1|0;o=i+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=o;j=n}else{q=o;r=p;s=n;m=5;break}}}else{q=e;r=g;s=b;m=5}while(0);if((m|0)==5)if(r){k=q;l=s;m=6}else{t=0;u=s}b:do if((m|0)==6){s=d&255;if((a[l>>0]|0)==s<<24>>24){t=k;u=l}else{q=_(f,16843009)|0;c:do if(k>>>0>3){r=k;b=l;while(1){g=c[b>>2]^q;if((g&-2139062144^-2139062144)&g+-16843009){v=r;w=b;break}g=b+4|0;e=r+-4|0;if(e>>>0>3){r=e;b=g}else{x=e;y=g;m=11;break c}}z=v;A=w}else{x=k;y=l;m=11}while(0);if((m|0)==11)if(!x){t=0;u=y;break}else{z=x;A=y}while(1){if((a[A>>0]|0)==s<<24>>24){t=z;u=A;break b}q=A+1|0;z=z+-1|0;if(!z){t=0;u=q;break}else A=q}}}while(0);return ((t|0)!=0?u:0)|0}function $n(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=d;a:do if(!((e^b)&3)){if(!(e&3)){f=d;g=b}else{h=b;i=d;while(1){j=a[i>>0]|0;a[h>>0]=j;if(!(j<<24>>24)){k=h;break a}j=i+1|0;l=h+1|0;if(!(j&3)){f=j;g=l;break}else{h=l;i=j}}}i=c[f>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=i;i=g;j=f;while(1){l=j+4|0;m=i+4|0;c[i>>2]=h;h=c[l>>2]|0;if((h&-2139062144^-2139062144)&h+-16843009){n=m;o=l;break}else{i=m;j=l}}}else{n=g;o=f}p=o;q=n;r=8}else{p=d;q=b;r=8}while(0);if((r|0)==8){r=a[p>>0]|0;a[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;b=a[q>>0]|0;a[p>>0]=b;if(!(b<<24>>24)){k=p;break}else r=p}}}return k|0}function ao(a,b){a=a|0;b=b|0;fo(a+(go(a)|0)|0,b)|0;return a|0}function bo(b,c){b=b|0;c=c|0;var d=0;d=co(b,c)|0;return ((a[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function co(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=d&255;a:do if(!e)f=b+(go(b)|0)|0;else{if(!(b&3))g=b;else{h=d&255;i=b;while(1){j=a[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){f=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=_(e,16843009)|0;h=c[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=h;k=g;while(1){l=j^i;if((l&-2139062144^-2139062144)&l+-16843009){m=k;break b}l=k+4|0;j=c[l>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009){m=l;break}else k=l}}else m=g;while(0);i=d&255;h=m;while(1){k=a[h>>0]|0;if(k<<24>>24==0?1:k<<24>>24==i<<24>>24){f=h;break}else h=h+1|0}}while(0);return f|0}function eo(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=d;g=e}else{e=b;b=c;do{e=e+1|0;b=b+1|0;c=a[e>>0]|0;d=a[b>>0]|0}while(!(c<<24>>24==0?1:c<<24>>24!=d<<24>>24));f=c;g=d}return (f&255)-(g&255)|0}function fo(a,b){a=a|0;b=b|0;$n(a,b)|0;return a|0}function go(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=b;a:do if(!(d&3)){e=b;f=4}else{g=b;h=d;while(1){if(!(a[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){e=j;f=4;break}else g=j}}while(0);if((f|0)==4){f=e;while(1){e=c[f>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009))f=f+4|0;else{k=e;l=f;break}}if(!((k&255)<<24>>24))m=l;else{k=l;while(1){l=k+1|0;if(!(a[l>>0]|0)){m=l;break}else k=l}}i=m}return i-d|0}function ho(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(!e)f=0;else{g=a[b>>0]|0;a:do if(!(g<<24>>24)){h=0;i=c}else{j=e;k=g;l=b;m=c;while(1){j=j+-1|0;n=a[m>>0]|0;if(!(k<<24>>24==n<<24>>24&((j|0)!=0&n<<24>>24!=0))){h=k;i=m;break a}l=l+1|0;n=m+1|0;k=a[l>>0]|0;if(!(k<<24>>24)){h=0;i=n;break}else m=n}}while(0);f=(h&255)-(d[i>>0]|0)|0}return f|0}function io(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;e=a+4|0;f=c[e>>2]|0;g=a+100|0;if(f>>>0<(c[g>>2]|0)>>>0){c[e>>2]=f+1;h=d[f>>0]|0}else h=an(a)|0;switch(h|0){case 43:case 45:{f=(h|0)==45&1;i=c[e>>2]|0;if(i>>>0<(c[g>>2]|0)>>>0){c[e>>2]=i+1;j=d[i>>0]|0}else j=an(a)|0;if((b|0)!=0&(j+-48|0)>>>0>9?(c[g>>2]|0)!=0:0){c[e>>2]=(c[e>>2]|0)+-1;k=j;l=f}else{k=j;l=f}break}default:{k=h;l=0}}if((k+-48|0)>>>0>9)if(!(c[g>>2]|0)){m=-2147483648;n=0}else{c[e>>2]=(c[e>>2]|0)+-1;m=-2147483648;n=0}else{h=k;k=0;while(1){f=h+-48+(k*10|0)|0;j=c[e>>2]|0;if(j>>>0<(c[g>>2]|0)>>>0){c[e>>2]=j+1;o=d[j>>0]|0}else o=an(a)|0;if((o+-48|0)>>>0<10&(f|0)<214748364){h=o;k=f}else{p=f;q=o;break}}o=((p|0)<0)<<31>>31;if((q+-48|0)>>>0<10){k=p;h=o;f=q;while(1){j=Mo(k|0,h|0,10,0)|0;b=C;i=Bo(f|0,((f|0)<0)<<31>>31|0,-48,-1)|0;r=Bo(i|0,C|0,j|0,b|0)|0;b=C;j=c[e>>2]|0;if(j>>>0<(c[g>>2]|0)>>>0){c[e>>2]=j+1;s=d[j>>0]|0}else s=an(a)|0;if((s+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&r>>>0<2061584302)){k=r;h=b;f=s}else{t=r;u=b;v=s;break}}}else{t=p;u=o;v=q}if((v+-48|0)>>>0<10)do{v=c[e>>2]|0;if(v>>>0<(c[g>>2]|0)>>>0){c[e>>2]=v+1;w=d[v>>0]|0}else w=an(a)|0}while((w+-48|0)>>>0<10);if(c[g>>2]|0)c[e>>2]=(c[e>>2]|0)+-1;e=(l|0)!=0;l=Ao(0,0,t|0,u|0)|0;m=e?C:u;n=e?l:t}C=m;return n|0}function jo(a){a=a|0;if(!(c[a+68>>2]|0))un(a);return}function ko(a){a=a|0;if(!(c[a+68>>2]|0))un(a);return}function lo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+20|0;d=a+28|0;if((c[b>>2]|0)>>>0>(c[d>>2]|0)>>>0?(dd[c[a+36>>2]&15](a,0,0)|0,(c[b>>2]|0)==0):0)e=-1;else{f=a+4|0;g=c[f>>2]|0;h=a+8|0;i=c[h>>2]|0;if(g>>>0<i>>>0)dd[c[a+40>>2]&15](a,g-i|0,1)|0;c[a+16>>2]=0;c[d>>2]=0;c[b>>2]=0;c[h>>2]=0;c[f>>2]=0;e=0}return e|0}function mo(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0.0,bb=0.0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0.0,ib=0.0,jb=0.0,kb=0.0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0.0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0.0,Wb=0.0,Xb=0.0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0;m=i;i=i+624|0;n=m+24|0;o=m+16|0;p=m+588|0;q=m+576|0;r=m;s=m+536|0;t=m+8|0;u=m+528|0;v=(e|0)!=0;w=s+40|0;x=w;y=s+39|0;s=t+4|0;z=q+12|0;A=q+11|0;q=p;B=z;D=B-q|0;E=-2-q|0;F=B+2|0;G=n+288|0;H=p+9|0;I=H;J=p+8|0;K=0;L=f;f=0;M=0;a:while(1){do if((K|0)>-1)if((f|0)>(2147483647-K|0)){c[(Xm()|0)>>2]=75;N=-1;break}else{N=f+K|0;break}else N=K;while(0);O=a[L>>0]|0;if(!(O<<24>>24)){P=N;Q=M;R=245;break}else{S=O;T=L}b:while(1){switch(S<<24>>24){case 37:{U=T;V=T;R=9;break b;break}case 0:{W=T;X=T;break b;break}default:{}}O=T+1|0;S=a[O>>0]|0;T=O}c:do if((R|0)==9)while(1){R=0;if((a[U+1>>0]|0)!=37){W=U;X=V;break c}O=V+1|0;Y=U+2|0;if((a[Y>>0]|0)==37){U=Y;V=O;R=9}else{W=Y;X=O;break}}while(0);O=X-L|0;if(v?(c[e>>2]&32|0)==0:0)Nn(L,O,e)|0;if((X|0)!=(L|0)){K=N;L=W;f=O;continue}Y=W+1|0;Z=a[Y>>0]|0;$=(Z<<24>>24)+-48|0;if($>>>0<10){aa=(a[W+2>>0]|0)==36;ba=aa?W+3|0:Y;ca=a[ba>>0]|0;da=aa?$:-1;ea=aa?1:M;fa=ba}else{ca=Z;da=-1;ea=M;fa=Y}Y=ca<<24>>24;d:do if((Y&-32|0)==32){Z=Y;ba=ca;aa=0;$=fa;while(1){if(!(1<<Z+-32&75913)){ga=ba;ha=aa;ia=$;break d}ja=1<<(ba<<24>>24)+-32|aa;ka=$+1|0;la=a[ka>>0]|0;Z=la<<24>>24;if((Z&-32|0)!=32){ga=la;ha=ja;ia=ka;break}else{ba=la;aa=ja;$=ka}}}else{ga=ca;ha=0;ia=fa}while(0);do if(ga<<24>>24==42){Y=ia+1|0;$=(a[Y>>0]|0)+-48|0;if($>>>0<10?(a[ia+2>>0]|0)==36:0){c[l+($<<2)>>2]=10;ma=1;na=ia+3|0;oa=c[j+((a[Y>>0]|0)+-48<<3)>>2]|0}else{if(ea){pa=-1;break a}if(!v){qa=ha;ra=Y;sa=0;ta=0;break}$=(c[g>>2]|0)+(4-1)&~(4-1);aa=c[$>>2]|0;c[g>>2]=$+4;ma=0;na=Y;oa=aa}if((oa|0)<0){qa=ha|8192;ra=na;sa=ma;ta=0-oa|0}else{qa=ha;ra=na;sa=ma;ta=oa}}else{aa=(ga<<24>>24)+-48|0;if(aa>>>0<10){Y=ia;$=0;ba=aa;while(1){aa=($*10|0)+ba|0;Z=Y+1|0;ba=(a[Z>>0]|0)+-48|0;if(ba>>>0>=10){ua=aa;va=Z;break}else{Y=Z;$=aa}}if((ua|0)<0){pa=-1;break a}else{qa=ha;ra=va;sa=ea;ta=ua}}else{qa=ha;ra=ia;sa=ea;ta=0}}while(0);e:do if((a[ra>>0]|0)==46){$=ra+1|0;Y=a[$>>0]|0;if(Y<<24>>24!=42){ba=(Y<<24>>24)+-48|0;if(ba>>>0<10){wa=$;xa=0;ya=ba}else{za=$;Aa=0;break}while(1){$=(xa*10|0)+ya|0;ba=wa+1|0;ya=(a[ba>>0]|0)+-48|0;if(ya>>>0>=10){za=ba;Aa=$;break e}else{wa=ba;xa=$}}}$=ra+2|0;ba=(a[$>>0]|0)+-48|0;if(ba>>>0<10?(a[ra+3>>0]|0)==36:0){c[l+(ba<<2)>>2]=10;za=ra+4|0;Aa=c[j+((a[$>>0]|0)+-48<<3)>>2]|0;break}if(sa){pa=-1;break a}if(v){ba=(c[g>>2]|0)+(4-1)&~(4-1);Y=c[ba>>2]|0;c[g>>2]=ba+4;za=$;Aa=Y}else{za=$;Aa=0}}else{za=ra;Aa=-1}while(0);$=za;Y=0;while(1){ba=(a[$>>0]|0)+-65|0;if(ba>>>0>57){pa=-1;break a}aa=$+1|0;Z=a[267110+(Y*58|0)+ba>>0]|0;ba=Z&255;if((ba+-1|0)>>>0<8){$=aa;Y=ba}else{Ba=aa;Ca=Z;Da=ba;Ea=$;Fa=Y;break}}if(!(Ca<<24>>24)){pa=-1;break}Y=(da|0)>-1;do if(Ca<<24>>24==19)if(Y){pa=-1;break a}else R=52;else{if(Y){c[l+(da<<2)>>2]=Da;$=j+(da<<3)|0;ba=c[$+4>>2]|0;Z=r;c[Z>>2]=c[$>>2];c[Z+4>>2]=ba;R=52;break}if(!v){pa=0;break a}qo(r,Da,g)}while(0);if((R|0)==52?(R=0,!v):0){K=N;L=Ba;f=O;M=sa;continue}Y=a[Ea>>0]|0;ba=(Fa|0)!=0&(Y&15|0)==3?Y&-33:Y;Y=qa&-65537;Z=(qa&8192|0)==0?qa:Y;f:do switch(ba|0){case 110:{switch(Fa|0){case 0:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 1:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 2:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L=Ba;f=O;M=sa;continue a;break}case 3:{b[c[r>>2]>>1]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 4:{a[c[r>>2]>>0]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 6:{c[c[r>>2]>>2]=N;K=N;L=Ba;f=O;M=sa;continue a;break}case 7:{$=c[r>>2]|0;c[$>>2]=N;c[$+4>>2]=((N|0)<0)<<31>>31;K=N;L=Ba;f=O;M=sa;continue a;break}default:{K=N;L=Ba;f=O;M=sa;continue a}}break}case 112:{Ga=Z|8;Ha=Aa>>>0>8?Aa:8;Ia=120;R=64;break}case 88:case 120:{Ga=Z;Ha=Aa;Ia=ba;R=64;break}case 111:{$=r;aa=c[$>>2]|0;ka=c[$+4>>2]|0;if((aa|0)==0&(ka|0)==0)Ja=w;else{$=w;ja=aa;aa=ka;while(1){ka=$+-1|0;a[ka>>0]=ja&7|48;ja=Fo(ja|0,aa|0,3)|0;aa=C;if((ja|0)==0&(aa|0)==0){Ja=ka;break}else $=ka}}if(!(Z&8)){Ka=Ja;La=Z;Ma=Aa;Na=0;Oa=267590;R=77}else{$=x-Ja+1|0;Ka=Ja;La=Z;Ma=(Aa|0)<($|0)?$:Aa;Na=0;Oa=267590;R=77}break}case 105:case 100:{$=r;aa=c[$>>2]|0;ja=c[$+4>>2]|0;if((ja|0)<0){$=Ao(0,0,aa|0,ja|0)|0;ka=C;la=r;c[la>>2]=$;c[la+4>>2]=ka;Pa=$;Qa=ka;Ra=1;Sa=267590;R=76;break f}if(!(Z&2048)){ka=Z&1;Pa=aa;Qa=ja;Ra=ka;Sa=(ka|0)==0?267590:267592;R=76}else{Pa=aa;Qa=ja;Ra=1;Sa=267591;R=76}break}case 117:{ja=r;Pa=c[ja>>2]|0;Qa=c[ja+4>>2]|0;Ra=0;Sa=267590;R=76;break}case 99:{a[y>>0]=c[r>>2];Ta=y;Ua=Y;Va=1;Wa=0;Xa=267590;Ya=w;break}case 109:{Za=Ym(c[(Xm()|0)>>2]|0)|0;R=82;break}case 115:{ja=c[r>>2]|0;Za=(ja|0)!=0?ja:267600;R=82;break}case 67:{c[t>>2]=c[r>>2];c[s>>2]=0;c[r>>2]=t;_a=-1;R=86;break}case 83:{if(!Aa){so(e,32,ta,0,Z);$a=0;R=98}else{_a=Aa;R=86}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{ab=+h[r>>3];c[o>>2]=0;h[k>>3]=ab;if((c[k+4>>2]|0)>=0)if(!(Z&2048)){ja=Z&1;bb=ab;cb=ja;db=(ja|0)==0?267608:267613}else{bb=ab;cb=1;db=267610}else{bb=-ab;cb=1;db=267607}h[k>>3]=bb;ja=c[k+4>>2]&2146435072;do if(ja>>>0<2146435072|(ja|0)==2146435072&0<0){ab=+hn(bb,o)*2.0;aa=ab!=0.0;if(aa)c[o>>2]=(c[o>>2]|0)+-1;ka=ba|32;if((ka|0)==97){$=ba&32;la=($|0)==0?db:db+9|0;eb=cb|2;fb=12-Aa|0;do if(!(Aa>>>0>11|(fb|0)==0)){gb=fb;hb=8.0;while(1){gb=gb+-1|0;ib=hb*16.0;if(!gb){jb=ib;break}else hb=ib}if((a[la>>0]|0)==45){kb=-(jb+(-ab-jb));break}else{kb=ab+jb-jb;break}}else kb=ab;while(0);fb=c[o>>2]|0;gb=(fb|0)<0?0-fb|0:fb;lb=ro(gb,((gb|0)<0)<<31>>31,z)|0;if((lb|0)==(z|0)){a[A>>0]=48;mb=A}else mb=lb;a[mb+-1>>0]=(fb>>31&2)+43;fb=mb+-2|0;a[fb>>0]=ba+15;lb=(Aa|0)<1;gb=(Z&8|0)==0;hb=kb;nb=p;while(1){ob=~~hb;pb=nb+1|0;a[nb>>0]=d[267574+ob>>0]|$;hb=(hb-+(ob|0))*16.0;do if((pb-q|0)==1){if(gb&(lb&hb==0.0)){qb=pb;break}a[pb>>0]=46;qb=nb+2|0}else qb=pb;while(0);if(!(hb!=0.0)){rb=qb;break}else nb=qb}nb=rb;lb=(Aa|0)!=0&(E+nb|0)<(Aa|0)?F+Aa-fb|0:D-fb+nb|0;gb=lb+eb|0;so(e,32,ta,gb,Z);if(!(c[e>>2]&32))Nn(la,eb,e)|0;so(e,48,ta,gb,Z^65536);$=nb-q|0;if(!(c[e>>2]&32))Nn(p,$,e)|0;nb=B-fb|0;so(e,48,lb-($+nb)|0,0,0);if(!(c[e>>2]&32))Nn(fb,nb,e)|0;so(e,32,ta,gb,Z^8192);sb=(gb|0)<(ta|0)?ta:gb;break}gb=(Aa|0)<0?6:Aa;if(aa){nb=(c[o>>2]|0)+-28|0;c[o>>2]=nb;tb=ab*268435456.0;ub=nb}else{tb=ab;ub=c[o>>2]|0}nb=(ub|0)<0?n:G;$=nb;hb=tb;lb=nb;while(1){pb=~~hb>>>0;c[lb>>2]=pb;ob=lb+4|0;hb=(hb-+(pb>>>0))*1.0e9;if(!(hb!=0.0)){vb=ob;break}else lb=ob}lb=c[o>>2]|0;if((lb|0)>0){aa=lb;fb=nb;eb=vb;while(1){la=(aa|0)>29?29:aa;ob=eb+-4|0;do if(ob>>>0<fb>>>0)wb=fb;else{pb=0;xb=ob;while(1){yb=Go(c[xb>>2]|0,0,la|0)|0;zb=Bo(yb|0,C|0,pb|0,0)|0;yb=C;Ab=Oo(zb|0,yb|0,1e9,0)|0;c[xb>>2]=Ab;Ab=No(zb|0,yb|0,1e9,0)|0;xb=xb+-4|0;if(xb>>>0<fb>>>0){Bb=Ab;break}else pb=Ab}if(!Bb){wb=fb;break}pb=fb+-4|0;c[pb>>2]=Bb;wb=pb}while(0);ob=eb;while(1){if(ob>>>0<=wb>>>0){Cb=ob;break}pb=ob+-4|0;if(!(c[pb>>2]|0))ob=pb;else{Cb=ob;break}}ob=(c[o>>2]|0)-la|0;c[o>>2]=ob;if((ob|0)>0){aa=ob;fb=wb;eb=Cb}else{Db=ob;Eb=wb;Fb=Cb;break}}}else{Db=lb;Eb=nb;Fb=vb}if((Db|0)<0){eb=((gb+25|0)/9|0)+1|0;fb=(ka|0)==102;aa=Db;ob=Eb;pb=Fb;while(1){xb=0-aa|0;Ab=(xb|0)>9?9:xb;do if(ob>>>0<pb>>>0){xb=(1<<Ab)+-1|0;yb=1e9>>>Ab;zb=0;Gb=ob;while(1){Hb=c[Gb>>2]|0;c[Gb>>2]=(Hb>>>Ab)+zb;Ib=_(Hb&xb,yb)|0;Gb=Gb+4|0;if(Gb>>>0>=pb>>>0){Jb=Ib;break}else zb=Ib}zb=(c[ob>>2]|0)==0?ob+4|0:ob;if(!Jb){Kb=zb;Lb=pb;break}c[pb>>2]=Jb;Kb=zb;Lb=pb+4|0}else{Kb=(c[ob>>2]|0)==0?ob+4|0:ob;Lb=pb}while(0);la=fb?nb:Kb;zb=(Lb-la>>2|0)>(eb|0)?la+(eb<<2)|0:Lb;aa=(c[o>>2]|0)+Ab|0;c[o>>2]=aa;if((aa|0)>=0){Mb=Kb;Nb=zb;break}else{ob=Kb;pb=zb}}}else{Mb=Eb;Nb=Fb}do if(Mb>>>0<Nb>>>0){pb=($-Mb>>2)*9|0;ob=c[Mb>>2]|0;if(ob>>>0<10){Ob=pb;break}else{Pb=pb;Qb=10}while(1){Qb=Qb*10|0;pb=Pb+1|0;if(ob>>>0<Qb>>>0){Ob=pb;break}else Pb=pb}}else Ob=0;while(0);ob=(ka|0)==103;Ab=(gb|0)!=0;pb=gb-((ka|0)!=102?Ob:0)+((Ab&ob)<<31>>31)|0;if((pb|0)<(((Nb-$>>2)*9|0)+-9|0)){aa=pb+9216|0;pb=(aa|0)/9|0;eb=nb+(pb+-1023<<2)|0;fb=((aa|0)%9|0)+1|0;if((fb|0)<9){aa=10;lb=fb;while(1){fb=aa*10|0;lb=lb+1|0;if((lb|0)==9){Rb=fb;break}else aa=fb}}else Rb=10;aa=c[eb>>2]|0;lb=(aa>>>0)%(Rb>>>0)|0;if((lb|0)==0?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Sb=Mb;Tb=eb;Ub=Ob}else R=163;do if((R|0)==163){R=0;hb=(((aa>>>0)/(Rb>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;ka=(Rb|0)/2|0;do if(lb>>>0<ka>>>0)Vb=.5;else{if((lb|0)==(ka|0)?(nb+(pb+-1022<<2)|0)==(Nb|0):0){Vb=1.0;break}Vb=1.5}while(0);do if(!cb){Wb=hb;Xb=Vb}else{if((a[db>>0]|0)!=45){Wb=hb;Xb=Vb;break}Wb=-hb;Xb=-Vb}while(0);ka=aa-lb|0;c[eb>>2]=ka;if(!(Wb+Xb!=Wb)){Sb=Mb;Tb=eb;Ub=Ob;break}fb=ka+Rb|0;c[eb>>2]=fb;if(fb>>>0>999999999){fb=Mb;ka=eb;while(1){zb=ka+-4|0;c[ka>>2]=0;if(zb>>>0<fb>>>0){la=fb+-4|0;c[la>>2]=0;Yb=la}else Yb=fb;la=(c[zb>>2]|0)+1|0;c[zb>>2]=la;if(la>>>0>999999999){fb=Yb;ka=zb}else{Zb=Yb;_b=zb;break}}}else{Zb=Mb;_b=eb}ka=($-Zb>>2)*9|0;fb=c[Zb>>2]|0;if(fb>>>0<10){Sb=Zb;Tb=_b;Ub=ka;break}else{$b=ka;ac=10}while(1){ac=ac*10|0;ka=$b+1|0;if(fb>>>0<ac>>>0){Sb=Zb;Tb=_b;Ub=ka;break}else $b=ka}}while(0);eb=Tb+4|0;bc=Sb;cc=Ub;dc=Nb>>>0>eb>>>0?eb:Nb}else{bc=Mb;cc=Ob;dc=Nb}eb=0-cc|0;lb=dc;while(1){if(lb>>>0<=bc>>>0){ec=0;fc=lb;break}aa=lb+-4|0;if(!(c[aa>>2]|0))lb=aa;else{ec=1;fc=lb;break}}do if(ob){lb=(Ab&1^1)+gb|0;if((lb|0)>(cc|0)&(cc|0)>-5){gc=ba+-1|0;hc=lb+-1-cc|0}else{gc=ba+-2|0;hc=lb+-1|0}lb=Z&8;if(lb){ic=gc;jc=hc;kc=lb;break}do if(ec){lb=c[fc+-4>>2]|0;if(!lb){lc=9;break}if(!((lb>>>0)%10|0)){mc=10;nc=0}else{lc=0;break}while(1){mc=mc*10|0;aa=nc+1|0;if((lb>>>0)%(mc>>>0)|0){lc=aa;break}else nc=aa}}else lc=9;while(0);lb=((fc-$>>2)*9|0)+-9|0;if((gc|32|0)==102){aa=lb-lc|0;pb=(aa|0)<0?0:aa;ic=gc;jc=(hc|0)<(pb|0)?hc:pb;kc=0;break}else{pb=lb+cc-lc|0;lb=(pb|0)<0?0:pb;ic=gc;jc=(hc|0)<(lb|0)?hc:lb;kc=0;break}}else{ic=ba;jc=gb;kc=Z&8}while(0);gb=jc|kc;$=(gb|0)!=0&1;Ab=(ic|32|0)==102;if(Ab){oc=(cc|0)>0?cc:0;pc=0}else{ob=(cc|0)<0?eb:cc;lb=ro(ob,((ob|0)<0)<<31>>31,z)|0;if((B-lb|0)<2){ob=lb;while(1){pb=ob+-1|0;a[pb>>0]=48;if((B-pb|0)<2)ob=pb;else{qc=pb;break}}}else qc=lb;a[qc+-1>>0]=(cc>>31&2)+43;ob=qc+-2|0;a[ob>>0]=ic;oc=B-ob|0;pc=ob}ob=cb+1+jc+$+oc|0;so(e,32,ta,ob,Z);if(!(c[e>>2]&32))Nn(db,cb,e)|0;so(e,48,ta,ob,Z^65536);do if(Ab){eb=bc>>>0>nb>>>0?nb:bc;pb=eb;while(1){aa=ro(c[pb>>2]|0,0,H)|0;do if((pb|0)==(eb|0)){if((aa|0)!=(H|0)){rc=aa;break}a[J>>0]=48;rc=J}else{if(aa>>>0>p>>>0)sc=aa;else{rc=aa;break}while(1){fb=sc+-1|0;a[fb>>0]=48;if(fb>>>0>p>>>0)sc=fb;else{rc=fb;break}}}while(0);if(!(c[e>>2]&32))Nn(rc,I-rc|0,e)|0;aa=pb+4|0;if(aa>>>0>nb>>>0){tc=aa;break}else pb=aa}do if(gb){if(c[e>>2]&32)break;Nn(267642,1,e)|0}while(0);if((jc|0)>0&tc>>>0<fc>>>0){pb=jc;eb=tc;while(1){aa=ro(c[eb>>2]|0,0,H)|0;if(aa>>>0>p>>>0){fb=aa;while(1){ka=fb+-1|0;a[ka>>0]=48;if(ka>>>0>p>>>0)fb=ka;else{uc=ka;break}}}else uc=aa;if(!(c[e>>2]&32))Nn(uc,(pb|0)>9?9:pb,e)|0;eb=eb+4|0;fb=pb+-9|0;if(!((pb|0)>9&eb>>>0<fc>>>0)){vc=fb;break}else pb=fb}}else vc=jc;so(e,48,vc+9|0,9,0)}else{pb=ec?fc:bc+4|0;if((jc|0)>-1){eb=(kc|0)==0;fb=jc;ka=bc;while(1){zb=ro(c[ka>>2]|0,0,H)|0;if((zb|0)==(H|0)){a[J>>0]=48;wc=J}else wc=zb;do if((ka|0)==(bc|0)){zb=wc+1|0;if(!(c[e>>2]&32))Nn(wc,1,e)|0;if(eb&(fb|0)<1){xc=zb;break}if(c[e>>2]&32){xc=zb;break}Nn(267642,1,e)|0;xc=zb}else{if(wc>>>0>p>>>0)yc=wc;else{xc=wc;break}while(1){zb=yc+-1|0;a[zb>>0]=48;if(zb>>>0>p>>>0)yc=zb;else{xc=zb;break}}}while(0);aa=I-xc|0;if(!(c[e>>2]&32))Nn(xc,(fb|0)>(aa|0)?aa:fb,e)|0;zb=fb-aa|0;ka=ka+4|0;if(!(ka>>>0<pb>>>0&(zb|0)>-1)){zc=zb;break}else fb=zb}}else zc=jc;so(e,48,zc+18|0,18,0);if(c[e>>2]&32)break;Nn(pc,B-pc|0,e)|0}while(0);so(e,32,ta,ob,Z^8192);sb=(ob|0)<(ta|0)?ta:ob}else{gb=(ba&32|0)!=0;nb=bb!=bb|0.0!=0.0;Ab=nb?0:cb;$=Ab+3|0;so(e,32,ta,$,Y);lb=c[e>>2]|0;if(!(lb&32)){Nn(db,Ab,e)|0;Ac=c[e>>2]|0}else Ac=lb;if(!(Ac&32))Nn(nb?(gb?267634:267638):gb?267626:267630,3,e)|0;so(e,32,ta,$,Z^8192);sb=($|0)<(ta|0)?ta:$}while(0);K=N;L=Ba;f=sb;M=sa;continue a;break}default:{Ta=L;Ua=Z;Va=Aa;Wa=0;Xa=267590;Ya=w}}while(0);g:do if((R|0)==64){R=0;ba=r;O=c[ba>>2]|0;ja=c[ba+4>>2]|0;ba=Ia&32;if(!((O|0)==0&(ja|0)==0)){$=w;gb=O;O=ja;while(1){ja=$+-1|0;a[ja>>0]=d[267574+(gb&15)>>0]|ba;gb=Fo(gb|0,O|0,4)|0;O=C;if((gb|0)==0&(O|0)==0){Bc=ja;break}else $=ja}$=r;if((Ga&8|0)==0|(c[$>>2]|0)==0&(c[$+4>>2]|0)==0){Ka=Bc;La=Ga;Ma=Ha;Na=0;Oa=267590;R=77}else{Ka=Bc;La=Ga;Ma=Ha;Na=2;Oa=267590+(Ia>>4)|0;R=77}}else{Ka=w;La=Ga;Ma=Ha;Na=0;Oa=267590;R=77}}else if((R|0)==76){R=0;Ka=ro(Pa,Qa,w)|0;La=Z;Ma=Aa;Na=Ra;Oa=Sa;R=77}else if((R|0)==82){R=0;$=_n(Za,0,Aa)|0;O=($|0)==0;Ta=Za;Ua=Y;Va=O?Aa:$-Za|0;Wa=0;Xa=267590;Ya=O?Za+Aa|0:$}else if((R|0)==86){R=0;$=0;O=0;gb=c[r>>2]|0;while(1){ba=c[gb>>2]|0;if(!ba){Cc=$;Dc=O;break}ja=on(u,ba)|0;if((ja|0)<0|ja>>>0>(_a-$|0)>>>0){Cc=$;Dc=ja;break}ba=ja+$|0;if(_a>>>0>ba>>>0){$=ba;O=ja;gb=gb+4|0}else{Cc=ba;Dc=ja;break}}if((Dc|0)<0){pa=-1;break a}so(e,32,ta,Cc,Z);if(!Cc){$a=0;R=98}else{gb=0;O=c[r>>2]|0;while(1){$=c[O>>2]|0;if(!$){$a=Cc;R=98;break g}ja=on(u,$)|0;gb=ja+gb|0;if((gb|0)>(Cc|0)){$a=Cc;R=98;break g}if(!(c[e>>2]&32))Nn(u,ja,e)|0;if(gb>>>0>=Cc>>>0){$a=Cc;R=98;break}else O=O+4|0}}}while(0);if((R|0)==98){R=0;so(e,32,ta,$a,Z^8192);K=N;L=Ba;f=(ta|0)>($a|0)?ta:$a;M=sa;continue}if((R|0)==77){R=0;Y=(Ma|0)>-1?La&-65537:La;O=r;gb=(c[O>>2]|0)!=0|(c[O+4>>2]|0)!=0;if((Ma|0)!=0|gb){O=(gb&1^1)+(x-Ka)|0;Ta=Ka;Ua=Y;Va=(Ma|0)>(O|0)?Ma:O;Wa=Na;Xa=Oa;Ya=w}else{Ta=w;Ua=Y;Va=0;Wa=Na;Xa=Oa;Ya=w}}Y=Ya-Ta|0;O=(Va|0)<(Y|0)?Y:Va;gb=Wa+O|0;ja=(ta|0)<(gb|0)?gb:ta;so(e,32,ja,gb,Ua);if(!(c[e>>2]&32))Nn(Xa,Wa,e)|0;so(e,48,ja,gb,Ua^65536);so(e,48,O,Y,0);if(!(c[e>>2]&32))Nn(Ta,Y,e)|0;so(e,32,ja,gb,Ua^8192);K=N;L=Ba;f=ja;M=sa}h:do if((R|0)==245)if(!e)if(Q){sa=1;while(1){M=c[l+(sa<<2)>>2]|0;if(!M){Ec=sa;break}qo(j+(sa<<3)|0,M,g);sa=sa+1|0;if((sa|0)>=10){pa=1;break h}}if((Ec|0)<10){sa=Ec;while(1){if(c[l+(sa<<2)>>2]|0){pa=-1;break h}sa=sa+1|0;if((sa|0)>=10){pa=1;break}}}else pa=1}else pa=0;else pa=P;while(0);i=m;return pa|0}
function rd(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function sd(){return i|0}function td(a){a=a|0;i=a}function ud(a,b){a=a|0;b=b|0;i=a;j=b}function vd(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function wd(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function xd(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function yd(a){a=a|0;C=a}function zd(){return C|0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!(c[34]|0))return;Pd();d=c[34]|0;if(a){Qd(a,b,d);return}if(!d)return;else{e=d;f=0}while(1){d=e+16|0;b=c[d>>2]|0;if(!((b|0)==(f|0)|(c[6]|0)!=0))if(!b)g=0;else{Xf(b);g=c[d>>2]|0}else g=f;d=e;e=c[e+4>>2]|0;id[c[d+12>>2]&63](d);qe(136,d);if(!e)break;else f=g}return}function Bd(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0.0,p=0.0;if((g|0)>0&(f|0)>0)l=0;else return;do{k=b+((_(l,i)|0)<<2)|0;j=e+((_(l,h)|0)<<2)|0;m=0;while(1){n=a[j+3>>0]|0;switch(n<<24>>24){case 0:break;case -1:{c[k>>2]=c[j>>2];break}default:{o=+(n&255|0)/255.0;p=1.0-o;a[k>>0]=~~(p*+(d[k>>0]|0|0)+o*+(d[j>>0]|0|0));n=k+1|0;a[n>>0]=~~(p*+(d[n>>0]|0|0)+o*+(d[j+1>>0]|0|0));n=k+2|0;a[n>>0]=~~(p*+(d[n>>0]|0|0)+o*+(d[j+2>>0]|0|0));n=k+3|0;p=+(d[n>>0]|0|0)/255.0;a[n>>0]=~~((p+o*(1.0-p))*255.0)}}m=m+1|0;if((m|0)==(f|0))break;else{k=k+4|0;j=j+4|0}}l=l+1|0}while((l|0)!=(g|0));return}function Cd(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;k=a[j+3>>0]|0;switch(k<<24>>24){case -1:{if((g|0)>(i|0))return;if((f|0)>(h|0))return;else l=g;while(1){m=b+((_(l,e)|0)+f<<2)|0;n=f;while(1){c[m>>2]=c[j>>2];if((n|0)<(h|0)){m=m+4|0;n=n+1|0}else break}if((l|0)<(i|0))l=l+1|0;else break}return}case 0:return;default:{o=+(k&255|0)/255.0;p=o;q=1.0-o;if((g|0)>(i|0)|(f|0)>(h|0))return;k=g;while(1){g=b+((_(k,e)|0)+f<<2)|0;l=f;while(1){n=c[j>>2]|0;a[g>>0]=~~(q*+(d[g>>0]|0|0)+o*+(n&255|0));m=g+1|0;a[m>>0]=~~(q*+(d[m>>0]|0|0)+o*+(n>>>8&255|0));m=g+2|0;a[m>>0]=~~(q*+(d[m>>0]|0|0)+o*+(n>>>16&255|0));n=g+3|0;r=+(d[n>>0]|0|0)/255.0;a[n>>0]=~~((r+p*(1.0-r))*255.0);if((l|0)<(h|0)){g=g+4|0;l=l+1|0}else break}if((k|0)<(i|0))k=k+1|0;else break}return}}}function Dd(a){a=a|0;var b=0;b=a&65535;if((Zd(b)|0)!=2?(Zd(b)|0)!=3:0)ua(234579,234499,49,234647);return e[(ae(b,0)|0)+2>>1]|0|0}function Ed(a){a=a|0;$f(e[a+28>>1]|0,+g[a+32>>2],+g[a+36>>2],+g[a+8>>2],a+20|0,+g[a+40>>2],+g[a+44>>2],+g[a+48>>2],c[a+24>>2]|0);return}function Fd(a,f,h){a=a|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0,q=0;i=a+40|0;if(!((!(+g[a+44>>2]!=1.0)?!(+g[a+48>>2]!=1.0):0)?!(+g[i>>2]!=0.0):0))Qn(234660)|0;i=a+28|0;j=e[i>>1]|0;if((Zd(j)|0)!=2?(Zd(j)|0)!=3:0)ua(234579,234499,49,234647);k=ae(j,0)|0;j=b[k+4>>1]|0;l=+g[a+32>>2];m=b[k+6>>1]|0;n=+g[a+36>>2];a=e[k+2>>1]|0;o=c[33]|0;p=o+(a<<3)|0;q=(d[p>>0]|d[p+1>>0]<<8)&65535;p=o+(a<<3)+2|0;o=d[p>>0]|d[p+1>>0]<<8;if((Zd(a)|0)==1){p=f+(~~l+(j<<16>>16)+(_(~~n+(m<<16>>16)|0,h)|0)<<2)|0;m=ae(a,0)|0;n=+(q|0);a=e[i>>1]|0;i=c[33]|0;j=i+(a<<3)|0;f=i+(a<<3)+2|0;Bd(p,m+8+(~~(n*+g[k+28>>2]+n*(+(o&65535|0)*+g[k+32>>2]))<<2)|0,(d[j>>0]|d[j+1>>0]<<8)&65535,(d[f>>0]|d[f+1>>0]<<8)&65535,q,h,0,0);return}else ua(234468,234499,54,234566)}function Gd(a){a=a|0;var b=0,d=0.0,f=0.0;b=a+40|0;d=+g[a+48>>2];if((d>0.0?d:-d)>=360.0){f=+g[a+52>>2];$f(e[a+28>>1]|0,+g[a+32>>2],+g[a+36>>2],+g[a+8>>2],a+20|0,+g[b>>2],f,f,c[a+24>>2]|0);return}if(!(d!=0.0))return;bg(e[a+28>>1]|0,+g[a+32>>2],+g[a+36>>2],+g[a+8>>2],a+20|0,+g[a+44>>2],d,+g[b>>2],+g[a+52>>2],c[a+24>>2]|0);return}function Hd(a){a=a|0;var d=0;d=a+40|0;ag(e[a+28>>1]|0,+g[a+32>>2],+g[a+36>>2],+g[a+8>>2],a+20|0,b[d>>1]|0,b[d+2>>1]|0,b[a+44>>1]|0,b[d+6>>1]|0,+g[a+48>>2],+g[a+52>>2],c[a+24>>2]|0);return}function Id(a){a=a|0;cg(+g[a+28>>2],+g[a+36>>2],+g[a+32>>2],+g[a+40>>2],a+20|0,+g[a+8>>2]);return}function Jd(a,d,f,h,j,k,l,m,n){a=a|0;d=+d;f=+f;h=h|0;j=j|0;k=+k;l=+l;m=+m;n=n|0;var o=0,p=0,q=0,r=0;o=i;i=i+16|0;p=o;if((n&8|0)!=0?(ge(a,d,f,1,0.0,0.0)|0)!=0:0){q=a+1<<16>>16;r=n&-9}else{q=a;r=n}n=se(136,1)|0;if(!(q<<16>>16!=0&(q&65535)<(e[62]|0))){c[p>>2]=q&65535;Pn(234706,p)|0}if(!(q<<16>>16))ua(234732,234499,405,234743);if((q&65535)>=(e[62]|0))ua(234752,234499,406,234743);b[n+28>>1]=q;c[n+12>>2]=44;g[n+32>>2]=+(c[1396]|0)+d;g[n+36>>2]=+(c[1397]|0)+f;c[n+24>>2]=r;g[n+8>>2]=+(h<<16>>16);g[n+40>>2]=k;g[n+44>>2]=l;g[n+48>>2]=m;c[n+20>>2]=(j&255)<<24|16777215;j=c[53]|0;c[n+16>>2]=j;if(j){i=o;return n|0}Qn(234777)|0;i=o;return n|0}function Kd(a,d,e,f,h,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;h=+h;i=+i;j=+j;k=k|0;var l=0;l=se(136,1)|0;b[l+28>>1]=a;c[l+12>>2]=45;g[l+32>>2]=+((c[1396]|0)+d|0);g[l+36>>2]=+((c[1397]|0)+e|0);c[l+24>>2]=k;g[l+8>>2]=+(f<<16>>16);g[l+44>>2]=h;g[l+48>>2]=i;g[l+52>>2]=j;c[l+20>>2]=-1;c[l+16>>2]=c[53];return l|0}function Ld(a,d,e,f,h,i,j,k,l,m){a=a|0;d=+d;e=+e;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;m=m|0;var n=0;n=se(136,1)|0;b[n+28>>1]=a;c[n+12>>2]=46;g[n+32>>2]=+(c[1396]|0)+d;g[n+36>>2]=+(c[1397]|0)+e;c[n+24>>2]=m;g[n+8>>2]=+(f<<16>>16);b[n+40>>1]=h;b[n+42>>1]=i;b[n+44>>1]=j;b[n+46>>1]=k;g[n+48>>2]=l;g[n+52>>2]=l;c[n+16>>2]=c[53];c[n+20>>2]=-1;return n|0}function Md(a,b,d,e,f,h){a=+a;b=+b;d=+d;e=+e;f=f|0;h=h|0;var i=0;i=se(136,1)|0;g[i+28>>2]=a;g[i+36>>2]=b;g[i+32>>2]=d;g[i+40>>2]=e;c[i+20>>2]=h;g[i+8>>2]=+(f<<16>>16);c[i+12>>2]=47;c[i+24>>2]=0;c[i+16>>2]=c[53];return i|0}function Nd(b,c,d,e,f,g,h,i){b=b|0;c=+c;d=+d;e=e|0;f=+f;g=+g;h=+h;i=i|0;return Jd(b,c,d,e,a[168]|0,f,g,h,i)|0}function Od(b,c,d,e,f){b=b|0;c=+c;d=+d;e=e|0;f=f|0;return Jd(b,c,d,e,a[168]|0,0.0,1.0,1.0,f)|0}function Pd(){var a=0,b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.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;a=c[34]|0;c[a>>2]=0;b=a+4|0;d=c[b>>2]|0;c[b>>2]=0;if(!d){e=a;f=a;c[34]=e;c[35]=f;return}else{h=a;i=0;j=a;k=1;l=a;m=d}while(1){n=+g[m+8>>2];if(n>+g[l+8>>2]){o=1;p=c[l>>2]|0}else{o=0;p=j}a:do if(!p){q=0;r=0}else{d=p;while(1){if(!(n>+g[d+8>>2])){q=1;r=d;break a}d=c[d>>2]|0;if(!d){q=0;r=0;break}}}while(0);d=m+4|0;a=c[d>>2]|0;b:do if(!a){s=d;t=0;u=1;v=m}else{b=a;w=d;x=1;y=m;while(1){if(!(+g[b+8>>2]==n)){s=w;t=b;u=x;v=y;break b}z=x+1|0;A=b+4|0;B=c[A>>2]|0;if(!B){s=A;t=0;u=z;v=b;break}else{C=b;b=B;w=A;x=z;y=C}}}while(0);if(q){d=r+4|0;c[s>>2]=c[d>>2];c[m>>2]=r;a=c[d>>2]|0;if(!a)D=v;else{c[a>>2]=v;D=j}c[d>>2]=m;E=h;F=D}else{c[s>>2]=h;c[m>>2]=0;c[h>>2]=v;E=m;F=j}k=u+k|0;if(!o){d=k>>1;if((i|0)<(d|0)){a=i;y=l;while(1){a=a+1|0;x=c[y+4>>2]|0;if((a|0)==(d|0)){G=d;H=x;break}else y=x}}else{G=i;H=l}}else{y=u+i|0;d=k>>1;if((y|0)>(d|0)){a=y;x=l;while(1){a=a+-1|0;w=c[x>>2]|0;if((a|0)<=(d|0)){G=d;H=w;break}else x=w}}else{G=y;H=l}}if(!t){e=E;f=F;break}else{h=E;i=G;j=F;l=H;m=t}}c[34]=e;c[35]=f;return}function Qd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;i=i+16|0;f=e+4|0;h=e;if(!d){i=e;return}j=d;do{d=j;j=c[j+4>>2]|0;k=c[d+12>>2]|0;do if((k|0)!=44)if((k|0)==47){l=~~+g[d+28>>2];m=~~+g[d+36>>2];n=~~+g[d+32>>2];o=~~+g[d+40>>2];c[h>>2]=c[d+20>>2];c[f>>2]=c[h>>2];Cd(a,b,l,m,n,o,f);break}else{Qn(234786)|0;break}else Fd(d,a,b);while(0);if(!(c[d+24>>2]&4))qe(136,d)}while((j|0)!=0);i=e;return}function Rd(a){a=a|0;var c=0;c=a&65535;if((Zd(c)|0)!=2?(Zd(c)|0)!=3:0)ua(234579,234499,49,234647);return b[(ae(c,0)|0)+64>>1]|0}function Sd(a){a=a|0;var c=0;c=a&65535;if((Zd(c)|0)!=2?(Zd(c)|0)!=3:0)ua(234579,234499,49,234647);return b[(ae(c,0)|0)+66>>1]|0}function Td(d){d=d|0;var e=0;e=a[55]|0;c[13]=d;a[55]=e;b[36]=0;return}function Ud(){c[13]=-16777216;b[28]=-256;b[29]=0;c[15]=400;c[16]=0;c[17]=0;a[74]=0;a[75]=1;b[36]=0;return}function Vd(){var f=0,g=0,h=0,i=0,j=0,k=0;if(!(c[16]|0)){f=xg()|0;c[16]=f;c[17]=f}f=b[37]|0;g=a[55]|0;if((f&255)<<24>>24)if((f&65535)<256|g<<24>>24!=-1|(b[29]|0)==0)h=g;else{b[28]=-256;b[29]=0;c[16]=xg()|0;a[74]=0;h=a[55]|0}else{if((g&255|0)!=((e[29]|0)>>>8|0)){g=xg()|0;f=g-(c[17]|0)|0;if((f|0)>50)c[16]=f+-16+(c[16]|0)}else a[74]=1;f=xg()|0;g=c[14]|0;i=(ve(f-(c[16]|0)|0,0,c[15]|0,g>>>8&255,g>>>24)|0)&255;a[55]=i;h=i}if(h<<24>>24==0|(b[36]|0)==-1){j=xg()|0;c[17]=j;return}if(!(c[6]|0)){Xf(216);k=a[55]|0}else k=h;if(!(k<<24>>24)){j=xg()|0;c[17]=j;return}k=b[36]|0;if(!(k<<16>>16)){h=c[4]|0;i=h&65535;g=h>>>16;cg(+(0-i|0),+(0-g|0),+(i<<1|0),+(g<<1|0),52,-1.0);j=xg()|0;c[17]=j;return}else{g=k&65535;k=c[33]|0;i=k+(g<<3)+4|0;h=k+(g<<3)+6|0;$f(g,+((d[i>>0]|d[i+1>>0]<<8)<<16>>16),+((d[h>>0]|d[h+1>>0]<<8)<<16>>16),-1.0,52,0.0,1.0,1.0,0);j=xg()|0;c[17]=j;return}}function Wd(e){e=e|0;if((b[29]|0)==-256)return;b[28]=d[55]<<8;b[29]=-256;c[15]=e;c[16]=xg()|0;a[74]=0;return}function Xd(){return (d[55]|0|0)==((e[29]|0)>>>8|0)|0}function Yd(a){a=a|0;return (c[(c[30]|0)+(a<<2)>>2]|0)!=0|0}function Zd(a){a=a|0;return (c[(c[29]|0)+(a<<2)>>2]|0)>>>25&31|0}function _d(d){d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+48|0;g=f+24|0;h=f+16|0;j=f+8|0;k=f;l=f+28|0;c[k>>2]=d;Pn(234859,k)|0;k=Gn(d,234871)|0;c[28]=k;if(!k){c[j>>2]=d;Pn(234874,j)|0;Cb(0)}Jn(l,1,20,k)|0;a[l+4>>0]=0;if((b[l>>1]|0)!=16720){c[h>>2]=l;Pn(234837,h)|0;Cb(0)}if((b[l+2>>1]|0)!=19267){c[h>>2]=l;Pn(234837,h)|0;Cb(0)}h=b[l+12>>1]|0;b[62]=h;b[64]=(e[l+16>>1]|0)+1;b[63]=(e[l+14>>1]|0)+1;k=b[l+8>>1]|0;b[8]=k;b[10]=k;k=b[l+10>>1]|0;b[9]=k;b[11]=k;k=Bg((h&65535)<<2,0)|0;c[30]=k;h=b[62]|0;l=h&65535;if(h<<16>>16!=0?(c[k>>2]=0,(h&65535)>1):0){h=1;do{c[(c[30]|0)+(h<<2)>>2]=0;h=h+1|0}while((h|0)<(l|0))}h=(l<<2)+4|0;l=Bg(h,0)|0;c[29]=l;Jn(l,1,h,c[28]|0)|0;c[g>>2]=e[64];Pn(234918,g)|0;g=b[64]|0;if(g<<16>>16!=0?(h=Bg(((g&65535)<<3)+8|0,0)|0,c[33]=h,Jn(h,1,e[64]<<3,c[28]|0)|0,(b[64]|0)!=0):0)Sf(e[63]|0);else c[33]=0;h=c[1399]|0;if(!h){c[1399]=0;c[1400]=0;c[1401]=0;$d()|0;i=f;return}uo(h);c[1399]=0;c[1400]=0;c[1401]=0;$d()|0;i=f;return}function $d(){var b=0,d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;b=c[1399]|0;if(b){d=b;return d|0}b=c[29]|0;f=(c[b+4>>2]&33554431)-(c[b>>2]&33554431)|0;b=f<<4;g=Bg(b|1,0)|0;c[1399]=g;ae(0,g)|0;c[1401]=0;g=Bg((e[62]<<2)+400|0,0)|0;c[1400]=g;h=c[1399]|0;i=c[1401]|0;j=i+1|0;c[1401]=j;c[g+(i<<2)>>2]=h;a:do if((f|0)>0){h=j;i=0;while(1){g=(c[1399]|0)+i|0;switch(a[g>>0]|0){case 10:case 0:{a[g>>0]=0;g=i+1|0;k=(c[1399]|0)+g|0;l=c[1401]|0;m=l+1|0;c[1401]=m;c[(c[1400]|0)+(l<<2)>>2]=k;n=g;o=m;break}default:{n=i+1|0;o=h}}if((n|0)<(b|0)){h=o;i=n}else{p=o;break a}}}else p=j;while(0);c[1401]=p+-1;d=c[1399]|0;return d|0}function ae(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;do if(!e){f=c[(c[30]|0)+(b<<2)>>2]|0;if(!f){g=c[29]|0;h=(c[g+(b+1<<2)>>2]&33554431)-(c[g+(b<<2)>>2]&33554431)<<4;g=Bg(h,0)|0;c[(c[30]|0)+(b<<2)>>2]=g;i=g;j=c[(c[29]|0)+(b<<2)>>2]|0;k=h;break}else{l=f;return l|0}}else{f=c[29]|0;h=c[f+(b<<2)>>2]|0;i=e;j=h;k=(c[f+(b+1<<2)>>2]&33554431)-(h&33554431)<<4}while(0);Mn(c[28]|0,j<<4&536870896,0)|0;Jn(i,1,k,c[28]|0)|0;if((c[(c[29]|0)+(b<<2)>>2]&1040187392|0)!=33554432){l=i;return l|0}if((a[i>>0]|0)==2){k=b&65535;j=c[33]|0;e=j+(k<<3)|0;h=j+(k<<3)+2|0;k=to((_(((d[e>>0]|d[e+1>>0]<<8)&65535)<<1,(d[h>>0]|d[h+1>>0]<<8)&65535)|0)+8|0)|0;c[k>>2]=c[i+4>>2];c[k+4>>2]=c[i+8>>2];oe(i+16|0,k+8|0,(d[e>>0]|d[e+1>>0]<<8)&65535,(d[h>>0]|d[h+1>>0]<<8)&65535)|0;c[(c[30]|0)+(b<<2)>>2]=k;c[c[(c[30]|0)+(b<<2)>>2]>>2]=1}else{k=te(i,0)|0;c[(c[30]|0)+(b<<2)>>2]=k}Cg(i);l=c[(c[30]|0)+(b<<2)>>2]|0;return l|0}function be(a){a=a|0;var b=0;b=c[(c[30]|0)+(a<<2)>>2]|0;if(!b)return;Cg(b);c[(c[30]|0)+(a<<2)>>2]=0;return}function ce(a){a=a|0;return c[(c[1400]|0)+((a&65535)<<2)>>2]|0}function de(){var d=0,e=0,f=0;d=c[4]|0;e=d>>>1&32767;f=d>>>17;d=a[5740]|0;c[1437]=e;c[1438]=f;c[1443]=e;c[1444]=f;b[2884]=0;b[2885]=0;b[2896]=0;a[5740]=d&-128|32;g[1445]=0.0;g[1446]=0.0;g[1447]=0.0;c[1449]=0;a[5744]=a[5744]&-4;d=a[5672]|0;c[1420]=e;c[1421]=f;c[1426]=e;c[1427]=f;b[2850]=0;b[2851]=0;b[2862]=0;a[5672]=d&-128|32;g[1428]=0.0;g[1429]=0.0;g[1430]=0.0;c[1432]=0;a[5676]=a[5676]&-4;d=5608;f=5672;e=d+64|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(e|0));c[1434]=0;a[5804]=a[5804]&-16|8;c[1452]=c[1451];a[204]=0;a[205]=0;c[52]=0;return}function ee(){var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;mg();if((c[1434]|0)==2)a[5740]=a[5740]&-2;c[1434]=0;d=a[5804]|15;a[5804]=d;e=a[5808]&-16;a[5808]=e;f=c[23]|0;h=a[5672]|0;if(!(a[5608]&16))i=h;else{j=h|16;a[5672]=j;i=j}j=a[5740]|0;h=j&64;k=i&-73|h;a[5672]=k;if(!(h<<24>>24)){h=k&-16;a[5672]=h;l=h;m=d;n=0}else{c[1419]=c[1436];if((i&16)!=0&(j&1)==0){i=k&-25;a[5672]=i;o=i}else o=k;if(!(o&16)){k=o&1;i=((j^1)&k)<<1&255|o&-7|(j&(k^1))<<2&255;a[5672]=i;p=i&-2|j&1}else p=o&-8;a[5672]=p;if(((p&2)!=0?(c[1423]=0,(c[1422]|0)<501):0)?(o=(c[1420]|0)-(c[1426]|0)|0,i=(c[1421]|0)-(c[1427]|0)|0,((_(i,i)|0)+(_(o,o)|0)|0)<144):0){o=p|8;a[5672]=o;q=o}else q=p;if(!(q&1))c[1423]=(c[1423]|0)+f;else c[1422]=(c[1422]|0)+f;f=c[1437]|0;p=c[1438]|0;if(!(q&4)){b[2848]=f-(c[1420]|0);b[2849]=p-(c[1421]|0);o=c[1426]|0;i=c[1427]|0;r=p-i&65535;s=f-o&65535;t=o;u=i;v=q}else{c[1426]=f;c[1427]=p;i=q|32;a[5672]=i;c[1422]=0;r=0;s=0;t=f;u=p;v=i}b[2850]=s;b[2851]=r;c[1420]=f;c[1421]=p;r=f-t|0;t=p-u|0;if(!(v&32))w=0;else w=(((_(t,t)|0)+(_(r,r)|0)|0)<10&1)<<5&255;r=v&-33|w;a[5672]=r;c[1428]=c[1445];c[1429]=c[1446];c[1430]=c[1447];w=5608;t=5672;u=w+64|0;do{c[w>>2]=c[t>>2];w=w+4|0;t=t+4|0}while((w|0)<(u|0));t=r<<1&255;w=(r&255)>>>1;u=(r&255)>>>2;p=(t|-16)&d&-12|v&1|w&2|u&8;a[5804]=p;a[5808]=t&4|e|v&1|w&2|u&8;a[5740]=j&-7;l=r;m=p;n=1}a[5608]=a[5608]&-17;p=b[2830]|0;if((n|0)==1&p<<16>>16!=0){Nd(p,+(c[1404]|0),+(c[1405]|0),-1,+g[1413],1.0,1.0,0)|0;return}if(!n){a[5804]=m&-16;return}if(!(l&64))return;l=b[2862]|0;if(!(l<<16>>16))return;Nd((l&65535)+1&65535,+(c[1420]|0),+(c[1421]|0),-1,+g[1429],1.0,1.0,0)|0;return}function fe(b){b=b|0;var d=0,e=0,f=0;d=c[8]|0;e=a[5672]|0;if(!(e&64)){f=0;return f|0}if((e&15&b|0)!=(b|0)){f=0;return f|0}b=c[1420]|0;if((b|0)<0){f=0;return f|0}e=c[1421]|0;if(!(+(e|0)<=+(d>>>16&65535)&(+(b|0)<=+(d&65535)&(e|0)>-1))){f=0;return f|0}c[52]=5672;f=5672;return f|0}function ge(b,e,f,g,h,i){b=b|0;e=+e;f=+f;g=g|0;h=+h;i=+i;var j=0,k=0,l=0.0,m=0,n=0,o=0.0;j=b&65535;b=c[33]|0;k=b+(j<<3)+4|0;l=e-+((d[k>>0]|d[k+1>>0]<<8)<<16>>16)-h;k=b+(j<<3)+6|0;e=f-+((d[k>>0]|d[k+1>>0]<<8)<<16>>16)-i;k=b+(j<<3)|0;m=b+(j<<3)+2|0;j=a[5672]|0;if(!(j&64)){n=0;return n|0}if((j&15&g|0)!=(g|0)){n=0;return n|0}f=+(c[1420]|0);if(!(f>=l)){n=0;return n|0}o=+(c[1421]|0);if(!(o<=i*2.0+(e+ +((d[m>>0]|d[m+1>>0]<<8)&65535|0))&(o>=e?f<=h*2.0+(l+ +((d[k>>0]|d[k+1>>0]<<8)&65535|0)):0))){n=0;return n|0}c[52]=5672;n=5672;return n|0}function he(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=a+32|0;d=a;e=c[a>>2]|0;a:while(1){a=d+64|0;f=c[a>>2]|0;g=d+128|0;h=c[g>>2]|0;i=d+192|0;j=c[i>>2]|0;k=j+f|0;l=((f-j|0)*362>>8)-k|0;j=l+(e-h)|0;f=h+e+k|0;h=f-(k<<1)|0;k=j-(l<<1)|0;l=d+32|0;m=c[l>>2]|0;n=d+96|0;o=c[n>>2]|0;p=d+160|0;q=c[p>>2]|0;r=d+224|0;s=c[r>>2]|0;t=m-s|0;u=q+o|0;v=s+m|0;m=v+u|0;s=q-o|0;o=(t+s|0)*473>>8;q=((_(s,-668)|0)>>8)-m+o|0;s=((v-u|0)*362>>8)-q|0;u=s+((t*277>>8)-o)|0;c[d>>2]=m+f;c[l>>2]=q+j;c[a>>2]=s+k;c[n>>2]=h-u;c[g>>2]=u+h;c[p>>2]=k-s;c[i>>2]=j-q;c[r>>2]=f-m;m=d;while(1){f=m+4|0;if(f>>>0>=b>>>0)break a;r=c[f>>2]|0;if(r){d=f;e=r;continue a}if(c[m+36>>2]|0){d=f;e=0;continue a}if(c[m+68>>2]|0){d=f;e=0;continue a}if(c[m+100>>2]|0){d=f;e=0;continue a}if(c[m+132>>2]|0){d=f;e=0;continue a}if(c[m+164>>2]|0){d=f;e=0;continue a}if(c[m+196>>2]|0){d=f;e=0;continue a}if(!(c[m+228>>2]|0))m=f;else{d=f;e=0;continue a}}}return}function ie(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=d;d=b;b=0;while(1){g=c[d>>2]|0;h=c[d+16>>2]|0;i=h+g|0;j=g-h|0;h=c[d+8>>2]|0;g=c[d+24>>2]|0;k=g+h|0;l=((h-g|0)*362>>8)-k|0;g=k+i|0;h=i-k|0;k=l+j|0;i=j-l|0;l=c[d+20>>2]|0;j=c[d+12>>2]|0;m=j+l|0;n=l-j|0;j=c[d+4>>2]|0;l=c[d+28>>2]|0;o=l+j|0;p=j-l|0;l=o+m|0;j=(p+n|0)*473>>8;q=((_(n,-668)|0)>>8)-l+j|0;n=((o-m|0)*362>>8)-q|0;m=n+((p*277>>8)-j)|0;a[f>>0]=(l+g|0)>>>12;a[f+1>>0]=(q+k|0)>>>12;a[f+2>>0]=(n+i|0)>>>12;a[f+3>>0]=(h-m|0)>>>12;a[f+4>>0]=(m+h|0)>>>12;a[f+5>>0]=(i-n|0)>>>12;a[f+6>>0]=(k-q|0)>>>12;a[f+7>>0]=(g-l|0)>>>12;b=b+1|0;if((b|0)==8)break;else{f=f+e|0;d=d+32|0}}return}function je(b,e,f,g,h,i,j,k,l){b=b|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,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;m=c[j>>2]|0;n=c[k>>2]|0;o=c[i>>2]|0;p=e+256|0;do{p=p+-4|0;c[p>>2]=0}while(p>>>0>e>>>0);if(m>>>0<25){p=m+(24-m&-8)|0;q=n;r=m;s=o;while(1){t=a[s>>0]|0;u=t&255|q<<8;v=t<<24>>24==-1?s+2|0:s+1|0;r=r+8|0;if(r>>>0>=25){w=v;x=u;break}else{q=u;s=v}}y=x;z=p+8|0;A=w}else{y=n;z=m;A=o}o=z+-8|0;m=y>>>o&255;n=a[g+132+m>>0]|0;if(!(n<<24>>24)){w=o;o=7;p=m;while(1){x=w+-1|0;s=y>>>x&1|p<<1;q=o+1|0;if((s|0)>(c[g+4+(q<<2)>>2]|0)){w=x;o=q;p=s}else{B=x;C=s;D=q;break}}E=(c[g+68+(D<<2)>>2]|0)+C|0;F=B}else{E=g+388+m|0;F=z-(n&255)|0}n=d[E>>0]|0;E=F-n|0;F=y>>>E&(1<<n)+-1;if(F>>>0<1<<n+-1>>>0)G=(-1<<n)+1+F|0;else G=F;F=(c[b>>2]|0)+G|0;c[b>>2]=F;b=_(F,c[f>>2]|0)|0;c[e+((d[l>>0]|0)<<2)>>2]=b;b=y;y=E;E=A;A=1;a:while(1){if(y>>>0<25){H=y;I=A}else{F=y;G=A;while(1){n=F+-8|0;z=b>>>n&255;m=a[h+132+z>>0]|0;if(!(m<<24>>24)){g=n;n=7;B=z;while(1){C=g+-1|0;D=b>>>C&1|B<<1;p=n+1|0;if((D|0)>(c[h+4+(p<<2)>>2]|0)){g=C;n=p;B=D}else{J=C;K=D;L=p;break}}M=(c[h+68+(L<<2)>>2]|0)+K|0;N=J}else{M=h+388+z|0;N=F-(m&255)|0}B=d[M>>0]|0;n=B>>>4;g=B&15;if(!g){if((n|0)!=15){O=b;P=N;Q=E;R=28;break a}S=N;T=G+16|0}else{B=n+G|0;n=N-g|0;p=b>>>n&(1<<g)+-1;if(p>>>0<1<<g+-1>>>0)U=(-1<<g)+1+p|0;else U=p;p=_(c[f+(B<<2)>>2]|0,U)|0;c[e+((d[l+B>>0]|0)<<2)>>2]=p;if((B|0)>62){O=b;P=n;Q=E;R=28;break a}S=n;T=B+1|0}if(S>>>0<25){H=S;I=T;break}else{F=S;G=T}}}G=a[E>>0]|0;b=G&255|b<<8;y=H+8|0;E=G<<24>>24==-1?E+2|0:E+1|0;A=I}if((R|0)==28){c[k>>2]=O;c[j>>2]=P;c[i>>2]=Q;return}}function ke(e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;if(p<<24>>24){p=f;t=g;u=e;v=0;while(1){w=_(v,r)|0;x=q+(w+16<<1)|0;if((w|0)<2147483632){y=p+8|0;z=p;A=u;B=t;C=q+(w<<1)|0;while(1){w=a[z>>0]|0;D=a[B>>0]|0;E=(a[A>>0]|0)+63|0;F=D*359>>8;G=w*88>>8;H=D*183>>8;D=w*454>>8;b[C>>1]=d[(c[1456]|0)+(E-G-H>>1)>>0]<<5|d[s+((E+F>>2)+32)>>0]<<11|d[s+((E+D>>2)+32)>>0];E=(a[A+1>>0]|0)+63|0;w=H+G|0;b[C+2>>1]=d[(c[1456]|0)+(E-w>>1)>>0]<<5|d[s+((E+F>>2)+32)>>0]<<11|d[s+((E+D>>2)+32)>>0];E=(a[A+16>>0]|0)+63|0;b[C+512>>1]=d[(c[1456]|0)+(E-w>>1)>>0]<<5|d[s+((E+F>>2)+32)>>0]<<11|d[s+((E+D>>2)+32)>>0];E=(a[A+17>>0]|0)+63|0;b[C+514>>1]=d[(c[1456]|0)+(E-w>>1)>>0]<<5|d[s+((E+F>>2)+32)>>0]<<11|d[s+((E+D>>2)+32)>>0];C=C+4|0;if(C>>>0>=x>>>0)break;else{z=z+1|0;A=A+2|0;B=B+1|0}}I=u+16|0;J=y;K=t+8|0}else{I=u;J=p;K=t}v=v+2|0;if((v|0)>=16)break;else{p=J;t=K;u=I+16|0}}return}if((o|0)<=0)return;I=(_(n,h)|0)>>8;u=(_(n,j)|0)>>8;K=(_(n,l)|0)>>8;if((n|0)>0)L=0;else return;do{t=_((_(L,i)|0)>>8,I)|0;J=_((_(L,k)|0)>>8,u)|0;p=_((_(L,m)|0)>>8,K)|0;v=0;B=q+((_(L,r)|0)<<1)|0;while(1){A=a[e+(((_(v,h)|0)>>8)+t)>>0]|0;z=a[f+(((_(v,j)|0)>>8)+J)>>0]|0;x=a[g+(((_(v,l)|0)>>8)+p)>>0]|0;C=A+63|0;b[B>>1]=d[(c[1456]|0)+(C-(z*88>>8)-(x*183>>8)>>1)>>0]<<5|d[s+(((x*359>>8)+C>>2)+32)>>0]<<11|d[s+(((z*454>>8)+C>>2)+32)>>0];v=v+1|0;if((v|0)==(n|0))break;else B=B+2|0}L=L+1|0}while((L|0)!=(o|0));return}function le(b,e){b=b|0;e=e|0;var f=0,g=0,h=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=i;i=i+1280|0;g=f;h=f+1024|0;j=c[e>>2]|0;k=(d[j+15>>0]|0)+((d[j+14>>0]|0)+((d[j+13>>0]|0)+((d[j+12>>0]|0)+((d[j+11>>0]|0)+((d[j+10>>0]|0)+((d[j+9>>0]|0)+((d[j+8>>0]|0)+((d[j+7>>0]|0)+((d[j+6>>0]|0)+((d[j+5>>0]|0)+((d[j+4>>0]|0)+((d[j+3>>0]|0)+((d[j+2>>0]|0)+((d[j+1>>0]|0)+(d[j>>0]|0)))))))))))))))|0;c[b>>2]=j+16;l=1;m=1;n=0;a:while(1){o=l;p=m;while(1){if((p|0)<=(d[j+(o+-1)>>0]|0)){q=o;r=p;break}o=o+1|0;if((o|0)>=17){s=n;break a}else p=1}a[h+n>>0]=q;l=q;m=r+1|0;n=n+1|0}n=j+(k+16)|0;a[h+s>>0]=0;s=0;k=0;r=d[h>>0]|0;b:while(1){m=s;q=k;while(1){l=m+1|0;p=q+1|0;c[g+(q<<2)>>2]=m;o=a[h+p>>0]|0;t=o&255;if((t|0)==(r|0)){m=l;q=p}else{u=l;v=p;w=o;x=t;break}}if(!(w<<24>>24)){y=0;z=0;break}else{A=u;B=r}while(1){q=A<<1;m=B+1|0;if((x|0)==(m|0)){s=q;k=v;r=x;continue b}else{A=q;B=m}}}while(1){B=j+y|0;if(!(a[B>>0]|0)){C=-1;D=z}else{c[b+68+(y<<2)>>2]=(c[b>>2]|0)+(z-(c[g+(z<<2)>>2]|0));A=(d[B>>0]|0)+z|0;C=c[g+(A+-1<<2)>>2]|0;D=A}c[b+4+(y<<2)>>2]=C;y=y+1|0;if((y|0)==16)break;else z=D}Eo(b+132|0,0,256)|0;D=1;z=0;while(1){y=j+(D+-1)|0;if(!(a[y>>0]|0))E=z;else{C=8-D|0;A=1<<C;B=D&255;x=1;r=z;while(1){v=A;k=c[g+(r<<2)>>2]<<C;while(1){a[b+132+k>>0]=B;a[b+388+k>>0]=a[(c[b>>2]|0)+r>>0]|0;if((v|0)>1){v=v+-1|0;k=k+1|0}else break}k=r+1|0;if((x|0)<(d[y>>0]|0)){x=x+1|0;r=k}else{E=k;break}}}D=D+1|0;if((D|0)==9)break;else z=E}c[e>>2]=n;i=f;return 1}function me(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0;l=i;i=i+3536|0;m=l+2872|0;n=l+2856|0;o=l+1560|0;p=l+2888|0;q=l+1568|0;r=l+272|0;s=l+12|0;t=l+8|0;u=l+4|0;v=l;w=l+16|0;x=c[f+1092>>2]|0;y=f+1074+(x<<2)|0;c[o>>2]=c[g>>2];z=f+1056|0;A=c[z>>2]|0;c[s>>2]=0;c[t>>2]=0;a:do if((x|0)>0){B=q+644|0;C=r+644|0;D=1;E=1;F=1;G=1;H=0;I=0;J=-1;K=-1;L=-1;M=-1;N=0;O=f+1074|0;P=0;while(1){Q=a[O>>0]|0;R=0;while(1)if((a[f+1096+(R*3|0)>>0]|0)==Q<<24>>24){S=R;break}else R=R+1|0;R=d[f+1096+(S*3|0)+1>>0]|0;do if(!((R|0)==(L|0)|(R|0)==(M|0))){c[u>>2]=c[f+16+(R<<2)>>2];if((L|0)==-1){le(r,u)|0;T=R;U=M;break}if((M|0)==-1){le(C,u)|0;T=L;U=R}else{T=L;U=M}}else{T=L;U=M}while(0);R=d[f+1096+(S*3|0)+2>>0]|0;do if(!((R|0)==(J|0)|(R|0)==(K|0))){c[v>>2]=c[f+(R<<2)>>2];if((J|0)==-1){le(q,v)|0;V=R;W=K;break}if((K|0)==-1){le(B,v)|0;V=J;W=R}else{V=J;W=K}}else{V=J;W=K}while(0);c[m+(S<<2)>>2]=O;R=d[O+1>>0]|0;Q=(R|0)>(N|0)?R:N;X=d[O+2>>0]|0;Y=(X|0)>(P|0)?X:P;switch(a[O>>0]|0){case 1:{Z=D;$=E;aa=F;ba=G;ca=R;da=X;break}case 2:{Z=R;$=X;aa=F;ba=G;ca=H;da=I;break}case 3:{Z=D;$=E;aa=R;ba=X;ca=H;da=I;break}default:{Z=D;$=E;aa=F;ba=G;ca=H;da=I}}O=O+4|0;if(O>>>0>=y>>>0){ea=Q;fa=Z;ga=$;ha=aa;ia=ba;ja=ca;ka=da;la=W;ma=U;na=Y;break}else{D=Z;E=$;F=aa;G=ba;H=ca;I=da;J=V;K=W;L=T;M=U;N=Q;P=Y}}P=_(ka<<6,ja)|0;N=p+P|0;M=P+(_(ga<<6,fa)|0)|0;L=p+M|0;switch(ea|0){case 1:{oa=M;pa=P;qa=N;ra=L;sa=fa;ta=ga;ua=ha;va=ia;wa=ja;xa=ka;ya=la;za=ma;Aa=1;Ba=8;Ca=na;break a;break}case 2:break;default:{Da=M;Ea=L;Fa=N;Ga=P;Ha=fa;Ia=ga;Ja=ha;Ka=ia;La=ja;Ma=ka;Na=la;Oa=ma;Pa=ea;Qa=na;Ra=23;break a}}oa=M;pa=P;qa=N;ra=L;sa=fa;ta=ga;ua=ha;va=ia;wa=ja;xa=ka;ya=la;za=ma;Aa=2;Ba=7;Ca=na}else{Da=64;Ea=p+64|0;Fa=p;Ga=0;Ha=1;Ia=1;Ja=1;Ka=1;La=0;Ma=0;Na=-1;Oa=-1;Pa=0;Qa=0;Ra=23}while(0);if((Ra|0)==23){oa=Da;pa=Ga;qa=Fa;ra=Ea;sa=Ha;ta=Ia;ua=Ja;va=Ka;wa=La;xa=Ma;ya=Na;za=Oa;Aa=Pa;Ba=(Pa|0)==4?6:0;Ca=Qa}switch(Ca|0){case 1:{Sa=8;break}case 2:{Sa=7;break}default:Sa=(Ca|0)==4?6:0}Qa=wa<<Ba;wa=sa<<Ba;sa=ua<<Ba;Ba=p+(pa+64)|0;do{Ba=Ba+-1|0;a[Ba>>0]=0}while(Ba>>>0>qa>>>0);Ba=xa<<Sa;xa=ta<<Sa;ta=va<<Sa;Sa=p+(oa+64)|0;do{Sa=Sa+-1|0;a[Sa>>0]=0}while(Sa>>>0>ra>>>0);c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;Sa=(ta|0)==128&((sa|0)==128&((xa|0)==128&((wa|0)==128&((Qa|0)==256&(Ba|0)==256))))&1;oa=f+1070|0;b:do if(!(b[oa>>1]|0))Ra=62;else{va=f+1072|0;pa=Ca<<3;ua=f+1108|0;Pa=Aa<<3;Oa=b[va>>1]|0;Na=0;Ma=A;while(1){c:do if(!(Oa<<16>>16)){Ta=0;Ua=Ma;Ra=60}else{La=Na+pa|0;Ka=(La|0)>(k|0);Ja=_(Na,j)|0;Ia=0;Ha=Ma;while(1){Ea=Ia;while(1){Fa=c[ua>>2]|0;d:do if((Fa|0)>0){Ga=Fa;Da=0;while(1){na=c[m+(Da<<2)>>2]|0;ma=f+32+(d[na+3>>0]<<8)|0;la=na+1|0;ka=a[la>>0]|0;ja=(ka&255)<<3;ia=r+(((d[f+1096+(Da*3|0)+1>>0]|0)==(za|0)&1)*644|0)|0;ha=q+(((d[f+1096+(Da*3|0)+2>>0]|0)==(ya|0)&1)*644|0)|0;ga=a[na>>0]|0;switch(ga<<24>>24){case 1:{Va=p;break}case 2:{Va=qa;break}default:Va=ga<<24>>24==3?ra:0}ga=na+2|0;na=a[ga>>0]|0;if(!(na<<24>>24))Wa=Ga;else{fa=n+(Da<<2)|0;ea=(Va|0)==0;U=ka;ka=na;na=0;while(1){if(!(U<<24>>24)){Xa=ka;Ya=0}else{T=_(na,ja)|0;if(ea){W=0;do{je(fa,w,ma,ia,ha,o,s,t,234936);W=W+8|0;V=a[la>>0]|0}while((W|0)<((V&255)<<3|0));Za=V}else{W=0;do{je(fa,w,ma,ia,ha,o,s,t,234936);he(w);ie(w,Va+(W+T)|0,ja);W=W+8|0;V=a[la>>0]|0}while((W|0)<((V&255)<<3|0));Za=V}Xa=a[ga>>0]|0;Ya=Za}na=na+8|0;if((na|0)>=((Xa&255)<<3|0))break;else{U=Ya;ka=Xa}}Wa=c[ua>>2]|0}Da=Da+1|0;if((Da|0)>=(Wa|0))break d;else Ga=Wa}}while(0);Fa=Ea;Ea=Ea+Pa|0;if(!((Ea|0)>(j|0)|Ka)?(ke(p,qa,ra,Qa,Ba,wa,xa,sa,ta,Pa,pa,Sa,h+(Fa+Ja<<1)|0,j,235e3),Fa=c[z>>2]|0,(Fa|0)!=0):0){_a=Ea;$a=Fa;break}Fa=b[va>>1]|0;if((Ea|0)>=(Fa&65535|0)){ab=La;bb=Fa;cb=Ha;break c}}Ea=Ha+-1|0;if(!Ea){Fa=(c[s>>2]|0)>>>3;Ga=c[o>>2]|0;if(!Fa)db=Ga;else{Da=Ga;Ga=Fa;while(1){Ga=Ga+-1|0;Fa=Da+-2|0;ka=(a[Fa>>0]|0)==-1?Fa:Da+-1|0;if(!Ga){eb=ka;break}else Da=ka}c[o>>2]=eb;db=eb}c[s>>2]=0;c[t>>2]=0;if((d[db>>0]<<8|d[db+1>>0]|0)==65497)break b;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[o>>2]=db+2;fb=$a}else fb=Ea;Da=b[va>>1]|0;if((_a|0)<(Da&65535|0)){Ia=_a;Ha=fb}else{Ta=Da;Ua=fb;Ra=60;break}}}while(0);if((Ra|0)==60){Ra=0;ab=Na+pa|0;bb=Ta;cb=Ua}if((ab|0)<(e[oa>>1]|0)){Oa=bb;Na=ab;Ma=cb}else{Ra=62;break}}}while(0);if((Ra|0)==62?(Ra=(c[s>>2]|0)>>>3,(Ra|0)!=0):0){s=c[o>>2]|0;cb=Ra;while(1){cb=cb+-1|0;Ra=s+-2|0;ab=(a[Ra>>0]|0)==-1?Ra:s+-1|0;if(!cb){gb=ab;break}else s=ab}c[o>>2]=gb;hb=gb;ib=hb+2|0;c[g>>2]=ib;i=l;return 1}hb=c[o>>2]|0;ib=hb+2|0;c[g>>2]=ib;i=l;return 1}function ne(e,f){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,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;g=c[f>>2]|0;h=e+1056|0;c[h>>2]=0;i=e+1060|0;j=e+1064|0;k=e+1068|0;l=e+1069|0;m=e+1070|0;n=e+1072|0;o=e+1092|0;p=g+2|0;a:while(1){g=p+2|0;switch((d[p>>0]|0)<<8|(d[p+1>>0]|0)|0){case 65498:{q=p;break a;break}case 65534:case 65519:case 65518:case 65517:case 65516:case 65515:case 65514:case 65513:case 65512:case 65511:case 65510:case 65509:case 65508:case 65507:case 65506:case 65505:case 65504:{p=p+(((d[g>>0]|0)<<8|(d[p+3>>0]|0))+2)|0;continue a;break}case 65476:{r=((d[g>>0]|0)<<8|(d[p+3>>0]|0))+2|0;s=p+r|0;t=p+4|0;if(r>>>0>4)u=t;else{p=t;continue a}while(1){t=u+1|0;r=a[u>>0]|0;v=r&15;if((r&255)<16)c[e+16+(v<<2)>>2]=t;else c[e+(v<<2)>>2]=t;v=u+((d[t>>0]|0)+17+(d[u+2>>0]|0)+(d[u+3>>0]|0)+(d[u+4>>0]|0)+(d[u+5>>0]|0)+(d[u+6>>0]|0)+(d[u+7>>0]|0)+(d[u+8>>0]|0)+(d[u+9>>0]|0)+(d[u+10>>0]|0)+(d[u+11>>0]|0)+(d[u+12>>0]|0)+(d[u+13>>0]|0)+(d[u+14>>0]|0)+(d[u+15>>0]|0)+(d[u+16>>0]|0))|0;if(v>>>0<s>>>0)u=v;else{p=v;continue a}}break}case 65499:{s=((d[g>>0]|0)<<8|(d[p+3>>0]|0))+2|0;v=p+s|0;t=p+4|0;if(s>>>0>4)w=t;else{p=t;continue a}while(1){t=(d[w>>0]|0)&15;s=w;r=0;do{s=s+1|0;c[e+32+(t<<8)+(r<<2)>>2]=(d[s>>0]|0)<<8;r=r+1|0}while((r|0)!=64);x=0;do{r=x<<3;s=e+32+(t<<8)+(r<<2)|0;c[s>>2]=(_(c[5828+((d[234936+r>>0]|0)<<2)>>2]|0,c[s>>2]|0)|0)>>8;s=r|1;y=e+32+(t<<8)+(s<<2)|0;c[y>>2]=(_(c[5828+((d[234936+s>>0]|0)<<2)>>2]|0,c[y>>2]|0)|0)>>8;y=r|2;s=e+32+(t<<8)+(y<<2)|0;c[s>>2]=(_(c[5828+((d[234936+y>>0]|0)<<2)>>2]|0,c[s>>2]|0)|0)>>8;s=r|3;y=e+32+(t<<8)+(s<<2)|0;c[y>>2]=(_(c[5828+((d[234936+s>>0]|0)<<2)>>2]|0,c[y>>2]|0)|0)>>8;y=r|4;s=e+32+(t<<8)+(y<<2)|0;c[s>>2]=(_(c[5828+((d[234936+y>>0]|0)<<2)>>2]|0,c[s>>2]|0)|0)>>8;s=r|5;y=e+32+(t<<8)+(s<<2)|0;c[y>>2]=(_(c[5828+((d[234936+s>>0]|0)<<2)>>2]|0,c[y>>2]|0)|0)>>8;y=r|6;s=e+32+(t<<8)+(y<<2)|0;c[s>>2]=(_(c[5828+((d[234936+y>>0]|0)<<2)>>2]|0,c[s>>2]|0)|0)>>8;s=r|7;r=e+32+(t<<8)+(s<<2)|0;c[r>>2]=(_(c[5828+((d[234936+s>>0]|0)<<2)>>2]|0,c[r>>2]|0)|0)>>8;x=x+1|0}while((x|0)!=8);t=w+65|0;if(t>>>0<v>>>0)w=t;else{p=t;continue a}}break}case 65501:{c[h>>2]=(d[p+4>>0]|0)<<8|(d[p+5>>0]|0);p=p+6|0;continue a;break}case 65472:{c[i>>2]=65472;c[j>>2]=0;a[k>>0]=1;a[l>>0]=a[p+4>>0]|0;b[m>>1]=(d[p+5>>0]|0)<<8|(d[p+6>>0]|0);b[n>>1]=(d[p+7>>0]|0)<<8|(d[p+8>>0]|0);v=p+10|0;t=a[p+9>>0]|0;c[o>>2]=t&255;if(!(t<<24>>24)){p=v;continue a}else{z=v;A=0}while(1){a[e+1074+(A<<2)>>0]=a[z>>0]|0;v=a[z+1>>0]|0;a[e+1074+(A<<2)+1>>0]=(v&255)>>>4;a[e+1074+(A<<2)+2>>0]=v&15;v=z+3|0;a[e+1074+(A<<2)+3>>0]=a[z+2>>0]|0;t=A+1|0;if((t|0)<(c[o>>2]|0)){z=v;A=t}else{p=v;continue a}}break}default:{p=g;continue a}}}p=e+1096|0;A=q+5|0;z=a[q+4>>0]|0;o=z&255;c[e+1108>>2]=o;n=e+1096+(o*3|0)|0;o=q+6|0;m=a[A>>0]|0;if(!(z<<24>>24)){B=o;C=m;D=7;E=8;F=e+1112|0;a[F>>0]=C;G=q+D|0;H=a[B>>0]|0;I=e+1113|0;a[I>>0]=H;J=q+E|0;K=a[G>>0]|0;L=K&255;M=(K&255)>>>4;N=e+1114|0;a[N>>0]=M;O=L&15;P=O&255;Q=e+1115|0;a[Q>>0]=P;R=J;c[f>>2]=R;return 1}z=n;l=e+1099|0;k=(((z>>>0>l>>>0?z:l)+~p|0)>>>0)/3|0;l=m;m=o;o=p;p=A;while(1){a[o>>0]=l;A=p+2|0;z=a[m>>0]|0;a[o+1>>0]=(z&255)>>>4;a[o+2>>0]=z&15;o=o+3|0;z=a[A>>0]|0;if(o>>>0>=n>>>0){S=z;break}else{l=z;m=p+3|0;p=A}}p=k<<1;B=q+(p+8)|0;C=S;D=p+9|0;E=p+10|0;F=e+1112|0;a[F>>0]=C;G=q+D|0;H=a[B>>0]|0;I=e+1113|0;a[I>>0]=H;J=q+E|0;K=a[G>>0]|0;L=K&255;M=(K&255)>>>4;N=e+1114|0;a[N>>0]=M;O=L&15;P=O&255;Q=e+1115|0;a[Q>>0]=P;R=J;c[f>>2]=R;return 1}function oe(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+1152|0;h=g+8|0;j=g;k=g+24|0;l=g+28|0;c[k>>2]=a;c[j>>2]=a;c[j+4>>2]=b;Pn(235096,j)|0;j=d[a+1>>0]|0;m=d[a+2>>0]|0;n=d[a+3>>0]|0;c[h>>2]=d[a>>0];c[h+4>>2]=j;c[h+8>>2]=m;c[h+12>>2]=n;Pn(235127,h)|0;ne(l,k)|0;me(l,k,b,e,f)|0;i=g;return 1}function pe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=c[b>>2]|0;g=(f|0)==0;if(!(e<<24>>24)){if(!g){h=b+4|0;i=b+28|0;j=b+8|0;k=b+20|0;l=b+16|0;m=f;do{n=m+4|0;o=m;m=c[n>>2]|0;p=c[o>>2]|0;q=(m|0)==0;if(q)c[h>>2]=p;else c[m>>2]=p;if(!p)c[b>>2]=m;else c[p+4>>2]=m;if(!(a[i>>0]&3)){p=c[j>>2]|0;c[n>>2]=p;c[j>>2]=o;if(p)c[p>>2]=o;c[k>>2]=(c[k>>2]|0)+1}else Cg(o);c[l>>2]=(c[l>>2]|0)+-1}while(!q)}}else{if(!g){g=f;do{f=g;g=c[g+4>>2]|0;Cg(f)}while((g|0)!=0)}g=b+8|0;f=c[g>>2]|0;if(f){l=f;do{f=l;l=c[l+4>>2]|0;Cg(f)}while((l|0)!=0)}c[b>>2]=0;c[g>>2]=0;c[b+4>>2]=0;c[b+20>>2]=0}c[b+16>>2]=0;c[b+24>>2]=d;d=b+28|0;g=a[d>>0]&-12|e&3;c[b+12>>2]=0;a[d>>0]=g|8;return}function qe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=d+4|0;f=c[e>>2]|0;g=c[d>>2]|0;if(!f)c[b+4>>2]=g;else c[f>>2]=g;if(!g)c[b>>2]=f;else c[g+4>>2]=f;if(a[b+28>>0]&3){Cg(d);h=b+16|0;i=c[h>>2]|0;j=i+-1|0;c[h>>2]=j;return}f=b+8|0;g=c[f>>2]|0;c[e>>2]=g;c[f>>2]=d;if(g)c[g>>2]=d;d=b+20|0;c[d>>2]=(c[d>>2]|0)+1;h=b+16|0;i=c[h>>2]|0;j=i+-1|0;c[h>>2]=j;return}function re(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+24|0;e=Bg(_(c[d>>2]|0,b)|0,0)|0;if((b|0)<=0)return;f=c[d>>2]|0;d=a+8|0;g=a+20|0;a=c[g>>2]|0;h=c[d>>2]|0;i=e;e=0;while(1){c[i+4>>2]=h;if(h)c[h>>2]=i;e=e+1|0;if((e|0)==(b|0)){j=i;break}else{k=i;i=i+f|0;h=k}}c[d>>2]=j;c[g>>2]=a+b;return}function se(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=c[b>>2]|0;f=b+8|0;g=c[f>>2]|0;if(!g){h=Bg(c[b+24>>2]|0,0)|0;i=b+28|0;a[i>>0]=a[i>>0]|4;j=h}else{c[f>>2]=c[g+4>>2];f=b+20|0;c[f>>2]=(c[f>>2]|0)+-1;f=b+28|0;a[f>>0]=a[f>>0]&-5;j=g}g=c[b+12>>2]|0;if(g)Co(j|0,g|0,c[b+24>>2]|0)|0;g=j+4|0;if(!d){c[g>>2]=e;c[j>>2]=0;if(e)c[e>>2]=j;c[b>>2]=j;k=b+16|0;l=c[k>>2]|0;m=l+1|0;c[k>>2]=m;return j|0}c[g>>2]=0;g=b+4|0;e=c[g>>2]|0;c[j>>2]=e;if(e)c[e+4>>2]=j;c[g>>2]=j;if(c[b>>2]|0){k=b+16|0;l=c[k>>2]|0;m=l+1|0;c[k>>2]=m;return j|0}c[b>>2]=j;k=b+16|0;l=c[k>>2]|0;m=l+1|0;c[k>>2]=m;return j|0}function te(b,e){b=b|0;e=e|0;var f=0,g=0,h=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,I=0,J=0,K=0,L=0;f=i;i=i+16|0;g=f;a[235337]=8;h=b+1|0;c[1521]=h;if((a[b>>0]|0)!=1){Qn(235338)|0;j=0;do{c[g>>2]=d[b+(j+-1)>>0];Pn(235357,g)|0;j=j+1|0}while((j|0)!=32);Ag()}j=h+1|0;c[1521]=j;g=d[h>>0]|0;b=h+2|0;c[1521]=b;k=d[j>>0]<<8|g;g=h+3|0;c[1521]=g;j=d[b>>0]<<16|k;k=h+4|0;c[1521]=k;b=d[g>>0]<<24|j;c[1521]=h+5;h=a[k>>0]|0;if(!e){l=Bg((b|0)>65536?b:65536,32)|0;m=1}else{l=e;m=0}e=l+b|0;if((b|0)>0){b=h<<24>>24==2;h=l;while(1){k=a[235337]|0;if((k&255)<8){n=c[1522]|0;o=k+1<<24>>24}else{k=c[1521]|0;c[1521]=k+1;c[1522]=k;n=k;o=1}a[235337]=o;if(!(1<<(o&255)+-1&d[n>>0])){k=c[1521]|0;c[1521]=k+1;a[h>>0]=a[k>>0]|0;p=h+1|0}else{if((o&255)<8){q=n;r=c[1521]|0;s=o+1<<24>>24}else{k=c[1521]|0;j=k+1|0;c[1521]=j;c[1522]=k;q=k;r=j;s=1}a[235337]=s;j=(1<<(s&255)+-1&d[q>>0]|0)!=0;k=r+1|0;c[1521]=k;g=d[r>>0]|0;do if(b){t=r+2|0;c[1521]=t;u=d[k>>0]|0;if(j){c[1521]=r+3;v=d[t>>0]<<8|u;w=g+4|0;break}else{v=(u<<8|g)>>>6;w=(g&63)+3|0;break}}else if(j){c[1521]=r+2;v=(d[k>>0]<<8|g)>>>6;w=(g&63)+3|0;break}else{v=g>>>3;w=(g&3)+2|0;break}while(0);g=h+(0-v)|0;do if((w|0)>4?(k=h,((g^k)&3|0)==0):0){if(k&3){k=g;j=h;while(1){u=k+1|0;t=j+1|0;a[j>>0]=a[k>>0]|0;if(!(t&3)){x=u;y=t;break}else{k=u;j=t}}if((w|0)>3){z=y;A=x}else{B=x;C=y;D=w;E=31;break}}else{z=h;A=g}j=w+-4|0;k=j&-4;t=k+4|0;u=z+t|0;F=w;G=z;H=A;while(1){c[G>>2]=c[H>>2];F=F+-4|0;if((F|0)<=3)break;else{G=G+4|0;H=H+4|0}}H=j-k|0;if((H|0)>0){B=A+t|0;C=u;D=H;E=31}}else{B=g;C=h;D=w;E=31}while(0);if((E|0)==31)while(1){E=0;a[C>>0]=a[B>>0]|0;if((D|0)>1){B=B+1|0;C=C+1|0;D=D+-1|0;E=31}else break}p=h+w|0}if(p>>>0<e>>>0)h=p;else{I=p;break}}}else I=l;if(I>>>0<=e>>>0){J=(m|0)!=0;K=c[1521]|0;L=J?l:K;i=f;return L|0}Qn(235361)|0;J=(m|0)!=0;K=c[1521]|0;L=J?l:K;i=f;return L|0}function ue(a,b){a=+a;b=+b;var c=0.0,d=0.0,e=0.0,f=0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0;c=a>0.0?a:-a;d=b>0.0?b:-b;do if(!(c<d*.001))if(!(d==0.0)){e=d/c;f=90;h=0;while(1){i=h+f>>1;j=+g[6092+(i<<2)>>2];if(e==j){k=i;l=5;break}m=e<j;n=m?h:i;o=m?i:f;if((n|0)<(o+-1|0)){f=o;h=n}else{p=o;q=n;break}}if((l|0)==5){r=+(k|0);break}j=+g[6092+(q<<2)>>2];if(e==j){r=+(q|0);break}s=+g[6092+(p<<2)>>2];if(e==s){r=+(p|0);break}else{r=+(q|0)+(e-j)/(s-j);break}}else r=0.0;else r=90.0;while(0);c=a<0.0?180.0-r:r;return +(b<0.0?360.0-c:c)}function ve(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,h=0,i=0;f=(b|0)>(c|0);g=f?c:b;h=f?b:c;c=f?e:d;b=f?d:e;if((g|0)>=(a|0)){i=c;return i|0}if((h|0)<=(a|0)){i=b;return i|0}i=((_(b-c|0,a-g|0)|0)/(h-g|0)|0)+c|0;return i|0}function we(a,b,c,d,e){a=+a;b=+b;c=+c;d=+d;e=+e;return +((e-d)*((1.0-+Q(+((a-b)/(c-b)*360.0*6.283/360.0)))*.5)+d)}function xe(a,b,c,d,e){a=+a;b=+b;c=+c;d=+d;e=+e;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0;if(b>c){f=d;g=e;h=b;i=c}else{f=e;g=d;h=c;i=b}if(i>=a){j=g;return +j}if(h<=a){j=f;return +j}j=g+(a-i)*(f-g)/(h-i);return +j}function ye(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=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;f=i;i=i+64|0;g=f;h=d>>>0>131072?131072:d;j=to(28)|0;k=to(h)|0;l=j+16|0;c[l>>2]=k;m=j+20|0;c[m>>2]=0;n=j+24|0;c[n>>2]=0;c[j>>2]=1732584193;c[j+4>>2]=-271733879;c[j+8>>2]=-1732584194;c[j+12>>2]=271733878;o=h>>>0>63;p=k;k=0;q=0;while(1){Co(p+k|0,b+q|0,h-k|0)|0;c[m>>2]=h;if(o){r=p;s=0;while(1){t=g;u=r;v=t+64|0;do{a[t>>0]=a[u>>0]|0;t=t+1|0;u=u+1|0}while((t|0)<(v|0));Be(g,j);c[n>>2]=(c[n>>2]|0)+64;u=s+64|0;t=c[m>>2]|0;v=t-u|0;w=c[l>>2]|0;x=w+u|0;if(v>>>0>63){r=x;s=u}else{y=v;z=x;A=t;B=w;C=u;break}}}else{y=h;z=p;A=h;B=p;C=0}Co(g|0,z|0,y|0)|0;Co(B|0,g|0,A-C|0)|0;s=(c[m>>2]|0)-C|0;c[m>>2]=s;r=c[n>>2]|0;if((d-r|0)>>>0<=64)break;p=c[l>>2]|0;k=s;q=r}ze(e,j);uo(c[l>>2]|0);uo(j);i=f;return e|0}function ze(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+64|0;f=e;g=d+20|0;h=c[g>>2]|0;if(h>>>0>=64)ua(235378,235397,192,235460);Co(f|0,c[d+16>>2]|0,h|0)|0;if((h+1|0)>>>0>56){Co(f+h|0,235470,64-h|0)|0;Be(f,d);j=d+24|0;k=(c[j>>2]|0)+(c[g>>2]|0)|0;c[j>>2]=k;c[g>>2]=0;g=f;j=g+56|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(j|0));a[f+56>>0]=k<<3;a[f+57>>0]=k>>>5;a[f+58>>0]=k>>>13;a[f+59>>0]=k>>>21;k=f+60|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=0;Be(f,d)}else{k=d+24|0;g=(c[k>>2]|0)+h|0;c[k>>2]=g;Co(f+h|0,235470,56-h|0)|0;a[f+56>>0]=g<<3;a[f+57>>0]=g>>>5;a[f+58>>0]=g>>>13;a[f+59>>0]=g>>>21;g=f+60|0;a[g>>0]=0;a[g+1>>0]=0;a[g+2>>0]=0;a[g+3>>0]=0;Be(f,d)}f=d+4|0;g=d+8|0;h=d+12|0;a[b>>0]=c[d>>2];a[b+4>>0]=c[f>>2];a[b+8>>0]=c[g>>2];a[b+12>>0]=c[h>>2];a[b+1>>0]=(c[d>>2]|0)>>>8;a[b+5>>0]=(c[f>>2]|0)>>>8;a[b+9>>0]=(c[g>>2]|0)>>>8;a[b+13>>0]=(c[h>>2]|0)>>>8;a[b+2>>0]=(c[d>>2]|0)>>>16;a[b+6>>0]=(c[f>>2]|0)>>>16;a[b+10>>0]=(c[g>>2]|0)>>>16;a[b+14>>0]=(c[h>>2]|0)>>>16;a[b+3>>0]=(c[d>>2]|0)>>>24;a[b+7>>0]=(c[f>>2]|0)>>>24;a[b+11>>0]=(c[g>>2]|0)>>>24;a[b+15>>0]=(c[h>>2]|0)>>>24;i=e;return}function Ae(a,b){a=a|0;b=b|0;var c=0;c=Bg(16,0)|0;ye(a,b,c)|0;return c|0}function Be(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=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;e=i;i=i+64|0;f=e;g=c[b>>2]|0;h=b+4|0;j=c[h>>2]|0;k=b+8|0;l=c[k>>2]|0;m=b+12|0;n=c[m>>2]|0;o=0;do{p=o<<2;c[f+(o<<2)>>2]=(d[a+(p|1)>>0]|0)<<8|(d[a+p>>0]|0)|(d[a+(p|2)>>0]|0)<<16|(d[a+(p|3)>>0]|0)<<24;o=o+1|0}while((o|0)!=16);o=c[f>>2]|0;a=g+-680876936+(n&~j|l&j)+o|0;g=(a<<7|a>>>25)+j|0;a=c[f+4>>2]|0;p=n+-389564586+a+(g&j|l&~g)|0;n=(p<<12|p>>>20)+g|0;p=c[f+8>>2]|0;q=l+606105819+p+(n&g|j&~n)|0;l=(q<<17|q>>>15)+n|0;q=c[f+12>>2]|0;r=j+-1044525330+q+(l&n|g&~l)|0;j=(r<<22|r>>>10)+l|0;r=c[f+16>>2]|0;s=r+-176418897+g+(j&l|n&~j)|0;g=(s<<7|s>>>25)+j|0;s=c[f+20>>2]|0;t=s+1200080426+n+(g&j|l&~g)|0;n=(t<<12|t>>>20)+g|0;t=c[f+24>>2]|0;u=t+-1473231341+l+(n&g|j&~n)|0;l=(u<<17|u>>>15)+n|0;u=c[f+28>>2]|0;v=u+-45705983+j+(l&n|g&~l)|0;j=(v<<22|v>>>10)+l|0;v=c[f+32>>2]|0;w=v+1770035416+g+(j&l|n&~j)|0;g=(w<<7|w>>>25)+j|0;w=c[f+36>>2]|0;x=w+-1958414417+n+(g&j|l&~g)|0;n=(x<<12|x>>>20)+g|0;x=c[f+40>>2]|0;y=x+-42063+l+(n&g|j&~n)|0;l=(y<<17|y>>>15)+n|0;y=c[f+44>>2]|0;z=y+-1990404162+j+(l&n|g&~l)|0;j=(z<<22|z>>>10)+l|0;z=c[f+48>>2]|0;A=z+1804603682+g+(j&l|n&~j)|0;g=(A<<7|A>>>25)+j|0;A=c[f+52>>2]|0;B=A+-40341101+n+(g&j|l&~g)|0;n=(B<<12|B>>>20)+g|0;B=~n;C=c[f+56>>2]|0;D=C+-1502002290+l+(n&g|j&B)|0;l=(D<<17|D>>>15)+n|0;D=~l;E=c[f+60>>2]|0;f=E+1236535329+j+(l&n|g&D)|0;j=(f<<22|f>>>10)+l|0;f=a+-165796510+g+(j&n|l&B)|0;B=(f<<5|f>>>27)+j|0;f=t+-1069501632+n+(B&l|j&D)|0;D=(f<<9|f>>>23)+B|0;f=y+643717713+l+(D&j|B&~j)|0;l=(f<<14|f>>>18)+D|0;f=o+-373897302+j+(l&B|D&~B)|0;j=(f<<20|f>>>12)+l|0;f=s+-701558691+B+(j&D|l&~D)|0;B=(f<<5|f>>>27)+j|0;f=x+38016083+D+(B&l|j&~l)|0;D=(f<<9|f>>>23)+B|0;f=E+-660478335+l+(D&j|B&~j)|0;l=(f<<14|f>>>18)+D|0;f=r+-405537848+j+(l&B|D&~B)|0;j=(f<<20|f>>>12)+l|0;f=w+568446438+B+(j&D|l&~D)|0;B=(f<<5|f>>>27)+j|0;f=C+-1019803690+D+(B&l|j&~l)|0;D=(f<<9|f>>>23)+B|0;f=q+-187363961+l+(D&j|B&~j)|0;l=(f<<14|f>>>18)+D|0;f=v+1163531501+j+(l&B|D&~B)|0;j=(f<<20|f>>>12)+l|0;f=A+-1444681467+B+(j&D|l&~D)|0;B=(f<<5|f>>>27)+j|0;f=p+-51403784+D+(B&l|j&~l)|0;D=(f<<9|f>>>23)+B|0;f=u+1735328473+l+(D&j|B&~j)|0;l=(f<<14|f>>>18)+D|0;f=z+-1926607734+j+(l&B|D&~B)|0;j=(f<<20|f>>>12)+l|0;f=s+-378558+B+(l^D^j)|0;B=(f<<4|f>>>28)+j|0;f=v+-2022574463+D+(j^l^B)|0;D=(f<<11|f>>>21)+B|0;f=y+1839030562+l+(B^j^D)|0;l=(f<<16|f>>>16)+D|0;f=C+-35309556+j+(D^B^l)|0;j=(f<<23|f>>>9)+l|0;f=a+-1530992060+B+(l^D^j)|0;B=(f<<4|f>>>28)+j|0;f=r+1272893353+D+(j^l^B)|0;D=(f<<11|f>>>21)+B|0;f=u+-155497632+l+(B^j^D)|0;l=(f<<16|f>>>16)+D|0;f=x+-1094730640+j+(D^B^l)|0;j=(f<<23|f>>>9)+l|0;f=A+681279174+B+(l^D^j)|0;B=(f<<4|f>>>28)+j|0;f=o+-358537222+D+(j^l^B)|0;D=(f<<11|f>>>21)+B|0;f=q+-722521979+l+(B^j^D)|0;l=(f<<16|f>>>16)+D|0;f=t+76029189+j+(D^B^l)|0;j=(f<<23|f>>>9)+l|0;f=w+-640364487+B+(l^D^j)|0;B=(f<<4|f>>>28)+j|0;f=z+-421815835+D+(j^l^B)|0;D=(f<<11|f>>>21)+B|0;f=E+530742520+l+(B^j^D)|0;l=(f<<16|f>>>16)+D|0;f=p+-995338651+j+(D^B^l)|0;j=(f<<23|f>>>9)+l|0;f=o+-198630844+B+((j|~D)^l)|0;B=(f<<6|f>>>26)+j|0;f=u+1126891415+D+((B|~l)^j)|0;D=(f<<10|f>>>22)+B|0;f=C+-1416354905+l+((D|~j)^B)|0;l=(f<<15|f>>>17)+D|0;f=s+-57434055+j+((l|~B)^D)|0;j=(f<<21|f>>>11)+l|0;f=z+1700485571+B+((j|~D)^l)|0;B=(f<<6|f>>>26)+j|0;f=q+-1894986606+D+((B|~l)^j)|0;D=(f<<10|f>>>22)+B|0;f=x+-1051523+l+((D|~j)^B)|0;l=(f<<15|f>>>17)+D|0;f=a+-2054922799+j+((l|~B)^D)|0;j=(f<<21|f>>>11)+l|0;f=v+1873313359+B+((j|~D)^l)|0;B=(f<<6|f>>>26)+j|0;f=E+-30611744+D+((B|~l)^j)|0;D=(f<<10|f>>>22)+B|0;f=t+-1560198380+l+((D|~j)^B)|0;l=(f<<15|f>>>17)+D|0;f=A+1309151649+j+((l|~B)^D)|0;j=(f<<21|f>>>11)+l|0;f=r+-145523070+B+((j|~D)^l)|0;B=(f<<6|f>>>26)+j|0;f=y+-1120210379+D+((B|~l)^j)|0;D=(f<<10|f>>>22)+B|0;f=p+718787259+l+((D|~j)^B)|0;l=(f<<15|f>>>17)+D|0;f=w+-343485551+j+((l|~B)^D)|0;c[b>>2]=B+(c[b>>2]|0);c[h>>2]=l+(c[h>>2]|0)+(f<<21|f>>>11);c[k>>2]=l+(c[k>>2]|0);c[m>>2]=D+(c[m>>2]|0);i=e;return}function Ce(a){a=a|0;Wb(a|0)|0;wm()}function De(a){a=a|0;id[c[(c[a>>2]|0)+12>>2]&63](a);return}function Ee(a){a=a|0;return}function Fe(a){a=a|0;id[c[(c[a>>2]|0)+28>>2]&63](a);return}function Ge(a){a=a|0;return}function He(a){a=a|0;return}function Ie(a){a=a|0;var c=0;c=ae(a,0)|0;a=b[c>>1]|0;if(a<<16>>16)Vf(a&65535);if(!(b[c+6>>1]|0))return;Vf(e[c+8>>1]|0);return}function Je(d,e,f,g,i,j){d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;var k=0;Qn(237595)|0;a[240]=a[237604]|0;a[241]=a[237605]|0;a[242]=a[237606]|0;a[243]=a[237607]|0;a[244]=a[237608]|0;a[290]=a[237609]|0;a[291]=a[237610]|0;a[292]=a[237611]|0;Qn(237612)|0;fo(235547,(e|0)!=0?e:240695)|0;_d(235547);Qn(237623)|0;de();a[108]=1;c[7]=0;if((f|0)!=0&(g|0)!=0){b[8]=f;b[9]=g}if((i|0)==0|(j|0)==0){g=c[4]|0;b[16]=g;k=g>>>16}else{b[16]=i;k=j}b[17]=k;Qn(237635)|0;k=c[4]|0;wg(d,k&65535,k>>>16);Qn(237645)|0;k=c[7]|0;zg(k&255,k>>>8&255,k>>>16&255);Qn(237660)|0;pe(136,72,0);re(136,512);pe(172,64,0);Qn(237672)|0;Ud();a[168]=-1;c[26]=0;Qn(237683)|0;Le();c[58]=0;c[59]=0;c[9]=0;c[10]=0;c[11]=0;c[12]=0;h[10]=.01666666753590107;c[23]=16;c[81]=0;c[82]=0;c[57]=0;Qn(237697)|0;return}function Ke(){var b=0,d=0,e=0,f=0.0,g=0,i=0;c[56]=0;c[1627]=-1;b=c[7]|0;zg(b&255,b>>>8&255,b>>>16&255);c[1627]=-1;Ad(0,0);Vd();Yf();yg(c[22]|0)|0;c[22]=xg()|0;ee();b=xg()|0;c[24]=b;d=b-(c[25]|0)|0;e=(d|0)>50?16:d;c[23]=e;if(!(a[108]|0)){f=+(e|0)*1.0000000474974513e-03;h[10]=f;c[25]=b;g=c[26]|0;i=g+1|0;c[26]=i;return}else{c[23]=16;f=.01666666753590107;h[10]=f;c[25]=b;g=c[26]|0;i=g+1|0;c[26]=i;return}}function Le(){c[1614]=0;return}function Me(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=+j;k=k|0;var l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0;l=i;i=i+32|0;m=l;n=l+8|0;c[m>>2]=e;Sn(n,237710,m)|0;m=go(n)|0;e=c[b>>2]|0;b=c[33]|0;o=b+((e&65535)<<3)|0;p=+((d[o>>0]|d[o+1>>0]<<8)&65535|0);if(k){k=~~(p*j);o=((_(k,m+-1|0)|0)/-2|0)+f|0;if((m|0)<=0){i=l;return}q=+(g|0);r=0;do{c[(Od((a[n+r>>0]|0)+65488+e&65535,+(o+(_(r,k)|0)|0),q,0,0)|0)+20>>2]=h;r=r+1|0}while((r|0)!=(m|0));i=l;return}r=~~((j+-1.0)*p);k=(m|0)>0;if(k){s=0;t=0}else{i=l;return}while(1){o=b+(((a[n+s>>0]|0)+65488+e&65535)<<3)|0;u=((d[o>>0]|d[o+1>>0]<<8)&65535)+t|0;s=s+1|0;if((s|0)==(m|0)){v=u;break}else t=u}if(!k){i=l;return}p=+(g|0);g=f-((v+(_(r,m+-1|0)|0)|0)/2|0)|0;v=b;b=0;while(1){f=(a[n+b>>0]|0)+-48+e|0;k=f&65535;t=v+(k<<3)+4|0;j=+(~~(+(g|0)-+(0-((d[t>>0]|d[t+1>>0]<<8)<<16>>16)|0))|0);c[(Od(f&65535,j,p,0,0)|0)+20>>2]=h;v=c[33]|0;f=v+(k<<3)+4|0;t=v+(k<<3)|0;b=b+1|0;if((b|0)==(m|0))break;else g=~~(j+ +(((d[t>>0]|d[t+1>>0]<<8)&65535)-((d[f>>0]|d[f+1>>0]<<8)<<16>>16)|0))+r|0}i=l;return}function Ne(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=+j;var k=0,l=0,m=0,n=0;k=i;i=i+32|0;l=k;m=k+8|0;c[l>>2]=e;Sn(m,237710,l)|0;l=go(m)|0;e=c[b>>2]|0;b=(c[33]|0)+((e&65535)<<3)|0;n=~~(+((d[b>>0]|d[b+1>>0]<<8)&65535|0)*j);if((l|0)<=0){i=k;return}j=+(g|0);g=0;do{c[(Od((a[m+g>>0]|0)+65488+e&65535,+((_(g,n)|0)+f|0),j,0,0)|0)+20>>2]=h;g=g+1|0}while((g|0)!=(l|0));i=k;return}function Oe(b){b=b|0;var d=0,e=0,f=0,h=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0;d=i;i=i+16|0;e=d+8|0;f=d;a[b>>0]=0;h=c[b+36>>2]|0;j=b+12|0;k=+g[j>>2];if((k>0.0?k:-k)>1.0e4){i=d;return}l=b+16|0;m=+g[l>>2];if((m>0.0?m:-m)>1.0e4){i=d;return}n=b+40|0;o=b+8|0;if(c[n>>2]|0){p=b+4|0;if(!(ge((c[p>>2]|0)+(c[o>>2]|0)&65535,k,m,1,0.0,0.0)|0)){q=p;r=h}else{q=p;r=c[n>>2]|0}}else{q=b+4|0;r=h}h=(c[q>>2]|0)+(c[o>>2]|0)|0;if((Zd(h)|0)!=2?(Zd(h)|0)!=3:0){c[f>>2]=h;Pn(237713,f)|0;i=d;return}if(!(a[b+44>>0]|0)){c[(Nd((c[q>>2]|0)+(c[o>>2]|0)&65535,+g[j>>2],+g[l>>2],0,+g[b+28>>2],+g[b+20>>2],+g[b+24>>2],c[b+32>>2]|0)|0)+20>>2]=r;i=d;return}if(+g[b+28>>2]!=0.0)Pn(237747,e)|0;e=c[b+48>>2]|0;f=c[b+52>>2]|0;h=b+20|0;n=Ld((c[q>>2]|0)+(c[o>>2]|0)&65535,+g[j>>2],+g[l>>2],0,e&65535,f&65535,(c[b+56>>2]|0)+e&65535,(c[b+60>>2]|0)+f&65535,+g[h>>2],c[b+32>>2]|0)|0;c[n+48>>2]=c[h>>2];c[n+52>>2]=c[b+24>>2];c[n+20>>2]=r;i=d;return}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0;e=d*6.283/360.0;d=-+R(+e);f=+Q(+e);e=+h[c>>3];g=+h[c+8>>3];i=+h[b>>3]-e;j=+h[b+8>>3]-g;k=f;f=d;h[a>>3]=e+(k*i-f*j);h[a+8>>3]=g+(f*i+k*j);return}function Qe(a,b,c){a=a|0;b=+b;c=+c;var d=0.0;d=b*6.283/360.0;b=-c*+R(+d);h[a>>3]=c*+Q(+d);h[a+8>>3]=b;return}function Re(a,b){a=a|0;b=b|0;return +(+h[a>>3]*+h[b>>3]+ +h[a+8>>3]*+h[b+8>>3])}function Se(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;f=+h[d>>3];g=+h[d+8>>3];i=+h[e>>3]-f;j=+h[e+8>>3]-g;k=i*i+j*j;if(k==0.0){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}else{l=(i*(+h[b>>3]-f)+j*(+h[b+8>>3]-g))/k;h[a>>3]=f+i*l;h[a+8>>3]=g+j*l;return}}function Te(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=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;d=+h[b>>3];e=+h[b+8>>3];f=+h[c>>3];g=+h[c+8>>3];i=f-d;j=g-e;k=i*i+j*j;l=+h[a>>3];if(k==0.0){m=d-l;n=e-+h[a+8>>3];o=+O(+(m*m+n*n));return +o}n=+h[a+8>>3];m=(i*(l-d)+j*(n-e))/k;if(m<0.0){k=d-l;p=e-n;o=+O(+(k*k+p*p));return +o}if(m>1.0){p=f-l;f=g-n;o=+O(+(p*p+f*f));return +o}else{f=d+i*m-l;l=e+j*m-n;o=+O(+(f*f+l*l));return +o}return +(0.0)}function Ue(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+1040|0;f=e;g=e+8|0;c[b>>2]=qm(4)|0;a[b+4>>0]=1;h=Gf(d,g,1024)|0;c[c[b>>2]>>2]=h;if(h){i=e;return}c[f>>2]=g;c[f+4>>2]=d;Pn(237802,f)|0;i=e;return}function Ve(b){b=b|0;var d=0;if(a[b+4>>0]|0)If(c[c[b>>2]>>2]|0);d=c[b>>2]|0;if(!d)return;rm(d);return}function We(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=d;c[f+4>>2]=0;d=Hf(c[c[b>>2]>>2]|0,f,3)|0;if(!d){g=0;i=e;return g|0}f=qm(8)|0;b=qm(4)|0;c[b>>2]=d;c[f>>2]=b;a[f+4>>0]=0;g=f;i=e;return g|0}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;c[f>>2]=b;c[f+4>>2]=0;b=Hf(c[c[a>>2]>>2]|0,f,8)|0;if(b){f=c[b>>2]|0;if((f|0)!=5)if((f|0)==6)g=0;else h=4;else g=1}else h=4;if((h|0)==4)g=d;i=e;return g|0}function Ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=b;c[f+4>>2]=0;b=Hf(c[c[a>>2]>>2]|0,f,2)|0;if(!b){g=d;i=e;return g|0}g=c[b+8>>2]|0;i=e;return g|0}function Ze(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=b;c[f+4>>2]=0;b=Hf(c[c[a>>2]>>2]|0,f,1)|0;if(!b){g=d;i=e;return g|0}if((c[b>>2]|0)!=1){g=0;i=e;return g|0}g=c[b+8>>2]|0;i=e;return g|0}function _e(b,d,e){b=b|0;d=d|0;e=+e;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0;f=i;i=i+32|0;g=f+8|0;j=f+24|0;k=f+16|0;l=f;c[k>>2]=d;c[k+4>>2]=0;m=Hf(c[c[b>>2]>>2]|0,k,2)|0;if(m){n=+h[m+16>>3];i=f;return +n}c[j>>2]=d;c[j+4>>2]=0;d=Hf(c[c[b>>2]>>2]|0,j,1)|0;do if(d)if((c[d>>2]|0)==1){j=c[d+8>>2]|0;if(!j)n=e;else{o=j;break}i=f;return +n}else{n=e;i=f;return +n}else o=261289;while(0);if((a[o+((go(o)|0)+-1)>>0]|0)!=37){n=e;i=f;return +n}h[l>>3]=e;c[g>>2]=l;Tn(o,237825,g)|0;e=+h[l>>3]/100.0;h[l>>3]=e;n=e;i=f;return +n}function $e(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;c[e>>2]=b;c[e+4>>2]=0;b=Hf(c[c[a>>2]>>2]|0,e,4)|0;if(!b){f=0;i=d;return f|0}e=qm(4)|0;a=qm(4)|0;c[a>>2]=b;c[e>>2]=a;f=e;i=d;return f|0}function af(a){a=a|0;return c[(c[c[a>>2]>>2]|0)+8+4>>2]|0}function bf(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[(c[(c[c[b>>2]>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if(!e){f=0;return f|0}d=qm(8)|0;b=qm(4)|0;c[b>>2]=e;c[d>>2]=b;a[d+4>>0]=0;f=d;return f|0}function cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[(c[(c[c[a>>2]>>2]|0)+8>>2]|0)+(b<<2)>>2]|0;if(e){b=c[e>>2]|0;if((b|0)==5){f=1;return f|0}if((b|0)==6){f=0;return f|0}}f=d;return f|0}function df(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=c[(c[(c[c[b>>2]>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if(!f){g=e;return g|0}if((c[f>>2]|0)!=1){g=e;return g|0}d=c[f+8>>2]|0;if(!d){g=e;return g|0}e=(a[d>>0]|0)==35?d+1|0:d;if((go(e)|0)==8){d=a[e>>0]|0;f=d<<24>>24;do if((d+-97&255)>=6)if((d+-65&255)<6){h=f+-55|0;break}else{h=f+-48|0;break}else h=f+-87|0;while(0);f=h<<4;h=a[e+1>>0]|0;d=h<<24>>24;do if((h+-97&255)>=6)if((h+-65&255)<6){i=d+-55|0;break}else{i=d+-48|0;break}else i=d+-87|0;while(0);j=e+2|0;k=(i|f)<<24}else{j=e;k=-16777216}e=a[j>>0]|0;f=e<<24>>24;do if((e+-97&255)>=6)if((e+-65&255)<6){l=f+-55|0;break}else{l=f+-48|0;break}else l=f+-87|0;while(0);f=l<<4;l=a[j+1>>0]|0;e=l<<24>>24;do if((l+-97&255)>=6)if((l+-65&255)<6){m=e+-55|0;break}else{m=e+-48|0;break}else m=e+-87|0;while(0);e=a[j+2>>0]|0;l=e<<24>>24;do if((e+-97&255)>=6)if((e+-65&255)<6){n=l+-55|0;break}else{n=l+-48|0;break}else n=l+-87|0;while(0);l=n<<4;n=a[j+3>>0]|0;e=n<<24>>24;do if((n+-97&255)>=6)if((n+-65&255)<6){o=e+-55|0;break}else{o=e+-48|0;break}else o=e+-87|0;while(0);e=o|l;l=a[j+4>>0]|0;o=l<<24>>24;do if((l+-97&255)>=6)if((l+-65&255)<6){p=o+-55|0;break}else{p=o+-48|0;break}else p=o+-87|0;while(0);o=p<<4;p=a[j+5>>0]|0;j=p<<24>>24;do if((p+-97&255)>=6)if((p+-65&255)<6){q=j+-55|0;break}else{q=j+-48|0;break}else q=j+-87|0;while(0);g=f|k|m|e<<8|(q|o)<<16;return g|0}function ef(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f;if(d){h=c[d>>2]|0;if(!h){j=0;i=f;return j|0}if(!(c[d+4>>2]|0)){j=0;i=f;return j|0}if(!(c[d+8>>2]|0)){j=0;i=f;return j|0}else{k=d;l=h}}else{lf(g);k=g;l=c[g>>2]|0}g=pd[l&31](c[k+12>>2]|0,60)|0;l=g+40|0;h=l;d=k;k=h+16|0;do{a[h>>0]=a[d>>0]|0;h=h+1|0;d=d+1|0}while((h|0)<(k|0));c[g>>2]=b;c[g+4>>2]=e;c[g+8>>2]=0;c[g+16>>2]=0;c[g+20>>2]=pf(l)|0;c[g+56>>2]=0;e=g+24|0;c[e>>2]=0;b=g+32|0;c[b>>2]=0;c[g+36>>2]=l;c[g+28>>2]=128;l=dd[c[g+44>>2]&15](c[g+52>>2]|0,0,128)|0;c[e>>2]=l;e=c[b>>2]|0;c[b>>2]=e+1;a[l+e>>0]=0;j=g;i=f;return j|0}function ff(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;c[f>>2]=d;switch(b|0){case 16:case 8:case 4:case 2:case 1:break;default:{g=0;i=e;return g|0}}d=(c[f>>2]|0)+(4-1)&~(4-1);h=c[d>>2]|0;c[f>>2]=d+4;if(!h){h=a+56|0;c[h>>2]=c[h>>2]&~b;g=1;i=e;return g|0}else{h=a+56|0;c[h>>2]=c[h>>2]|b;g=1;i=e;return g|0}return 0}function gf(a){a=a|0;var b=0,d=0;b=c[a+24>>2]|0;if(b){d=c[a+36>>2]|0;ed[c[d+8>>2]&31](c[d+12>>2]|0,b)}qf(c[a+20>>2]|0);b=a+8|0;d=c[b>>2]|0;if(d){yf(d);c[b>>2]=0}ed[c[a+48>>2]&31](c[a+52>>2]|0,a);return}function hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;if(!(c[e>>2]|0)){f=c[a+56>>2]|0;c[e>>2]=xf(a+40|0,f&1,f>>>1&1^1)|0}return Ff(a,b,d)|0}function jf(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;if(c[b>>2]|0){d=Ef(a)|0;return d|0}e=c[a+56>>2]|0;c[b>>2]=xf(a+40|0,e&1,e>>>1&1^1)|0;d=Ef(a)|0;return d|0}function kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Df(a,c,d,b)|0}function lf(a){a=a|0;c[a>>2]=22;c[a+8>>2]=17;c[a+4>>2]=12;c[a+12>>2]=0;return}function mf(a,b){a=a|0;b=b|0;return to(b)|0}function nf(a,b){a=a|0;b=b|0;uo(b);return}function of(a,b,c){a=a|0;b=b|0;c=c|0;return wo(b,c)|0}function pf(b){b=b|0;var d=0,e=0,f=0;d=pd[c[b>>2]&31](c[b+12>>2]|0,16)|0;e=d;f=e+12|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));c[d+12>>2]=b;return d|0}function qf(a){a=a|0;var b=0,d=0,e=0;if(!a)ua(237831,237843,66,237904);b=c[a+8>>2]|0;d=a+12|0;if(b){e=c[d>>2]|0;ed[c[e+8>>2]&31](c[e+12>>2]|0,b)}b=c[d>>2]|0;ed[c[b+8>>2]&31](c[b+12>>2]|0,a);return}function rf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;if(!b)ua(237831,237843,37,237918);f=b+8|0;if(!(c[f>>2]|0)){c[b>>2]=2048;g=c[b+12>>2]|0;h=pd[c[g>>2]&31](c[g+12>>2]|0,2048)|0;c[f>>2]=h;a[h>>0]=0}h=c[b>>2]|0;g=b+4|0;i=c[g>>2]|0;j=h;while(1)if((j-i|0)>>>0>e>>>0){k=j;break}else j=j<<1;if((k|0)!=(h|0)){h=c[b+12>>2]|0;c[f>>2]=dd[c[h+4>>2]&15](c[h+12>>2]|0,c[f>>2]|0,k)|0;c[b>>2]=k}if(!e)return;if(!d)ua(237944,237843,75,237957);Co((c[f>>2]|0)+(c[g>>2]|0)|0,d|0,e|0)|0;d=(c[g>>2]|0)+e|0;c[g>>2]=d;a[(c[f>>2]|0)+d>>0]=0;return}function sf(b){b=b|0;var d=0;c[b+4>>2]=0;d=c[b+8>>2]|0;if(!d)return;a[d>>0]=0;return}function tf(a){a=a|0;return c[a+8>>2]|0}function uf(a){a=a|0;return c[a+4>>2]|0}function vf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=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=i;i=i+16|0;h=g+8|0;j=g+4|0;k=g;if(!f){l=0;m=0;n=e+l|0;o=m-l|0;rf(b,n,o);i=g;return}p=h+1|0;q=h+2|0;r=h+3|0;s=h+4|0;t=0;a:while(1){u=t;while(1){if((a[e+u>>0]|0)==92){v=u;break}w=u+1|0;if(w>>>0<f>>>0)u=w;else{l=t;m=w;x=31;break a}}rf(b,e+t|0,v-t|0);u=v+1|0;b:do switch(d[e+u>>0]|0){case 114:{y=u;z=238105;x=29;break}case 110:{y=u;z=238103;x=29;break}case 92:{y=u;z=238101;x=29;break}case 47:{y=u;z=238099;x=29;break}case 34:{y=u;z=238097;x=29;break}case 102:{y=u;z=238095;x=29;break}case 98:{y=u;z=238093;x=29;break}case 116:{y=u;z=238091;x=29;break}case 117:{c[j>>2]=0;wf(j,e+(v+2)|0);w=v+5|0;A=c[j>>2]|0;if((A&64512|0)==55296){B=v+6|0;if((a[e+B>>0]|0)!=92){y=B;z=238107;x=29;break b}if((a[e+(v+7)>>0]|0)!=117){y=B;z=238107;x=29;break b}c[k>>2]=0;wf(k,e+(v+8)|0);B=A<<10;C=c[k>>2]&1023|B&64512|(B&983040)+65536;c[j>>2]=C;D=C;E=v+11|0}else{D=A;E=w}if(D>>>0<128){a[h>>0]=D;a[p>>0]=0;if(D){y=E;z=h;x=29;break b}rf(b,h,1);F=E;break b}if(D>>>0<2048){a[h>>0]=D>>>6|192;a[p>>0]=D&63|128;a[q>>0]=0;y=E;z=h;x=29;break b}if(D>>>0<65536){a[h>>0]=D>>>12|224;a[p>>0]=D>>>6&63|128;a[q>>0]=D&63|128;a[r>>0]=0;y=E;z=h;x=29;break b}if(D>>>0<2097152){a[h>>0]=D>>>18|240;a[p>>0]=D>>>12&63|128;a[q>>0]=D>>>6&63|128;a[r>>0]=D&63|128;a[s>>0]=0;y=E;z=h;x=29;break b}else{a[h>>0]=63;a[p>>0]=0;y=E;z=h;x=29;break b}break}default:{x=28;break a}}while(0);if((x|0)==29){x=0;rf(b,z,go(z)|0);F=y}u=F+1|0;if(u>>>0<f>>>0)t=u;else{l=u;m=u;x=31;break}}if((x|0)==28)ua(237973,238008,169,238072);else if((x|0)==31){n=e+l|0;o=m-l|0;rf(b,n,o);i=g;return}}function wf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a[d>>0]|0;if((e&255)>64)f=(e&223)+249&255;else f=e;e=(f&255)+208|0;if(e&240)ua(238109,238008,85,238121);f=c[b>>2]<<4|e&255;c[b>>2]=f;e=a[d+1>>0]|0;if((e&255)>64)g=(e&223)+249&255;else g=e;e=(g&255)+208|0;if(e&240)ua(238109,238008,85,238121);g=f<<4|e&255;c[b>>2]=g;e=a[d+2>>0]|0;if((e&255)>64)h=(e&223)+249&255;else h=e;e=(h&255)+208|0;if(e&240)ua(238109,238008,85,238121);h=g<<4|e&255;c[b>>2]=h;e=a[d+3>>0]|0;if((e&255)>64)i=(e&223)+249&255;else i=e;e=(i&255)+208|0;if(!(e&240)){c[b>>2]=h<<4|e&255;return}else ua(238109,238008,85,238121)}function xf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=pd[c[b>>2]&31](c[b+12>>2]|0,36)|0;g=f;h=g+36|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));c[f+12>>2]=pf(b)|0;c[f+24>>2]=d;c[f+28>>2]=e;c[f+32>>2]=b;return f|0}function yf(a){a=a|0;var b=0;qf(c[a+12>>2]|0);b=c[a+32>>2]|0;ed[c[b+8>>2]&31](c[b+12>>2]|0,a);return}function zf(b,e,f,g,h,i){b=b|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,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;j=c[g>>2]|0;c[h>>2]=0;c[i>>2]=0;k=c[g>>2]|0;if(k>>>0>f>>>0)ua(238132,238155,575,238216);l=b+20|0;m=b+24|0;n=b+12|0;o=b+16|0;p=k;k=j;a:while(1){if(p>>>0>=f>>>0){q=k;r=270;break}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(j=c[o>>2]|0,j>>>0<(uf(c[n>>2]|0)|0)>>>0):0){j=tf(c[n>>2]|0)|0;s=c[o>>2]|0;c[o>>2]=s+1;t=j+s|0}else{s=c[g>>2]|0;c[g>>2]=s+1;t=e+s|0}switch(d[t>>0]|0){case 123:{u=k;r=265;break a;break}case 125:{v=k;r=266;break a;break}case 91:{w=k;r=267;break a;break}case 93:{x=k;r=268;break a;break}case 44:{y=k;z=2;r=269;break a;break}case 58:{A=k;r=11;break a;break}case 34:{B=k;r=13;break a;break}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:case 45:{C=k;r=113;break a;break}case 32:case 13:case 12:case 11:case 10:case 9:{D=c[g>>2]|0;E=k+1|0;break}case 47:{s=c[g>>2]|0;if(!(c[m>>2]|0)){F=s;G=k;r=201;break a}if(s>>>0>=f>>>0){q=k;r=270;break a}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(s=c[o>>2]|0,s>>>0<(uf(c[n>>2]|0)|0)>>>0):0){s=tf(c[n>>2]|0)|0;j=c[o>>2]|0;c[o>>2]=j+1;H=s+j|0}else{j=c[g>>2]|0;c[g>>2]=j+1;H=e+j|0}b:do switch(a[H>>0]|0){case 47:{do{if((c[g>>2]|0)>>>0>=f>>>0){q=k;r=270;break a}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(j=c[o>>2]|0,j>>>0<(uf(c[n>>2]|0)|0)>>>0):0){j=tf(c[n>>2]|0)|0;s=c[o>>2]|0;c[o>>2]=s+1;I=j+s|0}else{s=c[g>>2]|0;c[g>>2]=s+1;I=e+s|0}}while((a[I>>0]|0)!=10);break}case 42:{if((c[g>>2]|0)>>>0>=f>>>0){q=k;r=270;break a}while(1){if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(s=c[o>>2]|0,s>>>0<(uf(c[n>>2]|0)|0)>>>0):0){s=tf(c[n>>2]|0)|0;j=c[o>>2]|0;c[o>>2]=j+1;J=s+j|0}else{j=c[g>>2]|0;c[g>>2]=j+1;J=e+j|0}do if((a[J>>0]|0)==42){if((c[g>>2]|0)>>>0>=f>>>0){q=k;r=270;break a}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(j=c[o>>2]|0,j>>>0<(uf(c[n>>2]|0)|0)>>>0):0){j=tf(c[n>>2]|0)|0;s=c[o>>2]|0;c[o>>2]=s+1;K=j+s|0}else{s=c[g>>2]|0;c[g>>2]=s+1;K=e+s|0}if((a[K>>0]|0)==47)break b;s=c[g>>2]|0;if(!s){c[o>>2]=(c[o>>2]|0)+-1;break}else{c[g>>2]=s+-1;break}}while(0);if((c[g>>2]|0)>>>0>=f>>>0){q=k;r=270;break a}}break}default:{L=k;r=237;break a}}while(0);sf(c[n>>2]|0);c[l>>2]=0;s=c[g>>2]|0;D=s;E=s;break}default:{M=k;r=240;break a}}if(D>>>0>f>>>0){r=3;break}else{p=D;k=E}}c:switch(r|0){case 3:{ua(238132,238155,575,238216);break}case 11:{y=A;z=1;r=269;break}case 13:{A=b+28|0;E=0;d:while(1){e:while(1){if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(k=c[o>>2]|0,k>>>0<(uf(c[n>>2]|0)|0)>>>0):0){k=tf(c[n>>2]|0)|0;D=c[o>>2]|0;p=uf(c[n>>2]|0)|0;K=c[o>>2]|0;J=p-K|0;f:do if((p|0)==(K|0))N=0;else{I=(c[A>>2]|0)!=0?26:10;H=k+D|0;m=0;while(1){if(d[238229+(d[H>>0]|0)>>0]&I){N=m;break f}t=m+1|0;if(t>>>0<J>>>0){H=H+1|0;m=t}else{N=t;break}}}while(0);c[o>>2]=N+K;O=c[g>>2]|0}else{J=c[g>>2]|0;if(J>>>0<f>>>0){D=f-J|0;g:do if((J|0)==(f|0))P=0;else{k=(c[A>>2]|0)!=0?26:10;p=e+J|0;m=0;while(1){if(d[238229+(d[p>>0]|0)>>0]&k){P=m;break g}H=m+1|0;if(H>>>0<D>>>0){p=p+1|0;m=H}else{P=H;break}}}while(0);D=P+J|0;c[g>>2]=D;O=D}else O=J}if(O>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(D=c[o>>2]|0,D>>>0<(uf(c[n>>2]|0)|0)>>>0):0){D=tf(c[n>>2]|0)|0;K=c[o>>2]|0;c[o>>2]=K+1;Q=D+K|0}else{K=c[g>>2]|0;c[g>>2]=K+1;Q=e+K|0}K=a[Q>>0]|0;D=K&255;switch(K<<24>>24){case 34:{R=E;r=112;break d;break}case 92:{break e;break}default:{}}if(a[238229+D>>0]&2){r=61;break d}if(K<<24>>24>-1|(c[A>>2]|0)==0)continue;if((D&224|0)==192){if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(K=c[o>>2]|0,K>>>0<(uf(c[n>>2]|0)|0)>>>0):0){K=tf(c[n>>2]|0)|0;m=c[o>>2]|0;c[o>>2]=m+1;S=K+m|0}else{m=c[g>>2]|0;c[g>>2]=m+1;S=e+m|0}if((a[S>>0]&-64)<<24>>24==-128)continue;else{r=111;break d}}if((D&240|0)==224){if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(m=c[o>>2]|0,m>>>0<(uf(c[n>>2]|0)|0)>>>0):0){m=tf(c[n>>2]|0)|0;K=c[o>>2]|0;c[o>>2]=K+1;T=m+K|0}else{K=c[g>>2]|0;c[g>>2]=K+1;T=e+K|0}if((a[T>>0]&-64)<<24>>24!=-128){r=111;break d}if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(K=c[o>>2]|0,K>>>0<(uf(c[n>>2]|0)|0)>>>0):0){K=tf(c[n>>2]|0)|0;m=c[o>>2]|0;c[o>>2]=m+1;U=K+m|0}else{m=c[g>>2]|0;c[g>>2]=m+1;U=e+m|0}if((a[U>>0]&-64)<<24>>24==-128)continue;else{r=111;break d}}if((D&248|0)!=240){r=111;break d}if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(D=c[o>>2]|0,D>>>0<(uf(c[n>>2]|0)|0)>>>0):0){D=tf(c[n>>2]|0)|0;m=c[o>>2]|0;c[o>>2]=m+1;V=D+m|0}else{m=c[g>>2]|0;c[g>>2]=m+1;V=e+m|0}if((a[V>>0]&-64)<<24>>24!=-128){r=111;break d}if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(m=c[o>>2]|0,m>>>0<(uf(c[n>>2]|0)|0)>>>0):0){m=tf(c[n>>2]|0)|0;D=c[o>>2]|0;c[o>>2]=D+1;W=m+D|0}else{D=c[g>>2]|0;c[g>>2]=D+1;W=e+D|0}if((a[W>>0]&-64)<<24>>24!=-128){r=111;break d}if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}do if(!(c[l>>2]|0))r=109;else{if(!(uf(c[n>>2]|0)|0)){r=109;break}D=c[o>>2]|0;if(D>>>0>=(uf(c[n>>2]|0)|0)>>>0){r=109;break}D=tf(c[n>>2]|0)|0;m=c[o>>2]|0;c[o>>2]=m+1;X=D+m|0}while(0);if((r|0)==109){r=0;J=c[g>>2]|0;c[g>>2]=J+1;X=e+J|0}if((a[X>>0]&-64)<<24>>24!=-128){r=111;break d}}if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(J=c[o>>2]|0,J>>>0<(uf(c[n>>2]|0)|0)>>>0):0){J=tf(c[n>>2]|0)|0;m=c[o>>2]|0;c[o>>2]=m+1;Y=J+m|0}else{m=c[g>>2]|0;c[g>>2]=m+1;Y=e+m|0}m=a[Y>>0]|0;if(m<<24>>24!=117)if(!(a[238229+(m&255)>>0]&1)){r=56;break}else{E=1;continue}else Z=0;while(1){if((c[g>>2]|0)>>>0>=f>>>0){q=B;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(m=c[o>>2]|0,m>>>0<(uf(c[n>>2]|0)|0)>>>0):0){m=tf(c[n>>2]|0)|0;J=c[o>>2]|0;c[o>>2]=J+1;_=m+J|0}else{J=c[g>>2]|0;c[g>>2]=J+1;_=e+J|0}J=Z+1|0;if(!(a[238229+(d[_>>0]|0)>>0]&4)){r=51;break d}if(J>>>0<4)Z=J;else{E=1;continue d}}}if((r|0)==51){E=c[g>>2]|0;if(!E)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=E+-1;c[b+8>>2]=4;y=B;z=4;r=269;break}else if((r|0)==56){E=c[g>>2]|0;if(!E)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=E+-1;c[b+8>>2]=2;y=B;z=4;r=269;break}else if((r|0)==61){E=c[g>>2]|0;if(!E)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=E+-1;c[b+8>>2]=3;y=B;z=4;r=269;break}else if((r|0)==111){c[b+8>>2]=1;y=B;z=4;r=269;break}else if((r|0)==112)if(!R){$=B;aa=12;r=263;break}else{y=B;z=13;r=269;break}break}case 113:{B=c[g>>2]|0;if(!B){c[o>>2]=(c[o>>2]|0)+-1;ba=c[g>>2]|0}else{R=B+-1|0;c[g>>2]=R;ba=R}if(ba>>>0<f>>>0){if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ba=c[o>>2]|0,ba>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ba=tf(c[n>>2]|0)|0;R=c[o>>2]|0;c[o>>2]=R+1;ca=ba+R|0}else{R=c[g>>2]|0;c[g>>2]=R+1;ca=e+R|0}R=a[ca>>0]|0;if(R<<24>>24==45){if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ca=c[o>>2]|0,ca>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ca=tf(c[n>>2]|0)|0;ba=c[o>>2]|0;c[o>>2]=ba+1;da=ca+ba|0}else{ba=c[g>>2]|0;c[g>>2]=ba+1;da=e+ba|0}ea=a[da>>0]|0}else ea=R;if(ea<<24>>24==48){if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(R=c[o>>2]|0,R>>>0<(uf(c[n>>2]|0)|0)>>>0):0){R=tf(c[n>>2]|0)|0;da=c[o>>2]|0;c[o>>2]=da+1;fa=R+da|0}else{da=c[g>>2]|0;c[g>>2]=da+1;fa=e+da|0}ga=a[fa>>0]|0}else{if((ea+-49&255)>=9){ea=c[g>>2]|0;if(!ea)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=ea+-1;c[b+8>>2]=9;y=C;z=4;r=269;break}while(1){if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ea=c[o>>2]|0,ea>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ea=tf(c[n>>2]|0)|0;fa=c[o>>2]|0;c[o>>2]=fa+1;ha=ea+fa|0}else{fa=c[g>>2]|0;c[g>>2]=fa+1;ha=e+fa|0}fa=a[ha>>0]|0;if((fa+-48&255)>=10){ga=fa;break}}}do if(ga<<24>>24==46){if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ha=c[o>>2]|0,ha>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ha=tf(c[n>>2]|0)|0;fa=c[o>>2]|0;c[o>>2]=fa+1;ia=ha+fa|0}else{fa=c[g>>2]|0;c[g>>2]=fa+1;ia=e+fa|0}if(((a[ia>>0]|0)+-48&255)<10){fa=0;while(1){ha=fa+1|0;if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ea=c[o>>2]|0,ea>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ea=tf(c[n>>2]|0)|0;da=c[o>>2]|0;c[o>>2]=da+1;ja=ea+da|0}else{da=c[g>>2]|0;c[g>>2]=da+1;ja=e+da|0}da=a[ja>>0]|0;if((da+-48&255)<10)fa=ha;else{ka=ha;la=da;break}}if(ka){ma=la;na=11;break}}fa=c[g>>2]|0;if(!fa)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=fa+-1;c[b+8>>2]=7;y=C;z=4;r=269;break c}else{ma=ga;na=10}while(0);switch(ma<<24>>24){case 69:case 101:{if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(ma=c[o>>2]|0,ma>>>0<(uf(c[n>>2]|0)|0)>>>0):0){ma=tf(c[n>>2]|0)|0;ga=c[o>>2]|0;c[o>>2]=ga+1;oa=ma+ga|0}else{ga=c[g>>2]|0;c[g>>2]=ga+1;oa=e+ga|0}ga=a[oa>>0]|0;switch(ga<<24>>24){case 45:case 43:{if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(oa=c[o>>2]|0,oa>>>0<(uf(c[n>>2]|0)|0)>>>0):0){oa=tf(c[n>>2]|0)|0;ma=c[o>>2]|0;c[o>>2]=ma+1;pa=oa+ma|0}else{ma=c[g>>2]|0;c[g>>2]=ma+1;pa=e+ma|0}qa=a[pa>>0]|0;break}default:qa=ga}if((qa+-48&255)>=10){qa=c[g>>2]|0;if(!qa)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=qa+-1;c[b+8>>2]=8;y=C;z=4;r=269;break c}while(1){if((c[g>>2]|0)>>>0>=f>>>0){q=C;r=270;break c}if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(qa=c[o>>2]|0,qa>>>0<(uf(c[n>>2]|0)|0)>>>0):0){qa=tf(c[n>>2]|0)|0;ga=c[o>>2]|0;c[o>>2]=ga+1;ra=qa+ga|0}else{ga=c[g>>2]|0;c[g>>2]=ga+1;ra=e+ga|0}if(((a[ra>>0]|0)+-48&255)>=10){sa=11;break}}break}default:sa=na}na=c[g>>2]|0;if(!na){c[o>>2]=(c[o>>2]|0)+-1;y=C;z=sa;r=269;break}else{c[g>>2]=na+-1;y=C;z=sa;r=269;break}}else{q=C;r=270}break}case 201:{if(!F)c[o>>2]=(c[o>>2]|0)+-1;else c[g>>2]=F+-1;c[b+8>>2]=10;y=G;z=4;r=269;break}case 237:{c[b+8>>2]=5;$=L;aa=4;r=263;break}case 240:{L=c[g>>2]|0;if(!L){c[o>>2]=(c[o>>2]|0)+-1;ta=c[g>>2]|0}else{b=L+-1|0;c[g>>2]=b;ta=b}h:while(1){if(((c[l>>2]|0)!=0?(uf(c[n>>2]|0)|0)!=0:0)?(b=c[o>>2]|0,b>>>0<(uf(c[n>>2]|0)|0)>>>0):0){b=tf(c[n>>2]|0)|0;L=c[o>>2]|0;c[o>>2]=L+1;va=b+L|0;wa=c[g>>2]|0}else{L=c[g>>2]|0;b=L+1|0;c[g>>2]=b;va=e+L|0;wa=b}if(wa>>>0>=f>>>0){xa=3;break}b=a[va>>0]|0;if((b+-48&255)<10|((b&-33)+-65&255)<26)continue;switch(b<<24>>24){case 35:case 95:break;default:{ya=wa;r=252;break h}}}do if((r|0)==252)if(!ya){c[o>>2]=(c[o>>2]|0)+-1;xa=12;break}else{c[g>>2]=ya+-1;xa=12;break}while(0);if(!(c[l>>2]|0)){sf(c[n>>2]|0);c[l>>2]=1;rf(c[n>>2]|0,e+ta|0,(c[g>>2]|0)-ta|0);c[o>>2]=0;if((xa|0)==3){q=M;r=270;break}ya=tf(c[n>>2]|0)|0;wa=uf(c[n>>2]|0)|0;c[l>>2]=0;za=ya;Aa=wa}else{za=e+ta|0;Aa=(c[g>>2]|0)-ta|0}if((Aa|0)>0){if(!(ho(242630,za,Aa)|0)){y=M;z=0;r=269;break}if(!(ho(242635,za,Aa)|0)){y=M;z=0;r=269;break}if(!(ho(238485,za,Aa)|0)){y=M;z=7;r=269;break}}if((xa|0)==3){q=M;r=270}else{y=M;z=xa;r=269}break}case 265:{y=u;z=6;r=269;break}case 266:{y=v;z=9;r=269;break}case 267:{y=w;z=5;r=269;break}case 268:{y=x;z=8;r=269;break}}if((r|0)==263){y=$;z=aa;r=269}else if((r|0)==270)if(!(c[l>>2]|0)){sf(c[n>>2]|0);Ba=1;Ca=q;Da=3;r=272}else{Ba=1;Ca=q;Da=3;r=272}do if((r|0)==269)if(!(c[l>>2]|0))if((z|0)==4){Ea=4;return Ea|0}else{c[h>>2]=e+y;c[i>>2]=(c[g>>2]|0)-y;Fa=z;break}else{Ba=0;Ca=y;Da=z;r=272}while(0);if((r|0)==272){c[l>>2]=1;rf(c[n>>2]|0,e+Ca|0,(c[g>>2]|0)-Ca|0);c[o>>2]=0;if(Ba)Fa=Da;else{c[h>>2]=tf(c[n>>2]|0)|0;c[i>>2]=uf(c[n>>2]|0)|0;c[l>>2]=0;Fa=Da}}if((Fa&-2|0)!=12){Ea=Fa;return Ea|0}Da=c[h>>2]|0;if((a[Da>>0]|0)!=34){Ea=Fa;return Ea|0}l=c[i>>2]|0;if(l>>>0<=1)ua(238490,238155,736,238216);c[h>>2]=Da+1;c[i>>2]=l+-2;Ea=Fa;return Ea|0}function Af(a){a=a|0;var b=0;do switch(a|0){case 0:{b=239012;break}case 1:{b=238982;break}case 2:{b=238917;break}case 3:{b=238884;break}case 4:{b=238823;break}case 5:{b=238796;break}case 6:{b=238767;break}case 8:{b=238709;break}case 7:{b=238646;break}case 9:{b=238586;break}case 10:{b=238522;break}default:b=238503}while(0);return b|0}function Bf(a){a=a|0;var b=0;if(!a){b=-1;return b|0}b=c[a+8>>2]|0;return b|0}function Cf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(a[b>>0]|0)==45;f=e?b+1|0:b;g=(a[f>>0]|0)==43?f+1|0:f;f=b+d|0;a:do if(g>>>0<f>>>0){d=0;b=0;h=g;while(1){if((b|0)>214748364|(b|0)==214748364&d>>>0>3435973843){i=3;break}j=Mo(d|0,b|0,10,0)|0;k=C;l=Ao(-1,2147483647,j|0,k|0)|0;m=C;n=a[h>>0]|0;o=(n&255)+-48|0;p=((o|0)<0)<<31>>31;if((m|0)<(p|0)|(m|0)==(p|0)&l>>>0<o>>>0){i=5;break}if((n+-48&255)>9){i=7;break}h=h+1|0;n=Bo(o|0,p|0,j|0,k|0)|0;k=C;if(h>>>0>=f>>>0){q=n;r=k;break a}else{d=n;b=k}}if((i|0)==3){c[(Xm()|0)>>2]=34;s=e?-2147483648:2147483647;t=e?0:-1;C=s;return t|0}else if((i|0)==5){c[(Xm()|0)>>2]=34;s=e?-2147483648:2147483647;t=e?0:-1;C=s;return t|0}else if((i|0)==7){c[(Xm()|0)>>2]=34;s=e?-2147483648:2147483647;t=e?0:-1;C=s;return t|0}}else{q=0;r=0}while(0);i=Mo(q|0,r|0,(e?-1:1)|0,(e?-1:0)|0)|0;s=C;t=i;C=s;return t|0}function Df(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=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;g=i;i=i+80|0;h=g;j=c[b+16>>2]|0;k=c[b+32>>2]|0;if(!k)ua(239025,239053,75,239117);switch(a[(c[b+24>>2]|0)+(k+-1)>>0]|0){case 2:{l=c[b+12>>2]|0;m=239142;n=6;break}case 3:{l=Af(Bf(c[b+8>>2]|0)|0)|0;m=239148;n=6;break}default:{o=0;p=0;q=239156;r=13}}if((n|0)==6){n=go(m)|0;if(!l){o=0;p=0;q=m;r=n+6|0}else{o=1;p=l;q=m;r=n+8+(go(l)|0)|0}}l=b+40|0;n=b+52|0;m=pd[c[l>>2]&31](c[n>>2]|0,r+2|0)|0;if(!m){s=0;i=g;return s|0}a[m>>0]=0;ao(m,q)|0;q=m+(go(m)|0)|0;a[q>>0]=a[239164]|0;a[q+1>>0]=a[239165]|0;a[q+2>>0]=a[239166]|0;a[q+3>>0]=a[239167]|0;a[q+4>>0]=a[239168]|0;a[q+5>>0]=a[239169]|0;a[q+6>>0]=a[239170]|0;if(o){o=m+(go(m)|0)|0;a[o>>0]=a[239171]|0;a[o+1>>0]=a[239172]|0;a[o+2>>0]=a[239173]|0;ao(m,p)|0}p=m+(go(m)|0)|0;a[p>>0]=10;a[p+1>>0]=0;if(!f){s=m;i=g;return s|0}f=j>>>0>29?j+-30|0:0;p=j+30|0;o=(j>>>0>30?j+10|0:40)-j|0;Eo(h|0,32,o|0)|0;a:do if(f>>>0<(p>>>0>e>>>0?e:p)>>>0){q=j+30|0;r=o+-1-f-~(q>>>0<e>>>0?q:e)|0;q=o;k=f;while(1){t=a[d+k>>0]|0;switch(t<<24>>24){case 13:case 10:{a[h+q>>0]=32;break}default:a[h+q>>0]=t}q=q+1|0;if((q|0)==(r|0)){u=r;break a}else k=k+1|0}}else u=o;while(0);if(u>>>0>=72)ua(239174,239053,127,239117);a[h+u>>0]=10;a[h+(u+1)>>0]=0;u=c[l>>2]|0;l=c[n>>2]|0;o=go(m)|0;d=o+43+(go(h)|0)|0;o=pd[u&31](l,d)|0;if(o){a[o>>0]=0;ao(o,m)|0;ao(o,h)|0;h=o+(go(o)|0)|0;d=239182;l=h+43|0;do{a[h>>0]=a[d>>0]|0;h=h+1|0;d=d+1|0}while((h|0)<(l|0))}ed[c[b+48>>2]&31](c[n>>2]|0,m);s=o;i=g;return s|0}function Ef(b){b=b|0;var e=0,f=0,g=0;e=Ff(b,239225,1)|0;if(e){f=e;return f|0}e=c[b+32>>2]|0;if(!e)ua(239025,239053,166,239227);g=(c[b+24>>2]|0)+(e+-1)|0;switch(d[g>>0]|0|0){case 1:case 12:{f=0;return f|0}case 3:case 2:{f=2;return f|0}default:{if(c[b+56>>2]&16){f=0;return f|0}a[g>>0]=2;c[b+12>>2]=239242;f=2;return f|0}}return 0}function Ff(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=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,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=i;i=i+16|0;h=g+4|0;j=g;k=b+16|0;c[k>>2]=0;l=b+32|0;m=c[l>>2]|0;if(!m)ua(239025,239053,197,239256);n=b+24|0;o=b+56|0;p=b+8|0;q=b+12|0;r=b+4|0;t=b+28|0;u=b+36|0;v=b+20|0;w=m;a:while(1){m=(c[n>>2]|0)+(w+-1)|0;b:do switch(d[m>>0]|0){case 2:case 3:{x=2;y=137;break a;break}case 1:{z=c[o>>2]|0;if(z&8){a[m>>0]=12;y=7;break b}if(z&4){x=0;y=137;break a}if((c[k>>2]|0)==(f|0)){x=0;y=137;break a}if((zf(c[p>>2]|0,e,f,k,h,j)|0)==3)y=7;else{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239270;y=7}break}case 9:case 11:case 6:case 12:case 0:{c:do switch(zf(c[p>>2]|0,e,f,k,h,j)|0){case 3:{x=0;y=137;break a;break}case 4:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=3;y=7;break b;break}case 12:{z=c[b>>2]|0;if(((z|0)!=0?(A=c[z+20>>2]|0,(A|0)!=0):0)?(dd[A&15](c[r>>2]|0,c[h>>2]|0,c[j>>2]|0)|0)==0:0){y=18;break a}else B=0;break}case 13:{A=c[b>>2]|0;if(((A|0)!=0?(c[A+20>>2]|0)!=0:0)?(sf(c[v>>2]|0),vf(c[v>>2]|0,c[h>>2]|0,c[j>>2]|0),A=c[(c[b>>2]|0)+20>>2]|0,z=c[r>>2]|0,D=tf(c[v>>2]|0)|0,E=uf(c[v>>2]|0)|0,(dd[A&15](z,D,E)|0)==0):0){y=22;break a}else B=0;break}case 0:{E=c[b>>2]|0;if(((E|0)!=0?(D=c[E+4>>2]|0,(D|0)!=0):0)?(pd[D&31](c[r>>2]|0,(a[c[h>>2]>>0]|0)==116&1)|0)==0:0){y=26;break a}else B=0;break}case 7:{D=c[b>>2]|0;if(((D|0)!=0?(E=c[D>>2]|0,(E|0)!=0):0)?(kd[E&31](c[r>>2]|0)|0)==0:0){y=30;break a}else B=0;break}case 6:{E=c[b>>2]|0;if(((E|0)!=0?(D=c[E+24>>2]|0,(D|0)!=0):0)?(kd[D&31](c[r>>2]|0)|0)==0:0){y=34;break a}else B=4;break}case 5:{D=c[b>>2]|0;if(((D|0)!=0?(E=c[D+36>>2]|0,(E|0)!=0):0)?(kd[E&31](c[r>>2]|0)|0)==0:0){y=38;break a}else B=9;break}case 10:{E=c[b>>2]|0;if(E){D=c[E+16>>2]|0;if(D)if(!(dd[D&15](c[r>>2]|0,c[h>>2]|0,c[j>>2]|0)|0)){y=42;break a}else{B=0;break c}D=c[E+8>>2]|0;if(D){E=Xm()|0;c[E>>2]=0;z=c[h>>2]|0;A=(a[z>>0]|0)==45;F=A?z+1|0:z;G=(a[F>>0]|0)==43?F+1|0:F;F=z+(c[j>>2]|0)|0;d:do if(G>>>0<F>>>0){z=0;H=0;I=G;while(1){if((z|0)>214748364|(z|0)==214748364&H>>>0>3435973843){y=46;break}J=Mo(H|0,z|0,10,0)|0;K=C;L=Ao(-1,2147483647,J|0,K|0)|0;M=C;N=a[I>>0]|0;O=(N&255)+-48|0;P=((O|0)<0)<<31>>31;if((M|0)<(P|0)|(M|0)==(P|0)&L>>>0<O>>>0){y=48;break}if((N+-48&255)>9){y=50;break}I=I+1|0;N=Bo(O|0,P|0,J|0,K|0)|0;K=C;if(I>>>0>=F>>>0){Q=N;R=K;y=52;break d}else{z=K;H=N}}if((y|0)==46){y=0;c[E>>2]=34;S=A?0:-1;T=A?-2147483648:2147483647;U=1;break}else if((y|0)==48){y=0;c[E>>2]=34;S=A?0:-1;T=A?-2147483648:2147483647;U=1;break}else if((y|0)==50){y=0;c[E>>2]=34;S=A?0:-1;T=A?-2147483648:2147483647;U=1;break}}else{Q=0;R=0;y=52}while(0);if((y|0)==52){y=0;E=Mo(Q|0,R|0,(A?-1:1)|0,(A?-1:0)|0)|0;S=E;T=C;U=0}E=Bo(S|0,T|0,1,-2147483648)|0;F=C;if(!((F>>>0<0|(F|0)==0&E>>>0<2)&U))if(!(dd[D&15](c[r>>2]|0,S,T)|0)){y=58;break a}else{B=0;break c}a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239336;E=c[k>>2]|0;F=c[j>>2]|0;if(E>>>0<F>>>0){c[k>>2]=0;y=7;break b}else{c[k>>2]=E-F;y=7;break b}}else B=0}else B=0;break}case 11:{F=c[b>>2]|0;if(F){E=c[F+16>>2]|0;if(E)if(!(dd[E&15](c[r>>2]|0,c[h>>2]|0,c[j>>2]|0)|0)){y=62;break a}else{B=0;break c}if(c[F+12>>2]|0){sf(c[v>>2]|0);rf(c[v>>2]|0,c[h>>2]|0,c[j>>2]|0);F=tf(c[v>>2]|0)|0;c[h>>2]=F;E=Xm()|0;c[E>>2]=0;V=+Zn(F,0);if(V==s|V==-s?(c[E>>2]|0)==34:0){a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239353;E=c[k>>2]|0;F=c[j>>2]|0;if(E>>>0<F>>>0){c[k>>2]=0;y=7;break b}else{c[k>>2]=E-F;y=7;break b}}if(!(ld[c[(c[b>>2]|0)+12>>2]&0](c[r>>2]|0,V)|0)){y=70;break a}else B=0}else B=0}else B=0;break}case 8:{F=c[l>>2]|0;if(!F){y=72;break a}if((a[(c[n>>2]|0)+(F+-1)>>0]|0)==9){E=c[b>>2]|0;if((E|0)!=0?(G=c[E+40>>2]|0,(G|0)!=0):0){E=(kd[G&31](c[r>>2]|0)|0)==0;G=c[l>>2]|0;if(E){W=G;y=77;break a}else X=G}else X=F;F=X+-1|0;c[l>>2]=F;Y=F;break b}else y=79;break}case 9:case 2:case 1:{y=79;break}default:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239430;y=7;break b}}while(0);if((y|0)==79){y=0;a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239387;y=7;break b}F=c[l>>2]|0;if(!F){y=82;break a}G=(c[n>>2]|0)+(F+-1)|0;switch(a[G>>0]|0){case 0:case 12:{a[G>>0]=1;break}case 6:{a[G>>0]=7;break}default:a[G>>0]=10}if(!B)y=7;else{G=c[t>>2]|0;F=c[l>>2]|0;if((G|0)==(F|0)){E=G+128|0;c[t>>2]=E;G=c[u>>2]|0;H=dd[c[G+4>>2]&15](c[G+12>>2]|0,c[n>>2]|0,E)|0;c[n>>2]=H;Z=c[l>>2]|0;_=H}else{Z=F;_=c[n>>2]|0}c[l>>2]=Z+1;a[_+Z>>0]=B;y=7}break}case 8:case 4:{switch(zf(c[p>>2]|0,e,f,k,h,j)|0){case 3:{x=0;y=137;break a;break}case 4:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=3;y=7;break b;break}case 13:{F=c[b>>2]|0;if(F)if(!(c[F+28>>2]|0))y=98;else{sf(c[v>>2]|0);vf(c[v>>2]|0,c[h>>2]|0,c[j>>2]|0);c[h>>2]=tf(c[v>>2]|0)|0;c[j>>2]=uf(c[v>>2]|0)|0;y=98}break}case 12:{y=98;break}case 9:{F=c[l>>2]|0;if(!F){y=104;break a}H=c[n>>2]|0;if((a[H+(F+-1)>>0]|0)==4){E=c[b>>2]|0;if((E|0)!=0?(G=c[E+32>>2]|0,(G|0)!=0):0){E=(kd[G&31](c[r>>2]|0)|0)==0;G=c[l>>2]|0;if(E){$=G;y=109;break a}else aa=G}else aa=F;G=aa+-1|0;c[l>>2]=G;Y=G;break b}else{ba=F;ca=H;y=111}break}default:{ba=c[l>>2]|0;ca=c[n>>2]|0;y=111}}if((y|0)==111){y=0;a[ca+(ba+-1)>>0]=2;c[q>>2]=239460;y=7;break b}if((((y|0)==98?(y=0,H=c[b>>2]|0,(H|0)!=0):0)?(F=c[H+28>>2]|0,(F|0)!=0):0)?(dd[F&15](c[r>>2]|0,c[h>>2]|0,c[j>>2]|0)|0)==0:0){y=101;break a}a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=5;y=7;break}case 5:{switch(zf(c[p>>2]|0,e,f,k,h,j)|0){case 3:{x=0;y=137;break a;break}case 1:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=6;y=7;break b;break}case 4:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=3;y=7;break b;break}default:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239498;y=7;break b}}break}case 7:{switch(zf(c[p>>2]|0,e,f,k,h,j)|0){case 3:{x=0;y=137;break a;break}case 9:{F=c[b>>2]|0;if(((F|0)!=0?(H=c[F+32>>2]|0,(H|0)!=0):0)?(kd[H&31](c[r>>2]|0)|0)==0:0){y=120;break a}H=(c[l>>2]|0)+-1|0;c[l>>2]=H;Y=H;break b;break}case 2:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=8;y=7;break b;break}case 4:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=3;y=7;break b;break}default:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239554;H=c[k>>2]|0;F=c[j>>2]|0;if(H>>>0<F>>>0){c[k>>2]=0;y=7;break b}else{c[k>>2]=H-F;y=7;break b}}}break}case 10:{switch(zf(c[p>>2]|0,e,f,k,h,j)|0){case 3:{x=0;y=137;break a;break}case 8:{F=c[b>>2]|0;if(((F|0)!=0?(H=c[F+40>>2]|0,(H|0)!=0):0)?(kd[H&31](c[r>>2]|0)|0)==0:0){y=131;break a}H=(c[l>>2]|0)+-1|0;c[l>>2]=H;Y=H;break b;break}case 2:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=11;y=7;break b;break}case 4:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=3;y=7;break b;break}default:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239607;y=7;break b}}break}default:{y=136;break a}}while(0);if((y|0)==7){y=0;Y=c[l>>2]|0}if(!Y){y=3;break}else w=Y}switch(y|0){case 3:{ua(239025,239053,197,239256);break}case 18:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 22:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 26:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 30:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 34:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 38:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 42:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 58:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 62:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 70:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 72:{ua(239025,239053,334,239256);break}case 77:{a[(c[n>>2]|0)+(W+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 82:{ua(239025,239053,361,239256);break}case 101:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 104:{ua(239025,239053,405,239256);break}case 109:{a[(c[n>>2]|0)+($+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 120:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 131:{a[(c[n>>2]|0)+((c[l>>2]|0)+-1)>>0]=2;c[q>>2]=239287;x=1;i=g;return x|0}case 136:{mc();break}case 137:{i=g;return x|0}}return 0}function Gf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+32|0;f=e+8|0;g=e;h=e+16|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+8>>2]=b;c[h+12>>2]=d;j=(b|0)!=0;if(j)Eo(b|0,0,d|0)|0;k=ef(6460,0,h)|0;c[g>>2]=1;ff(k,1,g)|0;hf(k,a,go(a)|0)|0;if(!(jf(k)|0)){gf(k);l=c[h+4>>2]|0;i=e;return l|0}if(j&(d|0)!=0){j=kf(k,1,a,go(a)|0)|0;c[f>>2]=j;Rn(b,d,240123,f)|0;ed[c[k+48>>2]&31](c[k+52>>2]|0,j)}gf(k);l=0;i=e;return l|0}function Hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((b|0)==0|(a|0)==0){e=0;return e|0}else{f=a;g=b}while(1){b=c[g>>2]|0;if(!b){h=f;i=11;break}if((c[f>>2]|0)!=3){e=0;i=13;break}a=f+8|0;j=c[f+16>>2]|0;a:do if((j|0)>0){k=c[a>>2]|0;l=0;while(1){if(!(eo(b,c[k+(l<<2)>>2]|0)|0)){m=l;break}n=l+1|0;if((n|0)<(j|0))l=n;else{o=f;p=n;break a}}o=c[(c[a+4>>2]|0)+(m<<2)>>2]|0;p=m}else{o=f;p=0}while(0);if((p|0)==(j|0)){e=0;i=13;break}if(!o){e=0;i=13;break}else{f=o;g=g+4|0}}if((i|0)==11)if((d|0)==8){e=h;return e|0}else return ((c[h>>2]|0)==(d|0)?h:0)|0;else if((i|0)==13)return e|0;return 0}function If(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if(!a)return;switch(c[a>>2]|0){case 1:{uo(c[a+8>>2]|0);uo(a);return}case 2:{uo(c[a+24>>2]|0);uo(a);return}case 3:{b=a+8|0;d=a+16|0;if(!(c[d>>2]|0))e=b+4|0;else{f=b+4|0;g=0;do{uo(c[(c[b>>2]|0)+(g<<2)>>2]|0);c[(c[b>>2]|0)+(g<<2)>>2]=0;If(c[(c[f>>2]|0)+(g<<2)>>2]|0);c[(c[f>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while(g>>>0<(c[d>>2]|0)>>>0);e=f}uo(c[b>>2]|0);uo(c[e>>2]|0);uo(a);return}case 4:{e=a+8|0;b=e+4|0;if(c[b>>2]|0){f=0;do{If(c[(c[e>>2]|0)+(f<<2)>>2]|0);c[(c[e>>2]|0)+(f<<2)>>2]=0;f=f+1|0}while(f>>>0<(c[b>>2]|0)>>>0)}uo(c[e>>2]|0);uo(a);return}default:{uo(a);return}}}function Jf(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=to(32)|0;if(d){c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;c[d>>2]=7;e=(Rf(a,d)|0)==0&1;i=b;return e|0}d=c[a+8>>2]|0;if(!d){e=0;i=b;return e|0}Rn(d,c[a+12>>2]|0,239871,b)|0;e=0;i=b;return e|0}function Kf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=to(32)|0;if(e){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;c[e>>2]=(b|0)!=0?5:6;f=(Rf(a,e)|0)==0&1;i=d;return f|0}e=c[a+8>>2]|0;if(!e){f=0;i=d;return f|0}Rn(e,c[a+12>>2]|0,239871,d)|0;f=0;i=d;return f|0}function Lf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+16|0;g=f+8|0;j=f;k=f+12|0;l=to(32)|0;if(!l){m=c[b+8>>2]|0;if(!m){n=0;i=f;return n|0}Rn(m,c[b+12>>2]|0,239871,j)|0;n=0;i=f;return n|0};c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;c[l>>2]=2;j=to(e+1|0)|0;c[l+24>>2]=j;if(!j){uo(l);m=c[b+8>>2]|0;if(!m){n=0;i=f;return n|0}Rn(m,c[b+12>>2]|0,239871,g)|0;n=0;i=f;return n|0}Co(j|0,d|0,e|0)|0;a[j+e>>0]=0;e=l+28|0;c[e>>2]=0;d=Xm()|0;c[d>>2]=0;g=Cf(j,go(j)|0)|0;m=l+8|0;c[m>>2]=g;c[m+4>>2]=C;if(!(c[d>>2]|0))c[e>>2]=c[e>>2]|1;c[k>>2]=0;c[d>>2]=0;h[l+16>>3]=+Zn(j,k);j=c[k>>2]|0;if((c[d>>2]|0)==0&(j|0)!=0?(a[j>>0]|0)==0:0)c[e>>2]=c[e>>2]|2;n=(Rf(b,l)|0)==0&1;i=f;return n|0}function Mf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f+8|0;h=f;j=to(32)|0;if(!j){k=c[b+8>>2]|0;if(!k){l=0;i=f;return l|0}Rn(k,c[b+12>>2]|0,239871,h)|0;l=0;i=f;return l|0};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[j>>2]=1;h=to(e+1|0)|0;c[j+8>>2]=h;if(h){Co(h|0,d|0,e|0)|0;a[h+e>>0]=0;l=(Rf(b,j)|0)==0&1;i=f;return l|0}uo(j);j=c[b+8>>2]|0;if(!j){l=0;i=f;return l|0}Rn(j,c[b+12>>2]|0,239871,g)|0;l=0;i=f;return l|0}function Nf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;d=b+8|0;e=b;f=to(32)|0;if(!f){g=c[a+8>>2]|0;if(!g){h=0;i=b;return h|0}Rn(g,c[a+12>>2]|0,239871,e)|0;h=0;i=b;return h|0};c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;c[f>>2]=3;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;e=to(12)|0;if(e){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;g=c[a>>2]|0;c[e+4>>2]=f;c[e+8>>2]=g;c[a>>2]=e;h=1;i=b;return h|0}e=c[a+8>>2]|0;if(!e){h=0;i=b;return h|0}Rn(e,c[a+12>>2]|0,239871,d)|0;h=0;i=b;return h|0}function Of(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b;e=c[a>>2]|0;if(!e){f=c[a+8>>2]|0;if(!f){g=0;i=b;return g|0}Rn(f,c[a+12>>2]|0,239648,d)|0;g=0;i=b;return g|0}else{c[a>>2]=c[e+8>>2];d=c[e+4>>2]|0;uo(e);if(!d){g=0;i=b;return g|0}g=(Rf(a,d)|0)==0&1;i=b;return g|0}return 0}function Pf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+16|0;d=b+8|0;e=b;f=to(32)|0;if(!f){g=c[a+8>>2]|0;if(!g){h=0;i=b;return h|0}Rn(g,c[a+12>>2]|0,239871,e)|0;h=0;i=b;return h|0};c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;c[f>>2]=4;c[f+8>>2]=0;c[f+12>>2]=0;e=to(12)|0;if(e){c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;g=c[a>>2]|0;c[e+4>>2]=f;c[e+8>>2]=g;c[a>>2]=e;h=1;i=b;return h|0}e=c[a+8>>2]|0;if(!e){h=0;i=b;return h|0}Rn(e,c[a+12>>2]|0,239871,d)|0;h=0;i=b;return h|0}function Qf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;i=i+16|0;d=b;e=c[a>>2]|0;if(!e){f=c[a+8>>2]|0;if(!f){g=0;i=b;return g|0}Rn(f,c[a+12>>2]|0,239648,d)|0;g=0;i=b;return g|0}else{c[a>>2]=c[e+8>>2];d=c[e+4>>2]|0;uo(e);if(!d){g=0;i=b;return g|0}g=(Rf(a,d)|0)==0&1;i=b;return g|0}return 0}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=i;i=i+48|0;e=d+32|0;f=d+24|0;g=d+16|0;h=d+8|0;j=d;if(!a)ua(239697,239709,218,239771);if(!b)ua(239789,239709,219,239771);k=c[a>>2]|0;if(!k){l=a+4|0;if(c[l>>2]|0)ua(239799,239709,234,239771);c[l>>2]=b;m=0;i=d;return m|0}l=c[k+4>>2]|0;do if(l){if((c[l>>2]|0)!=3){if((c[l>>2]|0)!=4)break;n=l+8|0;o=n+4|0;p=wo(c[n>>2]|0,(c[o>>2]<<2)+4|0)|0;if(p){c[n>>2]=p;n=c[o>>2]|0;c[p+(n<<2)>>2]=b;c[o>>2]=n+1;m=0;i=d;return m|0}n=c[a+8>>2]|0;if(!n){m=12;i=d;return m|0}Rn(n,c[a+12>>2]|0,239871,f)|0;m=12;i=d;return m|0}n=c[k>>2]|0;if(!n){o=c[b>>2]|0;if((o|0)==1){c[k>>2]=c[b+8>>2];uo(b);m=0;i=d;return m|0}p=c[a+8>>2]|0;if(!p){m=22;i=d;return m|0}q=c[a+12>>2]|0;c[j>>2]=o;Rn(p,q,239817,j)|0;m=22;i=d;return m|0}c[k>>2]=0;q=l+8|0;p=l+16|0;o=wo(c[q>>2]|0,(c[p>>2]<<2)+4|0)|0;if(!o){r=c[a+8>>2]|0;if(!r){m=12;i=d;return m|0}Rn(r,c[a+12>>2]|0,239871,h)|0;m=12;i=d;return m|0}c[q>>2]=o;o=q+4|0;r=wo(c[o>>2]|0,(c[p>>2]<<2)+4|0)|0;if(r){c[o>>2]=r;r=c[p>>2]|0;c[(c[q>>2]|0)+(r<<2)>>2]=n;c[(c[o>>2]|0)+(r<<2)>>2]=b;c[p>>2]=r+1;m=0;i=d;return m|0}r=c[a+8>>2]|0;if(!r){m=12;i=d;return m|0}Rn(r,c[a+12>>2]|0,239871,g)|0;m=12;i=d;return m|0}while(0);g=c[a+8>>2]|0;if(!g){m=22;i=d;return m|0}b=c[a+12>>2]|0;c[e>>2]=c[l>>2];Rn(g,b,239885,e)|0;m=22;i=d;return m|0}function Sf(a){a=a|0;var b=0,d=0;c[79]=0;b=Bg(a*12|0,0)|0;c[1626]=b;if((a|0)>0)d=0;else return;do{c[b+(d*12|0)>>2]=-1;c[b+(d*12|0)+8>>2]=0;d=d+1|0}while((d|0)!=(a|0));return}function Tf(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;i=i+16|0;e=b;if(((c[(c[1626]|0)+(a*12|0)>>2]|0)==-1?(f=Yd(a)|0,g=ae(a,0)|0,h=a&65535,j=c[33]|0,k=j+(h<<3)|0,l=j+(h<<3)+2|0,j=Uf(g+8|0,c[g>>2]|0,(d[k>>0]|d[k+1>>0]<<8)&65535,(d[l>>0]|d[l+1>>0]<<8)&65535,c[g+4>>2]|0,(c[1626]|0)+(a*12|0)+4|0)|0,c[(c[1626]|0)+(a*12|0)>>2]=j,j=ce(a&65535)|0,g=(c[79]|0)/1024|0,c[e>>2]=a,c[e+4>>2]=j,c[e+8>>2]=g,Pn(239970,e)|0,(f|0)==0):0)?(f=(c[33]|0)+(h<<3)|0,((d[f>>0]|d[f+1>>0]<<8)&65535)>64):0)be(a);f=c[1626]|0;c[f+(a*12|0)+8>>2]=c[26];i=b;return c[f+(a*12|0)>>2]|0}function Uf(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+16|0;k=j;l=j+4|0;ob(1,l|0);Tb(3553,c[l>>2]|0);$c(3553,10242,10497);$c(3553,10243,10497);if(!g){$c(3553,10241,9728);$c(3553,10240,9728)}else{$c(3553,10241,((a[239969]|0)!=0?9729:9728)|0);$c(3553,10240,((a[239969]|0)!=0?9729:9728)|0)}if(!d){pc(3553,0,6408,e|0,f|0,0,6408,5121,b|0);m=32}else{pc(3553,0,6407,e|0,f|0,0,6407,33635,b|0);m=16}b=(_(_(f,e)|0,m)|0)/8|0;c[h>>2]=b;c[79]=(c[79]|0)+b;b=_b()|0;if(!b){n=c[l>>2]|0;i=j;return n|0}c[k>>2]=b;Pn(240002,k)|0;n=c[l>>2]|0;i=j;return n|0}function Vf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;i=i+32|0;d=b+16|0;e=b+8|0;f=b;switch(Zd(a)|0){case 1:{g=a;break}case 3:case 2:{g=Dd(a&65535)|0;break}case 6:{Ie(a);i=b;return}default:{h=ce(a&65535)|0;c[f>>2]=a;c[f+4>>2]=h;Pn(240027,f)|0;i=b;return}}if((c[(c[1626]|0)+(g*12|0)>>2]|0)==-1){i=b;return}f=ce(g&65535)|0;c[e>>2]=g;c[e+4>>2]=f;Pn(240063,e)|0;kb(1,(c[1626]|0)+(g*12|0)|0);e=c[1626]|0;c[e+(g*12|0)>>2]=-1;f=(c[79]|0)-(c[e+(g*12|0)+4>>2]|0)|0;c[79]=f;c[d>>2]=(f|0)/1024|0;Pn(240090,d)|0;i=b;return}function Wf(a){a=a|0;var b=0,d=0;if((c[1627]|0)==(a|0))return;Yf();b=c[1627]|0;if(!((a|0)<0&(b|0)>-1)){if((a|0)>-1&(b|0)<0){Ob(32888);qb(3553)}}else{rc(32888);_c(3553)}c[1627]=a;if((a|0)<1)d=0;else d=Tf(a)|0;Tb(3553,d|0);return}function Xf(a){a=a|0;var d=0,f=0.0,g=0,h=0;if(c[1628]|0){Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);d=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,d|0);c[1628]=0}d=(a|0)==216;if((b[16]|0)!=(b[8]|0))if(d){vg();_c(3089);return}else{qb(3089);f=+(e[8]|0)/+(e[10]|0);g=b[a>>1]|0;h=b[a+6>>1]|0;wc(~~(f*+(g<<16>>16))|0,~~(f*+((e[17]|0)-h|0))|0,~~(f*+((b[a+4>>1]|0)-(g<<16>>16)|0))|0,~~(f*+(h-(b[a+2>>1]|0)|0))|0);return}if(!d){qb(3089);d=b[a>>1]|0;h=b[a+6>>1]|0;wc(d|0,(e[17]|0)-h|0,(b[a+4>>1]|0)-d|0,h-(b[a+2>>1]|0)|0);return}tc(5889);Ma();Ra(+(+(b[108]|0)),+(+(b[110]|0)),+(+(b[111]|0)),+(+(b[109]|0)),10.0,-4096.0);a=b[108]|0;h=b[111]|0;hb(a|0,(e[9]|0)-h|0,(b[110]|0)-a|0,h-(b[109]|0)|0);tc(5888);Ma();_c(3089);h=c[4]|0;a=c[5]|0;if((h&65535)<<16>>16==(a&65535)<<16>>16?(h>>>16&65535)<<16>>16==(a>>>16&65535)<<16>>16:0)return;Ca(0.0,0.0,0.0);return}function Yf(){var a=0;if(!(c[1628]|0))return;Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);a=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,a|0);c[1628]=0;return}function Zf(){var a=0;Qn(240110)|0;if(!(b[63]|0))return;else a=1;while(1){Vf(a);if((a|0)<(e[63]|0))a=a+1|0;else break}return}function _f(){Ob(32884);Ob(32888);Ob(32886);qb(3553);if(c[1629]|0)return;c[1629]=vo(6144,20)|0;return}function $f(d,f,g,h,j,k,l,m,n){d=d|0;f=+f;g=+g;h=+h;j=j|0;k=+k;l=+l;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;o=i;i=i+16|0;p=o;q=ae(d,0)|0;r=(Zd(d)|0)==2;d=a[j+3>>0]|0;s=r&d<<24>>24==-1;if(!(d<<24>>24)){i=o;return}t=(n&1|0)==0?l:-l;l=(n&2|0)==0?m:-m;do if(!s){if(k==0.0){if(!(c[58]|0)){if(!((t>0.0?t:-t)==1.0))break;if(!((l>0.0?l:-l)==1.0))break}d=c[j>>2]|0;Wf(e[q+2>>1]|0);r=q+28|0;u=c[1629]|0;v=~~h&65535;m=+(b[q+4>>1]|0);if(t!=1.0|l!=1.0){w=l*+(b[q+6>>1]|0)+g;x=c[r>>2]|0;y=c[q+32>>2]|0;z=c[1628]|0;c[1628]=z+1;b[u+(z*20|0)+12>>1]=~~(t*m+f);b[u+(z*20|0)+14>>1]=~~w;b[u+(z*20|0)+16>>1]=v;c[u+(z*20|0)+4>>2]=x;c[u+(z*20|0)+8>>2]=y;c[u+(z*20|0)>>2]=d;z=q+8|0;w=t*+(b[z>>1]|0)+f;y=q+10|0;A=l*+(b[y>>1]|0)+g;x=q+36|0;B=c[x>>2]|0;C=q+40|0;D=c[C>>2]|0;E=c[1628]|0;c[1628]=E+1;b[u+(E*20|0)+12>>1]=~~w;b[u+(E*20|0)+14>>1]=~~A;b[u+(E*20|0)+16>>1]=v;c[u+(E*20|0)+4>>2]=B;c[u+(E*20|0)+8>>2]=D;c[u+(E*20|0)>>2]=d;E=q+12|0;A=t*+(b[E>>1]|0)+f;D=q+14|0;w=l*+(b[D>>1]|0)+g;B=q+44|0;F=c[B>>2]|0;G=q+48|0;H=c[G>>2]|0;I=c[1628]|0;c[1628]=I+1;b[u+(I*20|0)+12>>1]=~~A;b[u+(I*20|0)+14>>1]=~~w;b[u+(I*20|0)+16>>1]=v;c[u+(I*20|0)+4>>2]=F;c[u+(I*20|0)+8>>2]=H;c[u+(I*20|0)>>2]=d;I=c[1629]|0;w=t*+(b[z>>1]|0)+f;A=l*+(b[y>>1]|0)+g;y=c[x>>2]|0;x=c[C>>2]|0;C=c[1628]|0;c[1628]=C+1;b[I+(C*20|0)+12>>1]=~~w;b[I+(C*20|0)+14>>1]=~~A;b[I+(C*20|0)+16>>1]=v;c[I+(C*20|0)+4>>2]=y;c[I+(C*20|0)+8>>2]=x;c[I+(C*20|0)>>2]=d;A=t*+(b[E>>1]|0)+f;w=l*+(b[D>>1]|0)+g;D=c[B>>2]|0;B=c[G>>2]|0;G=c[1628]|0;c[1628]=G+1;b[I+(G*20|0)+12>>1]=~~A;b[I+(G*20|0)+14>>1]=~~w;b[I+(G*20|0)+16>>1]=v;c[I+(G*20|0)+4>>2]=D;c[I+(G*20|0)+8>>2]=B;c[I+(G*20|0)>>2]=d;w=t*+(b[q+16>>1]|0)+f;A=l*+(b[q+18>>1]|0)+g;G=c[q+52>>2]|0;B=c[q+56>>2]|0;D=c[1628]|0;c[1628]=D+1;b[I+(D*20|0)+12>>1]=~~w;b[I+(D*20|0)+14>>1]=~~A;b[I+(D*20|0)+16>>1]=v;c[I+(D*20|0)+4>>2]=G;c[I+(D*20|0)+8>>2]=B;c[I+(D*20|0)>>2]=d}else{A=+(b[q+6>>1]|0)+g;D=c[r>>2]|0;r=c[q+32>>2]|0;I=c[1628]|0;c[1628]=I+1;b[u+(I*20|0)+12>>1]=~~(m+f);b[u+(I*20|0)+14>>1]=~~A;b[u+(I*20|0)+16>>1]=v;c[u+(I*20|0)+4>>2]=D;c[u+(I*20|0)+8>>2]=r;c[u+(I*20|0)>>2]=d;I=q+8|0;A=+(b[I>>1]|0)+f;r=q+10|0;m=+(b[r>>1]|0)+g;D=q+36|0;B=c[D>>2]|0;G=q+40|0;E=c[G>>2]|0;C=c[1628]|0;c[1628]=C+1;b[u+(C*20|0)+12>>1]=~~A;b[u+(C*20|0)+14>>1]=~~m;b[u+(C*20|0)+16>>1]=v;c[u+(C*20|0)+4>>2]=B;c[u+(C*20|0)+8>>2]=E;c[u+(C*20|0)>>2]=d;C=q+12|0;m=+(b[C>>1]|0)+f;E=q+14|0;A=+(b[E>>1]|0)+g;B=q+44|0;x=c[B>>2]|0;y=q+48|0;z=c[y>>2]|0;H=c[1628]|0;c[1628]=H+1;b[u+(H*20|0)+12>>1]=~~m;b[u+(H*20|0)+14>>1]=~~A;b[u+(H*20|0)+16>>1]=v;c[u+(H*20|0)+4>>2]=x;c[u+(H*20|0)+8>>2]=z;c[u+(H*20|0)>>2]=d;H=c[1629]|0;A=+(b[I>>1]|0)+f;m=+(b[r>>1]|0)+g;r=c[D>>2]|0;D=c[G>>2]|0;G=c[1628]|0;c[1628]=G+1;b[H+(G*20|0)+12>>1]=~~A;b[H+(G*20|0)+14>>1]=~~m;b[H+(G*20|0)+16>>1]=v;c[H+(G*20|0)+4>>2]=r;c[H+(G*20|0)+8>>2]=D;c[H+(G*20|0)>>2]=d;m=+(b[C>>1]|0)+f;A=+(b[E>>1]|0)+g;E=c[B>>2]|0;B=c[y>>2]|0;y=c[1628]|0;c[1628]=y+1;b[H+(y*20|0)+12>>1]=~~m;b[H+(y*20|0)+14>>1]=~~A;b[H+(y*20|0)+16>>1]=v;c[H+(y*20|0)+4>>2]=E;c[H+(y*20|0)+8>>2]=B;c[H+(y*20|0)>>2]=d;A=+(b[q+16>>1]|0)+f;m=+(b[q+18>>1]|0)+g;y=c[q+52>>2]|0;B=c[q+56>>2]|0;E=c[1628]|0;c[1628]=E+1;b[H+(E*20|0)+12>>1]=~~A;b[H+(E*20|0)+14>>1]=~~m;b[H+(E*20|0)+16>>1]=v;c[H+(E*20|0)+4>>2]=y;c[H+(E*20|0)+8>>2]=B;c[H+(E*20|0)>>2]=d}if((c[1628]|0)<=6111){i=o;return}Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);d=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,d|0);c[1628]=0;i=o;return}}else{if(c[1628]|0){Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);d=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,d|0);c[1628]=0}_c(3042)}while(0);if(c[1628]|0){Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);d=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,d|0);c[1628]=0}Wf(e[q+2>>1]|0);xa();Ca(+f,+g,+h);if(k!=0.0)kc(+-k,0.0,0.0,1.0);if(!(!(t!=1.0)?!((n|0)!=0|l!=1.0):0))Pa(+t,+l,1.0);n=c[j>>2]|0;c[p>>2]=n;c[p+4>>2]=n;c[p+8>>2]=n;c[p+12>>2]=n;Ua(2,5122,0,q+4|0);hc(2,5126,0,q+28|0);Dc(4,5121,0,p|0);c[56]=(c[56]|0)+1;Yb(5,0,4);Ic();if(!s){i=o;return}qb(3042);i=o;return}function ag(a,f,h,i,j,k,l,m,n,o,p,q){a=a|0;f=+f;h=+h;i=+i;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=+o;p=+p;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;q=ae(a,0)|0;r=q+2|0;Wf(e[r>>1]|0);s=c[j>>2]|0;j=a&65535;a=c[33]|0;t=a+(j<<3)|0;u=d[t>>0]|d[t+1>>0]<<8;t=a+(j<<3)+2|0;j=d[t>>0]|d[t+1>>0]<<8;t=e[r>>1]|0;r=a+(t<<3)|0;v=d[r>>0]|d[r+1>>0]<<8;r=a+(t<<3)+2|0;t=d[r>>0]|d[r+1>>0]<<8;r=c[1628]|0;a=c[1629]|0;w=~~i;b[a+(r*20|0)+16>>1]=w;c[a+(r*20|0)>>2]=s;x=r+1|0;b[a+(x*20|0)+16>>1]=w;c[a+(x*20|0)>>2]=s;y=r+2|0;b[a+(y*20|0)+16>>1]=w;c[a+(y*20|0)>>2]=s;z=r+3|0;b[a+(z*20|0)+16>>1]=w;c[a+(z*20|0)>>2]=s;A=r+4|0;b[a+(A*20|0)+16>>1]=w;c[a+(A*20|0)>>2]=s;B=r+5|0;b[a+(B*20|0)+16>>1]=w;c[a+(B*20|0)>>2]=s;s=u&65535;u=j&65535;i=+((b[q+4>>1]|0)+k|0);if(o!=1.0|p!=1.0){j=~~(i*o+f)&65535;b[a+(x*20|0)+12>>1]=j;b[a+(r*20|0)+12>>1]=j;j=~~(+((b[q+6>>1]|0)+l|0)*p+h)&65535;b[a+(y*20|0)+14>>1]=j;b[a+(r*20|0)+14>>1]=j;j=~~(+(m-s+(b[q+12>>1]|0)|0)*o+f)&65535;b[a+(B*20|0)+12>>1]=j;b[a+(y*20|0)+12>>1]=j;j=~~(+(n-u+(b[q+10>>1]|0)|0)*p+h)&65535;b[a+(B*20|0)+14>>1]=j;b[a+(x*20|0)+14>>1]=j}else{j=~~(i+f)&65535;b[a+(x*20|0)+12>>1]=j;b[a+(r*20|0)+12>>1]=j;j=~~(+((b[q+6>>1]|0)+l|0)+h)&65535;b[a+(y*20|0)+14>>1]=j;b[a+(r*20|0)+14>>1]=j;j=~~(+(m-s+(b[q+12>>1]|0)|0)+f)&65535;b[a+(B*20|0)+12>>1]=j;b[a+(y*20|0)+12>>1]=j;j=~~(+(n-u+(b[q+10>>1]|0)|0)+h)&65535;b[a+(B*20|0)+14>>1]=j;b[a+(x*20|0)+14>>1]=j}h=+(v&65535|0);f=(+(k|0)+h*+g[q+28>>2])/h;k=a+(x*20|0)|0;g[a+(x*20|0)+4>>2]=f;g[a+(r*20|0)+4>>2]=f;f=+(t&65535|0);i=(+(l|0)+f*+g[q+32>>2])/f;l=a+(y*20|0)|0;g[a+(y*20|0)+8>>2]=i;g[a+(r*20|0)+8>>2]=i;i=(h*+g[q+44>>2]-+(s-m|0))/h;g[a+(B*20|0)+4>>2]=i;g[a+(y*20|0)+4>>2]=i;i=(f*+g[q+40>>2]-+(u-n|0))/f;g[a+(B*20|0)+8>>2]=i;g[a+(x*20|0)+8>>2]=i;x=a+(z*20|0)|0;c[x>>2]=c[k>>2];c[x+4>>2]=c[k+4>>2];c[x+8>>2]=c[k+8>>2];c[x+12>>2]=c[k+12>>2];c[x+16>>2]=c[k+16>>2];k=a+(A*20|0)|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];c[k+16>>2]=c[l+16>>2];l=(c[1628]|0)+6|0;c[1628]=l;if((l|0)<=6111)return;Ua(3,5122,20,a+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);a=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,a|0);c[1628]=0;return}function bg(a,f,h,j,k,l,m,n,o,p){a=a|0;f=+f;h=+h;j=+j;k=k|0;l=+l;m=+m;n=+n;o=+o;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,S=0.0,T=0.0,U=0,V=0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0;q=i;i=i+176|0;r=q+144|0;s=q+64|0;t=q;u=q+128|0;if(c[1628]|0){Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);v=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,v|0);c[1628]=0}v=ae(a,0)|0;xa();Ca(+f,+h,+j);if(n!=0.0)kc(+-n,0.0,0.0,1.0);if(o!=1.0|(p|0)!=0){n=-o;Pa(+((p&1|0)!=0?n:o),+((p&2|0)!=0?n:o),1.0)}p=v+2|0;Wf(e[p>>1]|0);if(m<0.0){o=l+m;w=-m;x=!(o>=360.0)?o:o+-360.0}else{w=m;x=l}if(!(x>=360.0))y=x;else{l=x;while(1){x=l+-360.0;if(!(x>=360.0)){y=x;break}else l=x}}if(y<0.0){l=y;while(1){x=l+360.0;if(x<0.0)l=x;else{z=x;break}}}else z=y;y=w+z;if(!(y>=360.0))A=y;else{w=y;while(1){y=w+-360.0;if(!(y>=360.0)){A=y;break}else w=y}}a=e[p>>1]|0;p=c[33]|0;B=p+(a<<3)|0;C=d[B>>0]|d[B+1>>0]<<8;B=p+(a<<3)+2|0;a=d[B>>0]|d[B+1>>0]<<8;w=+g[v+28>>2];B=v+4|0;p=b[B>>1]|0;y=+g[v+32>>2];D=v+6|0;E=b[D>>1]|0;F=v+12|0;G=b[F>>1]|0;b[u>>1]=G;b[u+2>>1]=E;b[u+4>>1]=p;b[u+6>>1]=E;b[u+8>>1]=p;H=v+10|0;v=b[H>>1]|0;b[u+10>>1]=v;b[u+12>>1]=G;b[u+14>>1]=v;l=+ue(+(b[F>>1]|0),+(0-(b[D>>1]|0)|0));x=+ue(+(b[B>>1]|0),+(0-(b[D>>1]|0)|0));m=+ue(+(b[B>>1]|0),+(0-(b[H>>1]|0)|0));o=+ue(+(b[F>>1]|0),+(0-(b[H>>1]|0)|0));v=z>=o&z<360.0?4:z>=m&z<o?3:z>=x&z<m?2:z>=l&z<x&1;n=+(C&65535);j=+(a&65535);I=n*w-+(p<<16>>16);w=j*y-+(E<<16>>16);E=v&3;p=A>=o&A<360.0?0:A>=m&A<o?3:A>=x&A<m?2:A>=l&A<x&1;do if((p|0)==(E|0))if(A<z){J=v|4;break}else{J=A>z+180.0&(E|0)==0?v|4:E;break}else J=p;while(0);p=(J|0)<(E|0)?J+4|0:J;b[r>>1]=0;b[r+2>>1]=0;g[s>>2]=(I+0.0)/n;g[s+4>>2]=(w+0.0)/j;x=+(E|0);if(!E){J=b[F>>1]|0;l=z*6.283/360.0;K=+(J<<16>>16);L=-(+(J<<16>>16)*(+R(+l)/+Q(+l)))}else{K=f;L=h}if(x==1.0){h=(z+-90.0)*6.283/360.0;f=+R(+h)/+Q(+h);J=b[D>>1]|0;M=-(f*+(0-(J<<16>>16)|0));N=+(J<<16>>16)}else{M=K;N=L}if(x==2.0){J=b[B>>1]|0;L=(z+-180.0)*6.283/360.0;O=+(J<<16>>16);P=-(+(J<<16>>16)*(+R(+L)/+Q(+L)))}else{O=M;P=N}if(x==3.0){x=(z+-270.0)*6.283/360.0;z=+R(+x)/+Q(+x);J=b[H>>1]|0;S=-(z*+(0-(J<<16>>16)|0));T=+(J<<16>>16)}else{S=O;T=P}b[r+4>>1]=~~S;b[r+6>>1]=~~T;g[s+8>>2]=(I+S)/n;g[s+12>>2]=(w+T)/j;if((E|0)<(p|0)){J=v&3;v=E;E=2;while(1){a=v&3;C=b[u+(a<<2)>>1]|0;G=E<<1;b[r+(G<<1)>>1]=C;U=b[u+(a<<2)+2>>1]|0;a=G|1;b[r+(a<<1)>>1]=U;g[s+(G<<2)>>2]=(I+ +(C<<16>>16))/n;g[s+(a<<2)>>2]=(w+ +(U<<16>>16))/j;v=v+1|0;if((v|0)==(p|0))break;else E=E+1|0}V=p+2-J|0}else V=2;J=p&3;P=+(J|0);if(!J){J=b[F>>1]|0;O=A*6.283/360.0;W=+(J<<16>>16);X=-(+(J<<16>>16)*(+R(+O)/+Q(+O)))}else{W=S;X=T}if(P==1.0){T=(A+-90.0)*6.283/360.0;S=+R(+T)/+Q(+T);J=b[D>>1]|0;Y=-(S*+(0-(J<<16>>16)|0));Z=+(J<<16>>16)}else{Y=W;Z=X}if(P==2.0){J=b[B>>1]|0;X=(A+-180.0)*6.283/360.0;_=+(J<<16>>16);$=-(+(J<<16>>16)*(+R(+X)/+Q(+X)))}else{_=Y;$=Z}if(P==3.0){P=(A+-270.0)*6.283/360.0;A=+R(+P)/+Q(+P);J=b[H>>1]|0;aa=-(A*+(0-(J<<16>>16)|0));ba=+(J<<16>>16)}else{aa=_;ba=$}J=V<<1;b[r+(J<<1)>>1]=~~aa;H=J|1;b[r+(H<<1)>>1]=~~ba;g[s+(J<<2)>>2]=(I+aa)/n;g[s+(H<<2)>>2]=(w+ba)/j;H=V+1|0;if((V|0)<=-1){Ua(2,5122,0,r|0);hc(2,5126,0,s|0);Dc(4,5121,0,t|0);Yb(6,0,H|0);Ic();i=q;return}V=c[k>>2]|0;k=0;do{c[t+(k<<2)>>2]=V;k=k+1|0}while((k|0)<(H|0));Ua(2,5122,0,r|0);hc(2,5126,0,s|0);Dc(4,5121,0,t|0);Yb(6,0,H|0);Ic();i=q;return}function cg(a,d,e,f,h,i){a=+a;d=+d;e=+e;f=+f;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;Wf(-1);j=c[h>>2]|0;do if(!(i==-1.0e3)){if(i==-2.0e3){h=c[1628]|0;c[1628]=h+1;k=c[1629]|0;l=~~e&65535;b[k+(h*20|0)+12>>1]=l;m=~~d&65535;b[k+(h*20|0)+14>>1]=m;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=l;b[k+(h*20|0)+14>>1]=~~(d+2.0);b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;n=~~a&65535;b[k+(h*20|0)+12>>1]=n;o=~~f&65535;b[k+(h*20|0)+14>>1]=o;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=l;b[k+(h*20|0)+14>>1]=m;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=n;b[k+(h*20|0)+14>>1]=~~(f+2.0);b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=n;b[k+(h*20|0)+14>>1]=o;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;p=0;break}if(i==-1001.0){h=c[1628]|0;c[1628]=h+1;k=c[1629]|0;o=~~a&65535;b[k+(h*20|0)+12>>1]=o;b[k+(h*20|0)+14>>1]=~~d;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=~~e;n=~~f&65535;b[k+(h*20|0)+14>>1]=n;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=o;b[k+(h*20|0)+14>>1]=n;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;p=0;break}h=c[1628]|0;c[1628]=h+1;k=c[1629]|0;n=~~a&65535;b[k+(h*20|0)+12>>1]=n;o=~~d&65535;b[k+(h*20|0)+14>>1]=o;if(i==-2001.0){b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;m=c[1628]|0;c[1628]=m+1;l=~~e&65535;b[k+(m*20|0)+12>>1]=l;q=~~f&65535;b[k+(m*20|0)+14>>1]=q;b[k+(m*20|0)+16>>1]=0;g[k+(m*20|0)+4>>2]=0.0;g[k+(m*20|0)+8>>2]=0.0;c[k+(m*20|0)>>2]=j;m=c[1628]|0;c[1628]=m+1;b[k+(m*20|0)+12>>1]=n;b[k+(m*20|0)+14>>1]=~~(d+2.0);b[k+(m*20|0)+16>>1]=0;g[k+(m*20|0)+4>>2]=0.0;g[k+(m*20|0)+8>>2]=0.0;c[k+(m*20|0)>>2]=j;m=c[1628]|0;c[1628]=m+1;b[k+(m*20|0)+12>>1]=n;b[k+(m*20|0)+14>>1]=o;b[k+(m*20|0)+16>>1]=0;g[k+(m*20|0)+4>>2]=0.0;g[k+(m*20|0)+8>>2]=0.0;c[k+(m*20|0)>>2]=j;m=c[1628]|0;c[1628]=m+1;b[k+(m*20|0)+12>>1]=l;b[k+(m*20|0)+14>>1]=q;b[k+(m*20|0)+16>>1]=0;g[k+(m*20|0)+4>>2]=0.0;g[k+(m*20|0)+8>>2]=0.0;c[k+(m*20|0)>>2]=j;m=c[1628]|0;c[1628]=m+1;b[k+(m*20|0)+12>>1]=l;b[k+(m*20|0)+14>>1]=~~(f+2.0);b[k+(m*20|0)+16>>1]=0;g[k+(m*20|0)+4>>2]=0.0;g[k+(m*20|0)+8>>2]=0.0;c[k+(m*20|0)>>2]=j;p=0;break}else{m=~~i&65535;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=n;l=~~f&65535;b[k+(h*20|0)+14>>1]=l;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;q=~~e&65535;b[k+(h*20|0)+12>>1]=q;b[k+(h*20|0)+14>>1]=o;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=q;b[k+(h*20|0)+14>>1]=o;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=q;b[k+(h*20|0)+14>>1]=l;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=n;b[k+(h*20|0)+14>>1]=l;b[k+(h*20|0)+16>>1]=m;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;p=i<0.0;break}}else{h=c[1628]|0;c[1628]=h+1;k=c[1629]|0;m=~~e&65535;b[k+(h*20|0)+12>>1]=m;b[k+(h*20|0)+14>>1]=~~d;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=m;m=~~f&65535;b[k+(h*20|0)+14>>1]=m;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;h=c[1628]|0;c[1628]=h+1;b[k+(h*20|0)+12>>1]=~~a;b[k+(h*20|0)+14>>1]=m;b[k+(h*20|0)+16>>1]=0;g[k+(h*20|0)+4>>2]=0.0;g[k+(h*20|0)+8>>2]=0.0;c[k+(h*20|0)>>2]=j;p=0}while(0);j=c[1628]|0;if((j|0)==0|(p|(j|0)>6111)^1)return;Ua(3,5122,20,(c[1629]|0)+12|0);if((c[1627]|0)!=-1)hc(2,5126,20,(c[1629]|0)+4|0);Dc(4,5121,20,c[1629]|0);j=c[1628]|0;c[56]=(c[56]|0)+1;Yb(4,0,j|0);c[1628]=0;return}function dg(a,b){a=a|0;b=+b;c[1631]=a;g[1633]=b;return}function eg(a,b){a=a|0;b=+b;c[1632]=a;g[1634]=b;return}function fg(){var a=0,b=0;Nb(1)|0;a=gc()|0;c[1630]=a;if((a|0)>0)b=0;else return;do{Sa(b|0)|0;b=b+1|0}while((b|0)<(c[1630]|0));return}function gg(a,b){a=a|0;b=b|0;var d=0;d=c[1635]|0;c[1635]=d+1;c[6544+(d<<3)>>2]=a;c[6544+(d<<3)+4>>2]=b;return}function hg(a,b){a=a|0;b=b|0;c[1437]=a;c[1438]=b;return}function ig(d,e){d=d|0;e=e|0;switch(e|0){case 1:{switch(d|0){case 0:{a[5740]=a[5740]|1;c[1434]=1;b[2908]=b[2908]|1024;b[2906]=b[2906]|1024;return}case 1:{b[2908]=b[2908]|2048;b[2906]=b[2906]|2048;return}default:return}break}case 0:{switch(d|0){case 0:{if(!(c[1434]|0))a[5740]=a[5740]&-2;else c[1434]=2;b[2906]=b[2906]&-1025;b[2910]=b[2910]|1024;return}case 1:{b[2906]=b[2906]&-2049;b[2910]=b[2910]|2048;return}default:return}break}default:return}}function jg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=5740+(b<<6)|0;a[f>>0]=a[f>>0]|1;c[5740+(b<<6)+8>>2]=d;c[5740+(b<<6)+12>>2]=e;return}function kg(b){b=b|0;var c=0;c=5740+(b<<6)|0;a[c>>0]=a[c>>0]&-2;return}function lg(a,b,d){a=a|0;b=b|0;d=d|0;c[5740+(a<<6)+8>>2]=b;c[5740+(a<<6)+12>>2]=d;return}function mg(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a[5740]=a[5740]|64;d=b[2910]|0;e=b[2908]&-8192;b[2908]=e;f=d&-8192;b[2910]=f;d=c[1635]|0;if((d|0)>0){g=e;h=f;i=0}else{c[1635]=0;return}while(1){f=(c[6544+(i<<3)+4>>2]|0)==0;a:do switch(c[6544+(i<<3)>>2]|0){case 265:{if(f){b[2906]=b[2906]&-5;e=h|4;b[2910]=e;j=e;k=g;break a}else{e=g|4;b[2908]=e;b[2906]=b[2906]|4;j=h;k=e;break a}break}case 264:{if(f){b[2906]=b[2906]&-9;e=h|8;b[2910]=e;j=e;k=g;break a}else{e=g|8;b[2908]=e;b[2906]=b[2906]|8;j=h;k=e;break a}break}case 263:{if(f){b[2906]=b[2906]&-2;e=h|1;b[2910]=e;j=e;k=g;break a}else{e=g|1;b[2908]=e;b[2906]=b[2906]|1;j=h;k=e;break a}break}case 262:{if(f){b[2906]=b[2906]&-3;e=h|2;b[2910]=e;j=e;k=g;break a}else{e=g|2;b[2908]=e;b[2906]=b[2906]|2;j=h;k=e;break a}break}default:{j=h;k=g}}while(0);i=i+1|0;if((i|0)>=(d|0))break;else{g=k;h=j}}c[1635]=0;return}function ng(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,j=0,k=0,l=0;h=i;i=i+16|0;j=h+8|0;k=h;c[1836]=1;c[1837]=-1;c[1838]=0;c[1840]=f;c[1839]=d;c[1848]=0;c[1847]=0;c[1841]=b;a[7384]=0;if((Gc(44100,-32752,2,1024)|0)!=-1){c[1836]=1;ya(16)|0;c[1847]=Bg(f<<2,0)|0;if((f|0)>0){b=0;do{d=e+(b<<2)|0;l=Qb(c[d>>2]|0)|0;c[(c[1847]|0)+(b<<2)>>2]=l;if(!(c[(c[1847]|0)+(b<<2)>>2]|0)){c[j>>2]=c[d>>2];Pn(240126,j)|0}b=b+1|0}while((b|0)!=(f|0))}f=(c[1836]|0)==0;g[1844]=1.0;g[1843]=1.0;if(!f){za(-1,128)|0;f=(c[1836]|0)==0;g[1842]=1.0;if(f){c[1845]=0;i=h;return}oc(~~(+g[1844]*128.0*+((a[7384]^1)&255|0))|0)|0;c[1845]=0;i=h;return}}else{c[k>>2]=Aa()|0;Pn(240123,k)|0;c[1836]=0;g[1844]=1.0;g[1843]=1.0}g[1842]=1.0;c[1845]=0;i=h;return}function og(b){b=+b;g[1842]=b;if(!(c[1836]|0))return;oc(~~(b*128.0*+g[1844]*+((a[7384]^1)&255|0))|0)|0;return}function pg(){return +(+g[1842])}function qg(a){a=a|0;if(!(c[1836]|0))return;nc(c[1838]|0,c[(c[1847]|0)+((a&65535)<<2)>>2]|0,0,-1)|0;c[1838]=(c[1838]|0)+1&15;return}function rg(b,d){b=b|0;d=d|0;var e=0;if(!(c[1836]|0))return;e=b&65535;if((e|0)==(c[1837]|0)?(Vb()|0)!=0:0)return;if(c[1848]|0){Va()|0;Pb(c[1848]|0);c[1848]=0}b=Kb(c[(c[1841]|0)+(e<<2)>>2]|0)|0;c[1848]=b;if((b|0)!=0?(Ja(b|0,d|0)|0)!=-1:0)Qn(240157)|0;if(!(c[1845]|0)){if(c[1836]|0)oc(~~(+g[1842]*128.0*+g[1844]*+((a[7384]^1)&255|0))|0)|0}else{za(-1,0)|0;oc(0)|0}c[1837]=e;return}function sg(b){b=b|0;var d=0;d=(b|0)!=0&1;a[7384]=d;if(!(c[1836]|0))return;oc(~~(+g[1842]*128.0*+g[1844]*+((d^1)&255|0))|0)|0;return}function tg(b){b=b|0;if((c[1845]|0)==(b|0))return;c[1845]=b;if(!(c[1836]|0))return;if(b){za(-1,0)|0;oc(0)|0;return}oc(~~(+g[1842]*128.0*+g[1844]*+((a[7384]^1)&255|0))|0)|0;if(!(c[1836]|0))return;za(-1,~~(+g[1843]*128.0*+g[1844])|0)|0;return}function ug(a,d,e,f){a=a|0;d=d|0;e=e|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,q=0;g=(e|0)==-1?a:e;e=(f|0)==-1?d:f;c[1849]=g;c[1850]=e;Ea(770,771);qb(3042);qb(2848);_c(3024);qb(3553);lb(515);tc(5889);Ma();h=+(a|0);i=+(g|0);j=h/i;dg(0,j);k=+(d|0);l=+(e|0);m=k/l;eg(0,m);do if(!((g|0)==(a|0)&(e|0)==(d|0))){n=i/l;o=h/k;dg(0,j);eg(0,m);if(!(n!=o)){Ra(0.0,+(+(a|0)),+(+(d|0)),0.0,10.0,-4096.0);break}if(n>o){f=~~(k*n);p=(f-a|0)/2|0;q=0-p|0;dg(q,+(f|0)/i);Ra(+(+(q|0)),+(+(p+a|0)),+(+(d|0)),0.0,10.0,-4096.0);break}else{p=~~(h/n);q=(p-d|0)/2|0;f=0-q|0;eg(f,+(p|0)/l);Ra(0.0,+(+(a|0)),+(+(q+d|0)),+(+(f|0)),10.0,-4096.0);break}}else Ra(0.0,+(+(a|0)),+(+(d|0)),0.0,10.0,-4096.0);while(0);hb(0,0,g|0,e|0);b[108]=0;b[109]=0;d=c[5]|0;b[110]=(g|0)>(d&65535|0)?g:d;g=d>>>16;b[111]=(e|0)>(g|0)?e:g;c[53]=216;tc(5888);Ma();_f();return}function vg(){var a=0,b=0;a=c[8]|0;b=c[4]|0;ug(a&65535,a>>>16,b&65535,b>>>16);return}function wg(a,b,d){a=a|0;b=b|0;d=d|0;a=c[8]|0;ug(a&65535,a>>>16,b,d);pn(zb(0)|0);fg();c[6]=0;return}function xg(){return ~~(+bc()*1.0e3)|0}function yg(a){a=a|0;sc();fc();+bc();return 16}function zg(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f;h=c[1398]|0;if(h)id[c[c[h>>2]>>2]&63](h);if((c[6]|0)==0?(h=c[4]|0,j=h&65535,k=h>>>16,!((j|0)==(c[1849]|0)&(k|0)==(c[1850]|0))):0){l=c[8]|0;m=l>>>16;b[8]=h;b[9]=k;b[16]=l;b[17]=m;wb(j|0,k|0,32,67108864)|0;c[g>>2]=j;c[g+4>>2]=k;c[g+8>>2]=l&65535;c[g+12>>2]=m;Pn(240175,g)|0;Zf();g=c[4]|0;ug(g&65535,g>>>16,j,k)}Rb(+(+(a|0)/255.0),+(+(d|0)/255.0),+(+(e|0)/255.0),1.0);Hc(16640);qb(3042);Ea(770,771);c[53]=216;i=f;return}function Ag(){var a=0;a=c[81]|0;if(a)md[a&3]();Cb(0)}function Bg(a,b){a=a|0;b=b|0;return to(a)|0}function Cg(a){a=a|0;uo(a);return}function Dg(b,e,f,j){b=b|0;e=+e;f=+f;j=+j;var k=0,l=0,m=0,n=0,o=0.0,p=0.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.0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0;k=i;i=i+80|0;l=k+16|0;m=k;n=m+8|0;o=+h[b>>3];p=+h[b+8>>3];b=l+4|0;q=l+8|0;r=l+12|0;s=l+16|0;t=l+20|0;u=l+24|0;v=l+28|0;w=l+32|0;x=l+36|0;y=l+40|0;z=l+44|0;A=l+48|0;B=f+-90.0;C=B+180.0;D=0;do{E=e-+(D|0)*.125;F=+we(E,0.0,1.0,-1.0,1.0);G=+R(+(E*360.0*6.283/360.0));H=(c[33]|0)+672|0;E=F;Qe(m,f,+((d[H>>0]|d[H+1>>0]<<8)&65535|0));F=E*+h[m>>3]+o;I=E*+h[n>>3]+p;a[l>>0]=1;c[b>>2]=84;c[q>>2]=0;g[r>>2]=F;g[s>>2]=I;g[t>>2]=1.0;g[u>>2]=1.0;c[w>>2]=0;c[x>>2]=-1;c[y>>2]=0;a[z>>0]=0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;H=c[(c[58267]|0)+(((D|0)%4|0)<<2)>>2]|0;c[x>>2]=H;g[v>>2]=B;if(a[1473]|0){g[v>>2]=C;J=c[8]|0;g[r>>2]=+(J&65535|0)-F;g[s>>2]=+(J>>>16|0)-I}J=~~((G<0.0?0.0:G>1.0?1.0:G)*j*255.0);c[x>>2]=H&16777215|((J|0)<0?0:(J|0)>255?-16777216:J<<24);Oe(l);D=D+1|0}while((D|0)!=8);i=k;return}function Eg(){var a=0;a=qm(57456)|0;Fg(a);return a|0}function Fg(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=7420;d=b+28680|0;e=b+8|0;do{c[e>>2]=7480;f=e+8|0;c[e+56>>2]=0;a[e+108>>0]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;e=e+112|0}while((e|0)!=(d|0));d=b+28680|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=b+28712|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=b+28816|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=b+28920|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=b+32040|0;e=b+28968|0;do{f=e+8|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[e>>2]=7496;a[e+32>>0]=0;e=e+48|0}while((e|0)!=(d|0));d=b+34600|0;e=b+32040|0;do{f=e+8|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[e>>2]=7512;c[e+28>>2]=0;e=e+40|0}while((e|0)!=(d|0));d=b+45360|0;e=b+34608|0;do{h[e+40>>3]=0.0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;e=e+56|0}while((e|0)!=(d|0));d=b+56112|0;e=b+45360|0;do{h[e+40>>3]=0.0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;e=e+56|0}while((e|0)!=(d|0));c[b+56112>>2]=0;c[b+56116>>2]=-1;g[b+56120>>2]=0.0;g[b+56124>>2]=0.0;c[b+56128>>2]=0;c[b+56132>>2]=-1;g[b+56136>>2]=0.0;g[b+56140>>2]=0.0;c[b+56144>>2]=0;c[b+56148>>2]=-1;g[b+56152>>2]=0.0;g[b+56156>>2]=0.0;c[b+56160>>2]=0;c[b+56164>>2]=-1;g[b+56168>>2]=0.0;g[b+56172>>2]=0.0;d=b+56208|0;e=b+56272|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;c[b+56300>>2]=0;c[b+56304>>2]=0;d=b+56328|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56356>>2]=0;c[b+56360>>2]=0;d=b+56384|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56412>>2]=0;c[b+56416>>2]=0;d=b+56440|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56468>>2]=0;c[b+56472>>2]=0;d=b+56496|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56524>>2]=0;c[b+56528>>2]=0;d=b+56552|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56580>>2]=0;c[b+56584>>2]=0;d=b+56608|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56636>>2]=0;c[b+56640>>2]=0;d=b+56664|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56692>>2]=0;c[b+56696>>2]=0;d=b+56720|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56748>>2]=0;c[b+56752>>2]=0;d=b+56776|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[b+56804>>2]=0;c[b+56808>>2]=0;c[b+56884>>2]=0;c[b+56888>>2]=-1;g[b+56892>>2]=0.0;g[b+56896>>2]=0.0;c[b+56900>>2]=0;c[b+56904>>2]=-1;g[b+56908>>2]=0.0;g[b+56912>>2]=0.0;c[b+56916>>2]=0;c[b+56920>>2]=-1;g[b+56924>>2]=0.0;g[b+56928>>2]=0.0;c[b+56932>>2]=0;c[b+56936>>2]=-1;g[b+56940>>2]=0.0;g[b+56944>>2]=0.0;c[b+56948>>2]=0;c[b+56952>>2]=-1;g[b+56956>>2]=0.0;g[b+56960>>2]=0.0;d=b+56976|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;d=b+57432|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;Eo(b+57008|0,0,400)|0;Yi();return}function Gg(b,d){b=b|0;d=+d;var f=0,i=0,j=0.0;f=b+28|0;i=c[f>>2]|0;if(!i)return;do if(a[b+32>>0]|0){if(!(+h[b+16>>3]>=+(e[17]|0)*1.2000000476837158)?!(+h[b+8>>3]<+((e[10]|0)/-4|0|0)):0)break;c[f>>2]=0;return}while(0);if((i|0)!=2)return;i=b+24|0;j=+g[i>>2]-d;g[i>>2]=j;if(!(j<=0.0))return;c[f>>2]=0;return}function Hg(a){a=a|0;Ig(a,1.0);return}function Ig(b,f){b=b|0;f=+f;var j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0;j=i;i=i+272|0;k=j+248|0;l=j+184|0;m=j+120|0;n=j+64|0;o=j;p=+h[b+8>>3];q=+h[b+16>>3];if(!(a[1473]|0))r=q;else r=+(e[17]|0)-q;switch(c[b+28>>2]|0){case 2:{q=p;s=r;a[m>>0]=1;c[m+4>>2]=72;c[m+8>>2]=0;g[m+12>>2]=q;g[m+16>>2]=s;g[m+28>>2]=0.0;c[m+32>>2]=0;t=m+36|0;c[t>>2]=-1;c[m+40>>2]=0;a[m+44>>0]=0;u=m+48|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;g[m+24>>2]=.75;g[m+20>>2]=.75;u=b+24|0;b=~~(+xe(+g[u>>2],1.0,.75,.75,0.0)*255.0);c[t>>2]=c[t>>2]&16777215|((b|0)<0?0:(b|0)>255?-16777216:b<<24);if(a[m>>0]|0)Oe(m);v=+xe(+g[u>>2],.5,0.0,1.0,0.0);c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;a[n>>0]=1;c[n+4>>2]=72;m=n+8|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];g[n+32>>2]=1.0;c[n+40>>2]=8;c[n+44>>2]=0;c[n+48>>2]=0;a[n+52>>0]=0;k=(c[33]|0)+576|0;w=+((((d[k>>0]|d[k+1>>0]<<8)&65535)/3|0)&65535|0);g[n+12>>2]=q;g[n+16>>2]=s;x=+(~~(w*2.0)|0);g[n+20>>2]=x;g[n+24>>2]=x;g[n+28>>2]=.20000000298023224;k=~~(v*255.0);m=(k|0)<0?0:(k|0)>255?-16777216:k<<24;c[n+36>>2]=m|16777215;Jg(n);a[o>>0]=1;c[o+4>>2]=73;n=o+12|0;g[n>>2]=q;k=o+16|0;g[k>>2]=s;g[o+20>>2]=1.0;g[o+24>>2]=1.0;g[o+28>>2]=0.0;c[o+32>>2]=0;b=o+36|0;c[b>>2]=-1;c[o+40>>2]=0;a[o+44>>0]=0;t=o+48|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;c[o+8>>2]=d[5392];s=+xe(+g[u>>2],1.0,0.0,0.0,+((e[11]|0)/-15|0|0));g[n>>2]=+g[n>>2]+0.0;g[k>>2]=s+ +g[k>>2];c[b>>2]=c[b>>2]&16777215|m;if(!(a[o>>0]|0)){i=j;return}Oe(o);i=j;return}case 1:{a[l>>0]=1;c[l+4>>2]=72;c[l+8>>2]=0;g[l+12>>2]=p;g[l+16>>2]=r;o=l+20|0;g[o>>2]=1.0;m=l+24|0;g[m>>2]=1.0;g[l+28>>2]=0.0;c[l+32>>2]=0;c[l+40>>2]=0;a[l+44>>0]=0;b=l+48|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;b=~~(f*255.0);c[l+36>>2]=(b|0)<0?16777215:(b|0)>255?-1:b<<24|16777215;f=+we(+(c[26]|0),0.0,60.0,.7350000143051147,.8025000095367432);g[m>>2]=f;g[o>>2]=f;if(!(a[l>>0]|0)){i=j;return}Oe(l);i=j;return}default:{i=j;return}}}function Jg(a){a=a|0;var b=0,e=0.0,f=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0;b=c[a+8>>2]|0;e=+g[a+12>>2];f=+g[a+16>>2];if(!b){h=+g[a+20>>2]*.5;i=+g[a+24>>2]*.5;Kg(a,e-h,f-i,e+h,f+i);return}else{j=b&65535;b=c[33]|0;k=b+(j<<3)|0;l=(d[k>>0]|d[k+1>>0]<<8)&65535;k=b+(j<<3)+2|0;m=(d[k>>0]|d[k+1>>0]<<8)&65535;i=(+g[a+32>>2]+-1.0)*+((l>>>0>m>>>0?l:m)|0);k=b+(j<<3)+4|0;n=(d[k>>0]|d[k+1>>0]<<8)<<16>>16;k=b+(j<<3)+6|0;j=(d[k>>0]|d[k+1>>0]<<8)<<16>>16;Kg(a,e+ +(0-n|0)-i,f+ +(0-j|0)-i,i+(e+ +(l-n|0)),i+(f+ +(m-j|0)));return}}function Kg(b,d,e,f,h){b=b|0;d=+d;e=+e;f=+f;h=+h;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0.0,sa=0.0,ta=0.0,ua=0.0;j=i;i=i+192|0;k=j+128|0;l=j+64|0;m=j;n=b+36|0;o=+((c[n>>2]|0)>>>24>>>0)/255.0;if(o<=0.0){i=j;return}p=c[b+4>>2]|0;q=+(c[26]|0)/60.0;r=q*180.0;s=b+40|0;if((c[s>>2]|0)<=0){i=j;return}t=b+44|0;u=k+4|0;v=k+8|0;w=k+12|0;x=k+16|0;y=k+20|0;z=k+24|0;A=k+28|0;B=k+32|0;C=k+36|0;D=k+40|0;E=k+44|0;F=k+48|0;G=b+48|0;H=l+4|0;I=l+8|0;J=l+12|0;K=l+16|0;L=l+20|0;M=l+24|0;N=l+28|0;O=l+32|0;P=l+36|0;Q=l+40|0;R=l+44|0;S=l+48|0;T=m+4|0;U=m+8|0;V=m+12|0;W=m+16|0;X=m+20|0;Y=m+24|0;Z=m+28|0;_=m+32|0;$=m+36|0;aa=m+40|0;ba=m+44|0;ca=m+48|0;da=b+28|0;ea=b+52|0;b=43067;fa=0;do{ga=((b*43067|0)>>>0)%64007|0;b=((ga*43067|0)>>>0)%64007|0;ha=q+ +(((b>>>0)%1e3|0)>>>0)*.009999999776482582;ia=+we(ha,0.0,1.0,0.0,1.0);ja=ia<0.0?0.0:ia>1.0?1.0:ia;ka=~~ha;la=(((ka+ga|0)*43067|0)>>>0)%64007|0;ga=~~+xe(+(la>>>0)/64007.0,0.0,1.0,d,f);ma=((la*43067|0)>>>0)%64007|0;la=~~+xe(+(ma>>>0)/64007.0,0.0,1.0,e,h);na=c[t>>2]|0;do if((na|0)>0){oa=na+-1|0;pa=~~+xe(ja,0.0,1.0,0.0,+(na|0));a[k>>0]=1;c[u>>2]=p;g[w>>2]=+(ga|0);g[x>>2]=+(la|0);g[y>>2]=1.0;g[z>>2]=1.0;g[A>>2]=0.0;c[B>>2]=0;c[D>>2]=0;a[E>>0]=0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[v>>2]=(oa|0)<(pa|0)?oa:pa;pa=~~(o*ja*255.0);c[C>>2]=c[n>>2]&16777215|((pa|0)<0?0:(pa|0)>255?-16777216:pa<<24);Oe(k)}else{pa=c[G>>2]|0;if((pa|0)>0){oa=pa+-1|0;qa=~~+xe(ha-+(ka|0),0.0,1.0,0.0,+(pa|0));a[l>>0]=1;c[H>>2]=p;g[J>>2]=+(ga|0);g[K>>2]=+(la|0);g[L>>2]=1.0;g[M>>2]=1.0;g[N>>2]=0.0;c[O>>2]=0;c[Q>>2]=0;a[R>>0]=0;c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;c[S+12>>2]=0;c[I>>2]=(oa|0)<(qa|0)?oa:qa;qa=~~(o*ja*255.0);c[P>>2]=c[n>>2]&16777215|((qa|0)<0?0:(qa|0)>255?-16777216:qa<<24);Oe(l);break}qa=((ma*43067|0)>>>0)%64007|0;ia=+xe(+(qa>>>0)/64007.0,0.0,1.0,.5,1.0);ra=r+ +((((((qa*43067|0)>>>0)%64007|0)>>>0)%360|0)>>>0);sa=+(ga|0);ta=+(la|0);a[m>>0]=1;c[T>>2]=p;c[U>>2]=0;g[V>>2]=sa;g[W>>2]=ta;c[_>>2]=0;c[aa>>2]=0;a[ba>>0]=0;c[ca>>2]=0;c[ca+4>>2]=0;c[ca+8>>2]=0;c[ca+12>>2]=0;g[Z>>2]=ra;ua=ia*+g[da>>2];g[Y>>2]=ua;g[X>>2]=ua;qa=~~(o*ja*255.0);c[$>>2]=c[n>>2]&16777215|((qa|0)<0?0:(qa|0)>255?-16777216:qa<<24);if(a[ea>>0]|0){g[Z>>2]=ra+180.0;qa=c[8]|0;g[V>>2]=+(qa&65535|0)-sa;g[W>>2]=+(qa>>>16|0)-ta}Oe(m)}while(0);fa=fa+1|0}while((fa|0)<(c[s>>2]|0));i=j;return}function Lg(b,d){b=b|0;d=+d;var f=0,g=0;f=b+32|0;if(!(a[f>>0]|0))return;g=b+40|0;h[g>>3]=d+ +h[g>>3];if(!((a[b+30>>0]|0)!=0&(c[367]|0)==-1))return;if(!(+h[b+16>>3]>=+(e[17]|0)*1.100000023841858))return;a[f>>0]=0;return}function Mg(b){b=b|0;var d=0,e=0,f=0,j=0,k=0.0,l=0.0,m=0,n=0;d=i;i=i+80|0;e=d;f=d+16|0;if(!(a[b+32>>0]|0)){i=d;return}if(!(a[b+28>>0]&1)){i=d;return}if(a[b+31>>0]|0){j=b+8|0;k=+h[b+40>>3];l=+(c[b+24>>2]|0);c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];Dg(e,k,l,1.0);i=d;return}l=+h[b+8>>3];k=+h[b+16>>3];a[f>>0]=1;c[f+4>>2]=14;c[f+8>>2]=0;b=f+12|0;g[b>>2]=l;e=f+16|0;g[e>>2]=k;g[f+20>>2]=1.0;g[f+24>>2]=1.0;j=f+28|0;g[j>>2]=0.0;c[f+32>>2]=0;m=f+36|0;c[m>>2]=-1;c[f+40>>2]=0;a[f+44>>0]=0;n=f+48|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;if(a[1473]|0){g[j>>2]=180.0;j=c[8]|0;g[b>>2]=+(j&65535|0)-l;g[e>>2]=+(j>>>16|0)-k}c[m>>2]=-1;Oe(f);i=d;return}function Ng(a){a=a|0;var b=0.0,d=0,e=0,f=0;b=+h[a+8>>3];d=c[8]|0;e=d&65535;if(b<+(0-e|0)){f=1;return f|0}if(b>+(e<<1|0)){f=1;return f|0}if((c[367]|0)!=-1){f=0;return f|0}f=+h[a+16>>3]>+((d>>>16)*3|0);return f|0}function Og(a){a=a|0;return +(+((e[10]|0)>>>3&65535|0))}function Pg(a){a=a|0;return}function Qg(a){a=a|0;rm(a);return}function Rg(f){f=f|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.0,w=0,x=0.0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0,U=0,V=0;j=i;i=i+16|0;k=j;a[f+56204>>0]=1;c[f+56200>>2]=0;a[1472]=0;l=f+34600|0;c[l>>2]=-1;c[f+4>>2]=0;m=c[8]|0;n=(m>>>16)-(((e[11]|0)/3|0)&65535)|0;h[f+28920>>3]=+(m>>>1&32767|0);m=f+28928|0;h[m>>3]=+(n|0);h[f+56184>>3]=0.0;h[f+56192>>3]=+((e[17]|0)*10|0);o=f+56208|0;p=o+48|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(p|0));o=c[585]|0;a[f+28792>>0]=0;c[f+28788>>2]=o;o=f+28776|0;c[o>>2]=9940;h[f+28752>>3]=0.0;p=f+28784|0;c[p>>2]=0;q=c[58267]|0;r=c[q>>2]|0;s=f+28736|0;c[s>>2]=r;t=f+28740|0;c[t>>2]=r;r=f+28744|0;g[r>>2]=0.0;u=f+28748|0;g[u>>2]=1.0;v=+((e[16]|0)>>>1&65535|0);w=f+28712|0;h[w>>3]=v;x=+(n|0);n=f+28720|0;h[n>>3]=x;h[f+28728>>3]=0.0;h[f+28768>>3]=0.0;y=(c[33]|0)+272|0;z=+((d[y>>0]|d[y+1>>0]<<8)&65535|0);g[f+28780>>2]=z*.4399999976158142;a[f+28793>>0]=1;g[f+28796>>2]=0.0;y=f+28800|0;c[y>>2]=0;A=f+28804|0;a[A>>0]=0;h[f+28808>>3]=0.0;a[f+28896>>0]=1;B=f+28892|0;c[B>>2]=0;C=f+28880|0;c[C>>2]=9940;h[f+28856>>3]=0.0;c[f+28888>>2]=0;D=c[q>>2]|0;c[f+28840>>2]=D;c[f+28844>>2]=D;g[f+28848>>2]=0.0;g[f+28852>>2]=1.0;h[f+28816>>3]=v;h[f+28824>>3]=x;h[f+28832>>3]=0.0;h[f+28872>>3]=0.0;g[f+28884>>2]=z*.6499999761581421;a[f+28897>>0]=1;g[f+28900>>2]=0.0;c[f+28904>>2]=0;a[f+28908>>0]=0;h[f+28912>>3]=0.0;D=f+56840|0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;c[D+12>>2]=0;c[D+16>>2]=0;D=f+57392|0;q=0;E=f+57008|0;while(1){z=+(e[16]|0);h[E>>3]=+xe(+((q|0)%5|0|0),0.0,4.0,z*.10000000149011612,z*.8999999761581421);z=+(e[17]|0);h[E+8>>3]=+xe(+((q|0)/5|0|0),0.0,4.0,z*.10000000149011612,z*.8999999761581421);E=E+16|0;if(E>>>0>D>>>0)break;else q=q+1|0}c[f+57408>>2]=270;c[f+57412>>2]=270;g[f+57416>>2]=0.0;a[f+56176>>0]=0;c[f+56144>>2]=97;c[f+56148>>2]=0;g[f+56152>>2]=0.0;g[f+56156>>2]=0.0;c[f+56112>>2]=15;c[f+56116>>2]=2;g[f+56120>>2]=0.0;g[f+56124>>2]=0.0;c[f+56128>>2]=71;c[f+56132>>2]=4;g[f+56136>>2]=0.0;g[f+56140>>2]=0.0;c[f+56160>>2]=70;c[f+56164>>2]=4;g[f+56168>>2]=0.0;g[f+56172>>2]=0.0;c[361]=0;a[f+56256>>0]=1;c[f+56260>>2]=0;g[f+56832>>2]=0.0;c[f+56996>>2]=0;c[f+57e3>>2]=0;c[f+28960>>2]=0;c[f+28704>>2]=0;q=f+31992|0;D=f+28968|0;do{a[D+32>>0]=0;D=D+48|0}while(D>>>0<=q>>>0);q=f+34560|0;D=f+32040|0;do{c[D+28>>2]=0;D=D+40|0}while(D>>>0<=q>>>0);q=f+45304|0;D=f+34608|0;do{h[D+40>>3]=0.0;D=D+56|0}while(D>>>0<=q>>>0);q=f+56056|0;D=f+45360|0;do{h[D+40>>3]=0.0;D=D+56|0}while(D>>>0<=q>>>0);h[f+28936>>3]=+((e[17]|0)>>>1&65535|0);z=+((e[16]|0)>>>1&65535|0);x=+h[m>>3]-+(((e[11]|0)/3|0)&65535|0);c[f+28700>>2]=0;h[f+28680>>3]=z;h[f+28688>>3]=x;h[196]=0.0;m=f+28696|0;a[m>>0]=1;q=f+28568|0;D=f+8|0;do{a[D+108>>0]=0;D=D+112|0}while(D>>>0<=q>>>0);a[1473]=0;q=f+56264|0;c[q>>2]=1;a[f+56268>>0]=0;D=f+56976|0;h[f+56976>>3]=0.0;h[f+56984>>3]=1.0;c[f+56992>>2]=0;a[f+56872>>0]=0;g[f+56876>>2]=0.0;c[f+56964>>2]=0;c[f+56884>>2]=87;c[f+56888>>2]=4;g[f+56892>>2]=0.0;g[f+56896>>2]=0.0;c[f+56900>>2]=88;c[f+56904>>2]=4;g[f+56908>>2]=0.0;g[f+56912>>2]=0.0;c[f+56916>>2]=96;c[f+56920>>2]=4;g[f+56924>>2]=0.0;g[f+56928>>2]=0.0;c[f+56932>>2]=95;c[f+56936>>2]=4;g[f+56940>>2]=0.0;g[f+56944>>2]=0.0;c[f+56948>>2]=89;c[f+56952>>2]=4;g[f+56956>>2]=0.0;g[f+56960>>2]=0.0;g[f+56880>>2]=5.0;h[f+56968>>3]=1.0;g[f+57452>>2]=0.0;E=f+57448|0;a[E>>0]=0;a:do switch(c[372]|0){case 0:{c[364]=0;rh(f);break}case 1:{F=c[366]|0;do if((F|0)>=32){if((F|0)<72){c[364]=2;break}if((F|0)<100)c[364]=3}else c[364]=1;while(0);a[E>>0]=1;break}case 2:{c[364]=4;a[1473]=1;if((c[366]|0)<=-1)rh(f);break}case 5:{c[364]=6;a[E>>0]=1;break}case 6:{c[364]=7;a[E>>0]=1;break}case 4:{c[q>>2]=2;c[364]=5;F=c[367]|0;G=229700+(F*3364|0)|0;a[1473]=(c[G>>2]|0)!=0&1;c[f+56864>>2]=G;G=229700+(F*3364|0)+3360|0;if((c[G>>2]|0)>0){H=0;do{Ah(f,229700+(F*3364|0)+32+(H*52|0)|0);H=H+1|0}while((H|0)<(c[G>>2]|0));I=c[367]|0}else I=F;c[B>>2]=c[229700+(I*3364|0)+4>>2];G=f+56776|0;H=f+56272|0;J=0;while(1){c[H+36>>2]=J;x=+(0-(e[16]|0)|0);z=((J|0)<5?-1.0:1.0)*+xe(+((J|0)%5|0|0),0.0,4.0,x*.44999998807907104,x*.15000000596046448);x=+((e[10]|0)>>>2&65535|0);h[H>>3]=z;h[H+8>>3]=x;h[H+16>>3]=+((qn()|0)&32767|0)/32767.0*10.0;g[H+24>>2]=+xe(+((qn()|0)&32767|0)/32767.0,0.0,1.0,1.0,2.0);c[H+32>>2]=c[56026];K=(qn()|0)%4|0;c[H+40>>2]=c[(c[58267]|0)+(K<<2)>>2];mh(H);H=H+56|0;if(H>>>0>G>>>0)break;else J=J+1|0}break}case 3:{c[364]=9;a[m>>0]=0;Qe(k,270.0,1.0);c[D>>2]=c[k>>2];c[D+4>>2]=c[k+4>>2];c[D+8>>2]=c[k+8>>2];c[D+12>>2]=c[k+12>>2];c[y>>2]=D;if((c[366]|0)>-1){a[E>>0]=1;break a}else{rh(f);break a}break}case 9:{c[364]=10;a[A>>0]=1;a[E>>0]=1;break}case 8:case 11:case 10:case 7:{Qn(240570)|0;break}default:{}}while(0);if(a[5373]|0)a[E>>0]=0;E=(a[1473]|0)!=0?9968:9940;c[o>>2]=E;c[C>>2]=E;if((c[372]|0)!=6){L=b[10]|0;M=L&65535;N=(M|0)/-2|0;O=+(N|0);P=+h[w>>3];Q=P+0.0;R=+h[n>>3];S=O+R;T=f+57432|0;h[T>>3]=Q;U=f+57440|0;h[U>>3]=S;i=j;return}E=(qn()|0)%4|0;c[l>>2]=E;if((c[p>>2]|0)!=(E|0)){c[p>>2]=E;p=c[(c[58267]|0)+(E<<2)>>2]|0;c[s>>2]=p;c[t>>2]=p;g[r>>2]=0.0;g[u>>2]=1.0;h[f+28760>>3]=+h[n>>3]-+g[2482]*+(e[11]|0)*.4000000059604645}do u=(qn()|0)%4|0;while((u|0)==(c[l>>2]|0));V=u;c[l>>2]=V;L=b[10]|0;M=L&65535;N=(M|0)/-2|0;O=+(N|0);P=+h[w>>3];Q=P+0.0;R=+h[n>>3];S=O+R;T=f+57432|0;h[T>>3]=Q;U=f+57440|0;h[U>>3]=S;i=j;return}function Sg(a){a=a|0;id[c[(c[a>>2]|0)+20>>2]&63](a);return}function Tg(b){b=b|0;a[1473]=0;c[7]=-14079703;return}function Ug(a){a=a|0;gd[c[(c[a>>2]|0)+36>>2]&15](a,+h[10]);return}
function no(a,b,c){a=a|0;b=b|0;c=c|0;return Bn(a,b,c)|0}function oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0.0;e=i;i=i+112|0;f=e;g=f;h=g+112|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=f+4|0;c[g>>2]=a;h=f+8|0;c[h>>2]=-1;c[f+44>>2]=a;c[f+76>>2]=-1;$m(f,0);j=+Zm(f,d,1);d=(c[g>>2]|0)-(c[h>>2]|0)+(c[f+108>>2]|0)|0;if(b)c[b>>2]=(d|0)!=0?a+d|0:a;i=e;return +j}function po(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+20|0;f=c[e>>2]|0;g=(c[a+16>>2]|0)-f|0;a=g>>>0>d>>>0?d:g;Co(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function qo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f;break a;break}case 10:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a;break}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=f;c[e+4>>2]=0;break a;break}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);f=e;g=c[f>>2]|0;i=c[f+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=g;c[e+4>>2]=i;break a;break}case 13:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&65535)<<16>>16;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 14:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&65535;c[i+4>>2]=0;break a;break}case 15:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=(e&255)<<24>>24;e=a;c[e>>2]=i;c[e+4>>2]=((i|0)<0)<<31>>31;break a;break}case 16:{i=(c[d>>2]|0)+(4-1)&~(4-1);e=c[i>>2]|0;c[d>>2]=i+4;i=a;c[i>>2]=e&255;c[i+4>>2]=0;break a;break}case 17:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}case 18:{i=(c[d>>2]|0)+(8-1)&~(8-1);j=+h[i>>3];c[d>>2]=i+8;h[a>>3]=j;break a;break}default:break a}while(0);while(0);return}function ro(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){e=d;f=b;g=c;while(1){c=Oo(f|0,g|0,10,0)|0;h=e+-1|0;a[h>>0]=c|48;c=No(f|0,g|0,10,0)|0;if(g>>>0>9|(g|0)==9&f>>>0>4294967295){e=h;f=c;g=C}else{i=h;j=c;break}}k=i;l=j}else{k=d;l=b}if(!l)m=k;else{b=k;k=l;while(1){l=b+-1|0;a[l>>0]=(k>>>0)%10|0|48;if(k>>>0<10){m=l;break}else{b=l;k=(k>>>0)/10|0}}}return m|0}function so(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+256|0;h=g;do if((d|0)>(e|0)&(f&73728|0)==0){j=d-e|0;Eo(h|0,b|0,(j>>>0>256?256:j)|0)|0;k=c[a>>2]|0;l=(k&32|0)==0;if(j>>>0>255){m=d-e|0;n=j;o=k;k=l;while(1){if(k){Nn(h,256,a)|0;p=c[a>>2]|0}else p=o;n=n+-256|0;k=(p&32|0)==0;if(n>>>0<=255)break;else o=p}if(k)q=m&255;else break}else if(l)q=j;else break;Nn(h,q,a)|0}while(0);i=g;return}function to(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0;do if(a>>>0<245){b=a>>>0<11?16:a+11&-8;d=b>>>3;e=c[58493]|0;f=e>>>d;if(f&3){g=(f&1^1)+d|0;h=g<<1;i=234012+(h<<2)|0;j=234012+(h+2<<2)|0;h=c[j>>2]|0;k=h+8|0;l=c[k>>2]|0;do if((i|0)!=(l|0)){if(l>>>0<(c[58497]|0)>>>0)mc();m=l+12|0;if((c[m>>2]|0)==(h|0)){c[m>>2]=i;c[j>>2]=l;break}else mc()}else c[58493]=e&~(1<<g);while(0);l=g<<3;c[h+4>>2]=l|3;j=h+(l|4)|0;c[j>>2]=c[j>>2]|1;n=k;return n|0}j=c[58495]|0;if(b>>>0>j>>>0){if(f){l=2<<d;i=f<<d&(l|0-l);l=(i&0-i)+-1|0;i=l>>>12&16;m=l>>>i;l=m>>>5&8;o=m>>>l;m=o>>>2&4;p=o>>>m;o=p>>>1&2;q=p>>>o;p=q>>>1&1;r=(l|i|m|o|p)+(q>>>p)|0;p=r<<1;q=234012+(p<<2)|0;o=234012+(p+2<<2)|0;p=c[o>>2]|0;m=p+8|0;i=c[m>>2]|0;do if((q|0)!=(i|0)){if(i>>>0<(c[58497]|0)>>>0)mc();l=i+12|0;if((c[l>>2]|0)==(p|0)){c[l>>2]=q;c[o>>2]=i;s=c[58495]|0;break}else mc()}else{c[58493]=e&~(1<<r);s=j}while(0);j=r<<3;e=j-b|0;c[p+4>>2]=b|3;i=p+b|0;c[p+(b|4)>>2]=e|1;c[p+j>>2]=e;if(s){j=c[58498]|0;o=s>>>3;q=o<<1;d=234012+(q<<2)|0;f=c[58493]|0;k=1<<o;if(f&k){o=234012+(q+2<<2)|0;h=c[o>>2]|0;if(h>>>0<(c[58497]|0)>>>0)mc();else{t=o;u=h}}else{c[58493]=f|k;t=234012+(q+2<<2)|0;u=d}c[t>>2]=j;c[u+12>>2]=j;c[j+8>>2]=u;c[j+12>>2]=d}c[58495]=e;c[58498]=i;n=m;return n|0}i=c[58494]|0;if(i){e=(i&0-i)+-1|0;i=e>>>12&16;d=e>>>i;e=d>>>5&8;j=d>>>e;d=j>>>2&4;q=j>>>d;j=q>>>1&2;k=q>>>j;q=k>>>1&1;f=c[234276+((e|i|d|j|q)+(k>>>q)<<2)>>2]|0;q=(c[f+4>>2]&-8)-b|0;k=f;j=f;while(1){f=c[k+16>>2]|0;if(!f){d=c[k+20>>2]|0;if(!d){v=q;w=j;break}else x=d}else x=f;f=(c[x+4>>2]&-8)-b|0;d=f>>>0<q>>>0;q=d?f:q;k=x;j=d?x:j}j=c[58497]|0;if(w>>>0<j>>>0)mc();k=w+b|0;if(w>>>0>=k>>>0)mc();q=c[w+24>>2]|0;m=c[w+12>>2]|0;do if((m|0)==(w|0)){p=w+20|0;r=c[p>>2]|0;if(!r){d=w+16|0;f=c[d>>2]|0;if(!f){y=0;break}else{z=f;A=d}}else{z=r;A=p}while(1){p=z+20|0;r=c[p>>2]|0;if(r){z=r;A=p;continue}p=z+16|0;r=c[p>>2]|0;if(!r){B=z;C=A;break}else{z=r;A=p}}if(C>>>0<j>>>0)mc();else{c[C>>2]=0;y=B;break}}else{p=c[w+8>>2]|0;if(p>>>0<j>>>0)mc();r=p+12|0;if((c[r>>2]|0)!=(w|0))mc();d=m+8|0;if((c[d>>2]|0)==(w|0)){c[r>>2]=m;c[d>>2]=p;y=m;break}else mc()}while(0);do if(q){m=c[w+28>>2]|0;j=234276+(m<<2)|0;if((w|0)==(c[j>>2]|0)){c[j>>2]=y;if(!y){c[58494]=c[58494]&~(1<<m);break}}else{if(q>>>0<(c[58497]|0)>>>0)mc();m=q+16|0;if((c[m>>2]|0)==(w|0))c[m>>2]=y;else c[q+20>>2]=y;if(!y)break}m=c[58497]|0;if(y>>>0<m>>>0)mc();c[y+24>>2]=q;j=c[w+16>>2]|0;do if(j)if(j>>>0<m>>>0)mc();else{c[y+16>>2]=j;c[j+24>>2]=y;break}while(0);j=c[w+20>>2]|0;if(j)if(j>>>0<(c[58497]|0)>>>0)mc();else{c[y+20>>2]=j;c[j+24>>2]=y;break}}while(0);if(v>>>0<16){q=v+b|0;c[w+4>>2]=q|3;j=w+(q+4)|0;c[j>>2]=c[j>>2]|1}else{c[w+4>>2]=b|3;c[w+(b|4)>>2]=v|1;c[w+(v+b)>>2]=v;j=c[58495]|0;if(j){q=c[58498]|0;m=j>>>3;j=m<<1;p=234012+(j<<2)|0;d=c[58493]|0;r=1<<m;if(d&r){m=234012+(j+2<<2)|0;f=c[m>>2]|0;if(f>>>0<(c[58497]|0)>>>0)mc();else{D=m;E=f}}else{c[58493]=d|r;D=234012+(j+2<<2)|0;E=p}c[D>>2]=q;c[E+12>>2]=q;c[q+8>>2]=E;c[q+12>>2]=p}c[58495]=v;c[58498]=k}n=w+8|0;return n|0}else F=b}else F=b}else if(a>>>0<=4294967231){p=a+11|0;q=p&-8;j=c[58494]|0;if(j){r=0-q|0;d=p>>>8;if(d)if(q>>>0>16777215)G=31;else{p=(d+1048320|0)>>>16&8;f=d<<p;d=(f+520192|0)>>>16&4;m=f<<d;f=(m+245760|0)>>>16&2;i=14-(d|p|f)+(m<<f>>>15)|0;G=q>>>(i+7|0)&1|i<<1}else G=0;i=c[234276+(G<<2)>>2]|0;a:do if(!i){H=r;I=0;J=0;K=86}else{f=r;m=0;p=q<<((G|0)==31?0:25-(G>>>1)|0);d=i;e=0;while(1){h=c[d+4>>2]&-8;o=h-q|0;if(o>>>0<f>>>0)if((h|0)==(q|0)){L=o;M=d;N=d;K=90;break a}else{O=o;P=d}else{O=f;P=e}o=c[d+20>>2]|0;d=c[d+16+(p>>>31<<2)>>2]|0;h=(o|0)==0|(o|0)==(d|0)?m:o;if(!d){H=O;I=h;J=P;K=86;break}else{f=O;m=h;p=p<<1;e=P}}}while(0);if((K|0)==86){if((I|0)==0&(J|0)==0){i=2<<G;r=j&(i|0-i);if(!r){F=q;break}i=(r&0-r)+-1|0;r=i>>>12&16;b=i>>>r;i=b>>>5&8;k=b>>>i;b=k>>>2&4;e=k>>>b;k=e>>>1&2;p=e>>>k;e=p>>>1&1;Q=c[234276+((i|r|b|k|e)+(p>>>e)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=90}}if((K|0)==90)while(1){K=0;e=(c[M+4>>2]&-8)-q|0;p=e>>>0<L>>>0;k=p?e:L;e=p?M:N;p=c[M+16>>2]|0;if(p){L=k;M=p;N=e;K=90;continue}M=c[M+20>>2]|0;if(!M){S=k;T=e;break}else{L=k;N=e;K=90}}if((T|0)!=0?S>>>0<((c[58495]|0)-q|0)>>>0:0){j=c[58497]|0;if(T>>>0<j>>>0)mc();e=T+q|0;if(T>>>0>=e>>>0)mc();k=c[T+24>>2]|0;p=c[T+12>>2]|0;do if((p|0)==(T|0)){b=T+20|0;r=c[b>>2]|0;if(!r){i=T+16|0;m=c[i>>2]|0;if(!m){U=0;break}else{V=m;W=i}}else{V=r;W=b}while(1){b=V+20|0;r=c[b>>2]|0;if(r){V=r;W=b;continue}b=V+16|0;r=c[b>>2]|0;if(!r){X=V;Y=W;break}else{V=r;W=b}}if(Y>>>0<j>>>0)mc();else{c[Y>>2]=0;U=X;break}}else{b=c[T+8>>2]|0;if(b>>>0<j>>>0)mc();r=b+12|0;if((c[r>>2]|0)!=(T|0))mc();i=p+8|0;if((c[i>>2]|0)==(T|0)){c[r>>2]=p;c[i>>2]=b;U=p;break}else mc()}while(0);do if(k){p=c[T+28>>2]|0;j=234276+(p<<2)|0;if((T|0)==(c[j>>2]|0)){c[j>>2]=U;if(!U){c[58494]=c[58494]&~(1<<p);break}}else{if(k>>>0<(c[58497]|0)>>>0)mc();p=k+16|0;if((c[p>>2]|0)==(T|0))c[p>>2]=U;else c[k+20>>2]=U;if(!U)break}p=c[58497]|0;if(U>>>0<p>>>0)mc();c[U+24>>2]=k;j=c[T+16>>2]|0;do if(j)if(j>>>0<p>>>0)mc();else{c[U+16>>2]=j;c[j+24>>2]=U;break}while(0);j=c[T+20>>2]|0;if(j)if(j>>>0<(c[58497]|0)>>>0)mc();else{c[U+20>>2]=j;c[j+24>>2]=U;break}}while(0);b:do if(S>>>0>=16){c[T+4>>2]=q|3;c[T+(q|4)>>2]=S|1;c[T+(S+q)>>2]=S;k=S>>>3;if(S>>>0<256){j=k<<1;p=234012+(j<<2)|0;b=c[58493]|0;i=1<<k;if(b&i){k=234012+(j+2<<2)|0;r=c[k>>2]|0;if(r>>>0<(c[58497]|0)>>>0)mc();else{Z=k;_=r}}else{c[58493]=b|i;Z=234012+(j+2<<2)|0;_=p}c[Z>>2]=e;c[_+12>>2]=e;c[T+(q+8)>>2]=_;c[T+(q+12)>>2]=p;break}p=S>>>8;if(p)if(S>>>0>16777215)$=31;else{j=(p+1048320|0)>>>16&8;i=p<<j;p=(i+520192|0)>>>16&4;b=i<<p;i=(b+245760|0)>>>16&2;r=14-(p|j|i)+(b<<i>>>15)|0;$=S>>>(r+7|0)&1|r<<1}else $=0;r=234276+($<<2)|0;c[T+(q+28)>>2]=$;c[T+(q+20)>>2]=0;c[T+(q+16)>>2]=0;i=c[58494]|0;b=1<<$;if(!(i&b)){c[58494]=i|b;c[r>>2]=e;c[T+(q+24)>>2]=r;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break}b=c[r>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(S|0)){r=S<<(($|0)==31?0:25-($>>>1)|0);i=b;while(1){j=i+16+(r>>>31<<2)|0;p=c[j>>2]|0;if(!p){aa=j;ba=i;break}if((c[p+4>>2]&-8|0)==(S|0)){ca=p;break c}else{r=r<<1;i=p}}if(aa>>>0<(c[58497]|0)>>>0)mc();else{c[aa>>2]=e;c[T+(q+24)>>2]=ba;c[T+(q+12)>>2]=e;c[T+(q+8)>>2]=e;break b}}else ca=b;while(0);b=ca+8|0;i=c[b>>2]|0;r=c[58497]|0;if(i>>>0>=r>>>0&ca>>>0>=r>>>0){c[i+12>>2]=e;c[b>>2]=e;c[T+(q+8)>>2]=i;c[T+(q+12)>>2]=ca;c[T+(q+24)>>2]=0;break}else mc()}else{i=S+q|0;c[T+4>>2]=i|3;b=T+(i+4)|0;c[b>>2]=c[b>>2]|1}while(0);n=T+8|0;return n|0}else F=q}else F=q}else F=-1;while(0);T=c[58495]|0;if(T>>>0>=F>>>0){S=T-F|0;ca=c[58498]|0;if(S>>>0>15){c[58498]=ca+F;c[58495]=S;c[ca+(F+4)>>2]=S|1;c[ca+T>>2]=S;c[ca+4>>2]=F|3}else{c[58495]=0;c[58498]=0;c[ca+4>>2]=T|3;S=ca+(T+4)|0;c[S>>2]=c[S>>2]|1}n=ca+8|0;return n|0}ca=c[58496]|0;if(ca>>>0>F>>>0){S=ca-F|0;c[58496]=S;ca=c[58499]|0;c[58499]=ca+F;c[ca+(F+4)>>2]=S|1;c[ca+4>>2]=F|3;n=ca+8|0;return n|0}do if(!(c[58611]|0)){ca=Ia(30)|0;if(!(ca+-1&ca)){c[58613]=ca;c[58612]=ca;c[58614]=-1;c[58615]=-1;c[58616]=0;c[58604]=0;c[58611]=(zb(0)|0)&-16^1431655768;break}else mc()}while(0);ca=F+48|0;S=c[58613]|0;T=F+47|0;ba=S+T|0;aa=0-S|0;S=ba&aa;if(S>>>0<=F>>>0){n=0;return n|0}$=c[58603]|0;if(($|0)!=0?(_=c[58601]|0,Z=_+S|0,Z>>>0<=_>>>0|Z>>>0>$>>>0):0){n=0;return n|0}d:do if(!(c[58604]&4)){$=c[58499]|0;e:do if($){Z=234420;while(1){_=c[Z>>2]|0;if(_>>>0<=$>>>0?(U=Z+4|0,(_+(c[U>>2]|0)|0)>>>0>$>>>0):0){da=Z;ea=U;break}Z=c[Z+8>>2]|0;if(!Z){K=174;break e}}Z=ba-(c[58496]|0)&aa;if(Z>>>0<2147483647){U=Da(Z|0)|0;_=(U|0)==((c[da>>2]|0)+(c[ea>>2]|0)|0);X=_?Z:0;if(_)if((U|0)==(-1|0))fa=X;else{ga=U;ha=X;K=194;break d}else{ia=U;ja=Z;ka=X;K=184}}else fa=0}else K=174;while(0);do if((K|0)==174){$=Da(0)|0;if(($|0)!=(-1|0)){q=$;X=c[58612]|0;Z=X+-1|0;if(!(Z&q))la=S;else la=S-q+(Z+q&0-X)|0;X=c[58601]|0;q=X+la|0;if(la>>>0>F>>>0&la>>>0<2147483647){Z=c[58603]|0;if((Z|0)!=0?q>>>0<=X>>>0|q>>>0>Z>>>0:0){fa=0;break}Z=Da(la|0)|0;q=(Z|0)==($|0);X=q?la:0;if(q){ga=$;ha=X;K=194;break d}else{ia=Z;ja=la;ka=X;K=184}}else fa=0}else fa=0}while(0);f:do if((K|0)==184){X=0-ja|0;do if(ca>>>0>ja>>>0&(ja>>>0<2147483647&(ia|0)!=(-1|0))?(Z=c[58613]|0,$=T-ja+Z&0-Z,$>>>0<2147483647):0)if((Da($|0)|0)==(-1|0)){Da(X|0)|0;fa=ka;break f}else{ma=$+ja|0;break}else ma=ja;while(0);if((ia|0)==(-1|0))fa=ka;else{ga=ia;ha=ma;K=194;break d}}while(0);c[58604]=c[58604]|4;na=fa;K=191}else{na=0;K=191}while(0);if((((K|0)==191?S>>>0<2147483647:0)?(fa=Da(S|0)|0,S=Da(0)|0,fa>>>0<S>>>0&((fa|0)!=(-1|0)&(S|0)!=(-1|0))):0)?(ma=S-fa|0,S=ma>>>0>(F+40|0)>>>0,S):0){ga=fa;ha=S?ma:na;K=194}if((K|0)==194){na=(c[58601]|0)+ha|0;c[58601]=na;if(na>>>0>(c[58602]|0)>>>0)c[58602]=na;na=c[58499]|0;g:do if(na){ma=234420;do{S=c[ma>>2]|0;fa=ma+4|0;ia=c[fa>>2]|0;if((ga|0)==(S+ia|0)){oa=S;pa=fa;qa=ia;ra=ma;K=204;break}ma=c[ma+8>>2]|0}while((ma|0)!=0);if(((K|0)==204?(c[ra+12>>2]&8|0)==0:0)?na>>>0<ga>>>0&na>>>0>=oa>>>0:0){c[pa>>2]=qa+ha;ma=(c[58496]|0)+ha|0;ia=na+8|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ma-fa|0;c[58499]=na+fa;c[58496]=ia;c[na+(fa+4)>>2]=ia|1;c[na+(ma+4)>>2]=40;c[58500]=c[58615];break}ma=c[58497]|0;if(ga>>>0<ma>>>0){c[58497]=ga;sa=ga}else sa=ma;ma=ga+ha|0;ia=234420;while(1){if((c[ia>>2]|0)==(ma|0)){ta=ia;ua=ia;K=212;break}ia=c[ia+8>>2]|0;if(!ia){va=234420;break}}if((K|0)==212)if(!(c[ua+12>>2]&8)){c[ta>>2]=ga;ia=ua+4|0;c[ia>>2]=(c[ia>>2]|0)+ha;ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ga+(ha+8)|0;fa=(ia&7|0)==0?0:0-ia&7;ia=ga+(fa+ha)|0;S=ma+F|0;ka=ga+S|0;ja=ia-(ga+ma)-F|0;c[ga+(ma+4)>>2]=F|3;h:do if((ia|0)!=(na|0)){if((ia|0)==(c[58498]|0)){T=(c[58495]|0)+ja|0;c[58495]=T;c[58498]=ka;c[ga+(S+4)>>2]=T|1;c[ga+(T+S)>>2]=T;break}T=ha+4|0;ca=c[ga+(T+fa)>>2]|0;if((ca&3|0)==1){la=ca&-8;ea=ca>>>3;i:do if(ca>>>0>=256){da=c[ga+((fa|24)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;do if((aa|0)==(ia|0)){ba=fa|16;X=ga+(T+ba)|0;$=c[X>>2]|0;if(!$){Z=ga+(ba+ha)|0;ba=c[Z>>2]|0;if(!ba){wa=0;break}else{xa=ba;ya=Z}}else{xa=$;ya=X}while(1){X=xa+20|0;$=c[X>>2]|0;if($){xa=$;ya=X;continue}X=xa+16|0;$=c[X>>2]|0;if(!$){za=xa;Aa=ya;break}else{xa=$;ya=X}}if(Aa>>>0<sa>>>0)mc();else{c[Aa>>2]=0;wa=za;break}}else{X=c[ga+((fa|8)+ha)>>2]|0;if(X>>>0<sa>>>0)mc();$=X+12|0;if((c[$>>2]|0)!=(ia|0))mc();Z=aa+8|0;if((c[Z>>2]|0)==(ia|0)){c[$>>2]=aa;c[Z>>2]=X;wa=aa;break}else mc()}while(0);if(!da)break;aa=c[ga+(ha+28+fa)>>2]|0;X=234276+(aa<<2)|0;do if((ia|0)!=(c[X>>2]|0)){if(da>>>0<(c[58497]|0)>>>0)mc();Z=da+16|0;if((c[Z>>2]|0)==(ia|0))c[Z>>2]=wa;else c[da+20>>2]=wa;if(!wa)break i}else{c[X>>2]=wa;if(wa)break;c[58494]=c[58494]&~(1<<aa);break i}while(0);aa=c[58497]|0;if(wa>>>0<aa>>>0)mc();c[wa+24>>2]=da;X=fa|16;Z=c[ga+(X+ha)>>2]|0;do if(Z)if(Z>>>0<aa>>>0)mc();else{c[wa+16>>2]=Z;c[Z+24>>2]=wa;break}while(0);Z=c[ga+(T+X)>>2]|0;if(!Z)break;if(Z>>>0<(c[58497]|0)>>>0)mc();else{c[wa+20>>2]=Z;c[Z+24>>2]=wa;break}}else{Z=c[ga+((fa|8)+ha)>>2]|0;aa=c[ga+(ha+12+fa)>>2]|0;da=234012+(ea<<1<<2)|0;do if((Z|0)!=(da|0)){if(Z>>>0<sa>>>0)mc();if((c[Z+12>>2]|0)==(ia|0))break;mc()}while(0);if((aa|0)==(Z|0)){c[58493]=c[58493]&~(1<<ea);break}do if((aa|0)==(da|0))Ba=aa+8|0;else{if(aa>>>0<sa>>>0)mc();X=aa+8|0;if((c[X>>2]|0)==(ia|0)){Ba=X;break}mc()}while(0);c[Z+12>>2]=aa;c[Ba>>2]=Z}while(0);Ca=ga+((la|fa)+ha)|0;Ea=la+ja|0}else{Ca=ia;Ea=ja}ea=Ca+4|0;c[ea>>2]=c[ea>>2]&-2;c[ga+(S+4)>>2]=Ea|1;c[ga+(Ea+S)>>2]=Ea;ea=Ea>>>3;if(Ea>>>0<256){T=ea<<1;ca=234012+(T<<2)|0;da=c[58493]|0;X=1<<ea;do if(!(da&X)){c[58493]=da|X;Fa=234012+(T+2<<2)|0;Ga=ca}else{ea=234012+(T+2<<2)|0;$=c[ea>>2]|0;if($>>>0>=(c[58497]|0)>>>0){Fa=ea;Ga=$;break}mc()}while(0);c[Fa>>2]=ka;c[Ga+12>>2]=ka;c[ga+(S+8)>>2]=Ga;c[ga+(S+12)>>2]=ca;break}T=Ea>>>8;do if(!T)Ha=0;else{if(Ea>>>0>16777215){Ha=31;break}X=(T+1048320|0)>>>16&8;da=T<<X;la=(da+520192|0)>>>16&4;$=da<<la;da=($+245760|0)>>>16&2;ea=14-(la|X|da)+($<<da>>>15)|0;Ha=Ea>>>(ea+7|0)&1|ea<<1}while(0);T=234276+(Ha<<2)|0;c[ga+(S+28)>>2]=Ha;c[ga+(S+20)>>2]=0;c[ga+(S+16)>>2]=0;ca=c[58494]|0;ea=1<<Ha;if(!(ca&ea)){c[58494]=ca|ea;c[T>>2]=ka;c[ga+(S+24)>>2]=T;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break}ea=c[T>>2]|0;j:do if((c[ea+4>>2]&-8|0)!=(Ea|0)){T=Ea<<((Ha|0)==31?0:25-(Ha>>>1)|0);ca=ea;while(1){da=ca+16+(T>>>31<<2)|0;$=c[da>>2]|0;if(!$){Ja=da;Ka=ca;break}if((c[$+4>>2]&-8|0)==(Ea|0)){La=$;break j}else{T=T<<1;ca=$}}if(Ja>>>0<(c[58497]|0)>>>0)mc();else{c[Ja>>2]=ka;c[ga+(S+24)>>2]=Ka;c[ga+(S+12)>>2]=ka;c[ga+(S+8)>>2]=ka;break h}}else La=ea;while(0);ea=La+8|0;ca=c[ea>>2]|0;T=c[58497]|0;if(ca>>>0>=T>>>0&La>>>0>=T>>>0){c[ca+12>>2]=ka;c[ea>>2]=ka;c[ga+(S+8)>>2]=ca;c[ga+(S+12)>>2]=La;c[ga+(S+24)>>2]=0;break}else mc()}else{ca=(c[58496]|0)+ja|0;c[58496]=ca;c[58499]=ka;c[ga+(S+4)>>2]=ca|1}while(0);n=ga+(ma|8)|0;return n|0}else va=234420;while(1){S=c[va>>2]|0;if(S>>>0<=na>>>0?(ka=c[va+4>>2]|0,ja=S+ka|0,ja>>>0>na>>>0):0){Ma=S;Na=ka;Oa=ja;break}va=c[va+8>>2]|0}ma=Ma+(Na+-39)|0;ja=Ma+(Na+-47+((ma&7|0)==0?0:0-ma&7))|0;ma=na+16|0;ka=ja>>>0<ma>>>0?na:ja;ja=ka+8|0;S=ga+8|0;ia=(S&7|0)==0?0:0-S&7;S=ha+-40-ia|0;c[58499]=ga+ia;c[58496]=S;c[ga+(ia+4)>>2]=S|1;c[ga+(ha+-36)>>2]=40;c[58500]=c[58615];S=ka+4|0;c[S>>2]=27;c[ja>>2]=c[58605];c[ja+4>>2]=c[58606];c[ja+8>>2]=c[58607];c[ja+12>>2]=c[58608];c[58605]=ga;c[58606]=ha;c[58608]=0;c[58607]=ja;ja=ka+28|0;c[ja>>2]=7;if((ka+32|0)>>>0<Oa>>>0){ia=ja;do{ja=ia;ia=ia+4|0;c[ia>>2]=7}while((ja+8|0)>>>0<Oa>>>0)}if((ka|0)!=(na|0)){ia=ka-na|0;c[S>>2]=c[S>>2]&-2;c[na+4>>2]=ia|1;c[ka>>2]=ia;ja=ia>>>3;if(ia>>>0<256){fa=ja<<1;ca=234012+(fa<<2)|0;ea=c[58493]|0;T=1<<ja;if(ea&T){ja=234012+(fa+2<<2)|0;Z=c[ja>>2]|0;if(Z>>>0<(c[58497]|0)>>>0)mc();else{Pa=ja;Qa=Z}}else{c[58493]=ea|T;Pa=234012+(fa+2<<2)|0;Qa=ca}c[Pa>>2]=na;c[Qa+12>>2]=na;c[na+8>>2]=Qa;c[na+12>>2]=ca;break}ca=ia>>>8;if(ca)if(ia>>>0>16777215)Ra=31;else{fa=(ca+1048320|0)>>>16&8;T=ca<<fa;ca=(T+520192|0)>>>16&4;ea=T<<ca;T=(ea+245760|0)>>>16&2;Z=14-(ca|fa|T)+(ea<<T>>>15)|0;Ra=ia>>>(Z+7|0)&1|Z<<1}else Ra=0;Z=234276+(Ra<<2)|0;c[na+28>>2]=Ra;c[na+20>>2]=0;c[ma>>2]=0;T=c[58494]|0;ea=1<<Ra;if(!(T&ea)){c[58494]=T|ea;c[Z>>2]=na;c[na+24>>2]=Z;c[na+12>>2]=na;c[na+8>>2]=na;break}ea=c[Z>>2]|0;k:do if((c[ea+4>>2]&-8|0)!=(ia|0)){Z=ia<<((Ra|0)==31?0:25-(Ra>>>1)|0);T=ea;while(1){fa=T+16+(Z>>>31<<2)|0;ca=c[fa>>2]|0;if(!ca){Sa=fa;Ta=T;break}if((c[ca+4>>2]&-8|0)==(ia|0)){Ua=ca;break k}else{Z=Z<<1;T=ca}}if(Sa>>>0<(c[58497]|0)>>>0)mc();else{c[Sa>>2]=na;c[na+24>>2]=Ta;c[na+12>>2]=na;c[na+8>>2]=na;break g}}else Ua=ea;while(0);ea=Ua+8|0;ia=c[ea>>2]|0;ma=c[58497]|0;if(ia>>>0>=ma>>>0&Ua>>>0>=ma>>>0){c[ia+12>>2]=na;c[ea>>2]=na;c[na+8>>2]=ia;c[na+12>>2]=Ua;c[na+24>>2]=0;break}else mc()}}else{ia=c[58497]|0;if((ia|0)==0|ga>>>0<ia>>>0)c[58497]=ga;c[58605]=ga;c[58606]=ha;c[58608]=0;c[58502]=c[58611];c[58501]=-1;ia=0;do{ea=ia<<1;ma=234012+(ea<<2)|0;c[234012+(ea+3<<2)>>2]=ma;c[234012+(ea+2<<2)>>2]=ma;ia=ia+1|0}while((ia|0)!=32);ia=ga+8|0;ma=(ia&7|0)==0?0:0-ia&7;ia=ha+-40-ma|0;c[58499]=ga+ma;c[58496]=ia;c[ga+(ma+4)>>2]=ia|1;c[ga+(ha+-36)>>2]=40;c[58500]=c[58615]}while(0);ha=c[58496]|0;if(ha>>>0>F>>>0){ga=ha-F|0;c[58496]=ga;ha=c[58499]|0;c[58499]=ha+F;c[ha+(F+4)>>2]=ga|1;c[ha+4>>2]=F|3;n=ha+8|0;return n|0}}c[(Xm()|0)>>2]=12;n=0;return n|0}function uo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;if(!a)return;b=a+-8|0;d=c[58497]|0;if(b>>>0<d>>>0)mc();e=c[a+-4>>2]|0;f=e&3;if((f|0)==1)mc();g=e&-8;h=a+(g+-8)|0;do if(!(e&1)){i=c[b>>2]|0;if(!f)return;j=-8-i|0;k=a+j|0;l=i+g|0;if(k>>>0<d>>>0)mc();if((k|0)==(c[58498]|0)){m=a+(g+-4)|0;n=c[m>>2]|0;if((n&3|0)!=3){o=k;p=l;break}c[58495]=l;c[m>>2]=n&-2;c[a+(j+4)>>2]=l|1;c[h>>2]=l;return}n=i>>>3;if(i>>>0<256){i=c[a+(j+8)>>2]|0;m=c[a+(j+12)>>2]|0;q=234012+(n<<1<<2)|0;if((i|0)!=(q|0)){if(i>>>0<d>>>0)mc();if((c[i+12>>2]|0)!=(k|0))mc()}if((m|0)==(i|0)){c[58493]=c[58493]&~(1<<n);o=k;p=l;break}if((m|0)!=(q|0)){if(m>>>0<d>>>0)mc();q=m+8|0;if((c[q>>2]|0)==(k|0))r=q;else mc()}else r=m+8|0;c[i+12>>2]=m;c[r>>2]=i;o=k;p=l;break}i=c[a+(j+24)>>2]|0;m=c[a+(j+12)>>2]|0;do if((m|0)==(k|0)){q=a+(j+20)|0;n=c[q>>2]|0;if(!n){s=a+(j+16)|0;t=c[s>>2]|0;if(!t){u=0;break}else{v=t;w=s}}else{v=n;w=q}while(1){q=v+20|0;n=c[q>>2]|0;if(n){v=n;w=q;continue}q=v+16|0;n=c[q>>2]|0;if(!n){x=v;y=w;break}else{v=n;w=q}}if(y>>>0<d>>>0)mc();else{c[y>>2]=0;u=x;break}}else{q=c[a+(j+8)>>2]|0;if(q>>>0<d>>>0)mc();n=q+12|0;if((c[n>>2]|0)!=(k|0))mc();s=m+8|0;if((c[s>>2]|0)==(k|0)){c[n>>2]=m;c[s>>2]=q;u=m;break}else mc()}while(0);if(i){m=c[a+(j+28)>>2]|0;q=234276+(m<<2)|0;if((k|0)==(c[q>>2]|0)){c[q>>2]=u;if(!u){c[58494]=c[58494]&~(1<<m);o=k;p=l;break}}else{if(i>>>0<(c[58497]|0)>>>0)mc();m=i+16|0;if((c[m>>2]|0)==(k|0))c[m>>2]=u;else c[i+20>>2]=u;if(!u){o=k;p=l;break}}m=c[58497]|0;if(u>>>0<m>>>0)mc();c[u+24>>2]=i;q=c[a+(j+16)>>2]|0;do if(q)if(q>>>0<m>>>0)mc();else{c[u+16>>2]=q;c[q+24>>2]=u;break}while(0);q=c[a+(j+20)>>2]|0;if(q)if(q>>>0<(c[58497]|0)>>>0)mc();else{c[u+20>>2]=q;c[q+24>>2]=u;o=k;p=l;break}else{o=k;p=l}}else{o=k;p=l}}else{o=b;p=g}while(0);if(o>>>0>=h>>>0)mc();b=a+(g+-4)|0;u=c[b>>2]|0;if(!(u&1))mc();if(!(u&2)){if((h|0)==(c[58499]|0)){d=(c[58496]|0)+p|0;c[58496]=d;c[58499]=o;c[o+4>>2]=d|1;if((o|0)!=(c[58498]|0))return;c[58498]=0;c[58495]=0;return}if((h|0)==(c[58498]|0)){d=(c[58495]|0)+p|0;c[58495]=d;c[58498]=o;c[o+4>>2]=d|1;c[o+d>>2]=d;return}d=(u&-8)+p|0;x=u>>>3;do if(u>>>0>=256){y=c[a+(g+16)>>2]|0;w=c[a+(g|4)>>2]|0;do if((w|0)==(h|0)){v=a+(g+12)|0;r=c[v>>2]|0;if(!r){f=a+(g+8)|0;e=c[f>>2]|0;if(!e){z=0;break}else{A=e;B=f}}else{A=r;B=v}while(1){v=A+20|0;r=c[v>>2]|0;if(r){A=r;B=v;continue}v=A+16|0;r=c[v>>2]|0;if(!r){C=A;D=B;break}else{A=r;B=v}}if(D>>>0<(c[58497]|0)>>>0)mc();else{c[D>>2]=0;z=C;break}}else{v=c[a+g>>2]|0;if(v>>>0<(c[58497]|0)>>>0)mc();r=v+12|0;if((c[r>>2]|0)!=(h|0))mc();f=w+8|0;if((c[f>>2]|0)==(h|0)){c[r>>2]=w;c[f>>2]=v;z=w;break}else mc()}while(0);if(y){w=c[a+(g+20)>>2]|0;l=234276+(w<<2)|0;if((h|0)==(c[l>>2]|0)){c[l>>2]=z;if(!z){c[58494]=c[58494]&~(1<<w);break}}else{if(y>>>0<(c[58497]|0)>>>0)mc();w=y+16|0;if((c[w>>2]|0)==(h|0))c[w>>2]=z;else c[y+20>>2]=z;if(!z)break}w=c[58497]|0;if(z>>>0<w>>>0)mc();c[z+24>>2]=y;l=c[a+(g+8)>>2]|0;do if(l)if(l>>>0<w>>>0)mc();else{c[z+16>>2]=l;c[l+24>>2]=z;break}while(0);l=c[a+(g+12)>>2]|0;if(l)if(l>>>0<(c[58497]|0)>>>0)mc();else{c[z+20>>2]=l;c[l+24>>2]=z;break}}}else{l=c[a+g>>2]|0;w=c[a+(g|4)>>2]|0;y=234012+(x<<1<<2)|0;if((l|0)!=(y|0)){if(l>>>0<(c[58497]|0)>>>0)mc();if((c[l+12>>2]|0)!=(h|0))mc()}if((w|0)==(l|0)){c[58493]=c[58493]&~(1<<x);break}if((w|0)!=(y|0)){if(w>>>0<(c[58497]|0)>>>0)mc();y=w+8|0;if((c[y>>2]|0)==(h|0))E=y;else mc()}else E=w+8|0;c[l+12>>2]=w;c[E>>2]=l}while(0);c[o+4>>2]=d|1;c[o+d>>2]=d;if((o|0)==(c[58498]|0)){c[58495]=d;return}else F=d}else{c[b>>2]=u&-2;c[o+4>>2]=p|1;c[o+p>>2]=p;F=p}p=F>>>3;if(F>>>0<256){u=p<<1;b=234012+(u<<2)|0;d=c[58493]|0;E=1<<p;if(d&E){p=234012+(u+2<<2)|0;h=c[p>>2]|0;if(h>>>0<(c[58497]|0)>>>0)mc();else{G=p;H=h}}else{c[58493]=d|E;G=234012+(u+2<<2)|0;H=b}c[G>>2]=o;c[H+12>>2]=o;c[o+8>>2]=H;c[o+12>>2]=b;return}b=F>>>8;if(b)if(F>>>0>16777215)I=31;else{H=(b+1048320|0)>>>16&8;G=b<<H;b=(G+520192|0)>>>16&4;u=G<<b;G=(u+245760|0)>>>16&2;E=14-(b|H|G)+(u<<G>>>15)|0;I=F>>>(E+7|0)&1|E<<1}else I=0;E=234276+(I<<2)|0;c[o+28>>2]=I;c[o+20>>2]=0;c[o+16>>2]=0;G=c[58494]|0;u=1<<I;a:do if(G&u){H=c[E>>2]|0;b:do if((c[H+4>>2]&-8|0)!=(F|0)){b=F<<((I|0)==31?0:25-(I>>>1)|0);d=H;while(1){h=d+16+(b>>>31<<2)|0;p=c[h>>2]|0;if(!p){J=h;K=d;break}if((c[p+4>>2]&-8|0)==(F|0)){L=p;break b}else{b=b<<1;d=p}}if(J>>>0<(c[58497]|0)>>>0)mc();else{c[J>>2]=o;c[o+24>>2]=K;c[o+12>>2]=o;c[o+8>>2]=o;break a}}else L=H;while(0);H=L+8|0;d=c[H>>2]|0;b=c[58497]|0;if(d>>>0>=b>>>0&L>>>0>=b>>>0){c[d+12>>2]=o;c[H>>2]=o;c[o+8>>2]=d;c[o+12>>2]=L;c[o+24>>2]=0;break}else mc()}else{c[58494]=G|u;c[E>>2]=o;c[o+24>>2]=E;c[o+12>>2]=o;c[o+8>>2]=o}while(0);o=(c[58501]|0)+-1|0;c[58501]=o;if(!o)M=234428;else return;while(1){o=c[M>>2]|0;if(!o)break;else M=o+8|0}c[58501]=-1;return}function vo(a,b){a=a|0;b=b|0;var d=0,e=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)e=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1;else e=d}else e=0;d=to(e)|0;if(!d)return d|0;if(!(c[d+-4>>2]&3))return d|0;Eo(d|0,0,e|0)|0;return d|0}function wo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(!a){d=to(b)|0;return d|0}if(b>>>0>4294967231){c[(Xm()|0)>>2]=12;d=0;return d|0}e=xo(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(e){d=e+8|0;return d|0}e=to(b)|0;if(!e){d=0;return d|0}f=c[a+-4>>2]|0;g=(f&-8)-((f&3|0)==0?8:4)|0;Co(e|0,a|0,(g>>>0<b>>>0?g:b)|0)|0;uo(a);d=e;return d|0}function xo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;d=a+4|0;e=c[d>>2]|0;f=e&-8;g=a+f|0;h=c[58497]|0;i=e&3;if(!((i|0)!=1&a>>>0>=h>>>0&a>>>0<g>>>0))mc();j=a+(f|4)|0;k=c[j>>2]|0;if(!(k&1))mc();if(!i){if(b>>>0<256){l=0;return l|0}if(f>>>0>=(b+4|0)>>>0?(f-b|0)>>>0<=c[58613]<<1>>>0:0){l=a;return l|0}l=0;return l|0}if(f>>>0>=b>>>0){i=f-b|0;if(i>>>0<=15){l=a;return l|0}c[d>>2]=e&1|b|2;c[a+(b+4)>>2]=i|3;c[j>>2]=c[j>>2]|1;yo(a+b|0,i);l=a;return l|0}if((g|0)==(c[58499]|0)){i=(c[58496]|0)+f|0;if(i>>>0<=b>>>0){l=0;return l|0}j=i-b|0;c[d>>2]=e&1|b|2;c[a+(b+4)>>2]=j|1;c[58499]=a+b;c[58496]=j;l=a;return l|0}if((g|0)==(c[58498]|0)){j=(c[58495]|0)+f|0;if(j>>>0<b>>>0){l=0;return l|0}i=j-b|0;if(i>>>0>15){c[d>>2]=e&1|b|2;c[a+(b+4)>>2]=i|1;c[a+j>>2]=i;m=a+(j+4)|0;c[m>>2]=c[m>>2]&-2;n=a+b|0;o=i}else{c[d>>2]=e&1|j|2;i=a+(j+4)|0;c[i>>2]=c[i>>2]|1;n=0;o=0}c[58495]=o;c[58498]=n;l=a;return l|0}if(k&2){l=0;return l|0}n=(k&-8)+f|0;if(n>>>0<b>>>0){l=0;return l|0}o=n-b|0;i=k>>>3;do if(k>>>0>=256){j=c[a+(f+24)>>2]|0;m=c[a+(f+12)>>2]|0;do if((m|0)==(g|0)){p=a+(f+20)|0;q=c[p>>2]|0;if(!q){r=a+(f+16)|0;s=c[r>>2]|0;if(!s){t=0;break}else{u=s;v=r}}else{u=q;v=p}while(1){p=u+20|0;q=c[p>>2]|0;if(q){u=q;v=p;continue}p=u+16|0;q=c[p>>2]|0;if(!q){w=u;x=v;break}else{u=q;v=p}}if(x>>>0<h>>>0)mc();else{c[x>>2]=0;t=w;break}}else{p=c[a+(f+8)>>2]|0;if(p>>>0<h>>>0)mc();q=p+12|0;if((c[q>>2]|0)!=(g|0))mc();r=m+8|0;if((c[r>>2]|0)==(g|0)){c[q>>2]=m;c[r>>2]=p;t=m;break}else mc()}while(0);if(j){m=c[a+(f+28)>>2]|0;p=234276+(m<<2)|0;if((g|0)==(c[p>>2]|0)){c[p>>2]=t;if(!t){c[58494]=c[58494]&~(1<<m);break}}else{if(j>>>0<(c[58497]|0)>>>0)mc();m=j+16|0;if((c[m>>2]|0)==(g|0))c[m>>2]=t;else c[j+20>>2]=t;if(!t)break}m=c[58497]|0;if(t>>>0<m>>>0)mc();c[t+24>>2]=j;p=c[a+(f+16)>>2]|0;do if(p)if(p>>>0<m>>>0)mc();else{c[t+16>>2]=p;c[p+24>>2]=t;break}while(0);p=c[a+(f+20)>>2]|0;if(p)if(p>>>0<(c[58497]|0)>>>0)mc();else{c[t+20>>2]=p;c[p+24>>2]=t;break}}}else{p=c[a+(f+8)>>2]|0;m=c[a+(f+12)>>2]|0;j=234012+(i<<1<<2)|0;if((p|0)!=(j|0)){if(p>>>0<h>>>0)mc();if((c[p+12>>2]|0)!=(g|0))mc()}if((m|0)==(p|0)){c[58493]=c[58493]&~(1<<i);break}if((m|0)!=(j|0)){if(m>>>0<h>>>0)mc();j=m+8|0;if((c[j>>2]|0)==(g|0))y=j;else mc()}else y=m+8|0;c[p+12>>2]=m;c[y>>2]=p}while(0);if(o>>>0<16){c[d>>2]=n|e&1|2;y=a+(n|4)|0;c[y>>2]=c[y>>2]|1;l=a;return l|0}else{c[d>>2]=e&1|b|2;c[a+(b+4)>>2]=o|3;e=a+(n|4)|0;c[e>>2]=c[e>>2]|1;yo(a+b|0,o);l=a;return l|0}return 0}function yo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;d=a+b|0;e=c[a+4>>2]|0;do if(!(e&1)){f=c[a>>2]|0;if(!(e&3))return;g=a+(0-f)|0;h=f+b|0;i=c[58497]|0;if(g>>>0<i>>>0)mc();if((g|0)==(c[58498]|0)){j=a+(b+4)|0;k=c[j>>2]|0;if((k&3|0)!=3){l=g;m=h;break}c[58495]=h;c[j>>2]=k&-2;c[a+(4-f)>>2]=h|1;c[d>>2]=h;return}k=f>>>3;if(f>>>0<256){j=c[a+(8-f)>>2]|0;n=c[a+(12-f)>>2]|0;o=234012+(k<<1<<2)|0;if((j|0)!=(o|0)){if(j>>>0<i>>>0)mc();if((c[j+12>>2]|0)!=(g|0))mc()}if((n|0)==(j|0)){c[58493]=c[58493]&~(1<<k);l=g;m=h;break}if((n|0)!=(o|0)){if(n>>>0<i>>>0)mc();o=n+8|0;if((c[o>>2]|0)==(g|0))p=o;else mc()}else p=n+8|0;c[j+12>>2]=n;c[p>>2]=j;l=g;m=h;break}j=c[a+(24-f)>>2]|0;n=c[a+(12-f)>>2]|0;do if((n|0)==(g|0)){o=16-f|0;k=a+(o+4)|0;q=c[k>>2]|0;if(!q){r=a+o|0;o=c[r>>2]|0;if(!o){s=0;break}else{t=o;u=r}}else{t=q;u=k}while(1){k=t+20|0;q=c[k>>2]|0;if(q){t=q;u=k;continue}k=t+16|0;q=c[k>>2]|0;if(!q){v=t;w=u;break}else{t=q;u=k}}if(w>>>0<i>>>0)mc();else{c[w>>2]=0;s=v;break}}else{k=c[a+(8-f)>>2]|0;if(k>>>0<i>>>0)mc();q=k+12|0;if((c[q>>2]|0)!=(g|0))mc();r=n+8|0;if((c[r>>2]|0)==(g|0)){c[q>>2]=n;c[r>>2]=k;s=n;break}else mc()}while(0);if(j){n=c[a+(28-f)>>2]|0;i=234276+(n<<2)|0;if((g|0)==(c[i>>2]|0)){c[i>>2]=s;if(!s){c[58494]=c[58494]&~(1<<n);l=g;m=h;break}}else{if(j>>>0<(c[58497]|0)>>>0)mc();n=j+16|0;if((c[n>>2]|0)==(g|0))c[n>>2]=s;else c[j+20>>2]=s;if(!s){l=g;m=h;break}}n=c[58497]|0;if(s>>>0<n>>>0)mc();c[s+24>>2]=j;i=16-f|0;k=c[a+i>>2]|0;do if(k)if(k>>>0<n>>>0)mc();else{c[s+16>>2]=k;c[k+24>>2]=s;break}while(0);k=c[a+(i+4)>>2]|0;if(k)if(k>>>0<(c[58497]|0)>>>0)mc();else{c[s+20>>2]=k;c[k+24>>2]=s;l=g;m=h;break}else{l=g;m=h}}else{l=g;m=h}}else{l=a;m=b}while(0);s=c[58497]|0;if(d>>>0<s>>>0)mc();v=a+(b+4)|0;w=c[v>>2]|0;if(!(w&2)){if((d|0)==(c[58499]|0)){u=(c[58496]|0)+m|0;c[58496]=u;c[58499]=l;c[l+4>>2]=u|1;if((l|0)!=(c[58498]|0))return;c[58498]=0;c[58495]=0;return}if((d|0)==(c[58498]|0)){u=(c[58495]|0)+m|0;c[58495]=u;c[58498]=l;c[l+4>>2]=u|1;c[l+u>>2]=u;return}u=(w&-8)+m|0;t=w>>>3;do if(w>>>0>=256){p=c[a+(b+24)>>2]|0;e=c[a+(b+12)>>2]|0;do if((e|0)==(d|0)){k=a+(b+20)|0;n=c[k>>2]|0;if(!n){f=a+(b+16)|0;j=c[f>>2]|0;if(!j){x=0;break}else{y=j;z=f}}else{y=n;z=k}while(1){k=y+20|0;n=c[k>>2]|0;if(n){y=n;z=k;continue}k=y+16|0;n=c[k>>2]|0;if(!n){A=y;B=z;break}else{y=n;z=k}}if(B>>>0<s>>>0)mc();else{c[B>>2]=0;x=A;break}}else{k=c[a+(b+8)>>2]|0;if(k>>>0<s>>>0)mc();n=k+12|0;if((c[n>>2]|0)!=(d|0))mc();f=e+8|0;if((c[f>>2]|0)==(d|0)){c[n>>2]=e;c[f>>2]=k;x=e;break}else mc()}while(0);if(p){e=c[a+(b+28)>>2]|0;h=234276+(e<<2)|0;if((d|0)==(c[h>>2]|0)){c[h>>2]=x;if(!x){c[58494]=c[58494]&~(1<<e);break}}else{if(p>>>0<(c[58497]|0)>>>0)mc();e=p+16|0;if((c[e>>2]|0)==(d|0))c[e>>2]=x;else c[p+20>>2]=x;if(!x)break}e=c[58497]|0;if(x>>>0<e>>>0)mc();c[x+24>>2]=p;h=c[a+(b+16)>>2]|0;do if(h)if(h>>>0<e>>>0)mc();else{c[x+16>>2]=h;c[h+24>>2]=x;break}while(0);h=c[a+(b+20)>>2]|0;if(h)if(h>>>0<(c[58497]|0)>>>0)mc();else{c[x+20>>2]=h;c[h+24>>2]=x;break}}}else{h=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;p=234012+(t<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0<s>>>0)mc();if((c[h+12>>2]|0)!=(d|0))mc()}if((e|0)==(h|0)){c[58493]=c[58493]&~(1<<t);break}if((e|0)!=(p|0)){if(e>>>0<s>>>0)mc();p=e+8|0;if((c[p>>2]|0)==(d|0))C=p;else mc()}else C=e+8|0;c[h+12>>2]=e;c[C>>2]=h}while(0);c[l+4>>2]=u|1;c[l+u>>2]=u;if((l|0)==(c[58498]|0)){c[58495]=u;return}else D=u}else{c[v>>2]=w&-2;c[l+4>>2]=m|1;c[l+m>>2]=m;D=m}m=D>>>3;if(D>>>0<256){w=m<<1;v=234012+(w<<2)|0;u=c[58493]|0;C=1<<m;if(u&C){m=234012+(w+2<<2)|0;d=c[m>>2]|0;if(d>>>0<(c[58497]|0)>>>0)mc();else{E=m;F=d}}else{c[58493]=u|C;E=234012+(w+2<<2)|0;F=v}c[E>>2]=l;c[F+12>>2]=l;c[l+8>>2]=F;c[l+12>>2]=v;return}v=D>>>8;if(v)if(D>>>0>16777215)G=31;else{F=(v+1048320|0)>>>16&8;E=v<<F;v=(E+520192|0)>>>16&4;w=E<<v;E=(w+245760|0)>>>16&2;C=14-(v|F|E)+(w<<E>>>15)|0;G=D>>>(C+7|0)&1|C<<1}else G=0;C=234276+(G<<2)|0;c[l+28>>2]=G;c[l+20>>2]=0;c[l+16>>2]=0;E=c[58494]|0;w=1<<G;if(!(E&w)){c[58494]=E|w;c[C>>2]=l;c[l+24>>2]=C;c[l+12>>2]=l;c[l+8>>2]=l;return}w=c[C>>2]|0;a:do if((c[w+4>>2]&-8|0)==(D|0))H=w;else{C=D<<((G|0)==31?0:25-(G>>>1)|0);E=w;while(1){F=E+16+(C>>>31<<2)|0;v=c[F>>2]|0;if(!v){I=F;J=E;break}if((c[v+4>>2]&-8|0)==(D|0)){H=v;break a}else{C=C<<1;E=v}}if(I>>>0<(c[58497]|0)>>>0)mc();c[I>>2]=l;c[l+24>>2]=J;c[l+12>>2]=l;c[l+8>>2]=l;return}while(0);J=H+8|0;I=c[J>>2]|0;D=c[58497]|0;if(!(I>>>0>=D>>>0&H>>>0>=D>>>0))mc();c[I+12>>2]=l;c[J>>2]=l;c[l+8>>2]=I;c[l+12>>2]=H;c[l+24>>2]=0;return}function zo(){}function Ao(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (C=e,a-c>>>0|0)|0}function Bo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (C=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function Co(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Sc(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function Do(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 Co(b,c,d)|0;return b|0}function Eo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function Fo(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function Go(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function Ho(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function Io(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function Jo(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=_(d,c)|0;f=a>>>16;a=(e>>>16)+(_(d,f)|0)|0;d=b>>>16;b=_(d,c)|0;return (C=(a>>>16)+(_(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Ko(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;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=Ao(e^a,f^b,e,f)|0;b=C;a=g^e;e=h^f;return Ao((Po(i,b,Ao(g^c,h^d,g,h)|0,C,0)|0)^a,C^e,a,e)|0}function Lo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+16|0;g=f|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;m=Ao(h^a,j^b,h,j)|0;b=C;Po(m,b,Ao(k^d,l^e,k,l)|0,C,g)|0;l=Ao(c[g>>2]^h,c[g+4>>2]^j,h,j)|0;j=C;i=f;return (C=j,l)|0}function Mo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Jo(e,a)|0;f=C;return (C=(_(b,a)|0)+(_(d,e)|0)+f|f&0,c|0|0)|0}function No(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Po(a,b,c,d,0)|0}function Oo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f|0;Po(a,b,d,e,g)|0;i=f;return (C=c[g+4>>2]|0,c[g>>2]|0)|0}function Po(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0;g=a;h=b;i=h;j=d;k=e;l=k;if(!i){m=(f|0)!=0;if(!l){if(m){c[f>>2]=(g>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (C=n,o)|0}else{if(!m){n=0;o=0;return (C=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;o=0;return (C=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(aa(l|0)|0)-(aa(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!f){n=0;o=0;return (C=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (C=n,o)|0}r=j-1|0;if(r&j){s=(aa(j|0)|0)+33-(aa(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(f){c[f>>2]=r&g;c[f+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (C=n,o)|0}else{r=Io(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (C=n,o)|0}}else{if(m){if(f){c[f>>2]=(i>>>0)%(j>>>0);c[f+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (C=n,o)|0}if(!g){if(f){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (C=n,o)|0}r=l-1|0;if(!(r&l)){if(f){c[f>>2]=a|0;c[f+4>>2]=r&i|b&0}n=0;o=i>>>((Io(l|0)|0)>>>0);return (C=n,o)|0}r=(aa(l|0)|0)-(aa(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!f){n=0;o=0;return (C=n,o)|0}c[f>>2]=a|0;c[f+4>>2]=h|b&0;n=0;o=0;return (C=n,o)|0}while(0);if(!t){B=x;D=w;E=v;F=u;G=0;H=0}else{b=d|0|0;d=k|e&0;e=Bo(b|0,d|0,-1,-1)|0;k=C;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Ao(e,k,g,a)|0;i=C;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Ao(g,a,l&b,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&d)|0;w=C;u=u-1|0}while((u|0)!=0);B=h;D=x;E=w;F=v;G=0;H=t}t=D;D=0;if(f){c[f>>2]=F;c[f+4>>2]=E}n=(t|0)>>>31|(B|D)<<1|(D<<1|t>>>31)&0|G;o=(t<<1|0>>>31)&-2|H;return (C=n,o)|0}function Qo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return dd[a&15](b|0,c|0,d|0)|0}function Ro(a,b,c){a=a|0;b=b|0;c=c|0;ed[a&31](b|0,c|0)}function So(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;fd[a&3](b|0,c|0,d|0,e|0,f|0)}function To(a,b,c){a=a|0;b=b|0;c=+c;gd[a&15](b|0,+c)}function Uo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;return hd[a&31](b|0,c|0,d|0,+e,f|0)|0}function Vo(a,b){a=a|0;b=b|0;id[a&63](b|0)}function Wo(a,b){a=a|0;b=b|0;return +jd[a&31](b|0)}function Xo(a,b){a=a|0;b=b|0;return kd[a&31](b|0)|0}function Yo(a,b,c){a=a|0;b=b|0;c=+c;return ld[a&0](b|0,+c)|0}function Zo(a){a=a|0;md[a&3]()}function _o(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;nd[a&31](b|0,c|0,+d)}function $o(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;od[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function ap(a,b,c){a=a|0;b=b|0;c=c|0;return pd[a&31](b|0,c|0)|0}function bp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;qd[a&31](b|0,c|0,d|0,e|0)}function cp(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}function dp(a,b){a=a|0;b=b|0;ba(1)}function ep(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(2)}function fp(a,b){a=a|0;b=+b;ba(3)}function gp(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;ba(4);return 0}function hp(a){a=a|0;ba(5)}function ip(a){a=a|0;ba(6);return 0.0}function jp(a){a=a|0;ba(7);return 0}function kp(a,b){a=a|0;b=+b;ba(8);return 0}function lp(){ba(9)}function mp(a,b,c){a=a|0;b=b|0;c=+c;ba(10)}function np(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(11)}function op(a,b){a=a|0;b=b|0;ba(12);return 0}function pp(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(13)}
// EMSCRIPTEN_END_FUNCS
var dd=[cp,Lf,Mf,zj,wk,nk,jk,Fm,po,zn,yn,An,of,xn,no,cp];var ed=[dp,Wi,Dl,yl,vl,vj,fk,bk,Zj,Wj,Tj,Pj,Mj,hj,Dj,sj,aj,nf,gg,hg,ig,dp,dp,dp,dp,dp,dp,dp,dp,dp,dp,dp];var fd=[ep,Mm,Lm,ep];var gd=[fp,Vg,Lg,Gg,Ti,Oi,Ji,yi,em,fp,fp,fp,fp,fp,fp,fp];var hd=[gp,Kl,Il,Gl,El,Bl,zl,wl,tl,tj,dk,$j,Xj,Uj,Rj,Nj,Kj,fj,Bj,qj,_i,gp,gp,gp,gp,gp,gp,gp,gp,gp,gp,gp];var id=[hp,Pg,Qg,De,Rg,Sg,Ee,Fe,Tg,Ug,Wg,Xg,He,Mg,Hg,Qi,Ri,Si,Ui,Li,Mi,Ni,Ii,Pi,Fi,Gi,Hi,Ki,vi,wi,xi,Ge,zi,bm,cm,dm,fm,sm,tm,Am,Dm,Bm,Cm,Em,Ed,Gd,Hd,Id,Tm,jo,ko,hp,hp,hp,hp,hp,hp,hp,hp,hp,hp,hp,hp,hp];var jd=[ip,Og,Zi,rl,ol,kl,gl,cl,_k,Wk,Sk,Ok,Kk,Gk,Ck,yk,uk,qk,lk,gk,wj,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip];var kd=[jp,Jf,Nf,Of,Pf,Qf,Ng,pl,ll,hl,dl,$k,Xk,Tk,Pk,Lk,Hk,Dk,zk,vk,rk,mk,hk,xj,oj,dj,bj,um,wn,jp,jp,jp];var ld=[kp];var md=[lp,Rm,jm,Sm];var nd=[mp,Ll,Jl,Hl,Fl,Cl,Al,xl,ul,uj,ek,ak,Yj,Vj,Sj,Oj,Lj,gj,Cj,rj,$i,mp,mp,mp,mp,mp,mp,mp,mp,mp,mp,mp];var od=[np,Om,Nm,np];var pd=[op,Kf,ik,ml,il,el,al,Yk,Uk,Qk,Mk,Ik,Ek,Ak,sk,Ij,Gj,Ej,yj,mj,kj,ij,mf,op,op,op,op,op,op,op,op,op];var qd=[pp,sl,ql,nl,jl,fl,bl,Zk,Vk,Rk,Nk,Jk,Fk,Bk,xk,tk,ok,kk,Jj,Hj,Fj,Aj,pj,nj,lj,jj,ej,cj,Hm,Im,pp,pp];return{___cxa_can_catch:Pm,_fflush:Fn,_main:km,___cxa_is_pointer_type:Qm,_i64Add:Bo,_memmove:Do,_i64Subtract:Ao,_memset:Eo,_malloc:to,_pInput_TouchMove:lg,_pInput_TouchEnd:kg,_pInput_TouchStart:jg,_bitshift64Lshr:Fo,_free:uo,_memcpy:Co,_Music_MuteForVideo:sg,___errno_location:Xm,_bitshift64Shl:Go,__GLOBAL__sub_I_settings_cpp:Xl,runPostSets:zo,stackAlloc:rd,stackSave:sd,stackRestore:td,establishStackSpace:ud,setThrew:vd,setTempRet0:yd,getTempRet0:zd,dynCall_iiii:Qo,dynCall_vii:Ro,dynCall_viiiii:So,dynCall_vid:To,dynCall_iiiidi:Uo,dynCall_vi:Vo,dynCall_di:Wo,dynCall_ii:Xo,dynCall_iid:Yo,dynCall_v:Zo,dynCall_viid:_o,dynCall_viiiiii:$o,dynCall_iii:ap,dynCall_viiii:bp}})
// EMSCRIPTEN_END_ASM
(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var runPostSets=Module["runPostSets"]=asm["runPostSets"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _fflush=Module["_fflush"]=asm["_fflush"];var _main=Module["_main"]=asm["_main"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memmove=Module["_memmove"]=asm["_memmove"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _pInput_TouchMove=Module["_pInput_TouchMove"]=asm["_pInput_TouchMove"];var _pInput_TouchEnd=Module["_pInput_TouchEnd"]=asm["_pInput_TouchEnd"];var _pInput_TouchStart=Module["_pInput_TouchStart"]=asm["_pInput_TouchStart"];var __GLOBAL__sub_I_settings_cpp=Module["__GLOBAL__sub_I_settings_cpp"]=asm["__GLOBAL__sub_I_settings_cpp"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _free=Module["_free"]=asm["_free"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _Music_MuteForVideo=Module["_Music_MuteForVideo"]=asm["_Music_MuteForVideo"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_iiiidi=Module["dynCall_iiiidi"]=asm["dynCall_iiiidi"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iid=Module["dynCall_iid"]=asm["dynCall_iid"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);removeRunDependency("memory initializer")});function doBrowserLoad(){Browser.asyncLoad(memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var request=Module["memoryInitializerRequest"];if(request){function useRequest(){if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(request.response){setTimeout(useRequest,0)}else{request.addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){assert(runDependencies==0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(__ATPRERUN__.length==0,"cannot call main when preRun functions remain to be called");args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i<argc-1;i=i+1){argv.push(allocate(intArrayFromString(args[i]),"i8",ALLOC_NORMAL));pad()}argv.push(0);argv=allocate(argv,"i32",ALLOC_NORMAL);try{var ret=Module["_main"](argc,argv,0);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{if(e&&typeof e==="object"&&e.stack)Module.printErr("exception thrown: "+[e,e.stack]);throw e}}finally{calledMain=true}};function run(args){args=args||Module["arguments"];if(preloadStartTime===null)preloadStartTime=Date.now();if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",(function(){process["exit"](status)}));console.log(" ");setTimeout((function(){process["exit"](status)}),500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()