forked from BenzLeung/benz-amr-recorder
/
BenzAMRRecorder.min.js
1 lines (1 loc) · 639 KB
/
BenzAMRRecorder.min.js
1
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i(require("fs"),require("path")):"function"==typeof define&&define.amd?define(["fs","path"],i):(e=e||self).BenzAMRRecorder=i(e.fs,e.path$1)}(this,function(e,i){function r(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function n(e,i){for(var r=0;r<i.length;r++){var n=i[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function A(e,i,r){return i&&n(e.prototype,i),r&&n(e,r),e}e=e&&e.hasOwnProperty("default")?e.default:e,i=i&&i.hasOwnProperty("default")?i.default:i;"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function t(e,i){return e(i={exports:{}},i.exports),i.exports}var f=t(function(e,i){var r,n;e.exports=(r=function(){var e,i=0,r=[],n=[];function A(e,i){for(var r=new Float32Array(i),n=0,A=0;A<e.length;A++)r.set(e[A],n),n+=e[A].length;return r}function t(e,i,r){for(var n=0;n<r.length;n++)e.setUint8(i+n,r.charCodeAt(n))}self.onmessage=function(f){switch(f.data.command){case"init":v=f.data.config,e=v.sampleRate;break;case"record":d=f.data.buffer,r.push(d[0]),n.push(d[1]),i+=d[0].length;break;case"exportWAV":a=f.data.type,s=A(r,i),l=A(n,i),c=function(e,i){for(var r=e.length+i.length,n=new Float32Array(r),A=0,t=0;A<r;)n[A++]=e[t],n[A++]=i[t],t++;return n}(s,l),w=new ArrayBuffer(44+2*c.length),t(h=new DataView(w),0,"RIFF"),h.setUint32(4,36+2*c.length,!0),t(h,8,"WAVE"),t(h,12,"fmt "),h.setUint32(16,16,!0),h.setUint16(20,1,!0),h.setUint16(22,2,!0),h.setUint32(24,e,!0),h.setUint32(28,4*e,!0),h.setUint16(32,4,!0),h.setUint16(34,16,!0),t(h,36,"data"),h.setUint32(40,2*c.length,!0),function(e,i,r){for(var n=0;n<r.length;n++,i+=2){var A=Math.max(-1,Math.min(1,r[n]));e.setInt16(i,A<0?32768*A:32767*A,!0)}}(h,44,c),u=new Blob([h],{type:a}),self.postMessage({type:"blob",data:u});break;case"getBuffer":(o=[]).push(A(r,i)),o.push(A(n,i)),self.postMessage({type:"buffer",data:o});break;case"clear":i=0,r=[],n=[]}var o,a,s,l,u,c,w,h,d,v}}.toString().replace(/^\s*function.*?\(\)\s*{/,"").replace(/}\s*$/,""),(n=function(e,i){var n=i||{},A=n.bufferLen||4096;this.context=e.context,this.node=(this.context.createScriptProcessor||this.context.createJavaScriptNode).call(this.context,A,2,2);var t=new Worker((window.URL||window.webkitURL).createObjectURL(new Blob([r],{type:"text/javascript"})));t.onmessage=function(e){"blob"===e.data.type?o(e.data.data):f(e.data.data)},t.postMessage({command:"init",config:{sampleRate:this.context.sampleRate}});var f,o,a=!1;this.node.onaudioprocess=function(e){a&&t.postMessage({command:"record",buffer:[e.inputBuffer.getChannelData(0),e.inputBuffer.getChannelData(1)]})},this.configure=function(e){for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i])},this.record=function(){a=!0},this.stop=function(){a=!1},this.clear=function(){t.postMessage({command:"clear"})},this.getBuffer=function(e){f=e||n.callback,t.postMessage({command:"getBuffer"})},this.exportWAV=function(e,i){if(o=e||n.callback,i=i||n.type||"audio/wav",!o)throw new Error("Callback not set");t.postMessage({command:"exportWAV",type:i})},this.release=function(){this.stop(),this.clear(),this.configure=this.record=this.stop=this.clear=this.getBuffer=this.exportWAV=function(){},e.disconnect(this.node),this.node.onaudioprocess=null,this.node.disconnect(),t.terminate()},e.connect(this.node),this.node.connect(this.context.destination)}).forceDownload=function(e,i){var r=(window.URL||window.webkitURL).createObjectURL(e),n=window.document.createElement("a");n.href=r,n.download=i||"output.wav";var A=document.createEvent("Event");A.initEvent("click",!0,!0),n.dispatchEvent(A)},n)}),o=window.AudioContext||window.webkitAudioContext||window.mozAudioContext,a=null,s=!0;window.resetAudioContext=function(){a?a.close().then(function(){a=null,a=new o}):o?a=new o:s=!1},window.resetAudioContext();var l=function(){function e(){r(this,e),this.A=null,this.o=null,this.u=null,this.B=!1,this.g=null}return A(e,[{key:"playPcm",value:function(e,i,r,n,A){i=A&&"audio/amr-wb"===A?16e3:i,this.stopPcm();var t,f=n&&n>.001?e.slice(i*n):e;if(!f||!f.length)return r();this.g=a.createBufferSource();try{console.log("[root- playPcm try 采样率] ",i),t=a.createBuffer(1,f.length,i)}catch(o){console.log("[root- playPcm catch 采样率]",i),i<11025?(t=a.createBuffer(1,f.length,4*i),this.g.playbackRate.value=.25):(t=a.createBuffer(1,f.length,2*i),this.g.playbackRate.value=.5)}t.copyToChannel?t.copyToChannel(f,0,0):t.getChannelData(0).set(f),this.g.buffer=t,this.g.loop=!1,this.g.connect(a.destination),this.g.onended=r,this.g.start()}},{key:"stopPcm",value:function(){this.g&&(this.g.stop(),this.g=null)}},{key:"stopPcmSilently",value:function(){this.g.onended=null,this.stopPcm()}},{key:"initRecorder",value:function(){var e=this;return new Promise(function(i,r){var n=function(r){e.A=r,e.o=a.createMediaStreamSource(r),e.u=new f(e.o),e.B=!1,i()},A=function(e){r(e)};e.u?i():window.navigator.mediaDevices&&window.navigator.mediaDevices.getUserMedia?window.navigator.mediaDevices.getUserMedia({audio:!0}).then(n).catch(A):window.navigator.getUserMedia?window.navigator.getUserMedia({audio:!0},n,A):A()})}},{key:"isRecording",value:function(){return this.u&&this.B}},{key:"startRecord",value:function(){this.u&&(this.u.clear(),this.u.record(),this.B=!0)}},{key:"stopRecord",value:function(){this.u&&(this.u.stop(),this.B=!1)}},{key:"generateRecordSamples",value:function(){var e=this;return new Promise(function(i){e.u&&e.u.getBuffer(function(e){i(e[0])})})}},{key:"releaseRecord",value:function(){this.A&&this.A.getTracks&&(this.A.getTracks().forEach(function(e){e.stop()}),this.A=null),this.u&&(this.u.release(),this.u=null)}}],[{key:"isPlaySupported",value:function(){return s}},{key:"isRecordSupported",value:function(){return!!(window.navigator.mediaDevices&&window.navigator.mediaDevices.getUserMedia||window.navigator.getUserMedia)}},{key:"getCtxSampleRate",value:function(){return a.sampleRate}},{key:"getCtxTime",value:function(){return a.currentTime}},{key:"decodeAudioArrayBufferByContext",value:function(e){return new Promise(function(i,r){a.decodeAudioData(e,function(e){var r=e.numberOfChannels,n=new Float32Array(e.length);switch(r){default:case 1:n=e.getChannelData(0);break;case 2:for(var A=e.getChannelData(0),t=e.getChannelData(1),f=0,o=n.length;f<o;f++)n[f]=.5*(A[f]+t[f]);break;case 4:for(var a=e.getChannelData(0),s=e.getChannelData(1),l=e.getChannelData(2),u=e.getChannelData(3),c=0,w=n.length;c<w;c++)n[c]=.25*(a[c]+s[c]+l[c]+u[c]);break;case 6:for(var h=e.getChannelData(0),d=e.getChannelData(1),v=e.getChannelData(2),B=e.getChannelData(4),E=e.getChannelData(5),g=0,b=n.length;g<b;g++)n[g]=.7071*(h[g]+d[g])+v[g]+.5*(B[g]+E[g])}i(n)},r)})}}]),e}(),u=t(function(r){r.exports=function(){var n=function(){var n,A={toWAV:function(e){var i=this.k(e);if(!i)return null;var r=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),n=new Uint8Array(r.length+this.WAV_HEADER_SIZE),A=0,t=function(e){var i=new Uint8Array(2);new Int16Array(i.buffer)[0]=e,n.set(i,A),A+=2},f=function(e){var i=new Uint8Array(4);new Int32Array(i.buffer)[0]=e,n.set(i,A),A+=4},o=function(e){var i=new TextEncoder("utf-8").encode(e);n.set(i,A),A+=i.length};o("RIFF"),f(36+r.length),o("WAVEfmt "),f(16);return t(1),t(1),f(16e3),f(32e3),t(2),t(16),o("data"),f(r.length),n.set(r,A),n},decode:function(e){var i=this.k(e);if(!i)return null;for(var r=new Float32Array(i.length),n=0;n<r.length;n++)r[n]=i[n]/32768;return r},encode:function(e,i,r){if(i<8e3)return console.error("pcmSampleRate should not be less than 8000."),null;void 0===r&&(r=this.Mode.MR795);var n=this.Encoder_Interface_init();if(!n)return null;var A=t.D(2*this.PCM_BUFFER_COUNT),f=new Int16Array(t.HEAPU8.buffer,A,this.PCM_BUFFER_COUNT);A=t.D(this.AMR_BUFFER_COUNT);for(var o=new Uint8Array(t.HEAPU8.buffer,A,this.AMR_BUFFER_COUNT),a=i/8e3,s=Math.floor(e.length/a),l=new Int16Array(s),u=0;u<s;u++)l[u]=32767*e[Math.floor(u*a)];var c=this.SIZES[r]+1,w=new Uint8Array(Math.ceil(s/this.PCM_BUFFER_COUNT*c)+this.AMR_HEADER.length);w.set(new TextEncoder("utf-8").encode(this.AMR_HEADER));for(var h=0,d=this.AMR_HEADER.length;h+this.PCM_BUFFER_COUNT<l.length&&d+c<w.length;){f.set(l.subarray(h,h+this.PCM_BUFFER_COUNT));var v=this.Encoder_Interface_Encode(n,r,f.byteOffset,o.byteOffset,0);if(v!=c){console.error([v,c]);break}w.set(o.subarray(0,v),d),h+=this.PCM_BUFFER_COUNT,d+=v}return t.C(f.byteOffset),t.C(o.byteOffset),this.Encoder_Interface_exit(n),w.subarray(0,d)},decodeRtp:function(e){var i=this.P(e);if(!i)return null;for(var r=new Float32Array(2*i.length),n=0;n<r.length;n++)r[2*n]=i[n]/32768,r[2*n+1]=r[2*n];return r},decodeInit:function(){return this.decoder||(this.decoder=this.D_IF_init()),this.decoder},decodeExit:function(){this.decoder&&(this.D_IF_exit(this.decoder),delete this.decoder)},k:function(e){if(String.fromCharCode.apply(null,e.subarray(0,this.AMR_HEADER.length))!==this.AMR_HEADER)return null;if(this.decodeInit(),!this.decoder)return null;var i=new Int16Array(Math.floor(e.length/6*this.PCM_BUFFER_COUNT)),r=A.D(this.AMR_BUFFER_COUNT),n=new Uint8Array(A.T.buffer,r,this.AMR_BUFFER_COUNT);r=A.D(2*this.PCM_BUFFER_COUNT);for(var t=new Int16Array(A.T.buffer,r,this.PCM_BUFFER_COUNT),f=this.AMR_HEADER.length,o=0;f+1<e.length&&o+1<i.length;){var a=this.SIZES[e[f]>>3&15];if(f+a+1>e.length)break;if(n.set(e.subarray(f,f+a+1)),this.D_IF_decode(this.decoder,n.byteOffset,t.byteOffset,0),o+this.PCM_BUFFER_COUNT>i.length){var s=new Int16Array(2*i.length);s.set(i.subarray(0,o)),i=s}i.set(t,o),o+=this.PCM_BUFFER_COUNT,f+=a+1}return A.C(n.byteOffset),A.C(t.byteOffset),i.subarray(0,o)},P:function(e){var i,r=this.RTP_HEADER_SIZE+1,n=0;for(i=this.RTP_HEADER_SIZE+1;128==(128&e[i])&&i<e.length;i++)n+=this.p(e[i])+1;if(n+=this.p(e[i])+this.RTP_HEADER_SIZE+2,i++,n!=e.length)return console.log("RTP calculated vs actual length error: Calc "+n+", actual: "+e.length),null;if(!this.decoder)return null;var t=new Int16Array(Math.floor(e.length/6*this.PCM_BUFFER_COUNT)),f=A.D(this.AMR_BUFFER_COUNT),o=new Uint8Array(A.T.buffer,f,this.AMR_BUFFER_COUNT);f=A.D(2*this.PCM_BUFFER_COUNT);for(var a=new Int16Array(A.T.buffer,f,this.PCM_BUFFER_COUNT),s=0;(r==this.RTP_HEADER_SIZE+1&&e[r-1]==this.RTP_TOC_HEADER||128==(128&e[r-1]))&&i<e.length;){var l=this.p(e[r]);if(i+l>e.length)break;if(o.set([127&e[r]]),o.set(e.subarray(i,i+l),1),this.D_IF_decode(this.decoder,o.byteOffset,a.byteOffset,0),s+this.PCM_BUFFER_COUNT>t.length){var u=new Int16Array(2*t.length);u.set(t.subarray(0,s)),t=u}t.set(a,s),s+=this.PCM_BUFFER_COUNT,i+=l}return A.C(o.byteOffset),A.C(a.byteOffset),t.subarray(0,s)},p:function(e){var i=e>>3&15;return this.SIZES[i]},Mode:{MR475:0,MR515:1,MR59:2,MR67:3,MR74:4,MR795:5,MR102:6,MR122:7,MRDTX:8},SIZES:[17,23,32,36,40,46,50,58,60,5,-1,-1,-1,-1,-1,0],AMR_BUFFER_COUNT:61,PCM_BUFFER_COUNT:320,AMR_HEADER:"#!AMR-WB\n",WAV_HEADER_SIZE:44,RTP_HEADER_SIZE:12,RTP_PAYLOAD_ID:97,RTP_TOC_HEADER:240},t={canvas:{},print:function(e){console.log(e)},onRuntimeInitialized:function(){return A.D_IF_init=t.M,A.D_IF_exit=t.I,A.D_IF_decode=t.F,A.C=t.C,A.T=t.HEAPU8,A.D=t.D,0}},f={};for(n in t)t.hasOwnProperty(n)&&(f[n]=t[n]);t.arguments=[],t.thisProgram="./this.program",t.quit=function(e,i){throw i},t.preRun=[],t.postRun=[];var o,a,s=!1,l=!1,u=!1,c=!1;if(t.ENVIRONMENT)if("WEB"===t.ENVIRONMENT)s=!0;else if("WORKER"===t.ENVIRONMENT)l=!0;else if("NODE"===t.ENVIRONMENT)u=!0;else{if("SHELL"!==t.ENVIRONMENT)throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.");c=!0}else s="object"==typeof window,l="function"==typeof importScripts,u="object"==typeof process&&!s&&!l,c=!s&&!u&&!l;if(u)t.read=function(r,n){var A;return(A=oe(r))||(o||(o=e),a||(a=i),r=a.normalize(r),A=o.readFileSync(r)),n?A:A.toString()},t.readBinary=function(e){var i=t.read(e,!0);return i.buffer||(i=new Uint8Array(i)),B(i.buffer),i},process.argv.length>1&&(t.thisProgram=process.argv[1].replace(/\\/g,"/")),t.arguments=process.argv.slice(2),r.exports=t,process.on("uncaughtException",function(e){if(!(e instanceof He))throw e}),process.on("unhandledRejection",function(e,i){t.printErr("node.js exiting due to unhandled promise rejection"),process.exit(1)}),t.inspect=function(){return"[Emscripten Module object]"};else if(c)"undefined"!=typeof read&&(t.read=function(e){var i=oe(e);return i?te(i):read(e)}),t.readBinary=function(e){var i;return(i=oe(e))?i:"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(B("object"==typeof(i=read(e,"binary"))),i)},"undefined"!=typeof scriptArgs?t.arguments=scriptArgs:void 0!==arguments&&(t.arguments=arguments),"function"==typeof quit&&(t.quit=function(e,i){quit(e)});else{if(!s&&!l)throw new Error("unknown runtime environment");t.read=function(e){try{var i=new XMLHttpRequest;return i.open("GET",e,!1),i.send(null),i.responseText}catch(n){var r=oe(e);if(r)return te(r);throw n}},l&&(t.readBinary=function(e){try{var i=new XMLHttpRequest;return i.open("GET",e,!1),i.responseType="arraybuffer",i.send(null),new Uint8Array(i.response)}catch(n){var r=oe(e);if(r)return r;throw n}}),t.readAsync=function(e,i,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status||0==n.status&&n.response)i(n.response);else{var A=oe(e);A?i(A.buffer):r()}},n.onerror=r,n.send(null)},void 0!==arguments&&(t.arguments=arguments),t.setWindowTitle=function(e){document.title=e}}for(n in t.print="undefined"!=typeof console?console.log.bind(console):"undefined"!=typeof print?print:null,t.printErr="undefined"!=typeof printErr?printErr:"undefined"!=typeof console&&console.warn.bind(console)||t.print,t.print=t.print,t.printErr=t.printErr,f)f.hasOwnProperty(n)&&(t[n]=f[n]);f=void 0;var w=16;function h(e,i){return i||(i=w),e=Math.ceil(e/i)*i}function d(e){d.shown||(d.shown={}),d.shown[e]||(d.shown[e]=1,t.printErr(e))}Me=function(){Se("cannot use the stack before compiled code is ready to run, and has provided stack access")};var v=0;function B(e,i){e||Se("Assertion failed: "+i)}function E(e,i){if(0===i||!e)return"";for(var r,n=0,A=0;B(e+A<S),n|=r=D[e+A>>0],(0!=r||i)&&(A++,!i||A!=i););i||(i=A);var t="";if(n<128){for(var f;i>0;)f=String.fromCharCode.apply(String,D.subarray(e,e+Math.min(i,1024))),t=t?t+f:f,e+=1024,i-=1024;return t}return function(e){return b(D,e)}(e)}var g="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function b(e,i){for(var r=i;e[r];)++r;if(r-i>16&&e.subarray&&g)return g.decode(e.subarray(i,r));for(var n,A,t,f,o,a="";;){if(!(n=e[i++]))return a;if(128&n)if(A=63&e[i++],192!=(224&n))if(t=63&e[i++],224==(240&n)?n=(15&n)<<12|A<<6|t:(f=63&e[i++],240==(248&n)?n=(7&n)<<18|A<<12|t<<6|f:(o=63&e[i++],n=248==(252&n)?(3&n)<<24|A<<18|t<<12|f<<6|o:(1&n)<<30|A<<24|t<<18|f<<12|o<<6|63&e[i++])),n<65536)a+=String.fromCharCode(n);else{var s=n-65536;a+=String.fromCharCode(55296|s>>10,56320|1023&s)}else a+=String.fromCharCode((31&n)<<6|A);else a+=String.fromCharCode(n)}}var k,D,Q,C,y,P,T,p,M,m,I,F;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function R(e){return e.replace(/__Z[\w\d_]+/g,function(e){var i,r=(i=e,d("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i);return e===r?e:e+" ["+r+"]"})}function O(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(i){e=i}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return t.extraStackTrace&&(e+="\n"+t.extraStackTrace()),R(e)}function H(){if(34821223==y[(m>>2)-1]&&2310721022==y[(m>>2)-2]||Se("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+y[(m>>2)-2].toString(16)+" "+y[(m>>2)-1].toString(16)),1668509029!==C[0])throw"Runtime error: The application has corrupted its heap memory area (address zero)!"}function U(){Se("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+S+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}P=M=m=0,T=!1;var N=t.TOTAL_STACK||65536,S=t.TOTAL_MEMORY||16777216;if(S<N&&t.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+S+"! (TOTAL_STACK="+N+")"),B("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),t.buffer?B((k=t.buffer).byteLength===S,"provided buffer should be "+S+" bytes, but it is "+k.byteLength):(B((k=new ArrayBuffer(S)).byteLength===S),t.buffer=k),t.HEAP8=new Int8Array(k),t.HEAP16=Q=new Int16Array(k),t.HEAP32=C=new Int32Array(k),t.HEAPU8=D=new Uint8Array(k),t.HEAPU16=new Uint16Array(k),t.HEAPU32=y=new Uint32Array(k),t.HEAPF32=new Float32Array(k),t.HEAPF64=new Float64Array(k),C[0]=1668509029,Q[1]=25459,115!==D[2]||99!==D[3])throw"Runtime error: expected the system to be little-endian!";function _(e){for(;e.length>0;){var i=e.shift();if("function"!=typeof i){var r=i.func;"number"==typeof r?void 0===i.arg?t.dynCall_v(r):t.dynCall_vi(r,i.arg):r(void 0===i.arg?null:i.arg)}else i()}}var L=[],G=[],X=[],x=[],Y=[],z=!1,j=!1;B(Math.imul&&Math.fround&&Math.clz32&&Math.trunc,"this is a legacy browser, build with LEGACY_VM_SUPPORT");var J=0,K=null,W=null,V={};t.preloadedImages={},t.preloadedAudios={};var q=null,Z={error:function(){Se("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1")},init:function(){Z.error()},createDataFile:function(){Z.error()},createPreloadedFile:function(){Z.error()},createLazyFile:function(){Z.error()},open:function(){Z.error()},mkdev:function(){Z.error()},registerDevice:function(){Z.error()},analyzePath:function(){Z.error()},loadFilesFromDB:function(){Z.error()},ErrnoError:function(){Z.error()}};t.FS_createDataFile=Z.createDataFile,t.FS_createPreloadedFile=Z.createPreloadedFile;var $="data:application/octet-stream;base64,";function ee(e){return String.prototype.startsWith?e.startsWith($):0===e.indexOf($)}P=25656,G.push(),q="data:application/octet-stream;base64,ZAEAAHYBAACOAQAAsAEAANgBAAAEAgAANgIAAGwCAACqAgAAqgIAAFwEAABkBQAAxgYAAMAIAAD6CgAAdA0AAE4QAABoEwAAAhcAALwaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAACxgAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAOD/LwAgAOX/j/5iBHP6AADWDlDdPTAY1dwNVh6vuWZWr7lWHtwNGNU9MFDd1g4AAHP6YgSP/uX/IAAvAP9/mnkzcwBgcR1mBkgB/38AQAAgACAAIDMTzQz/f3F94XoAYHEdZgZIAf9/cX1xfXF9cX1xfZpZYAwCdR1y+T5AAIA0oHcuQEBKYAyxe9cmoyPvPAYRGE8ACJBCi2ywQUA2YAyxe9cmqCM/DsEf0ngWbcBJHzDwARIE3Q/eTx1kpW18NmAMsXvXJqsj72CPAvhnjGhGHMBKABhYAD4QhWRndx533QBhT59FAABgDLF71yarI+9gvALwDmccIGc4JcIZAGZsABQIQzK9P/tZOGBoHdgGZxoAYGAMsXvXJq8jwzlXOA13X2EBY8p1lANgFiJKAAgQAkFAhAn9DedbJ3MtIKpB02lsSgAAYAyxe9cmqSO9IT98RmDgAuNvoQsGCtxjgjKINgAIQgPGDAQQKGltP/t5A0XTOm1QKXbDcQAAYAyxe9cmrCNsQYIME269P3538T34TXIiz1QiVKQQMkEAT1IOYhAZJcA/HDx7Fj97ADf2DTw+MgBgW8Vl8HlgDLF71yauI8hg4RYrSHdv3nPxN1VBLBGpchMnrEIYUNACAAARISUxv3DGYO0lu2UFHwFsjTaEO2pGH1YpQYAPPwBRAGQAbAB0AIAAiACYAJwA/3/2f9l/p39ifwp/nX4efop95HwqfF17fXqKeYV4bHdCdgV1tnNVcuNwX2/KbSRsbmqnaNBm6WTyYuxg1160XIJaQ1j2VZtTNFHATkBMtEkdR3tEzkEXP1c8jTm6Nt8z/DARLh8rJygoJSQiGh8MHPkY4hXIEqsPjAxrCUgGJAMAANz8uPmV9nTzVfA47R7qB+f04+bg3N3Y2tnX4dTv0QTPIcxGyXPGqcPpwDK+hbvjuEy2wLNAscyuZawKqr2nfqVMoymhFJ8OnRebMJlZl5KV3JM2kqGQHY+rjUqM+4q+iZSIe4d2hoOFo4TWgxyDdoLigWOB9oCegFmAJ4AKgACA6/8vAKf/kgA1/+UAT/8AAE8BufzNBV33cwsq8nEPCnBxDyrycwtd980FufxPAQAAT//lADX/kgCn/y8A6/+EALEA/QAdAT0BbQGNAc0B3QEjAAAAAAAAAAAAAAAAAAAABQAGAAcAPQBUAGsAggA+AFUACAAEACUAJgAnACgAOgBRAGgAfwA8AFMAagCBAGwAgwCAACkAKgBQAH4AAQADADkAZwBSAGkAOwACAD8AbQBuAFYAEwAWABcAQABXABIAFAAVABEADQBYACsAWQBBAG8ADgAYABkAGgAbABwADwAQACwAWgBCAHAACQALAAoADABDAHEAHQAeAB8AIAAiACEAIwAkAC0AMwBEAEoAWwBhAHIAeAAuAEUAXABzADQASwBiAHkALwBGAF0AdAA1AEwAYwB6ADAARwBeAHUANgBNAGQAewAxAEgAXwB2ADcATgBlAHwAMgBJAGAAdwA4AE8AZgB9AAAABAAGAAcABQADAC8AMAAxAHAAcQByAEsAagCMAKsAUABvAJEAsABNAGwAjgCtAE4AbQCPAK4ATwBuAJAArwBMAGsAjQCsADIAcwAzAAIAAQBRAHQAkgATABUADAARABIAFAAQABkADQAKAA4AGAAXABYAGgAIAA8ANAB1AB8AUgCTAAkAIQALAFMAlAA1AHYAHAAbAFQAlQAiACMAHQAuACAAHgA2AHcAJQAkACcAJgAoAFUAlgApACoAKwAsAC0ANwA8AEEARgBWAFsAYABlAHgAfQCCAIcAlwCcAKEApgA4AFcAeQCYAD0AXAB+AJ0AQgBhAIMAogBHAGYAiACnADkAWAB6AJkAPgBdAH8AngBDAGIAhACjAEgAZwCJAKgAOgBZAHsAmgA/AF4AgACfAEQAYwCFAKQASQBoAIoAqQA7AFoAfACbAEAAXwCBAKAARQBkAIYApQBKAGkAiwCqAAAABAAGAF0AjwDEAPYABwAFAAMALwAwADEAMgAzAJYAlwCYAJkAmgBeAJAAxQD3AGMAlQDKAPwAYACSAMcA+QBhAJMAyAD6AGQAywBiAJQAyQD7AF8AkQDGAPgANAACAAEAZQDMAJsAEwAVAAwAEQASABQAEAAZAA0ACgAOABgAFwAWABoACAAPADUAnAAfAGYAzQAJACEACwBnAM4ANgCdABwAGwBoAM8AIgAjAB0ALgAgAB4ANwCeACUAJAAnACYAKABpANAAKQAqACsALAAtADgAagCfANEAOQBCAEsAVABrAHQAfQCGAKAAqQCyALsA0gDbAOQA7QA6AGwAoQDTAD4AcAClANcAQwB1AKoA3ABHAHkArgDgAEwAfgCzAOUAUACCALcA6QBVAIcAvADuAFkAiwDAAPIAOwBtAKIA1AA/AHEApgDYAEQAdgCrAN0ASAB6AK8A4QBNAH8AtADmAFEAgwC4AOoAVgCIAL0A7wBaAIwAwQDzADwAbgCjANUAQAByAKcA2QBFAHcArADeAEkAewCwAOIATgCAALUA5wBSAIQAuQDrAFcAiQC+APAAWwCNAMIA9AA9AG8ApADWAEEAcwCoANoARgB4AK0A3wBKAHwAsQDjAE8AgQC2AOgAUwCFALoA7ABYAIoAvwDxAFwAjgDDAPUAAAAEAAYAZQCfANwAFgEHAAUAAwAvADAAMQAyADMApgCnAKgAqQCqAGYAoADdABcBawClAOIAHAFoAKIA3wAZAWkAowDgABoBbADjAGoApADhABsBZwChAN4AGAE0AAIAAQBtAOQAqwATABUADAARABIAFAAQABkADQAKAA4AGAAXABYAGgAIAA8ANQCsAB8AbgDlAAkAIQALAG8A5gA2AK0AHAAbAHAA5wAiACMAHQAuACAAHgA3AK4AJQAkACcAJgAoAHEA6AApACoAKwAsAC0AOAByAK8A6QA+AHgAtQDvAEsAhQDCAPwAOQBzALAA6gA/AHkAtgDwAEYAgAC9APcATACGAMMA/QBTAI0AygAEAVwAlgDTAA0BVACOAMsABQFdAJcA1AAOAVUAjwDMAAYBXgCYANUADwFWAJAAzQAHAV8AmQDWABABQAB6ALcA8QBNAIcAxAD+AEEAewC4APIATgCIAMUA/wBXAJEAzgAIAWAAmgDXABEBOgB0ALEA6wBCAHwAuQDzAEcAgQC+APgATwCJAMYAAAFYAJIAzwAJAWEAmwDYABIBOwB1ALIA7ABDAH0AugD0AEgAggC/APkAUACKAMcAAQFZAJMA0AAKAWIAnADZABMBPAB2ALMA7QBEAH4AuwD1AEkAgwDAAPoAUQCLAMgAAgFaAJQA0QALAWMAnQDaABQBPQB3ALQA7gBFAH8AvAD2AEoAhADBAPsAUgCMAMkAAwFbAJUA0gAMAWQAngDbABUBAAAEAAYAbQCvAPQANgEHAAUAAwAvADAAMQAyADMAtgC3ALgAuQC6AG4AsAD1ADcBcwC1APoAPAFwALIA9wA5AXEAswD4ADoBdAD7AHIAtAD5ADsBbwCxAPYAOAE0AAIAAQB1APwAuwATABUADAARABIAFAAQABkADQAKAA4AGAAXABYAGgAIAA8ANQC8AB8AdgD9AAkAIQALAHcA/gA2AL0AHAAbAHgA/wAiACMAHQAuACAAHgA3AL4AJQAkACcAJgAoAHkAAAEpACoAKwAsAC0AOAB6AL8AAQE/AIEAxgAIAUwAjgDTABUBWQCbAOAAIgFmAKgA7QAvATkAewDAAAIBRgCIAM0ADwFTAJUA2gAcAWAAogDnACkBPgCAAMUABwFLAI0A0gAUAVgAmgDfACEBZQCnAOwALgE6AHwAwQADAUcAiQDOABABVACWANsAHQFhAKMA6AAqATsAfQDCAAQBQACCAMcACQFDAIUAygAMAUgAigDPABEBTQCPANQAFgFQAJIA1wAZAVUAlwDcAB4BWgCcAOEAIwFdAJ8A5AAmAWIApADpACsBZwCpAO4AMAFqAKwA8QAzATwAfgDDAAUBQQCDAMgACgFEAIYAywANAUkAiwDQABIBTgCQANUAFwFRAJMA2AAaAVYAmADdAB8BWwCdAOIAJAFeAKAA5QAnAWMApQDqACwBaACqAO8AMQFrAK0A8gA0AT0AfwDEAAYBQgCEAMkACwFFAIcAzAAOAUoAjADRABMBTwCRANYAGAFSAJQA2QAbAVcAmQDeACABXACeAOMAJQFfAKEA5gAoAWQApgDrAC0BaQCrAPAAMgFsAK4A8wA1AQAABAAGAHkAxwAYAWYBBwAFAAMALwAwADEAMgAzAM4AzwDQANEA0gB6AMgAGQFnAX8AzQAeAWwBfADKABsBaQF9AMsAHAFqAYAAHwF+AMwAHQFrAXsAyQAaAWgBNAACAAEAgQAgAdMAEwAVAAwAEQASABQAEAAZAA0ACgAOABgAFwAWABoACAAPADUA1AAfAIIAIQEJACEACwCDACIBNgDVABwAGwCEACMBIgAjAB0ALgAgAB4ANwDWACUAJAAnACYAKACFACQBKQAqACsALAAtADgAhgDXACUBxgArAYgAeACKADwAFwE6AD4AZQGLAIwAJwGcADkA2wApAT8A2QCJAKoALAHeAEAAagA9AE4AJgFcAI4AjQCHAN0AKAEtAVcBOwAqAbgASQE7AdwA2AAJAfsA2gDtAGAB3wCdAFYAqwBXAKQAXwFvAC4BQQCyAHMAQwFIAMAAZQCzAF0ASQDBAJcAUQE1AY8AEgFFAEQBpQCWAGEAUgFuADYBSgERAUQAawCvAPUAcgBPAHEAvQD2AAMBrgBHALkAYABYAWQAQgFTAE4BPAFNAfwAoQBcAZMAUgANAegABAE0AWEBWwGjAOcAMgFAAbwADgGSALEACgFeAQABVQCVAHQAvwCgAO4AAgFQATEB/wBYAOAAYwBTAeYA5ADjABAB8gDxAD8B6QA3AWYASgC0ABMBQgDCAJgARQGsAPcA9AAFAXUAngCmAGIBSwCQAGwAOAFeALoALwFQAOoAWQDDAHAAVAG1AFkBPQFGARQB7wCnAHYAOQFGAGMBRwH9AL4AsAAPAWgAYgCZAGcAWgBMAAsBFQH4AOEABgG2AFQAmgDrAE8BqABLAcQAVQH5AKIAMwGUAF0BBwFBAQEB8wDlAGQBnwB3AEMAuwCtAJEA8ABNADABTAE6AVYBbQD+AFEAFgFpAFsAWgE+AbcA+gDFAEgBXwCbAKkADAHiAOwACAEAAAQABgCBANcAMAGGAQcABQADAC8AMAAxADIAMwDeAN8A4ADhAOIAggDYADEBhwGHAN0ANgGMAYQA2gAzAYkBhQDbADQBigGIADcBhgDcADUBiwGDANkAMgGIATQAAgABAIkAOAHjABMAFQAMABEAEgAUABAAGQANAAoADgAYABcAFgAaAAgADwA1AOQAHwCKADkBCQAhAAsAiwA6ATYA5QAcABsAjAA7ASIAIwAdAC4AIAAeADcA5gAlACQAJwAmACgAjQA8ASkAKgArACwALQA4AI4A5wA9AT8ASQBcAFQBUgBEAZUAYQGfAE4BpQBSAbIAowD+AE0AqAABAZkAVwE5APgA7gBPAPwApgBDAFAAyQBlAAsBjwCkAFUB/wBTAbsAeAE+AU4ASAFqAXMA6ADyAP0AIgEUAT4AOgCeAEQAXQCzAD8BlACpAJoASACBAUkBTQFYAWYAUwCQAOkAQwF8APMAwABiAe0AQAD3AMoA0QCWAHQATwEMAe8AKwG8AMQAKgFeAMMAAgF7AGsBgAFtAEUBcwGqAHIBVABuACcBtABKANIAvwBqACMBzQBvAX0BeQHOAGMBegB3AHgAfwGgAGkAbAAVAXwBJgEcAR0BWQHQAA0B+QBuAYIBLAEpAQMBfQBxAcUAYQDCAB4B0wAZARgBtwB0AVcAmwAbATsAXAFHAbgATABvAEoBywBdAUUAYgCYAJEAvQBCAEABUQGtAGYB+wDGAK4ABwEGAX4A8QDBAFgAhAF1AF8AgwFwAGcBHwH0AGcAEAEtAasAogDqABEBfwB1AbUAJAFVAHoBLgF5AGsAbAFaAWQB1AAWAdUAQQB+ASABzwBxAK8AYwAoAXYBcAHHAAQBuQBQAUsBoQAOAQgB+gDwAEsAXgGXADwAWQBBAZwAEgFoAUYBRgAaAacAkgBgAVEAWwCFAQoB9QCxAOsAvgAAAcwAVgGAAHYALwFoAHsBtgByAHcByABgACUBrADWAG0BFwFWACEBXwFbAWUBBQG6ALAADwFaAGQAkwBCARMBaQFHAEwBPQAJAZ0A9gDsAAAABAAGAJEA9wBgAcYBBwAFAAMALwAwADEAMgAzAP4A/wAAAQEBAgGSAPgAYQHHAZcA/QBmAcwBlAD6AGMByQGVAPsAZAHKAZgAZwGWAPwAZQHLAZMA+QBiAcgBNAACAAEAmQBoAQMBEwAVAAwAEQASABQAEAAZAA0ACgAOABgAFwAWABoACAAPADUABAEfAJoAaQEJACEACwCbAGoBNgAFARwAGwCcAGsBIgAjAB0ALgAgAB4ANwAGASUAJAAnACYAKACdAGwBKQAqACsALAAtADgAngAHAW0BtQDAAKoATwA5AI8BWgCfACkBeQFuARMBRAC3AIQBHgHCACsBXABGALYAkQGsADsAWwA6AJABcAGhAFEAoAAIAasAUACFAYYBegF7AcEAKgFFAAoBCQFvARUBIAEUAR8BuAA8AMMAUgBdAEcAcQGSAa0AogC8ASwBhwFiAEwAFgE9AAsBdgGHAJsBpwBmAHwByABXALIAQQBeAMwAfABIAFYBvQAxAX0BjAGxAS0B4gCXASEB7QBxANcAuQCAADUBkwF0AEABxABLAXIBpgGuAEAAiAFTAKkB2wCGALwAsAFwAKsBiwAXAaMAtAHQAL8B2gDsAOUAYQAmAYEB5gCmAAwBsQC7AeEAqgFlABABigB/ACIBdQBbAccAngFfAIwA8ACaAYsB0QCBABsBWgFpAPEAtQFWADQBwAHLAFkBugBrANwAnwFOAT8BagA5AXYAewBJAM8ApQHWAIABdQG2AT4AcwFVAUsAwQGoAEMBpADyAKABRAEwAcUATwGUAQ8BPwC/AEUBYACpAOcAGAE4AbsAlgFUAMkAZABDAH4BrwBQAcoASgENAYkBeAF/ASUBMwGZAbMAHQE6AS4BdAGOAb4AtABZAGMAZwDoAE4AWABNAIgAgwGlAMYAigF9ALAArAFKAHcB7gDjAEIAEQEaAY0AMgGcAXIAVQCCAFwBdwAjASgBggHpAI0BLwGVARwBvQGnAd0A0gDNAMIBbAASAbIB2ABXAVEBjgDzAEEBmAHDATYBJAF4AG0AGQG3AQ4BrQFMAScBogHTADsB3gBGAYMArgH0AEcBXQGhATwBjwBSAbgB6gBuANQAxAH1AHkAowFeAd8AhAC5AUgBnQE9AVMBfgBoAIkAvgFYAe8AswFzAE0BzgBCAdkA5ACoAcUBNwFfAW8AugHgANUAegCvAVQB6wD2AIUAkACkAUkBPgEAAAQABgCRAPsAaAHSAQcABQADAC8AMAAxADIAMwAGAQcBCAEJAQoBkgD8AGkB0wGXAAEBbgHYAZQA/gBrAdUBlQD/AGwB1gGcAHMBlgAAAW0B1wGTAP0AagHUATQAAgABAJ0AdAELARMAFQAMABEAEgAUABAAGQANAAoADgAYABcAFgAaAAgADwA1AAwBHwCYAJkAmgCbAAIBAwEEAQUBbwFwAXEBcgHZAdoB2wHcAZ4AdQEJACEACwCfAHYBNgANARwAGwCgAHcBIgAjAB0ALgAgAB4ANwAOASUAJAAnACYAKAChAHgBKQAqACsALAAtADgAogAPAXkBuQDEAK4ATwA5AJsBWgCjADEBhQF6ARsBRAC7AJABJgHGADMBXABGALoAnQGwADsAWwA6AJwBfAGlAFEApAAQAa8AUACRAZIBhgGHAcUAMgFFABIBEQF7AR0BKAEcAScBvAA8AMcAUgBdAEcAfQGeAbEApgDIATQBkwFiAEwAHgE9ABMBggGHAKcBqwBmAIgBzABXALYAQQBeANAAfABIAF4BwQA5AYkBmAG9ATUB5gCjASkB8QBxANsAvQCAAD0BnwF0AEgByABTAX4BsgGyAEAAlAFTALUB3wCGAMAAvAFwALcBiwAfAacAwAHUAMsB3gDwAOkAYQAuAY0B6gCqABQBtQDHAeUAtgFlABgBigB/ACoBdQBjAcsAqgFfAIwA9ACmAZcB1QCBACMBYgFpAPUAwQFWADwBzAHPAGEBvgBrAOAAqwFWAUcBagBBAXYAewBJANMAsQHaAIwBgQHCAT4AfwFdAUsAzQGsAEsBqAD2AKwBTAE4AckAVwGgARcBPwDDAE0BYACtAOsAIAFAAb8AogFUAM0AZABDAIoBswBYAc4AUgEVAZUBhAGLAS0BOwGlAbcAJQFCATYBgAGaAcIAuABZAGMAZwDsAE4AWABNAIgAjwGpAMoAlgF9ALQAuAFKAIMB8gDnAEIAGQEiAY0AOgGoAXIAVQCCAGQBdwArATABjgHtAJkBNwGhASQByQGzAeEA1gDRAM4BbAAaAb4B3ABfAVkBjgD3AEkBpAHPAT4BLAF4AG0AIQHDARYBuQFUAS8BrgHXAEMB4gBOAYMAugH4AE8BZQGtAUQBjwBaAcQB7gBuANgA0AH5AHkArwFmAeMAhADFAVABqQFFAVsBfgBoAIkAygFgAfMAvwFzAFUB0gBKAd0A6AC0AdEBPwFnAW8AxgHkANkAegC7AVwB7wD6AIUAkACwAVEBRgEAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIA//8MAN//RACJ/78A3f6uAYb9wwOw+dAO1TtA9ggF1/weAo/+9wBg/2AAzP8XAPr//P8YAML/fAAr/1IBAv7wAqn7rAZi9BsgUDCY8lkHTPssA9j9cAEV/4sAt/8eAPn/+f8eALf/iwAV/3AB2P0sA0z7WQeY8lAwGyBi9KwGqfvwAgL+UgEr/3wAwv8YAPz/+v8XAMz/YABg//cAj/4eAtf8CAVA9tU70A6w+cMDhv2uAd3+vwCJ/0QA3/8MAP//1k7dJcYMk/IwC4jrNQaz+lgCNQ8n+kb9swR/668E+xQw+j/9ufS4B4ID0QLc8IMQCOwAGfj7i+39DwDvhQxSCDT41fhYCgb5av49ArQJ6PFDDK36+vXgDoH9/ffj/UgJXA+K55gF7/EZE3IBNwJ1+9r0egcnAI72fg2fC0vwZw0iXtwocesF/QAIYfzZBgXzpAiMAp73twkt8g0QxfeK/o79rhCT6rsIQgcv9egCdAQF/bH53A8i7qYLdfvbArb7IwOnADb9XgLQ/X8CKwAa+ZwMIvWZAvsC6QAu+AsFTwdy8ggElgo48CgOiu+sFFLvGwZsALz9agZm9r0DIALsCQAA/v8EAP7/9v8mAKj/pQDt/qgBlf1nA0n7owba9ZsVzzad9wwDB//w/5kAK//iAC//rwB7/1sAyf8cAPb/AgABAPn/EwDf/y8AzP8rAPf/xP+vAJ3+cgLs+9UGPfN3KHcoPfPVBuz7cgKd/q8AxP/3/ysAzP8vAN//EwD5/wEAAgD2/xwAyf9bAHv/rwAv/+IAK/+ZAPD/B/8MA533zzabFdr1owZJ+2cDlf2oAe3+pQCo/yYA9v/+/wQA/v8AAAEA+f8WAM//XABn/+cAu/6vAeD9kAIG/VUDZfzIAyk8yANl/FUDBv2QAuD9rwG7/ucAZ/9cAM//FgD5/wEAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAD4p9QnZuaoJaHUf8MPkYAAAH5wTP47h+pZKVvol2gsMFhACxAP0AHQE9AW0BjQHNAd0BIwCaOWZm4Xr/fwBAZ0HVQkxEy0VSR+JIekocTMdNe084Uf9S0VSsVpJYglp+XIRelmC0Yt1kEmdUaaJr/m1mcN1yYHXyd5N6Qn3/fwAArwUyC4wQwBXPGrwfiCQ1KcQtNzKPNs469T4EQ/xG30quTmlSEVanWSxdn2ADZFdnm2rRbfpwFHQhdyJ6F33/f/9/LnyueHZ1fXK6byltwmqDaGZmaWSJYsJgE196XfVbglohWc9Xi1ZVVSxUD1P8UfRQ9k8BTxROME1TTH5Lr0rnSSVJaEiyRwBHVEatRQpFa0TRQztDqEIZQo5BBkGCQABAHgY0BSkG5Q3/C1oZYRCzJ5AR5gmbE4gR0hX+PF0WjgU1GUQCRBqvGukdxw2IHzMIKCDHFHsiRyIMJjQLgCa5BWcnyDABKGURayraGTksAw6ZLAgHey18CcYt3AMYMOUT6zDdIB4xZmY5MUQNdDNXBuUzdwlqNMcXkzQKMlg1Fw4fN6kRQDfNBFk4TwdfOEIcbTgSCyQ5NCcMOlhEOTstDmk7uxbDO9AInjxyEi89JASPPSQfQz68LpQ+tAvWPqsGiUCeEMBAUBj+QUwJCkKpAj1D1iDKRFoN50WVFPhG5C02RycGr0j/fyhJtFTBSu8J3kuxGfZLARD6S2Ajk08lOswAuQHQAbkHZQM1BDAE9gsBBZcSbwYDBjUHbBs9B3oCywcgCS8JKDxlCo0Ejgo8D5YKlSd7DNgGqg1ACk8OUQOQD0EWdhBHDT8RGAVXEggIABXOEQoVpAKOFQJcvxVyHgwW9QsoFukFRRciCYUZJASUGm4XpBrnBhkb/Q5tHJ4BiRxpCiodKCwGHxoDRx++B0cfVgWGICEMkCDKEgQiEh8dI+cIRyMfBB8k8A1DJF8GtiWnGFMmLQqIJ6sCnydTEAUomgdfKMIE5CjoJpspuAvHKvoF2SqqFMMrAQk9LOoN+y1iGj8uOQelLo8Rsi4SBccudzvJLnMD0i4aC5YwXQgxMVEOXDGvIHIxOgZWMkQKuDJOE1ozWwSoMwwCHTRbDFc0gwftNEkXJjV5BVc1XwnWNUUPLDarKpI3uwaYN3sLxjdoHWc49hFzONgDejjZCMg5ewXiOXUNMzpNFqk6AjzIOpoH3TpfCi08dyUtPO8P0jwPHEc97ghLPVgGUz38C5w9HRT8PbUEYj64Ank/AA7SP30HKEAACmNAVhGRQAoZ7EC+LsdBTCKGQuoLiUKVR8RCIAbjQk0Ux0NBCN5D1AOeRGZmyURID+dE/3/nRr8eFUfUCRpHERb3SNMM8klaBUdLvTV1SxgQBEy1B8ZMIic0TYgayE0PFEhOGQvyUnlN3gFMBKUIwwx7EGYUNhhIHCUgwSNyJ2QrcC+AM1U32w7z/l/9Iv/n/Rf/Uv52/z3+LP+1/kD/D/+p/xn/Qf+A/7r/lv9c//r/SgBN/xsA3/+a/0oAXv9zAKL/rAD6/4IAcf/qAA4A2gC//w4BWAC2AIT/VQHU/30BJgBPAXUAEgGQ/8YBSgCvAfv/6AGvAIABrf8xAnoAEQIVAFkC5QDhAecALwHiAGACLAF0AdIAuwAyAQkBSAHZAX4BSwFzAYQAiwA6AG0BFQD6AK7/uwHaAOMBbgCqAZ8BQwLeAAYCTQE9AsABxwERAq0CSQFMAUQCUwJRAtQBhQL6AgUCRgHFAuUBGQOCAKwCnwLhAmIBbANYACYDv//CAt3/+AMKAWMEyPyM/Ev82/w4/l7+Rv5K/uP9J/++/ef8WP9E/rr94f4U/u7+2P3X/tT+Xf+z/pr+jv4Y/xj/Uf+a/mH/g/7r/5v+SP9h/17/y/9B/+j+EgD1/in/dv89AOX+RwCh/9r+DQBk/979AACt/7H/LABhAMT+sgDM/yv/3gD7/lr+7QCK/9T/jQCRAHz/awFRAOH+1QBBACIAlf9eAPv/WwDj/34Anf4zANf/Jf+0/5EAwf9kAPQAMf0sABsAxP2E/5sAWf6FADsBa/xHAOAA9P4+AYMAo/9C/6QBn/96AOsBsf89AWMBggBkAEUBVgDb/tIAhQACAaEAsAC3/9EBwwAsAYABXAEWAN0AeAG3AJkBeQEeAcoA8gDVAJMCAQE1AvgAWAGYAbT/lQG4Af0BZAKBAXsBGAJfAtgAyP9GAsAAZAAFAjcCk/7AAb0B2AJbAQoA+QFlAfcCfAJGApICTwEFAlQDegEpAzwCPf9uAz0DEQLDAtsDlgPWAogB4gTlAycE2/y6/Pr89v2N/cT8I/4a/qX92f4f/ob9kv6A/nf+Rv9i/nT+E/92/pb/BP82/+3+w/9P/0b+rP86/zn/Tf+D/+H/uP/R/13/1v4k/9cAwP9Y//sAe/+cAMX/4v/+/38ANgBCAMP/F/8VAPsA0QDO/yAAIQDCAIgAi//u/9sBygAuADUBAAG5ADUAIwDIAIYByAAHAfIAKP8uASYBgABmAQAAEwCvAR8B4AC/ARgBbwGlANUAjQE6AT8BfwF7AUsAFQFFAc4BigH5AU4B+wBiACv/wgGZAMABNQLiAEwA1gF/AfYBewKGARYB7QCHAGwCVgGRAYkCSwEnAgYCggCiAVACEwIyAeEC2QKFAUQC8QEtArsCKAF/AWoDGwFwAvcCfgBuAtwBLwJTAtgBfgECA2gCzwJlAukCHAJ/AqADBQI6AyEDrAIrA1wC8AISA1kDpQOVAl4BtgLCASUEMgKPAxsEOAMtA1AE9gIXBHIDdASVA3kDDwTeBJIFywWCBlQH+Pyq/IX8aPzY/Z79af0b/b/+jv4k/sv9EgFg/zj+yQAJAUMAYP/O/vj/Lv9PABABowDsADMBNAFCAj0BQAAqAff/xQBWAWwCVwHoADoBbgKtAJUAJAIPAmQBcgHhAXgBhwC8AegBLAKHAdcB5wGNAuQAqAFAAkMDpgF0AdICqgInAaECtQJ7AhsCVAJOAsEB2wFqApMCMgPfAgUC6wGhAloCWgEBAW0DcQJ7AlED0ALXAjIDugJTAo0C4QGyAnMELgP6AsACjAP7AesCggOoA1ADVwOcAxEDhgINBHIDGwMEA00DAAR/BG0E1wMyA5kDrAMsBOQEFgU0BucGtgbpBdb8kfxP/AL/+AC4AJ8CgAAgAb8ClgNjAJICLgKWAtsAKAJJAo4D0AAvAiQD9wJ3AF4CBgOZA3X/DgP5AuwC0AD0AsQC1wM4ACACYAPyA5gA4QK6AtsDKwEDA5wDbwNnABgCEQPBA5UBmwKUAyEDSAHiAsECBQO3ATcDZwPgA2MBgALsAxwEcQHUAjYDtQNVAp8BjwLZAuIB8QOAAxkDawGMAyMDrwLn//gDRgPzA70AswNYBK4D3gCSAxkE1QMPArwD2wPzA4j/DQMZBGEEXACaBB0EdAMvAGMEIwSeBHYApQPMA/0EZQFVBJYDTQT3AQ8EBgXEBD0BRwW3BPIDRgHiAi4FIAn6DfQRHhY3GjIeLiIZJtEp0C0hMpM2wzrFD0MCOQQLBIYBAwD5/jr/rv8mABIAvP/0/zkB+QKVAfkAbwC0/+QC7wQMBe4D5QP7A/kD0AObA6X/OwO0A4gCZQIXAgoC6gGlASkA1P/n/ij+jAIWAsEAhwCm/ykAh/+c/sT/lwIzAT0A0P+o/i0CsgMZBGMDTgPeA1gE7gTZBIr/NP9IAQACZgMZA2ICkgG6AJwAJQFKAK7+Jf5//K79X/8P/uIAgwB2/zMBqQDx/lz/ff6Q/T4A4P/D/wT/4/3E/P379f1q/WYAw/+NAHAA8v4F/+P9GQBq/wYAfP+c/lL9oP++/vb94f+6/tz/L//3/Rv/MwF8//v/nf+A/jwAzf8T/2T9M/xp/jz9tf9U/xoAdv/2/m8A0v4rAOr+nP6Z/joCNgPwAWb/yP6k/4kAFwFzAW7/cAGZAUQABgBNAKcAygCiAHkCggPkA/QClgKrAg8DjQPkA5n/JgFfAp8B4wHOAeABrwGYAYj/rv6c/fT9SAJLAVwAsQEUAU7/2/5m/9f/DQFkAPf/1QCgAD4D4AIWATQD5gSuAsgCDwTZASb/0P7PAcYBjQERAcoAHgERARj/BwAGAHz+KP5V/ob+Wf+c/9r+Sf+GANH/ZQCo/6z/i//9/zkAEQA2/4b9I/yh++v9sADc/3gA5P8XAG8Awf4+Aer/s/8KAfH+MP5O/m79gP1//n/+nf+7/zr//f72/tT/2f91/3f/qwBCAAkAb/+H/rL8GPyR/7v+VgGHAK//4v6E/sAAx/8zAUwA6P90/6UCvgL3ADgA+QCNAJf/FP+d/yQA2f+7/1wBxgCj/0IBWwC4//cBdQPkBRsFAgWUBF8EuQQlBKABzwLdA8sE6QMcBLoD5QIUBIH/iP5v/YsAbwLfAPUBMgHcAI//gP7k/PgBtgFVANUArf8+/0kCbATRBEME3wSZBegFqAUiBVL/Wv4HAIMEQQSeBOsDsQMmAwgAgv/D/pn/of5J/Z7/9P7n/SEAmf/e/qcA2f9p/iwAMP+J/mgA6f/A/93+g/2t/MT7w/+Q/7X/zv5O/toAbP+e/lj9e/8o/4f/h/4y/Z//fv+X/mT/hf6p/cj/Av+2/esAnQAq/wsA/P5r/4T/9f5z/rz9r/3x/dv8f/5aAT//SP48/aH+c/8B/w3+bf9H/8ABlALuAdAA/QHNAVIBIwGVACH/WABPAZ8A1AC/AB4BNAHNAOH/1QEjA5MCawKSAksD2wNZBFX/Dv8CAmoBJwEMAigCtgJJAsD/zP5A/uv/HAESA74BIQFcACb/ev75/6kAzgBKAWABmAFmAdz/vgK/A1sDXQNbBPUETQUZBXv/q/6//6YCoQG4AeYBBgIMAyEA1P9B/6j+M/4N/Tf/2QDh/5/+3f3U/3sAw/+8/7H/HQA8AEkAx/9q/gL9JftN+/AAkAGlALf/5v6n/Sv/Vf+J/kwBIwCZ/+P/Mf/X/ST+gv10/KwA6v95/0D/Ef9c/5n/kf/R/5kAfQBuAP//Nf/G/fr7cPrp/ZsAAQCTALP+c/2f/Dv/Yv/r/9T/XwBsAIUBTALqASEAE//0/Yz9eP/8/igAT/8y/sUBXgN8AYMAfv9r/koDjgYxBw0GwgXoBDoEiQPmAnIBwAToBmEGvAR8AhYAtv5HALT/5/4b/Rr9ggNrAhUBRwAi/+D/9/7U/ef/4gOqAjEBfgBb/0kA4gJ9A8gD4QPoBuEIMAdvBbv/o/63/eoAhgSHA3IC/gH7AP//nf/w/i7/pf2h/uT91fyB/vD/Gv8I/poBlQAz/6n+df2B/WcA9/8d/zP/zv3z/Mn7SPtk/48APwB5/73/w/6m/fD8fvuA/XD/ef5e/ZL9OP8C/2z9Tfx1/tj/Bv+P/RsAHwJeAH3/fv5f/YX/jf4L/T3+zP2a/WH+Of3d/4z/y/6v/fT+7wDf/67+dv15/14A+wAqAjkAyP5Z/mb/x//rAPT+uf99AXIA1P+p/30ArQCFAOkFsgbWBBYCFAE7Ac0BywH8AX3/7f99BJ4C5gFkATUBcQEoASH/C/59/C79uv8GAIMANgGKAZ3/0f77/fkAQADL/4cA9f/FAW3/cf4m/W/+MQPiAiID7QI/Amb/Tf4d/SADUQJuARECPgFGASD/LQDZ/33+/f36/aD9gP6//sX+h/6PAJv/j/+H/k//cP/0/3UAKAAR/3X95fu7/R/9Ivy4/hoAzv9j/+n/O/7l/u393v3AAAT/C/4Z/bP9jf0N/rj+iv+4/7z+Ev4M/87+cP9P//r+ef+y/9z/Fv/5/T/89vrG/iH+jf7T/6H/3P7p/fj/1P5wAFz/6/7GAJ3/gP9wA0QDQwJfARcAof8n/+X//v58APMDVQKpAZAABwC3/6UBDQVoBlcGzgZRBtsFBAXuA6H/8AKQBiEGUgacBbAE1APIArv/1P5V/U3+bASDA/gBTAFtALb/vf6D/TMCMgRgAnMBaQDP/7L/PwOqBFYEYgXJBdQFVQXBBP3+h/+gBTYFXAbSBZ4FxwSlA67/zv6b/SL/hv5d/d/9Yf2z/DUAhP+l/qYBNACD//L+7/0JAE8Ap//A/mr9GfxR+yX7XP3X/rz/7/6d/YkAbv9z/o39s/wk/5D/pv7j/Mb86gB8/0T/6v72/WH/a/4i/V3+JQFKAFn/Wf+4AGf/S/6//Mj7sP4o/s/9rP4D/1f/Wf7M/Hj8ff/t/6b+pP0fACEA4f84AT4AbP8xAMX/NALmAc7+s/7CANT/QwBIAJMAzQDzADH/z/9QBdcDyQPfA/YDVgTNAy3/VP9zA3MCxwKiAsECHgPqAqj/u/4F/TL8rwKMAwICfgGsANz+nP3b/D8AgwAOAQMBYAFcARX/rP+7AzIDYAQJBRcGyAUFBUz/M/6a/ZECswLpAlYDDwPJAp//y/4j/pr99/wi/QD98v0o/qj+JP7d/1f/MQCz/2r/EP9z/8z/9P6B/Wn8Avun+6r+s/5p/7z/Dv+3/bf/L/8i/mH/U/6FADv/Df4T/Az78P4g/5f/vf8RAJX+lv1i/oz/wv8UAAoAdABsAD3/Jf52/BT7hfxH/uv+cv/k/x7/+f1K/ET97f72/oz/l/9SAJQB/wEIAkcBEQA+/7P+6P22/Y7/fv8UAe0AzABWAYcA8P+R/54CuASQBFwD5gJZAhACkwE1AY0BbQLGA/ACQwKOAZABSQH8AL8AtAB3/y3+EAFqAKH/EQBA/7D/3v6O/cIAVgLEABUA5/5NAP4BYANUBCcDqwOGA50DzQLhAYkAbwEWAvwCngJ+ASgBmQBUAC8B8QGQAKv/g//l/R7+MP4E/ekAWwFEAG3/qQAu/w7/Hv8e/jMBpgGaAFH/fv4u/Sz9ePwJ/DUBNAGgAMT/Kv5c/qr96fwl/0QAeQB3/9D9bv9C/v39Ev4n/YIANQAd/y4A2gEgAF//QP8W/tUApAC5/y/+lPxf/zj+tf3Q/9oAdQAnALEAPv+o/x7/Xv4yANIAIwI5AhcBeQDU/87/CgCs/zoAjAC2APv/CwF1AGoA0wDGABsCQwORA88CaQIgAk8CNQKCApkALwJoA8wB3gBsALwAtAC3AJ4AdwAcAWf/8f7lAFcAbgDH/0n/UgB2ABUADQAoAHYAvwC5AKIAeQOOAmwA3v/0AOgBMQIUAqMAOABhAlUBMgBJAUQACgHaAGQAzgASAND+lf9M/hn+v//O/qr/mgCGAOL/0/+3/5j/sP+g//UASgEKAEj+r/zG+08AKAD3/sQAdAEQAUv/E/57/hMBUADF/wIA9P8K/wf+nP9M/hUARf9R/iP/0P8kAPH+Rv9t/5P/GgBHANUAjABIAKH+lP2s/5X+RQAuAFsApwD9/6H/nf+X/9D/cgCTAAMB+QCsAF8ClgE0ADsAQ//A/nMAq//K/z4CgADiAMX/A/+CAML/CQQcBQsEZwRKBAUEwQM3AycAbAH1AqwD2AKUApMCRwICA43/rv4I/Sn+igElALkBsgAGAMf/z/7z/RwDxQG8APz/jv/4AEcAvAEdA9sCSASFBMYEBQQrA4cAZwEnAqkB7QIvA2oDwAL2AYQA9wAAADL/P/4S/f7+/v2H/fgA+QBbAHkAPf8N/qb/5v5N/k4AFADr/pH9Kfw4+2H+Nv6B/VsB/QHQAE3/MP4o/bT/E/8a/pn/qf4M/Tf99/6f/UH/cv6E/Yf/gf4T/TcC/ADc/57+X/7O/8wAZABr/3b9x/vR//n/+f5vANL/TP/1/rz+zv12/kz9jgEkAeIBngKrAnACugGlAHQAJABr/2wA9wAjAfcAYwF6AG0A4AAoAfL/sQPeAyED8wIvA08DkQN8AyQBXQHVAuIBhAFJAa0BbAKbAt7/xQDVAIH/VADuAWwCPwJ3AX4AzwCsAKcAagHKACgBiwHHAfr/+gAbAtMBfAIhA30EBwVeBBsA8ABxARgBuAGbAXoCfAO5A58AqgDG/3X+4/xO/U0ALf+y/vv/5P/z/7b/sf6l/SwBWAAz/1IA3/+U/kb9Tft/+24Abv/f/nEAAQAN/7T9HvwQ/p4BoAAqAMj/Cf9I/kv9HPwh/gsATv+b/mn/n/65/i3/rP6NAEEAqQHFASIAV/85/lz8QfuKAPMBAAFEAUQAiwDx/939Iv4RADIB9gHhAeD/ev+9AYEAcf8M/wn+Bf6p/T0AdP+n/vABygH+/xQAHf/+/YoB5QaCBjsFXQQmA4IC3wF8AdcABwKYAx0EQgQXAxACIgGbAMr/F/95/ab9fwImAf7/Wf9G/rL/xf7p/I//NAOTAZ4AjP+c/hECOwfTB8wEbgLX/2D+WAEzA5f/hf4U/8gEfQPtAjgCZAHWAO//Of9w/zIA5f4J/779svzB+0UA9f+D/jL/0QDk/n3+YP40/ScA+/9v/4r+Vv1z/M77b/vW+x8B4gBDACP/av1V/1v+fv09/Xz/pP7m/UD+7P/8/57+FP1b/AQAtf/f/qr9PQE0ADD/1/7R/aj/+P6a/rP9if0I//X9yvzR+0YA+P82AMb+/f1cAG7/7v4T/scAPgCHAZ4Ac/9HACX/Nf8x/5gAKABJAaIA4/8wAGv/bAB/AHsCIgRzA+wBdAE4AT0BEgHxAAsB0gLoBHIDcQL4AAgAr//E/8b/dv/d/qj99P/+/9n/kwB1AJX/p/7//csBTABcAPD+hAEGAWoBBALLAGf+NP3B/LX+uQDRAIv/ef7W/p8CJAEaAgEBpgDa/5r/wf4+/+X+w/36/r39Jf9E/hX/TgALAFj/m/8b//n+v/6F/0YAMgBW/6n9HPy0/fn+/P05/ooBawHlAHj/5v0VAEn/pP43/4T/kP6A/ZH8sfwv/2f+Ev79/YH/q/7j/Vf+Av72/wT/J/7d/lQAu/83/1z9nPxnAMn+fP/A/gUAU/9E/9f+jP3FAMf/BwD1/zEAYP84AC4CbwAhAMn+SP4x/v//Cv/N/l4DxQGLAFb/nf4Y/xcBxgNqBsYFtwVjBBsDDQJTATv/2v+mBjMF5AS2A7QC+AGqAZT/qP6j/Gz7vAFiAVgA0v8k/8v/v/4S/lkE6AJsAcYA3v+1/8kBuwOZBL4EkwWxBUEFlQMbArv/xwCBA3QEPwWfBNED5gIKAnoALADz/hsAZf/O/c3+sv37/JoAKgBg//wAf//P/in+I/2N/ocAuQCu/2D+Lv1v/Aj+Gf2Q/JUA1gCs/7f+WP29/Fb+a/2v/4D/hP4h/Rr8r/4RAEr/Lf5H/az/3v4C/rD9DQC4AZoA2v/p/kYAw/8K/yn96fuw/4P+6f1A/bIA/v9u/2L9VvziAYoAPwBBAPX/DwAEA7sBjgDs/y//gv9f/+D/B/9fACgCfAAeAKn+UgCq/5QA7wLrBVEEYwNeAtoBwAGPAV3///6DA0kEigPvAvYBhgEmAc3//v5B/tr8kP77AtABbAG3AFr/iv6R/lcAIwCPAaIBWANBAzP/yv5MAgoDEQMpBF4E3QSFBFP/yP5rAFkBkAEWA2YDWQTpA/n/iP99/mb+mv1R/B7/gP4V/jX/4P7N/7X+pv9O/2j+w/2u/jgA4//v/o397/vi/An/Lf6UAEIA/v8z/zP/wf2j/sf/oP7G/9P/H/8p/mT8D/5NAOD/LAB5/+v+Ff4P/gr+WP42/3f/TQBgABoATf8r/hD8FPsGAd3/fP/9/r7/GP9B/uv96/xB/5z/9f5sAU0FIQVwBBADtgG1AJEAfAKIApsCOAK6AdkAagGrAbgBogIMAkwBdQBf/nkAJwHUAdEB5gAsACP/bf8Q/5UAUACGARYBagBe/tT9KAL/AesAkACh/ysAwQASAZYAQwAiAO/+1f+C/6sAoAEaAT8Anv6M/qr/qP6U/6L/Sv+n/6j9uPw4/9EBAgH1/wP/0P9JAWEA3v7h/eX8nv7G/Yv/uwAKAHv/YP60/5b9f/8J/43+LQC0/xUBAvzJ+34A2gH+AH8ANADn/kwAWf+X/uX+2f3l/on/zP///4YA4P80/2H+KAQ7A30CrALQAdEADADiAaABwQFzAU8BJgHCAM8CQAJtAYcAcQBbADn/KgGwAO0BbgHCAKMAJADd/xT//f7c//z/YwCYAJ7/zv7l/+QAWgBvAKr/WwANAC3//v6W/1YAwP9JAN3/x//h/6IAIwBA/5P/sf6L/b7/w/+A/0IBEf5j/Sj9wQAfACT/egBEAV8Ap/+l/2f+Ov1m/wAAFv9cACEAqf6f/ST/qf5o/iT+cf1n/1IA3gAW/hf9Af8xAND/hwCB/3cAvf+4/nr+8P7f/cj/x/9+//b/+f9c/9H/6v/YAygEwQM4AtIA5f8QACsDswLyAgIC4ADd/6YAlgLAAmoCggE5AC3///7+AWcBogGJAVsAcP/u/z//4f/l/98AWQBx/xgAkP+e/9cBPwG5AAMArwD8AJIA0f8QATAALf8W/5IARQDLAGwBRADM/zMA/f4i/kf9o/4K/Qv+PwAL/v/83/5PAMn+D/6W//sANQAV/yv+gfyM/JEAYP7Z/YwAe//1/fn8LAC6/ln+N/0P/qr/Uf5jAAv9/Pxg/7T/0v/g/3sBVQDd/zj/b/5p/fD7Cf9M/7b+pP+I/hsASf+S//8EPgQNA/YBRAGkAJ0AqgLSAcEBFQGSABwAmQF7AtgBhgFrABj/5v11/8QAjAFMAdUA0QDj/6//lgCh/8j+TACz/8D+zv8uAAkALwCvAIsAHgCAAdoAzgDo/wb/oP/s/kn/GgB3ACYADgD8/3v/zP8j/pr9Jfw1/Yn90/zIABj9D/zX+xf9if1V/xIAd/8F/x3+m/0s/E37DACj/QH9zv1S/cD7/f06ADb/VP7y/ND7oP8W/03/IP47/dL7f/x9/6T/QQFv/z//AP4n/cT9A/0u/7X+t/3z/Yn95/4w/9H+jQRQBKsDPAPMAqoBmwAGAJP/NAMKA58BcQDl/30BUwE6AQkBeQD3/yb+i/4vAEgCugFjABn/j/8Q/tr/4/4GATEBqgAEALX91P1FAEIA1wFiAQ0Adv9GAO7/agBDAKcA0v5D/nP/uQC/AJcAUwB7///+9/0w/Tr/hgDS/0r/zfxw+/f8AAJnAV8Aj/+JAP7/tv92/2/+jv+N/g7/Lv7MAN8A4f8s/0D/7P2D/S7+Uv0AARUBdf+L+yT7g/61/8r/DgBYAMn+cwBx/w3+qf58AGD+mP1t/3n/KwD8/3kAj/5DAw8DgQKGAWMBXgFAAEgAwgC7AdMBtAHbAHQB0AFxAcAABABk/7j/Hv85AM4ALwHNALwAZQAJAdj/M/8Y/kj/FAFAAOb/J/9P/tf+iQBIATQB3/56AVEAzP4v/jkA2//jAJz/GADc/2n/xwAIAI8AVv5H/d37e/+EAaEAQQF8/QH8CfsnAEIAhf9GAHQBsQBT/9T91/3Q/kP/i/+P/lf+hv8y/mj/t/93/a78W/sB/fEBaAHeAOL8jftR+kL/rgHqALMAKgCi/2v+TP0mADb/Cv9X/5L+3v6o/8D/IADc/vIDmwOqA8YC0QHmAFYB2QAsAR4EowJEADb+Tf9OAMUBPAESABP/EP4N/6cAFQCoAdcApf/R/lb/3v6v/7r/vf8oADYAxf+f/lX+pv81AF4ACQA2AOT/PgEbAQ8AEP/G/08Atf+H/+UAIwA6AAYAe/+h/v79GP2+/D/9d/+kAJz7lPrh+xr/t/8oACQAXf8X/+z97/xu+0f9YADs/EH8Cv9S/pD9W//4/6j85P2K/XX8r/66/0wAV/zu+239I/0w/8cA5v/1/U4Anv8L/pv8hvyv/5D9Qf3T/6T+5/9XAEb/7QM3AyIC+QBaAOr/zwAqAY0BfQE/AcgAPgAvAdkBewGFAAn/iP1H/ksAHAHQAIcBcwDn/ywAXwC4/08Aof/B/3//2/7LAFz/o/5zAHoARQD//3oBXAGqAGMAOgBN/9L+vABC//7/lgAXAM3/9f/YAJn9ofy++2363vzQ//r/P/wE+/T5Kf3G/zgA3wCE/wH/z/0k/AP7bP+u/yD+bP2F/Fn7xfq7/hQAk/1r/PD6uvoIASEBMgC0/AL8v/rP+tv+LgAWAfz+LP7D/Gj76/3Q/bL/Kf8c/sr8L/vp/A8Adv8VBSUF7gQYBMwCZQHA/0ICOAOdAyIDdgJqAWYA1gGdA/8CAgJHAb4AkP/hAOwB7wG1AVYCgAHT/ysAUgDW/68ABwJWAcD/0P5m/58AQAKTAd0ARwHWAPQAegDC/zgBXABg/9oA0AA2AQwBMgFDATn/4/7z/rH/hP9x/2f/7AAz/4D+Vv5YATsAR/9I//D+9wB+AC7/+v0s/k4Anf+I//YBoADo/tP9MAFZ/u//5f5F/tcA1AB0/8z9VP0c//4BaQGCAEMBVP5PAWIAv/8kACn/Cv+W/jMAbAHw/xb/lgBb/5IDcwPvAo0CpALQAWf/dwIhAhcC0AJUAmgBr/8PA8gCAAK3AVUB+wB5/vEBoQH5AHQBJwGtAD//gACS/3/+XQAnAK0AGf/YAMX/A//OAYUBmgBFAMcBDgH8/6/+z//pAL7+MwGPADUA2gCAAOwAZP/b/0b/EP9l/pL/CQCPAXT/k/6M/QIBfAHWABUBgwDGAbEA4/74/WwAKv9NAHP/yQCF/xb+ff88APL/Pv/3/Rv9EQFqAd//lv7K/eH+HP+hAO0APQHz/sMAtf+J/jT/CwBNAID/+P5k/yH/Jf4JARsA1gR7BJQDsQKwAdIA6P4gA5gCbwPWApsBoABc/8YBrgIYAhMBkwAuAG8ALwHmAQACYwHxALUAu/9PAFwAHQCTAOkANAARAFX/IQGDALcBDwEDAPb/nQHxAJAArgCbAP7/DgA6ANkA9wDbAJUArwDu/+QA+P8Q/zL///1B/8oAoP/w/jr+IQDU/sH9LgD2/5T/Cv+l/v786f0JALr+Uv7D/7/+QP3V/skA///o/qX9Xf5H/xIA3P/8/fb9hf7d/kv/n/8bAGH/x/7z/SD/Av7B/Dv/3P41/sX/yv7O/XH/of4qBJADdwKFAc8AVgAg/1QCAAJUAvkBOgF6AND/EwNdA7kBo//R/iEAQv8BAdUBUQEzAA8AKgGj/ycBSQCJ/xkAJAAXAGwA5P/9/+D/cgAVALkAawDiATEBDwDp/sH+NABgAOIALgBzAEgAeP+FAIP/EgAx/9H9sv0J/h7+QQHF/ev8SfxU/0f+5v1xALUADgDK/n/9F/w2/58AeP93/k/+//1x/HD/6v9IAPf+Pv1G/GH/NQBMAa7+sf2s/IH+df44ACwAKwBi/zD+f/yJ/WP/2v5f/4D/uP7D/R3+g/8LAPkDigMbBO0DpwJVAZr/ZwFOAR8GIgXTAmkACgC//9YCEQItAdwAKwDv/gL+tAHPAjYCZgGzAHIA0P0qAYUAiP9WAeEADgB9/Jv/2QBpApABkgDG/9f/YAFSADz/JwB5AFn/LP87AL8BHAGnAfoAV/+N/hz+rP0eANf/+QAWAIz+dv3m/N0BvQHYALH/oP4TAREARf5f/FwAEwBF/Uj9rwEIAc//yv62AC78J/9S/nD+ZQAFAUgAX/yH/Jv+8//PAXoB7ADG/DgAHgDV/pj+gP/N/5L81f6R/0sAQQAkAAMAMQNwAef/YgG5Ak8CU/81AdQA3gDvAuQBjADI/1ECewFGAPj/AgG0AG4ApQDS//8AKQHbABEBaQCgALr/mv5L/3sBSgE/ARL/j/46/+QCRAI/AXH/yQBtADb/OP5IARQBc//LAKoAbwAqAM8AaAG8AKf+cf7//Rf/igKmAVEAhf0//Dz7zwEbAswA0QDKAOf/Pv8O/u38wQBx/z/+5v3DAJb/tf5EAD4AHP8j/rj8wP09AYAAGwFh/Vf82fyO/4cBTwHC//YAAgDG/ln90f60AKj/lf/w/loAOv/k/yIBkP91A30E/QPIAvABGQGt/w0B7AETA4MCWwFGAHwAUAF8AvMBXAAb/03/vwAaAJIBNAJUAZUA9f+HAEj+MQLWAcwAuP9G/4wAMP0OAGMB5QBEAHv/0QFuADYBZwAMAGoAHQCeAE7/cQChAI4AeQBzABsAdf1i/nv9aP9c//P/U/6B/VD8V/2Y/6//NABD/2n9XP/E/lX9Rvwz/63/n/1j/VT/+/1K/RsBsP96/Wj/gf5a/Qr/2P9x/xX95PwX/Xr+nv8rABMBqf05/3L+T/5M/ub9HwCt+8j9iP73/oL/6/8BAE8DPQI0AYgBMQFlADcAEQElAckACwFaAckAewDXAuAB4gACAL//dv+kABEB0ACtACQBDAD9AK4AVAHPALQAWAB0AC4A2wE0/lr/4v8NAG4ArQCMAYkAWAArAHf/ov8iABwBYADy/+IAKAA/AEYAggAt/iH9DPxq+83+MQG9/5z9aPyG+8n9+P9cAOf/Sv/x/hT+Dv2n/B8Btf8S/u38T/1V/Tv9iQC6/uD+2v15/K/7TgFBAcL/nv5z/b78Q/4BAHkBaP9e/87+oP1X/Nf+9wBA/xb/I/4M/xj+9v5WAbT+SQGZAfkA3//5AaAA4//y/0YC+v5/AGIBkQDtAK8AaP/1AHoAGwAqAFQBrP+j/zcBHQHeAGT/LwDV/wj+6gB5AIEBaADD/i0AsADDAAgAaADF/6L/sQA1AMAA3v+B/5gAOgIVAd7/vf+3/oH9Y//w/s4BT/8y/sYAQgGzAHMAfv6rABMAEwD0/8MAiP8E/8kAMAEkALD+gP8j/4T+qwBH/ygBDv/I/hcAxgAnABAA/f9P/5H/bwCj/0wApP8h/wQAsQCWAdT/WP98AWv//P8RAUsBXP4BAhUBFQD3AC8Axv+DAP7//f+GALQAb/8oAK8AvQBKAG//5f/T/7v+cgGO/+v/rf9h/lP/TQBfAM3/2P/i/73/RwBYAFYA3f+e/w4ARQDFALL+PP9PABn/pP53/9oAoP6n/6v/LwDJAH7/W/8lAPH/1f8DAFYAX/+U/08AUwAVABP/r/9r/xL/lgBG/wX/Rv8H/17/7f9CAHX/5v/O/0v/GAALAAAAfv+X/57/gf82ASoADv/FAAUAaf9UAO//Kv9/AGv/Cf99/58A9P71/qH/J/8BALH/8f6w/0f/0/+0AZ8ApQDHAIcB3/9RALsAvv/W/2MB1v7H/1cBlP/n/eIAcP/p/8EAsABu/lcANQAoARkArP/9AJj/xv9pAIL/V/+uAMb+0P8sANr+XP9f/g7/df8DAD7/Zf8x/y3/dwBCAdUATQEyAHwB7QD3AP7/0gHw/8kA7gAB/5X/QwBI/mv/egCo/3X/WAAJ/7f/1//nAKcAwv+bABAAv/8QAE0AvP/+/8H/af/U/qAA7v+z/jYAyP+i/wUAAgBC/w4AXACUANEAbAAJABABbAAjAG4AjgCr/5EALwBj/xcBAwDA/vYAKwC4/0QAVgAn/4cAJACMAE8AOACvAM//GgAtAAMASQA3AJv/bQBJ/w7//P/l/g7/MAC8/9D/+v9n/4b/oQDEAGAA6ABQAL4ApQBhAAsAAgHh/0cACwGz/6X/NwEv/1cAmADy/+r/lgBr/wkAvP4tArsAgP4zAS4ABf8bAE0Ak/5NAMz/Hv6s/6AAWP79/cD/2v6I//z/JP6M/5P/n/8+AW0BagBzAr0BQv94AB8Bbv9BAGsCVf7yAGsBl/6N/rABpf5mAKgAi/3DAPL/v//cAdH/1/5AAVj/yf9kAfj+ef5SAOL+zf/h/9T9Tv9x/rb9M//P/5j+qf4S/6/+3ADJAToAMQLTAQMBVAEOAVj/wgFNAOj+PACnAGP+hQAE/xT+2ACdAN7+GgEAABH+Hv8lAbcAY/+HAHoAYv/F/ycAe/+K/5//tP7L/nEAYP9X/vr/a/8t/xgAsP/r/qb/9f99AFIBggC5/9EBBQDT/7gA7QCh//0Adf87/ykB7f/U/v8Bwf9o/4sA+gDf/lABfABTAWr/IgCwADD/qwCmAIz/XgAmABv/SwC//63+sv8z/3/+AADi/13/yP+S/w7/QQH0AMIA+QHuAP//PQF0AEEANQFYALb/xAHN/87/TgEn/97+0wApAGj/7gDJ//z+9v+XAGcBiAAqAd8A/wCY/yIBpwEGALcA8v7z/p7/zP+u/w0Arv/u/p//WgAK/7j/1f66/6UBqP9tAa4BuwDC/n0BfAElAOgBi/7E/k8AzP6b/wUAef89/ggASABb/mb/tACqAIf/PgCxANj/RgFQAJf/+AAHAfv/WP9L/yP//v/p/2L/8v9r/4f/dwCl/23/dwBMAWf/MQAvASIAugHJ/7v/2QDGAToAmf5F/4n+1v8yAO7++P/1/gf/VQCq/6b+s//Y/1kBWQCGANsAnACw/6AAbAAoAHQAYv8y/x0ABQDg/68Av/9i/5IANwCy/0kAjv8i/2EB0f9RANMAMQBp/wwBaQAEAC4B+f58/7cAaf/k/8kAT//N/qYAZQAj/4IASgA6AJ7/IAAsAA0AwgAeAHL/qgBgAAgAeP+J/6X/v/8IAMn/AwBE/wwALQDB/8//lQDr/+3/GACQAF8A/gDq/zwAoQDEAGAAYv/D/zAAuv8hAFIA6f+//joAmwBt/wUAlP5IAU0A6//FAa0AlP9SAHYCbwEHAdAA1P7C/1D/M/+PAGL/V/9m/vj+AQHz/pz/hP0hAf7/3P5zAq0Agv6V/oMB+AAMAr8B9/2R/5X/df52AO7+qf5Y/YP/VP9B/mn9SwCUAJH+sf8HAaL/+QCUAOL+fAEPAV7/cv/8/0b/x/9vAIP/3f+U/wL/ZAAdAA7/sP8vAfj+sv/QAcf/+ADq/xL+lQKWAiwAP//Y/7b+Tv+RAK/+pv85/3D+2P/p/w7+QP9yADsB1//0AL4AWACf/+UB8QBQANQACv8oAFcAZP+TAIYA/v+y/u8ANAE1/24ANf77AKYBJv82AeQAqv+m/o4CuACvAKkBH/7B/6kAo/51ALwAg//Q/TYBngBg/l4ALgCrAED/wf+dAA4AAAHd//H+QgF7ADUAKv8EALT/ZP9WAO7/gAA7/xj/CQGm/57/zP5MAW//ff80AToA/QE7AK3+MgLEAPL/hv5kANH/Fv/KAAEAaADy/hP+PwEu/7v+sf+n//z/Vf9NAC3/oAA//2IAeACZ/0MBIADq/3//SABOAPT+tgC0/77/NQFjAG//G/9j/6z/gf5iALn/pv+g/gwA5P5O/7IAv/+D/1r/qf9R/6H+KgA6/9D/mgB0/w3/s/8SAGwA2f9jAVsAVwAIAJsA/P+eAO8AgABfAMr/BwD2AIT/AgEPAFkAzgDYAGIAN/8JABIAyP7pAMwA2f9S/5sAcP/3/xwBx/9GALv/Y/+7ABIANgDi/xcAGACHADcAqQCOAIn/cwDOAOz/XgDiAJb/OQHr/xAAwv+hAEcA/wCn/2UAR/99AEgA4v83/1gB/v4hAPj/UQCY/2b/SAAoAZAAvP/0/uf/UQCy/6n/agAWAJsARv+J/9L/5P8bAFsAjv/b/1H/3/+i/yL/Q/96AHz/if9B//L+VP9T/xIA1f8XAYcA1v+A/7sAqv/lAHb/nwDwAIwALgBFABkA4wBNABUAcwANAAgARAAI/34AUQBq/4kAzwD3/2b/e/8hAUMAjwDb/6r/uv60AOD/EwDp/xoAqAB0ABf/4P/m/3YAsv8DAPj/0/+N/zkAKf/K/63/L/9wAOr/Wf+l/2n/qAD6/sz/oP/UADsBt/9SADT/awGIADv/gv+1/rcA2gCPAM//1/8tAuYASAACALf/owB5Ad0AhQBvABYB1wCS/5r/7P8cAXEAEQFUAD8BIgESAFUA5//7/30AhAA0/9r/+/8eAff/nP50/wD/XAB1AEP/cP+/ADkBMwCe/6cA9v8sAPcAJAB9AcUA7gBKAAYAJgBo/h0A/f+r/1wACgGdAOf/OP+hAIf/RgBUAHT/8P+q/3AAov9D//P+8v5fAWsA6P+8/73/7AGZ/2X/y/99/z4AegAKAIcAVAAbAcn/iP/0/yX/SwGv/6cA3AB4/5MAVP/W/4wAof+T/6j/Pv8AAP7//P/f/4P+vv8n/5gARv9u/vQAbACcAHT/df5xAHj/PP9uAOj/1gB2AAsAwP99/5L/4v76/7T+EABeAGEATwDd/jP/+//Z/+z//ACg/0wArgBlAKMAPQC7/xH/yf+PAQYAjf8/AaQAEwHEAPH/JADR/0sBeQDiANEADwFFAbgADQCw/yb/1wFhASABegEQAM3/+wCuAHQANACVAOn+6wAUAScAeADQ/wAAlP+U//EArf6j/xYCLQAhAKn/wgCVALn/lQHU/5kBcgFRAEb/Zv8ZAJr/QP58AFP/FgCYAZL/yv4q/+b/FwCt/3IADgCS/6QANADfAK7/JQDn//n+MgHx/y7+nwEkAaUA7v8dAO3/Vf+bALYAswCQAOX/5wACAZn/Cf90/u4AcQB3AWb/k//8/5wAYgBVANz++/+E/3QAiwCM/57/2v7y/63/6v6L/4b+agAhAJb/qP4c/ncAEQBk/ooApgCAAWUANP9YAGT/h//k/tT+//9a/xgBIQBo/8f+r//b/xYA5QCZACUAxP+t/+wA+P/X/1f/HP9+AOz/awEV/xEAbAFk/5wA5//i/0gAkACcAJkA5v8AAWEAkADr/9v/MAC///oAPwBNABEBgP98AH//5v8oAAkAjf/6/1IAJgCm/0r/sP7z/xwAngBbAOL/8QCJAFb/7/+SAA4A9f8hAD0AwADFADYArP9VABcAOP+y/+P/jAB6AO0AagCr/ogAx/9y/6v/8P+2/8X/pv/4/0X/7P8t//X+2ABN/5L/zv/5/9wA9f66/8f/1v/v//H/RwAgABUAPwB3/yEAd/9R/2gAvP9hAL3/1f+FANP+3QCM/zj/r/+k//D+wP/X/8r/DP8k/+H+Dv/O/6n/p/8L/+wAZgBa/9n+QgAYAF7/uf9fAEIAiACm/yT/3P+e/1//Iv9E/x0A7v8SAO3/Yf4JADEAPQBkACcAyP+R/1IAhwDh/zQApv9n/6P/vQC2ACr/JwF3ALb/HAECAIkAJQAvALYAXAB1ALgAy/91Aev/8v/d/4gAhwGSAIEAXP/k/00BXABQAKz/ZAB6//j/2QDg/wMA0f9p//sAKf+OAFwAIP82AVT/7f5iAJ8AmwBP/3AANQDNABsACAAQ/8AAqQB4AMH+N/9qAAsAJACq/xP/xwGT/2b/Xf+uAMn/2v8gAJv/sv/F/zP/v/6f/0UATwDK/iwAEgBH/yIAjf/s/2z/2f/LAOP/mgDi/2L/pgDT/33/w/7o/2sBW/8z/5D/Iv8JAeD/1P9q/zYAP//6/9r/Af9X/43/9v5XAEP/3P9X/8T/qf/2/kz+Vv+8/6//6v4YACYA6f/t/2X/AP+NAMP/Hv/L/VH/RwAJAOP/E//9/QcB1v76/18AHwAr/6n/hv8FAQQAz//QAA4Af/+S/x4AdgAq/wIBbgAV/9f/7v+C/3gAZwBBAH8A2/9+ANz/6P8ZAHb/vf/q/kb/XP8+/zf/TgAt/6n/zf8j/1L/sf+i/9n/FwD6/2P/EP8WAJL/Z/+8/5QA+//+/2v///95/9n/Tf9EAGgBi//x/4kALwDq/pIAiAAEAYcAQQA9AHQA0/9hAOcAewFXAIj/UgGxAPD+AwAKAZwAHAC7/wQBVACr/1YA9v6aAAD/Sv/v/7//0P76/9j/rwBp/0z/5f8bAKn/wf95AHIAWv8r/p8Avv+9/hn/1gCYAHP/LP+JACQASP/N/+b+E/8oAAoA0P8V/9v/+wDK/73+iAAdAKj/Uv/VAMYAev5jAMH/if5rAFf/XP+oAUUAkf+NAFn/SgB//0EAkACf/jH/M/+T/2D/fv6d/mIAUP8T/uz/cf8E/1D+/v/YAKb/Uv9Y/2X+DQDk/hv/YP+p/+n+IgAF/7X/+f7G/9b/pAE1AC3/mv6AAd3/iv6MAUQAHP9DAf7/pwDN/sAAwgDLAUkB+/+0/ncBTwD5/zkBGgGE/8gApP8PAV7/uv+0AGP/1v7+/cv+OgBd/979EgB8AJT+pwAS/1MAZf6L/2AAjACQ/3z+kP0DAXv/w/4pAKMAfv/A/7L+4gBb/4T/kv8u/sP/BgDlAGf/zQBv//IAYf8wAMMAlADG/xwAHwAXAdH+uQAXAfz/w//FADsAVgCO/3sAqADM/yMAJABkAH4Aaf5mALP/2P+u/v//qv6cAE3/aQDe/5//R/9UAN3/bAB7/2sApf+b/kz/NgAb/xgA1P8vAC8ASv++/w0ALQAEAK3++wBAAOIA1v9lAKL+EwGd/44BjgB5AG8ADACa/wQBAAD5AQQBov+hAB0BoP/gAPz/zgA6ASEApwCLAFgAzAAV/zwBxP/n//j/av/I/skA3P8kAT0AmP/Y/64AXv8qAOv/kgHj/6H+FQCYAJj+o/85AL8A1AA8/0wAngDr/7v/uP5H/0sBdwDL/x0BOABRAZX/6P+VAR0A7v+JABABFQEB/xYArQBB/ycBQgFFAS4BFQDl/0wBTv93AA0ADwGBADn+TP90AEH/Hf8+AGz/DAJQ/+H+GgFj/w3/DQDHAK4Bxf/P/3MAk/5IAFT/d/9dAHb/gv+NAKz/BQCE/yYA7P/+/jcBWQLVAF4AggDD//YB//9j/+UBOQGSALb/ngBZARQBhwAYAcf/6gH8AGMAKwALAbb/rQFpABYB6f93AF4A4v3oAQEBjf+s/wz/Sv7eAY//3/2DAWUAof/O/m8A8gFfAKYAFgDT/qQB8f/G/7L/DgEdAHoA5v6gABD/MgDa/1EA7v9EAOX/hv/o/vz/LQBP/9EA4v94/7b/gwDU/2UAtf+o/9D/d//K/wv/5P8/AO7/kP+Z/zoAsf/6/9wAv/9yAN3/zv9tAL//jwCO/4EATAB9AKYAWgDD/w7/ugC2/9X/0v+k/zEAHf8YAGX/JwBDAFUAYwDW/zUASP/n/o4Ahv8AABUAcv/x/+//3wBcAOv/0P+u//L/Wf8zANv/Df/i/6b/EgDI/zYAaQBKAFYARQANAJv/xABIAKf/KwBBABMAJwB5ACIAgwCu/xkA1QBk/2UAmv94/+v/OQDWABYAJACE/80AzAA6AGT/rf9TAIv/iQCJAFUAdAAsAKT/bP+8/wsAmv87/yT/tP9H/8b/hADm/0n/VQD5/+H//v8XAM0Aaf8KAOX/2//7/+7/JAGDAAEAdQBY/wkAo/9QAMX/g/9K/wz/YgDo/4cA6v9eAN0AYQBqACoAKwBg/1MAGQDA/+v/BgAOAPH/mgB+AA8AdP+WAPb/Mf+O/08Awf8t/7r/5P8n/6UALgAmAOr/GQGEAML/bQBwADYAkP+j/9AAGwAoAXMACgBt/ykA2AAqAOz+MgCN/wL/pwB1AP7/PQARAJAAIgC4/0b/av8QAeP/vv+n/6H/a/+BAPsAegAAAM7/Fv+l/yQAGgCX/5r/qP+H/xT/+f/1/zT/bQAFAEH/aQDx/6MAsP8gAOj/L/8pACYBRgCW/6L/NP+K/3gAzv/b/67/D/8uAH3/4/+WAMn/IQCbAHgAp//4/wcAPgDVAFIAPQASAF//kACYAB4AgwBBAKn/Af/v/5X/+P9VAMD/MwBe/98Ay/96/wUBRQDI/9oASACR/wIAmwCP/6n/MQBVAOT/Xf8qAP//PP8HACcAC/8OAHf/sf8LAGD/ygDb/qL/IQDQAGQAOADU/0YBsv/X/+gADQBy/+MAUADw/6n/yQAhAHv/DwBJ/8b/QP/R/7gAgP+FAGMAM/8LAGX/TgA0AEgAjQAK/xoAYwCXADsAcwDA/7H/0f/w//L/BgAvANX/uP9O/+X/ogBwACsAUv9R/+4AugBHAMr/RP+0/x//6QAnANn/Yv96ACwA5v8rAFQAggCj/83/FgADAFwAav+IAEr/x/9hAH3/swCy/1AAWwBb/1oA/v+UAA8AggBBAK8AdQB2/3IAd/+EAAMA9v9G/4wA/P/b//4Awv9cAJP/KA5BEt0VTxkBHbogbCQYKMorri9PNPw5gkHHTOFe2H8=";var ie=P;P+=16,B(ie%8==0);var re={varargs:0,get:function(e){return re.varargs+=4,C[re.varargs-4>>2]},getStr:function(){return E(re.get())},get64:function(){var e=re.get(),i=re.get();return B(e>=0?0===i:-1===i),e},getZero:function(){B(0===re.get())}};function ne(){var e=t.R;e&&e(0);var i=Ae.printChar;if(i){var r=Ae.buffers;r[1].length&&i(1,10),r[2].length&&i(2,10)}}function Ae(e,i){re.varargs=i;try{var r=re.get(),n=re.get(),A=re.get(),f=0;Ae.buffers||(Ae.buffers=[null,[],[]],Ae.printChar=function(e,i){var r=Ae.buffers[e];B(r),0===i||10===i?((1===e?t.print:t.printErr)(b(r,0)),r.length=0):r.push(i)});for(var o=0;o<A;o++){for(var a=C[n+8*o>>2],s=C[n+(8*o+4)>>2],l=0;l<s;l++)Ae.printChar(r,D[a+l]);f+=s}return f}catch(u){return void 0!==Z&&u instanceof Z.ErrnoError||Se(u),-u.errno}}function te(e){for(var i=[],r=0;r<e.length;r++){var n=e[r];n>255&&(B(!1,"Character code "+n+" ("+String.fromCharCode(n)+") at offset "+r+" not in 0x00-0xFF."),n&=255),i.push(String.fromCharCode(n))}return i.join("")}F=function(e){B(!T);var i=P;return P=P+e+15&-16,i}(4),p=M=h(P),I=h(m=p+N),C[F>>2]=I,T=!0,B(I<S,"TOTAL_MEMORY not big enough for stack");var fe="function"==typeof atob?atob:function(e){var i,r,n,A,t,f,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a="",s=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{i=o.indexOf(e.charAt(s++))<<2|(A=o.indexOf(e.charAt(s++)))>>4,r=(15&A)<<4|(t=o.indexOf(e.charAt(s++)))>>2,n=(3&t)<<6|(f=o.indexOf(e.charAt(s++))),a+=String.fromCharCode(i),64!==t&&(a+=String.fromCharCode(r)),64!==f&&(a+=String.fromCharCode(n))}while(s<e.length);return a};function oe(e){if(ee(e))return function(e){if("boolean"==typeof u&&u){var i;try{i=Buffer.from(e,"base64")}catch(t){i=new Buffer(e,"base64")}return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}try{for(var r=fe(e),n=new Uint8Array(r.length),A=0;A<r.length;++A)n[A]=r.charCodeAt(A);return n}catch(t){throw new Error("Converting base64 string to bytes failed.")}}(e.slice($.length))}t.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},t.asmLibraryArg={abort:Se,assert:B,enlargeMemory:function(){U()},getTotalMemory:function(){return S},abortOnCannotGrowMemory:U,abortStackOverflow:function(e){Se("Stack overflow! Attempted to allocate "+e+" bytes on the stack, but stack has only "+(m-Me()+e)+" bytes available!")},nullFunc_ii:function(e){t.printErr("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"),t.printErr("Build with ASSERTIONS=2 for more info."),Se(e)},nullFunc_iiii:function(e){t.printErr("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"),t.printErr("Build with ASSERTIONS=2 for more info."),Se(e)},invoke_ii:function(e,i){try{return t.dynCall_ii(e,i)}catch(r){if("number"!=typeof r&&"longjmp"!==r)throw r;t.setThrew(1,0)}},invoke_iiii:function(e,i,r,n){try{return t.dynCall_iiii(e,i,r,n)}catch(A){if("number"!=typeof A&&"longjmp"!==A)throw A;t.setThrew(1,0)}},___lock:function(){},___setErrNo:function(e){return t.___errno_location?C[t.___errno_location()>>2]=e:t.printErr("failed to set errno from JS"),e},___syscall140:function(e,i){re.varargs=i;try{var r=re.getStreamFromFD(),n=(re.get(),re.get()),A=re.get(),t=re.get(),f=n;return Z.llseek(r,f,t),C[A>>2]=r.position,r.getdents&&0===f&&0===t&&(r.getdents=null),0}catch(o){return void 0!==Z&&o instanceof Z.ErrnoError||Se(o),-o.errno}},___syscall146:Ae,___syscall54:function(e,i){re.varargs=i;try{return 0}catch(r){return void 0!==Z&&r instanceof Z.ErrnoError||Se(r),-r.errno}},___syscall6:function(e,i){re.varargs=i;try{var r=re.getStreamFromFD();return Z.close(r),0}catch(n){return void 0!==Z&&n instanceof Z.ErrnoError||Se(n),-n.errno}},___unlock:function(){},O:function(e,i,r){return D.set(D.subarray(i,i+r),e),e},flush_NO_FILESYSTEM:ne,DYNAMICTOP_PTR:F,tempDoublePtr:ie,ABORT:v,STACKTOP:M,STACK_MAX:m};var ae=function(e,i,r){"use asm";var n=new e.Int8Array(r);var A=new e.Int16Array(r);var t=new e.Int32Array(r);var f=new e.Uint8Array(r);var o=new e.Uint16Array(r);var a=new e.Uint32Array(r);var s=new e.Float32Array(r);var l=new e.Float64Array(r);var u=i.DYNAMICTOP_PTR|0;var c=i.tempDoublePtr|0;var w=i.ABORT|0;var h=i.STACKTOP|0;var d=i.STACK_MAX|0;var v=e.NaN,B=e.Infinity;var E=0;var g=e.Math.floor;var b=e.Math.abs;var k=e.Math.sqrt;var D=e.Math.pow;var Q=e.Math.cos;var C=e.Math.sin;var y=e.Math.tan;var P=e.Math.acos;var T=e.Math.asin;var p=e.Math.atan;var M=e.Math.atan2;var m=e.Math.exp;var I=e.Math.log;var F=e.Math.ceil;var R=e.Math.imul;var O=e.Math.min;var H=e.Math.max;var U=e.Math.clz32;var N=i.abort;var S=i.assert;var _=i.enlargeMemory;var L=i.getTotalMemory;var G=i.abortOnCannotGrowMemory;var X=i.abortStackOverflow;var x=i.nullFunc_ii;var Y=i.nullFunc_iiii;var z=i.invoke_ii;var j=i.invoke_iiii;var J=i.___lock;var K=i.___setErrNo;var W=i.___syscall140;var V=i.___syscall146;var q=i.___syscall54;var Z=i.___syscall6;var $=i.___unlock;var ee=i.O;var ie=i.flush_NO_FILESYSTEM;function re(e){e=e|0;var i=0;i=h;h=h+e|0;h=h+15&-16;if((h|0)>=(d|0))X(e|0);return i|0}function ne(){return h|0}function Ae(e){e=e|0;h=e}function te(e,i){e=e|0;i=i|0;h=e;d=i}function fe(e,i){e=e|0;i=i|0}function oe(e){e=e|0;E=e}function ae(){return E|0}function se(){var e=0,i=0,r=0;e=Mi(44)|0;i=e;r=i+44|0;do{t[i>>2]=0;i=i+4|0}while((i|0)<(r|0));t[e+16>>2]=Mi(954)|0;A[e+32>>1]=0;A[e+34>>1]=1;A[e+28>>1]=0;A[e+38>>1]=0;A[e+40>>1]=0;r=Mi(oi()|0)|0;t[e+4>>2]=r;ti(e,r,e+8|0);return e|0}function le(e){e=e|0;mi(t[e+4>>2]|0);mi(t[e+16>>2]|0);mi(e);return}function ue(e,i,r,o){e=e|0;i=i|0;r=r|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0,v=0;v=h;h=h+16|0;if((h|0)>=(d|0))X(16);s=v;w=e+26|0;A[w>>1]=(o|0)==0?(f[i>>0]|0)>>>3&15:15;n[e+24>>0]=1;c=e+16|0;a=e+30|0;We(i+1|0,t[c>>2]|0,a,w,1,e+38|0);e:do{switch(A[a>>1]|0){case 2:case 7:{A[w>>1]=A[e+28>>1]|0;o=0;l=6;break}default:{o=A[w>>1]|0;A[e+28>>1]=o;if((A[e+34>>1]|0)==1){o=_e(t[c>>2]|0,o)|0;l=6;break e}else{o=e+32|0;u=o;o=A[o>>1]|0;break e}}}}while(0);if((l|0)==6){u=e+32|0;A[u>>1]=o}if(o<<16>>16!=0?(A[e+34>>1]|0)!=0:0){o=0;do{A[r+(o<<1)>>1]=8;o=o+1|0}while((o|0)!=320);o=0}else{A[e+36>>1]=ai(A[w>>1]|0,t[c>>2]|0,r,s,t[e>>2]|0,A[a>>1]|0,t[e+8>>2]|0)|0;o=0}do{l=r+(o<<1)|0;A[l>>1]=A[l>>1]&-4;o=o+1|0}while((o|0)!=320);i=e+34|0;if(!(A[i>>1]|0)){o=Se(t[c>>2]|0,A[w>>1]|0)|0;A[u>>1]=o}else o=A[u>>1]|0;if(!(o<<16>>16)){e=0;A[i>>1]=e;h=v;return}fi(t[e>>2]|0,1);e=A[u>>1]|0;A[i>>1]=e;h=v;return}function ce(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0,a=0,s=0,l=0;n=A[i>>1]>>2<<16>>16;n=R(n<<1,n)|0;s=r<<16>>16>1;if(s){f=r&65535;t=1;do{o=A[i+(t<<1)>>1]>>2<<16>>16;o=R(o,o)|0;o=(o|0)==1073741824?2147483647:o<<1;a=o+n|0;n=(o^n|0)>-1&(a^n|0)<0?n>>31^2147483647:a;t=t+1|0}while((t|0)!=(f|0))}if(!n)return;a=(((qe(n)|0)&65535)<<16)+-65536>>16;o=n<<a;o=(o|0)==2147483647?32767:(o+32768|0)>>>16&65535;n=A[e>>1]>>2<<16>>16;n=R(n,n)|0;n=(n|0)==1073741824?2147483647:n<<1;if(s){f=r&65535;t=1;do{l=A[e+(t<<1)>>1]>>2<<16>>16;l=R(l,l)|0;l=(l|0)==1073741824?2147483647:l<<1;s=l+n|0;n=(l^n|0)>-1&(s^n|0)<0?n>>31^2147483647:s;t=t+1|0}while((t|0)!=(f|0))}if(!n)f=0;else{l=(qe(n)|0)<<16>>16;n=n<<l;l=a-l|0;n=(ui(o,(n|0)==2147483647?32767:(n+32768|0)>>>16&65535)|0)<<16>>16;t=n<<7;f=l<<16>>16;if((l&65535)<<16>>16>-1)n=t>>(f&31);else{e=0-f&31;l=t<<e;n=(l>>e|0)==(t|0)?l:n>>24^2147483647}f=ci(n)|0;l=f<<9;f=(l>>9|0)==(f|0)?l:f>>31^2147483647;f=(f|0)==2147483647?32767:f+32768>>16}if(r<<16>>16<=0)return;t=r&65535;n=0;do{l=i+(n<<1)|0;r=R(f,A[l>>1]|0)|0;e=r<<3;A[l>>1]=((e>>3|0)==(r|0)?e:r>>31^2147418112)>>>16;n=n+1|0}while((n|0)!=(t|0));return}function we(e){e=e|0;var i=0;i=e+60|0;do{n[e>>0]=0;e=e+1|0}while((e|0)<(i|0));return}function he(e,i,r,t){e=e|0;i=i|0;r=r|0;t=t|0;var f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0;f=t;o=r;a=f+60|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));E=i<<16>>16;g=E>>2;if((g|0)>0){i=0;B=0}else{o=t+(E<<1)|0;f=r;a=f+60|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));return}while(1){v=B<<16>>16<<2;h=A[e>>1]>>2;s=i<<2;A[t+(s+30<<1)>>1]=h;l=e+2|0;a=A[l>>1]>>2;A[t+(s+31<<1)>>1]=a;u=e+4|0;o=A[u>>1]>>2;A[t+(s+32<<1)>>1]=o;c=e+6|0;f=A[c>>1]>>2;A[t+(s+33<<1)>>1]=f;w=s|1;d=A[t+(w<<1)>>1]|0;i=16384-(h<<16>>16<<5)-(A[t+(s<<1)>>1]<<5)|0;f=16384-(f<<16>>16<<5)-(A[t+((s|3)<<1)>>1]<<5)|0;o=16384-(o<<16>>16<<5)-(A[t+((s|2)<<1)>>1]<<5)|0;a=16384-(a<<16>>16<<5)-(d<<16>>16<<5)|0;h=1;do{y=A[240+(h<<1)>>1]|0;T=(R(y,d<<16>>16)|0)+i|0;C=A[t+(w+1<<1)>>1]|0;P=(R(y,C)|0)+a|0;Q=A[240+(h+1<<1)>>1]|0;C=T+(R(Q,C)|0)|0;T=A[t+(w+2<<1)>>1]|0;P=P+(R(Q,T)|0)|0;D=(R(y,T)|0)+o|0;k=A[240+(h+2<<1)>>1]|0;T=C+(R(k,T)|0)|0;C=A[t+(w+3<<1)>>1]|0;P=P+(R(C,k)|0)|0;y=(R(C,y)|0)+f|0;D=D+(R(C,Q)|0)|0;b=A[240+(h+3<<1)>>1]|0;i=T+(R(b,C)|0)|0;C=A[t+(w+4<<1)>>1]|0;a=P+(R(b,C)|0)|0;Q=y+(R(C,Q)|0)|0;C=D+(R(C,k)|0)|0;D=A[t+(w+5<<1)>>1]|0;o=C+(R(D,b)|0)|0;f=Q+(R(D,k)|0)+(R(A[t+(w+6<<1)>>1]|0,b)|0)|0;b=(h<<16)+262144|0;h=b>>16;w=h+s|0;d=A[t+(w<<1)>>1]|0}while((b|0)<1900544);y=((A[t+(v+30<<1)>>1]|0)*47|0)+a|0;P=((A[t+(v+31<<1)>>1]|0)*47|0)+o|0;T=((A[t+(v+32<<1)>>1]|0)*47|0)+f|0;A[e>>1]=(((d<<16>>16)*47|0)+i|0)>>>15;A[l>>1]=y>>>15;A[u>>1]=P>>>15;A[c>>1]=T>>>15;B=B+1<<16>>16;i=B<<16>>16;if((g|0)<=(i|0))break;else e=e+8|0}o=t+(E<<1)|0;f=r;a=f+60|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));return}function de(e,i){e=e|0;i=i|0;var r=0,n=0;r=i;n=r+128|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));n=e<<16>>16;A[i+((n>>>5&62)<<1)>>1]=((n&2048)>>>1^1024)+-512<<16>>16;A[i+((n<<1&62|1)<<1)>>1]=((n&32)<<5&65535^1024)+-512<<16>>16;return}function ve(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0,s=0,l=0,u=0,c=0,w=0;u=h;h=h+16|0;if((h|0)>=(d|0))X(16);l=u;n=r;t=n+128|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(t|0));switch(i<<16>>16|0){case 20:{Be(A[e>>1]|0,4,0,l);a=A[l>>1]|0;s=r+((a<<2&60)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(a<<6&1024^1024);Be(A[e+2>>1]|0,4,0,l);s=A[l>>1]|0;a=r+((s<<2&60|1)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(s<<6&1024^1024);Be(A[e+4>>1]|0,4,0,l);a=A[l>>1]|0;s=r+((a<<2&60|2)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(a<<6&1024^1024);Be(A[e+6>>1]|0,4,0,l);e=A[l>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);h=u;return}case 36:{Ee(A[e>>1]|0,4,0,l);f=A[l>>1]|0;s=r+((f<<2&60)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(f<<6&1024^1024);s=l+2|0;f=A[s>>1]|0;a=r+((f<<2&60)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(f<<6&1024^1024);Ee(A[e+2>>1]|0,4,0,l);a=A[l>>1]|0;f=r+((a<<2&60|1)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(a<<6&1024^1024);f=A[s>>1]|0;a=r+((f<<2&60|1)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(f<<6&1024^1024);Ee(A[e+4>>1]|0,4,0,l);a=A[l>>1]|0;f=r+((a<<2&60|2)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(a<<6&1024^1024);f=A[s>>1]|0;a=r+((f<<2&60|2)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(f<<6&1024^1024);Ee(A[e+6>>1]|0,4,0,l);l=A[l>>1]|0;e=r+((l<<2&60|3)<<1)|0;A[e>>1]=(o[e>>1]|0)+65024+(l<<6&1024^1024);e=A[s>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);h=u;return}case 44:{ge(A[e>>1]|0,4,0,l);t=A[l>>1]|0;s=r+((t<<2&60)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(t<<6&1024^1024);s=l+2|0;t=A[s>>1]|0;f=r+((t<<2&60)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(t<<6&1024^1024);f=l+4|0;t=A[f>>1]|0;a=r+((t<<2&60)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(t<<6&1024^1024);ge(A[e+2>>1]|0,4,0,l);a=A[l>>1]|0;t=r+((a<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(a<<6&1024^1024);t=A[s>>1]|0;a=r+((t<<2&60|1)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(t<<6&1024^1024);f=A[f>>1]|0;a=r+((f<<2&60|1)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(f<<6&1024^1024);Ee(A[e+4>>1]|0,4,0,l);a=A[l>>1]|0;f=r+((a<<2&60|2)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(a<<6&1024^1024);f=A[s>>1]|0;a=r+((f<<2&60|2)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(f<<6&1024^1024);Ee(A[e+6>>1]|0,4,0,l);l=A[l>>1]|0;e=r+((l<<2&60|3)<<1)|0;A[e>>1]=(o[e>>1]|0)+65024+(l<<6&1024^1024);e=A[s>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);h=u;return}case 52:{ge(A[e>>1]|0,4,0,l);t=A[l>>1]|0;a=r+((t<<2&60)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(t<<6&1024^1024);a=l+2|0;t=A[a>>1]|0;s=r+((t<<2&60)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(t<<6&1024^1024);s=l+4|0;t=A[s>>1]|0;f=r+((t<<2&60)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(t<<6&1024^1024);ge(A[e+2>>1]|0,4,0,l);f=A[l>>1]|0;t=r+((f<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(f<<6&1024^1024);t=A[a>>1]|0;f=r+((t<<2&60|1)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(t<<6&1024^1024);f=A[s>>1]|0;t=r+((f<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(f<<6&1024^1024);ge(A[e+4>>1]|0,4,0,l);t=A[l>>1]|0;f=r+((t<<2&60|2)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(t<<6&1024^1024);f=A[a>>1]|0;t=r+((f<<2&60|2)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(f<<6&1024^1024);t=A[s>>1]|0;f=r+((t<<2&60|2)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(t<<6&1024^1024);ge(A[e+6>>1]|0,4,0,l);e=A[l>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);l=A[a>>1]|0;e=r+((l<<2&60|3)<<1)|0;A[e>>1]=(o[e>>1]|0)+65024+(l<<6&1024^1024);e=A[s>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);h=u;return}case 64:{i=l+2|0;n=l+4|0;t=l+6|0;f=0;do{be((A[e+(f<<1)>>1]<<14)+(A[e+(f+4<<1)>>1]|0)|0,4,0,l);s=A[l>>1]|0;a=r+((s<<2&60)+f<<16>>16<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(s<<6&1024^1024);a=A[i>>1]|0;s=r+((a<<2&60)+f<<16>>16<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(a<<6&1024^1024);s=A[n>>1]|0;a=r+((s<<2&60)+f<<16>>16<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(s<<6&1024^1024);a=A[t>>1]|0;s=r+((a<<2&60)+f<<16>>16<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(a<<6&1024^1024);f=f+1|0}while((f|0)!=4);h=u;return}case 72:{ke((A[e>>1]<<10)+(A[e+8>>1]|0)|0,4,0,l);i=A[l>>1]|0;f=r+((i<<2&60)<<1)|0;A[f>>1]=(o[f>>1]|0)+65024+(i<<6&1024^1024);f=l+2|0;i=A[f>>1]|0;a=r+((i<<2&60)<<1)|0;A[a>>1]=(o[a>>1]|0)+65024+(i<<6&1024^1024);a=l+4|0;i=A[a>>1]|0;s=r+((i<<2&60)<<1)|0;A[s>>1]=(o[s>>1]|0)+65024+(i<<6&1024^1024);s=l+6|0;i=A[s>>1]|0;n=r+((i<<2&60)<<1)|0;A[n>>1]=(o[n>>1]|0)+65024+(i<<6&1024^1024);n=l+8|0;i=A[n>>1]|0;t=r+((i<<2&60)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(i<<6&1024^1024);ke((A[e+2>>1]<<10)+(A[e+10>>1]|0)|0,4,0,l);t=A[l>>1]|0;i=r+((t<<2&60|1)<<1)|0;A[i>>1]=(o[i>>1]|0)+65024+(t<<6&1024^1024);i=A[f>>1]|0;t=r+((i<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(i<<6&1024^1024);t=A[a>>1]|0;i=r+((t<<2&60|1)<<1)|0;A[i>>1]=(o[i>>1]|0)+65024+(t<<6&1024^1024);i=A[s>>1]|0;t=r+((i<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(i<<6&1024^1024);n=A[n>>1]|0;t=r+((n<<2&60|1)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(n<<6&1024^1024);be((A[e+4>>1]<<14)+(A[e+12>>1]|0)|0,4,0,l);t=A[l>>1]|0;n=r+((t<<2&60|2)<<1)|0;A[n>>1]=(o[n>>1]|0)+65024+(t<<6&1024^1024);n=A[f>>1]|0;t=r+((n<<2&60|2)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(n<<6&1024^1024);t=A[a>>1]|0;n=r+((t<<2&60|2)<<1)|0;A[n>>1]=(o[n>>1]|0)+65024+(t<<6&1024^1024);n=A[s>>1]|0;t=r+((n<<2&60|2)<<1)|0;A[t>>1]=(o[t>>1]|0)+65024+(n<<6&1024^1024);be((A[e+6>>1]<<14)+(A[e+14>>1]|0)|0,4,0,l);l=A[l>>1]|0;e=r+((l<<2&60|3)<<1)|0;A[e>>1]=(o[e>>1]|0)+65024+(l<<6&1024^1024);e=A[f>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);l=A[a>>1]|0;e=r+((l<<2&60|3)<<1)|0;A[e>>1]=(o[e>>1]|0)+65024+(l<<6&1024^1024);e=A[s>>1]|0;l=r+((e<<2&60|3)<<1)|0;A[l>>1]=(o[l>>1]|0)+65024+(e<<6&1024^1024);h=u;return}case 88:{i=l+2|0;n=l+4|0;t=l+6|0;f=l+8|0;a=l+10|0;s=0;do{De((A[e+(s<<1)>>1]<<11)+(A[e+(s+4<<1)>>1]|0)|0,4,0,l);c=A[l>>1]|0;w=r+((c<<2&60)+s<<16>>16<<1)|0;A[w>>1]=(o[w>>1]|0)+65024+(c<<6&1024^1024);w=A[i>>1]|0;c=r+((w<<2&60)+s<<16>>16<<1)|0;A[c>>1]=(o[c>>1]|0)+65024+(w<<6&1024^1024);c=A[n>>1]|0;w=r+((c<<2&60)+s<<16>>16<<1)|0;A[w>>1]=(o[w>>1]|0)+65024+(c<<6&1024^1024);w=A[t>>1]|0;c=r+((w<<2&60)+s<<16>>16<<1)|0;A[c>>1]=(o[c>>1]|0)+65024+(w<<6&1024^1024);c=A[f>>1]|0;w=r+((c<<2&60)+s<<16>>16<<1)|0;A[w>>1]=(o[w>>1]|0)+65024+(c<<6&1024^1024);w=A[a>>1]|0;c=r+((w<<2&60)+s<<16>>16<<1)|0;A[c>>1]=(o[c>>1]|0)+65024+(w<<6&1024^1024);s=s+1|0}while((s|0)!=4);h=u;return}default:{h=u;return}}}function Be(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;i=1<<(i<<16>>16);r=(i+65535&e)+(r&65535)|0;A[n>>1]=(i&e|0)==0?r:r+16|0;return}function Ee(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0;a=i<<16>>16;if(i<<16>>16<0)t=1>>>(0-a&15);else{o=a&15;t=1<<o;t=(t<<16>>16>>o|0)==1?t:32767}o=(t<<16>>16)+-1|0;f=o>>31;f=((o>>15|0)==(f|0)?o:f^32767)<<16>>16;if(i<<16>>16>-1)t=e>>(a&31);else{o=0-a&31;t=e<<o;t=(t>>o|0)==(e|0)?t:e>>31^2147483647}o=t&f;i=r<<16>>16;t=o+i|0;t=(o^i|0)>-1&(t^o|0)<0?o>>31^2147483647:t;o=t&65535;i=((f&e)<<16>>16)+i|0;r=i>>31;r=(i>>15|0)==(r|0)?i:r^32767;i=r&65535;r=r<<16>>16;f=t<<16>>16;t=(1<<(((a<<17>>17|0)==(a|0)?a<<1:a>>>15^32767)<<16>>16)&e|0)!=0;if((f|0)<=(r|0)){if(!t){e=o;a=i;A[n>>1]=e;n=n+2|0;A[n>>1]=a;return}e=f+16&65535;a=r+16&65535;A[n>>1]=e;n=n+2|0;A[n>>1]=a;return}if(t){e=f+16&65535;a=i;A[n>>1]=e;n=n+2|0;A[n>>1]=a;return}else{e=o;a=r+16&65535;A[n>>1]=e;n=n+2|0;A[n>>1]=a;return}}function ge(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0;i=i<<16>>16;f=i<<17;t=r&65535;Ee((1<<(i<<1)+-1)+-1&e,i+65535&65535,(1<<(f+-65536>>16)&e|0)==0?r:(1<<i+-1)+t&65535,n);e=e>>(f>>16)&(1<<i+1)+-1;i=1<<i;r=(e&i+65535)+t|0;A[n+4>>1]=(e&i|0)==0?r:r+16|0;return}function be(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0;a=i<<16>>16;u=a+65535|0;c=u&65535;w=r&65535;t=u<<16;h=t>>16;i=1<<h;s=i+w|0;l=s&65535;switch(e>>((a<<18)+-131072>>16)&3){case 0:{i=t>>15;t=u<<17;o=1<<(t+-65536>>16);f=o+-1&e;o=(o&e|0)==0;a=1<<h+-1;if(!(1<<(u<<18>>16|1)&e)){Ee(f,h+65535&65535,o?r:a+w&65535,n);Ee((1<<(t>>16|1))+-1&e>>i,c,r,n+4|0);return}else{Ee(f,h+65535&65535,o?l:a+s&65535,n);Ee((1<<(t>>16|1))+-1&e>>i,c,l,n+4|0);return}}case 1:{c=e>>((h*196608|0)+65536>>16);r=i+65535|0;w=(c&r)+w|0;A[n>>1]=(c&i|0)==0?w:w+16|0;w=u<<17;Ee((1<<(t>>15)+-1)+-1&e,h+65535&65535,(1<<(w+-65536>>16)&e|0)==0?l:(1<<h+-1)+s&65535,n+2|0);e=(1<<h+1)+-1&e>>(w>>16);r=(e&r)+(s&65535)|0;A[n+6>>1]=(e&i|0)==0?r:r+16|0;return}case 2:{Ee(e>>(u<<17>>16|1),c,r,n);Ee(e,c,l,n+4|0);return}case 3:{l=e>>(t+65536>>16);c=u<<17;Ee((1<<(t>>15)+-1)+-1&l,h+65535&65535,(1<<(c+-65536>>16)&l|0)==0?r:(1<<h+-1)+w&65535,n);c=l>>(c>>16)&(1<<h+1)+-1;r=i+65535|0;h=(c&r)+w|0;A[n+4>>1]=(c&i|0)==0?h:h+16|0;r=(r&e)+(s&65535)|0;A[n+6>>1]=(i&e|0)==0?r:r+16|0;return}default:}}function ke(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0;u=i<<16>>16;o=u+65535|0;f=o<<16;c=f>>16;if((o&65535)<<16>>16<0)t=1>>>(0-c&15);else{l=c&15;t=1<<l;t=(t<<16>>16>>l|0)==1?t:32767}l=(t<<16>>16)+(r<<16>>16)|0;s=l>>31;s=(l>>15|0)==(s|0)?l:s^32767;l=e>>(u<<17>>16|1);a=(1<<(f>>15)+-1)+-1&l;t=o<<17;f=(1<<(t+-65536>>16)&l|0)==0;o=1<<c+-1;if(!(1<<((u*327680|0)+-65536>>16)&e)){s=r&65535;Ee(a,c+65535&65535,f?r:o+s&65535,n);l=(1<<c+1)+-1&l>>(t>>16);u=1<<c;c=(l&u+65535)+s|0;A[n+4>>1]=(l&u|0)==0?c:c+16|0;Ee(e,i,r,n+6|0);return}else{Ee(a,c+65535&65535,s+(f?0:o)&65535,n);l=(1<<c+1)+-1&l>>(t>>16);u=1<<c;c=(s&65535)+(l&u+65535)|0;A[n+4>>1]=(l&u|0)==0?c:c+16|0;Ee(e,i,r,n+6|0);return}}function De(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0;a=i<<16>>16;s=a+65535|0;l=s&65535;u=r&65535;h=s<<16;c=h>>16;w=1<<c;f=w+u|0;o=f&65535;d=a*6|0;t=(1<<d+-5&e|0)==0;i=t?r:o;t=t?o:r;switch(e>>d+-4&3){case 0:{ke(e>>a,l,i,n);d=(w+65535&e)+(i&65535)|0;A[n+10>>1]=(w&e|0)==0?d:d+16|0;return}case 1:{ke(e>>a,l,i,n);d=(w+65535&e)+(t&65535)|0;A[n+10>>1]=(w&e|0)==0?d:d+16|0;return}case 2:{be(e>>(h>>15|1),l,i,n);Ee(e,l,t,n+8|0);return}case 3:{i=e>>(c*3|0)+1;t=(1<<(h>>15)+-1)+-1|0;d=s<<17;s=1<<(d+-65536>>16);l=1<<c+-1;a=c+65535&65535;Ee(t&i,a,(i&s|0)==0?r:l+u&65535,n);h=(1<<c+1)+-1|0;r=d>>16;i=i>>r&h;d=w+65535|0;c=(i&d)+u|0;A[n+4>>1]=(i&w|0)==0?c:c+16|0;Ee(t&e,a,(s&e|0)==0?o:l+f&65535,n+6|0);r=h&e>>r;d=(r&d)+(f&65535)|0;A[n+10>>1]=(r&w|0)==0?d:d+16|0;return}default:}}function Qe(e){e=e|0;var i=0,r=0;A[e>>1]=-14336;A[e+2>>1]=-14336;A[e+4>>1]=-14336;A[e+6>>1]=-14336;i=e+8|0;r=i+36|0;do{n[i>>0]=0;i=i+1|0}while((i|0)<(r|0));A[e+44>>1]=21845;return}function Ce(e,i,r,n,f,a,s,l,u,c,w,v){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;u=u|0;c=c|0;w=w|0;v=v|0;var B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;M=h;h=h+16|0;if((h|0)>=(d|0))X(16);b=M+8|0;k=M+6|0;E=M+4|0;C=M;y=v+8|0;P=v+10|0;D=v+12|0;T=v+14|0;p=v+24|0;Q=v+34|0;t[C>>2]=di(r,r,n,b)|0;A[b>>1]=(o[b>>1]|0)+65512;wi(C,b);r=t[C>>2]|0;g=(o[b>>1]|0)+65533|0;n=g<<16>>16;if((g&65535)<<16>>16>0){g=r<<n;g=(g>>n|0)==(r|0)?g:r>>31^2147483647}else g=r>>(0-n&15);if(s<<16>>16){Q=Ke(v+18|0)|0;Q=Q<<16>>16<15565?Q:15565;A[y>>1]=Q;n=c<<16>>16!=0;r=u<<16>>16;Q=R(Q<<16>>16,A[(n?300:328)+(r<<1)>>1]|0)|0;B=Q>>31;A[f>>1]=(Q>>30|0)==(B|0)?Q>>>15:B^32767;B=Ke(v+28|0)|0;if(w<<16>>16<=2){f=R(A[(n?314:342)+(r<<1)>>1]|0,B<<16>>16)|0;B=f>>31;B=((f>>30|0)==(B|0)?f>>>15:B^32767)&65535}A[P>>1]=B;D=v+4|0;f=v+2|0;k=A[f>>1]|0;Q=A[v>>1]|0;P=(A[D>>1]|0)+(A[v+6>>1]|0)+(k<<16>>16)+(Q<<16>>16)|0;t[C>>2]=P;A[D>>1]=k;A[f>>1]=Q;P=(P>>>3)+62464|0;A[v>>1]=(P<<16|0)<-939524096?-14336:P&65535;P=v+26|0;A[p>>1]=A[P>>1]|0;C=v+16|0;A[T>>1]=A[C>>1]|0;p=v+28|0;A[P>>1]=A[p>>1]|0;P=v+18|0;A[C>>1]=A[P>>1]|0;T=v+30|0;A[p>>1]=A[T>>1]|0;p=v+20|0;A[P>>1]=A[p>>1]|0;A[T>>1]=A[v+32>>1]|0;A[p>>1]=A[v+22>>1]|0;A[v+32>>1]=B;A[v+22>>1]=A[y>>1]|0;p=R(g>>16,B<<16>>16)|0;t[a>>2]=(p|0)==1073741824?2147483647:p<<1;h=M;return}u=(A[v>>1]<<13)+503316480|0;c=v+2|0;s=A[c>>1]|0;s=(s*3277|0)==1073741824?2147483647:s*6554|0;w=s+u|0;w=(s^u|0)>-1&(w^u|0)<0?u>>31^2147483647:w;u=v+4|0;s=A[u>>1]|0;s=(s*2458|0)==1073741824?2147483647:s*4916|0;n=w+s|0;n=(w^s|0)>-1&(n^w|0)<0?w>>31^2147483647:n;w=v+6|0;s=A[w>>1]|0;s=(s*1638|0)==1073741824?2147483647:s*3276|0;r=n+s|0;r=(((n^s|0)>-1&(r^n|0)<0?n>>31^2147418112:r)>>16)*5443>>7;t[C>>2]=r;Bi(r,E,k);r=hi(14,A[k>>1]|0)|0;n=A[E>>1]|0;A[E>>1]=(n&65535)+65522;s=e<<16>>16<<1;s=i<<16>>16==6?7940+(s<<1)|0:8196+(s<<1)|0;A[f>>1]=A[s>>1]|0;s=A[s+2>>1]|0;r=R(r<<16>>16,s)|0;r=(r|0)==1073741824?2147483647:r<<1;t[C>>2]=r;E=(n+-14&65535)+4|0;n=E<<16>>16;if((E&65535)<<16>>16>0){E=r<<n;r=(E>>n|0)==(r|0)?E:r>>31^2147483647}else r=r>>(0-n&15);t[C>>2]=r;t[a>>2]=r;if(l<<16>>16==1?(B=A[D>>1]|0,B=(B*5120|0)==1073741824?2147483647:B*10240|0,t[C>>2]=B,(r|0)>6553600&(r|0)>(B|0)):0)t[a>>2]=B;else B=r;l=B<<3;l=(l>>3|0)==(B|0)?l:B>>31^2147483647;l=(l|0)==2147483647?32767:(l+32768|0)>>>16&65535;A[P>>1]=l;P=A[f>>1]|0;A[y>>1]=P;A[D>>1]=l;y=A[v+36>>1]|0;f=A[v+16>>1]|0;D=A[v+26>>1]|0;A[p>>1]=D;A[T>>1]=f;A[Q>>1]=y;A[v+26>>1]=D;A[v+16>>1]=f;A[v+36>>1]=y;A[v+32>>1]=l;A[v+22>>1]=P;A[v+42>>1]=P;Bi(B,b,k);T=g>>16;T=((R(T,A[k>>1]|0)|0)>>15)+(R(T,A[b>>1]|0)|0)|0;p=T<<1;T=T<<4;t[a>>2]=(T>>3|0)==(p|0)?T:p>>31^2147483647;A[w>>1]=A[u>>1]|0;A[u>>1]=A[c>>1]|0;A[c>>1]=A[v>>1]|0;t[C>>2]=s;vi(s,b,k);a=(o[b>>1]|0)+65525|0;A[b>>1]=a;a=((A[k>>1]|0)*24660>>15)+((a<<16>>16)*24660|0)|0;t[C>>2]=a<<1;A[v>>1]=a>>>2;h=M;return}function ye(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var a=0,s=0,l=0,u=0;s=(A[i>>1]<<4)+(o[e>>1]<<16)|0;a=s<<3;u=n<<16>>16;s=((a>>3|0)==(s|0)?a:s>>31^2147483647)+(R(A[f>>1]|0,u)|0)|0;n=s<<1;s=(n>>1|0)==(s|0)?n:s>>31^2147483647;A[r>>1]=(s|0)==2147483647?32767:(s+32768|0)>>>16&65535;s=(t<<16>>16)+-1|0;n=e+2|0;t=i+2|0;a=1;while(1){l=a<<16>>16;t=(A[t>>1]<<4)+(o[n>>1]<<16)|0;n=t<<3;t=((n>>3|0)==(t|0)?n:t>>31^2147483647)+(R(A[r+(l+-1<<1)>>1]|0,u)|0)|0;n=t<<1;t=(n>>1|0)==(t|0)?n:t>>31^2147483647;A[r+(l<<1)>>1]=(t|0)==2147483647?32767:(t+32768|0)>>>16&65535;if((s|0)<=(l|0))break;t=l+1|0;n=e+(t<<1)|0;t=i+(t<<1)|0;a=a+1<<16>>16}A[f>>1]=A[r+(s<<1)>>1]|0;return}function Pe(e,i){e=e|0;i=i|0;var r=0,t=0,f=0;if(!e){f=-1;return f|0}A[e>>1]=0;A[e+2>>1]=8192;A[e+4>>1]=3500;A[e+6>>1]=3500;A[e+74>>1]=21845;A[e+348>>1]=0;r=e+10|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));r=e+42|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));r=e+76|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+332>>1]=3500;r=e+108|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+334>>1]=3500;r=e+140|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+336>>1]=3500;r=e+172|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+338>>1]=3500;r=e+204|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+340>>1]=3500;r=e+236|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+342>>1]=3500;r=e+268|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+344>>1]=3500;r=e+300|0;t=i;f=r+32|0;do{n[r>>0]=n[t>>0]|0;r=r+1|0;t=t+1|0}while((r|0)<(f|0));A[e+346>>1]=3500;A[e+350>>1]=7;A[e+352>>1]=32767;f=e+354|0;A[f>>1]=0;A[f+2>>1]=0;A[f+4>>1]=0;A[f+6>>1]=0;A[f+8>>1]=0;A[e+364>>1]=21845;A[e+366>>1]=0;f=0;return f|0}function Te(e,i,r,f,a){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0;ee=h;h=h+96|0;if((h|0)>=(d|0))X(96);K=ee+74|0;J=ee+8|0;W=ee+4|0;V=ee;q=ee+72|0;$=e+358|0;Z=e+354|0;if(A[$>>1]|0)if(!(A[Z>>1]|0))b=7;else{s=e+348|0;c=A[s>>1]|0;l=c+1|0;l=(l&65535|0)==8?0:l<<16>>16;v=e+76+(l<<4<<1)|0;c=e+76+(c<<4<<1)|0;B=v+32|0;do{n[v>>0]=n[c>>0]|0;v=v+1|0;c=c+1|0}while((v|0)<(B|0));A[e+332+(l<<1)>>1]=A[e+332+(A[s>>1]<<1)>>1]|0;j=e+4|0;A[j>>1]=0;v=J;B=v+64|0;do{t[v>>2]=0;v=v+4|0}while((v|0)<(B|0));Q=J+4|0;C=J+8|0;y=J+12|0;P=J+16|0;T=J+20|0;p=J+24|0;M=J+28|0;m=J+32|0;I=J+36|0;F=J+40|0;O=J+44|0;H=J+48|0;U=J+52|0;N=J+56|0;S=J+60|0;s=t[F>>2]|0;l=t[O>>2]|0;u=t[H>>2]|0;c=t[U>>2]|0;w=t[N>>2]|0;v=t[S>>2]|0;B=t[p>>2]|0;E=t[M>>2]|0;g=t[m>>2]|0;b=t[I>>2]|0;k=0;D=0;_=0;L=0;G=0;x=0;Y=0;z=0;do{ne=(A[e+332+(z<<1)>>1]|0)+(_<<16>>16)|0;re=ne>>31;A[j>>1]=(ne>>15|0)==(re|0)?ne:re^32767;re=z<<4;ne=A[e+76+(re<<1)>>1]|0;ie=L+ne|0;L=(L^ne|0)>-1&(ie^L|0)<0?L>>31^2147483647:ie;ie=A[e+76+((re|1)<<1)>>1]|0;ne=G+ie|0;G=(G^ie|0)>-1&(ne^G|0)<0?G>>31^2147483647:ne;ne=A[e+76+((re|2)<<1)>>1]|0;ie=x+ne|0;x=(x^ne|0)>-1&(ie^x|0)<0?x>>31^2147483647:ie;ie=A[e+76+((re|3)<<1)>>1]|0;ne=Y+ie|0;Y=(Y^ie|0)>-1&(ne^Y|0)<0?Y>>31^2147483647:ne;ne=A[e+76+((re|4)<<1)>>1]|0;ie=k+ne|0;k=(k^ne|0)>-1&(ie^k|0)<0?k>>31^2147483647:ie;ie=A[e+76+((re|5)<<1)>>1]|0;ne=D+ie|0;D=(D^ie|0)>-1&(ne^D|0)<0?D>>31^2147483647:ne;ne=A[e+76+((re|6)<<1)>>1]|0;ie=B+ne|0;B=(B^ne|0)>-1&(ie^B|0)<0?B>>31^2147483647:ie;ie=A[e+76+((re|7)<<1)>>1]|0;ne=E+ie|0;E=(E^ie|0)>-1&(ne^E|0)<0?E>>31^2147483647:ne;ne=A[e+76+((re|8)<<1)>>1]|0;ie=g+ne|0;g=(g^ne|0)>-1&(ie^g|0)<0?g>>31^2147483647:ie;ie=A[e+76+((re|9)<<1)>>1]|0;ne=b+ie|0;b=(b^ie|0)>-1&(ne^b|0)<0?b>>31^2147483647:ne;ne=A[e+76+((re|10)<<1)>>1]|0;ie=s+ne|0;s=(s^ne|0)>-1&(ie^s|0)<0?s>>31^2147483647:ie;ie=A[e+76+((re|11)<<1)>>1]|0;ne=l+ie|0;l=(l^ie|0)>-1&(ne^l|0)<0?l>>31^2147483647:ne;ne=A[e+76+((re|12)<<1)>>1]|0;ie=u+ne|0;u=(u^ne|0)>-1&(ie^u|0)<0?u>>31^2147483647:ie;ie=A[e+76+((re|13)<<1)>>1]|0;ne=c+ie|0;c=(c^ie|0)>-1&(ne^c|0)<0?c>>31^2147483647:ne;ne=A[e+76+((re|14)<<1)>>1]|0;ie=w+ne|0;w=(w^ne|0)>-1&(ie^w|0)<0?w>>31^2147483647:ie;re=A[e+76+((re|15)<<1)>>1]|0;ie=v+re|0;v=(v^re|0)>-1&(ie^v|0)<0?v>>31^2147483647:ie;z=z+1|0;_=A[j>>1]|0}while((z|0)!=8);t[J>>2]=L;t[Q>>2]=G;t[C>>2]=x;t[y>>2]=Y;t[P>>2]=k;t[T>>2]=D;t[p>>2]=B;t[M>>2]=E;t[m>>2]=g;t[I>>2]=b;t[F>>2]=s;t[O>>2]=l;t[H>>2]=u;t[U>>2]=c;t[N>>2]=w;t[S>>2]=v;b=_<<16>>16>>1;A[j>>1]=b<<16>>16<-1024?0:b+1024<<16>>16;A[e+10>>1]=(t[J>>2]|0)>>>3;A[e+12>>1]=(t[Q>>2]|0)>>>3;A[e+14>>1]=(t[C>>2]|0)>>>3;A[e+16>>1]=(t[y>>2]|0)>>>3;A[e+18>>1]=(t[P>>2]|0)>>>3;A[e+20>>1]=(t[T>>2]|0)>>>3;A[e+22>>1]=(t[p>>2]|0)>>>3;A[e+24>>1]=(t[M>>2]|0)>>>3;A[e+26>>1]=(t[m>>2]|0)>>>3;A[e+28>>1]=(t[I>>2]|0)>>>3;A[e+30>>1]=s>>>3;A[e+32>>1]=l>>>3;A[e+34>>1]=u>>>3;A[e+36>>1]=c>>>3;A[e+38>>1]=w>>>3;A[e+40>>1]=v>>>3;b=6}else b=6;if((b|0)==6)if(A[Z>>1]|0){u=e+42|0;l=e+10|0;v=u;c=l;B=v+32|0;do{n[v>>0]=n[c>>0]|0;v=v+1|0;c=c+1|0}while((v|0)<(B|0));g=e+4|0;s=A[g>>1]|0;E=e+6|0;A[E>>1]=s;w=e+356|0;do{if(A[w>>1]|0){s=A[e>>1]|0;s=s<<16>>16<32?s:32;if(s<<16>>16>1){s=s<<16>>16;s=ui(1024,((s<<26>>26|0)==(s|0)?s<<10:s>>>15^32767)&65535)|0}else s=16384;A[e+2>>1]=s;A[K>>1]=Ie(6,a)|0;A[K+2>>1]=Ie(6,a)|0;A[K+4>>1]=Ie(6,a)|0;A[K+6>>1]=Ie(5,a)|0;A[K+8>>1]=Ie(5,a)|0;gi(K,l);ne=Ie(6,a)|0;A[e+366>>1]=Fe(a)|0;ne=ne<<16>>16;ne=(((ne<<25>>25|0)==(ne|0)?ne<<9:ne>>>15^32767)<<16>>16)*12483|0;s=ne>>31;s=((ne>>30|0)==(s|0)?ne>>>15:s^32767)&65535;A[g>>1]=s;if(A[e+362>>1]|0?A[e+360>>1]|0:0)break;v=u;c=l;B=v+32|0;do{n[v>>0]=n[c>>0]|0;v=v+1|0;c=c+1|0}while((v|0)<(B|0));A[E>>1]=s}}while(0);if((A[Z>>1]|0)!=0?(A[w>>1]|0)!=0:0)A[e>>1]=0}else b=7;if((b|0)==7){s=e+4|0;l=e+10|0;E=e+6|0;g=s;s=A[s>>1]|0}u=A[e>>1]|0;w=e+2|0;u=R(((u<<26>>26|0)==(u|0)?u<<10:u>>>15^32767)<<16>>16,A[w>>1]|0)|0;ne=u>>31;ne=(u>>30|0)==(ne|0)?u>>>15:ne^32767;ne=(ne&65535)<<16>>16<1024?ne<<16>>16:1024;ne=(ne<<20>>20|0)==(ne|0)?ne<<4:ne>>>15^32767;u=ne<<16>>16;s=R(u,s<<16>>16)|0;t[W>>2]=(s|0)==1073741824?2147483647:s<<1;s=R(u,A[l>>1]|0)|0;l=s>>31;A[f>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+12>>1]|0)|0;s=l>>31;A[f+2>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+14>>1]|0)|0;l=s>>31;A[f+4>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+16>>1]|0)|0;s=l>>31;A[f+6>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+18>>1]|0)|0;l=s>>31;A[f+8>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+20>>1]|0)|0;s=l>>31;A[f+10>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+22>>1]|0)|0;l=s>>31;A[f+12>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+24>>1]|0)|0;s=l>>31;A[f+14>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+26>>1]|0)|0;l=s>>31;A[f+16>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+28>>1]|0)|0;s=l>>31;A[f+18>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+30>>1]|0)|0;l=s>>31;A[f+20>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+32>>1]|0)|0;s=l>>31;A[f+22>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+34>>1]|0)|0;l=s>>31;A[f+24>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+36>>1]|0)|0;s=l>>31;A[f+26>>1]=(l>>30|0)==(s|0)?l>>>15:s^32767;s=R(u,A[e+38>>1]|0)|0;l=s>>31;A[f+28>>1]=(s>>30|0)==(l|0)?s>>>15:l^32767;l=R(u,A[e+40>>1]|0)|0;u=l>>31;A[f+30>>1]=(l>>30|0)==(u|0)?l>>>15:u^32767;u=t[W>>2]|0;l=16384-ne<<16>>16;ne=R(l,A[E>>1]|0)|0;ne=(ne|0)==1073741824?2147483647:ne<<1;s=ne+u|0;s=(ne^u|0)>-1&(s^u|0)<0?u>>31^2147483647:s;t[W>>2]=s;u=0;do{ne=f+(u<<1)|0;ie=R(l,A[e+42+(u<<1)>>1]|0)|0;re=ie>>31;re=(((ie>>30|0)==(re|0)?ie>>>15:re^32767)<<16>>16)+(A[ne>>1]|0)|0;ie=re>>31;ie=(re>>15|0)==(ie|0)?re:ie^32767;re=ie<<16;A[ne>>1]=(ie<<17>>17|0)==(re>>16|0)?ie<<1:re>>31^32767;u=u+1|0}while((u|0)!=16);if(A[e+366>>1]|0){pe(f,W,e+364|0);s=t[W>>2]|0}u=s>>9;t[W>>2]=u;ne=s>>25;c=ne<<16;l=u-c|0;s=hi(ne+15&65535,(((l^u)&(c^u)|0)<0?s>>31^131070:l)>>>1&65535)|0;l=(qe(s)|0)<<16>>16;u=e+74|0;c=0;do{A[i+(c<<1)>>1]=(Ve(u)|0)<<16>>16>>4;c=c+1|0}while((c|0)!=256);t[V>>2]=di(i,i,256,q)|0;wi(V,q);re=R(t[V>>2]>>16,s<<l>>16)|0;c=re>>31;u=19-l+(o[q>>1]|0)|0;ne=u&65535;A[q>>1]=ne;c=((re>>30|0)==(c|0)?re>>>15:c^32767)<<16>>16;u=u<<16>>16;l=0-u&15;u=u&15;if(ne<<16>>16<0){s=0;do{ne=i+(s<<1)|0;ie=R(c,A[ne>>1]|0)|0;re=ie>>31;A[ne>>1]=((ie>>30|0)==(re|0)?ie>>>15:re^32767)<<16>>16>>l;s=s+1|0}while((s|0)!=256)}else{s=0;do{ne=i+(s<<1)|0;q=R(c,A[ne>>1]|0)|0;re=q>>31;re=((q>>30|0)==(re|0)?q>>>15:re^32767)<<16;q=re>>16;ie=q<<u;A[ne>>1]=(ie<<16>>16>>u|0)==(q|0)?ie:re>>31^32767;s=s+1|0}while((s|0)!=256)}if(r<<16>>16==2){ne=A[e>>1]|0;ne=(ne<<16>>16<32?ne:32)<<16>>16;A[w>>1]=ui(1024,((ne<<26>>26|0)==(ne|0)?ne<<10:ne>>>15^32767)&65535)|0;A[e>>1]=0;ne=A[g>>1]|0;A[E>>1]=ne;A[g>>1]=(ne&65535)+65472}if(!(A[Z>>1]|0)){h=ee;return 0}if((A[e+356>>1]|0)==0?(A[$>>1]|0)==0:0){h=ee;return 0}A[e>>1]=0;A[e+362>>1]=1;h=ee;return 0}function pe(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0,a=0,s=0,l=0;o=(Ve(r)|0)<<16>>16>>1;o=((Ve(r)|0)<<16>>16>>1)+o<<16>>16;f=t[i>>2]|0;o=o<<16>>16;o=(o*75|0)==1073741824?2147483647:o*150|0;n=o+f|0;n=(o^f|0)>-1&(n^f|0)<0?f>>31^2147483647:n;t[i>>2]=(n|0)>0?n:0;i=(Ve(r)|0)<<16>>16>>1;i=((Ve(r)|0)<<16>>16>>1)+i<<16>>16;n=A[e>>1]|0;n=((si(i,256)|0)<<16>>16)+(n<<16>>16)|0;i=n>>31;i=((n>>15|0)==(i|0)?n:i^32767)&65535;A[e>>1]=i<<16>>16>128?i:128;i=256;n=1;do{o=(i<<16>>16)+2|0;f=o>>31;i=(o>>15|0)==(f|0)?o:f^32767;f=(Ve(r)|0)<<16>>16>>1;f=((Ve(r)|0)<<16>>16>>1)+f<<16>>16;o=e+(n<<1)|0;a=A[o>>1]|0;a=((si(f,i&65535)|0)<<16>>16)+(a<<16>>16)|0;f=a>>31;f=(a>>15|0)==(f|0)?a:f^32767;a=A[e+(n+-1<<1)>>1]|0;l=(f<<16>>16)-(a<<16>>16)|0;s=l>>31;A[o>>1]=(((l>>15|0)==(s|0)?l:s^32767)&65535)<<16>>16<448?(a&65535)+448|0:f;n=n+1|0}while((n|0)!=15);i=e+28|0;if((A[i>>1]|0)<=16384)return;A[i>>1]=16384;return}function Me(e,i,r){e=e|0;i=i|0;r=r|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0;l=h;h=h+16|0;if((h|0)>=(d|0))X(16);o=l+2|0;a=l;s=e+348|0;f=(A[s>>1]|0)+1<<16>>16;f=f<<16>>16==8?0:f;A[s>>1]=f;f=e+76+(f<<16>>16<<4<<1)|0;t=f+32|0;do{n[f>>0]=n[i>>0]|0;f=f+1|0;i=i+1|0}while((f|0)<(t|0));i=0;t=0;do{u=A[r+(t<<1)>>1]|0;u=R(u,u)|0;u=(u|0)==1073741824?2147483647:u<<1;f=u+i|0;i=(u^i|0)>-1&(f^i|0)<0?i>>31^2147483647:f;t=t+1|0}while((t|0)!=256);vi(i>>1,o,a);u=A[o>>1]|0;A[e+332+(A[s>>1]<<1)>>1]=((A[a>>1]|0)>>>8)+64512+((u<<23>>23|0)==(u|0)?u<<7:u>>>15^32767);h=l;return}function me(e,i){e=e|0;i=i|0;var r=0,n=0,t=0,f=0,o=0,a=0;a=i+-4<<16>>16;r=A[e+360>>1]|0;e:do{if((a&65535)<3)t=4;else{if((r+-1&65535)<2)switch(i<<16>>16){case 2:case 3:case 7:{t=4;break e}default:}r=0;n=e;t=10}}while(0);if((t|0)==4){e:do{if(r<<16>>16==2){switch(i<<16>>16){case 2:case 4:case 6:case 7:break;default:{r=1;break e}}r=2}else r=1}while(0);f=(A[e>>1]|0)+1|0;o=f>>31;o=((f>>15|0)==(o|0)?f:o^32767)&65535;A[e>>1]=o;r=o<<16>>16>50?2:r;if(i<<16>>16==5&(A[e+362>>1]|0)==0){n=e+352|0;t=10}}if((t|0)==10)A[n>>1]=0;f=e+352|0;o=(A[f>>1]|0)+1|0;n=o>>31;n=((o>>15|0)==(n|0)?o:n^32767)&65535;A[f>>1]=n;o=e+358|0;A[o>>1]=0;do{if((a&65535)<4){if(n<<16>>16>30){A[o>>1]=1;A[f>>1]=0;A[e+350>>1]=0;break}n=e+350|0;t=A[n>>1]|0;if(!(t<<16>>16)){A[f>>1]=0;break}else{A[n>>1]=t+-1<<16>>16;break}}else A[e+350>>1]=7}while(0);if(!(r<<16>>16))return r|0;t=e+354|0;A[t>>1]=0;n=e+356|0;A[n>>1]=0;switch(i<<16>>16){case 4:{A[t>>1]=1;return r|0}case 5:{A[t>>1]=1;A[n>>1]=1;return r|0}case 6:{A[t>>1]=1;A[o>>1]=0;return r|0}default:return r|0}}function Ie(e,i){e=e|0;i=i|0;var r=0,n=0,f=0,o=0,a=0,s=0;r=e<<16>>16>>1;if(!(r<<16>>16))r=0;else{o=t[i>>2]|0;a=((r+-1&65535)<<1)+2|0;f=0;n=o;while(1){s=f<<16>>14;f=((A[n>>1]|0)==127?s|2:s)|(A[n+2>>1]|0)==127;r=r+-1<<16>>16;if(!(r<<16>>16))break;else n=n+4|0}t[i>>2]=o+(a<<1);r=f&65535}if(!(e&1)){s=r;return s|0}r=r<<16>>16<<1;s=t[i>>2]|0;t[i>>2]=s+2;if((A[s>>1]|0)!=127){s=r&65535;return s|0}s=(r|1)&65535;return s|0}function Fe(e){e=e|0;var i=0;i=t[e>>2]|0;t[e>>2]=i+2;return(A[i>>1]|0)==127|0}function Re(e){e=e|0;var i=0;i=e+12|0;do{n[e>>0]=0;e=e+1|0}while((e|0)<(i|0));return}function Oe(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0;t=A[r>>1]|0;h=r+2|0;s=A[h>>1]|0;d=r+4|0;a=A[d>>1]|0;v=r+6|0;n=A[v>>1]|0;c=r+8|0;o=A[c>>1]|0;w=r+10|0;f=A[w>>1]|0;if(i<<16>>16<=0){e=f;u=o;l=n;A[r>>1]=t;A[h>>1]=s;A[d>>1]=a;A[v>>1]=l;A[c>>1]=u;A[w>>1]=e;return}u=i&65535;l=f;i=s;s=0;while(1){B=(R(i<<16>>16,-14160)|0)+8192+((n<<16>>16)*29280|0)|0;t=R(t<<16>>16,-14160)|0;i=e+(s<<1)|0;f=A[i>>1]|0;t=((R(o<<16>>16,-1830)|0)+((a<<16>>16)*29280|0)+t+(((f<<16>>16)+(l<<16>>16)|0)*915|0)<<2)+(B>>13)|0;A[i>>1]=(t+32768|0)>>>16;i=t>>>16&65535;t=t>>>1&32767;s=s+1|0;if((s|0)==(u|0))break;else{E=n;l=o;B=a;o=f;n=t;a=i;i=E;t=B}}A[r>>1]=a;A[h>>1]=n;A[d>>1]=i;A[v>>1]=t;A[c>>1]=f;A[w>>1]=o;return}function He(e){e=e|0;var i=0;i=e+12|0;do{n[e>>0]=0;e=e+1|0}while((e|0)<(i|0));return}function Ue(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0;t=A[r>>1]|0;h=r+2|0;l=A[h>>1]|0;d=r+4|0;a=A[d>>1]|0;v=r+6|0;n=A[v>>1]|0;c=r+8|0;o=A[c>>1]|0;w=r+10|0;f=A[w>>1]|0;if(!(i<<16>>16)){u=f;s=o;e=n;A[r>>1]=t;A[h>>1]=l;A[d>>1]=a;A[v>>1]=e;A[c>>1]=s;A[w>>1]=u;return}else{u=i;s=f;i=l}while(1){l=(R(i<<16>>16,-8021)|0)+8192+((n<<16>>16)*16211|0)|0;t=R(t<<16>>16,-16042)|0;f=A[e>>1]|0;s=(R(o<<16>>16,-16212)|0)+((a<<16>>16)*32422|0)+t+(l>>14)+(((f<<16>>16)+(s<<16>>16)|0)*8106|0)|0;l=s<<2;t=s>>>14;i=t&65535;t=(l-(t<<16)|0)>>>1&65535;A[e>>1]=(s<<3>>1|0)==(l|0)?(l+16384|0)>>>15:l>>31^32767;u=u+-1<<16>>16;if(!(u<<16>>16))break;else{B=n;s=o;l=a;o=f;n=t;a=i;e=e+2|0;i=B;t=l}}A[r>>1]=a;A[h>>1]=n;A[d>>1]=i;A[v>>1]=t;A[c>>1]=f;A[w>>1]=o;return}function Ne(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0,a=0,s=0,l=0,u=0;u=h;h=h+80|0;if((h|0)>=(d|0))X(80);l=u+8|0;a=u;t[a>>2]=e;switch(i|0){case 8:{A[l>>1]=Ie(15,a)|0;A[l+2>>1]=Ie(15,a)|0;A[l+4>>1]=Ie(15,a)|0;A[l+6>>1]=Ie(15,a)|0;A[l+8>>1]=Ie(15,a)|0;A[l+10>>1]=Ie(15,a)|0;A[l+12>>1]=Ie(15,a)|0;A[l+14>>1]=Ie(15,a)|0;A[l+16>>1]=Ie(15,a)|0;A[l+18>>1]=Ie(15,a)|0;A[l+20>>1]=(Ie(15,a)|0)&25087;A[l+22>>1]=Ie(15,a)|0;A[l+24>>1]=Ie(15,a)|0;A[l+26>>1]=Ie(15,a)|0;A[l+28>>1]=Ie(15,a)|0;A[l+30>>1]=Ie(15,a)|0;A[l+32>>1]=Ie(15,a)|0;A[l+34>>1]=(Ie(15,a)|0)&-7937;A[l+36>>1]=Ie(15,a)|0;A[l+38>>1]=Ie(15,a)|0;A[l+40>>1]=Ie(15,a)|0;A[l+42>>1]=Ie(15,a)|0;A[l+44>>1]=Ie(15,a)|0;A[l+46>>1]=Ie(15,a)|0;A[l+48>>1]=(Ie(15,a)|0)&32527;A[l+50>>1]=Ie(15,a)|0;A[l+52>>1]=Ie(15,a)|0;A[l+54>>1]=Ie(15,a)|0;A[l+56>>1]=Ie(15,a)|0;A[l+58>>1]=Ie(15,a)|0;A[l+60>>1]=Ie(15,a)|0;a=(Ie(8,a)|0)<<16>>16;A[l+62>>1]=(a<<23>>23|0)==(a|0)?a<<7:a>>>15^32767;a=0;o=31;s=9;break}case 9:{l=0;h=u;return l|0}default:{f=r<<16>>16;o=(f<<16)+-983040|0;n=o>>16;if((o|0)>0){r=0;e=0;do{A[l+(r<<16>>16<<1)>>1]=Ie(15,a)|0;r=r+1<<16>>16;e=(e<<16)+983040>>16}while((n|0)>(e|0));o=r}else{o=0;e=0}r=f-e|0;e=Ie(r&65535,a)|0;n=l+(o<<16>>16<<1)|0;A[n>>1]=e;r=15-r|0;f=r&65535;r=r<<16>>16;if(f<<16>>16<0)e=e<<16>>16>>(0-r&15);else{r=r&15;e=e<<16>>16;a=e<<r;e=(a<<16>>16>>r|0)==(e|0)?a:e>>15^32767}A[n>>1]=e;if(o<<16>>16>0){a=f;s=9}else{o=f;f=0;n=0}}}e:do{if((s|0)==9){r=t[8+(i<<2)>>2]|0;e=0;n=0;while(1){f=A[r+(n<<1)>>1]^A[l+(n<<1)>>1];e=e+1<<16>>16;if(f<<16>>16){o=a;break e}n=e<<16>>16;if(e<<16>>16>=o<<16>>16){o=a;f=0;break}}}}while(0);e=o<<16>>16;r=32767>>>e;if(o<<16>>16<0)e=r<<16>>16>>(0-e&15);else{o=e&15;e=r<<16;a=e>>16;s=a<<o;e=(s<<16>>16>>o|0)==(a|0)?s:e>>31^32767}l=(A[(t[8+(i<<2)>>2]|0)+(n<<1)>>1]&(e&65535)^A[l+(n<<1)>>1]|f)<<16>>16==0&1;h=u;return l|0}function Se(e,i){e=e|0;i=i|0;i=i<<16>>16;return Ne(e,i,A[7682+(i<<1)>>1]|0)|0}function _e(e,i){e=e|0;i=i|0;i=i<<16>>16;return Ne(e,i,A[746+(i<<1)>>1]|0)|0}function Le(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0;l=h;h=h+32|0;if((h|0)>=(d|0))X(32);s=l;f=A[r>>1]|0;t=32767-f|0;o=t>>31;o=(((t>>15|0)==(o|0)?t:o^32767)<<16>>16)+1|0;t=o>>31;t=((o>>15|0)==(t|0)?o:t^32767)<<16>>16;o=0;do{u=R(t,A[e+(o<<1)>>1]|0)|0;u=(u|0)==1073741824?2147483647:u<<1;c=R(A[i+(o<<1)>>1]|0,f)|0;c=(c|0)==1073741824?2147483647:c<<1;a=c+u|0;a=(c^u|0)>-1&(a^u|0)<0?u>>31^2147483647:a;A[s+(o<<1)>>1]=(a|0)==2147483647?32767:(a+32768|0)>>>16&65535;o=o+1|0}while((o|0)!=16);Xe(s,n,16,0);t=n+34|0;f=A[r+2>>1]|0;o=32767-f|0;a=o>>31;a=(((o>>15|0)==(a|0)?o:a^32767)<<16>>16)+1|0;o=a>>31;o=((a>>15|0)==(o|0)?a:o^32767)<<16>>16;a=0;do{u=R(o,A[e+(a<<1)>>1]|0)|0;u=(u|0)==1073741824?2147483647:u<<1;w=R(A[i+(a<<1)>>1]|0,f)|0;w=(w|0)==1073741824?2147483647:w<<1;c=w+u|0;c=(w^u|0)>-1&(c^u|0)<0?u>>31^2147483647:c;A[s+(a<<1)>>1]=(c|0)==2147483647?32767:(c+32768|0)>>>16&65535;a=a+1|0}while((a|0)!=16);Xe(s,t,16,0);a=n+68|0;t=A[r+4>>1]|0;f=32767-t|0;o=f>>31;o=(((f>>15|0)==(o|0)?f:o^32767)<<16>>16)+1|0;f=o>>31;f=((o>>15|0)==(f|0)?o:f^32767)<<16>>16;o=0;do{c=R(f,A[e+(o<<1)>>1]|0)|0;c=(c|0)==1073741824?2147483647:c<<1;u=R(A[i+(o<<1)>>1]|0,t)|0;u=(u|0)==1073741824?2147483647:u<<1;w=u+c|0;w=(u^c|0)>-1&(w^c|0)<0?c>>31^2147483647:w;A[s+(o<<1)>>1]=(w|0)==2147483647?32767:(w+32768|0)>>>16&65535;o=o+1|0}while((o|0)!=16);Xe(s,a,16,0);Xe(i,n+102|0,16,0);h=l;return}function Ge(e){e=e|0;var i=0,r=0,n=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0;ee=h;h=h+48|0;if((h|0)>=(d|0))X(48);O=ee+16|0;m=ee;I=ee+14|0;F=ee+12|0;J=e+30|0;A[e+38>>1]=A[J>>1]|0;q=e+2|0;a=A[q>>1]|0;ne=a-(A[e>>1]|0)|0;_=ne>>31;A[O>>1]=(ne>>15|0)==(_|0)?ne:_^32767;_=e+4|0;ne=A[_>>1]|0;a=ne-a|0;G=a>>31;L=O+2|0;A[L>>1]=(a>>15|0)==(G|0)?a:G^32767;G=e+6|0;a=A[G>>1]|0;ne=a-ne|0;Y=ne>>31;x=O+4|0;A[x>>1]=(ne>>15|0)==(Y|0)?ne:Y^32767;Y=e+8|0;ne=A[Y>>1]|0;a=ne-a|0;j=a>>31;z=O+6|0;A[z>>1]=(a>>15|0)==(j|0)?a:j^32767;j=e+10|0;a=A[j>>1]|0;ne=a-ne|0;K=ne>>31;y=O+8|0;A[y>>1]=(ne>>15|0)==(K|0)?ne:K^32767;K=e+12|0;ne=A[K>>1]|0;a=ne-a|0;W=a>>31;P=O+10|0;A[P>>1]=(a>>15|0)==(W|0)?a:W^32767;W=e+14|0;a=A[W>>1]|0;ne=a-ne|0;V=ne>>31;T=O+12|0;A[T>>1]=(ne>>15|0)==(V|0)?ne:V^32767;V=e+16|0;ne=A[V>>1]|0;a=ne-a|0;Z=a>>31;p=O+14|0;A[p>>1]=(a>>15|0)==(Z|0)?a:Z^32767;Z=e+18|0;a=A[Z>>1]|0;ne=a-ne|0;$=ne>>31;M=O+16|0;A[M>>1]=(ne>>15|0)==($|0)?ne:$^32767;$=e+20|0;ne=A[$>>1]|0;a=ne-a|0;H=a>>31;i=O+18|0;A[i>>1]=(a>>15|0)==(H|0)?a:H^32767;H=e+22|0;a=A[H>>1]|0;ne=a-ne|0;U=ne>>31;r=O+20|0;A[r>>1]=(ne>>15|0)==(U|0)?ne:U^32767;U=e+24|0;ne=A[U>>1]|0;a=ne-a|0;N=a>>31;n=O+22|0;A[n>>1]=(a>>15|0)==(N|0)?a:N^32767;N=e+26|0;a=A[N>>1]|0;ne=a-ne|0;S=ne>>31;f=O+24|0;A[f>>1]=(ne>>15|0)==(S|0)?ne:S^32767;S=e+28|0;a=(A[S>>1]|0)-a|0;ne=a>>31;o=O+26|0;A[o>>1]=(a>>15|0)==(ne|0)?a:ne^32767;ne=A[x>>1]|0;ne=(ne*2731|0)==1073741824?2147483647:ne*5462|0;a=A[z>>1]|0;a=(a*2731|0)==1073741824?2147483647:a*5462|0;re=a+ne|0;re=(a^ne|0)>-1&(re^ne|0)<0?ne>>31^2147483647:re;ne=A[y>>1]|0;ne=(ne*2731|0)==1073741824?2147483647:ne*5462|0;a=ne+re|0;a=(ne^re|0)>-1&(a^re|0)<0?re>>31^2147483647:a;re=A[P>>1]|0;re=(re*2731|0)==1073741824?2147483647:re*5462|0;ne=re+a|0;ne=(re^a|0)>-1&(ne^a|0)<0?a>>31^2147483647:ne;a=A[T>>1]|0;a=(a*2731|0)==1073741824?2147483647:a*5462|0;re=a+ne|0;re=(a^ne|0)>-1&(re^ne|0)<0?ne>>31^2147483647:re;ne=A[p>>1]|0;ne=(ne*2731|0)==1073741824?2147483647:ne*5462|0;a=ne+re|0;a=(ne^re|0)>-1&(a^re|0)<0?re>>31^2147483647:a;re=A[M>>1]|0;re=(re*2731|0)==1073741824?2147483647:re*5462|0;ne=re+a|0;ne=(re^a|0)>-1&(ne^a|0)<0?a>>31^2147483647:ne;a=A[i>>1]|0;a=(a*2731|0)==1073741824?2147483647:a*5462|0;re=a+ne|0;re=(a^ne|0)>-1&(re^ne|0)<0?ne>>31^2147483647:re;ne=A[r>>1]|0;a=ne<<16>>16;a=(a*2731|0)==1073741824?2147483647:a*5462|0;D=a+re|0;D=(a^re|0)>-1&(D^re|0)<0?re>>31^2147483647:D;re=A[n>>1]|0;a=re<<16>>16;a=(a*2731|0)==1073741824?2147483647:a*5462|0;Q=a+D|0;Q=(a^D|0)>-1&(Q^D|0)<0?D>>31^2147483647:Q;D=A[f>>1]|0;a=D<<16>>16;s=(a*2731|0)==1073741824?2147483647:a*5462|0;C=s+Q|0;C=(s^Q|0)>-1&(C^Q|0)<0?Q>>31^2147483647:C;Q=A[o>>1]|0;s=Q<<16>>16;ie=(s*2731|0)==1073741824?2147483647:s*5462|0;k=ie+C|0;k=(ie^C|0)>-1&(k^C|0)<0?C>>31^2147483647:k;t[m>>2]=0;C=A[O>>1]|0;ie=C<<16>>16>0?C:0;l=A[L>>1]|0;ie=l<<16>>16>ie<<16>>16?l:ie;u=A[x>>1]|0;ie=u<<16>>16>ie<<16>>16?u:ie;c=A[z>>1]|0;ie=c<<16>>16>ie<<16>>16?c:ie;w=A[y>>1]|0;ie=w<<16>>16>ie<<16>>16?w:ie;v=A[P>>1]|0;ie=v<<16>>16>ie<<16>>16?v:ie;B=A[T>>1]|0;ie=B<<16>>16>ie<<16>>16?B:ie;E=A[p>>1]|0;ie=E<<16>>16>ie<<16>>16?E:ie;g=A[M>>1]|0;ie=g<<16>>16>ie<<16>>16?g:ie;b=A[i>>1]|0;ie=b<<16>>16>ie<<16>>16?b:ie;ie=ne<<16>>16>ie<<16>>16?ne:ie;ie=re<<16>>16>ie<<16>>16?re:ie;ie=D<<16>>16>ie<<16>>16?D:ie;k=(k|0)==2147483647?32767:(k+32768|0)>>>16&65535;ie=((qe((Q<<16>>16>ie<<16>>16?Q:ie)<<16>>16)|0)&65535)+65520|0;Q=ie<<16>>16;D=0-Q&15;Q=Q&15;C=C<<16>>16;if((ie&65535)<<16>>16<0){A[O>>1]=C>>D;A[L>>1]=l<<16>>16>>D;A[x>>1]=u<<16>>16>>D;A[z>>1]=c<<16>>16>>D;A[y>>1]=w<<16>>16>>D;A[P>>1]=v<<16>>16>>D;A[T>>1]=B<<16>>16>>D;ne=E<<16>>16>>D&65535;A[p>>1]=ne;A[M>>1]=g<<16>>16>>D;A[i>>1]=b<<16>>16>>D;A[r>>1]=A[r>>1]>>D;A[n>>1]=A[n>>1]>>D;A[f>>1]=a>>D;A[o>>1]=s>>D;i=k<<16>>16>>D;r=ne}else{ne=C<<Q;A[O>>1]=(ne<<16>>16>>Q|0)==(C|0)?ne:C>>>15^32767;ne=l<<16>>16;re=ne<<Q;A[L>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=u<<16>>16;re=ne<<Q;A[x>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=c<<16>>16;re=ne<<Q;A[z>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=w<<16>>16;re=ne<<Q;A[y>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=v<<16>>16;re=ne<<Q;A[P>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=B<<16>>16;re=ne<<Q;A[T>>1]=(re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767;ne=E<<16>>16;re=ne<<Q;ne=((re<<16>>16>>Q|0)==(ne|0)?re:ne>>>15^32767)&65535;A[p>>1]=ne;re=g<<16>>16;ie=re<<Q;A[M>>1]=(ie<<16>>16>>Q|0)==(re|0)?ie:re>>>15^32767;re=b<<16>>16;ie=re<<Q;A[i>>1]=(ie<<16>>16>>Q|0)==(re|0)?ie:re>>>15^32767;i=A[r>>1]|0;re=i<<Q;A[r>>1]=(re<<16>>16>>Q|0)==(i|0)?re:i>>>15^32767;i=A[n>>1]|0;r=i<<Q;A[n>>1]=(r<<16>>16>>Q|0)==(i|0)?r:i>>>15^32767;i=A[f>>1]|0;r=i<<Q;A[f>>1]=(r<<16>>16>>Q|0)==(i|0)?r:i>>>15^32767;i=A[o>>1]|0;r=i<<Q;A[o>>1]=(r<<16>>16>>Q|0)==(i|0)?r:i>>>15^32767;i=k<<16>>16;r=i<<Q;i=(r<<16>>16>>Q|0)==(i|0)?r:i>>15^32767;r=ne}a=i<<16>>16;n=t[m>>2]|0;i=7;while(1){re=(r<<16>>16)-a|0;ne=re>>31;M=(A[O+(i+-2<<1)>>1]|0)-a|0;ie=M>>31;ne=R(((M>>15|0)==(ie|0)?M:ie^32767)<<16>>16,((re>>15|0)==(ne|0)?re:ne^32767)<<16>>16)|0;Bi((ne|0)==1073741824?2147483647:ne<<1,I,F);ne=A[I>>1]|0;re=A[F>>1]|0;re=Ei(ne,re,ne,re)|0;ne=n+re|0;n=(n^re|0)>-1&(ne^n|0)<0?n>>31^2147483647:ne;i=i+1|0;if((i|0)==14)break;r=A[O+(i<<1)>>1]|0}t[m>>2]=n;i=m+4|0;t[i>>2]=0;o=0;r=7;do{re=(A[O+(r<<1)>>1]|0)-a|0;ne=re>>31;M=(A[O+(r+-3<<1)>>1]|0)-a|0;ie=M>>31;ne=R(((M>>15|0)==(ie|0)?M:ie^32767)<<16>>16,((re>>15|0)==(ne|0)?re:ne^32767)<<16>>16)|0;Bi((ne|0)==1073741824?2147483647:ne<<1,I,F);ne=A[I>>1]|0;re=A[F>>1]|0;re=Ei(ne,re,ne,re)|0;ne=o+re|0;o=(o^re|0)>-1&(ne^o|0)<0?o>>31^2147483647:ne;r=r+1|0}while((r|0)!=14);t[i>>2]=o;r=m+8|0;t[r>>2]=0;i=0;f=7;do{re=(A[O+(f<<1)>>1]|0)-a|0;ne=re>>31;M=(A[O+(f+-4<<1)>>1]|0)-a|0;ie=M>>31;ne=R(((M>>15|0)==(ie|0)?M:ie^32767)<<16>>16,((re>>15|0)==(ne|0)?re:ne^32767)<<16>>16)|0;Bi((ne|0)==1073741824?2147483647:ne<<1,I,F);ne=A[I>>1]|0;re=A[F>>1]|0;re=Ei(ne,re,ne,re)|0;ne=i+re|0;i=(i^re|0)>-1&(ne^i|0)<0?i>>31^2147483647:ne;f=f+1|0}while((f|0)!=14);t[r>>2]=i;a=(n|0)<=(o|0);a=(i|0)>(t[m+((a&1)<<2)>>2]|0)?3:a?2:1;i=-2-a|0;s=(A[e+(14-a<<1)>>1]|0)-(A[e+(i+15<<1)>>1]|0)|0;o=s>>31;o=(((s>>15|0)==(o|0)?s:o^32767)<<16>>16)+(A[S>>1]|0)|0;s=o>>31;s=(o>>15|0)==(s|0)?o:s^32767;A[J>>1]=s;o=(A[e+((a^15)<<1)>>1]|0)-(A[e+(i+16<<1)>>1]|0)|0;l=o>>31;s=(((o>>15|0)==(l|0)?o:l^32767)<<16>>16)+(s<<16>>16)|0;l=s>>31;l=(s>>15|0)==(l|0)?s:l^32767;s=e+32|0;A[s>>1]=l;o=(A[e+(16-a<<1)>>1]|0)-(A[e+(i+17<<1)>>1]|0)|0;u=o>>31;l=(((o>>15|0)==(u|0)?o:u^32767)<<16>>16)+(l<<16>>16)|0;u=l>>31;u=(l>>15|0)==(u|0)?l:u^32767;l=e+34|0;A[l>>1]=u;i=(A[e+(17-a<<1)>>1]|0)-(A[e+(i+18<<1)>>1]|0)|0;a=i>>31;u=(((i>>15|0)==(a|0)?i:a^32767)<<16>>16)+(u<<16>>16)|0;a=u>>31;a=(u>>15|0)==(a|0)?u:a^32767;u=e+36|0;A[u>>1]=a;i=(A[G>>1]|0)+(A[Y>>1]|0)|0;o=i>>31;o=(A[_>>1]|0)-(((i>>15|0)==(o|0)?i:o^32767)<<16>>16)|0;i=o>>31;i=(((o>>15|0)==(i|0)?o:i^32767)<<16>>16)*5461|0;o=i>>31;o=(((i>>30|0)==(o|0)?i>>>15:o^32767)<<16)+1336279040|0;i=A[S>>1]|0;o=((o|0)>1275068416?19456:o>>16)-i|0;r=o>>31;i=(a<<16>>16)-i|0;a=i>>31;a=((i>>15|0)==(a|0)?i:a^32767)<<16>>16;i=(qe(a)|0)&65535;r=((o>>15|0)==(r|0)?o:r^32767)<<16>>16;o=(((qe(r)|0)&65535)<<16)+-1114112>>16;i=(i<<16)+-1048576>>16;ne=i-o|0;i=(ui(r<<o&65535,a<<i&65535)|0)<<16>>16;a=ne<<16>>16;o=0-a&15;a=a&15;r=A[J>>1]|0;f=r-(A[S>>1]|0)|0;n=f>>31;n=R(((f>>15|0)==(n|0)?f:n^32767)<<16>>16,i)|0;f=n>>31;f=((n>>30|0)==(f|0)?n>>>15:f^32767)<<16;n=f>>16;if((ne&65535)<<16>>16<0){f=n>>o&65535;A[O>>1]=f;ne=A[s>>1]|0;re=ne-r|0;n=re>>31;n=R(((re>>15|0)==(n|0)?re:n^32767)<<16>>16,i)|0;re=n>>31;re=((n>>30|0)==(re|0)?n>>>15:re^32767)<<16>>16>>o&65535;A[L>>1]=re;n=A[l>>1]|0;r=n-ne|0;ne=r>>31;ne=R(((r>>15|0)==(ne|0)?r:ne^32767)<<16>>16,i)|0;r=ne>>31;r=((ne>>30|0)==(r|0)?ne>>>15:r^32767)<<16>>16>>o&65535;A[x>>1]=r;n=(A[u>>1]|0)-n|0;ne=n>>31;ne=R(((n>>15|0)==(ne|0)?n:ne^32767)<<16>>16,i)|0;n=ne>>31;i=re;n=((ne>>30|0)==(n|0)?ne>>>15:n^32767)<<16>>16>>o}else{ne=n<<a;f=((ne<<16>>16>>a|0)==(n|0)?ne:f>>31^32767)&65535;A[O>>1]=f;ne=A[s>>1]|0;ie=ne-r|0;r=ie>>31;r=R(((ie>>15|0)==(r|0)?ie:r^32767)<<16>>16,i)|0;ie=r>>31;ie=((r>>30|0)==(ie|0)?r>>>15:ie^32767)<<16;r=ie>>16;n=r<<a;ie=((n<<16>>16>>a|0)==(r|0)?n:ie>>31^32767)&65535;A[L>>1]=ie;n=A[l>>1]|0;r=n-ne|0;ne=r>>31;ne=R(((r>>15|0)==(ne|0)?r:ne^32767)<<16>>16,i)|0;r=ne>>31;r=((ne>>30|0)==(r|0)?ne>>>15:r^32767)<<16;ne=r>>16;re=ne<<a;r=((re<<16>>16>>a|0)==(ne|0)?re:r>>31^32767)&65535;A[x>>1]=r;n=(A[u>>1]|0)-n|0;re=n>>31;re=R(((n>>15|0)==(re|0)?n:re^32767)<<16>>16,i)|0;n=re>>31;n=((re>>30|0)==(n|0)?re>>>15:n^32767)<<16;re=n>>16;ne=re<<a;i=ie;n=(ne<<16>>16>>a|0)==(re|0)?ne:n>>31^32767}A[z>>1]=n;if((((f&65535)+(i&65535)<<16)+-83886080|0)<0){r=i<<16>>16>f<<16>>16;A[O+(((r^1)&1)<<1)>>1]=1280-((r?i:f)&65535);r=A[x>>1]|0;i=A[L>>1]|0}if((((i&65535)+(r&65535)<<16)+-83886080|0)<0){ne=r<<16>>16>i<<16>>16;A[O+((ne?1:2)<<1)>>1]=1280-((ne?r:i)&65535);r=A[x>>1]|0}i=A[z>>1]|0;if((((r&65535)+(i&65535)<<16)+-83886080|0)>=0){ne=r;re=i;ie=A[S>>1]|0;z=A[O>>1]|0;ie=ie<<16>>16;z=z<<16>>16;ie=z+ie|0;z=ie>>15;x=ie>>31;z=(z|0)==(x|0);x=x^32767;x=z?ie:x;ie=x&65535;A[J>>1]=ie;ie=A[L>>1]|0;x=x<<16;x=x>>16;ie=ie<<16>>16;ie=x+ie|0;x=ie>>15;z=ie>>31;x=(x|0)==(z|0);z=z^32767;z=x?ie:z;ie=z&65535;A[s>>1]=ie;z=z<<16;z=z>>16;ne=ne<<16>>16;ne=z+ne|0;z=ne>>15;ie=ne>>31;z=(z|0)==(ie|0);ie=ie^32767;ie=z?ne:ie;ne=ie&65535;A[l>>1]=ne;ie=ie<<16;ie=ie>>16;re=re<<16>>16;re=ie+re|0;ie=re>>15;ne=re>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[u>>1]=ne;ne=A[e>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[e>>1]=ne;ne=A[q>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[q>>1]=ne;ne=A[_>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[_>>1]=ne;ne=A[G>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[G>>1]=ne;ne=A[Y>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[Y>>1]=ne;ne=A[j>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[j>>1]=ne;ne=A[K>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[K>>1]=ne;ne=A[W>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[W>>1]=ne;ne=A[V>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[V>>1]=ne;ne=A[Z>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[Z>>1]=ne;ne=A[$>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[$>>1]=ne;ne=A[H>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[H>>1]=ne;ne=A[U>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[U>>1]=ne;ne=A[N>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[N>>1]=ne;ne=A[S>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[S>>1]=ne;ne=A[J>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[J>>1]=ne;ne=A[s>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[s>>1]=ne;ne=A[l>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[l>>1]=ne;ne=A[u>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[u>>1]=ne;xe(e,e,20);h=ee;return}ne=i<<16>>16>r<<16>>16;A[O+((ne?2:3)<<1)>>1]=1280-((ne?i:r)&65535);ne=A[x>>1]|0;re=A[z>>1]|0;ie=A[S>>1]|0;z=A[O>>1]|0;ie=ie<<16>>16;z=z<<16>>16;ie=z+ie|0;z=ie>>15;x=ie>>31;z=(z|0)==(x|0);x=x^32767;x=z?ie:x;ie=x&65535;A[J>>1]=ie;ie=A[L>>1]|0;x=x<<16;x=x>>16;ie=ie<<16>>16;ie=x+ie|0;x=ie>>15;z=ie>>31;x=(x|0)==(z|0);z=z^32767;z=x?ie:z;ie=z&65535;A[s>>1]=ie;z=z<<16;z=z>>16;ne=ne<<16>>16;ne=z+ne|0;z=ne>>15;ie=ne>>31;z=(z|0)==(ie|0);ie=ie^32767;ie=z?ne:ie;ne=ie&65535;A[l>>1]=ne;ie=ie<<16;ie=ie>>16;re=re<<16>>16;re=ie+re|0;ie=re>>15;ne=re>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[u>>1]=ne;ne=A[e>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[e>>1]=ne;ne=A[q>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[q>>1]=ne;ne=A[_>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[_>>1]=ne;ne=A[G>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[G>>1]=ne;ne=A[Y>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[Y>>1]=ne;ne=A[j>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[j>>1]=ne;ne=A[K>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[K>>1]=ne;ne=A[W>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[W>>1]=ne;ne=A[V>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[V>>1]=ne;ne=A[Z>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[Z>>1]=ne;ne=A[$>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[$>>1]=ne;ne=A[H>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[H>>1]=ne;ne=A[U>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[U>>1]=ne;ne=A[N>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[N>>1]=ne;ne=A[S>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[S>>1]=ne;ne=A[J>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[J>>1]=ne;ne=A[s>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[s>>1]=ne;ne=A[l>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[l>>1]=ne;ne=A[u>>1]|0;ne=ne<<16>>16;ne=ne*26214|0;re=ne>>>15;ie=ne>>30;ne=ne>>31;ie=(ie|0)==(ne|0);ne=ne^32767;ne=ie?re:ne;ne=ne&65535;A[u>>1]=ne;xe(e,e,20);h=ee;return}function Xe(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,a=0,s=0,l=0,u=0,c=0,w=0,v=0,B=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0;R=h;h=h+96|0;if((h|0)>=(d|0))X(96);m=R+40|0;I=R;F=r<<16>>16;p=r<<16>>16>>1;M=p<<16>>16;if(p<<16>>16>8){t[m>>2]=2097152;t[m+4>>2]=0-(A[e>>1]|0)<<7;Q=p+-1&65535;s=m+8|0;g=e;k=0;D=2;while(1){u=0-k|0;g=g+4|0;a=t[s+-8>>2]|0;t[s>>2]=a;b=A[g>>1]|0;c=(b&65535)<<16;w=((c|0)<0)<<31>>31;r=1;l=s;f=a;while(1){v=l+-4|0;B=t[v>>2]|0;Yi(B|0,((B|0)<0)<<31>>31|0,c|0,w|0)|0;T=E;P=ji(T|0,0,2)|0;t[l>>2]=a+f-((P>>2|0)==(T|0)?P:T>>31^2147483647);r=r+1<<16>>16;if((D|0)<=(r<<16>>16|0))break;f=t[l+-12>>2]|0;l=v;a=B}r=s+-4+(u<<2)|0;t[r>>2]=(t[r>>2]|0)-(b<<16>>16<<7);k=k+1|0;if((k|0)==(Q|0))break;else{s=r+(D<<2)|0;D=D+1|0}}if(p<<16>>16>=0){f=p+1&65535;r=0;do{T=m+(r<<2)|0;P=t[T>>2]|0;y=P<<2;t[T>>2]=(y>>2|0)==(P|0)?y:P>>31^2147483647;r=r+1|0}while((r|0)!=(f|0))}r=e+2|0;y=M+65535|0;C=y&65535;t[I>>2]=2097152;t[I+4>>2]=0-(A[r>>1]|0)<<7;if(C<<16>>16>=2){Q=y<<16>>16;g=I+8|0;k=0;D=2;while(1){u=0-k|0;r=r+4|0;s=t[g+-8>>2]|0;t[g>>2]=s;b=A[r>>1]|0;c=(b&65535)<<16;w=((c|0)<0)<<31>>31;f=1;l=g;a=s;while(1){v=l+-4|0;B=t[v>>2]|0;Yi(B|0,((B|0)<0)<<31>>31|0,c|0,w|0)|0;T=E;P=ji(T|0,0,2)|0;t[l>>2]=s+a-((P>>2|0)==(T|0)?P:T>>31^2147483647);f=f+1<<16>>16;if((D|0)<=(f<<16>>16|0))break;a=t[l+-12>>2]|0;l=v;s=B}f=g+-4+(u<<2)|0;t[f>>2]=(t[f>>2]|0)-(b<<16>>16<<7);if((D|0)>=(Q|0))break;else{g=f+(D<<2)|0;k=k+1|0;D=D+1|0}}}if(p<<16>>16>0){f=p&65535;r=0;do{T=I+(r<<2)|0;P=t[T>>2]|0;Q=P<<2;t[T>>2]=(Q>>2|0)==(P|0)?Q:P>>31^2147483647;r=r+1|0}while((r|0)!=(f|0));Q=y;T=31}else{Q=y;T=31}}else{t[m>>2]=8388608;t[m+4>>2]=0-(A[e>>1]|0)<<9;if(p<<16>>16>=2){s=m+8|0;g=e;k=0;D=2;while(1){u=0-k|0;g=g+4|0;a=t[s+-8>>2]|0;t[s>>2]=a;b=A[g>>1]|0;c=(b&65535)<<16;w=((c|0)<0)<<31>>31;r=1;l=s;f=a;while(1){v=l+-4|0;B=t[v>>2]|0;Yi(B|0,((B|0)<0)<<31>>31|0,c|0,w|0)|0;P=E;y=ji(P|0,0,2)|0;t[l>>2]=a+f-((y>>2|0)==(P|0)?y:P>>31^2147483647);r=r+1<<16>>16;if((D|0)<=(r<<16>>16|0))break;f=t[l+-12>>2]|0;l=v;a=B}r=s+-4+(u<<2)|0;t[r>>2]=(t[r>>2]|0)-(b<<16>>16<<9);if((D|0)>=(M|0))break;else{s=r+(D<<2)|0;k=k+1|0;D=D+1|0}}}r=e+2|0;y=M+65535|0;P=y&65535;t[I>>2]=8388608;t[I+4>>2]=0-(A[r>>1]|0)<<9;if(P<<16>>16>=2){Q=y<<16>>16;g=I+8|0;k=0;D=2;while(1){u=0-k|0;r=r+4|0;s=t[g+-8>>2]|0;t[g>>2]=s;b=A[r>>1]|0;c=(b&65535)<<16;w=((c|0)<0)<<31>>31;f=1;l=g;a=s;while(1){v=l+-4|0;B=t[v>>2]|0;Yi(B|0,((B|0)<0)<<31>>31|0,c|0,w|0)|0;T=E;C=ji(T|0,0,2)|0;t[l>>2]=s+a-((C>>2|0)==(T|0)?C:T>>31^2147483647);f=f+1<<16>>16;if((D|0)<=(f<<16>>16|0))break;a=t[l+-12>>2]|0;l=v;s=B}f=g+-4+(u<<2)|0;t[f>>2]=(t[f>>2]|0)-(b<<16>>16<<9);if((D|0)>=(Q|0)){C=P;Q=y;T=31;break}else{g=f+(D<<2)|0;k=k+1|0;D=D+1|0}}}}if((T|0)==31?C<<16>>16>1:0){r=Q<<16>>16;while(1){T=I+(r<<2)|0;t[T>>2]=(t[T>>2]|0)-(t[I+(r+-2<<2)>>2]|0);if((r|0)>2)r=r+-1|0;else break}}v=F+-1|0;if(p<<16>>16>0){r=o[e+(v<<1)>>1]<<16;f=((r|0)<0)<<31>>31;s=p&65535;a=0;do{C=m+(a<<2)|0;Q=t[C>>2]|0;T=I+(a<<2)|0;y=t[T>>2]|0;D=Yi(r|0,f|0,Q|0,((Q|0)<0)<<31>>31|0)|0;D=zi(D|0,E|0,31)|0;P=Yi(r|0,f|0,y|0,((y|0)<0)<<31>>31|0)|0;P=zi(P|0,E|0,31)|0;t[C>>2]=(D&-2)+Q;t[T>>2]=y-(P&-2);a=a+1|0}while((a|0)!=(s|0));A[i>>1]=4096;u=v&65535;l=p<<16>>16>1;if(l){s=p&65535;f=u;r=1;a=1;while(1){Q=t[m+(a<<2)>>2]|0;T=t[I+(a<<2)>>2]|0;D=T+Q|0;C=T^Q;P=Q>>31^2147483647;D=(C|0)>-1&(D^Q|0)<0?P:D;y=D-(D>>>31)|0;A[i+(a<<1)>>1]=(D>>>11&1)+(D>>>12);T=Q-T|0;T=((T^Q)&C|0)<0?P:T;P=T-(T>>>31)|0;r=y>>31^y|r|P>>31^P;A[i+(f<<16>>16<<1)>>1]=(T>>>11&1)+(T>>>12);a=a+1|0;if((a|0)==(s|0)){f=u;break}else f=f+-1<<16>>16}}else{r=1;l=0;f=u}}else{A[i>>1]=4096;r=1;l=0;f=v&65535}if(n<<16>>16!=1){T=12;I=3;p=m+(M<<2)|0;p=t[p>>2]|0;n=(p|0)<0;n=n<<31>>31;m=e+(v<<1)|0;e=A[m>>1]|0;e=e<<16>>16;P=(e|0)<0;P=P<<31>>31;n=Yi(e|0,P|0,p|0,n|0)|0;P=E;P=zi(n|0,P|0,15)|0;n=P&-2;n=n+p|0;P=p^P;P=(P|0)>-1;e=n^p;e=(e|0)<0;e=P&e;p=p>>31;p=p^2147483647;n=e?p:n;p=n>>T;e=T+-1|0;e=n>>>e;e=e&1;p=e+p|0;p=p&65535;e=i+(M<<1)|0;A[e>>1]=p;m=A[m>>1]|0;I=li(m,I)|0;F=i+(F<<1)|0;A[F>>1]=I;h=R;return}c=qe(r)|0;n=4-(c&65535)|0;r=n<<16;w=r>>16;if((n&65535)<<16>>16<=0){T=12;I=3;p=m+(M<<2)|0;p=t[p>>2]|0;n=(p|0)<0;n=n<<31>>31;m=e+(v<<1)|0;e=A[m>>1]|0;e=e<<16>>16;P=(e|0)<0;P=P<<31>>31;n=Yi(e|0,P|0,p|0,n|0)|0;P=E;P=zi(n|0,P|0,15)|0;n=P&-2;n=n+p|0;P=p^P;P=(P|0)>-1;e=n^p;e=(e|0)<0;e=P&e;p=p>>31;p=p^2147483647;n=e?p:n;p=n>>T;e=T+-1|0;e=n>>>e;e=e&1;p=e+p|0;p=p&65535;e=i+(M<<1)|0;A[e>>1]=p;m=A[m>>1]|0;I=li(m,I)|0;F=i+(F<<1)|0;A[F>>1]=I;h=R;return}u=r+786432>>16;if(l){s=u+-1|0;a=p&65535;r=f;f=1;while(1){P=t[m+(f<<2)>>2]|0;p=t[I+(f<<2)>>2]|0;y=p+P|0;T=p^P;n=P>>31^2147483647;y=(T|0)>-1&(y^P|0)<0?n:y;A[i+(f<<1)>>1]=(y>>>s&1)+(y>>u);p=P-p|0;p=((p^P)&T|0)<0?n:p;A[i+(r<<16>>16<<1)>>1]=(p>>>s&1)+(p>>u);f=f+1|0;if((f|0)==(a|0))break;else r=r+-1<<16>>16}}A[i>>1]=A[i>>1]>>w;T=u;I=(4-c&65535)+3&65535;p=m+(M<<2)|0;p=t[p>>2]|0;n=(p|0)<0;n=n<<31>>31;m=e+(v<<1)|0;e=A[m>>1]|0;e=e<<16>>16;P=(e|0)<0;P=P<<31>>31;n=Yi(e|0,P|0,p|0,n|0)|0;P=E;P=zi(n|0,P|0,15)|0;n=P&-2;n=n+p|0;P=p^P;P=(P|0)>-1;e=n^p;e=(e|0)<0;e=P&e;p=p>>31;p=p^2147483647;n=e?p:n;p=n>>T;e=T+-1|0;e=n>>>e;e=e&1;p=e+p|0;p=p&65535;e=i+(M<<1)|0;A[e>>1]=p;m=A[m>>1]|0;I=li(m,I)|0;F=i+(F<<1)|0;A[F>>1]=I;h=R;return}function xe(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0;t=(r<<16>>16)+-1|0;if(r<<16>>16>1){n=0;f=0;do{A[i+(f<<1)>>1]=A[e+(f<<1)>>1]|0;n=n+1<<16>>16;f=n<<16>>16}while((t|0)>(f|0))}f=A[e+(t<<1)>>1]|0;A[i+(t<<1)>>1]=(f<<17>>17|0)==(f|0)?f<<1:f>>>15^32767;if(r<<16>>16<=0)return;e=r&65535;n=0;do{f=i+(n<<1)|0;t=A[f>>1]|0;a=t<<16>>16>>7<<16>>16;r=A[764+(a<<1)>>1]|0;t=R((o[764+(a+1<<1)>>1]|0)-(r&65535)<<16>>16,t&127)|0;r=((t|0)==1073741824?-1:t>>>7<<16>>16)+(r<<16>>16)|0;t=r>>31;A[f>>1]=(r>>15|0)==(t|0)?r:t^32767;n=n+1|0}while((n|0)!=(e|0));return}function Ye(e){e=e|0;A[e>>1]=64;A[e+2>>1]=64;A[e+4>>1]=64;A[e+6>>1]=64;A[e+8>>1]=64;return}function ze(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0;D=h;h=h+16|0;if((h|0)>=(d|0))X(16);g=D;A[g>>1]=0;A[g+2>>1]=0;A[g+4>>1]=0;A[g+6>>1]=0;A[g+8>>1]=0;E=A[e+8>>1]|0;v=A[e+6>>1]|0;o=A[i>>1]|0;a=A[i+2>>1]|0;b=a<<16>>16<o<<16>>16?a:o;k=a<<16>>16>o<<16>>16?a:o;s=A[i+4>>1]|0;b=s<<16>>16<b<<16>>16?s:b;k=s<<16>>16>k<<16>>16?s:k;l=A[i+6>>1]|0;b=l<<16>>16<b<<16>>16?l:b;k=l<<16>>16>k<<16>>16?l:k;u=A[i+8>>1]|0;b=u<<16>>16<b<<16>>16?u:b;k=u<<16>>16>k<<16>>16?u:k;c=A[e>>1]|0;w=A[e+2>>1]|0;c=w<<16>>16<c<<16>>16?w:c;w=A[e+4>>1]|0;c=w<<16>>16<c<<16>>16?w:c;c=v<<16>>16<c<<16>>16?v:c;w=E<<16>>16<c<<16>>16?E:c;e=b<<16>>16;Q=(k<<16>>16)-e|0;B=Q>>31;B=((Q>>15|0)==(B|0)?Q:B^32767)&65535;if(f<<16>>16){if(!(B<<16>>16<10&w<<16>>16>8192)){if(!(E<<16>>16>8192&v<<16>>16>8192)){A[g>>1]=A[i>>1]|0;A[g+2>>1]=A[i+2>>1]|0;A[g+4>>1]=A[i+4>>1]|0;A[g+6>>1]=A[i+6>>1]|0;A[g+8>>1]=A[i+8>>1]|0;o=A[g>>1]|0;e=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1;A[g+(o<<1)>>1]=e;l=g+4|0;e=A[l>>1]|0;o=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2;A[g+(o<<1)>>1]=e;s=g+6|0;e=A[s>>1]|0;o=A[g+4>>1]|0;if(o<<16>>16>e<<16>>16){A[g+6>>1]=o;o=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2}else o=3;A[g+(o<<1)>>1]=e;e=g+8|0;a=A[e>>1]|0;o=A[g+6>>1]|0;if(o<<16>>16>a<<16>>16){A[g+8>>1]=o;o=A[g+4>>1]|0;if(o<<16>>16>a<<16>>16){A[g+6>>1]=o;o=A[g+2>>1]|0;if(o<<16>>16>a<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>a<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2}else o=3}else o=4;A[g+(o<<1)>>1]=a;g=A[e>>1]|0;E=A[l>>1]|0;Q=g-E|0;o=Q>>31;o=((Q>>15|0)==(o|0)?Q:o^32767)&65535;o=R((o<<16>>16<40?o:40)<<16>>16>>1<<16>>16,(Ve(t)|0)<<16>>16)|0;Q=o>>31;E=(A[s>>1]|0)+E|0;t=E>>31;g=(((E>>15|0)==(t|0)?E:t^32767)<<16>>16)+g|0;t=g>>31;t=(((g>>15|0)==(t|0)?g:t^32767)<<16>>16)*10923|0;g=t>>31;Q=(((t>>30|0)==(g|0)?t>>>15:g^32767)<<16>>16)+(((o>>30|0)==(Q|0)?o>>>15:Q^32767)<<16>>16)|0;o=Q>>31;o=((Q>>15|0)==(o|0)?Q:o^32767)&65535}}else o=A[n>>1]|0;Q=o<<16>>16>k<<16>>16?k:o;A[r>>1]=Q<<16>>16<b<<16>>16?b:Q;h=D;return}f=o<<16>>16;Q=f>>31;Q=((f>>15|0)==(Q|0)?f:Q^32767)+(a<<16>>16)|0;a=Q>>31;a=(((Q>>15|0)==(a|0)?Q:a^32767)<<16>>16)+(s<<16>>16)|0;s=a>>31;s=(((a>>15|0)==(s|0)?a:s^32767)<<16>>16)+(l<<16>>16)|0;a=s>>31;a=(((s>>15|0)==(a|0)?s:a^32767)<<16>>16)+(u<<16>>16)|0;s=a>>31;s=(((a>>15|0)==(s|0)?a:s^32767)<<16>>16)*6554|0;a=s>>31;a=((s>>30|0)==(a|0)?s>>>15:a^32767)&65535;s=A[r>>1]|0;Q=s<<16>>16;l=Q-(o&65535)|0;u=B<<16>>16<10;if(u?(e+-5|0)<(Q|0)&(Q-(k&65535)<<16|0)<327680:0){h=D;return}e=E<<16>>16>8192&v<<16>>16>8192;if(e?((l<<16)+655359|0)>>>0<1310719:0){h=D;return}if((w<<16>>16<6554?E<<16>>16<=c<<16>>16:0)?s<<16>>16>b<<16>>16?s<<16>>16<k<<16>>16:0:0){h=D;return}if(B<<16>>16<70?s<<16>>16>b<<16>>16?s<<16>>16<k<<16>>16:0:0){h=D;return}if(s<<16>>16>a<<16>>16?s<<16>>16<k<<16>>16:0){h=D;return}if(!(u&w<<16>>16>8192|e)){A[g>>1]=A[i>>1]|0;A[g+2>>1]=A[i+2>>1]|0;A[g+4>>1]=A[i+4>>1]|0;A[g+6>>1]=A[i+6>>1]|0;A[g+8>>1]=A[i+8>>1]|0;o=A[g>>1]|0;e=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1;A[g+(o<<1)>>1]=e;l=g+4|0;e=A[l>>1]|0;o=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2;A[g+(o<<1)>>1]=e;s=g+6|0;e=A[s>>1]|0;o=A[g+4>>1]|0;if(o<<16>>16>e<<16>>16){A[g+6>>1]=o;o=A[g+2>>1]|0;if(o<<16>>16>e<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>e<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2}else o=3;A[g+(o<<1)>>1]=e;e=g+8|0;a=A[e>>1]|0;o=A[g+6>>1]|0;if(o<<16>>16>a<<16>>16){A[g+8>>1]=o;o=A[g+4>>1]|0;if(o<<16>>16>a<<16>>16){A[g+6>>1]=o;o=A[g+2>>1]|0;if(o<<16>>16>a<<16>>16){A[g+4>>1]=o;o=A[g>>1]|0;if(o<<16>>16>a<<16>>16){A[g+2>>1]=o;o=0}else o=1}else o=2}else o=3}else o=4;A[g+(o<<1)>>1]=a;g=A[e>>1]|0;E=A[l>>1]|0;Q=g-E|0;o=Q>>31;o=((Q>>15|0)==(o|0)?Q:o^32767)&65535;o=R((o<<16>>16<40?o:40)<<16>>16>>1<<16>>16,(Ve(t)|0)<<16>>16)|0;Q=o>>31;E=(A[s>>1]|0)+E|0;t=E>>31;g=(((E>>15|0)==(t|0)?E:t^32767)<<16>>16)+g|0;t=g>>31;t=(((g>>15|0)==(t|0)?g:t^32767)<<16>>16)*10923|0;g=t>>31;Q=(((t>>30|0)==(g|0)?t>>>15:g^32767)<<16>>16)+(((o>>30|0)==(Q|0)?o>>>15:Q^32767)<<16>>16)|0;o=Q>>31;o=((Q>>15|0)==(o|0)?Q:o^32767)&65535}Q=o<<16>>16>k<<16>>16?k:o;A[r>>1]=Q<<16>>16<b<<16>>16?b:Q;h=D;return}function je(e){e=e|0;var i=0;i=e+60|0;do{n[e>>0]=0;e=e+1|0}while((e|0)<(i|0));return}function Je(e,i,r,t){e=e|0;i=i|0;r=r|0;t=t|0;var f=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;f=t;a=r;s=f+60|0;do{n[f>>0]=n[a>>0]|0;f=f+1|0;a=a+1|0}while((f|0)<(s|0));E=i<<16>>16;g=E>>2;if((g|0)>0){i=0;k=0}else{a=t+(E<<1)|0;f=r;s=f+60|0;do{n[f>>0]=n[a>>0]|0;f=f+1|0;a=a+1|0}while((f|0)<(s|0));return}do{b=k<<16>>16<<2;B=i<<2;l=e+(B<<1)|0;A[t+(B+30<<1)>>1]=A[l>>1]|0;h=B|1;u=e+(h<<1)|0;A[t+(B+31<<1)>>1]=A[u>>1]|0;a=B|2;c=e+(a<<1)|0;A[t+(B+32<<1)>>1]=A[c>>1]|0;f=B|3;w=e+(f<<1)|0;A[t+(B+33<<1)>>1]=A[w>>1]|0;i=(R((o[l>>1]|0)+(o[t+(B<<1)>>1]|0)<<16>>16,-21)|0)+16384|0;v=A[t+(h<<1)>>1]|0;s=(R((o[u>>1]|0)+(v&65535)<<16>>16,-21)|0)+16384|0;a=(R((o[c>>1]|0)+(o[t+(a<<1)>>1]|0)<<16>>16,-21)|0)+16384|0;f=(R((o[w>>1]|0)+(o[t+(f<<1)>>1]|0)<<16>>16,-21)|0)+16384|0;d=1;do{T=A[1022+(d<<1)>>1]|0;M=(R(T,v<<16>>16)|0)+i|0;P=A[t+(h+1<<1)>>1]|0;p=(R(T,P)|0)+s|0;y=A[1022+(d+1<<1)>>1]|0;P=M+(R(y,P)|0)|0;M=A[t+(h+2<<1)>>1]|0;p=p+(R(y,M)|0)|0;C=(R(T,M)|0)+a|0;Q=A[1022+(d+2<<1)>>1]|0;M=P+(R(Q,M)|0)|0;P=A[t+(h+3<<1)>>1]|0;p=p+(R(P,Q)|0)|0;T=(R(P,T)|0)+f|0;C=C+(R(P,y)|0)|0;D=A[1022+(d+3<<1)>>1]|0;i=M+(R(D,P)|0)|0;P=A[t+(h+4<<1)>>1]|0;s=p+(R(D,P)|0)|0;y=T+(R(P,y)|0)|0;P=C+(R(P,Q)|0)|0;C=A[t+(h+5<<1)>>1]|0;a=P+(R(C,D)|0)|0;f=y+(R(C,Q)|0)+(R(A[t+(h+6<<1)>>1]|0,D)|0)|0;D=(d<<16)+262144|0;d=D>>16;h=d+B|0;v=A[t+(h<<1)>>1]|0}while((D|0)<1900544);T=((A[t+(b+30<<1)>>1]|0)*47|0)+s|0;p=((A[t+(b+31<<1)>>1]|0)*47|0)+a|0;M=((A[t+(b+32<<1)>>1]|0)*47|0)+f|0;A[l>>1]=(((v<<16>>16)*47|0)+i|0)>>>15;A[u>>1]=T>>>15;A[c>>1]=p>>>15;A[w>>1]=M>>>15;k=k+1<<16>>16;i=k<<16>>16}while((g|0)>(i|0));a=t+(E<<1)|0;f=r;s=f+60|0;do{n[f>>0]=n[a>>0]|0;f=f+1|0;a=a+1|0}while((f|0)<(s|0));return}function Ke(e){e=e|0;var i=0,r=0,n=0,t=0,f=0,o=0;n=A[e+-4>>1]|0;f=A[e+-2>>1]|0;o=A[e>>1]|0;r=A[e+2>>1]|0;i=A[e+4>>1]|0;t=f<<16>>16<n<<16>>16;e=t?f:n;f=t?n:f;n=o<<16>>16<e<<16>>16;t=n?o:e;e=n?e:o;o=r<<16>>16<t<<16>>16;n=o?r:t;r=o?t:r;i=i<<16>>16<n<<16>>16?n:i;n=e<<16>>16<f<<16>>16;t=n?e:f;e=n?f:e;f=r<<16>>16<t<<16>>16;n=f?r:t;r=f?t:r;i=i<<16>>16<n<<16>>16?n:i;e=r<<16>>16<e<<16>>16?r:e;return(i<<16>>16<e<<16>>16?i:e)|0}function We(e,i,r,o,a,s){e=e|0;i=i|0;r=r|0;o=o|0;a=a|0;s=s|0;var l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0;l=A[o>>1]|0;u=t[48+(l<<2)>>2]|0;Ki(i|0,0,A[1084+(l<<1)>>1]<<1|0)|0;l=A[o>>1]|0;c=A[1084+(l<<16>>16<<1)>>1]|0;w=c<<16>>16>>3;if(w<<16>>16){v=w+-1&65535;B=v+1|0;v=(v<<3)+8|0;d=e;h=u;while(1){c=f[d>>0]|0;do{switch(((c&240)+-16|0)>>>4&268435455|0){case 14:{A[i+(A[h>>1]<<1)>>1]=127;A[i+(A[h+2>>1]<<1)>>1]=127;A[i+(A[h+4>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 13:{A[i+(A[h>>1]<<1)>>1]=127;A[i+(A[h+2>>1]<<1)>>1]=127;l=h+4|0;E=18;break}case 12:{A[i+(A[h>>1]<<1)>>1]=127;A[i+(A[h+2>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 11:{A[i+(A[h>>1]<<1)>>1]=127;l=h+2|0;E=18;break}case 10:{A[i+(A[h>>1]<<1)>>1]=127;A[i+(A[h+4>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 9:{A[i+(A[h>>1]<<1)>>1]=127;l=h+4|0;E=18;break}case 8:{A[i+(A[h>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 7:{l=h;E=18;break}case 6:{A[i+(A[h+2>>1]<<1)>>1]=127;A[i+(A[h+4>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 5:{A[i+(A[h+2>>1]<<1)>>1]=127;l=h+4|0;E=18;break}case 4:{A[i+(A[h+2>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 3:{l=h+2|0;E=18;break}case 2:{A[i+(A[h+4>>1]<<1)>>1]=127;l=h+6|0;E=18;break}case 1:{l=h+4|0;E=18;break}case 0:{l=h+6|0;E=18;break}default:}}while(0);if((E|0)==18){E=0;A[i+(A[l>>1]<<1)>>1]=127}l=h+8|0;do{switch(((c<<4&240)+-16|0)>>>4&268435455|0){case 14:{A[i+(A[l>>1]<<1)>>1]=127;A[i+(A[h+10>>1]<<1)>>1]=127;A[i+(A[h+12>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 13:{A[i+(A[l>>1]<<1)>>1]=127;A[i+(A[h+10>>1]<<1)>>1]=127;l=h+12|0;E=47;break}case 12:{A[i+(A[l>>1]<<1)>>1]=127;A[i+(A[h+10>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 11:{A[i+(A[l>>1]<<1)>>1]=127;l=h+10|0;E=47;break}case 10:{A[i+(A[l>>1]<<1)>>1]=127;A[i+(A[h+12>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 9:{A[i+(A[l>>1]<<1)>>1]=127;l=h+12|0;E=47;break}case 8:{A[i+(A[l>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 7:{E=47;break}case 6:{A[i+(A[h+10>>1]<<1)>>1]=127;A[i+(A[h+12>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 5:{A[i+(A[h+10>>1]<<1)>>1]=127;l=h+12|0;E=47;break}case 4:{A[i+(A[h+10>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 3:{l=h+10|0;E=47;break}case 2:{A[i+(A[h+12>>1]<<1)>>1]=127;l=h+14|0;E=47;break}case 1:{l=h+12|0;E=47;break}case 0:{l=h+14|0;E=47;break}default:}}while(0);if((E|0)==47){E=0;A[i+(A[l>>1]<<1)>>1]=127}w=w+-1<<16>>16;if(!(w<<16>>16))break;else{d=d+1|0;h=h+16|0}}l=A[o>>1]|0;u=u+(v<<1)|0;e=e+B|0;c=A[1084+(l<<16>>16<<1)>>1]|0}e=n[e>>0]|0;c=((c<<16>>16|0)%8|0)&65535;if(c<<16>>16){while(1){l=e&255;if(l&128|0)A[i+(A[u>>1]<<1)>>1]=127;e=l<<1&255;c=c+-1<<16>>16;if(!(c<<16>>16))break;else u=u+2|0}l=A[o>>1]|0}switch(l<<16>>16|0){case 8:case 7:case 6:case 5:case 4:case 3:case 2:case 1:case 0:{A[r>>1]=a<<24>>24?0:3;s=s+2|0;a=A[o>>1]|0;A[s>>1]=a;return}case 9:{A[r>>1]=a<<24>>24==0?6:e<<24>>24<0?5:4;s=s+2|0;a=A[s>>1]|0;A[o>>1]=a;A[s>>1]=a;return}case 14:{A[r>>1]=2;s=s+2|0;a=A[s>>1]|0;A[o>>1]=a;A[s>>1]=a;return}case 15:{A[r>>1]=7;s=s+2|0;a=A[s>>1]|0;A[o>>1]=a;A[s>>1]=a;return}default:{A[r>>1]=7;s=s+2|0;a=A[s>>1]|0;A[o>>1]=a;A[s>>1]=a;return}}}function Ve(e){e=e|0;var i=0;i=((A[e>>1]|0)*31821|0)+13849&65535;A[e>>1]=i;return i|0}function qe(e){e=e|0;var i=0,r=0;do{if((e|0)<=268435455)if((e|0)<=16777215){if((e|0)>65535){i=(e|0)>1048575?7:11;break}if((e|0)>255){i=(e|0)>4095?15:19;break}else{i=(e|0)>15?23:27;break}}else i=3;else i=0}while(0);r=i&65535;switch(((e<<r&2013265920)+-134217728|0)>>>27&31){case 0:{r=r+3&65535;return r|0}case 1:case 2:{r=r+2&65535;return r|0}case 5:case 6:case 3:case 4:{r=i+1<<16>>16;return r|0}default:{r=i;return r|0}}}function Ze(e){e=e|0;var i=0;i=e+48|0;do{n[e>>0]=0;e=e+1|0}while((e|0)<(i|0));return}function $e(e,i,r,t,f){e=e|0;i=i|0;r=r|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,u=0,c=0;o=f;a=t;s=o+48|0;do{n[o>>0]=n[a>>0]|0;o=o+1|0;a=a+1|0}while((o|0)<(s|0));c=i<<16>>16;Ji(f+48|0,e|0,c<<1|0)|0;i=(c>>>2)+c|0;u=f+24|0;if((i&65535)<<16>>16<=0){a=f+(c<<1)|0;o=t;s=o+48|0;do{n[o>>0]=n[a>>0]|0;o=o+1|0;a=a+1|0}while((o|0)<(s|0));return}l=i&65535;s=r;i=1;e=0;while(1){o=i+-1<<16>>16;a=u+(e*6554>>13<<1)|0;if(!(o<<16>>16)){i=5;o=A[a>>1]|0}else{i=o;o=ei(a,6914+((4-(o<<16>>16)|0)*48|0)|0,4)|0}A[s>>1]=o;e=e+1|0;if((e|0)==(l|0))break;else s=s+2|0}a=f+(c<<1)|0;o=t;s=o+48|0;do{n[o>>0]=n[a>>0]|0;o=o+1|0;a=a+1|0}while((o|0)<(s|0));return}function ei(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0;f=r<<16>>16;f=e+(0-f<<1)+(0-(f<<1)<<1)+2|0;r=f+2|0;e=r+2|0;t=e+2|0;n=t+2|0;f=(R(A[i>>1]|0,A[f>>1]|0)|0)+8192|0;r=f+(R(A[i+2>>1]|0,A[r>>1]|0)|0)|0;e=r+(R(A[i+4>>1]|0,A[e>>1]|0)|0)|0;t=e+(R(A[i+6>>1]|0,A[t>>1]|0)|0)|0;e=n+2|0;r=e+2|0;f=r+2|0;o=f+2|0;n=t+(R(A[i+8>>1]|0,A[n>>1]|0)|0)|0;e=n+(R(A[i+10>>1]|0,A[e>>1]|0)|0)|0;r=e+(R(A[i+12>>1]|0,A[r>>1]|0)|0)|0;f=r+(R(A[i+14>>1]|0,A[f>>1]|0)|0)|0;r=o+2|0;e=r+2|0;n=e+2|0;t=n+2|0;o=f+(R(A[i+16>>1]|0,A[o>>1]|0)|0)|0;r=o+(R(A[i+18>>1]|0,A[r>>1]|0)|0)|0;e=r+(R(A[i+20>>1]|0,A[e>>1]|0)|0)|0;n=e+(R(A[i+22>>1]|0,A[n>>1]|0)|0)|0;e=t+2|0;r=e+2|0;o=r+2|0;f=o+2|0;t=n+(R(A[i+24>>1]|0,A[t>>1]|0)|0)|0;e=t+(R(A[i+26>>1]|0,A[e>>1]|0)|0)|0;r=e+(R(A[i+28>>1]|0,A[r>>1]|0)|0)|0;o=r+(R(A[i+30>>1]|0,A[o>>1]|0)|0)|0;r=f+2|0;e=r+2|0;t=e+2|0;n=t+2|0;f=o+(R(A[i+32>>1]|0,A[f>>1]|0)|0)|0;r=f+(R(A[i+34>>1]|0,A[r>>1]|0)|0)|0;e=r+(R(A[i+36>>1]|0,A[e>>1]|0)|0)|0;t=e+(R(A[i+38>>1]|0,A[t>>1]|0)|0)|0;e=n+2|0;r=e+2|0;n=t+(R(A[i+40>>1]|0,A[n>>1]|0)|0)|0;e=n+(R(A[i+42>>1]|0,A[e>>1]|0)|0)|0;e=e+(R(A[i+44>>1]|0,A[r>>1]|0)|0)|0;r=e+(R(A[i+46>>1]|0,A[r+2>>1]|0)|0)|0;i=r<<2;return((i>>2|0)==(r|0)?i:r>>31^2147418112)>>>16&65535|0}function ii(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0;B=t+4|0;Ki(f|0,0,256)|0;w=i<<16>>16<14746;u=t+12|0;h=A[u>>1]|0;A[t+14>>1]=h;d=t+10|0;a=A[d>>1]|0;A[u>>1]=a;u=t+8|0;s=A[u>>1]|0;A[d>>1]=s;d=t+6|0;l=A[d>>1]|0;A[u>>1]=l;u=A[B>>1]|0;A[d>>1]=u;d=t+2|0;c=i<<16>>16<9830;o=c?0:w?1:2;A[B>>1]=i;i=A[d>>1]|0;B=(e<<16>>16)-i|0;v=B>>31;if((((B>>15|0)==(v|0)?B:v^32767)&65535)<<16>>16>(((i<<17>>17|0)==(i|0)?i<<1:i>>>15^32767)&65535)<<16>>16)o=o+(w&1)<<16>>16;else{o=((((((c&1)+(u<<16>>16<9830&1)<<16>>16)+(l<<16>>16<9830&1)<<16>>16)+(s<<16>>16<9830&1)<<16>>16)+(a<<16>>16<9830&1)<<16>>16)+(h<<16>>16<9830&1)&65535)>2?0:o;o=o+((((A[t>>1]|0)+1|0)<(o&65535|0))<<31>>31)<<16>>16}A[d>>1]=e;A[t>>1]=o;l=(o&65535)+(n&65535)<<16;switch(l>>16|0){case 0:{s=0;do{a=r+(s<<1)|0;o=A[a>>1]|0;e:do{if(o<<16>>16){i=0;while(1){B=f+(i+s<<1)|0;t=A[B>>1]|0;t=((si(o,A[7106+(i<<1)>>1]|0)|0)<<16>>16)+(t<<16>>16)|0;v=t>>31;A[B>>1]=(t>>15|0)==(v|0)?t:v^32767;i=i+1|0;if((i|0)==64)break e;o=A[a>>1]|0}}}while(0);s=s+1|0}while((s|0)!=64);break}case 1:{s=0;do{a=r+(s<<1)|0;o=A[a>>1]|0;e:do{if(o<<16>>16){i=0;while(1){B=f+(i+s<<1)|0;t=A[B>>1]|0;t=((si(o,A[7234+(i<<1)>>1]|0)|0)<<16>>16)+(t<<16>>16)|0;v=t>>31;A[B>>1]=(t>>15|0)==(v|0)?t:v^32767;i=i+1|0;if((i|0)==64)break e;o=A[a>>1]|0}}}while(0);s=s+1|0}while((s|0)!=64);break}default:}if((l|0)<131072)o=0;else return;do{v=(A[f+(o+64<<1)>>1]|0)+(A[f+(o<<1)>>1]|0)|0;B=v>>31;A[r+(o<<1)>>1]=(v>>15|0)==(B|0)?v:B^32767;o=o+1|0}while((o|0)!=64);return}function ri(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,a=0,s=0,l=0;if(i<<16>>16>=n<<16>>16)return;f=i<<16>>16;t=r<<16>>16;r=n<<16>>16;i=f;do{n=e+(i<<1)|0;s=o[n>>1]<<16;l=R(A[e+(i-f<<1)>>1]|0,t)|0;l=(l|0)==1073741824?2147483647:l<<1;a=l+s|0;a=(l^s|0)>-1&(a^s|0)<0?s>>31^2147483647:a;A[n>>1]=(a|0)==2147483647?32767:(a+32768|0)>>>16&65535;i=i+1|0}while((i|0)!=(r|0));return}function ni(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0;i=e+(0-(i<<16>>16)<<1)|0;c=0-r<<16>>16;u=c<<16>>16<0;i=(u?i+-2|0:i)+-30|0;c=3-((u?(c&65535)+4|0:0-(r&65535)|0)<<16>>16)|0;u=n<<16>>16;s=u>>2;if((s|0)>0){a=0;r=i;l=0;do{n=8192;t=8192;f=8192;o=8192;i=0;while(1){B=i+1|0;d=i+2|0;b=A[7362+(c<<6)+(i<<1)>>1]|0;k=(R(b,A[r+(i<<1)>>1]|0)|0)+n|0;h=A[r+(B<<1)>>1]|0;g=(R(b,h)|0)+t|0;B=A[7362+(c<<6)+(B<<1)>>1]|0;h=k+(R(B,h)|0)|0;k=A[r+(d<<1)>>1]|0;g=g+(R(B,k)|0)|0;v=(R(b,k)|0)+o|0;d=A[7362+(c<<6)+(d<<1)>>1]|0;k=h+(R(d,k)|0)|0;h=i+3|0;w=i+4|0;E=A[r+(h<<1)>>1]|0;b=(R(E,b)|0)+f|0;v=v+(R(E,B)|0)|0;g=g+(R(E,d)|0)|0;h=A[7362+(c<<6)+(h<<1)>>1]|0;n=k+(R(h,E)|0)|0;E=A[r+(w<<1)>>1]|0;B=b+(R(E,B)|0)|0;t=g+(R(h,E)|0)|0;E=v+(R(E,d)|0)|0;v=A[r+(i+5<<1)>>1]|0;o=E+(R(v,h)|0)|0;f=B+(R(v,d)|0)+(R(A[r+(i+6<<1)>>1]|0,h)|0)|0;i=w<<16;if((i|0)>=2097152)break;else i=i>>16}k=l<<2;A[e+(k<<1)>>1]=n>>>14;A[e+((k|1)<<1)>>1]=t>>>14;A[e+((k|2)<<1)>>1]=o>>>14;A[e+((k|3)<<1)>>1]=f>>>14;r=r+8|0;a=a+1<<16>>16;l=a<<16>>16}while((s|0)>(l|0));i=l<<2}else{r=i;i=0}if(!(u&1))return;k=(R(A[7362+(c<<6)>>1]|0,A[r>>1]|0)|0)+8192|0;k=k+(R(A[7362+(c<<6)+2>>1]|0,A[r+2>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+4>>1]|0,A[r+4>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+6>>1]|0,A[r+6>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+8>>1]|0,A[r+8>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+10>>1]|0,A[r+10>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+12>>1]|0,A[r+12>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+14>>1]|0,A[r+14>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+16>>1]|0,A[r+16>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+18>>1]|0,A[r+18>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+20>>1]|0,A[r+20>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+22>>1]|0,A[r+22>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+24>>1]|0,A[r+24>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+26>>1]|0,A[r+26>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+28>>1]|0,A[r+28>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+30>>1]|0,A[r+30>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+32>>1]|0,A[r+32>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+34>>1]|0,A[r+34>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+36>>1]|0,A[r+36>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+38>>1]|0,A[r+38>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+40>>1]|0,A[r+40>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+42>>1]|0,A[r+42>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+44>>1]|0,A[r+44>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+46>>1]|0,A[r+46>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+48>>1]|0,A[r+48>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+50>>1]|0,A[r+50>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+52>>1]|0,A[r+52>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+54>>1]|0,A[r+54>>1]|0)|0)|0;k=(R(A[7362+(c<<6)+56>>1]|0,A[r+56>>1]|0)|0)+k|0;k=k+(R(A[7362+(c<<6)+58>>1]|0,A[r+58>>1]|0)|0)|0;k=k+(R(A[7362+(c<<6)+60>>1]|0,A[r+60>>1]|0)|0)|0;A[e+(i<<1)>>1]=(k+(R(A[7362+(c<<6)+62>>1]|0,A[r+62>>1]|0)|0)|0)>>>14;return}function Ai(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0;n=(r&65535)+65535|0;r=n&65535;if(!(r<<16>>16))return;t=i<<16>>16;i=r;r=n<<16>>16;while(1){n=e+(r<<1)|0;f=o[n>>1]<<16;a=R(A[e+(r+-1<<1)>>1]|0,t)|0;a=(a|0)==1073741824?2147483647:a<<1;r=f-a|0;r=((r^f)&(a^f)|0)<0?f>>31^2147483647:r;A[n>>1]=(r|0)==2147483647?32767:(r+32768|0)>>>16&65535;r=i+-1<<16>>16;if(!(r<<16>>16))break;else{i=r;r=r<<16>>16}}return}function ti(e,i,r){e=e|0;i=i|0;r=r|0;t[r>>2]=i+1520;Pe(i+1150|0,7618)|0;fi(i,1);t[e>>2]=i;return}function fi(e,i){e=e|0;i=i|0;var r=0,f=0;Ki(e|0,0,496)|0;f=e+656|0;t[f>>2]=0;t[f+4>>2]=0;t[f+8>>2]=0;t[f+12>>2]=0;t[f+16>>2]=0;t[f+20>>2]=0;t[f+24>>2]=0;t[f+28>>2]=0;A[e+1056>>1]=0;A[e+1054>>1]=64;A[e+1148>>1]=1;t[e+700>>2]=0;A[e+688>>1]=0;f=e+1116|0;t[f>>2]=0;t[f+4>>2]=0;t[f+8>>2]=0;t[f+12>>2]=0;A[e+690>>1]=8;A[e+698>>1]=8;A[e+696>>1]=8;A[e+694>>1]=8;A[e+692>>1]=8;if(!(i<<16>>16))return;Qe(e+1068|0);Ze(e+782|0);we(e+870|0);je(e+990|0);He(e+770|0);Re(e+1132|0);Ye(e+1058|0);r=e+496|0;i=7650;f=r+32|0;do{n[r>>0]=n[i>>0]|0;r=r+1|0;i=i+1|0}while((r|0)<(f|0));r=e+528|0;i=7618;f=r+32|0;do{n[r>>0]=n[i>>0]|0;r=r+1|0;i=i+1|0}while((r|0)<(f|0));r=e+560|0;i=7618;f=r+32|0;do{n[r>>0]=n[i>>0]|0;r=r+1|0;i=i+1|0}while((r|0)<(f|0));r=e+592|0;i=7618;f=r+32|0;do{n[r>>0]=n[i>>0]|0;r=r+1|0;i=i+1|0}while((r|0)<(f|0));r=e+624|0;i=7618;f=r+32|0;do{n[r>>0]=n[i>>0]|0;r=r+1|0;i=i+1|0}while((r|0)<(f|0));A[e+768>>1]=0;A[e+1050>>1]=21845;A[e+1052>>1]=21845;A[e+1114>>1]=21845;A[e+1146>>1]=0;A[e+1144>>1]=0;r=e+830|0;f=r+40|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(f|0));i=e+1150|0;r=e+704|0;f=r+64|0;do{t[r>>2]=0;r=r+4|0}while((r|0)<(f|0));Pe(i,7618)|0;A[e+1518>>1]=0;return}function oi(){return 4392}function ai(e,i,r,f,a,s,l){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;s=s|0;l=l|0;var u=0,c=0,w=0,v=0,B=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,oe=0,ae=0,se=0,le=0,ue=0,we=0,he=0,Be=0,Ee=0,ge=0,be=0,ke=0,De=0,Qe=0,ye=0,Pe=0,pe=0,Re=0,Oe=0,He=0,Ue=0,Ne=0,Se=0,_e=0,Ge=0,Ye=0,je=0,Je=0,Ke=0,We=0,Ze=0,$e=0,ei=0,ti=0,fi=0,oi=0,ai=0,si=0;si=h;h=h+32|0;if((h|0)>=(d|0))X(32);We=si;Ze=si+4|0;$e=si+16|0;Je=si+10|0;Ke=si+8|0;t[We>>2]=i;c=l+692|0;D=l+1702|0;B=l+1838|0;ti=l+1870|0;fi=l+1902|0;_e=l+1934|0;Ge=l+2062|0;ei=l+2190|0;oi=l+2702|0;g=e<<16>>16;ai=A[7682+(g<<1)>>1]|0;A[f>>1]=320;Se=a+1150|0;v=me(Se,s)|0;u=v<<16>>16!=0;if(u)Te(Se,ei,v,ti,We)|0;switch(s<<16>>16){case 1:case 3:{i=0;b=5;break}case 2:case 7:{i=1;b=5;break}default:{Ne=a+1146|0;i=0;je=0;f=A[Ne>>1]>>1;Ue=0}}if((b|0)==5){Ne=a+1146|0;Ue=(A[Ne>>1]|0)+1|0;f=Ue&65535;A[Ne>>1]=f;je=1;f=(Ue<<16|0)>393216?6:f;Ue=1}A[Ne>>1]=f;Ye=a+1510|0;switch(A[Ye>>1]|0){case 1:{f=0;b=9;break}case 2:{f=1;b=9;break}default:}if((b|0)==9){A[Ne>>1]=5;A[a+1144>>1]=f}do{if(v<<16>>16==0?(w=Fe(We)|0,je<<16>>16==0):0){f=a+1518|0;if(!(w<<16>>16)){Oe=(A[f>>1]|0)+1|0;He=Oe>>31;A[f>>1]=(Oe>>15|0)==(He|0)?Oe:He^32767;break}else{A[f>>1]=0;break}}}while(0);if(u){xe(ti,B,16);Xe(B,D,16,1);f=a+528|0;k=fi;s=f;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));i=0;do{Ze=A[fi+(i<<1)>>1]|0;Ze=(Ze*18021|0)==1073741824?2147483647:Ze*36042|0;We=A[ti+(i<<1)>>1]|0;We=(We*14746|0)==1073741824?2147483647:We*29492|0;$e=Ze+We|0;$e=(Ze^We|0)>-1&($e^Ze|0)<0?Ze>>31^2147483647:$e;A[oi+(i<<1)>>1]=($e|0)==2147483647?32767:($e+32768|0)>>>16&65535;i=i+1|0}while((i|0)!=16);Ci(D,ei,0,r,1,oi,ai,v,a,je,l);i=0;do{$e=A[fi+(i<<1)>>1]|0;$e=($e*6553|0)==1073741824?2147483647:$e*13106|0;Ze=A[ti+(i<<1)>>1]|0;Ze=(Ze*26214|0)==1073741824?2147483647:Ze*52428|0;ei=$e+Ze|0;ei=($e^Ze|0)>-1&(ei^$e|0)<0?$e>>31^2147483647:ei;A[oi+(i<<1)>>1]=(ei|0)==2147483647?32767:(ei+32768|0)>>>16&65535;i=i+1|0}while((i|0)!=16);Ci(D,l+2318|0,0,r+160|0,1,oi,ai,v,a,je,l);i=0;do{$e=A[fi+(i<<1)>>1]|0;$e=($e*1310|0)==1073741824?2147483647:$e*2620|0;Ze=A[ti+(i<<1)>>1]|0;Ze=(Ze*31457|0)==1073741824?2147483647:Ze*62914|0;ei=$e+Ze|0;ei=($e^Ze|0)>-1&(ei^$e|0)<0?$e>>31^2147483647:ei;A[oi+(i<<1)>>1]=(ei|0)==2147483647?32767:(ei+32768|0)>>>16&65535;i=i+1|0}while((i|0)!=16);Ci(D,l+2446|0,0,r+320|0,1,oi,ai,v,a,je,l);k=A[ti>>1]|0;A[oi>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1872>>1]|0;A[l+2704>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1874>>1]|0;A[l+2706>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1876>>1]|0;A[l+2708>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1878>>1]|0;A[l+2710>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1880>>1]|0;A[l+2712>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1882>>1]|0;A[l+2714>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1884>>1]|0;A[l+2716>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1886>>1]|0;A[l+2718>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1888>>1]|0;A[l+2720>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1890>>1]|0;A[l+2722>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1892>>1]|0;A[l+2724>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1894>>1]|0;A[l+2726>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1896>>1]|0;A[l+2728>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1898>>1]|0;A[l+2730>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;k=A[l+1900>>1]|0;A[l+2732>>1]=(k*32767|0)==1073741824?32767:((k*65534|0)+32768|0)>>>16&65535;Ci(D,l+2574|0,0,r+480|0,1,oi,ai,v,a,je,l);Ki(a|0,0,496)|0;k=a+656|0;t[k>>2]=0;t[k+4>>2]=0;t[k+8>>2]=0;t[k+12>>2]=0;t[k+16>>2]=0;t[k+20>>2]=0;t[k+24>>2]=0;t[k+28>>2]=0;A[a+1056>>1]=0;A[a+1054>>1]=64;A[a+1148>>1]=1;t[a+700>>2]=0;A[a+688>>1]=0;k=a+1116|0;t[k>>2]=0;t[k+4>>2]=0;t[k+8>>2]=0;t[k+12>>2]=0;A[a+690>>1]=8;A[a+698>>1]=8;A[a+696>>1]=8;A[a+694>>1]=8;A[a+692>>1]=8;k=f;s=ti;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));A[a+1144>>1]=je;A[Ye>>1]=v;h=si;return 0}Ji(c|0,a|0,496)|0;Oe=l+1188|0;A[$e>>1]=Ie(8,We)|0;He=$e+2|0;A[He>>1]=Ie(8,We)|0;switch(e<<16>>16){case 0:case 9:{Re=Ie(14,We)|0;A[$e+6>>1]=Re&127;A[$e+4>>1]=Re<<16>>16>>7;A[$e+8>>1]=Ie(6,We)|0;Di($e,ti,a+656|0,a+528|0,a+560|0,je,1);break}default:{A[$e+4>>1]=Ie(6,We)|0;A[$e+6>>1]=Ie(7,We)|0;A[$e+8>>1]=Ie(7,We)|0;A[$e+10>>1]=Ie(5,We)|0;A[$e+12>>1]=Ie(5,We)|0;bi($e,ti,a+656|0,a+528|0,a+560|0,je,1)}}xe(ti,B,16);f=a+1148|0;if(!(A[f>>1]|0)){s=B;f=a+496|0}else{A[f>>1]=0;f=a+496|0;k=f;s=B;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));s=B}Le(f,B,7702,D);k=f;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));u=a+528|0;f=0;s=0;do{Re=(A[ti+(s<<1)>>1]|0)-(A[u+(s<<1)>>1]|0)|0;pe=Re>>31;pe=((Re>>15|0)==(pe|0)?Re:pe^32767)<<16>>16;pe=R(pe,pe)|0;pe=(pe|0)==1073741824?2147483647:pe<<1;Re=pe+f|0;f=(pe^f|0)>-1&(Re^f|0)<0?f>>31^2147483647:Re;s=s+1|0}while((s|0)!=15);c=f<<8;f=(((c>>8|0)==(f|0)?c:f>>31^2147418112)>>16)*26214|0;c=f>>31;c=20480-((f>>30|0)==(c|0)?f>>>15:c^32767)|0;f=c<<16;f=(c<<17>>17|0)==(f>>16|0)?c<<1:f>>31^32767;c=(f&65535)<<16>>16>0;k=fi;s=u;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));k=u;s=ti;b=k+32|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));he=(g+-2|0)>>>0>6;Be=a+1102|0;Ee=a+1058|0;ge=a+1054|0;be=a+1114|0;ke=i<<16>>16==0;we=ke^1;ue=we&1;De=(g+-3|0)>>>0>5;Qe=(g+-4|0)>>>0>4;ye=$e+4|0;Pe=$e+6|0;pe=(g+-5|0)>>>0>3;Re=(g+-6|0)>>>0>2;W=(g+-7|0)>>>0>1;V=$e+8|0;q=$e+10|0;Z=$e+12|0;$=$e+14|0;ee=a+688|0;ie=a+1144|0;re=a+1518|0;ne=a+1068|0;Ae=a+692|0;te=a+690|0;fe=je<<16>>16==0;oe=a+696|0;ae=a+698|0;se=a+694|0;le=a+1116|0;m=c?f&65535:0;I=a+700|0;F=l+1936|0;O=l+2060|0;H=l+2058|0;U=l+2316|0;N=a+830|0;S=e<<16>>16==8;_=a+1056|0;L=a+1050|0;G=a+694|0;x=a+696|0;Y=a+698|0;z=a+1064|0;j=a+1066|0;J=a+1062|0;K=a+1060|0;M=D;f=0;T=0;p=0;while(1){e:do{switch(T<<16>>16){case 128:switch(e<<16>>16){case 0:case 9:if(he){b=43;break e}else{b=44;break e}default:if(he){b=33;break e}else{b=36;break e}}case 0:{if(he)b=33;else b=36;break}default:if(he)b=43;else b=44}}while(0);do{if((b|0)==33){P=Ie(8,We)|0;f=P<<16>>16;if(P<<16>>16<116){u=(f>>>1)+34|0;s=u&65535;A[Je>>1]=s;u=(u<<16>>16)+-34|0;b=u>>31;b=(u>>15|0)==(b|0)?u:b^32767;u=b<<16;f=f-(((b<<17>>17|0)==(u>>16|0)?b<<1:u>>31^32767)<<16>>16)|0;u=f>>31;u=(f>>15|0)==(u|0)?f:u^32767;f=u<<16;f=((u<<17>>17|0)==(f>>16|0)?u<<1:f>>31^32767)&65535;u=1;b=41;break}else{f=f+-24|0;s=f>>31;s=((f>>15|0)==(s|0)?f:s^32767)&65535;A[Je>>1]=s;f=0;u=1;b=41;break}}else if((b|0)==36){f=Ie(9,We)|0;s=f<<16>>16;if(f<<16>>16<376){u=(s>>>2)+34|0;b=u&65535;A[Je>>1]=b;u=(u<<16>>16)+-34|0;f=u>>31;f=(u>>15|0)==(f|0)?u:f^32767;u=f<<16;u=s-(((f<<18>>18|0)==(u>>16|0)?f<<2:u>>31^32767)<<16>>16)|0;f=u>>31;f=((u>>15|0)==(f|0)?u:f^32767)&65535;u=0;s=b;b=41;break}if(f<<16>>16<440){u=(s<<16)+-24641536|0;f=u>>17;s=f+128&65535;A[Je>>1]=s;f=(u>>16)-(f<<1)|0;u=f>>31;u=(f>>15|0)==(u|0)?f:u^32767;f=u<<16;f=((u<<17>>17|0)==(f>>16|0)?u<<1:f>>31^32767)&65535;u=0;b=41;break}else{f=s+-280|0;s=f>>31;s=((f>>15|0)==(s|0)?f:s^32767)&65535;A[Je>>1]=s;f=0;u=0;b=41;break}}else if((b|0)==43){b=0;y=(Ie(5,We)|0)<<16>>16;P=y>>>1;s=P+(f&65535)&65535;A[Je>>1]=s;u=P<<16;u=y-(((P<<17>>17|0)==(u>>16|0)?y&65534:u>>31^32767)<<16>>16)|0;y=u>>31;y=(u>>15|0)==(y|0)?u:y^32767;u=y<<16;P=f;f=((y<<17>>17|0)==(u>>16|0)?y<<1:u>>31^32767)&65535;u=1}else if((b|0)==44){b=0;u=(Ie(6,We)|0)<<16>>16;P=u>>>2;s=P+(f&65535)&65535;A[Je>>1]=s;y=P<<16;y=u-(((P<<18>>18|0)==(y>>16|0)?u&65532:y>>31^32767)<<16>>16)|0;u=y>>31;P=f;f=((y>>15|0)==(u|0)?y:u^32767)&65535;u=0}}while(0);if((b|0)==41){P=(s&65535)+65528|0;P=(P<<16|0)<2228224?34:P&65535;P=(((P&65535)<<16)+983040|0)>15138816?216:P}if(Ue){ze(Be,Ee,Je,ge,be,i);w=0;f=A[Je>>1]|0}else{w=f;f=s}C=Oe+(p<<1)|0;ni(C,f,w,65);if(u|we)f=ue;else f=Fe(We)|0;if(!(f<<16>>16)){f=p+-1|0;s=p+1|0;c=0;do{A[_e+(c<<1)>>1]=(((((A[Oe+(s+c<<1)>>1]|0)+(A[Oe+(f+c<<1)>>1]|0)|0)*5898|0)+((A[Oe+(c+p<<1)>>1]|0)*20972|0)<<1)+32768|0)>>>16;c=c+1|0}while((c|0)!=64);k=C;s=_e;b=k+128|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0))}e:do{if(ke){switch(e<<16>>16){case 0:case 9:{y=Ie(12,We)|0;A[$e>>1]=y;de(y,_e);break e}default:}if(u){A[$e>>1]=Ie(5,We)|0;A[He>>1]=Ie(5,We)|0;A[ye>>1]=Ie(5,We)|0;A[Pe>>1]=Ie(5,We)|0;ve($e,20,_e);break}if(De){A[$e>>1]=Ie(9,We)|0;A[He>>1]=Ie(9,We)|0;A[ye>>1]=Ie(9,We)|0;A[Pe>>1]=Ie(9,We)|0;ve($e,36,_e);break}if(Qe){A[$e>>1]=Ie(13,We)|0;A[He>>1]=Ie(13,We)|0;A[ye>>1]=Ie(9,We)|0;A[Pe>>1]=Ie(9,We)|0;ve($e,44,_e);break}if(pe){A[$e>>1]=Ie(13,We)|0;A[He>>1]=Ie(13,We)|0;A[ye>>1]=Ie(13,We)|0;A[Pe>>1]=Ie(13,We)|0;ve($e,52,_e);break}if(Re){A[$e>>1]=Ie(2,We)|0;A[He>>1]=Ie(2,We)|0;A[ye>>1]=Ie(2,We)|0;A[Pe>>1]=Ie(2,We)|0;A[V>>1]=Ie(14,We)|0;A[q>>1]=Ie(14,We)|0;A[Z>>1]=Ie(14,We)|0;A[$>>1]=Ie(14,We)|0;ve($e,64,_e);break}if(W){A[$e>>1]=Ie(10,We)|0;A[He>>1]=Ie(10,We)|0;A[ye>>1]=Ie(2,We)|0;A[Pe>>1]=Ie(2,We)|0;A[V>>1]=Ie(10,We)|0;A[q>>1]=Ie(10,We)|0;A[Z>>1]=Ie(14,We)|0;A[$>>1]=Ie(14,We)|0;ve($e,72,_e);break}else{A[$e>>1]=Ie(11,We)|0;A[He>>1]=Ie(11,We)|0;A[ye>>1]=Ie(11,We)|0;A[Pe>>1]=Ie(11,We)|0;A[V>>1]=Ie(11,We)|0;A[q>>1]=Ie(11,We)|0;A[Z>>1]=Ie(11,We)|0;A[$>>1]=Ie(11,We)|0;ve($e,88,_e);break}}else{f=0;do{A[_e+(f<<1)>>1]=(Ve(L)|0)<<16>>16>>3;f=f+1|0}while((f|0)!=64)}}while(0);Ai(_e,A[ee>>1]|0,64);ri(_e,(A[Je>>1]|0)+(w<<16>>16>2&1)<<16>>16,27853,64);if(u){y=Ie(6,We)|0;Ce(y,6,_e,64,Ke,Ze,je,A[ie>>1]|0,A[Ne>>1]|0,i,A[re>>1]|0,ne)}else{y=Ie(7,We)|0;Ce(y,7,_e,64,Ke,Ze,je,A[ie>>1]|0,A[Ne>>1]|0,i,A[re>>1]|0,ne)}y=A[Ae>>1]|0;w=A[G>>1]|0;y=w<<16>>16<y<<16>>16?w:y;w=A[x>>1]|0;y=w<<16>>16<y<<16>>16?w:y;w=A[Y>>1]|0;y=w<<16>>16<y<<16>>16?w:y;w=y<<16>>16<8?y:8;f=t[Ze>>2]|0;if(y<<16>>16>0&(f|0)<134217728){s=0;do{f=f<<1;s=(s&65535)+1|0;c=s&65535}while((f|0)<134217728?w<<16>>16>c<<16>>16:0)}else c=0;g=(f|0)==2147483647?32767:(f+32768|0)>>>16&65535;y=c&65535;Qi(C+-496|0,312,y-(o[te>>1]|0)&65535);A[te>>1]=c;if(fe){A[j>>1]=A[z>>1]|0;A[z>>1]=A[J>>1]|0;A[J>>1]=A[K>>1]|0;A[K>>1]=A[Ee>>1]|0;f=A[Je>>1]|0;A[Ee>>1]=f;A[ge>>1]=f;A[_>>1]=0;f=63}else f=63;while(1){Q=A[Oe+(f+p<<1)>>1]|0;A[ei+(f<<1)>>1]=(((Q<<16>>16!=32767&1)<<2)+(Q<<16>>16)|0)>>>3;if((f|0)>0)f=f+-1|0;else break}B=A[Ke>>1]|0;if(u){v=B<<16>>16;f=(v<<17>>17|0)==(v|0)?v<<1:v>>>15^32767;w=f&65535;if(w<<16>>16>16384){f=f<<16>>16;s=0;do{D=R(f,A[ei+(s<<1)>>1]|0)|0;Q=D>>31;Q=R(((D>>30|0)==(Q|0)?D>>>15:Q^32767)<<16>>16,v)|0;A[Ge+(s<<1)>>1]=(Q|0)==1073741824?16384:((Q<<1>>1)+32768|0)>>>16&65535;s=s+1|0}while((s|0)!=64);Q=w}else Q=w}else Q=0;D=(yi(ei,-3,B,_e,g,64)|0)<<16>>16;A[ee>>1]=(D>>>2)+8192;k=ei;s=C;b=k+128|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0));f=g<<16>>16;s=A[Ke>>1]|0;v=1;w=0;do{b=R(A[_e+(w<<1)>>1]|0,f)|0;b=(b|0)==1073741824?2147483647:b<<1;k=b<<5;b=(k>>5|0)==(b|0)?k:b>>31^2147483647;k=Oe+(w+p<<1)|0;g=R(s,A[k>>1]|0)|0;g=(g|0)==1073741824?2147483647:g<<1;C=b+g|0;C=(b^g|0)>-1&(C^b|0)<0?b>>31^2147483647:C;b=C<<1;C=(b>>1|0)==(C|0)?b:C>>31^2147483647;C=(C|0)==2147483647?32767:(C+32768|0)>>>16&65535;A[k>>1]=C;C=(C&65535)-((C&65535)>>>15&65535)<<16;v=C>>16^C>>31|v;w=w+1|0}while((w|0)!=64);B=c<<16>>16;k=((((qe(v)|0)&65535)<<16)+-1048576>>16)+B|0;C=k>>31;A[ae>>1]=A[oe>>1]|0;A[oe>>1]=A[se>>1]|0;A[se>>1]=A[Ae>>1]|0;A[Ae>>1]=((k>>15|0)==(C|0)?k:C^32767)+65535;switch(e<<16>>16){case 0:case 9:{f=0;break}default:f=u?1:2}ii((t[Ze>>2]|0)>>>16&65535,A[Ke>>1]|0,_e,f,le,l);w=R(16384-(D>>>1)<<16>>16,m)|0;s=w>>31;s=(w>>30|0)==(s|0)?w>>>15:s^32767;w=t[Ze>>2]|0;f=t[I>>2]|0;v=((w|0)<0)<<31>>31;if((w|0)<(f|0)){C=Yi(w|0,v|0,408027136,0)|0;C=zi(C|0,E|0,31)|0;C=(C&-2)+w|0;f=(C|0)>(f|0)?f:C}else{C=Yi(w|0,v|0,1804599296,0)|0;C=zi(C|0,E|0,31)|0;C=C&-2;f=(C|0)<(f|0)?f:C}t[I>>2]=f;k=s<<16;C=32767-s<<16;C=Yi(w|0,v|0,C|0,((C|0)<0)<<31>>31|0)|0;C=zi(C|0,E|0,31)|0;b=E;k=Yi(f|0,((f|0)<0)<<31>>31|0,k|0,((k|0)<0)<<31>>31|0)|0;k=zi(k|0,E|0,31)|0;f=(C&-2)+(k&-2)|0;f=(C^k|0)>-1&(f^C|0)<0?C>>31^2147483647:f;t[Ze>>2]=f;if(c<<16>>16>0){C=f<<B;f=(C>>B|0)==(f|0)?C:f>>31^2147483647}else f=f>>(0-B&15);B=A[_e>>1]|0;s=(B&65535)<<16;w=A[F>>1]|0;b=(D>>>3<<16)+268435456>>16;D=R(b,w<<16>>16)|0;D=(D|0)==1073741824?2147483647:D<<1;C=s-D|0;C=((C^s)&(D^s)|0)<0?s>>31^2147483647:C;f=(f|0)==2147483647?32767:f+32768>>16;C=R((C|0)==2147483647?32767:C+32768>>16,f)|0;C=(C|0)==1073741824?2147483647:C<<1;s=C<<5;C=(s>>5|0)==(C|0)?s:C>>31^2147483647;s=A[Ke>>1]|0;D=R(s,A[ei>>1]|0)|0;D=(D|0)==1073741824?2147483647:D<<1;g=C+D|0;g=(C^D|0)>-1&(g^C|0)<0?C>>31^2147483647:g;C=g<<1;g=(C>>1|0)==(g|0)?C:g>>31^2147483647;A[ei>>1]=(g|0)==2147483647?32767:(g+32768|0)>>>16&65535;g=1;while(1){D=(w&65535)<<16;C=g;g=g+1|0;v=A[_e+(g<<1)>>1]|0;B=R((B&65535)+(v&65535)<<16>>16,b)|0;B=(B|0)==1073741824?2147483647:B<<1;k=D-B|0;k=((k^D)&(B^D)|0)<0?D>>31^2147483647:k;k=R((k|0)==2147483647?32767:k+32768>>16,f)|0;k=(k|0)==1073741824?2147483647:k<<1;B=k<<5;k=(B>>5|0)==(k|0)?B:k>>31^2147483647;C=ei+(C<<1)|0;B=R(s,A[C>>1]|0)|0;B=(B|0)==1073741824?2147483647:B<<1;D=k+B|0;D=(k^B|0)>-1&(D^k|0)<0?k>>31^2147483647:D;k=D<<1;D=(k>>1|0)==(D|0)?k:D>>31^2147483647;A[C>>1]=(D|0)==2147483647?32767:(D+32768|0)>>>16&65535;if((g|0)==63)break;else{B=w;w=v}}k=o[O>>1]<<16;C=R(b,A[H>>1]|0)|0;C=(C|0)==1073741824?2147483647:C<<1;D=k-C|0;D=((D^k)&(C^k)|0)<0?k>>31^2147483647:D;D=R((D|0)==2147483647?32767:D+32768>>16,f)|0;D=(D|0)==1073741824?2147483647:D<<1;k=D<<5;D=(k>>5|0)==(D|0)?k:D>>31^2147483647;k=R(s,A[U>>1]|0)|0;k=(k|0)==1073741824?2147483647:k<<1;C=D+k|0;C=(D^k|0)>-1&(C^D|0)<0?D>>31^2147483647:C;D=C<<1;C=(D>>1|0)==(C|0)?D:C>>31^2147483647;A[U>>1]=(C|0)==2147483647?32767:(C+32768|0)>>>16&65535;if(u&Q<<16>>16>16384){f=0;do{C=Ge+(f<<1)|0;D=(A[ei+(f<<1)>>1]|0)+(A[C>>1]|0)|0;Q=D>>31;A[C>>1]=(D>>15|0)==(Q|0)?D:Q^32767;f=f+1|0}while((f|0)!=64);ce(ei,Ge,64);k=ei;s=Ge;b=k+128|0;do{n[k>>0]=n[s>>0]|0;k=k+1|0;s=s+1|0}while((k|0)<(b|0))}switch(e<<16>>16){case 0:case 9:{f=A[7702+(T<<16>>16>>6<<16>>16<<1)>>1]|0;u=32767-f|0;s=u>>31;s=((u>>15|0)==(s|0)?u:s^32767)<<16>>16;u=0;do{C=R(s,A[fi+(u<<1)>>1]|0)|0;C=(C|0)==1073741824?2147483647:C<<1;Q=R(A[ti+(u<<1)>>1]|0,f)|0;Q=(Q|0)==1073741824?2147483647:Q<<1;T=C+Q|0;T=(C^Q|0)>-1&(T^C|0)<0?C>>31^2147483647:T;A[oi+(u<<1)>>1]=(T|0)==2147483647?32767:(T+32768|0)>>>16&65535;u=u+1|0}while((u|0)!=16);break}default:{T=N;C=T;A[C>>1]=0;A[C+2>>1]=0>>>16;T=T+4|0;A[T>>1]=0;A[T+2>>1]=0>>>16}}if(S)f=Ie(4,We)|0;else f=0;Ci(M,ei,c,r+((p>>2)+p<<1)|0,f,oi,ai,0,a,je,l);s=p+64|0;T=s&65535;if(T<<16>>16>=256)break;else{M=M+34|0;f=P;p=s<<16>>16}}Ji(a|0,l+1204|0,496)|0;Qi(Oe,256,0-y&65535);Me(Se,ti,Oe);A[Ye>>1]=0;A[ie>>1]=je;h=si;return 0}function si(e,i){e=e|0;i=i|0;e=(R(i<<16>>16,e<<16>>16)|0)+16384|0;i=e>>31;return((e>>30|0)==(i|0)?e>>>15:i^32767)&65535|0}function li(e,i){e=e|0;i=i|0;var r=0,n=0;e=e<<16>>16;r=i<<16>>16;n=e>>(r&15)&65535;if(!(i<<16>>16))return n|0;else return((1<<r+-1&e|0)!=0&1)+n<<16>>16|0}function ui(e,i){e=e|0;i=i|0;var r=0,n=0,A=0,t=0,f=0;r=i<<16>>16;if(e<<16>>16<1?1:e<<16>>16>i<<16>>16){r=0;return r|0}if(e<<16>>16==i<<16>>16){r=32767;return r|0}i=r<<1;n=r<<2;e=e<<16>>16<<3;A=(e|0)<(n|0);e=e-(A?0:n)|0;A=A?0:4;f=(e|0)<(i|0);e=e-(f?0:i)|0;t=(e|0)<(r|0);A=((f?A:A|2)|(t^1)&1)<<3;t=e-(t?0:r)<<3;e=(t|0)<(n|0);t=t-(e?0:n)|0;A=e?A:A|4;e=(t|0)<(i|0);t=t-(e?0:i)|0;f=(t|0)<(r|0);A=((e?A:A|2)|(f^1)&1)<<16>>13;f=t-(f?0:r)<<3;t=(f|0)<(n|0);f=f-(t?0:n)|0;A=t?A:A&65528|4;t=(f|0)<(i|0);f=f-(t?0:i)|0;e=(f|0)<(r|0);A=((t?A:A|2)|(e^1)&1)<<16>>13;e=f-(e?0:r)<<3;f=(e|0)<(n|0);e=e-(f?0:n)|0;A=f?A:A&65528|4;f=(e|0)<(i|0);e=e-(f?0:i)|0;t=(e|0)<(r|0);A=((f?A:A|2)|(t^1)&1)<<16>>13;t=e-(t?0:r)<<3;e=(t|0)<(n|0);n=t-(e?0:n)|0;A=e?A:A&65528|4;e=(n|0)<(i|0);r=((e?A:A|2)|(n-(e?0:i)|0)>=(r|0))&65535;return r|0}function ci(e){e=e|0;var i=0,r=0,n=0,A=0,t=0;i=qe(e)|0;e=e<<(i<<16>>16);do{if((e|0)<1){e=0;i=2147483647}else{A=e>>>(1-i&1);e=((31-(i&65535)<<16>>16)+131071|0)>>>1;r=0-e|0;i=(A>>25<<16)+-1048576>>16;t=o[7842+(i<<1)>>1]|0;n=t<<16;A=R(t-(o[7842+(i+1<<1)>>1]|0)<<16>>16,A>>>10&32767)|0;A=(A|0)==1073741824?2147483647:A<<1;i=n-A|0;i=((i^n)&(A^n)|0)<0?n>>31^2147483647:i;if((e&65535)<<16>>16!=-32768){e=r<<16>>16;if((r&65535)<<16>>16<=0)break}else e=32767;t=i<<e;t=(t>>e|0)==(i|0)?t:i>>31^2147483647;return t|0}}while(0);t=i>>(0-e&15);return t|0}function wi(e,i){e=e|0;i=i|0;var r=0,n=0,f=0;r=t[e>>2]|0;if((r|0)<1){A[i>>1]=0;n=2147483647;t[e>>2]=n;return}n=A[i>>1]|0;if(n&1){r=r>>>1;t[e>>2]=r}n=((n<<16>>16)+131071|0)>>>1;A[i>>1]=(n&65535)<<16>>16==-32768?32767:0-n&65535;n=(r>>25<<16)+-1048576>>16;f=o[7842+(n<<1)>>1]|0;i=f<<16;t[e>>2]=i;r=R(f-(o[7842+(n+1<<1)>>1]|0)<<16>>16,r>>>10&32767)|0;r=(r|0)==1073741824?2147483647:r<<1;n=i-r|0;n=((n^i)&(r^i)|0)<0?i>>31^2147483647:n;t[e>>2]=n;return}function hi(e,i){e=e|0;i=i|0;var r=0,n=0;r=i<<16>>16>>10<<16>>16;n=A[7710+(r<<1)>>1]|0;r=(n<<15)-(R(n-(o[7710+(r+1<<1)>>1]|0)<<16>>16,i<<16>>16<<5&32736)|0)|0;e=29-(e&65535)|0;i=e<<16>>16;return((e&65535)<<16>>16==0?r:(r>>>(i+-1|0)&1)+(r>>i)|0)|0}function di(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0;t=r<<16>>16>>3;if(!(t<<16>>16)){t=1;i=qe(t)|0;i=i<<16>>16;t=t<<i;i=30-i|0;i=i&65535;A[n>>1]=i;return t|0}else r=1;while(1){o=R(A[i>>1]|0,A[e>>1]|0)|0;o=(o|0)==1073741824?2147483647:o<<1;f=o+r|0;f=(o^r|0)>-1&(f^r|0)<0?r>>31^2147483647:f;o=R(A[i+2>>1]|0,A[e+2>>1]|0)|0;o=(o|0)==1073741824?2147483647:o<<1;r=f+o|0;r=(f^o|0)>-1&(r^f|0)<0?f>>31^2147483647:r;f=R(A[i+4>>1]|0,A[e+4>>1]|0)|0;f=(f|0)==1073741824?2147483647:f<<1;o=r+f|0;o=(r^f|0)>-1&(o^r|0)<0?r>>31^2147483647:o;r=R(A[i+6>>1]|0,A[e+6>>1]|0)|0;r=(r|0)==1073741824?2147483647:r<<1;f=o+r|0;f=(o^r|0)>-1&(f^o|0)<0?o>>31^2147483647:f;o=R(A[i+8>>1]|0,A[e+8>>1]|0)|0;o=(o|0)==1073741824?2147483647:o<<1;r=f+o|0;r=(f^o|0)>-1&(r^f|0)<0?f>>31^2147483647:r;f=R(A[i+10>>1]|0,A[e+10>>1]|0)|0;f=(f|0)==1073741824?2147483647:f<<1;o=r+f|0;o=(r^f|0)>-1&(o^r|0)<0?r>>31^2147483647:o;r=R(A[i+12>>1]|0,A[e+12>>1]|0)|0;r=(r|0)==1073741824?2147483647:r<<1;f=o+r|0;f=(o^r|0)>-1&(f^o|0)<0?o>>31^2147483647:f;o=R(A[i+14>>1]|0,A[e+14>>1]|0)|0;o=(o|0)==1073741824?2147483647:o<<1;r=f+o|0;r=(f^o|0)>-1&(r^f|0)<0?f>>31^2147483647:r;t=t+-1<<16>>16;if(!(t<<16>>16))break;else{e=e+16|0;i=i+16|0}}f=qe(r)|0;f=f<<16>>16;o=r<<f;f=30-f|0;f=f&65535;A[n>>1]=f;return o|0}function vi(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0;t=qe(e)|0;n=t<<16>>16;if(t<<16>>16>0){f=e<<n;e=(f>>n|0)==(e|0)?f:e>>31^2147483647}else e=e>>(0-n&15);if((e|0)<1){A[i>>1]=0;f=0;A[r>>1]=f;return}else{A[i>>1]=30-(t&65535);n=(e>>>25<<16)+-2097152>>16;t=A[7776+(n<<1)>>1]|0;i=t<<16;n=R(t-(o[7776+(n+1<<1)>>1]|0)<<16>>16,e>>>10&32767)|0;n=(n|0)==1073741824?2147483647:n<<1;f=i-n|0;f=(((f^i)&(n^i)|0)<0?t>>15^2147418112:f)>>>16&65535;A[r>>1]=f;return}}function Bi(e,i,r){e=e|0;i=i|0;r=r|0;A[i>>1]=e>>>16;A[r>>1]=e>>>1&32767;return}function Ei(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var A=0,t=0;t=e<<16>>16;e=r<<16>>16;A=R(e,t)|0;A=(A|0)==1073741824?2147483647:A<<1;r=R(n<<16>>16,t)|0;n=r>>31;n=((r>>30|0)==(n|0)?r>>>15:n^32767)<<16>>15;r=n+A|0;r=(n^A|0)>-1&(r^A|0)<0?A>>31^2147483647:r;n=R(e,i<<16>>16)|0;i=n>>31;i=((n>>30|0)==(i|0)?n>>>15:i^32767)<<16>>15;n=r+i|0;return((r^i|0)>-1&(n^r|0)<0?r>>31^2147483647:n)|0}function gi(e,i){e=e|0;i=i|0;var r=0,n=0,t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0;A[i>>1]=A[8740+(A[e>>1]<<1<<1)>>1]|0;B=i+2|0;A[B>>1]=A[8740+((A[e>>1]<<1|1)<<1)>>1]|0;u=e+2|0;E=e+4|0;v=i+4|0;A[v>>1]=A[8996+((A[u>>1]|0)*3<<1)>>1]|0;w=i+10|0;A[w>>1]=A[9380+((A[E>>1]|0)*3<<1)>>1]|0;d=i+6|0;A[d>>1]=A[8996+(((A[u>>1]|0)*3|0)+1<<1)>>1]|0;c=i+12|0;A[c>>1]=A[9380+(((A[E>>1]|0)*3|0)+1<<1)>>1]|0;h=i+8|0;A[h>>1]=A[8996+(((A[u>>1]|0)*3|0)+2<<1)>>1]|0;u=i+14|0;A[u>>1]=A[9380+(((A[E>>1]|0)*3|0)+2<<1)>>1]|0;E=e+6|0;r=e+8|0;l=i+16|0;A[l>>1]=A[9764+(A[E>>1]<<2<<1)>>1]|0;f=i+24|0;A[f>>1]=A[10020+(A[r>>1]<<2<<1)>>1]|0;s=i+18|0;A[s>>1]=A[9764+((A[E>>1]<<2|1)<<1)>>1]|0;t=i+26|0;A[t>>1]=A[10020+((A[r>>1]<<2|1)<<1)>>1]|0;a=i+20|0;A[a>>1]=A[9764+((A[E>>1]<<2|2)<<1)>>1]|0;n=i+28|0;A[n>>1]=A[10020+((A[r>>1]<<2|2)<<1)>>1]|0;o=i+22|0;A[o>>1]=A[9764+((A[E>>1]<<2|3)<<1)>>1]|0;e=i+30|0;A[e>>1]=A[10020+((A[r>>1]<<2|3)<<1)>>1]|0;r=(A[4354]|0)+(A[i>>1]|0)|0;E=r>>31;A[i>>1]=(r>>15|0)==(E|0)?r:E^32767;E=(A[4355]|0)+(A[B>>1]|0)|0;r=E>>31;A[B>>1]=(E>>15|0)==(r|0)?E:r^32767;B=(A[4356]|0)+(A[v>>1]|0)|0;r=B>>31;A[v>>1]=(B>>15|0)==(r|0)?B:r^32767;v=(A[4357]|0)+(A[d>>1]|0)|0;r=v>>31;A[d>>1]=(v>>15|0)==(r|0)?v:r^32767;d=(A[4358]|0)+(A[h>>1]|0)|0;r=d>>31;A[h>>1]=(d>>15|0)==(r|0)?d:r^32767;h=(A[4359]|0)+(A[w>>1]|0)|0;r=h>>31;A[w>>1]=(h>>15|0)==(r|0)?h:r^32767;w=(A[4360]|0)+(A[c>>1]|0)|0;r=w>>31;A[c>>1]=(w>>15|0)==(r|0)?w:r^32767;c=(A[4361]|0)+(A[u>>1]|0)|0;r=c>>31;A[u>>1]=(c>>15|0)==(r|0)?c:r^32767;u=(A[4362]|0)+(A[l>>1]|0)|0;r=u>>31;A[l>>1]=(u>>15|0)==(r|0)?u:r^32767;l=(A[4363]|0)+(A[s>>1]|0)|0;r=l>>31;A[s>>1]=(l>>15|0)==(r|0)?l:r^32767;s=(A[4364]|0)+(A[a>>1]|0)|0;r=s>>31;A[a>>1]=(s>>15|0)==(r|0)?s:r^32767;a=(A[4365]|0)+(A[o>>1]|0)|0;r=a>>31;A[o>>1]=(a>>15|0)==(r|0)?a:r^32767;o=(A[4366]|0)+(A[f>>1]|0)|0;r=o>>31;A[f>>1]=(o>>15|0)==(r|0)?o:r^32767;f=(A[4367]|0)+(A[t>>1]|0)|0;r=f>>31;A[t>>1]=(f>>15|0)==(r|0)?f:r^32767;t=(A[4368]|0)+(A[n>>1]|0)|0;r=t>>31;A[n>>1]=(t>>15|0)==(r|0)?t:r^32767;n=(A[4369]|0)+(A[e>>1]|0)|0;r=n>>31;A[e>>1]=(n>>15|0)==(r|0)?n:r^32767;ki(i,128,16);return}function bi(e,i,r,n,t,f,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0;y=h;h=h+32|0;if((h|0)>=(d|0))X(32);s=y;if(!(f<<16>>16)){A[i>>1]=A[10308+((A[e>>1]|0)*9<<1)>>1]|0;u=i+2|0;A[u>>1]=A[10308+(((A[e>>1]|0)*9|0)+1<<1)>>1]|0;c=i+4|0;A[c>>1]=A[10308+(((A[e>>1]|0)*9|0)+2<<1)>>1]|0;w=i+6|0;A[w>>1]=A[10308+(((A[e>>1]|0)*9|0)+3<<1)>>1]|0;v=i+8|0;A[v>>1]=A[10308+(((A[e>>1]|0)*9|0)+4<<1)>>1]|0;B=i+10|0;A[B>>1]=A[10308+(((A[e>>1]|0)*9|0)+5<<1)>>1]|0;E=i+12|0;A[E>>1]=A[10308+(((A[e>>1]|0)*9|0)+6<<1)>>1]|0;g=i+14|0;A[g>>1]=A[10308+(((A[e>>1]|0)*9|0)+7<<1)>>1]|0;b=i+16|0;A[b>>1]=A[10308+(((A[e>>1]|0)*9|0)+8<<1)>>1]|0;M=e+2|0;I=A[14916+((A[M>>1]|0)*7<<1)>>1]|0;k=i+18|0;A[k>>1]=I;D=i+20|0;A[D>>1]=A[14916+(((A[M>>1]|0)*7|0)+1<<1)>>1]|0;Q=i+22|0;A[Q>>1]=A[14916+(((A[M>>1]|0)*7|0)+2<<1)>>1]|0;m=A[14916+(((A[M>>1]|0)*7|0)+3<<1)>>1]|0;C=i+24|0;A[C>>1]=m;n=i+26|0;A[n>>1]=A[14916+(((A[M>>1]|0)*7|0)+4<<1)>>1]|0;s=i+28|0;A[s>>1]=A[14916+(((A[M>>1]|0)*7|0)+5<<1)>>1]|0;l=i+30|0;A[l>>1]=A[14916+(((A[M>>1]|0)*7|0)+6<<1)>>1]|0;M=e+4|0;p=e+6|0;T=e+8|0;P=e+10|0;f=e+12|0;A[i>>1]=(o[i>>1]|0)+(o[18500+((A[M>>1]|0)*3<<1)>>1]|0);A[w>>1]=(o[w>>1]|0)+(o[18884+((A[p>>1]|0)*3<<1)>>1]|0);A[E>>1]=(o[E>>1]|0)+(o[19652+((A[T>>1]|0)*3<<1)>>1]|0);A[k>>1]=(I&65535)+(o[20420+((A[P>>1]|0)*3<<1)>>1]|0);A[C>>1]=(m&65535)+(o[20612+(A[f>>1]<<2<<1)>>1]|0);A[u>>1]=(o[u>>1]|0)+(o[18500+(((A[M>>1]|0)*3|0)+1<<1)>>1]|0);A[v>>1]=(o[v>>1]|0)+(o[18884+(((A[p>>1]|0)*3|0)+1<<1)>>1]|0);A[g>>1]=(o[g>>1]|0)+(o[19652+(((A[T>>1]|0)*3|0)+1<<1)>>1]|0);A[D>>1]=(o[D>>1]|0)+(o[20420+(((A[P>>1]|0)*3|0)+1<<1)>>1]|0);A[n>>1]=(o[n>>1]|0)+(o[20612+((A[f>>1]<<2|1)<<1)>>1]|0);A[c>>1]=(o[c>>1]|0)+(o[18500+(((A[M>>1]|0)*3|0)+2<<1)>>1]|0);A[B>>1]=(o[B>>1]|0)+(o[18884+(((A[p>>1]|0)*3|0)+2<<1)>>1]|0);A[b>>1]=(o[b>>1]|0)+(o[19652+(((A[T>>1]|0)*3|0)+2<<1)>>1]|0);A[Q>>1]=(o[Q>>1]|0)+(o[20420+(((A[P>>1]|0)*3|0)+2<<1)>>1]|0);A[s>>1]=(o[s>>1]|0)+(o[20612+((A[f>>1]<<2|2)<<1)>>1]|0);A[l>>1]=(o[l>>1]|0)+(o[20612+((A[f>>1]<<2|3)<<1)>>1]|0);f=0;do{M=i+(f<<1)|0;m=A[M>>1]|0;p=(o[10276+(f<<1)>>1]|0)+(m&65535)|0;A[M>>1]=p;I=r+(f<<1)|0;A[M>>1]=(((A[I>>1]|0)*10923|0)>>>15)+p;A[I>>1]=m;f=f+1|0}while((f|0)!=16);if(a<<16>>16){m=t+32|0;A[t+64>>1]=A[m>>1]|0;A[m>>1]=A[t>>1]|0;A[t>>1]=A[i>>1]|0;m=t+34|0;A[t+66>>1]=A[m>>1]|0;I=t+2|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[u>>1]|0;I=t+36|0;A[t+68>>1]=A[I>>1]|0;m=t+4|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[c>>1]|0;m=t+38|0;A[t+70>>1]=A[m>>1]|0;I=t+6|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[w>>1]|0;I=t+40|0;A[t+72>>1]=A[I>>1]|0;m=t+8|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[v>>1]|0;m=t+42|0;A[t+74>>1]=A[m>>1]|0;I=t+10|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[B>>1]|0;I=t+44|0;A[t+76>>1]=A[I>>1]|0;m=t+12|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[E>>1]|0;m=t+46|0;A[t+78>>1]=A[m>>1]|0;I=t+14|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[g>>1]|0;I=t+48|0;A[t+80>>1]=A[I>>1]|0;m=t+16|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[b>>1]|0;m=t+50|0;A[t+82>>1]=A[m>>1]|0;I=t+18|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[k>>1]|0;I=t+52|0;A[t+84>>1]=A[I>>1]|0;m=t+20|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[D>>1]|0;m=t+54|0;A[t+86>>1]=A[m>>1]|0;I=t+22|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[Q>>1]|0;I=t+56|0;A[t+88>>1]=A[I>>1]|0;m=t+24|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[C>>1]|0;m=t+58|0;A[t+90>>1]=A[m>>1]|0;I=t+26|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[n>>1]|0;I=t+60|0;A[t+92>>1]=A[I>>1]|0;m=t+28|0;A[I>>1]=A[m>>1]|0;A[m>>1]=A[s>>1]|0;m=t+62|0;A[t+94>>1]=A[m>>1]|0;I=t+30|0;A[m>>1]=A[I>>1]|0;A[I>>1]=A[l>>1]|0}}else{f=0;do{I=A[10276+(f<<1)>>1]|0;m=I<<14;p=A[t+(f<<1)>>1]<<14;M=p+m|0;M=(p^m|0)>-1&(M^m|0)<0?I>>17^2147483647:M;I=A[t+(f+16<<1)>>1]<<14;m=I+M|0;m=(I^M|0)>-1&(m^M|0)<0?M>>31^2147483647:m;M=A[t+(f+32<<1)>>1]<<14;I=M+m|0;I=(M^m|0)>-1&(I^m|0)<0?m>>31^2147483647:I;A[s+(f<<1)>>1]=(I|0)==2147483647?32767:(I+32768|0)>>>16&65535;f=f+1|0}while((f|0)!=16);f=0;do{I=(A[n+(f<<1)>>1]|0)*29491|0;m=I>>31;p=(A[s+(f<<1)>>1]|0)*3277|0;M=p>>31;m=(((p>>30|0)==(M|0)?p>>>15:M^32767)<<16>>16)+(((I>>30|0)==(m|0)?I>>>15:m^32767)<<16>>16)|0;I=m>>31;A[i+(f<<1)>>1]=(m>>15|0)==(I|0)?m:I^32767;f=f+1|0}while((f|0)!=16);f=0;do{I=r+(f<<1)|0;M=(A[I>>1]|0)*10923|0;m=M>>31;m=(((M>>30|0)==(m|0)?M>>>15:m^32767)<<16>>16)+(A[s+(f<<1)>>1]|0)|0;M=m>>31;M=(A[i+(f<<1)>>1]|0)-(((m>>15|0)==(M|0)?m:M^32767)<<16>>16)|0;m=M>>31;A[I>>1]=(((M>>15|0)==(m|0)?M:m^32766)&65535)<<16>>16>>1;f=f+1|0}while((f|0)!=16)}f=A[i>>1]|0;if(f<<16>>16<128){A[i>>1]=128;f=128}n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+2|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+4|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+6|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+8|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+10|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+12|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+14|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+16|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+18|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+20|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+22|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+24|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+26|0;s=A[n>>1]|0;if(s<<16>>16<f<<16>>16)A[n>>1]=f;else f=s;f=(f<<16>>16)+128|0;n=f>>31;n=((f>>15|0)==(n|0)?f:n^32767)&65535;f=i+28|0;if((A[f>>1]|0)>=n<<16>>16){h=y;return}A[f>>1]=n;h=y;return}function ki(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0;o=(r<<16>>16)+-1|0;if(r<<16>>16<=1)return;f=i<<16>>16;t=0;r=i;n=0;while(1){i=e+(n<<1)|0;n=A[i>>1]|0;if(n<<16>>16<r<<16>>16)A[i>>1]=r;else r=n;r=(r<<16>>16)+f|0;i=r>>31;t=t+1<<16>>16;n=t<<16>>16;if((o|0)<=(n|0))break;else r=((r>>15|0)==(i|0)?r:i^32767)&65535}return}function Di(e,i,r,n,t,f,o){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;C=h;h=h+32|0;if((h|0)>=(d|0))X(32);a=C;if(!(f<<16>>16)){A[i>>1]=A[10308+((A[e>>1]|0)*9<<1)>>1]|0;c=i+2|0;A[c>>1]=A[10308+(((A[e>>1]|0)*9|0)+1<<1)>>1]|0;v=i+4|0;A[v>>1]=A[10308+(((A[e>>1]|0)*9|0)+2<<1)>>1]|0;B=i+6|0;A[B>>1]=A[10308+(((A[e>>1]|0)*9|0)+3<<1)>>1]|0;E=i+8|0;A[E>>1]=A[10308+(((A[e>>1]|0)*9|0)+4<<1)>>1]|0;g=i+10|0;A[g>>1]=A[10308+(((A[e>>1]|0)*9|0)+5<<1)>>1]|0;b=i+12|0;A[b>>1]=A[10308+(((A[e>>1]|0)*9|0)+6<<1)>>1]|0;k=i+14|0;A[k>>1]=A[10308+(((A[e>>1]|0)*9|0)+7<<1)>>1]|0;D=i+16|0;A[D>>1]=A[10308+(((A[e>>1]|0)*9|0)+8<<1)>>1]|0;y=e+2|0;f=e+8|0;w=(A[23172+((A[f>>1]|0)*7<<1)>>1]|0)+(A[14916+((A[y>>1]|0)*7<<1)>>1]|0)|0;P=w>>31;Q=i+18|0;A[Q>>1]=(w>>15|0)==(P|0)?w:P^32767;P=(A[23172+(((A[f>>1]|0)*7|0)+1<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+1<<1)>>1]|0)|0;w=P>>31;n=i+20|0;A[n>>1]=(P>>15|0)==(w|0)?P:w^32767;w=(A[23172+(((A[f>>1]|0)*7|0)+2<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+2<<1)>>1]|0)|0;P=w>>31;a=i+22|0;A[a>>1]=(w>>15|0)==(P|0)?w:P^32767;P=(A[23172+(((A[f>>1]|0)*7|0)+3<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+3<<1)>>1]|0)|0;w=P>>31;s=i+24|0;A[s>>1]=(P>>15|0)==(w|0)?P:w^32767;w=(A[23172+(((A[f>>1]|0)*7|0)+4<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+4<<1)>>1]|0)|0;P=w>>31;l=i+26|0;A[l>>1]=(w>>15|0)==(P|0)?w:P^32767;P=(A[23172+(((A[f>>1]|0)*7|0)+5<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+5<<1)>>1]|0)|0;w=P>>31;u=i+28|0;A[u>>1]=(P>>15|0)==(w|0)?P:w^32767;y=(A[23172+(((A[f>>1]|0)*7|0)+6<<1)>>1]|0)+(A[14916+(((A[y>>1]|0)*7|0)+6<<1)>>1]|0)|0;f=y>>31;w=i+30|0;A[w>>1]=(y>>15|0)==(f|0)?y:f^32767;f=e+4|0;y=(A[20868+((A[f>>1]|0)*5<<1)>>1]|0)+(A[i>>1]|0)|0;P=y>>31;A[i>>1]=(y>>15|0)==(P|0)?y:P^32767;P=(A[20868+(((A[f>>1]|0)*5|0)+1<<1)>>1]|0)+(A[c>>1]|0)|0;y=P>>31;A[c>>1]=(P>>15|0)==(y|0)?P:y^32767;y=(A[20868+(((A[f>>1]|0)*5|0)+2<<1)>>1]|0)+(A[v>>1]|0)|0;P=y>>31;A[v>>1]=(y>>15|0)==(P|0)?y:P^32767;P=(A[20868+(((A[f>>1]|0)*5|0)+3<<1)>>1]|0)+(A[B>>1]|0)|0;y=P>>31;A[B>>1]=(P>>15|0)==(y|0)?P:y^32767;f=(A[20868+(((A[f>>1]|0)*5|0)+4<<1)>>1]|0)+(A[E>>1]|0)|0;y=f>>31;A[E>>1]=(f>>15|0)==(y|0)?f:y^32767;e=e+6|0;y=(A[22148+(A[e>>1]<<2<<1)>>1]|0)+(A[g>>1]|0)|0;f=y>>31;A[g>>1]=(y>>15|0)==(f|0)?y:f^32767;f=(A[22148+((A[e>>1]<<2|1)<<1)>>1]|0)+(A[b>>1]|0)|0;y=f>>31;A[b>>1]=(f>>15|0)==(y|0)?f:y^32767;y=(A[22148+((A[e>>1]<<2|2)<<1)>>1]|0)+(A[k>>1]|0)|0;f=y>>31;A[k>>1]=(y>>15|0)==(f|0)?y:f^32767;e=(A[22148+((A[e>>1]<<2|3)<<1)>>1]|0)+(A[D>>1]|0)|0;f=e>>31;A[D>>1]=(e>>15|0)==(f|0)?e:f^32767;f=0;do{e=i+(f<<1)|0;y=A[e>>1]|0;P=(A[10276+(f<<1)>>1]|0)+(y<<16>>16)|0;p=P>>31;p=(P>>15|0)==(p|0)?P:p^32767;A[e>>1]=p;P=r+(f<<1)|0;M=(A[P>>1]|0)*10923|0;T=M>>31;p=(((M>>30|0)==(T|0)?M>>>15:T^32767)<<16>>16)+(p<<16>>16)|0;T=p>>31;A[e>>1]=(p>>15|0)==(T|0)?p:T^32767;A[P>>1]=y;f=f+1|0}while((f|0)!=16);if(o<<16>>16){p=t+32|0;A[t+64>>1]=A[p>>1]|0;A[p>>1]=A[t>>1]|0;A[t>>1]=A[i>>1]|0;p=t+34|0;A[t+66>>1]=A[p>>1]|0;M=t+2|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[c>>1]|0;M=t+36|0;A[t+68>>1]=A[M>>1]|0;p=t+4|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[v>>1]|0;p=t+38|0;A[t+70>>1]=A[p>>1]|0;M=t+6|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[B>>1]|0;M=t+40|0;A[t+72>>1]=A[M>>1]|0;p=t+8|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[E>>1]|0;p=t+42|0;A[t+74>>1]=A[p>>1]|0;M=t+10|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[g>>1]|0;M=t+44|0;A[t+76>>1]=A[M>>1]|0;p=t+12|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[b>>1]|0;p=t+46|0;A[t+78>>1]=A[p>>1]|0;M=t+14|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[k>>1]|0;M=t+48|0;A[t+80>>1]=A[M>>1]|0;p=t+16|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[D>>1]|0;p=t+50|0;A[t+82>>1]=A[p>>1]|0;M=t+18|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[Q>>1]|0;M=t+52|0;A[t+84>>1]=A[M>>1]|0;p=t+20|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[n>>1]|0;p=t+54|0;A[t+86>>1]=A[p>>1]|0;M=t+22|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[a>>1]|0;M=t+56|0;A[t+88>>1]=A[M>>1]|0;p=t+24|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[s>>1]|0;p=t+58|0;A[t+90>>1]=A[p>>1]|0;M=t+26|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[l>>1]|0;M=t+60|0;A[t+92>>1]=A[M>>1]|0;p=t+28|0;A[M>>1]=A[p>>1]|0;A[p>>1]=A[u>>1]|0;p=t+62|0;A[t+94>>1]=A[p>>1]|0;M=t+30|0;A[p>>1]=A[M>>1]|0;A[M>>1]=A[w>>1]|0}}else{f=0;do{M=A[10276+(f<<1)>>1]|0;p=M<<14;P=A[t+(f<<1)>>1]<<14;T=P+p|0;T=(P^p|0)>-1&(T^p|0)<0?M>>17^2147483647:T;M=A[t+(f+16<<1)>>1]<<14;p=M+T|0;p=(M^T|0)>-1&(p^T|0)<0?T>>31^2147483647:p;T=A[t+(f+32<<1)>>1]<<14;M=T+p|0;M=(T^p|0)>-1&(M^p|0)<0?p>>31^2147483647:M;A[a+(f<<1)>>1]=(M|0)==2147483647?32767:(M+32768|0)>>>16&65535;f=f+1|0}while((f|0)!=16);f=0;do{M=(A[n+(f<<1)>>1]|0)*29491|0;p=M>>31;P=(A[a+(f<<1)>>1]|0)*3277|0;T=P>>31;p=(((P>>30|0)==(T|0)?P>>>15:T^32767)<<16>>16)+(((M>>30|0)==(p|0)?M>>>15:p^32767)<<16>>16)|0;M=p>>31;A[i+(f<<1)>>1]=(p>>15|0)==(M|0)?p:M^32767;f=f+1|0}while((f|0)!=16);f=0;do{M=r+(f<<1)|0;T=(A[M>>1]|0)*10923|0;p=T>>31;p=(((T>>30|0)==(p|0)?T>>>15:p^32767)<<16>>16)+(A[a+(f<<1)>>1]|0)|0;T=p>>31;T=(A[i+(f<<1)>>1]|0)-(((p>>15|0)==(T|0)?p:T^32767)<<16>>16)|0;p=T>>31;A[M>>1]=(((T>>15|0)==(p|0)?T:p^32766)&65535)<<16>>16>>1;f=f+1|0}while((f|0)!=16)}f=A[i>>1]|0;if(f<<16>>16<128){A[i>>1]=128;f=128}n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+2|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+4|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+6|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+8|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+10|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+12|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+14|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+16|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+18|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+20|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+22|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+24|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;n=(f<<16>>16)+128|0;f=n>>31;f=((n>>15|0)==(f|0)?n:f^32767)&65535;n=i+26|0;a=A[n>>1]|0;if(a<<16>>16<f<<16>>16)A[n>>1]=f;else f=a;f=(f<<16>>16)+128|0;n=f>>31;n=((f>>15|0)==(n|0)?f:n^32767)&65535;f=i+28|0;if((A[f>>1]|0)>=n<<16>>16){h=C;return}A[f>>1]=n;h=C;return}function Qi(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0;if(r<<16>>16>0){if(i<<16>>16<=0)return;n=r<<16>>16;i=i&65535;r=0;do{t=e+(r<<1)|0;f=o[t>>1]<<16;a=f<<n;f=(a>>n|0)==(f|0)?a:f>>31^2147483647;A[t>>1]=(f|0)==2147483647?32767:(f+32768|0)>>>16&65535;r=r+1|0}while((r|0)!=(i|0));return}if(r<<16>>16>=0)return;t=0-r&15;r=i<<16>>16>>1;if(!(r<<16>>16))return;n=32768>>>(16-t|0)<<16>>16;i=e;while(1){e=n+(A[i>>1]|0)|0;a=e>>31;A[i>>1]=((e>>15|0)==(a|0)?e:a^32767)<<16>>16>>t;a=i+2|0;e=n+(A[a>>1]|0)|0;f=e>>31;A[a>>1]=((e>>15|0)==(f|0)?e:f^32767)<<16>>16>>t;r=r+-1<<16>>16;if(!(r<<16>>16))break;else i=i+4|0}return}function Ci(e,i,r,f,a,s,l,u,c,w,v){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;s=s|0;l=l|0;u=u|0;c=c|0;w=w|0;v=v|0;var B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0;m=h;h=h+16|0;if((h|0)>=(d|0))X(16);P=m+6|0;y=m+4|0;p=m;B=v+160|0;T=v+320|0;E=v+448|0;M=v+608|0;b=c+704|0;D=v;Q=b;C=D+32|0;do{n[D>>0]=n[Q>>0]|0;D=D+1|0;Q=Q+1|0}while((D|0)<(C|0));k=c+736|0;D=B;Q=k;C=D+32|0;do{n[D>>0]=n[Q>>0]|0;D=D+1|0;Q=Q+1|0}while((D|0)<(C|0));B=v+32|0;g=v+192|0;Ti(e,16,i,r,B,g,64);D=b;Q=v+128|0;C=D+32|0;do{n[D>>0]=n[Q>>0]|0;D=D+1|0;Q=Q+1|0}while((D|0)<(C|0));D=k;Q=v+288|0;C=D+32|0;do{n[D>>0]=n[Q>>0]|0;D=D+1|0;Q=Q+1|0}while((D|0)<(C|0));ye(B,g,T,22282,64,c+768|0);Ue(T,64,c+770|0);$e(T,64,f,c+782|0,v);b=c+1052|0;B=20;g=E;while(1){A[g>>1]=(Ve(b)|0)<<16>>16>>3;A[g+2>>1]=(Ve(b)|0)<<16>>16>>3;A[g+4>>1]=(Ve(b)|0)<<16>>16>>3;A[g+6>>1]=(Ve(b)|0)<<16>>16>>3;B=B+-1<<16>>16;if(!(B<<16>>16))break;else g=g+8|0}D=v+650|0;B=16;g=i;while(1){k=(A[g>>1]|0)+4|0;C=k>>31;A[g>>1]=(((k>>15|0)==(C|0)?k:C^32760)&65535)<<16>>16>>3;C=g+2|0;k=(A[C>>1]|0)+4|0;Q=k>>31;A[C>>1]=(((k>>15|0)==(Q|0)?k:Q^32760)&65535)<<16>>16>>3;C=g+4|0;Q=(A[C>>1]|0)+4|0;k=Q>>31;A[C>>1]=(((Q>>15|0)==(k|0)?Q:k^32760)&65535)<<16>>16>>3;C=g+6|0;k=(A[C>>1]|0)+4|0;Q=k>>31;A[C>>1]=(((k>>15|0)==(Q|0)?k:Q^32760)&65535)<<16>>16>>3;B=B+-1<<16>>16;if(!(B<<16>>16))break;else g=g+8|0}g=di(i,i,64,y)|0;A[y>>1]=(o[y>>1]|0)-((((r&65535)<<16)+2147287040|0)>>>15);B=di(E,E,80,P)|0;if((B>>16|0)>(g>>16|0)){A[P>>1]=(o[P>>1]|0)+1;B=B>>17}else B=B>>>16;t[p>>2]=((ui(B&65535,g>>>16&65535)|0)&65535)<<16;A[P>>1]=(o[P>>1]|0)-(o[y>>1]|0);wi(p,P);B=t[p>>2]|0;y=(o[P>>1]|0)+1|0;g=y<<16>>16;if((y&65535)<<16>>16>0){y=B<<g;B=(y>>g|0)==(B|0)?y:B>>31^2147483647}else B=B>>(0-g&15);t[p>>2]=B;b=B>>16;B=20;g=E;while(1){A[g>>1]=(R(b,A[g>>1]|0)|0)>>>15;y=g+2|0;A[y>>1]=(R(b,A[y>>1]|0)|0)>>>15;y=g+4|0;A[y>>1]=(R(b,A[y>>1]|0)|0)>>>15;y=g+6|0;A[y>>1]=(R(b,A[y>>1]|0)|0)>>>15;B=B+-1<<16>>16;if(!(B<<16>>16))break;else g=g+8|0}Oe(T,64,c+1132|0);g=A[T>>1]|0;B=g<<16>>16;B=R(B,B)|0;B=(B|0)==1073741824?-2147483648:B<<1|1;t[p>>2]=B;k=1;b=1;do{y=g;g=A[T+(b<<1)>>1]|0;r=g<<16>>16;C=R(r,r)|0;C=(C|0)==1073741824?2147483647:C<<1;i=C+B|0;B=(C^B|0)>-1&(i^B|0)<0?B>>31^2147483647:i;r=R(y<<16>>16,r)|0;r=(r|0)==1073741824?2147483647:r<<1;y=r+k|0;k=(r^k|0)>-1&(y^k|0)<0?k>>31^2147483647:y;b=b+1|0}while((b|0)!=64);t[p>>2]=B;g=qe(B)|0;A[P>>1]=g;g=g<<16>>16;B=k<<g;if((B>>16|0)>0)g=ui(B>>>16&65535,t[p>>2]<<g>>>16&65535)|0;else g=0;b=(32767-(g&65535)<<16>>16)*20480|0;B=b>>31;B=(b>>30|0)==(B|0)?b>>>15:B^32767;b=B<<16>>16;if((A[c+1518>>1]|0)>0)B=(((B<<17>>17|0)==(b|0)?B<<1:b>>>15^32767)<<16>>16)+-1|0;else B=(32767-g&65535)+65535|0;B=((B&65535|0)!=0&1)+(B&65535)<<16>>16;k=l<<16>>16>476;if(k&w<<16>>16==0){b=A[24068+(a<<16>>16<<1)>>1]|0;B=E;g=20;while(1){p=R(A[B>>1]|0,b)|0;w=p>>31;A[B>>1]=((p>>30|0)==(w|0)?p>>>15:w^32767)<<1;w=B+2|0;p=R(A[w>>1]|0,b)|0;a=p>>31;A[w>>1]=((p>>30|0)==(a|0)?p>>>15:a^32767)<<1;w=B+4|0;a=R(A[w>>1]|0,b)|0;p=a>>31;A[w>>1]=((a>>30|0)==(p|0)?a>>>15:p^32767)<<1;w=B+6|0;p=R(A[w>>1]|0,b)|0;a=p>>31;A[w>>1]=((p>>30|0)==(a|0)?p>>>15:a^32767)<<1;g=g+-1<<16>>16;if(!(g<<16>>16))break;else B=B+8|0}}else{b=(B<<16>>16>3277?B:3277)&65535;B=E;g=20;while(1){p=R(A[B>>1]|0,b)|0;w=p>>31;A[B>>1]=(p>>30|0)==(w|0)?p>>>15:w^32767;w=B+2|0;p=R(A[w>>1]|0,b)|0;a=p>>31;A[w>>1]=(p>>30|0)==(a|0)?p>>>15:a^32767;w=B+4|0;a=R(A[w>>1]|0,b)|0;p=a>>31;A[w>>1]=(a>>30|0)==(p|0)?a>>>15:p^32767;w=B+6|0;p=R(A[w>>1]|0,b)|0;a=p>>31;A[w>>1]=(p>>30|0)==(a|0)?p>>>15:a^32767;g=g+-1<<16>>16;if(!(g<<16>>16))break;else B=B+8|0}}if(l<<16>>16<133&u<<16>>16==0){Ge(s);Xe(s,D,20,0);pi(D,M,29491,20);Pi(M,20,E,E,80,c+830|0,1,v)}else{pi(e,M,19661,16);Pi(M,16,E,E,80,c+838|0,1,v)}he(E,80,c+870|0,v);if(k){Je(E,80,c+990|0,v);B=40}else B=40;while(1){l=(A[E>>1]|0)+(A[f>>1]|0)|0;c=l>>31;A[f>>1]=(l>>15|0)==(c|0)?l:c^32767;c=f+2|0;l=(A[E+2>>1]|0)+(A[c>>1]|0)|0;u=l>>31;A[c>>1]=(l>>15|0)==(u|0)?l:u^32767;B=B+-1<<16>>16;if(!(B<<16>>16))break;else{E=E+4|0;f=f+4|0}}h=m;return}function yi(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var a=0,s=0,l=0,u=0;u=h;h=h+16|0;if((h|0)>=(d|0))X(16);s=u+2|0;l=u;e=di(e,e,f,s)|0;i=(A[s>>1]|0)-((i&65535)<<17>>16)|0;a=i>>31;A[s>>1]=(i>>15|0)==(a|0)?i:a^32767;a=r<<16>>16;a=R(a,a)|0;a=(a|0)==1073741824?2147483647:a<<1;r=(qe(a)|0)<<16>>16;e=R(a<<r>>16,e>>16)|0;a=e>>31;a=(e>>30|0)==(a|0)?e>>>15:a^32767;A[s>>1]=65526-r+(o[s>>1]|0);r=di(n,n,f,l)|0;e=t<<16>>16;n=((qe(e)|0)&65535)+65520|0;i=n<<16>>16;if((n&65535)<<16>>16<0)e=e>>(0-i&15);else{f=i&15;t=e<<f;e=(t<<16>>16>>f|0)==(e|0)?t:e>>15^32767}i=e<<16>>16;i=R(i,i)|0;i=R((i&1073741824|0)==0?i<<1>>16:32767,r>>16)|0;e=i>>31;e=(i>>30|0)==(e|0)?i>>>15:e^32767;i=(o[l>>1]|0)-(n<<1)|0;A[l>>1]=i;l=(o[s>>1]|0)-i<<16;i=l>>16;if((l|0)>-65536){e=e<<16>>16>>i+1&65535;i=a<<16>>17}else{e=(e&65535)<<16>>16>>1;i=a<<16>>16>>1-i}e=e<<16>>16;r=i-e|0;n=r&65535;e=i+1+e&65535;if(!(r&32768)){l=ui(n,e)|0;h=u;return l|0}else{l=ui(n<<16>>16==-32768?32767:0-r&65535,e)|0;l=l<<16>>16==-32768?32767:0-(l&65535)&65535;h=u;return l|0}}function Pi(e,i,r,n,t,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;y=i<<16>>16;P=y<<1;Ji(a|0,f|0,P|0)|0;C=a+(y<<1)|0;g=t<<16>>16;b=g>>2;if((b|0)>0){k=e+6|0;D=e+4|0;Q=e+2|0;E=i<<16>>16>4;B=0;a=0;do{c=a<<2;w=c|1;h=c|2;s=0-(A[r+(h<<1)>>1]<<11)|0;d=c|3;a=0-(A[r+(d<<1)>>1]<<11)|0;T=A[k>>1]|0;u=(R(T,A[C+(c+-3<<1)>>1]|0)|0)-(A[r+(c<<1)>>1]<<11)|0;i=A[C+(c+-2<<1)>>1]|0;T=(R(i,T)|0)-(A[r+(w<<1)>>1]<<11)|0;l=A[D>>1]|0;i=u+(R(l,i)|0)|0;u=c+-1|0;v=C+(u<<1)|0;t=A[v>>1]|0;l=T+(R(t,l)|0)|0;t=i+(R(A[Q>>1]|0,t)|0)|0;if(E){i=a;a=4;do{M=A[e+(a+1<<1)>>1]|0;p=(R(M,A[C+(u-a<<1)>>1]|0)|0)+t|0;t=A[C+(c-a<<1)>>1]|0;l=(R(t,M)|0)+l|0;T=A[e+(a<<1)>>1]|0;t=p+(R(T,t)|0)|0;p=A[C+(w-a<<1)>>1]|0;l=l+(R(p,T)|0)|0;p=(R(p,M)|0)+s|0;s=A[C+(h-a<<1)>>1]|0;i=(R(s,M)|0)+i|0;s=p+(R(s,T)|0)|0;i=i+(R(A[C+(d-a<<1)>>1]|0,T)|0)|0;a=(a<<16)+131072>>16}while((a|0)<(y|0))}else{i=a;a=4}M=A[e+(a<<1)>>1]|0;p=(R(M,A[C+(c-a<<1)>>1]|0)|0)+t|0;T=(R(A[C+(w-a<<1)>>1]|0,M)|0)+l|0;u=(R(A[C+(h-a<<1)>>1]|0,M)|0)+s|0;M=(R(A[C+(d-a<<1)>>1]|0,M)|0)+i|0;a=p<<4;p=(a>>4|0)==(p|0)?a:p>>31^2147483647;p=(p|0)==-2147483647?32767:(32768-p|0)>>>16&65535;a=C+(c<<1)|0;A[a>>1]=p;A[n+(c<<1)>>1]=p;T=T+(R(A[Q>>1]|0,A[a>>1]|0)|0)|0;p=T<<4;T=(p>>4|0)==(T|0)?p:T>>31^2147483647;T=(T|0)==-2147483647?32767:(32768-T|0)>>>16&65535;p=C+(w<<1)|0;A[p>>1]=T;A[n+(w<<1)>>1]=T;T=A[k>>1]|0;v=u+(R(T,A[v>>1]|0)|0)|0;a=A[a>>1]|0;T=M+(R(a,T)|0)|0;M=A[D>>1]|0;a=v+(R(M,a)|0)|0;p=A[p>>1]|0;M=T+(R(p,M)|0)|0;p=a+(R(A[Q>>1]|0,p)|0)|0;a=p<<4;p=(a>>4|0)==(p|0)?a:p>>31^2147483647;p=(p|0)==-2147483647?32767:(32768-p|0)>>>16&65535;a=C+(h<<1)|0;A[a>>1]=p;A[n+(h<<1)>>1]=p;a=M+(R(A[Q>>1]|0,A[a>>1]|0)|0)|0;M=a<<4;a=(M>>4|0)==(a|0)?M:a>>31^2147483647;a=(a|0)==-2147483647?32767:(32768-a|0)>>>16&65535;A[C+(d<<1)>>1]=a;A[n+(d<<1)>>1]=a;B=B+1<<16>>16;a=B<<16>>16}while((b|0)>(a|0))}if(!(o<<16>>16))return;Ji(f|0,n+(g-y<<1)|0,P|0)|0;return}function Ti(e,i,r,n,t,f,o){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0;E=o<<16>>16>>1;if((E|0)<=0)return;v=e+2|0;B=i<<16>>16;d=i<<16>>16>2;h=9-(n&65535)<<16>>16;w=0;o=0;do{u=o<<1;l=u+-1|0;o=A[v>>1]|0;i=R(o,A[f+(l<<1)>>1]|0)|0;o=R(A[t+(l<<1)>>1]|0,o)|0;c=u|1;if(d){a=0;n=o;s=0;o=2;do{k=l-o|0;b=A[e+(o+1<<1)>>1]|0;i=(R(b,A[f+(k<<1)>>1]|0)|0)+i|0;n=(R(A[t+(k<<1)>>1]|0,b)|0)+n|0;k=u-o|0;D=A[f+(k<<1)>>1]|0;g=A[e+(o<<1)>>1]|0;i=i+(R(g,D)|0)|0;k=A[t+(k<<1)>>1]|0;n=n+(R(k,g)|0)|0;a=(R(D,b)|0)+a|0;b=(R(k,b)|0)+s|0;s=c-o|0;a=a+(R(A[f+(s<<1)>>1]|0,g)|0)|0;s=b+(R(A[t+(s<<1)>>1]|0,g)|0)|0;o=(o<<16)+131072>>16}while((o|0)<(B|0))}else{s=0;a=0;n=o;o=2}b=u-o|0;D=A[e+(o<<1)>>1]|0;g=0-(i+(R(D,A[f+(b<<1)>>1]|0)|0))|0;o=c-o|0;k=a+(R(A[f+(o<<1)>>1]|0,D)|0)|0;b=(R(A[t+(b<<1)>>1]|0,D)|0)+n|0;D=(R(A[t+(o<<1)>>1]|0,D)|0)+s|0;b=(A[r+(u<<1)>>1]<<h)+(g>>11)-(b<<1)|0;o=b<<3;b=(o>>3|0)==(b|0)?o:b>>31^2147483647;o=b>>16;A[t+(u<<1)>>1]=o;D=D+(R(o,A[v>>1]|0)|0)|0;o=(b>>>4)-(o<<12)|0;A[f+(u<<1)>>1]=o;o=0-(k+(R(o<<16>>16,A[v>>1]|0)|0))>>11;o=(A[r+(c<<1)>>1]<<h)-(D<<1)+o|0;D=o<<3;o=(D>>3|0)==(o|0)?D:o>>31^2147483647;A[t+(c<<1)>>1]=o>>>16;A[f+(c<<1)>>1]=(o>>>4)-(o>>16<<12);w=w+1<<16>>16;o=w<<16>>16}while((E|0)>(o|0));return}function pi(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0;A[i>>1]=A[e>>1]|0;f=r<<16>>16;A[i+2>>1]=((R(A[e+2>>1]|0,f)|0)+16384|0)>>>15;if(n<<16>>16<=1)return;t=n&65535;r=f;n=1;do{o=R(r,f)|0;n=n+1|0;r=(o<<1)+32768>>16;A[i+(n<<1)>>1]=((R(r,A[e+(n<<1)>>1]|0)|0)+16384|0)>>>15}while((n|0)!=(t|0));return}function Mi(e){e=e|0;var i=0,r=0,n=0,A=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0;C=h;h=h+16|0;if((h|0)>=(d|0))X(16);v=C;do{if(e>>>0<245){u=e>>>0<11?16:e+11&-8;e=u>>>3;w=t[6025]|0;r=w>>>e;if(r&3|0){i=(r&1^1)+e|0;e=24140+(i<<1<<2)|0;r=e+8|0;n=t[r>>2]|0;A=n+8|0;f=t[A>>2]|0;if((f|0)==(e|0))t[6025]=w&~(1<<i);else{t[f+12>>2]=e;t[r>>2]=f}Q=i<<3;t[n+4>>2]=Q|3;Q=n+Q+4|0;t[Q>>2]=t[Q>>2]|1;Q=A;h=C;return Q|0}c=t[6027]|0;if(u>>>0>c>>>0){if(r|0){i=2<<e;i=r<<e&(i|0-i);i=(i&0-i)+-1|0;a=i>>>12&16;i=i>>>a;r=i>>>5&8;i=i>>>r;f=i>>>2&4;i=i>>>f;e=i>>>1&2;i=i>>>e;n=i>>>1&1;n=(r|a|f|e|n)+(i>>>n)|0;i=24140+(n<<1<<2)|0;e=i+8|0;f=t[e>>2]|0;a=f+8|0;r=t[a>>2]|0;if((r|0)==(i|0)){e=w&~(1<<n);t[6025]=e}else{t[r+12>>2]=i;t[e>>2]=r;e=w}Q=n<<3;o=Q-u|0;t[f+4>>2]=u|3;A=f+u|0;t[A+4>>2]=o|1;t[f+Q>>2]=o;if(c|0){n=t[6030]|0;i=c>>>3;r=24140+(i<<1<<2)|0;i=1<<i;if(!(e&i)){t[6025]=e|i;i=r;e=r+8|0}else{e=r+8|0;i=t[e>>2]|0}t[e>>2]=n;t[i+12>>2]=n;t[n+8>>2]=i;t[n+12>>2]=r}t[6027]=o;t[6030]=A;Q=a;h=C;return Q|0}s=t[6026]|0;if(s){r=(s&0-s)+-1|0;a=r>>>12&16;r=r>>>a;o=r>>>5&8;r=r>>>o;l=r>>>2&4;r=r>>>l;n=r>>>1&2;r=r>>>n;e=r>>>1&1;e=t[24404+((o|a|l|n|e)+(r>>>e)<<2)>>2]|0;r=(t[e+4>>2]&-8)-u|0;n=t[e+16+(((t[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!n){l=e;o=r}else{do{a=(t[n+4>>2]&-8)-u|0;l=a>>>0<r>>>0;r=l?a:r;e=l?n:e;n=t[n+16+(((t[n+16>>2]|0)==0&1)<<2)>>2]|0}while((n|0)!=0);l=e;o=r}a=l+u|0;if(a>>>0>l>>>0){A=t[l+24>>2]|0;i=t[l+12>>2]|0;do{if((i|0)==(l|0)){e=l+20|0;i=t[e>>2]|0;if(!i){e=l+16|0;i=t[e>>2]|0;if(!i){r=0;break}}while(1){r=i+20|0;n=t[r>>2]|0;if(n|0){i=n;e=r;continue}r=i+16|0;n=t[r>>2]|0;if(!n)break;else{i=n;e=r}}t[e>>2]=0;r=i}else{r=t[l+8>>2]|0;t[r+12>>2]=i;t[i+8>>2]=r;r=i}}while(0);do{if(A|0){i=t[l+28>>2]|0;e=24404+(i<<2)|0;if((l|0)==(t[e>>2]|0)){t[e>>2]=r;if(!r){t[6026]=s&~(1<<i);break}}else{t[A+16+(((t[A+16>>2]|0)!=(l|0)&1)<<2)>>2]=r;if(!r)break}t[r+24>>2]=A;i=t[l+16>>2]|0;if(i|0){t[r+16>>2]=i;t[i+24>>2]=r}i=t[l+20>>2]|0;if(i|0){t[r+20>>2]=i;t[i+24>>2]=r}}}while(0);if(o>>>0<16){Q=o+u|0;t[l+4>>2]=Q|3;Q=l+Q+4|0;t[Q>>2]=t[Q>>2]|1}else{t[l+4>>2]=u|3;t[a+4>>2]=o|1;t[a+o>>2]=o;if(c|0){n=t[6030]|0;i=c>>>3;r=24140+(i<<1<<2)|0;i=1<<i;if(!(w&i)){t[6025]=w|i;i=r;e=r+8|0}else{e=r+8|0;i=t[e>>2]|0}t[e>>2]=n;t[i+12>>2]=n;t[n+8>>2]=i;t[n+12>>2]=r}t[6027]=o;t[6030]=a}Q=l+8|0;h=C;return Q|0}else c=u}else c=u}else c=u}else if(e>>>0<=4294967231){e=e+11|0;u=e&-8;l=t[6026]|0;if(l){n=0-u|0;e=e>>>8;if(e)if(u>>>0>16777215)s=31;else{w=(e+1048320|0)>>>16&8;D=e<<w;c=(D+520192|0)>>>16&4;D=D<<c;s=(D+245760|0)>>>16&2;s=14-(c|w|s)+(D<<s>>>15)|0;s=u>>>(s+7|0)&1|s<<1}else s=0;r=t[24404+(s<<2)>>2]|0;e:do{if(!r){r=0;e=0;D=57}else{e=0;a=r;o=u<<((s|0)==31?0:25-(s>>>1)|0);r=0;while(1){A=(t[a+4>>2]&-8)-u|0;if(A>>>0<n>>>0)if(!A){n=0;r=a;e=a;D=61;break e}else{e=a;n=A}A=t[a+20>>2]|0;a=t[a+16+(o>>>31<<2)>>2]|0;r=(A|0)==0|(A|0)==(a|0)?r:A;A=(a|0)==0;if(A){D=57;break}else o=o<<((A^1)&1)}}}while(0);if((D|0)==57){if((r|0)==0&(e|0)==0){e=2<<s;e=l&(e|0-e);if(!e){c=u;break}w=(e&0-e)+-1|0;a=w>>>12&16;w=w>>>a;o=w>>>5&8;w=w>>>o;s=w>>>2&4;w=w>>>s;c=w>>>1&2;w=w>>>c;r=w>>>1&1;e=0;r=t[24404+((o|a|s|c|r)+(w>>>r)<<2)>>2]|0}if(!r){a=e;o=n}else D=61}if((D|0)==61)while(1){D=0;c=(t[r+4>>2]&-8)-u|0;w=c>>>0<n>>>0;n=w?c:n;e=w?r:e;r=t[r+16+(((t[r+16>>2]|0)==0&1)<<2)>>2]|0;if(!r){a=e;o=n;break}else D=61}if((a|0)!=0?o>>>0<((t[6027]|0)-u|0)>>>0:0){f=a+u|0;if(f>>>0<=a>>>0){Q=0;h=C;return Q|0}A=t[a+24>>2]|0;i=t[a+12>>2]|0;do{if((i|0)==(a|0)){e=a+20|0;i=t[e>>2]|0;if(!i){e=a+16|0;i=t[e>>2]|0;if(!i){i=0;break}}while(1){r=i+20|0;n=t[r>>2]|0;if(n|0){i=n;e=r;continue}r=i+16|0;n=t[r>>2]|0;if(!n)break;else{i=n;e=r}}t[e>>2]=0}else{Q=t[a+8>>2]|0;t[Q+12>>2]=i;t[i+8>>2]=Q}}while(0);do{if(A){e=t[a+28>>2]|0;r=24404+(e<<2)|0;if((a|0)==(t[r>>2]|0)){t[r>>2]=i;if(!i){n=l&~(1<<e);t[6026]=n;break}}else{t[A+16+(((t[A+16>>2]|0)!=(a|0)&1)<<2)>>2]=i;if(!i){n=l;break}}t[i+24>>2]=A;e=t[a+16>>2]|0;if(e|0){t[i+16>>2]=e;t[e+24>>2]=i}e=t[a+20>>2]|0;if(e){t[i+20>>2]=e;t[e+24>>2]=i;n=l}else n=l}else n=l}while(0);do{if(o>>>0>=16){t[a+4>>2]=u|3;t[f+4>>2]=o|1;t[f+o>>2]=o;i=o>>>3;if(o>>>0<256){r=24140+(i<<1<<2)|0;e=t[6025]|0;i=1<<i;if(!(e&i)){t[6025]=e|i;i=r;e=r+8|0}else{e=r+8|0;i=t[e>>2]|0}t[e>>2]=f;t[i+12>>2]=f;t[f+8>>2]=i;t[f+12>>2]=r;break}i=o>>>8;if(i)if(o>>>0>16777215)i=31;else{D=(i+1048320|0)>>>16&8;Q=i<<D;k=(Q+520192|0)>>>16&4;Q=Q<<k;i=(Q+245760|0)>>>16&2;i=14-(k|D|i)+(Q<<i>>>15)|0;i=o>>>(i+7|0)&1|i<<1}else i=0;r=24404+(i<<2)|0;t[f+28>>2]=i;e=f+16|0;t[e+4>>2]=0;t[e>>2]=0;e=1<<i;if(!(n&e)){t[6026]=n|e;t[r>>2]=f;t[f+24>>2]=r;t[f+12>>2]=f;t[f+8>>2]=f;break}e=o<<((i|0)==31?0:25-(i>>>1)|0);r=t[r>>2]|0;while(1){if((t[r+4>>2]&-8|0)==(o|0)){D=97;break}n=r+16+(e>>>31<<2)|0;i=t[n>>2]|0;if(!i){D=96;break}else{e=e<<1;r=i}}if((D|0)==96){t[n>>2]=f;t[f+24>>2]=r;t[f+12>>2]=f;t[f+8>>2]=f;break}else if((D|0)==97){D=r+8|0;Q=t[D>>2]|0;t[Q+12>>2]=f;t[D>>2]=f;t[f+8>>2]=Q;t[f+12>>2]=r;t[f+24>>2]=0;break}}else{Q=o+u|0;t[a+4>>2]=Q|3;Q=a+Q+4|0;t[Q>>2]=t[Q>>2]|1}}while(0);Q=a+8|0;h=C;return Q|0}else c=u}else c=u}else c=-1}while(0);r=t[6027]|0;if(r>>>0>=c>>>0){i=r-c|0;e=t[6030]|0;if(i>>>0>15){Q=e+c|0;t[6030]=Q;t[6027]=i;t[Q+4>>2]=i|1;t[e+r>>2]=i;t[e+4>>2]=c|3}else{t[6027]=0;t[6030]=0;t[e+4>>2]=r|3;Q=e+r+4|0;t[Q>>2]=t[Q>>2]|1}Q=e+8|0;h=C;return Q|0}a=t[6028]|0;if(a>>>0>c>>>0){k=a-c|0;t[6028]=k;Q=t[6031]|0;D=Q+c|0;t[6031]=D;t[D+4>>2]=k|1;t[Q+4>>2]=c|3;Q=Q+8|0;h=C;return Q|0}if(!(t[6143]|0)){t[6145]=4096;t[6144]=4096;t[6146]=-1;t[6147]=-1;t[6148]=0;t[6136]=0;t[6143]=v&-16^1431655768;e=4096}else e=t[6145]|0;s=c+48|0;l=c+47|0;o=e+l|0;A=0-e|0;u=o&A;if(u>>>0<=c>>>0){Q=0;h=C;return Q|0}e=t[6135]|0;if(e|0?(w=t[6133]|0,v=w+u|0,v>>>0<=w>>>0|v>>>0>e>>>0):0){Q=0;h=C;return Q|0}e:do{if(!(t[6136]&4)){r=t[6031]|0;i:do{if(r){n=24548;while(1){e=t[n>>2]|0;if(e>>>0<=r>>>0?(g=n+4|0,(e+(t[g>>2]|0)|0)>>>0>r>>>0):0)break;e=t[n+8>>2]|0;if(!e){D=118;break i}else n=e}i=o-a&A;if(i>>>0<2147483647){e=Wi(i|0)|0;if((e|0)==((t[n>>2]|0)+(t[g>>2]|0)|0)){if((e|0)!=(-1|0)){o=i;f=e;D=135;break e}}else{n=e;D=126}}else i=0}else D=118}while(0);do{if((D|0)==118){r=Wi(0)|0;if((r|0)!=(-1|0)?(i=r,B=t[6144]|0,E=B+-1|0,i=((E&i|0)==0?0:(E+i&0-B)-i|0)+u|0,B=t[6133]|0,E=i+B|0,i>>>0>c>>>0&i>>>0<2147483647):0){g=t[6135]|0;if(g|0?E>>>0<=B>>>0|E>>>0>g>>>0:0){i=0;break}e=Wi(i|0)|0;if((e|0)==(r|0)){o=i;f=r;D=135;break e}else{n=e;D=126}}else i=0}}while(0);do{if((D|0)==126){r=0-i|0;if(!(s>>>0>i>>>0&(i>>>0<2147483647&(n|0)!=(-1|0))))if((n|0)==(-1|0)){i=0;break}else{o=i;f=n;D=135;break e}e=t[6145]|0;e=l-i+e&0-e;if(e>>>0>=2147483647){o=i;f=n;D=135;break e}if((Wi(e|0)|0)==(-1|0)){Wi(r|0)|0;i=0;break}else{o=e+i|0;f=n;D=135;break e}}}while(0);t[6136]=t[6136]|4;D=133}else{i=0;D=133}}while(0);if(((D|0)==133?u>>>0<2147483647:0)?(f=Wi(u|0)|0,g=Wi(0)|0,b=g-f|0,k=b>>>0>(c+40|0)>>>0,!((f|0)==(-1|0)|k^1|f>>>0<g>>>0&((f|0)!=(-1|0)&(g|0)!=(-1|0))^1)):0){o=k?b:i;D=135}if((D|0)==135){i=(t[6133]|0)+o|0;t[6133]=i;if(i>>>0>(t[6134]|0)>>>0)t[6134]=i;s=t[6031]|0;do{if(s){i=24548;while(1){e=t[i>>2]|0;r=i+4|0;n=t[r>>2]|0;if((f|0)==(e+n|0)){D=143;break}A=t[i+8>>2]|0;if(!A)break;else i=A}if(((D|0)==143?(t[i+12>>2]&8|0)==0:0)?f>>>0>s>>>0&e>>>0<=s>>>0:0){t[r>>2]=n+o;Q=(t[6028]|0)+o|0;k=s+8|0;k=(k&7|0)==0?0:0-k&7;D=s+k|0;k=Q-k|0;t[6031]=D;t[6028]=k;t[D+4>>2]=k|1;t[s+Q+4>>2]=40;t[6032]=t[6147];break}if(f>>>0<(t[6029]|0)>>>0)t[6029]=f;e=f+o|0;i=24548;while(1){if((t[i>>2]|0)==(e|0)){D=151;break}i=t[i+8>>2]|0;if(!i){e=24548;break}}if((D|0)==151)if(!(t[i+12>>2]&8)){t[i>>2]=f;u=i+4|0;t[u>>2]=(t[u>>2]|0)+o;u=f+8|0;u=f+((u&7|0)==0?0:0-u&7)|0;i=e+8|0;i=e+((i&7|0)==0?0:0-i&7)|0;l=u+c|0;a=i-u-c|0;t[u+4>>2]=c|3;do{if((s|0)!=(i|0)){if((t[6030]|0)==(i|0)){Q=(t[6027]|0)+a|0;t[6027]=Q;t[6030]=l;t[l+4>>2]=Q|1;t[l+Q>>2]=Q;break}e=t[i+4>>2]|0;if((e&3|0)==1){o=e&-8;n=e>>>3;e:do{if(e>>>0<256){e=t[i+8>>2]|0;r=t[i+12>>2]|0;if((r|0)==(e|0)){t[6025]=t[6025]&~(1<<n);break}else{t[e+12>>2]=r;t[r+8>>2]=e;break}}else{f=t[i+24>>2]|0;e=t[i+12>>2]|0;do{if((e|0)==(i|0)){n=i+16|0;r=n+4|0;e=t[r>>2]|0;if(!e){e=t[n>>2]|0;if(!e){e=0;break}else r=n}while(1){n=e+20|0;A=t[n>>2]|0;if(A|0){e=A;r=n;continue}n=e+16|0;A=t[n>>2]|0;if(!A)break;else{e=A;r=n}}t[r>>2]=0}else{Q=t[i+8>>2]|0;t[Q+12>>2]=e;t[e+8>>2]=Q}}while(0);if(!f)break;r=t[i+28>>2]|0;n=24404+(r<<2)|0;do{if((t[n>>2]|0)!=(i|0)){t[f+16+(((t[f+16>>2]|0)!=(i|0)&1)<<2)>>2]=e;if(!e)break e}else{t[n>>2]=e;if(e|0)break;t[6026]=t[6026]&~(1<<r);break e}}while(0);t[e+24>>2]=f;r=i+16|0;n=t[r>>2]|0;if(n|0){t[e+16>>2]=n;t[n+24>>2]=e}r=t[r+4>>2]|0;if(!r)break;t[e+20>>2]=r;t[r+24>>2]=e}}while(0);i=i+o|0;A=o+a|0}else A=a;i=i+4|0;t[i>>2]=t[i>>2]&-2;t[l+4>>2]=A|1;t[l+A>>2]=A;i=A>>>3;if(A>>>0<256){r=24140+(i<<1<<2)|0;e=t[6025]|0;i=1<<i;if(!(e&i)){t[6025]=e|i;i=r;e=r+8|0}else{e=r+8|0;i=t[e>>2]|0}t[e>>2]=l;t[i+12>>2]=l;t[l+8>>2]=i;t[l+12>>2]=r;break}i=A>>>8;do{if(!i)i=0;else{if(A>>>0>16777215){i=31;break}D=(i+1048320|0)>>>16&8;Q=i<<D;k=(Q+520192|0)>>>16&4;Q=Q<<k;i=(Q+245760|0)>>>16&2;i=14-(k|D|i)+(Q<<i>>>15)|0;i=A>>>(i+7|0)&1|i<<1}}while(0);n=24404+(i<<2)|0;t[l+28>>2]=i;e=l+16|0;t[e+4>>2]=0;t[e>>2]=0;e=t[6026]|0;r=1<<i;if(!(e&r)){t[6026]=e|r;t[n>>2]=l;t[l+24>>2]=n;t[l+12>>2]=l;t[l+8>>2]=l;break}e=A<<((i|0)==31?0:25-(i>>>1)|0);r=t[n>>2]|0;while(1){if((t[r+4>>2]&-8|0)==(A|0)){D=192;break}n=r+16+(e>>>31<<2)|0;i=t[n>>2]|0;if(!i){D=191;break}else{e=e<<1;r=i}}if((D|0)==191){t[n>>2]=l;t[l+24>>2]=r;t[l+12>>2]=l;t[l+8>>2]=l;break}else if((D|0)==192){D=r+8|0;Q=t[D>>2]|0;t[Q+12>>2]=l;t[D>>2]=l;t[l+8>>2]=Q;t[l+12>>2]=r;t[l+24>>2]=0;break}}else{Q=(t[6028]|0)+a|0;t[6028]=Q;t[6031]=l;t[l+4>>2]=Q|1}}while(0);Q=u+8|0;h=C;return Q|0}else e=24548;while(1){i=t[e>>2]|0;if(i>>>0<=s>>>0?(Q=i+(t[e+4>>2]|0)|0,Q>>>0>s>>>0):0)break;e=t[e+8>>2]|0}A=Q+-47|0;e=A+8|0;e=A+((e&7|0)==0?0:0-e&7)|0;A=s+16|0;e=e>>>0<A>>>0?s:e;i=e+8|0;r=o+-40|0;k=f+8|0;k=(k&7|0)==0?0:0-k&7;D=f+k|0;k=r-k|0;t[6031]=D;t[6028]=k;t[D+4>>2]=k|1;t[f+r+4>>2]=40;t[6032]=t[6147];r=e+4|0;t[r>>2]=27;t[i>>2]=t[6137];t[i+4>>2]=t[6138];t[i+8>>2]=t[6139];t[i+12>>2]=t[6140];t[6137]=f;t[6138]=o;t[6140]=0;t[6139]=i;i=e+24|0;do{D=i;i=i+4|0;t[i>>2]=7}while((D+8|0)>>>0<Q>>>0);if((e|0)!=(s|0)){f=e-s|0;t[r>>2]=t[r>>2]&-2;t[s+4>>2]=f|1;t[e>>2]=f;i=f>>>3;if(f>>>0<256){r=24140+(i<<1<<2)|0;e=t[6025]|0;i=1<<i;if(!(e&i)){t[6025]=e|i;i=r;e=r+8|0}else{e=r+8|0;i=t[e>>2]|0}t[e>>2]=s;t[i+12>>2]=s;t[s+8>>2]=i;t[s+12>>2]=r;break}i=f>>>8;if(i)if(f>>>0>16777215)r=31;else{D=(i+1048320|0)>>>16&8;Q=i<<D;k=(Q+520192|0)>>>16&4;Q=Q<<k;r=(Q+245760|0)>>>16&2;r=14-(k|D|r)+(Q<<r>>>15)|0;r=f>>>(r+7|0)&1|r<<1}else r=0;n=24404+(r<<2)|0;t[s+28>>2]=r;t[s+20>>2]=0;t[A>>2]=0;i=t[6026]|0;e=1<<r;if(!(i&e)){t[6026]=i|e;t[n>>2]=s;t[s+24>>2]=n;t[s+12>>2]=s;t[s+8>>2]=s;break}e=f<<((r|0)==31?0:25-(r>>>1)|0);r=t[n>>2]|0;while(1){if((t[r+4>>2]&-8|0)==(f|0)){D=213;break}n=r+16+(e>>>31<<2)|0;i=t[n>>2]|0;if(!i){D=212;break}else{e=e<<1;r=i}}if((D|0)==212){t[n>>2]=s;t[s+24>>2]=r;t[s+12>>2]=s;t[s+8>>2]=s;break}else if((D|0)==213){D=r+8|0;Q=t[D>>2]|0;t[Q+12>>2]=s;t[D>>2]=s;t[s+8>>2]=Q;t[s+12>>2]=r;t[s+24>>2]=0;break}}}else{Q=t[6029]|0;if((Q|0)==0|f>>>0<Q>>>0)t[6029]=f;t[6137]=f;t[6138]=o;t[6140]=0;t[6034]=t[6143];t[6033]=-1;t[6038]=24140;t[6037]=24140;t[6040]=24148;t[6039]=24148;t[6042]=24156;t[6041]=24156;t[6044]=24164;t[6043]=24164;t[6046]=24172;t[6045]=24172;t[6048]=24180;t[6047]=24180;t[6050]=24188;t[6049]=24188;t[6052]=24196;t[6051]=24196;t[6054]=24204;t[6053]=24204;t[6056]=24212;t[6055]=24212;t[6058]=24220;t[6057]=24220;t[6060]=24228;t[6059]=24228;t[6062]=24236;t[6061]=24236;t[6064]=24244;t[6063]=24244;t[6066]=24252;t[6065]=24252;t[6068]=24260;t[6067]=24260;t[6070]=24268;t[6069]=24268;t[6072]=24276;t[6071]=24276;t[6074]=24284;t[6073]=24284;t[6076]=24292;t[6075]=24292;t[6078]=24300;t[6077]=24300;t[6080]=24308;t[6079]=24308;t[6082]=24316;t[6081]=24316;t[6084]=24324;t[6083]=24324;t[6086]=24332;t[6085]=24332;t[6088]=24340;t[6087]=24340;t[6090]=24348;t[6089]=24348;t[6092]=24356;t[6091]=24356;t[6094]=24364;t[6093]=24364;t[6096]=24372;t[6095]=24372;t[6098]=24380;t[6097]=24380;t[6100]=24388;t[6099]=24388;Q=o+-40|0;k=f+8|0;k=(k&7|0)==0?0:0-k&7;D=f+k|0;k=Q-k|0;t[6031]=D;t[6028]=k;t[D+4>>2]=k|1;t[f+Q+4>>2]=40;t[6032]=t[6147]}}while(0);i=t[6028]|0;if(i>>>0>c>>>0){k=i-c|0;t[6028]=k;Q=t[6031]|0;D=Q+c|0;t[6031]=D;t[D+4>>2]=k|1;t[Q+4>>2]=c|3;Q=Q+8|0;h=C;return Q|0}}t[(Oi()|0)>>2]=12;Q=0;h=C;return Q|0}function mi(e){e=e|0;var i=0,r=0,n=0,A=0,f=0,o=0,a=0,s=0;if(!e)return;r=e+-8|0;A=t[6029]|0;e=t[e+-4>>2]|0;i=e&-8;s=r+i|0;do{if(!(e&1)){n=t[r>>2]|0;if(!(e&3))return;o=r+(0-n)|0;f=n+i|0;if(o>>>0<A>>>0)return;if((t[6030]|0)==(o|0)){e=s+4|0;i=t[e>>2]|0;if((i&3|0)!=3){a=o;i=f;break}t[6027]=f;t[e>>2]=i&-2;t[o+4>>2]=f|1;t[o+f>>2]=f;return}r=n>>>3;if(n>>>0<256){e=t[o+8>>2]|0;i=t[o+12>>2]|0;if((i|0)==(e|0)){t[6025]=t[6025]&~(1<<r);a=o;i=f;break}else{t[e+12>>2]=i;t[i+8>>2]=e;a=o;i=f;break}}A=t[o+24>>2]|0;e=t[o+12>>2]|0;do{if((e|0)==(o|0)){r=o+16|0;i=r+4|0;e=t[i>>2]|0;if(!e){e=t[r>>2]|0;if(!e){e=0;break}else i=r}while(1){r=e+20|0;n=t[r>>2]|0;if(n|0){e=n;i=r;continue}r=e+16|0;n=t[r>>2]|0;if(!n)break;else{e=n;i=r}}t[i>>2]=0}else{a=t[o+8>>2]|0;t[a+12>>2]=e;t[e+8>>2]=a}}while(0);if(A){i=t[o+28>>2]|0;r=24404+(i<<2)|0;if((t[r>>2]|0)==(o|0)){t[r>>2]=e;if(!e){t[6026]=t[6026]&~(1<<i);a=o;i=f;break}}else{t[A+16+(((t[A+16>>2]|0)!=(o|0)&1)<<2)>>2]=e;if(!e){a=o;i=f;break}}t[e+24>>2]=A;i=o+16|0;r=t[i>>2]|0;if(r|0){t[e+16>>2]=r;t[r+24>>2]=e}i=t[i+4>>2]|0;if(i){t[e+20>>2]=i;t[i+24>>2]=e;a=o;i=f}else{a=o;i=f}}else{a=o;i=f}}else{a=r;o=r}}while(0);if(o>>>0>=s>>>0)return;e=s+4|0;n=t[e>>2]|0;if(!(n&1))return;if(!(n&2)){if((t[6031]|0)==(s|0)){s=(t[6028]|0)+i|0;t[6028]=s;t[6031]=a;t[a+4>>2]=s|1;if((a|0)!=(t[6030]|0))return;t[6030]=0;t[6027]=0;return}if((t[6030]|0)==(s|0)){s=(t[6027]|0)+i|0;t[6027]=s;t[6030]=o;t[a+4>>2]=s|1;t[o+s>>2]=s;return}A=(n&-8)+i|0;r=n>>>3;do{if(n>>>0<256){i=t[s+8>>2]|0;e=t[s+12>>2]|0;if((e|0)==(i|0)){t[6025]=t[6025]&~(1<<r);break}else{t[i+12>>2]=e;t[e+8>>2]=i;break}}else{f=t[s+24>>2]|0;e=t[s+12>>2]|0;do{if((e|0)==(s|0)){r=s+16|0;i=r+4|0;e=t[i>>2]|0;if(!e){e=t[r>>2]|0;if(!e){r=0;break}else i=r}while(1){r=e+20|0;n=t[r>>2]|0;if(n|0){e=n;i=r;continue}r=e+16|0;n=t[r>>2]|0;if(!n)break;else{e=n;i=r}}t[i>>2]=0;r=e}else{r=t[s+8>>2]|0;t[r+12>>2]=e;t[e+8>>2]=r;r=e}}while(0);if(f|0){e=t[s+28>>2]|0;i=24404+(e<<2)|0;if((t[i>>2]|0)==(s|0)){t[i>>2]=r;if(!r){t[6026]=t[6026]&~(1<<e);break}}else{t[f+16+(((t[f+16>>2]|0)!=(s|0)&1)<<2)>>2]=r;if(!r)break}t[r+24>>2]=f;e=s+16|0;i=t[e>>2]|0;if(i|0){t[r+16>>2]=i;t[i+24>>2]=r}e=t[e+4>>2]|0;if(e|0){t[r+20>>2]=e;t[e+24>>2]=r}}}}while(0);t[a+4>>2]=A|1;t[o+A>>2]=A;if((a|0)==(t[6030]|0)){t[6027]=A;return}}else{t[e>>2]=n&-2;t[a+4>>2]=i|1;t[o+i>>2]=i;A=i}e=A>>>3;if(A>>>0<256){r=24140+(e<<1<<2)|0;i=t[6025]|0;e=1<<e;if(!(i&e)){t[6025]=i|e;e=r;i=r+8|0}else{i=r+8|0;e=t[i>>2]|0}t[i>>2]=a;t[e+12>>2]=a;t[a+8>>2]=e;t[a+12>>2]=r;return}e=A>>>8;if(e)if(A>>>0>16777215)e=31;else{o=(e+1048320|0)>>>16&8;s=e<<o;f=(s+520192|0)>>>16&4;s=s<<f;e=(s+245760|0)>>>16&2;e=14-(f|o|e)+(s<<e>>>15)|0;e=A>>>(e+7|0)&1|e<<1}else e=0;n=24404+(e<<2)|0;t[a+28>>2]=e;t[a+20>>2]=0;t[a+16>>2]=0;i=t[6026]|0;r=1<<e;do{if(i&r){i=A<<((e|0)==31?0:25-(e>>>1)|0);r=t[n>>2]|0;while(1){if((t[r+4>>2]&-8|0)==(A|0)){e=73;break}n=r+16+(i>>>31<<2)|0;e=t[n>>2]|0;if(!e){e=72;break}else{i=i<<1;r=e}}if((e|0)==72){t[n>>2]=a;t[a+24>>2]=r;t[a+12>>2]=a;t[a+8>>2]=a;break}else if((e|0)==73){o=r+8|0;s=t[o>>2]|0;t[s+12>>2]=a;t[o>>2]=a;t[a+8>>2]=s;t[a+12>>2]=r;t[a+24>>2]=0;break}}else{t[6026]=i|r;t[n>>2]=a;t[a+24>>2]=n;t[a+12>>2]=a;t[a+8>>2]=a}}while(0);s=(t[6033]|0)+-1|0;t[6033]=s;if(!s)e=24556;else return;while(1){e=t[e>>2]|0;if(!e)break;else e=e+8|0}t[6033]=-1;return}function Ii(e){e=e|0;var i=0,r=0;i=h;h=h+16|0;if((h|0)>=(d|0))X(16);r=i;t[r>>2]=Hi(t[e+60>>2]|0)|0;e=Ri(Z(6,r|0)|0)|0;h=i;return e|0}function Fi(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,A=0,f=0;A=h;h=h+32|0;if((h|0)>=(d|0))X(32);f=A;n=A+20|0;t[f>>2]=t[e+60>>2];t[f+4>>2]=0;t[f+8>>2]=i;t[f+12>>2]=n;t[f+16>>2]=r;if((Ri(W(140,f|0)|0)|0)<0){t[n>>2]=-1;e=-1}else e=t[n>>2]|0;h=A;return e|0}function Ri(e){e=e|0;if(e>>>0>4294963200){t[(Oi()|0)>>2]=0-e;e=-1}return e|0}function Oi(){return 24596}function Hi(e){e=e|0;return e|0}function Ui(e,i,r){e=e|0;i=i|0;r=r|0;var A=0,f=0;f=h;h=h+32|0;if((h|0)>=(d|0))X(32);A=f;t[e+36>>2]=3;if((t[e>>2]&64|0)==0?(t[A>>2]=t[e+60>>2],t[A+4>>2]=21523,t[A+8>>2]=f+16,q(54,A|0)|0):0)n[e+75>>0]=-1;A=Ni(e,i,r)|0;h=f;return A|0}function Ni(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,A=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,v=0;c=h;h=h+48|0;if((h|0)>=(d|0))X(48);l=c+16|0;f=c;A=c+32|0;a=e+28|0;n=t[a>>2]|0;t[A>>2]=n;s=e+20|0;n=(t[s>>2]|0)-n|0;t[A+4>>2]=n;t[A+8>>2]=i;t[A+12>>2]=r;n=n+r|0;o=e+60|0;t[f>>2]=t[o>>2];t[f+4>>2]=A;t[f+8>>2]=2;f=Ri(V(146,f|0)|0)|0;e:do{if((n|0)!=(f|0)){i=2;while(1){if((f|0)<0)break;n=n-f|0;v=t[A+4>>2]|0;w=f>>>0>v>>>0;A=w?A+8|0:A;i=i+(w<<31>>31)|0;v=f-(w?v:0)|0;t[A>>2]=(t[A>>2]|0)+v;w=A+4|0;t[w>>2]=(t[w>>2]|0)-v;t[l>>2]=t[o>>2];t[l+4>>2]=A;t[l+8>>2]=i;f=Ri(V(146,l|0)|0)|0;if((n|0)==(f|0)){u=3;break e}}t[e+16>>2]=0;t[a>>2]=0;t[s>>2]=0;t[e>>2]=t[e>>2]|32;if((i|0)==2)r=0;else r=r-(t[A+4>>2]|0)|0}else u=3}while(0);if((u|0)==3){v=t[e+44>>2]|0;t[e+16>>2]=v+(t[e+48>>2]|0);t[a>>2]=v;t[s>>2]=v}h=c;return r|0}function Si(){J(24600);return 24608}function _i(){$(24600);return}function Li(e){e=e|0;var i=0;do{if(e){if((t[e+76>>2]|0)<=-1){i=Gi(e)|0;break}i=Gi(e)|0}else{if(!(t[59]|0))i=0;else i=Li(t[59]|0)|0;e=t[(Si()|0)>>2]|0;if(e)do{if((t[e+20>>2]|0)>>>0>(t[e+28>>2]|0)>>>0)i=Gi(e)|0|i;e=t[e+56>>2]|0}while((e|0)!=0);_i()}}while(0);return i|0}function Gi(e){e=e|0;var i=0,r=0,n=0,A=0,f=0,o=0;i=e+20|0;o=e+28|0;if((t[i>>2]|0)>>>0>(t[o>>2]|0)>>>0?(ir[t[e+36>>2]&3](e,0,0)|0,(t[i>>2]|0)==0):0)e=-1;else{r=e+4|0;n=t[r>>2]|0;A=e+8|0;f=t[A>>2]|0;if(n>>>0<f>>>0)ir[t[e+40>>2]&3](e,n-f|0,1)|0;t[e+16>>2]=0;t[o>>2]=0;t[i>>2]=0;t[A>>2]=0;t[r>>2]=0;e=0}return e|0}function Xi(){}function xi(e,i){e=e|0;i=i|0;var r=0,n=0,A=0,t=0;t=e&65535;A=i&65535;r=R(A,t)|0;n=e>>>16;e=(r>>>16)+(R(A,n)|0)|0;A=i>>>16;i=R(A,t)|0;return(E=(e>>>16)+(R(A,n)|0)+(((e&65535)+i|0)>>>16)|0,e+i<<16|r&65535|0)|0}function Yi(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var A=0,t=0;A=e;t=r;r=xi(A,t)|0;e=E;return(E=(R(i,t)|0)+(R(n,A)|0)+e|e&0,r|0|0)|0}function zi(e,i,r){e=e|0;i=i|0;r=r|0;if((r|0)<32){E=i>>>r;return e>>>r|(i&(1<<r)-1)<<32-r}E=0;return i>>>r-32|0}function ji(e,i,r){e=e|0;i=i|0;r=r|0;if((r|0)<32){E=i<<r|(e&(1<<r)-1<<32-r)>>>32-r;return e<<r}E=e<<r-32;return 0}function Ji(e,i,r){e=e|0;i=i|0;r=r|0;var A=0,f=0,o=0;if((r|0)>=8192)return ee(e|0,i|0,r|0)|0;o=e|0;f=e+r|0;if((e&3)==(i&3)){while(e&3){if(!r)return o|0;n[e>>0]=n[i>>0]|0;e=e+1|0;i=i+1|0;r=r-1|0}r=f&-4|0;A=r-64|0;while((e|0)<=(A|0)){t[e>>2]=t[i>>2];t[e+4>>2]=t[i+4>>2];t[e+8>>2]=t[i+8>>2];t[e+12>>2]=t[i+12>>2];t[e+16>>2]=t[i+16>>2];t[e+20>>2]=t[i+20>>2];t[e+24>>2]=t[i+24>>2];t[e+28>>2]=t[i+28>>2];t[e+32>>2]=t[i+32>>2];t[e+36>>2]=t[i+36>>2];t[e+40>>2]=t[i+40>>2];t[e+44>>2]=t[i+44>>2];t[e+48>>2]=t[i+48>>2];t[e+52>>2]=t[i+52>>2];t[e+56>>2]=t[i+56>>2];t[e+60>>2]=t[i+60>>2];e=e+64|0;i=i+64|0}while((e|0)<(r|0)){t[e>>2]=t[i>>2];e=e+4|0;i=i+4|0}}else{r=f-4|0;while((e|0)<(r|0)){n[e>>0]=n[i>>0]|0;n[e+1>>0]=n[i+1>>0]|0;n[e+2>>0]=n[i+2>>0]|0;n[e+3>>0]=n[i+3>>0]|0;e=e+4|0;i=i+4|0}}while((e|0)<(f|0)){n[e>>0]=n[i>>0]|0;e=e+1|0;i=i+1|0}return o|0}function Ki(e,i,r){e=e|0;i=i|0;r=r|0;var A=0,f=0,o=0,a=0;o=e+r|0;i=i&255;if((r|0)>=67){while(e&3){n[e>>0]=i;e=e+1|0}A=o&-4|0;f=A-64|0;a=i|i<<8|i<<16|i<<24;while((e|0)<=(f|0)){t[e>>2]=a;t[e+4>>2]=a;t[e+8>>2]=a;t[e+12>>2]=a;t[e+16>>2]=a;t[e+20>>2]=a;t[e+24>>2]=a;t[e+28>>2]=a;t[e+32>>2]=a;t[e+36>>2]=a;t[e+40>>2]=a;t[e+44>>2]=a;t[e+48>>2]=a;t[e+52>>2]=a;t[e+56>>2]=a;t[e+60>>2]=a;e=e+64|0}while((e|0)<(A|0)){t[e>>2]=a;e=e+4|0}}while((e|0)<(o|0)){n[e>>0]=i;e=e+1|0}return o-r|0}function Wi(e){e=e|0;var i=0,r=0;r=t[u>>2]|0;i=r+e|0;if((e|0)>0&(i|0)<(r|0)|(i|0)<0){G()|0;K(12);return-1}t[u>>2]=i;if((i|0)>(L()|0)?(_()|0)==0:0){t[u>>2]=r;K(12);return-1}return r|0}function Vi(e,i){e=e|0;i=i|0;return er[e&1](i|0)|0}function qi(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;return ir[e&3](i|0,r|0,n|0)|0}function Zi(e){e=e|0;x(0);return 0}function $i(e,i,r){e=e|0;i=i|0;r=r|0;Y(1);return 0}var er=[Zi,Ii];var ir=[$i,Ui,Fi,Ni];return{F:ue,I:le,M:se,___errno_location:Oi,___muldi3:Yi,H:zi,U:ji,R:Li,C:mi,D:Mi,N:Ji,S:Ki,_:Wi,dynCall_ii:Vi,dynCall_iiii:qi,establishStackSpace:te,getTempRet0:ae,runPostSets:Xi,setTempRet0:oe,setThrew:fe,stackAlloc:re,stackRestore:Ae,stackSave:ne}}(t.asmGlobalArg,t.asmLibraryArg,k),se=ae.F;ae.F=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),se.apply(null,arguments)};var le=ae.I;ae.I=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),le.apply(null,arguments)};var ue=ae.M;ae.M=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ue.apply(null,arguments)};var ce=ae.___errno_location;ae.___errno_location=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ce.apply(null,arguments)};var we=ae.___muldi3;ae.___muldi3=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),we.apply(null,arguments)};var he=ae.H;ae.H=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),he.apply(null,arguments)};var de=ae.U;ae.U=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),de.apply(null,arguments)};var ve=ae.R;ae.R=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ve.apply(null,arguments)};var Be=ae.C;ae.C=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Be.apply(null,arguments)};var Ee=ae.D;ae.D=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ee.apply(null,arguments)};var ge=ae._;ae._=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ge.apply(null,arguments)};var be=ae.establishStackSpace;ae.establishStackSpace=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),be.apply(null,arguments)};var ke=ae.getTempRet0;ae.getTempRet0=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ke.apply(null,arguments)};var De=ae.setTempRet0;ae.setTempRet0=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),De.apply(null,arguments)};var Qe=ae.setThrew;ae.setThrew=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qe.apply(null,arguments)};var Ce=ae.stackAlloc;ae.stackAlloc=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ce.apply(null,arguments)};var ye=ae.stackRestore;ae.stackRestore=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ye.apply(null,arguments)};var Pe=ae.stackSave;ae.stackSave=function(){return B(z,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),B(!j,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pe.apply(null,arguments)};t.F=ae.F,t.I=ae.I,t.M=ae.M,t.___errno_location=ae.___errno_location,t.___muldi3=ae.___muldi3,t.H=ae.H,t.U=ae.U,t.R=ae.R,t.C=ae.C,t.D=ae.D,t.N=ae.N,t.S=ae.S,t._=ae._,t.establishStackSpace=ae.establishStackSpace,t.getTempRet0=ae.getTempRet0,t.runPostSets=ae.runPostSets,t.setTempRet0=ae.setTempRet0,t.setThrew=ae.setThrew,t.stackAlloc=ae.stackAlloc,t.stackRestore=ae.stackRestore;var Te,pe,Me=t.stackSave=ae.stackSave;t.dynCall_ii=ae.dynCall_ii,t.dynCall_iiii=ae.dynCall_iiii;if(t.asm=ae,t.intArrayFromString||(t.intArrayFromString=function(){Se("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.intArrayToString||(t.intArrayToString=function(){Se("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.ccall||(t.ccall=function(){Se("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.cwrap||(t.cwrap=function(){Se("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.setValue||(t.setValue=function(){Se("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getValue||(t.getValue=function(){Se("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.allocate||(t.allocate=function(){Se("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getMemory||(t.getMemory=function(){Se("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.Pointer_stringify||(t.Pointer_stringify=function(){Se("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.AsciiToString||(t.AsciiToString=function(){Se("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stringToAscii||(t.stringToAscii=function(){Se("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.UTF8ArrayToString||(t.UTF8ArrayToString=function(){Se("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.UTF8ToString||(t.UTF8ToString=function(){Se("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stringToUTF8Array||(t.stringToUTF8Array=function(){Se("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stringToUTF8||(t.stringToUTF8=function(){Se("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.lengthBytesUTF8||(t.lengthBytesUTF8=function(){Se("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.UTF16ToString||(t.UTF16ToString=function(){Se("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stringToUTF16||(t.stringToUTF16=function(){Se("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.lengthBytesUTF16||(t.lengthBytesUTF16=function(){Se("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.UTF32ToString||(t.UTF32ToString=function(){Se("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stringToUTF32||(t.stringToUTF32=function(){Se("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.lengthBytesUTF32||(t.lengthBytesUTF32=function(){Se("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.allocateUTF8||(t.allocateUTF8=function(){Se("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.stackTrace||(t.stackTrace=function(){Se("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addOnPreRun||(t.addOnPreRun=function(){Se("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addOnInit||(t.addOnInit=function(){Se("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addOnPreMain||(t.addOnPreMain=function(){Se("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addOnExit||(t.addOnExit=function(){Se("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addOnPostRun||(t.addOnPostRun=function(){Se("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.writeStringToMemory||(t.writeStringToMemory=function(){Se("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.writeArrayToMemory||(t.writeArrayToMemory=function(){Se("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.writeAsciiToMemory||(t.writeAsciiToMemory=function(){Se("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addRunDependency||(t.addRunDependency=function(){Se("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.removeRunDependency||(t.removeRunDependency=function(){Se("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS||(t.FS=function(){Se("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.FS_createFolder||(t.FS_createFolder=function(){Se("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createPath||(t.FS_createPath=function(){Se("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createDataFile||(t.FS_createDataFile=function(){Se("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createPreloadedFile||(t.FS_createPreloadedFile=function(){Se("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createLazyFile||(t.FS_createLazyFile=function(){Se("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createLink||(t.FS_createLink=function(){Se("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_createDevice||(t.FS_createDevice=function(){Se("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.FS_unlink||(t.FS_unlink=function(){Se("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),t.GL||(t.GL=function(){Se("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.staticAlloc||(t.staticAlloc=function(){Se("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.dynamicAlloc||(t.dynamicAlloc=function(){Se("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.warnOnce||(t.warnOnce=function(){Se("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.loadDynamicLibrary||(t.loadDynamicLibrary=function(){Se("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.loadWebAssemblyModule||(t.loadWebAssemblyModule=function(){Se("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getLEB||(t.getLEB=function(){Se("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getFunctionTables||(t.getFunctionTables=function(){Se("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.alignFunctionTables||(t.alignFunctionTables=function(){Se("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.registerFunctions||(t.registerFunctions=function(){Se("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.addFunction||(t.addFunction=function(){Se("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.removeFunction||(t.removeFunction=function(){Se("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getFuncWrapper||(t.getFuncWrapper=function(){Se("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.prettyPrint||(t.prettyPrint=function(){Se("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.makeBigInt||(t.makeBigInt=function(){Se("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.dynCall||(t.dynCall=function(){Se("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.getCompilerSetting||(t.getCompilerSetting=function(){Se("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.intArrayFromBase64||(t.intArrayFromBase64=function(){Se("'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.tryParseAsDataURI||(t.tryParseAsDataURI=function(){Se("'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),t.ALLOC_NORMAL||Object.defineProperty(t,"ALLOC_NORMAL",{get:function(){Se("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),t.ALLOC_STACK||Object.defineProperty(t,"ALLOC_STACK",{get:function(){Se("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),t.ALLOC_STATIC||Object.defineProperty(t,"ALLOC_STATIC",{get:function(){Se("'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),t.ALLOC_DYNAMIC||Object.defineProperty(t,"ALLOC_DYNAMIC",{get:function(){Se("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),t.ALLOC_NONE||Object.defineProperty(t,"ALLOC_NONE",{get:function(){Se("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),q)if(ee(q)||("function"==typeof t.locateFile?q=t.locateFile(q):t.memoryInitializerPrefixURL&&(q=t.memoryInitializerPrefixURL+q)),u||c){var me=t.readBinary(q);D.set(me,8)}else{Te="memory initializer",J++,t.monitorRunDependencies&&t.monitorRunDependencies(J),Te?(B(!V[Te]),V[Te]=1,null===K&&"undefined"!=typeof setInterval&&(K=setInterval(function(){if(v)return clearInterval(K),void(K=null);var e=!1;for(var i in V)e||(e=!0,t.printErr("still waiting on run dependencies:")),t.printErr("dependency: "+i);e&&t.printErr("(end of list)")},1e4))):t.printErr("warning: run dependency added without ID");var Ie=function(e){e.byteLength&&(e=new Uint8Array(e));for(var i=0;i<e.length;i++)B(0===D[8+i],"area for memory initializer should not have been touched before it's loaded");D.set(e,8),t.memoryInitializerRequest&&delete t.memoryInitializerRequest.response,function(e){if(J--,t.monitorRunDependencies&&t.monitorRunDependencies(J),e?(B(V[e]),delete V[e]):t.printErr("warning: run dependency removed without ID"),0==J&&(null!==K&&(clearInterval(K),K=null),W)){var i=W;W=null,i()}}("memory initializer")};function Fe(){t.readAsync(q,Ie,function(){throw"could not load memory initializer "+q})}var Re=oe(q);if(Re)Ie(Re.buffer);else if(t.memoryInitializerRequest){function Oe(){var e=t.memoryInitializerRequest,i=e.response;if(200!==e.status&&0!==e.status){var r=oe(t.memoryInitializerRequestURL);if(!r)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+e.status+", retrying "+q),void Fe();i=r.buffer}Ie(i)}t.memoryInitializerRequest.response?setTimeout(Oe,0):t.memoryInitializerRequest.addEventListener("load",Oe)}else Fe()}function He(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ue(e){function i(){t.calledRun||(t.calledRun=!0,v||(H(),z||(z=!0,_(G)),H(),_(X),t.onRuntimeInitialized&&t.onRuntimeInitialized(),B(!t.L,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),function(){if(H(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),Y.unshift(e);var e;_(Y)}()))}e=e||t.arguments,J>0||(B(0==(3&m)),y[(m>>2)-1]=34821223,y[(m>>2)-2]=2310721022,function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),L.unshift(e);var e;_(L)}(),J>0||t.calledRun||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),i()},1)):i(),H()))}He.prototype=new Error,He.prototype.constructor=He,W=function e(){t.calledRun||Ue(),t.calledRun||(W=e)},t.run=Ue,t.exit=function(e,i){!function(){var e=t.print,i=t.printErr,r=!1;t.print=t.printErr=function(e){r=!0};try{ne&&ne()}catch(n){}t.print=e,t.printErr=i,r&&d("stdio streams had content in them that was not flushed. you should set NO_EXIT_RUNTIME to 0 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),i&&t.noExitRuntime&&0===e||(t.noExitRuntime?i||t.printErr("exit("+e+") called, but NO_EXIT_RUNTIME is set, so halting execution but not exiting the runtime or preventing further async execution (build with NO_EXIT_RUNTIME=0, if you want a true shutdown)"):(v=!0,M=pe,H(),_(x),j=!0,t.onExit&&t.onExit(e)),u&&process.exit(e),t.quit(e,new He(e)))};var Ne=[];function Se(e){t.onAbort&&t.onAbort(e),void 0!==e?(t.print(e),t.printErr(e),e=JSON.stringify(e)):e="",v=!0;var i="abort("+e+") at "+O();throw Ne&&Ne.forEach(function(r){i=r(i,e)}),i}if(t.abort=Se,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return t.noExitRuntime=!0,Ue(),A}();self.onmessage=function(e){switch(e.data.command){case"encode":break;case"decode":i=e.data.buffer,self.postMessage({command:"decode",amr:n.decode(i)})}var i}}}),c=function(){var e=function(){var e,i={toWAV:function(e){var i=this.k(e);if(!i)return null;var r=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),n=new Uint8Array(r.length+this.WAV_HEADER_SIZE),A=0,t=function(e){var i=new Uint8Array(2);new Int16Array(i.buffer)[0]=e,n.set(i,A),A+=2},f=function(e){var i=new Uint8Array(4);new Int32Array(i.buffer)[0]=e,n.set(i,A),A+=4},o=function(e){var i=new TextEncoder("utf-8").encode(e);n.set(i,A),A+=i.length};return o("RIFF"),f(36+r.length),o("WAVEfmt "),f(16),t(1),t(1),f(8e3),f(16e3),t(2),t(16),o("data"),f(r.length),n.set(r,A),n},decode:function(e){var i=this.k(e);if(!i)return null;for(var r=new Float32Array(i.length),n=0;n<r.length;n++)r[n]=i[n]/32768;return r},k:function(i){if(String.fromCharCode.apply(null,i.subarray(0,this.AMR_HEADER.length))!==this.AMR_HEADER)return null;var r=this.Decoder_Interface_init();if(!r)return null;var n=new Int16Array(Math.floor(i.length/6*this.PCM_BUFFER_COUNT)),A=e.D(this.AMR_BUFFER_COUNT),t=new Uint8Array(e.HEAPU8.buffer,A,this.AMR_BUFFER_COUNT);A=e.D(2*this.PCM_BUFFER_COUNT);for(var f=new Int16Array(e.HEAPU8.buffer,A,this.PCM_BUFFER_COUNT),o=6,a=0;o+1<i.length&&a+1<n.length;){var s=this.SIZES[i[o]>>3&15];if(o+s+1>i.length)break;if(t.set(i.subarray(o,o+s+1)),this.Decoder_Interface_Decode(r,t.byteOffset,f.byteOffset,0),a+this.PCM_BUFFER_COUNT>n.length){var l=new Int16Array(2*n.length);l.set(n.subarray(0,a)),n=l}n.set(f,a),a+=this.PCM_BUFFER_COUNT,o+=s+1}return e.C(t.byteOffset),e.C(f.byteOffset),this.Decoder_Interface_exit(r),n.subarray(0,a)},encode:function(i,r,n){if(r<8e3)return console.error("pcmSampleRate should not be less than 8000."),null;void 0===n&&(n=this.Mode.MR795);var A=this.Encoder_Interface_init();if(!A)return null;var t=e.D(2*this.PCM_BUFFER_COUNT),f=new Int16Array(e.HEAPU8.buffer,t,this.PCM_BUFFER_COUNT);t=e.D(this.AMR_BUFFER_COUNT);for(var o=new Uint8Array(e.HEAPU8.buffer,t,this.AMR_BUFFER_COUNT),a=r/8e3,s=Math.floor(i.length/a),l=new Int16Array(s),u=0;u<s;u++)l[u]=32767*i[Math.floor(u*a)];var c=this.SIZES[n]+1,w=new Uint8Array(Math.ceil(s/this.PCM_BUFFER_COUNT*c)+this.AMR_HEADER.length);w.set(new TextEncoder("utf-8").encode(this.AMR_HEADER));for(var h=0,d=this.AMR_HEADER.length;h+this.PCM_BUFFER_COUNT<l.length&&d+c<w.length;){f.set(l.subarray(h,h+this.PCM_BUFFER_COUNT));var v=this.Encoder_Interface_Encode(A,n,f.byteOffset,o.byteOffset,0);if(v!=c){console.error([v,c]);break}w.set(o.subarray(0,v),d),h+=this.PCM_BUFFER_COUNT,d+=v}return e.C(f.byteOffset),e.C(o.byteOffset),this.Encoder_Interface_exit(A),w.subarray(0,d)},Decoder_Interface_init:function(){return console.warn("Decoder_Interface_init not initialized."),0},Decoder_Interface_exit:function(e){console.warn("Decoder_Interface_exit not initialized.")},Decoder_Interface_Decode:function(e,i,r,n){console.warn("Decoder_Interface_Decode not initialized.")},Encoder_Interface_init:function(e){return console.warn("Encoder_Interface_init not initialized."),0},Encoder_Interface_exit:function(e){console.warn("Encoder_Interface_exit not initialized.")},Encoder_Interface_Encode:function(e,i,r,n,A){console.warn("Encoder_Interface_Encode not initialized.")},Mode:{MR475:0,MR515:1,MR59:2,MR67:3,MR74:4,MR795:5,MR102:6,MR122:7,MRDTX:8},SIZES:[12,13,15,17,19,20,26,31,5,6,5,5,0,0,0,0],AMR_BUFFER_COUNT:32,PCM_BUFFER_COUNT:160,AMR_HEADER:"#!AMR\n",WAV_HEADER_SIZE:44};(e={canvas:{},print:function(e){console.log(e)},L:function(){return i.Decoder_Interface_init=e.G,i.Decoder_Interface_exit=e.X,i.Decoder_Interface_Decode=e.Y,i.Encoder_Interface_init=e.J,i.Encoder_Interface_exit=e.K,i.Encoder_Interface_Encode=e.W,0}})||(e=(void 0!==e?e:null)||{});var r={};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);var A="object"==typeof window,t="function"==typeof importScripts,f=!A&&!t;if(f)e.print||(e.print=print),"undefined"!=typeof printErr&&(e.printErr=printErr),"undefined"!=typeof read?e.read=read:e.read=function(){throw"no read() available (jsc?)"},e.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var i=read(e,"binary");return h("object"==typeof i),i},"undefined"!=typeof scriptArgs?e.arguments=scriptArgs:void 0!==arguments&&(e.arguments=arguments);else{if(!A&&!t)throw"Unknown runtime environment. Where are we?";e.read=function(e){var i=new XMLHttpRequest;return i.open("GET",e,!1),i.send(null),i.responseText},void 0!==arguments&&(e.arguments=arguments),"undefined"!=typeof console?(e.print||(e.print=function(e){console.log(e)}),e.printErr||(e.printErr=function(e){console.log(e)})):e.print||(e.print=function(e){}),t&&(e.load=importScripts),void 0===e.setWindowTitle&&(e.setWindowTitle=function(e){document.title=e})}for(var n in!e.load&&e.read&&(e.load=function(i){var r;r=e.read(i),eval.call(null,r)}),e.print||(e.print=function(){}),e.printErr||(e.printErr=e.print),e.arguments||(e.arguments=[]),e.thisProgram||(e.thisProgram="./this.program"),e.print=e.print,e.printErr=e.printErr,e.preRun=[],e.postRun=[],r)r.hasOwnProperty(n)&&(e[n]=r[n]);var o={setTempRet0:function(e){l=e},getTempRet0:function(){return l},stackSave:function(){return G},stackRestore:function(e){G=e},getNativeTypeSize:function(e){switch(e){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("*"===e[e.length-1])return o.QUANTUM_SIZE;if("i"===e[0]){var i=parseInt(e.substr(1));return h(i%8==0),i/8}return 0}},getNativeFieldSize:function(e){return Math.max(o.getNativeTypeSize(e),o.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,i){return"double"===i||"i64"===i?7&e&&(h(4==(7&e)),e+=4):h(0==(3&e)),e},getAlignSize:function(e,i,r){return r||"i64"!=e&&"double"!=e?e?Math.min(i||(e?o.getNativeFieldSize(e):0),o.QUANTUM_SIZE):Math.min(i,8):8},dynCall:function(i,r,n){return n&&n.length?(n.splice||(n=Array.prototype.slice.call(n)),n.splice(0,0,r),e["dynCall_"+i].apply(null,n)):e["dynCall_"+i].call(null,r)},functionPointers:[],addFunction:function(e){for(var i=0;i<o.functionPointers.length;i++)if(!o.functionPointers[i])return o.functionPointers[i]=e,2*(1+i);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){o.functionPointers[(e-2)/2]=null},warnOnce:function(i){o.warnOnce.shown||(o.warnOnce.shown={}),o.warnOnce.shown[i]||(o.warnOnce.shown[i]=1,e.printErr(i))},funcWrappers:{},getFuncWrapper:function(e,i){h(i),o.funcWrappers[i]||(o.funcWrappers[i]={});var r=o.funcWrappers[i];return r[e]||(r[e]=function(){return o.dynCall(i,e,arguments)}),r[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var i=G;return G=15+(G=G+e|0)&-16,i},staticAlloc:function(e){var i=_;return _=15+(_=_+e|0)&-16,i},dynamicAlloc:function(e){var i=X;return(X=15+(X=X+e|0)&-16)>=Y&&!void Le("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+Y+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")?(X=i,0):i},alignMemory:function(e,i){return e=Math.ceil(e/(i||16))*(i||16)},makeBigInt:function(e,i,r){return r?+(e>>>0)+4294967296*+(i>>>0):+(e>>>0)+4294967296*+(0|i)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};e.Runtime=o;var a,s,l,u,c,w=!1;function h(e,i){e||Le("Assertion failed: "+i)}function d(i){var r=e["_"+i];if(!r)try{r=[eval][0]("_"+i)}catch(n){}return h(r,"Cannot call unknown function "+i+" (perhaps LLVM optimizations or closure removed it?)"),r}function v(e,i,r,n){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":T[e>>0]=i;break;case"i16":M[e>>1]=i;break;case"i32":I[e>>2]=i;break;case"i64":s=[i>>>0,(a=i,+fe(a)>=1?a>0?(0|se(+ae(a/4294967296),4294967295))>>>0:~~+oe((a-+(~~a>>>0))/4294967296)>>>0:0)],I[e>>2]=s[0],I[e+4>>2]=s[1];break;case"float":R[e>>2]=i;break;case"double":O[e>>3]=i;break;default:Le("invalid type for setValue: "+r)}}function B(e,i,r){switch("*"===(i=i||"i8").charAt(i.length-1)&&(i="i32"),i){case"i1":case"i8":return T[e>>0];case"i16":return M[e>>1];case"i32":case"i64":return I[e>>2];case"float":return R[e>>2];case"double":return O[e>>3];default:Le("invalid type for setValue: "+i)}return null}!function(){var e={stackSave:function(){o.stackSave()},stackRestore:function(){o.stackRestore()},arrayToC:function(e){var i=o.stackAlloc(e.length);return Ae(e,i),i},stringToC:function(e){var i=0;return null!=e&&0!==e&&ne(e,i=o.stackAlloc(1+(e.length<<2))),i}},i={string:e.stringToC,array:e.arrayToC};c=function(e,r,n,A,t){var f=d(e),a=[],s=0;if(A)for(var l=0;l<A.length;l++){var u=i[n[l]];u?(0===s&&(s=o.stackSave()),a[l]=u(A[l])):a[l]=A[l]}var c=f.apply(null,a);if("string"===r&&(c=k(c)),0!==s){if(t&&t.async)return void EmterpreterAsync.asyncFinalizers.push(function(){o.stackRestore(s)});o.stackRestore(s)}return c};var r=/^function\s\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function n(e){var i=e.toString().match(r);return i?{arguments:(i=i.slice(1))[0],body:i[1],returnValue:i[2]}:{}}var A={};for(var t in e)e.hasOwnProperty(t)&&(A[t]=n(e[t]));u=function(e,i,r){r=r||[];var t=d(e),f=r.every(function(e){return"number"===e}),o="string"!==i;if(o&&f)return t;var a=r.map(function(e,i){return"$"+i}),s="(function("+a.join(",")+") {",l=r.length;if(!f){s+="var stack = "+A.stackSave.body+";";for(var u=0;u<l;u++){var c=a[u],w=r[u];if("number"!==w){var h=A[w+"ToC"];s+="var "+h.arguments+" = "+c+";",s+=h.body+";",s+=c+"="+h.returnValue+";"}}}return s+="var ret = "+n(function(){return t}).returnValue+"("+a.join(",")+");",o||(s+="ret = "+n(function(){return k}).returnValue+"(ret);"),f||(s+=A.stackRestore.body.replace("()","(stack)")+";"),s+="return ret})",[eval][0](s)}}(),e.ccall=c,e.cwrap=u,e.setValue=v,e.getValue=B;var E=2,g=4;function b(e,i,r,n){var A,t;"number"==typeof e?(A=!0,t=e):(A=!1,t=e.length);var f,a="string"==typeof i?i:null;if(f=r==g?n:[Oe,o.stackAlloc,o.staticAlloc,o.dynamicAlloc][void 0===r?E:r](Math.max(t,a?1:i.length)),A){var s;for(n=f,h(0==(3&f)),s=f+(-4&t);n<s;n+=4)I[n>>2]=0;for(s=f+t;n<s;)T[n++>>0]=0;return f}if("i8"===a)return e.subarray||e.slice?p.set(e,f):p.set(new Uint8Array(e),f),f;for(var l,u,c,w=0;w<t;){var d=e[w];"function"==typeof d&&(d=o.getFunctionIndex(d)),0!==(l=a||i[w])?("i64"==l&&(l="i32"),v(f+w,d,l),c!==l&&(u=o.getNativeTypeSize(l),c=l),w+=u):w++}return f}function k(i,r){if(0===r||!i)return"";for(var n,A=0,t=0;A|=n=p[i+t>>0],(0!=n||r)&&(t++,!r||t!=r););r||(r=t);var f="";if(A<128){for(var o;r>0;)o=String.fromCharCode.apply(String,p.subarray(i,i+Math.min(r,1024))),f=f?f+o:o,i+=1024,r-=1024;return f}return e.UTF8ToString(i)}function D(e,i){for(var r,n,A,t,f,o="";;){if(!(r=e[i++]))return o;if(128&r)if(n=63&e[i++],192!=(224&r))if(A=63&e[i++],224==(240&r)?r=(15&r)<<12|n<<6|A:(t=63&e[i++],240==(248&r)?r=(7&r)<<18|n<<12|A<<6|t:(f=63&e[i++],r=248==(252&r)?(3&r)<<24|n<<18|A<<12|t<<6|f:(1&r)<<30|n<<24|A<<18|t<<12|f<<6|63&e[i++])),r<65536)o+=String.fromCharCode(r);else{var a=r-65536;o+=String.fromCharCode(55296|a>>10,56320|1023&a)}else o+=String.fromCharCode((31&r)<<6|n);else o+=String.fromCharCode(r)}}function Q(e,i,r,n){if(!(n>0))return 0;for(var A=r,t=r+n-1,f=0;f<e.length;++f){var o=e.charCodeAt(f);if(o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++f)),o<=127){if(r>=t)break;i[r++]=o}else if(o<=2047){if(r+1>=t)break;i[r++]=192|o>>6,i[r++]=128|63&o}else if(o<=65535){if(r+2>=t)break;i[r++]=224|o>>12,i[r++]=128|o>>6&63,i[r++]=128|63&o}else if(o<=2097151){if(r+3>=t)break;i[r++]=240|o>>18,i[r++]=128|o>>12&63,i[r++]=128|o>>6&63,i[r++]=128|63&o}else if(o<=67108863){if(r+4>=t)break;i[r++]=248|o>>24,i[r++]=128|o>>18&63,i[r++]=128|o>>12&63,i[r++]=128|o>>6&63,i[r++]=128|63&o}else{if(r+5>=t)break;i[r++]=252|o>>30,i[r++]=128|o>>24&63,i[r++]=128|o>>18&63,i[r++]=128|o>>12&63,i[r++]=128|o>>6&63,i[r++]=128|63&o}}return i[r]=0,r-A}function C(e){for(var i=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++i:i+=n<=2047?2:n<=65535?3:n<=2097151?4:n<=67108863?5:6}return i}function y(i){var r=!!e.___cxa_demangle;if(r)try{var n=Oe(i.length);ne(i.substr(1),n);var A=Oe(4),t=e.___cxa_demangle(n,0,0,A);if(0===B(A,"i32")&&t)return k(t)}catch(c){}finally{n&&Ie(n),A&&Ie(A),t&&Ie(t)}var f=3,a={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:"..."},s=[],l=!0,u=i;try{if("Object._main"==i||"_main"==i)return"main()";if("number"==typeof i&&(i=k(i)),"_"!==i[0])return i;if("_"!==i[1])return i;if("Z"!==i[2])return i;switch(i[3]){case"n":return"operator new()";case"d":return"operator delete()"}u=function e(r,n,A){n=n||1/0;var t,o="",u=[];if("N"===i[f]){if(t=function(){"K"===i[++f]&&f++;for(var e=[];"E"!==i[f];)if("S"!==i[f])if("C"!==i[f]){var r=parseInt(i.substr(f)),n=r.toString().length;if(!r||!n){f--;break}var A=i.substr(f+n,r);e.push(A),s.push(A),f+=n+r}else e.push(e[e.length-1]),f+=2;else{f++;var t=i.indexOf("_",f),o=i.substring(f,t)||0;e.push(s[o]||"?"),f=t+1}return f++,e}().join("::"),0==--n)return r?[t]:t}else if(("K"===i[f]||l&&"L"===i[f])&&f++,d=parseInt(i.substr(f))){var c=d.toString().length;t=i.substr(f+c,d),f+=c+d}if(l=!1,"I"===i[f]){f++;var w=e(!0);o+=e(!0,1,!0)[0]+" "+t+"<"+w.join(", ")+">"}else o=t;e:for(;f<i.length&&n-- >0;){var h=i[f++];if(h in a)u.push(a[h]);else switch(h){case"P":u.push(e(!0,1,!0)[0]+"*");break;case"R":u.push(e(!0,1,!0)[0]+"&");break;case"L":f++;var d=i.indexOf("E",f)-f;u.push(i.substr(f,d)),f+=d+2;break;case"A":if(d=parseInt(i.substr(f)),f+=d.toString().length,"_"!==i[f])throw"?";f++,u.push(e(!0,1,!0)[0]+" ["+d+"]");break;case"E":break e;default:o+="?"+h;break e}}return A||1!==u.length||"void"!==u[0]||(u=[]),r?(o&&u.push(o+"?"),u):o+"("+u.join(", ")+")"}()}catch(c){u+="?"}return u.indexOf("?")>=0&&!r&&o.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),u}function P(){return function(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(i){e=i}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}().replace(/__Z[\w\d_]+/g,function(e){var i=y(e);return e===i?e:e+" ["+i+"]"})}e.ALLOC_NORMAL=0,e.ALLOC_STACK=1,e.ALLOC_STATIC=E,e.ALLOC_DYNAMIC=3,e.ALLOC_NONE=g,e.allocate=b,e.getMemory=function(e){return L?ve.called&&Z?Oe(e):o.dynamicAlloc(e):o.staticAlloc(e)},e.Pointer_stringify=k,e.AsciiToString=function(e){for(var i="";;){var r=T[e++>>0];if(!r)return i;i+=String.fromCharCode(r)}},e.stringToAscii=function(e,i){return te(e,i,!1)},e.UTF8ArrayToString=D,e.UTF8ToString=function(e){return D(p,e)},e.stringToUTF8Array=Q,e.stringToUTF8=function(e,i,r){return Q(e,p,i,r)},e.lengthBytesUTF8=C,e.UTF16ToString=function(e){for(var i=0,r="";;){var n=M[e+2*i>>1];if(0==n)return r;++i,r+=String.fromCharCode(n)}},e.stringToUTF16=function(e,i,r){if(void 0===r&&(r=2147483647),r<2)return 0;for(var n=i,A=(r-=2)<2*e.length?r/2:e.length,t=0;t<A;++t){var f=e.charCodeAt(t);M[i>>1]=f,i+=2}return M[i>>1]=0,i-n},e.lengthBytesUTF16=function(e){return 2*e.length},e.UTF32ToString=function(e){for(var i=0,r="";;){var n=I[e+4*i>>2];if(0==n)return r;if(++i,n>=65536){var A=n-65536;r+=String.fromCharCode(55296|A>>10,56320|1023&A)}else r+=String.fromCharCode(n)}},e.stringToUTF32=function(e,i,r){if(void 0===r&&(r=2147483647),r<4)return 0;for(var n=i,A=n+r-4,t=0;t<e.length;++t){var f=e.charCodeAt(t);if(f>=55296&&f<=57343&&(f=65536+((1023&f)<<10)|1023&e.charCodeAt(++t)),I[i>>2]=f,(i+=4)+4>A)break}return I[i>>2]=0,i-n},e.lengthBytesUTF32=function(e){for(var i=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,i+=4}return i},e.stackTrace=P;for(var T,p,M,m,I,F,R,O,H,U,N,S=4096,_=0,L=!1,G=0,X=0,x=e.TOTAL_STACK||65536,Y=e.TOTAL_MEMORY||524288,z=65536;z<Y||z<2*x;)z<16777216?z*=2:z+=16777216;function j(e){for(;e.length>0;){var i=e.shift();if("function"!=typeof i){var r=i.func;"number"==typeof r?void 0===i.arg?o.dynCall("v",r):o.dynCall("vi",r,[i.arg]):r(void 0===i.arg?null:i.arg)}else i()}}z!==Y&&(e.printErr("increasing TOTAL_MEMORY to "+z+" to be compliant with the asm.js spec (and given that TOTAL_STACK="+x+")"),Y=z),h("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support"),N=new ArrayBuffer(Y),T=new Int8Array(N),M=new Int16Array(N),I=new Int32Array(N),p=new Uint8Array(N),m=new Uint16Array(N),F=new Uint32Array(N),R=new Float32Array(N),O=new Float64Array(N),I[0]=255,h(255===p[0]&&0===p[3],"Typed arrays 2 must be run on a little-endian system"),e.HEAP=void 0,e.buffer=N,e.HEAP8=T,e.HEAP16=M,e.HEAP32=I,e.HEAPU8=p,e.HEAPU16=m,e.HEAPU32=F,e.HEAPF32=R,e.HEAPF64=O;var J=[],K=[],W=[],V=[],q=[],Z=!1;function $(){Z||(Z=!0,j(K))}function ee(e){J.unshift(e)}function ie(e){q.unshift(e)}function re(e,i,r){var n=r>0?r:C(e)+1,A=new Array(n),t=Q(e,A,0,A.length);return i&&(A.length=t),A}function ne(e,i,r){for(var n=re(e,r),A=0;A<n.length;){var t=n[A];T[i+A>>0]=t,A+=1}}function Ae(e,i){for(var r=0;r<e.length;r++)T[i++>>0]=e[r]}function te(e,i,r){for(var n=0;n<e.length;++n)T[i++>>0]=e.charCodeAt(n);r||(T[i>>0]=0)}e.addOnPreRun=ee,e.addOnInit=function(e){K.unshift(e)},e.addOnPreMain=function(e){W.unshift(e)},e.addOnExit=function(e){V.unshift(e)},e.addOnPostRun=ie,e.intArrayFromString=re,e.intArrayToString=function(e){for(var i=[],r=0;r<e.length;r++){var n=e[r];n>255&&(n&=255),i.push(String.fromCharCode(n))}return i.join("")},e.writeStringToMemory=ne,e.writeArrayToMemory=Ae,e.writeAsciiToMemory=te,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,i){var r=65535&e,n=65535&i;return r*n+((e>>>16)*n+r*(i>>>16)<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var i=0;i<32;i++)if(e&1<<31-i)return i;return 32}),Math.clz32=Math.clz32;var fe=Math.abs,oe=Math.ceil,ae=Math.floor,se=Math.min,le=0,ue=null,ce=null;function we(i){le++,e.monitorRunDependencies&&e.monitorRunDependencies(le)}function he(i){if(le--,e.monitorRunDependencies&&e.monitorRunDependencies(le),0==le&&(null!==ue&&(clearInterval(ue),ue=null),ce)){var r=ce;ce=null,r()}}e.addRunDependency=we,e.removeRunDependency=he,e.preloadedImages={},e.preloadedAudios={},_=31784,K.push(),b([154,14,0,0,188,14,0,0,226,14,0,0,8,15,0,0,46,15,0,0,84,15,0,0,130,15,0,0,208,15,0,0,66,16,0,0,108,16,0,0,42,17,0,0,248,17,0,0,228,18,0,0,240,19,0,0,24,21,0,0,86,22,0,0,238,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,13,0,15,0,17,0,19,0,20,0,26,0,31,0,5,0,6,0,5,0,5,0,0,0,0,0,0,0,0,0,1,252,146,252,36,253,182,253,72,254,218,254,108,255,0,0,0,0,32,78,32,78,32,78,32,78,32,78,80,70,0,64,0,32,0,0,0,0,255,127,112,125,112,125,112,125,112,125,112,125,153,89,255,127,112,125,112,125,102,102,102,38,153,25,153,25,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,0,96,0,72,0,54,128,40,96,30,200,22,22,17,209,12,157,9,54,7,102,70,184,38,75,21,182,11,113,6,139,3,243,1,18,1,151,0,83,0,154,89,185,62,232,43,188,30,132,21,16,15,139,10,97,7,42,5,157,3,44,3,128,0,30,2,140,0,57,11,111,4,218,8,74,13,19,8,51,2,133,49,135,2,36,16,6,7,225,21,165,20,9,30,118,1,151,14,185,1,160,42,78,10,31,46,190,9,10,80,29,3,98,20,163,2,68,26,162,32,162,20,160,6,208,5,172,1,250,22,196,1,212,20,232,15,255,13,244,4,165,9,133,3,22,62,237,3,134,58,199,12,91,40,250,18,51,14,229,7,36,10,67,3,72,48,28,19,174,47,168,6,120,52,68,6,158,35,37,9,128,15,2,6,103,21,208,38,211,14,161,1,79,5,158,1,56,14,33,6,59,31,213,13,141,44,133,2,104,33,123,2,216,15,97,5,224,64,236,23,156,44,188,2,215,7,95,2,127,48,42,6,111,43,46,18,112,53,172,6,214,46,205,4,60,31,129,28,175,51,83,22,124,9,135,4,25,8,149,7,74,24,233,23,218,13,12,7,221,34,10,7,231,33,44,6,111,54,248,13,1,52,93,24,254,23,106,4,106,23,198,6,61,55,54,18,7,44,249,12,194,47,15,6,107,54,199,11,217,19,224,40,228,36,50,26,153,6,171,2,156,5,26,5,44,28,93,15,242,15,153,10,113,30,192,2,222,58,34,3,155,24,92,20,241,16,237,20,20,26,29,2,174,23,114,2,83,53,116,14,234,44,104,9,28,63,204,2,145,47,239,2,129,31,225,44,170,24,208,8,114,17,240,1,125,28,11,2,229,39,249,14,202,32,221,11,211,32,198,3,148,55,88,7,255,33,33,21,11,64,255,18,252,28,187,7,201,23,206,4,155,36,46,17,222,56,35,13,247,52,57,11,107,51,185,5,158,21,142,6,82,51,179,57,170,28,88,2,38,5,36,2,156,16,211,13,60,39,60,9,91,41,110,2,32,51,157,2,46,55,198,13,175,19,56,38,234,59,107,2,43,12,78,2,58,64,197,11,182,60,72,16,177,60,75,6,45,60,204,4,151,62,83,36,110,29,112,19,198,7,189,4,183,44,133,4,224,48,143,21,3,37,84,10,36,30,242,7,224,51,191,8,139,62,229,19,130,31,105,26,99,39,133,5,138,19,43,9,235,48,87,23,22,59,83,11,88,71,241,8,211,61,223,9,137,63,14,40,59,57,55,44,5,7,81,1,43,12,141,1,182,13,112,11,240,17,110,10,95,29,116,2,151,44,144,2,58,23,131,9,144,25,199,28,46,32,61,3,160,15,95,3,48,39,188,9,185,62,223,13,28,71,30,4,215,23,174,5,252,22,220,30,64,73,140,13,72,7,32,2,238,35,171,2,103,45,64,16,242,17,108,6,86,12,133,4,81,62,0,10,61,48,149,14,12,68,140,20,218,23,212,7,101,11,206,6,83,64,137,20,147,65,144,6,53,67,223,6,165,18,159,12,218,28,147,23,6,56,28,39,195,15,186,1,98,16,202,1,254,35,194,8,3,29,121,16,60,50,33,3,178,43,57,3,104,49,36,8,156,50,154,25,33,37,228,3,229,25,217,3,41,41,198,9,185,59,142,19,58,49,7,8,124,60,117,6,66,63,9,27,151,55,158,22,66,10,60,3,239,21,150,6,95,53,146,22,84,14,18,6,49,44,73,10,42,38,179,5,179,54,125,18,25,62,147,24,134,24,78,7,230,30,237,8,82,66,219,17,192,64,9,15,144,59,7,9,151,62,172,12,123,56,144,69,71,46,203,10,189,7,127,5,120,5,108,3,239,16,219,13,39,17,114,16,29,21,168,2,53,68,13,3,101,25,254,19,155,31,253,29,187,28,26,3,141,32,158,4,193,58,88,12,80,58,223,11,197,79,112,3,209,56,84,3,49,48,116,57,248,26,128,7,129,16,165,3,26,32,63,4,163,41,244,15,98,39,181,17,175,10,72,3,177,80,57,4,71,65,78,23,1,62,226,17,119,42,14,10,189,14,142,4,183,56,204,15,219,80,67,10,115,59,174,10,170,59,138,8,113,24,154,12,69,51,24,76,28,28,162,3,158,9,82,6,163,17,20,12,28,54,181,16,220,40,65,3,187,67,42,3,251,65,241,8,186,60,25,32,35,53,148,6,125,12,42,7,76,62,4,11,196,61,207,20,110,66,134,9,148,65,46,5,55,61,220,31,206,45,108,33,178,14,5,8,91,37,37,5,249,52,134,26,195,47,144,7,244,31,222,13,231,51,242,6,171,63,199,25,163,63,78,30,73,33,247,9,57,28,85,10,93,71,65,29,245,65,200,8,218,69,68,11,113,67,0,13,201,36,194,78,34,43,128,32,6,5,108,2,151,5,71,2,105,23,241,8,138,15,42,14,24,20,240,2,97,52,62,3,177,21,44,11,244,45,20,23,241,41,48,2,70,21,52,2,9,52,192,11,170,46,99,14,175,77,30,3,97,38,216,2,95,53,44,34,223,28,237,11,211,9,10,3,162,23,65,3,69,25,210,19,113,32,159,9,253,23,73,7,204,59,238,4,72,56,195,17,95,53,163,17,65,12,167,11,175,9,235,4,240,58,39,18,22,60,47,10,156,56,88,9,174,48,233,9,115,29,133,11,109,50,28,47,92,21,172,2,69,12,210,2,217,19,250,4,188,49,104,16,198,59,169,2,139,30,80,2,134,25,229,7,94,64,33,34,52,52,114,3,21,21,131,3,64,57,130,8,149,57,131,16,190,55,18,5,105,54,237,7,117,60,58,29,199,61,220,17,217,9,221,7,198,19,12,7,39,20,182,25,218,27,13,14,168,42,75,6,209,45,172,6,7,66,127,13,140,63,240,25,90,36,239,3,153,36,58,8,238,74,173,19,153,48,173,16,47,62,52,5,253,59,184,13,122,46,61,55,229,62,198,26,218,7,225,2,195,14,93,3,190,44,64,11,236,13,212,13,97,35,217,4,103,48,128,3,98,33,21,18,41,45,144,22,193,31,77,2,26,32,76,2,40,73,171,14,173,50,77,12,113,61,246,2,250,64,242,2,118,59,130,43,255,61,160,8,65,18,98,2,234,39,166,2,153,59,50,16,97,22,255,12,185,32,134,6,150,77,17,9,90,60,135,21,230,54,105,21,96,22,72,11,156,29,66,5,48,56,205,20,108,63,110,15,14,59,160,14,202,59,155,5,5,57,230,15,13,48,80,61,193,29,163,6,122,8,116,3,107,17,215,17,174,70,234,12,198,49,47,3,78,58,139,3,168,58,185,16,158,60,176,32,74,70,63,4,54,9,97,3,153,63,203,14,63,61,244,17,228,63,254,5,200,64,162,8,193,65,225,37,57,62,161,17,205,12,61,4,171,37,139,8,197,46,180,23,239,35,110,17,251,34,93,6,49,40,246,11,97,64,35,20,106,60,154,27,110,53,239,9,153,20,229,8,106,65,69,24,15,65,80,13,80,79,35,13,0,73,193,7,92,55,67,50,50,59,87,61,121,17,252,3,145,6,118,3,215,16,205,16,248,34,73,14,5,23,123,4,127,45,172,5,14,62,179,8,230,17,244,25,17,27,181,4,76,24,31,3,127,48,81,13,96,62,37,15,147,77,61,8,217,37,93,8,150,57,126,34,144,56,39,10,25,7,214,4,91,30,45,3,135,74,58,17,178,21,16,8,103,14,28,11,27,68,208,8,57,65,134,17,71,63,12,21,92,31,203,10,77,13,71,8,18,68,101,21,130,53,226,10,167,77,160,10,138,35,40,15,252,70,225,18,184,67,175,47,252,19,228,3,71,19,220,3,160,38,9,12,126,23,251,20,9,62,131,6,213,32,159,4,239,58,62,9,65,77,90,27,187,46,26,6,111,28,104,4,219,65,252,5,146,61,5,21,116,57,17,8,137,78,107,8,6,67,53,32,247,69,174,24,91,21,224,5,4,16,14,10,13,68,154,26,41,22,72,11,252,64,54,13,15,35,39,7,191,78,129,18,94,76,126,28,2,26,221,10,208,44,249,12,197,75,190,19,190,73,114,18,55,64,69,9,206,79,34,17,89,44,158,103,73,45,252,11,50,11,30,6,244,19,46,4,142,37,51,19,75,19,208,13,117,29,110,3,237,80,83,3,26,27,43,17,159,65,53,30,153,39,251,3,117,38,196,3,134,60,115,15,99,60,102,13,175,73,214,3,152,78,195,3,236,65,87,50,254,55,104,16,199,25,196,4,6,36,46,3,46,66,14,20,29,22,34,19,112,21,6,7,34,79,122,15,109,66,34,24,9,70,41,23,149,36,92,13,50,29,179,7,81,76,57,20,59,74,190,11,70,64,204,14,198,62,63,9,216,33,183,10,229,36,246,102,104,42,7,5,227,13,241,3,230,21,38,14,253,75,136,21,165,48,29,3,154,80,143,3,67,60,250,11,141,66,35,40,195,73,73,10,73,15,244,4,63,76,43,13,132,70,110,20,91,75,142,6,52,76,100,12,152,70,2,42,241,64,189,26,62,12,250,8,117,42,133,9,220,60,1,27,53,49,53,13,108,43,225,12,122,65,120,9,165,73,59,26,19,67,159,38,199,49,45,10,233,34,68,12,89,74,84,30,171,71,40,15,251,79,98,14,146,76,52,13,244,50,173,75,30,41,84,90,1,0,3,0,0,0,1,0,2,0,4,0,82,120,26,113,81,106,240,99,241,93,78,88,2,83,7,78,89,73,242,68,51,115,174,103,80,93,251,83,149,75,6,68,56,61,25,55,150,49,161,44,205,76,21,46,166,27,151,16,244,9,249,5,149,3,38,2,74,1,198,0,249,79,26,80,59,80,92,80,125,80,164,80,197,80,236,80,13,81,52,81,85,81,124,81,157,81,196,81,236,81,19,82,58,82,97,82,137,82,176,82,215,82,255,82,38,83,84,83,123,83,169,83,208,83,254,83,38,84,84,84,129,84,175,84,221,84,11,85,57,85,103,85,149,85,201,85,247,85,43,86,89,86,142,86,194,86,247,86,43,87,95,87,148,87,200,87,3,88,56,88,115,88,174,88,233,88,36,89,95,89,154,89,219,89,22,90,88,90,153,90,212,90,28,91,94,91,159,91,231,91,48,92,113,92,192,92,8,93,80,93,159,93,237,93,60,94,138,94,224,94,46,95,131,95,217,95,52,96,138,96,229,96,72,97,163,97,6,98,104,98,209,98,51,99,156,99,11,100,123,100,234,100,96,101,214,101,76,102,201,102,76,103,207,103,82,104,220,104,108,105,252,105,147,106,48,107,205,107,113,108,27,109,204,109,125,110,59,111,249,111,197,112,150,113,111,114,84,115,64,116,50,117,50,118,63,119,88,120,225,122,255,127,255,127,255,127,255,127,255,127,255,127,255,127,225,122,88,120,63,119,50,118,50,117,64,116,84,115,111,114,150,113,197,112,249,111,59,111,125,110,204,109,27,109,113,108,205,107,48,107,147,106,252,105,108,105,220,104,82,104,207,103,76,103,201,102,76,102,214,101,96,101,234,100,123,100,11,100,156,99,51,99,209,98,104,98,6,98,163,97,72,97,229,96,138,96,52,96,217,95,131,95,46,95,224,94,138,94,60,94,237,93,159,93,80,93,8,93,192,92,113,92,48,92,231,91,159,91,94,91,28,91,212,90,153,90,88,90,22,90,219,89,154,89,95,89,36,89,233,88,174,88,115,88,56,88,3,88,200,87,148,87,95,87,43,87,247,86,194,86,142,86,89,86,43,86,247,85,201,85,149,85,103,85,57,85,11,85,221,84,175,84,129,84,84,84,38,84,254,83,208,83,169,83,123,83,84,83,38,83,255,82,215,82,176,82,137,82,97,82,58,82,19,82,236,81,196,81,157,81,124,81,85,81,52,81,13,81,236,80,197,80,164,80,125,80,92,80,59,80,26,80,249,79,210,79,177,79,145,79,112,79,13,0,14,0,16,0,18,0,20,0,21,0,27,0,32,0,6,0,7,0,6,0,6,0,0,0,0,0,0,0,1,0,13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0,79,115,156,110,74,97,126,77,72,54,9,31,195,10,153,251,125,242,48,239,127,240,173,244,231,249,176,254,22,2,202,3,255,3,55,3,4,2,220,0,0,0,125,255,62,255,41,255,0,0,216,127,107,127,182,126,187,125,123,124,248,122,53,121,53,119,250,116,137,114,128,46,128,67,0,120,0,101,128,94,64,113,64,95,192,28,64,76,192,57,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,10,0,19,0,20,0,84,0,1,0,254,255,2,0,3,0,6,0,5,0,9,0,20,0,94,0,0,0,253,255,3,0,3,0,6,0,5,0,9,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,19,0,19,0,19,0,19,0,23,0,39,0,57,0,5,0,8,0,8,0,7,0,8,0,7,0,2,0,8,0,4,0,7,0,2,0,4,0,7,0,2,0,8,0,4,0,7,0,2,0,8,0,8,0,7,0,8,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,8,0,9,0,9,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,9,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,9,0,9,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,9,0,9,0,9,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,9,0,9,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,7,0,8,0,9,0,8,0,6,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,3,0,8,0,9,0,9,0,6,0,95,0,103,0,118,0,134,0,148,0,159,0,204,0,244,0,39,0,43,0,38,0,37,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,23,0,24,0,25,0,26,0,27,0,28,0,48,0,49,0,61,0,62,0,82,0,83,0,47,0,46,0,45,0,44,0,81,0,80,0,79,0,78,0,17,0,18,0,20,0,22,0,77,0,76,0,75,0,74,0,29,0,30,0,43,0,42,0,41,0,40,0,38,0,39,0,16,0,19,0,21,0,50,0,51,0,59,0,60,0,63,0,64,0,72,0,73,0,84,0,85,0,93,0,94,0,32,0,33,0,35,0,36,0,53,0,54,0,56,0,57,0,66,0,67,0,69,0,70,0,87,0,88,0,90,0,91,0,34,0,55,0,68,0,89,0,37,0,58,0,71,0,92,0,31,0,52,0,65,0,86,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,23,0,24,0,25,0,26,0,27,0,46,0,65,0,84,0,45,0,44,0,43,0,64,0,63,0,62,0,83,0,82,0,81,0,102,0,101,0,100,0,42,0,61,0,80,0,99,0,28,0,47,0,66,0,85,0,18,0,41,0,60,0,79,0,98,0,29,0,48,0,67,0,17,0,20,0,22,0,40,0,59,0,78,0,97,0,21,0,30,0,49,0,68,0,86,0,19,0,16,0,87,0,39,0,38,0,58,0,57,0,77,0,35,0,54,0,73,0,92,0,76,0,96,0,95,0,36,0,55,0,74,0,93,0,32,0,51,0,33,0,52,0,70,0,71,0,89,0,90,0,31,0,50,0,69,0,88,0,37,0,56,0,75,0,94,0,34,0,53,0,72,0,91,0,0,0,1,0,4,0,5,0,3,0,6,0,7,0,2,0,13,0,15,0,8,0,9,0,11,0,12,0,14,0,10,0,16,0,28,0,74,0,29,0,75,0,27,0,73,0,26,0,72,0,30,0,76,0,51,0,97,0,50,0,71,0,96,0,117,0,31,0,77,0,52,0,98,0,49,0,70,0,95,0,116,0,53,0,99,0,32,0,78,0,33,0,79,0,48,0,69,0,94,0,115,0,47,0,68,0,93,0,114,0,46,0,67,0,92,0,113,0,19,0,21,0,23,0,22,0,18,0,17,0,20,0,24,0,111,0,43,0,89,0,110,0,64,0,65,0,44,0,90,0,25,0,45,0,66,0,91,0,112,0,54,0,100,0,40,0,61,0,86,0,107,0,39,0,60,0,85,0,106,0,36,0,57,0,82,0,103,0,35,0,56,0,81,0,102,0,34,0,55,0,80,0,101,0,42,0,63,0,88,0,109,0,41,0,62,0,87,0,108,0,38,0,59,0,84,0,105,0,37,0,58,0,83,0,104,0,0,0,1,0,4,0,3,0,5,0,6,0,13,0,7,0,2,0,8,0,9,0,11,0,15,0,12,0,14,0,10,0,28,0,82,0,29,0,83,0,27,0,81,0,26,0,80,0,30,0,84,0,16,0,55,0,109,0,56,0,110,0,31,0,85,0,57,0,111,0,48,0,73,0,102,0,127,0,32,0,86,0,51,0,76,0,105,0,130,0,52,0,77,0,106,0,131,0,58,0,112,0,33,0,87,0,19,0,23,0,53,0,78,0,107,0,132,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,50,0,75,0,104,0,129,0,47,0,72,0,101,0,126,0,54,0,79,0,108,0,133,0,46,0,71,0,100,0,125,0,128,0,103,0,74,0,49,0,45,0,70,0,99,0,124,0,42,0,67,0,96,0,121,0,39,0,64,0,93,0,118,0,38,0,63,0,92,0,117,0,35,0,60,0,89,0,114,0,34,0,59,0,88,0,113,0,44,0,69,0,98,0,123,0,43,0,68,0,97,0,122,0,41,0,66,0,95,0,120,0,40,0,65,0,94,0,119,0,37,0,62,0,91,0,116,0,36,0,61,0,90,0,115,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,16,0,26,0,87,0,27,0,88,0,28,0,89,0,29,0,90,0,30,0,91,0,51,0,80,0,112,0,141,0,52,0,81,0,113,0,142,0,54,0,83,0,115,0,144,0,55,0,84,0,116,0,145,0,58,0,119,0,59,0,120,0,21,0,22,0,23,0,17,0,18,0,19,0,31,0,60,0,92,0,121,0,56,0,85,0,117,0,146,0,20,0,24,0,25,0,50,0,79,0,111,0,140,0,57,0,86,0,118,0,147,0,49,0,78,0,110,0,139,0,48,0,77,0,53,0,82,0,114,0,143,0,109,0,138,0,47,0,76,0,108,0,137,0,32,0,33,0,61,0,62,0,93,0,94,0,122,0,123,0,41,0,42,0,43,0,44,0,45,0,46,0,70,0,71,0,72,0,73,0,74,0,75,0,102,0,103,0,104,0,105,0,106,0,107,0,131,0,132,0,133,0,134,0,135,0,136,0,34,0,63,0,95,0,124,0,35,0,64,0,96,0,125,0,36,0,65,0,97,0,126,0,37,0,66,0,98,0,127,0,38,0,67,0,99,0,128,0,39,0,68,0,100,0,129,0,40,0,69,0,101,0,130,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,14,0,16,0,9,0,10,0,12,0,13,0,15,0,11,0,17,0,20,0,22,0,24,0,23,0,19,0,18,0,21,0,56,0,88,0,122,0,154,0,57,0,89,0,123,0,155,0,58,0,90,0,124,0,156,0,52,0,84,0,118,0,150,0,53,0,85,0,119,0,151,0,27,0,93,0,28,0,94,0,29,0,95,0,30,0,96,0,31,0,97,0,61,0,127,0,62,0,128,0,63,0,129,0,59,0,91,0,125,0,157,0,32,0,98,0,64,0,130,0,1,0,0,0,25,0,26,0,33,0,99,0,34,0,100,0,65,0,131,0,66,0,132,0,54,0,86,0,120,0,152,0,60,0,92,0,126,0,158,0,55,0,87,0,121,0,153,0,117,0,116,0,115,0,46,0,78,0,112,0,144,0,43,0,75,0,109,0,141,0,40,0,72,0,106,0,138,0,36,0,68,0,102,0,134,0,114,0,149,0,148,0,147,0,146,0,83,0,82,0,81,0,80,0,51,0,50,0,49,0,48,0,47,0,45,0,44,0,42,0,39,0,35,0,79,0,77,0,76,0,74,0,71,0,67,0,113,0,111,0,110,0,108,0,105,0,101,0,145,0,143,0,142,0,140,0,137,0,133,0,41,0,73,0,107,0,139,0,37,0,69,0,103,0,135,0,38,0,70,0,104,0,136,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,26,0,27,0,28,0,29,0,30,0,31,0,115,0,116,0,117,0,118,0,119,0,120,0,72,0,73,0,161,0,162,0,65,0,68,0,69,0,108,0,111,0,112,0,154,0,157,0,158,0,197,0,200,0,201,0,32,0,33,0,121,0,122,0,74,0,75,0,163,0,164,0,66,0,109,0,155,0,198,0,19,0,23,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,37,0,36,0,35,0,34,0,80,0,79,0,78,0,77,0,126,0,125,0,124,0,123,0,169,0,168,0,167,0,166,0,70,0,67,0,71,0,113,0,110,0,114,0,159,0,156,0,160,0,202,0,199,0,203,0,76,0,165,0,81,0,82,0,92,0,91,0,93,0,83,0,95,0,85,0,84,0,94,0,101,0,102,0,96,0,104,0,86,0,103,0,87,0,97,0,127,0,128,0,138,0,137,0,139,0,129,0,141,0,131,0,130,0,140,0,147,0,148,0,142,0,150,0,132,0,149,0,133,0,143,0,170,0,171,0,181,0,180,0,182,0,172,0,184,0,174,0,173,0,183,0,190,0,191,0,185,0,193,0,175,0,192,0,176,0,186,0,38,0,39,0,49,0,48,0,50,0,40,0,52,0,42,0,41,0,51,0,58,0,59,0,53,0,61,0,43,0,60,0,44,0,54,0,194,0,179,0,189,0,196,0,177,0,195,0,178,0,187,0,188,0,151,0,136,0,146,0,153,0,134,0,152,0,135,0,144,0,145,0,105,0,90,0,100,0,107,0,88,0,106,0,89,0,98,0,99,0,62,0,47,0,57,0,64,0,45,0,63,0,46,0,55,0,56,0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,23,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,24,0,25,0,26,0,27,0,28,0,38,0,141,0,39,0,142,0,40,0,143,0,41,0,144,0,42,0,145,0,43,0,146,0,44,0,147,0,45,0,148,0,46,0,149,0,47,0,97,0,150,0,200,0,48,0,98,0,151,0,201,0,49,0,99,0,152,0,202,0,86,0,136,0,189,0,239,0,87,0,137,0,190,0,240,0,88,0,138,0,191,0,241,0,91,0,194,0,92,0,195,0,93,0,196,0,94,0,197,0,95,0,198,0,29,0,30,0,31,0,32,0,33,0,34,0,35,0,50,0,100,0,153,0,203,0,89,0,139,0,192,0,242,0,51,0,101,0,154,0,204,0,55,0,105,0,158,0,208,0,90,0,140,0,193,0,243,0,59,0,109,0,162,0,212,0,63,0,113,0,166,0,216,0,67,0,117,0,170,0,220,0,36,0,37,0,54,0,53,0,52,0,58,0,57,0,56,0,62,0,61,0,60,0,66,0,65,0,64,0,70,0,69,0,68,0,104,0,103,0,102,0,108,0,107,0,106,0,112,0,111,0,110,0,116,0,115,0,114,0,120,0,119,0,118,0,157,0,156,0,155,0,161,0,160,0,159,0,165,0,164,0,163,0,169,0,168,0,167,0,173,0,172,0,171,0,207,0,206,0,205,0,211,0,210,0,209,0,215,0,214,0,213,0,219,0,218,0,217,0,223,0,222,0,221,0,73,0,72,0,71,0,76,0,75,0,74,0,79,0,78,0,77,0,82,0,81,0,80,0,85,0,84,0,83,0,123,0,122,0,121,0,126,0,125,0,124,0,129,0,128,0,127,0,132,0,131,0,130,0,135,0,134,0,133,0,176,0,175,0,174,0,179,0,178,0,177,0,182,0,181,0,180,0,185,0,184,0,183,0,188,0,187,0,186,0,226,0,225,0,224,0,229,0,228,0,227,0,232,0,231,0,230,0,235,0,234,0,233,0,238,0,237,0,236,0,96,0,199,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,1,0,3,0,2,0,4,0,1,0,4,0,1,0,4,0,0,0,205,12,156,25,0,32,102,38,205,44,0,48,51,51,102,54,154,57,205,60,0,64,51,67,102,70,154,73,205,76,159,0,64,241,53,167,206,0,190,242,52,176,12,1,67,244,88,185,93,1,201,245,133,194,163,1,215,246,223,200,226,1,166,247,189,205,42,2,116,248,147,210,125,2,66,249,109,215,221,2,18,250,77,220,74,3,222,250,30,225,201,3,174,251,0,230,90,4,124,252,216,234,1,5,74,253,179,239,193,5,25,254,141,244,158,6,231,254,104,249,156,7,181,255,67,254,193,8,133,0,33,3,17,10,83,1,252,7,147,11,33,2,213,12,80,13,240,2,178,17,79,15,190,3,140,22,155,17,141,4,104,27,63,20,91,5,67,32,72,23,41,6,29,37,199,26,248,6,249,41,203,30,199,7,212,46,105,35,149,8,175,51,185,40,100,9,138,56,222,48,113,10,224,62,135,63,244,11,253,71,150,82,120,13,27,81,93,107,252,14,57,90,93,107,252,14,57,90,0,0,1,0,3,0,2,0,6,0,4,0,5,0,7,0,0,0,1,0,3,0,2,0,5,0,6,0,4,0,7,0,248,127,211,127,76,127,108,126,51,125,163,123,188,121,127,119,239,116,12,114,217,110,89,107,141,103,121,99,31,95,130,90,166,85,141,80,60,75,182,69,0,64,28,58,15,52,223,45,141,39,32,33,156,26,6,20,97,13,178,6,0,0,78,249,159,242,250,235,100,229,224,222,115,216,33,210,241,203,228,197,0,192,74,186,196,180,115,175,90,170,126,165,225,160,135,156,115,152,167,148,39,145,244,141,17,139,129,136,68,134,93,132,205,130,148,129,180,128,45,128,8,128,255,127,46,124,174,120,118,117,125,114,186,111,41,109,194,106,131,104,102,102,105,100,137,98,194,96,19,95,122,93,245,91,130,90,33,89,207,87,139,86,85,85,44,84,15,83,252,81,244,80,246,79,1,79,20,78,48,77,83,76,126,75,175,74,231,73,37,73,104,72,178,71,0,71,84,70,173,69,10,69,107,68,209,67,59,67,168,66,25,66,142,65,6,65,130,64,0,64,0,0,175,5,50,11,140,16,192,21,207,26,188,31,136,36,53,41,196,45,55,50,143,54,206,58,245,62,4,67,252,70,223,74,174,78,105,82,17,86,167,89,44,93,159,96,3,100,87,103,155,106,209,109,250,112,20,116,33,119,34,122,23,125,255,127,255,127,217,127,98,127,157,126,138,125,42,124,125,122,133,120,66,118,182,115,227,112,202,109,110,106,208,102,242,98,215,94,130,90,246,85,52,81,64,76,29,71,206,65,87,60,186,54,252,48,31,43,40,37,26,31,249,24,200,18,140,12,72,6,0,0,184,249,116,243,56,237,7,231,230,224,216,218,225,212,4,207,70,201,169,195,50,190,227,184,192,179,204,174,10,170,126,165,41,161,14,157,48,153,146,149,54,146,29,143,74,140,190,137,123,135,131,133,214,131,118,130,99,129,158,128,39,128,0,128,249,150,148,221,53,235,27,241,93,244,116,246,223,247,237,248,184,249,86,250,214,250,61,251,148,251,221,251,26,252,78,252,123,252,163,252,197,252,227,252,252,252,18,253,38,253,55,253,69,253,81,253,91,253,100,253,106,253,111,253,114,253,116,253,116,253,114,253,111,253,106,253,100,253,91,253,81,253,69,253,55,253,38,253,18,253,252,252,227,252,197,252,163,252,123,252,78,252,26,252,221,251,148,251,61,251,214,250,86,250,184,249,237,248,223,247,116,246,93,244,27,241,53,235,148,221,249,150,48,117,144,101,8,82,152,58,64,31,0,0,192,224,104,197,248,173,112,154,153,104,33,3,201,9,85,253,154,250,70,2,92,2,6,251,183,13,250,232,182,17,13,254,108,248,195,11,62,236,238,21,58,248,219,251,77,250,90,17,68,253,41,235,1,18,196,1,179,253,232,242,137,11,243,4,68,251,226,245,195,6,86,14,133,238,49,252,39,17,23,246,181,3,173,250,45,252,102,22,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,98,57,254,44,244,4,55,245,217,233,90,29,221,255,9,245,32,244,215,18,136,11,24,223,201,14,175,5,131,8,67,222,115,31,201,247,82,250,9,3,84,4,175,246,206,8,149,254,94,253,201,247,158,23,207,233,48,4,51,12,62,236,192,20,231,246,112,241,12,27,207,240,163,2,17,249,29,0,161,39,66,118,247,14,60,240,156,11,232,251,22,252,173,9,29,244,255,10,73,247,217,6,181,249,178,6,17,249,7,6,16,252,173,1,87,255,216,1,16,251,128,8,110,245,219,9,171,249,88,1,58,3,7,250,188,6,135,249,165,6,241,247,84,10,12,244,81,11,70,248,45,2,12,3,167,250,74,3,143,2,0,64,103,65,213,66,76,68,203,69,82,71,226,72,122,74,28,76,199,77,123,79,56,81,255,82,209,84,172,86,146,88,130,90,126,92,132,94,150,96,180,98,221,100,18,103,84,105,162,107,254,109,102,112,221,114,96,117,242,119,147,122,66,125,255,127,3,115,186,110,119,98,225,79,109,57,245,33,71,12,184,250,206,238,23,233,38,233,191,237,33,245,96,253,187,4,232,9,58,12,175,11,211,8,146,4,0,0,23,252,140,249,180,248,126,249,133,251,48,254,218,0,244,2,36,4,75,4,136,3,38,2,135,0,11,255,254,253,134,253,166,253,61,254,25,255,0,0,191,0,52,1,84,1,40,1,198,0,78,0,220,255,136,255,93,255,91,255,124,255,177,255,237,255,34,0,73,0,91,0,89,0,70,0,38,0,0,0,254,254,194,254,73,254,134,253,112,253,251,252,57,253,10,254,244,254,63,255,254,255,125,0,122,0,217,255,247,255,105,0,129,0,27,1,116,1,63,2,235,254,188,254,59,255,25,254,67,254,150,254,220,254,229,255,177,0,31,2,86,1,5,2,4,2,130,0,27,0,152,255,136,255,116,255,182,255,200,255,204,253,81,252,16,250,59,252,210,252,242,253,190,254,254,255,159,0,145,2,200,254,228,254,126,254,171,253,19,254,242,253,94,254,27,255,105,0,193,1,211,253,154,252,205,251,105,252,74,252,16,253,59,253,196,254,62,0,230,1,198,254,65,255,53,255,182,254,96,255,153,255,205,255,131,0,82,1,3,2,10,6,224,8,194,14,112,21,60,27,190,32,63,39,221,43,222,49,146,53,84,37,17,42,27,49,236,51,45,56,131,45,92,41,39,38,145,33,84,25,6,0,82,0,125,255,154,0,200,255,33,253,183,0,191,255,247,254,9,0,46,255,151,254,113,0,206,2,25,7,242,3,190,4,37,6,89,3,53,5,228,8,59,3,32,6,141,7,205,2,197,7,158,8,70,3,148,4,31,7,209,2,232,3,106,8,30,1,220,1,229,5,9,255,237,253,230,0,147,0,174,255,57,2,26,0,79,255,80,252,229,255,239,254,180,2,92,255,248,254,73,255,224,0,22,3,15,4,131,3,178,3,89,2,229,1,3,3,126,4,12,2,165,2,135,3,116,255,119,1,10,3,154,1,164,2,173,1,45,1,18,2,241,3,207,2,134,2,38,0,226,0,111,1,40,0,145,0,211,255,7,254,34,1,121,0,135,255,46,1,127,0,166,0,132,255,129,254,68,252,154,254,57,254,47,252,203,2,110,3,126,3,210,3,155,3,211,0,221,1,16,1,64,0,188,0,178,255,17,0,113,255,191,255,38,0,131,2,74,2,109,2,122,255,86,254,117,253,91,1,33,2,4,11,164,4,166,10,138,9,142,0,176,255,199,6,27,1,130,0,205,1,250,254,113,254,135,251,101,254,155,0,174,1,73,1,119,1,11,3,53,0,30,255,117,255,127,255,20,255,146,6,29,1,232,2,47,5,226,2,185,2,128,6,56,1,153,1,10,1,69,1,208,2,135,0,1,0,221,0,197,1,8,0,203,0,145,0,43,1,128,2,248,2,29,0,212,1,126,2,103,0,173,1,123,1,164,1,186,3,164,3,46,5,186,4,234,4,192,2,244,3,128,4,90,255,68,254,246,254,196,254,126,255,136,254,191,0,127,4,112,7,16,255,225,253,20,251,144,255,12,1,183,4,70,0,38,4,47,6,22,1,80,5,38,6,254,254,240,254,0,253,19,0,51,2,192,8,253,255,247,254,135,0,217,254,177,253,124,254,140,0,98,1,50,255,252,254,8,254,229,252,79,254,50,253,217,250,109,0,75,1,194,3,83,254,169,255,140,2,216,254,170,1,251,3,17,255,7,3,83,3,233,1,54,5,49,4,178,254,180,254,25,0,31,2,182,4,15,7,70,1,61,0,215,2,66,2,81,3,125,5,48,255,235,254,73,1,104,255,64,0,157,2,78,254,90,253,41,253,58,254,185,255,251,0,93,2,224,1,254,0,30,254,11,0,228,3,223,254,139,1,230,1,210,2,25,4,160,5,226,255,196,254,238,252,150,255,141,255,149,253,93,3,194,5,132,5,31,4,86,5,160,4,44,3,213,4,157,3,42,0,5,255,192,253,86,1,141,0,58,254,88,255,176,255,79,5,170,254,112,253,29,249,100,0,53,3,213,2,222,3,235,2,32,3,76,1,184,1,56,2,151,2,123,1,84,3,112,0,165,0,143,254,85,2,142,3,26,1,248,255,66,3,1,5,160,254,60,2,183,2,206,1,198,8,14,7,89,1,190,0,94,5,160,1,147,3,118,8,168,0,174,255,24,1,252,253,66,254,72,3,47,0,21,2,44,0,150,254,57,253,137,251,22,0,193,0,192,5,171,255,233,0,21,7,194,255,67,2,224,5,38,2,176,3,213,6,211,2,138,2,124,4,204,3,116,3,115,5,87,254,131,2,0,0,232,3,184,3,74,4,249,0,166,5,160,2,178,254,169,255,124,8,214,253,90,7,112,10,140,0,34,7,61,7,152,3,213,6,30,10,52,4,141,7,246,7,119,255,69,254,237,249,245,4,150,4,212,1,19,254,134,255,241,5,61,254,9,4,190,4,226,1,159,6,94,4,47,3,137,2,128,1,66,254,76,253,107,0,193,254,163,253,138,255,49,255,7,254,13,2,44,254,244,255,176,10,75,0,142,7,25,5,112,3,54,9,219,8,5,5,39,6,212,7,208,255,208,254,94,251,77,254,51,254,5,255,146,254,108,254,221,253,223,254,163,253,171,253,230,253,214,252,91,255,136,255,3,0,100,1,127,2,217,4,222,5,96,0,177,0,238,2,77,254,183,253,106,251,156,254,109,0,177,255,27,254,32,1,213,7,9,0,92,4,219,2,112,3,86,8,178,3,247,254,49,6,41,4,133,4,186,4,75,3,14,254,100,253,175,1,118,1,65,1,27,255,160,5,53,8,101,5,193,1,205,1,131,4,151,255,39,0,128,254,249,254,111,1,182,0,141,254,108,253,5,3,68,255,127,4,203,3,53,5,96,6,155,5,6,3,243,4,197,4,30,254,192,252,47,250,19,255,46,255,92,3,122,3,79,6,40,4,216,1,38,4,168,4,185,0,53,4,221,3,200,253,32,252,88,249,63,254,122,252,5,248,114,255,135,254,54,254,46,255,214,253,251,251,245,255,109,4,217,8,183,254,93,253,131,252,6,255,145,2,163,4,7,2,230,5,243,6,8,2,27,2,123,5,15,2,141,5,22,5,205,253,153,252,32,251,109,255,49,254,111,3,180,255,30,9,24,11,51,2,13,10,81,9,120,2,134,7,104,11,207,2,231,7,48,7,223,253,45,253,84,4,129,0,131,255,116,3,137,5,96,6,157,3,162,255,30,6,215,6,171,254,253,5,15,6,79,2,139,1,238,254,180,255,213,3,15,11,153,0,169,11,52,7,8,4,5,10,189,10,228,5,16,11,87,7,23,3,175,4,26,2,66,255,59,254,209,5,234,254,220,253,134,4,11,255,149,7,252,7,0,4,24,6,114,6,0,2,253,0,210,1,194,255,189,254,127,4,39,254,136,254,251,1,79,254,100,5,114,8,131,3,151,7,165,5,134,0,192,2,184,1,204,1,13,2,228,255,62,254,23,1,58,5,0,0,203,3,252,0,67,254,141,253,33,252,164,254,166,253,112,250,142,1,200,2,120,6,149,255,58,1,78,255,93,0,178,8,190,8,6,2,81,3,144,2,50,254,57,253,65,254,174,0,222,255,167,4,137,255,42,0,237,3,140,254,18,1,246,2,12,4,48,9,46,7,163,2,188,6,218,5,174,1,6,5,85,8,127,255,73,254,0,0,139,254,32,3,96,8,6,0,51,6,174,9,222,1,84,2,80,8,84,254,32,253,225,5,129,1,178,0,212,3,139,0,193,1,201,4,242,253,182,252,42,252,145,0,18,6,218,4,111,2,168,5,144,2,93,1,248,3,202,5,31,0,232,254,159,1,196,254,212,2,105,6,104,1,34,4,44,2,76,254,154,254,177,4,157,254,99,4,147,7,145,1,48,6,200,8,241,253,12,252,99,1,233,0,238,0,185,8,218,253,127,252,129,253,147,254,11,254,165,7,133,1,68,7,85,6,162,0,108,4,240,4,19,255,150,4,110,5,128,253,101,254,116,0,28,255,158,6,250,8,103,6,138,8,219,8,50,2,249,4,98,10,67,1,82,1,238,6,66,2,83,4,84,3,22,0,82,2,166,3,113,255,206,2,190,1,50,0,71,0,247,255,174,254,70,253,129,250,102,0,118,255,204,252,202,254,43,254,133,251,158,1,67,0,245,254,36,4,46,3,161,5,12,6,80,5,248,4,218,6,103,7,125,6,227,7,85,8,28,7,16,7,14,9,53,7,132,2,163,255,198,1,90,3,73,1,120,255,233,1,254,254,128,255,58,255,23,253,215,255,204,255,247,254,39,252,90,1,137,0,223,1,51,249,20,253,84,253,117,251,67,249,145,254,129,252,135,251,240,252,24,254,78,252,56,252,171,255,122,254,43,253,215,0,172,254,85,255,252,3,148,3,177,7,52,2,179,0,234,2,150,2,209,3,198,6,119,3,110,2,146,3,171,3,88,3,141,4,53,1,176,2,35,3,149,3,161,0,58,2,118,0,236,255,229,254,208,252,214,255,204,0,52,251,187,254,50,254,61,252,54,255,113,255,36,252,28,254,151,254,66,253,46,252,35,254,210,254,234,252,92,251,156,255,238,252,192,251,226,251,77,252,108,249,54,255,181,252,242,252,241,251,158,250,123,252,144,253,146,255,171,255,100,1,213,0,246,255,19,254,108,1,6,3,169,1,54,3,223,1,173,255,45,2,8,2,32,252,232,249,196,253,165,253,27,253,230,255,10,254,130,253,121,252,209,0,50,1,147,0,196,254,175,253,172,253,171,255,45,255,31,255,106,252,239,253,117,0,233,0,73,254,30,253,77,4,239,2,121,2,177,5,180,6,231,5,229,6,177,5,142,3,98,4,132,4,81,3,74,5,100,3,214,1,153,252,130,251,252,248,153,252,163,252,32,252,138,255,155,0,212,0,229,251,175,252,162,253,163,251,199,248,66,245,5,252,109,250,179,248,114,1,72,255,98,254,191,3,237,1,104,0,190,3,15,4,31,2,154,0,141,2,201,0,225,4,251,1,150,0,151,2,247,1,230,0,111,2,9,3,163,2,147,2,88,0,146,255,75,3,244,0,224,0,126,1,29,2,46,1,212,2,177,1,154,2,142,4,222,2,85,1,118,255,20,0,115,254,97,251,88,254,210,255,191,254,160,254,132,255,53,5,253,3,56,4,6,1,110,1,211,2,154,3,27,1,217,253,31,0,132,253,157,253,79,253,71,253,97,254,72,252,245,252,55,255,207,250,170,253,153,254,71,252,251,250,166,0,237,1,49,1,221,0,78,3,191,2],"i8",g,o.GLOBAL_BASE),b([98,2,72,3,168,3,6,3,45,253,212,250,19,251,155,254,255,251,148,250,184,251,160,250,147,254,120,250,167,248,160,253,250,248,65,249,94,253,223,253,107,251,65,253,166,2,18,3,148,0,133,255,184,2,8,5,132,2,94,1,246,255,158,1,102,2,15,0,137,0,88,1,45,255,210,252,24,250,205,252,121,254,94,252,180,253,47,0,177,253,126,252,115,252,183,251,93,255,8,251,113,251,99,255,72,250,11,250,123,254,6,251,92,251,144,253,159,2,213,0,198,1,124,0,238,254,243,253,39,253,16,254,104,255,192,250,122,0,135,0,167,244,179,253,118,254,64,249,185,1,206,255,196,5,136,3,19,3,60,1,236,0,72,254,165,254,217,0,157,1,113,252,107,252,121,0,57,254,92,252,202,0,164,255,47,254,137,254,232,1,134,1,218,1,108,3,217,2,60,1,233,248,224,250,99,253,87,0,194,3,176,1,51,2,7,255,222,251,250,0,29,1,81,4,117,4,171,1,184,2,242,251,128,249,210,249,76,252,90,1,160,0,203,254,240,254,166,252,158,2,112,2,226,4,80,252,104,254,102,253,162,253,192,254,128,254,20,254,230,0,65,0,78,1,206,255,240,255,240,255,78,253,139,250,255,6,180,6,119,5,174,9,15,8,124,5,221,4,191,5,146,5,130,254,243,251,254,255,173,0,114,254,121,4,211,5,232,7,9,7,4,3,250,4,226,5,149,5,199,6,209,7,55,4,194,4,249,4,126,251,197,248,207,250,216,252,147,251,184,251,61,254,247,251,70,249,65,0,66,2,172,255,60,250,126,246,14,249,3,253,170,250,18,254,38,255,174,253,93,252,81,1,20,255,50,2,53,9,102,10,146,7,209,5,252,4,106,3,189,0,102,1,118,1,17,250,23,247,214,246,57,252,9,251,209,247,140,253,92,251,250,249,125,6,19,4,34,2,53,2,37,4,220,2,192,255,188,252,78,254,76,254,160,255,203,0,54,4,192,4,100,6,139,3,254,5,218,3,70,1,197,3,77,3,142,0,172,255,197,0,214,1,75,9,34,6,109,4,214,1,190,4,139,1,96,5,176,4,101,4,18,4,92,1,225,253,46,251,136,254,41,255,75,255,225,1,101,248,171,249,46,255,18,253,95,251,134,1,29,0,113,254,27,0,52,3,212,4,243,2,183,2,211,3,153,1,82,255,173,4,11,4,144,3,76,5,54,7,32,252,99,250,228,1,51,250,92,249,208,0,100,254,180,4,152,5,241,254,128,3,120,4,96,254,241,6,154,5,96,249,172,245,52,255,3,249,241,249,9,4,136,249,233,249,23,5,27,251,203,249,57,4,99,253,185,251,190,255,86,253,64,1,167,254,147,2,49,1,45,4,244,250,220,252,237,255,157,249,245,250,29,0,109,249,15,254,71,0,225,254,249,255,156,255,18,254,62,252,19,255,84,3,89,7,204,6,63,251,149,250,227,0,108,253,46,1,117,1,96,0,63,4,233,4,206,251,123,249,160,0,229,1,28,8,6,7,90,252,36,255,40,2,172,253,156,253,237,0,80,1,184,6,111,3,131,2,117,2,178,1,243,4,10,2,97,6,15,0,244,0,71,254,195,5,205,2,184,0,27,7,54,6,173,6,220,3,5,1,169,3,45,8,41,9,240,5,91,8,66,7,70,6,191,253,189,253,77,251,68,252,135,0,24,254,48,254,51,0,174,254,139,253,164,254,45,253,122,4,25,8,162,5,144,8,186,5,143,3,92,250,220,249,26,247,120,5,198,2,17,5,55,5,121,2,160,3,154,5,146,8,34,10,118,9,156,8,89,7,214,3,194,8,62,7,124,1,24,3,121,4,193,255,229,253,158,1,4,255,60,252,198,254,19,251,85,253,244,252,193,252,242,253,19,252,126,249,145,251,88,254,181,249,60,254,213,254,244,4,24,4,130,2,123,4,85,3,88,3,93,253,176,254,139,0,220,8,63,5,138,5,29,0,0,3,29,3,56,251,167,1,52,2,218,250,198,251,245,0,234,250,212,252,61,2,238,250,175,249,134,2,56,252,66,3,211,2,225,3,116,6,235,7,65,255,207,252,176,1,150,2,60,0,198,0,114,2,229,3,50,5,112,6,171,7,9,5,195,249,163,255,211,255,192,251,37,0,172,255,117,6,47,10,33,9,41,4,248,7,73,9,115,4,22,9,70,8,91,3,101,1,230,5,152,2,203,4,75,4,223,1,80,5,144,3,105,7,218,6,227,7,144,4,117,7,248,6,143,1,34,0,0,1,175,253,208,254,227,251,35,2,158,6,127,5,135,2,157,255,171,254,212,5,111,6,166,4,38,0,124,253,44,255,139,1,78,3,222,0,64,253,3,253,52,253,44,253,84,248,12,245,106,255,35,1,174,255,209,4,179,5,239,3,116,255,101,255,153,0,183,1,41,1,32,6,7,250,102,254,132,253,0,6,199,1,19,255,208,250,117,255,252,254,19,2,42,2,100,3,13,1,240,4,94,2,23,255,115,3,207,1,230,2,88,2,136,255,183,255,165,1,212,0,73,254,198,255,36,3,250,250,39,251,216,2,38,1,22,254,50,0,177,253,119,252,26,251,42,0,81,253,147,0,231,255,17,1,84,2,201,254,189,4,89,2,14,253,81,3,72,2,173,1,95,2,75,2,166,253,90,255,205,1,228,252,201,252,9,3,100,5,142,3,219,6,119,0,137,5,204,3,37,255,144,252,196,249,231,251,14,252,182,1,55,253,157,250,78,0,0,0,65,254,101,251,144,251,217,250,219,249,200,8,231,6,29,5,178,3,47,6,152,5,126,4,226,1,180,1,43,254,172,251,106,2,65,254,58,252,64,4,28,251,21,250,142,255,176,251,40,248,189,253,210,0,101,2,241,1,73,248,99,250,130,2,11,251,168,252,243,3,146,249,95,251,39,4,237,249,96,253,180,4,100,249,166,251,111,2,45,252,210,250,3,251,27,2,109,255,126,3,182,250,127,252,78,254,120,3,219,1,172,1,153,0,128,254,82,1,44,250,1,254,103,1,50,252,165,251,42,254,105,0,218,253,165,2,87,252,135,251,109,3,124,1,252,254,210,0,149,6,156,3,232,4,239,6,166,4,71,4,139,5,119,2,21,2,115,2,43,1,165,254,101,254,234,253,135,2,118,253,29,0,173,253,134,254,169,250,27,6,122,5,97,4,185,5,65,4,130,5,136,2,208,247,190,251,250,255,55,1,62,255,155,252,129,253,193,252,160,1,118,251,56,251,69,5,33,251,83,252,21,7,111,247,61,248,197,1,149,253,169,250,68,252,186,249,76,248,29,250,105,251,223,251,176,251,135,254,89,2,201,0,84,7,57,3,118,1,82,254,213,250,29,0,139,250,31,251,205,250,17,252,32,250,192,3,135,250,39,248,197,0,157,250,99,248,20,255,203,251,123,0,166,1,103,2,245,4,34,2,206,254,246,5,136,3,170,4,252,6,153,4,142,253,140,252,10,250,199,0,254,2,224,5,215,251,94,3,197,0,246,251,19,249,137,252,224,252,145,0,87,2,146,251,249,253,114,2,75,251,122,248,244,1,114,252,239,251,141,250,60,250,225,249,55,252,245,253,74,3,34,0,2,7,134,2,94,3,73,251,160,248,22,252,178,255,247,255,96,253,20,4,247,2,80,0,168,253,115,4,251,3,57,0,208,7,142,5,191,252,134,5,97,4,78,251,94,6,236,4,51,254,140,5,220,4,1,6,207,3,253,0,229,254,68,1,153,254,87,2,61,255,106,0,76,2,62,0,181,253,11,253,133,2,205,0,51,0,177,4,246,2,71,251,161,2,122,254,144,253,45,6,173,3,105,255,255,3,223,2,4,11,21,5,178,2,210,254,12,2,157,255,124,252,204,249,91,251,60,4,251,0,238,0,222,7,0,7,242,3,221,4,97,6,205,6,53,251,252,249,72,251,147,253,200,1,147,255,40,0,191,255,20,3,219,252,69,253,186,250,185,253,136,3,64,3,223,252,20,2,82,2,180,7,128,5,71,5,103,251,168,248,190,247,251,252,56,2,180,3,9,252,55,4,236,4,169,251,226,1,126,255,242,6,20,4,12,3,45,250,245,0,144,3,196,254,139,251,107,252,232,253,94,250,214,246,239,252,246,249,60,248,45,248,1,1,141,3,199,248,135,253,71,251,254,249,130,248,226,251,70,6,191,8,40,6,201,253,36,250,248,249,1,251,195,0,89,5,207,252,37,1,195,4,243,253,118,2,173,4,94,249,135,246,208,248,209,254,219,2,235,2,111,251,5,255,13,1,74,252,181,255,148,6,98,251,59,254,237,3,193,249,73,2,122,1,229,247,197,253,85,254,239,253,121,251,109,251,229,254,51,255,204,253,228,252,222,4,205,2,229,8,159,3,27,2,58,254,47,2,184,1,51,253,180,5,79,6,250,251,28,4,74,6,111,251,118,255,79,3,226,0,39,0,156,253,29,251,150,255,39,253,117,253,200,3,22,5,54,253,132,253,191,6,97,1,45,4,154,1,226,252,100,255,75,4,194,253,150,3,190,1,226,250,244,3,210,1,128,5,55,6,253,2,149,5,100,5,221,6,157,7,164,7,74,9,42,6,255,7,100,8,148,3,98,0,249,255,101,7,138,5,93,8,92,1,125,5,43,6,152,0,110,4,9,7,245,254,154,0,115,5,114,251,213,1,30,4,138,251,107,254,207,251,195,250,40,247,211,249,148,254,101,3,170,6,118,251,37,2,14,6,55,251,116,248,126,249,51,250,71,248,249,247,65,249,118,252,158,255,151,248,233,0,212,5,124,3,108,0,181,254,64,249,110,251,92,249,220,251,188,7,254,6,210,251,51,249,139,248,245,255,3,6,37,5,192,249,94,0,241,1,165,1,187,1,59,255,214,249,163,254,30,252,169,253,229,253,116,4,59,252,117,250,127,255,195,250,175,0,65,254,137,254,31,5,7,8,141,254,118,253,205,254,207,251,93,2,109,1,247,247,143,255,174,1,140,2,146,3,199,3,12,252,206,249,237,246,225,5,224,4,47,2,6,1,26,254,111,254,65,249,62,5,10,6,50,0,56,0,176,1,182,254,119,0,164,253,19,250,200,251,214,252,178,3,103,4,31,4,136,250,89,249,80,249,10,251,64,253,219,250,39,3,29,7,119,4,200,10,70,6,123,8,96,4,153,1,106,255,109,255,148,1,191,3,135,9,119,7,141,8,118,252,115,255,158,252,120,252,114,255,54,254,211,253,60,253,113,249,194,252,105,250,209,249,206,248,190,250,194,251,188,249,240,254,147,3,84,251,4,3,32,4,130,253,46,251,151,248,12,254,175,255,202,252,247,250,179,249,33,253,139,255,17,3,168,0,190,251,109,4,154,3,184,251,22,253,104,5,31,1,221,253,217,251,160,250,103,247,76,251,128,247,222,249,35,249,25,250,63,247,253,252,55,249,75,4,62,3,204,249,212,2,219,4,250,249,181,2,37,3,102,249,16,255,129,6,92,249,252,255,100,253,101,8,48,3,18,4,206,252,207,248,22,0,4,253,5,254,193,1,129,251,151,253,33,1,181,252,196,249,16,255,242,1,22,255,111,253,16,253,224,1,142,6,193,254,31,254,193,0,213,252,171,0,137,255,176,247,54,255,176,252,181,6,116,4,164,6,67,0,239,255,66,0,244,255,102,249,187,253,152,255,240,254,204,251,94,251,203,248,136,254,140,251,98,252,92,254,198,255,253,254,112,253,146,251,215,253,252,6,203,4,199,1,129,0,206,1,185,1,16,255,240,253,72,3,2,2,130,0,181,255,90,4,111,2,153,0,216,0,44,4,52,2,250,255,236,254,95,4,215,2,190,0,188,255,192,2,50,1,119,0,248,254,73,1,61,0,156,255,156,0,108,1,123,0,183,0,48,255,85,255,133,255,220,0,191,255,206,254,194,255,146,1,17,0,108,253,86,252,246,254,0,0,129,1,235,0,20,1,29,1,64,1,12,1,176,254,56,255,44,253,17,0,172,255,125,1,224,253,173,1,238,1,7,2,139,255,32,1,48,1,73,1,131,2,157,0,189,2,252,1,176,4,113,2,28,3,96,2,230,3,165,1,236,1,120,2,180,4,12,3,190,1,132,0,233,4,76,3,35,2,193,1,61,3,146,2,29,2,214,1,108,4,234,4,150,3,127,2,35,2,51,0,167,1,23,1,9,0,136,1,83,0,94,0,30,2,31,2,229,0,109,255,58,255,129,0,194,0,71,255,161,252,215,250,210,254,30,0,171,253,139,253,237,255,114,0,124,252,199,251,210,1,97,1,53,250,219,249,15,0,113,255,84,249,245,247,17,253,196,0,172,248,237,247,126,253,254,254,225,246,66,250,62,254,204,253,184,253,70,255,152,252,98,254,243,248,36,252,155,251,226,250,42,253,151,251,28,0,169,0,241,251,160,252,50,253,10,255,228,1,36,0,23,255,207,255,9,1,67,0,33,1,211,1,178,0,31,2,42,3,28,2,84,0,26,1,160,2,191,2,49,252,247,252,129,0,31,1,86,252,29,255,187,3,83,2,175,249,223,254,68,3,137,2,201,248,41,255,82,4,206,2,14,248,195,251,138,2,184,1,203,247,239,253,139,3,63,2,37,248,176,254,158,2,204,0,171,246,76,253,104,1,137,0,148,247,100,247,247,255,24,1,246,254,119,0,39,0,193,0,78,0,197,255,136,255,226,0,49,252,166,252,243,252,185,251,149,253,99,254,61,254,182,252,64,251,215,250,211,252,141,252,160,250,177,249,118,254,84,254,31,253,167,251,219,253,234,252,144,252,49,252,57,252,126,253,39,252,138,252,7,251,175,250,39,254,220,252,135,250,129,250,160,0,247,254,105,252,237,254,8,255,6,255,50,253,132,254,97,0,153,255,137,254,27,255,97,254,63,255,121,255,213,253,116,2,105,1,119,0,216,0,67,2,108,1,135,1,209,0,122,2,10,2,102,255,108,255,14,2,133,1,170,0,33,0,105,0,11,1,64,0,124,1,33,250,24,252,226,255,143,254,210,251,58,0,135,2,223,0,16,250,221,254,109,2,51,1,5,250,156,0,250,2,148,1,19,248,141,0,222,2,243,1,199,248,118,253,50,1,0,2,69,255,152,255,197,255,182,1,134,0,26,255,156,0,70,255,195,255,252,254,240,255,10,0,199,253,253,255,91,254,215,254,67,249,247,253,166,254,178,0,174,250,197,255,212,255,157,0,158,247,51,254,42,254,163,254,134,247,255,255,143,254,135,255,213,249,139,254,124,252,9,252,163,251,177,253,155,253,240,252,207,253,122,0,181,255,63,254,252,255,85,255,133,255,140,254,192,0,168,0,180,255,124,255,252,0,149,255,84,1,210,0,136,1,253,1,16,1,181,0,147,255,145,0,218,0,119,0,96,254,249,254,229,1,9,1,75,255,248,255,226,254,226,0,12,255,38,255,69,0,222,254,98,255,191,0,255,255,192,255,176,253,166,255,213,0,160,255,255,0,179,1,178,0,176,255,143,254,238,255,223,255,176,255,214,255,159,1,140,0,34,255,119,4,139,2,137,2,73,1,255,2,44,2,249,0,235,0,180,3,157,1,186,1,23,1,141,0,83,1,100,1,45,2,42,254,86,255,99,0,237,0,199,253,224,252,96,1,53,2,26,1,217,1,214,1,76,1,57,255,78,253,252,250,107,252,63,255,86,254,224,252,158,251,230,255,141,254,22,254,63,255,125,2,83,2,7,2,74,1,152,1,141,255,79,0,12,0,221,1,87,0,153,255,136,254,102,253,165,254,235,254,221,254,2,254,31,254,169,0,41,1,195,252,30,253,51,255,85,255,192,254,228,253,72,1,27,1,165,252,66,252,186,1,254,255,44,2,174,2,130,0,56,0,103,5,244,3,243,2,171,1,100,2,229,2,116,2,41,2,173,254,228,252,134,0,21,1,135,253,195,251,254,255,10,255,144,252,245,251,185,249,216,251,30,252,38,254,142,251,24,254,98,254,229,252,73,0,50,255,248,255,117,255,183,1,204,0,80,255,190,253,23,0,131,0,243,254,11,253,65,255,245,0,147,255,174,254,112,0,60,1,120,0,106,254,138,255,99,2,76,255,70,255,123,253,115,0,83,255,34,0,250,253,23,254,105,255,61,0,185,253,180,252,220,0,118,255,87,253,4,252,135,1,239,255,170,253,191,254,157,0,217,254,129,0,155,0,98,252,149,252,37,252,29,1,241,0,173,255,131,255,131,255,108,2,85,2,176,1,92,0,137,1,78,0,153,1,61,0,119,254,29,253,99,254,20,253,83,0,54,0,105,1,27,0,196,251,130,0,175,254,74,253,227,249,41,1,62,1,237,255,175,248,36,0,51,0,195,254,237,246,10,255,231,0,172,255,254,246,241,252,40,0,77,255,71,247,94,252,38,254,50,254,14,253,170,255,224,254,142,253,149,246,57,254,193,255,171,0,181,251,186,251,230,255,113,255,87,251,57,254,106,254,131,254,163,253,46,255,160,255,205,255,188,253,36,254,236,254,241,255,85,251,134,253,77,251,143,252,134,254,35,255,99,253,72,252,82,2,178,0,109,254,92,253,251,2,71,1,89,2,34,1,172,0,44,1,203,0,157,0,200,255,176,254,100,1,24,0,28,255,216,254,253,254,227,255,70,255,7,1,160,1,14,0,159,254,117,1,244,255,40,255,1,1,96,0,174,0,57,0,10,250,152,253,70,252,13,254,15,254,104,255,179,254,125,0,105,0,200,0,179,0,159,255,181,254,32,255,253,2,185,2,248,2,0,1,45,1,59,0,199,1,171,255,204,0,32,1,254,253,240,0,251,0,147,255,0,1,161,1,222,255,99,254,101,0,174,1,128,1,156,0,225,255,246,255,206,0,170,1,77,2,145,0,143,0,71,0,40,3,138,3,77,1,93,1,218,3,170,3,77,2,75,1,20,5,56,3,187,0,253,1,38,4,141,2,123,1,210,1,182,5,169,3,145,1,18,1,19,3,93,3,9,1,2,0,97,2,41,2,28,0,49,1,158,3,84,1,106,0,130,1,241,0,245,254,109,255,225,0,78,255,234,253,91,1,246,1,125,253,131,254,141,1,30,0,117,253,35,253,77,254,142,1,105,254,42,253,28,254,8,255,235,252,110,252,74,254,36,254,14,254,122,254,75,0,217,254,60,252,178,253,162,253,150,0,135,255,207,255,101,255,178,255,167,3,38,2,133,1,38,0,191,254,127,0,168,1,59,1,227,254,143,255,27,1,3,1,146,2,203,0,66,1,230,1,135,3,249,1,236,2,161,1,99,2,167,1,43,2,0,2,239,0,173,255,190,253,237,255,173,254,37,253,93,1,13,0,90,252,137,250,142,255,152,254,107,0,180,2,182,0,90,0,37,251,254,249,241,249,43,253,200,253,121,252,173,250,243,253,251,253,171,252,163,252,20,252,88,255,78,253,189,252,63,0,119,255,212,253,221,253,144,0,226,254,207,252,229,1,63,1,109,255,104,254,14,2,246,0,165,254,78,254,41,1,228,255,222,254,41,254,170,251,251,250,52,254,153,254,36,252,230,252,67,5,19,5,178,2,11,2,192,4,44,4,70,4,245,2,57,3,116,4,240,2,238,1,228,4,85,5,171,4,130,3,9,2,29,4,20,2,176,1,178,254,40,255,199,254,249,254,96,255,52,0,40,254,101,255,127,0,136,0,132,254,44,0,83,3,154,1,94,255,23,254,123,0,1,255,228,252,101,253,66,4,149,3,21,3,237,1,117,5,173,4,46,2,202,0,205,255,138,255,170,254,67,253,83,0,108,0,214,255,71,254,61,0,95,0,31,1,0,1,229,255,89,0,12,2,19,2,95,1,227,0,80,2,33,2,185,2,155,0,92,255,51,1,126,2,18,1,23,254,206,255,242,2,240,0,90,255,132,255,140,255,189,253,68,251,193,255,190,0,217,254,240,251,240,250,147,0,136,254,79,255,143,255,73,3,217,4,27,4,156,2,2,0,37,1,39,2,48,1,184,251,71,252,8,255,120,1,18,253,59,252,87,0,4,2,237,254,252,253,177,2,135,1,133,254,125,253,108,3,82,2,122,254,11,252,123,253,61,2,149,255,200,253,79,253,198,252,255,251,229,255,184,254,53,255,93,3,237,2,36,2,233,0,132,249,237,251,195,1,108,0,108,253,148,253,174,1,236,0,21,0,116,254,122,251,137,253,92,5,18,5,199,3,65,2,101,4,101,4,77,2,198,1,189,254,159,252,45,254,153,0,44,254,69,253,220,252,3,254,120,254,50,253,52,255,221,255,165,253,187,251,201,253,94,255,7,254,20,252,154,255,94,1,219,0,224,0,167,1,252,0,139,1,79,2,96,2,107,1,22,253,160,255,117,1,172,0,171,0,39,1,202,2,83,1,233,0,77,0,107,0,21,1,157,0,153,0,13,254,156,254,11,6,49,4,64,2,238,1,220,254,173,254,8,254,176,253,121,252,184,255,149,253,31,254,198,249,163,251,201,253,2,255,231,252,5,254,204,253,221,254,20,254,236,253,246,1,48,2,130,254,171,1,88,2,230,0,29,255,221,1,251,0,75,0,29,1,74,3,45,3,220,1,226,250,203,250,186,0,121,1,181,253,107,252,131,2,125,1,94,251,215,253,155,1,82,0,153,251,204,252,82,255,228,253,164,253,119,0,31,2,205,0,132,254,145,2,141,3,55,2,112,0,214,254,138,254,114,0,167,252,5,255,56,0,159,0,145,1,89,1,222,255,116,255,145,255,161,253,41,0,102,2,99,1,142,255,179,255,218,1,66,2,56,0,170,5,156,3,74,4,140,5,229,2,144,1,246,0,22,0,76,2,57,1,135,255,71,1,63,3,216,1,142,251,160,253,88,3,40,2,39,251,208,251,126,2,88,2,154,254,254,0,179,254,209,254,122,253,227,2,102,1,74,0,202,4,135,6,197,4,81,3,193,8,88,6,215,3,124,2,49,7,197,5,237,2,128,1,94,1,7,1,87,0,128,0,146,248,83,252,112,255,192,255,58,249,1,255,32,1,225,255,172,245,42,251,110,1,235,0,149,249,188,251,192,250,208,254,227,253,205,251,164,251,123,0,102,251,4,255,208,252,76,255,8,252,21,2,53,2,233,0,25,254,82,254,68,255,78,1,99,3,212,4,22,2,171,0,202,249,185,249,123,2,118,2,108,247,54,1,156,3,156,1,202,246,184,254,188,3,17,2,177,245,135,254,118,2,22,1,214,245,61,1,31,3,43,1,154,246,133,0,84,1,31,0,148,247,68,250,131,0,125,0,96,251,22,254,117,255,46,0,24,253,191,1,123,3,52,2,67,0,61,254,134,2,92,2,215,253,83,254,148,252,140,1,162,0,190,255,25,5,147,3,223,1,67,2,64,4,26,3,194,1,22,1,54,2,68,1,223,251,102,255,148,0,79,255,15,246,168,0,46,4,80,2,209,246,214,255,51,3,89,1,216,246,61,253,209,2,250,0,129,247,39,250,203,254,122,0,178,255,183,255,120,0,173,0,252,255,6,1,249,254,251,254,81,254,192,255,107,254,36,253,207,245,116,0,173,255,63,255,11,250,80,252,35,254,43,253,4,254,51,1,170,0,172,0,64,3,161,1,64,3,174,2,31,255,177,0,126,3,50,3,30,254,123,254,255,4,15,4,129,254,201,0,162,254,40,0,218,2,123,2,226,0,14,2,247,1,206,1,82,1,142,1,23,2,202,2,40,0,230,254,202,5,191,5,61,4,219,2,25,6,48,4,141,3,181,2,139,5,2,5,121,3,111,3,129,4,216,2,162,4,72,3,30,255,106,4,181,3,177,2,18,254,38,252,236,249,128,255,200,253,47,253,55,253,230,255,61,1,12,2,70,0,135,0,107,254,159,252,26,249,116,253,82,255,223,252,117,3,5,3,103,255,165,255,75,4,239,2,6,254,131,251,85,3,134,2,241,0,14,3,7,2,27,2,61,7,164,6,77,4,172,2,31,251,50,250,48,254,188,0,131,252,127,250,224,250,171,254,121,255,182,1,81,255,18,0,87,4,208,3,63,1,208,0,106,250,24,249,83,0,202,1,238,253,24,252,51,1,129,0,184,252,241,255,227,255,156,254,113,252,100,252,133,251,14,255,137,255,240,253,127,0,123,255,7,253,3,253,190,0,173,255,197,254,127,3,10,2,231,0,34,255,102,0,193,255,84,254,60,1,187,2,123,1,70,0,25,0,204,2,58,1,148,255,251,1,106,3,54,2,238,0,108,0,173,3,7,2,195,0,169,1,196,255,85,254,1,1,139,0,153,255,138,253,190,1,78,1,114,1,156,1,48,0,84,255,78,253,229,254,45,2,187,0,226,254,158,0,227,1,140,0,14,1,168,254,137,253,156,3,67,2,140,255,132,0,142,0,210,1,188,255,192,255,230,0,111,255,210,254,226,253,221,252,112,252,250,3,225,2,251,252,247,3,118,2,41,1,220,245,95,0,189,1,80,1,182,247,235,1,254,1,191,0,27,251,161,0,254,255,188,254,86,250,135,253,56,253,151,255,182,252,2,255,101,254,100,0,128,253,222,254,242,3,251,2,118,253,57,1,145,4,218,2,140,0,249,1,6,4,254,2,4,3,31,1,43,4,55,3,239,1,237,2,49,1,67,1,92,255,206,1,78,0,143,1,170,254,150,252,69,0,85,2,240,255,108,2,109,2,81,1,118,255,68,254,247,254,218,0,84,0,62,254,185,3,154,2,34,255,221,252,29,2,92,2,103,252,160,250,244,0,116,0,183,252,45,253,118,2,76,2,140,0,151,2,38,1,112,1,167,3,22,4,113,3,247,2,210,6,184,5,148,3,116,2,180,1,195,3,25,1,1,0,137,255,74,0,30,2,213,0,1,0,201,253,45,1,241,0,4,1,179,1,222,0,140,1,168,3,189,3,84,4,191,2,254,1,250,1,40,3,222,1,89,2,182,2,192,3,108,2,204,3,229,2,212,3,88,2,66,3,205,2,255,2,172,2,131,2,204,3,167,3,126,2,245,1,149,2,208,2,83,3,151,255,136,253,209,254,139,255,83,254,130,0,21,3,186,1,246,253,68,255,192,2,117,1,9,253,42,0,46,3,11,2,237,253,143,251,117,1,66,2,86,253,77,251,57,254,29,1,117,251,215,249,182,251,44,0,81,0,174,255,200,2,107,1,221,1,246,0,186,3,110,2,68,6,86,6,253,4,123,3,129,5,91,3,156,3,124,3,6,3,17,4,179,3,118,4,40,0,222,253,181,255,32,1,152,253,150,255,71,253,230,255,87,255,96,255,133,252,29,253,233,254,128,254,251,251,162,254,245,6,28,5,22,4,48,3,44,6,253,5,192,5,154,4,225,5,52,4,192,4,131,3,122,3,136,3,52,2,142,2,152,3,180,2,253,3,88,3,19,254,132,0,177,0,249,1,71,0,195,0,228,255,97,0,200,1,95,1,92,255,88,0,183,1,22,1,216,255,94,1,115,5,181,3,234,0,161,255,219,252,40,254,38,0,93,255,111,1,158,255,233,1,11,2,1,4,154,4,188,4,138,3,63,1,34,5,46,3,205,1,133,255,225,253,220,252,191,1,20,253,188,254,127,252,153,251,31,253,11,254,235,252,55,253,203,2,9,3,215,4,154,3,157,7,147,7,88,5,97,3,218,2,112,3,246,2,132,1,153,252,198,1,17,0,5,255,131,254,214,252,209,249,239,0,247,253,58,252,232,252,3,1,134,252,178,250,254,252,183,255,166,0,93,1,44,255,67,1,184,252,211,254,217,1,179,1,89,253,48,254,216,2,95,1,100,255,57,255,155,2,176,1,29,0,4,255,159,1,224,1,37,253,133,254,145,0,47,2,240,253,137,253,122,251,97,255,189,1,17,1,123,0,127,2,117,1,130,255,32,3,56,2,84,0,94,255,208,2,200,2,194,252,232,253,71,255,222,0,152,1,196,1,245,1,3,3,127,252,181,250,189,255,186,1,232,252,130,250,54,2,90,2,167,0,186,254,253,1,74,1,161,255,142,253,38,253,168,254,132,6,193,4,11,3,199,1,36,5,60,3,72,2,207,2,148,1,225,255,245,3,21,3,89,0,107,0,123,3,37,2,103,3,45,6,149,3,159,2,98,3,199,5,9,5,86,3,135,1,44,4,98,4,44,3,78,0,206,253,89,1,51,2,173,1,153,255,161,1,19,3,134,255,75,254,155,1,20,3,111,252,95,254,90,2,242,2,30,255,240,255,151,0,248,2,68,253,118,0,152,255,242,255,152,251,48,0,28,1,137,1,122,254,93,254,129,253,140,255,114,252,50,1,60,1,243,255,183,4,216,3,53,3,157,2,85,251,75,253,140,0,43,255,140,252,96,254,57,255,210,253,152,253,245,0,108,254,104,253,6,1,56,0,151,253,44,253,171,255,21,254,192,254,112,253,198,253,193,252,127,255,240,253,30,250,193,255,145,254,127,254,154,254,191,254,4,0,51,0,146,254,42,255,63,1,255,1,146,0,159,2,239,255,221,254,146,255,208,1,117,255,16,254,54,255,220,0,200,254,137,253,108,253,183,255,113,253,204,252,106,253,115,253,248,250,167,252,82,254,71,252,65,252,248,254,207,255,44,254,184,255,131,254,162,254,205,253,63,255,105,254,55,0,104,254,221,252,11,0,203,254,137,2,188,0,58,255,0,254,205,1,177,255,54,254,218,250,249,254,122,255,245,253,135,249,77,254,17,254,3,253,57,0,165,254,98,254,178,1,139,251,14,255,104,253,167,252,34,0,188,255,61,253,174,254,163,1,163,0,226,255,250,254,57,254,235,252,106,250,47,253,238,3,152,2,13,1,25,0,107,2,4,1,183,0,96,0,56,252,178,250,124,254,135,0,75,253,67,3,200,1,154,0,81,4,191,2,57,2,107,1,89,6,46,5,217,3,236,2,36,255,219,0,76,0,48,255,81,250,130,249,49,0,149,0,60,252,84,255,16,253,176,254,113,2,209,0,6,255,190,255,7,252,186,252,254,255,61,1,136,247,51,250,118,255,123,0,172,248,205,247,247,253,85,0,57,252,146,254,73,253,143,252,103,252,13,252,5,253,75,252,132,255,0,255,160,254,108,253,178,0,207,1,98,1,48,1,48,249,177,253,230,254,79,0,55,247,175,0,99,3,243,1,118,255,76,255,75,255,235,255,13,247,39,251,52,254,248,253,253,252,195,1,246,255,204,254,15,1,191,255,4,0,214,0,233,254,77,254,213,255,164,254,98,253,35,0,191,255,45,255,38,3,23,2,85,0,41,1,57,0,239,0,210,2,237,1,225,0,149,2,72,3,35,2,228,253,136,254,14,0,93,1,213,1,209,2,75,1,162,0,224,253,16,253,194,255,246,255,142,1,168,255,212,2,189,2,237,255,235,253,162,255,89,2,136,0,185,255,87,253,21,253,90,255,168,254,5,1,206,255,161,0,204,255,229,1,81,1,117,249,50,0,190,0,163,255,22,247,25,255,62,255,174,255,161,255,173,253,102,255,128,0,126,3,245,1,76,2,201,1,167,254,206,0,122,0,110,0,137,253,29,255,199,253,3,0,152,1,239,0,141,1,226,0,59,255,254,255,128,0,235,1,1,5,136,3,36,1,215,0,26,2,50,1,3,1,253,1,91,253,233,251,13,0,65,1,89,253,180,253,154,254,44,255,210,253,243,0,134,2,223,1,230,1,86,1,122,2,20,2,107,0,34,3,75,1,136,0,144,255,114,254,249,251,226,254,186,254,63,253,32,1,16,1,19,5,120,4,154,4,92,3,89,254,121,0,127,254,108,255,217,254,210,254,190,252,205,252,16,0,232,255,55,255,36,254,43,2,91,0,11,255,38,1,218,255,133,254,62,252,59,251,89,251,18,250,239,254,117,254,122,254,11,252,123,253,61,2,205,248,250,251,249,1,212,1,232,2,179,3,97,2,237,1,79,253,108,251,140,253,121,255,254,251,195,0,155,1,196,0,46,6,123,4,63,2,81,1,41,251,247,252,120,253,114,255,83,2,57,3,199,3,223,2,74,251,54,252,175,255,170,254,23,253,13,0,184,255,119,1,198,1,19,0,127,5,153,3,145,249,84,255,93,3,50,2,160,3,1,6,39,4,228,2,88,246,72,252,8,1,82,0,10,254,59,252,202,250,123,0,99,3,212,4,22,2,171,0,240,246,52,254,12,3,107,1,90,251,151,253,252,0,195,255,82,255,34,0,243,3,20,3,227,246,247,0,167,1,153,0,240,255,157,254,6,1,193,1,216,249,207,251,224,253,141,254,153,253,207,254,27,4,37,3,175,2,16,2,6,0,74,255,167,3,107,3,234,3,41,3,199,0,1,1,126,0,76,0,184,253,142,251,87,2,44,2,175,251,145,250,201,249,249,253,47,252,211,250,108,0,91,1,46,253,49,252,109,1,101,0,111,255,169,2,249,0,103,255,0,0,178,254,198,253,159,0,156,1,29,1,176,254,151,253,71,252,58,252,119,3,177,2,29,251,84,0,71,255,114,254,176,253,177,1,20,4,141,2,85,0,73,1,216,255,105,1,79,254,63,253,210,1,62,2,102,255,142,2,80,2,34,1,89,255,72,0,93,1,175,0,162,2,41,1,209,3,208,2,211,4,180,4,245,2,232,1,112,254,243,254,26,2,116,1,186,250,149,250,86,251,165,255,238,4,108,3,7,3,188,2,169,253,218,255,82,254,46,253,184,7,94,6,223,3,96,2,111,0,20,1,30,255,160,255,77,252,124,254,245,255,249,255,209,254,237,253,185,252,82,1,198,6,174,6,125,5,245,3,252,253,169,252,123,253,210,0,80,253,96,254,1,2,230,0,202,252,131,253,134,251,192,254,72,252,110,253,74,253,183,0,142,255,145,253,50,3,162,2,65,255,52,255,219,2,123,2,51,0,197,4,115,3,64,2,70,252,81,254,58,3,86,2,170,254,13,253,124,252,105,254,154,251,158,254,50,255,0,254,221,253,214,252,155,254,148,253,66,0,3,2,183,255,102,254,152,252,79,252,92,250,53,251,191,0,239,255,224,253,25,255,252,249,224,253,123,252,138,252,134,252,242,249,19,246,205,252,54,252,175,0,198,252,46,251,6,253,169,253,234,255,122,2,213,252,37,252,122,252,189,254,203,0,26,0,129,254,21,255,243,252,113,254,238,4,138,3,92,252,137,250,156,250,144,253,93,0,87,0,98,254,229,253,77,253,37,0,121,2,254,1,125,254,36,254,206,250,143,1,66,0,7,1,105,254,207,255,177,254,95,254,17,4,73,7,245,252,191,251,96,250,22,253,166,252,64,3,187,253,9,253,141,254,95,253,6,254,40,8,208,253,134,253,101,251,15,1,241,0,14,0,74,254,12,255,115,254,207,1,178,4,23,4,162,253,227,252,98,250,205,255,189,254,225,1,32,255,184,253,241,253,238,1,113,3,170,2,79,254,206,254,22,252,42,2,147,2,222,0,171,0,96,255,159,254,169,2,6,7,29,6,172,252,99,251,97,249,176,254,102,253,114,0,187,253,12,253,24,253,61,255,119,1,241,1,47,254,220,252,182,251,154,0,26,1,125,255,206,255,65,255,49,253,67,1,220,2,6,6,46,253,205,252,132,250,105,0,6,255,185,0,78,255,10,254,26,253,65,1,254,1,87,4,189,254,201,253,58,252,127,0,228,1,82,1,96,255,52,0,174,254,220,2,87,5,18,6,142,253,222,252,96,249,226,254,182,253,164,2,73,253,169,254,142,254,22,254,39,1,101,7,138,253,194,253,10,252,176,255,133,2,187,255,250,255,194,254,148,254,14,3,170,5,14,4,199,254,35,253,141,250,120,0,60,0,221,1,248,254,183,253,133,255,199,2,221,4,121,2,165,255,157,254,8,252,3,3,246,2,5,1,253,0,81,0,38,254,162,3,167,8,184,6,216,252,181,251,123,248,208,253,242,252,169,0,220,252,206,251,68,255,142,253,201,255,125,5,74,253,52,253,86,251,108,253,98,1,73,1,254,253,201,255,225,253,110,1,9,4,158,4,110,253,65,252,179,250,201,255,72,255,93,0,163,253,226,254,106,253,148,1,193,1,59,3,226,254,162,254,17,251,116,2,50,1,227,0,240,255,147,0,145,253,186,0,155,3,98,8,94,253,134,252,186,249,69,254,28,255,83,1,143,254,234,252,103,254,231,0,86,0,189,5,64,254,187,253,219,251,82,2,194,1,79,255,132,255,86,255,65,254,159,2,135,4,124,5,36,254,101,253,25,250,179,255,118,255,204,2,79,255,140,254,131,254,195,1,166,3,147,3,6,255,80,254,202,252,16,1,60,3,190,1,26,0,19,0,225,255,186,2,156,6,120,8,122,253,47,252,124,248,77,255,39,254,12,1,133,254,23,253,77,253,11,0,127,0,9,4,24,254,107,252,199,252,61,0,67,1,135,0,147,0,111,255,82,253,173,2,18,3,146,6,6,254,176,252,239,250,35,0,90,0,222,0,233,255,166,254,98,253,199,1,79,2,7,5,53,255,175,253,194,251,140,2,96,1,181,1,39,0,63,0,55,254,73,3,241,4,57,8,248,253,142,252,208,249,184,254,57,253,141,5,172,253,170,254,186,255,209,0,173,0,136,7,89,254,170,253,103,252,165,1,93,2,218,255,254,255,11,255,129,255,128,3,177,7,111,4,133,254,250,253,213,249,173,0,118,0,241,2,201,255,131,254,204,255,217,3,253,3,241,2,254,255,221,254,133,252,241,2,224,3,167,1,8,1,131,0,60,255,127,3,226,8,239,9,133,253,192,251,61,246,239,253,42,252,14,2,4,253,194,252,220,253,76,254,60,1,87,2,93,253,84,252,22,253,199,255,236,0,245,255,55,255,175,255,226,252,16,0,77,3,22,6,31,253,39,252,68,251,44,254,17,0,34,1,233,254,184,253,68,253,183,0,54,3,193,2,247,254,20,254,93,251,165,1,152,0,212,1,122,254,166,0,244,254,39,0,14,6,76,7,133,253,58,252,221,249,59,254,20,254,142,3,228,254,253,251,181,255,75,255,123,255,60,7,67,254,144,253,106,251,164,1,111,1,207,255,123,254,44,255,87,255,195,2,49,4,184,4,229,253,58,253,87,250,83,0,93,255,228,1,20,255,225,253,157,254,82,1,151,4,46,3,10,255,203,254,66,252,94,2,248,2,60,0,166,0,248,255,93,255,206,254,57,7,3,10,21,253,255,251,9,249,93,254,66,254,209,0,50,253,202,253,234,253,6,254,181,2,89,3,49,254,71,253,198,251,69,1,175,1,50,255,241,255,248,255,5,253,33,2,151,3,238,5,157,253,241,252,223,250,0,1,201,255,208,0,91,255,164,254,106,253,65,1,168,2,162,3,186,254,83,254,73,252,228,1,190,1,58,2,59,255,72,0,183,255,141,3,175,5,205,6,205,253,31,253,74,248,132,255,96,254,206,2,34,254,108,254,198,254,240,255,190,1,100,6,217,253,231,253,18,253,198,255,126,2,214,0,55,0,71,255,241,254,124,4,21,5,188,4,29,254,97,253,16,251,117,0,29,1,31,2,52,255,121,254,145,255,1,2,2,6,86,3,142,255,66,255,46,252,109,3,83,2,208,1,4,1,4,1,201,254,236,2,235,8,168,8,251,253,79,252,133,247,186,254,60,253,122,1,212,252,77,253,24,255,208,253,175,2,129,5,36,253,78,253,188,252,153,254,133,2,130,1,247,254,62,0,90,253,145,0,108,6,184,4,213,253,36,252,47,251,178,255,14,0,114,0,185,254,154,254,23,254,136,1,165,2,185,2,55,255,20,255,140,251,181,2,193,1,178,0,13,255,0,1,79,254,99,2,105,5,152,9,156,253,123,252,72,250,205,254,239,255,243,1,197,254,101,253,2,255,0,1,172,1,183,5,26,254,90,254,224,251,143,2,114,1,18,0,154,255,71,255,236,254,243,2,42,6,55,5,24,254,165,253,118,250,182,0,163,255,102,3,183,255,54,254,164,254,67,3,94,3,189,3,230,254,179,254,22,253,35,2,71,3,172,1,17,1,167,255,13,0,172,3,172,6,16,10,94,254,196,251,34,249,212,255,154,254,3,1,15,254,125,253,208,253,99,0,45,2,193,3,91,254,2,253,107,252,39,1,70,1,184,0,175,0,15,0,142,253,20,2,110,3,189,7,69,254,0,253,5,251,221,0,156,0,12,1,39,0,149,254,7,254,183,2,4,3,116,4,94,255,53,254,112,252,197,2,188,1,146,2,25,0,47,1,200,254,244,4,130,5,179,6,215,254,2,253,212,248,249,254,148,255,46,4,106,254,243,255,127,255,57,0,182,1,174,10,138,254,25,254,189,252,48,1,184,2,164,0,104,0,21,255,5,0,75,6,108,7,119,5,27,255,186,253,211,250,149,1,192,0,49,3,169,255,74,254,111,0,4,4,175,4,225,3,68,0,81,255,90,252,9,4,93,4,195,1,222,1,200,0,8,255,79,8,136,10,250,7,189,252,213,250,173,247,225,252,76,253,210,1,212,252,248,251,43,254,146,253,32,1,152,3,67,253,183,252,210,251,101,254,0,2,8,0,122,254,165,255,24,253,226,255,19,4,137,4,202,252,132,251,124,251,218,254,210,255,110,0,101,254,138,254,90,253,214,0,19,2,156,2,106,254,92,254,86,251,231,1,232,0,47,1,194,254,91,0,40,254,123,0,208,4,141,9,46,253,72,252,41,250,30,253,93,253,52,5,225,253,162,253,45,255,161,255,158,255,228,5,219,253,254,253,87,251,217,1,211,0,73,0,224,254,144,255,123,254,25,2,52,5,234,4,201,253,13,253,247,249,71,0,229,254,120,2,86,255,31,254,19,254,169,2,234,3,49,3,156,254,181,254,147,252,163,1,194,2,90,1,241,0,222,255,186,254,121,1,158,7,91,7,41,253,205,251,167,249,23,255,225,253,116,0,244,253,218,252,183,253,183,255,222,1,217,2,224,254,99,252,137,251,173,0,191,1,204,255,68,0,27,255,162,253,193,1,17,2,5,7,177,253,149,252,173,250,183,0,112,255,68,1,153,255,60,254,102,253,111,2,232,1,152,4,18,255,1,254,20,252,70,1,40,2,202,1,136,0,108,0,193,254,114,2,63,5,91,7,22,254,122,253,62,249,70,255,63,254,216,3,30,253,180,255,86,255,218,253,243,2,0,10,16,254,2,254,77,252,210,0,182,2,204,255,84,0,190,254,57,255,66,4,89,6,200,4,136,254,165,253,140,250,87,1,74,0,120,2,81,255,10,254,224,255,204,3,52,5,222,2,52,0,217,254,167,251,41,4,150,3,160,0,137,1,107,0,115,254,190,4,89,10,205,6,136,253,79,251,157,248,49,253,235,254,97,1,117,253,144,252,134,255,45,255,209,0,58,5,206,253,54,253,221,251,48,255,132,1,159,0,192,254,195,255,217,253,37,1,68,4,163,5,120,253,159,252,27,251,207,255,113,255,49,1,111,254,29,255,183,253,49,2,20,2,159,3,139,255,69,254,92,251,251,1,180,1,36,1,177,255,233,0,54,254,159,2,1,4,92,9,135,253,182,252,11,250,204,254,226,254,128,2,139,254,147,253,105,254,162,1,253,0,25,5,197,254,187,253,143,251,60,2,173,2,231,254,61,0,188,255,141,254,223,3,77,4,218,5,19,254,85,253,174,250,209,255,164,0,192,2,0,255,198,254,244,254,119,2,181,3,28,4,138,255,164,254,191,252,68,0,156,4,56,2,152,0,117,0,34,0,89,4,110,7,191,8,167,253,65,252,86,249,113,255,23,254,224,1,180,254,113,253,194,253,54,0,97,1,168,4,50,254,116,253,228,252,150,0,37,2,112,0,195,0,145,255,253,253,167,2,84,4,111,6,210,253,19,253,63,251,247,255,16,1,85,1,203,255,247,254,233,253,233,1,75,3,18,5,136,255,30,254,248,251,120,2,31,2,152,1,179,0,50,1,242,253,100,4,184,5,196,8,95,254,238,252,230,249,32,255,128,254,84,5,135,254,53,254,231,255,129,1,233,1,126,8,180,254,117,253,195,252,32,2,41,2,61,0,22,0,143,255,167,255,104,4,189,6,244,5,40,255,139,254,139,249,161,0,60,1,140,3,91,255,34,255,189,255,82,5,151,4,21,3,73,0,4,255,1,253,226,2,164,3,104,2,106,1,246,0,130,255,19,3,94,10,211,11,77,253,174,251,114,247,203,253,180,253,12,2,178,253,45,252,22,254,249,254,141,1,214,3,191,253,187,252,79,252,234,255,179,1,207,255,66,255,138,255,139,253,168,255,216,4,233,5,132,253,229,251,5,252,221,254,189,0,3,1,255,254,42,254,139,253,145,0,177,3,126,3,186,254,148,254,186,251,31,2,4,1,118,2,54,255,189,0,47,255,101,1,99,5,43,8,199,253,205,251,87,250,54,253,17,255,151,3,92,254,63,253,172,255,147,255,142,255,103,9,99,254,239,253,103,251,226,1,112,1,131,0,70,255,184,255,125,255,93,3,231,4,196,4,157,253,110,253,195,250,227,0,135,255,119,2,80,255,23,254,38,255,233,2,151,4,189,3,191,254,108,255,88,252,159,2,198,3,216,0,84,1,253,255,113,255,213,1,56,7,133,9,39,253,63,252,109,249,43,255,2,255,65,1,1,254,74,254,247,253,130,255,213,2,135,3,172,254,83,253,248,251,60,1,224,1,20,0,23,0,167,255,217,253,97,1,27,4,253,6,224,253,11,253,172,250,42,1,231,255,180,1,156,255,120,254,249,253,211,1,242,2,54,4,46,255,114,254,202,251,108,2,146,2,118,2],"i8",g,o.GLOBAL_BASE+10240),b([33,0,147,0,78,255,153,3,151,6,129,7,187,254,240,253,70,248,2,0,227,254,142,3,141,254,22,254,26,255,0,0,85,2,218,7,16,254,117,254,190,252,37,0,177,3,245,0,181,0,96,255,112,255,201,5,93,5,77,5,157,254,167,253,10,251,42,1,66,1,160,2,63,255,176,254,77,0,65,4,253,5,154,3,177,0,217,255,155,251,228,3,13,3,24,2,200,1,110,1,80,254,135,5,136,9,231,8,46,254,10,253,235,246,209,254,3,254,131,1,41,253,211,253,66,0,111,255,131,2,224,4,224,253,92,253,108,252,31,255,94,3,76,2,104,255,40,0,235,253,167,1,143,5,22,6,196,253,181,252,135,251,128,255,85,0,205,1,18,255,255,254,184,253,93,2,236,2,93,3,24,0,54,255,127,250,29,3,231,1,47,1,75,255,108,1,74,255,104,2,98,5,126,11,18,254,172,252,95,250,220,254,61,0,44,3,172,255,45,253,74,255,43,2,20,2,226,5,147,254,19,254,223,251,54,3,76,2,11,0,242,255,238,255,26,255,233,3,121,5,171,5,38,254,199,253,244,250,46,1,62,0,38,4,186,255,136,254,34,255,214,3,206,3,125,4,60,255,22,255,229,252,223,1,74,4,243,1,106,1,58,0,70,0,123,4,21,8,41,11,25,254,146,252,224,248,73,0,224,254,92,1,154,254,12,254,4,254,199,0,209,2,218,4,178,255,71,253,229,252,105,1,24,2,196,0,118,1,110,0,33,253,79,3,27,4,104,7,146,254,55,253,98,251,59,1,64,1,173,1,72,0,41,255,62,254,247,2,118,3,83,5,226,255,84,254,190,252,93,3,115,2,28,3,118,0,212,1,233,254,75,5,91,7,101,7,68,255,126,253,180,249,63,0,81,255,174,4,94,254,45,255,51,0,158,1,75,2,41,10,22,255,211,253,166,252,168,1,121,3,222,0,136,0,155,255,83,0,133,5,230,8,103,5,172,255,67,254,147,250,158,1,57,1,21,4,29,0,169,254,65,0,16,6,111,6,212,3,183,0,165,255,195,252,249,4,133,5,104,1,41,2,16,1,149,255,51,6,77,12,43,10,104,5,29,8,92,13,244,19,86,26,186,31,135,38,84,43,170,49,133,53,61,254,215,251,239,253,231,250,62,254,12,253,15,254,161,252,128,254,149,253,99,254,99,253,195,254,230,253,181,254,212,253,98,254,4,254,88,254,134,254,238,254,188,254,78,254,154,253,30,255,12,254,24,255,254,253,249,254,135,254,214,254,102,254,105,255,58,253,82,255,206,252,107,255,100,254,100,255,83,254,224,254,50,254,70,255,53,255,86,255,210,254,65,255,191,254,125,255,109,255,215,254,117,254,28,255,42,255,11,255,64,255,189,255,196,254,185,255,185,254,152,255,51,255,162,255,73,255,113,255,218,255,63,255,161,255,16,0,180,255,132,255,8,255,23,0,19,255,24,0,12,255,18,0,120,255,44,0,145,255,223,255,232,255,231,255,0,0,149,0,19,0,23,0,113,255,158,0,87,255,174,0,75,255,133,0,201,255,165,0,230,255,111,0,84,0,98,0,75,0,87,0,183,0,141,255,245,255,248,255,130,0,11,0,170,0,254,0,77,0,205,0,17,0,183,0,112,0,6,1,194,0,202,0,31,1,95,0,189,0,214,255,151,255,234,0,179,0,39,0,186,0,163,0,89,1,76,1,199,0,43,1,161,0,202,255,29,1,178,255,25,1,123,255,141,0,74,255,111,0,249,0,85,1,15,1,108,1,93,0,147,1,75,0,135,1,92,0,254,1,118,255,220,0,71,255,227,255,222,255,105,1,141,255,64,1,3,0,42,2,99,0,30,1,218,0,79,2,11,255,150,1,244,254,197,1,0,0,68,2,25,0,94,2,19,1,20,2,148,0,194,1,183,255,227,2,227,254,6,2,224,254,94,0,53,255,162,2,116,255,182,255,205,0,202,2,142,255,43,1,176,0,155,3,182,0,45,2,240,0,193,2,240,255,1,2,229,1,81,2,37,1,128,1,195,1,105,2,218,255,50,0,51,2,17,2,47,1,209,0,203,1,107,1,177,1,196,1,194,1,198,1,111,1,94,2,221,1,229,2,176,1,97,1,112,1,11,1,105,1,204,2,17,1,71,2,197,1,166,0,254,1,172,0,201,0,117,2,18,1,191,0,56,2,127,2,46,1,42,1,122,2,131,1,131,2,94,1,75,2,48,2,100,2,53,2,88,2,20,3,231,1,160,2,0,2,247,3,65,1,77,1,101,1,86,3,131,255,157,1,218,1,200,2,17,0,105,255,52,2,29,1,14,1,15,255,203,3,121,3,233,1,220,0,254,1,128,3,37,2,156,3,71,1,57,3,34,1,143,3,28,2,84,4,158,0,37,3,199,0,189,3,255,1,218,2,100,0,106,3,13,0,23,3,179,1,120,2,164,2,204,3,249,0,132,3,211,1,194,4,13,3,50,4,73,2,17,3,233,255,157,2,11,1,19,4,107,2,60,4,103,2,121,4,110,2,137,3,148,3,25,4,80,0,75,1,72,2,51,4,89,0,127,2,220,3,193,3,2,3,208,2,30,3,187,2,236,1,191,1,131,3,115,2,15,1,164,4,213,2,53,5,87,0,91,2,64,3,67,6,104,2,103,4,122,3,225,5,232,3,132,4,98,3,241,3,227,3,59,3,125,4,90,3,49,3,170,5,5,3,40,5,244,1,109,5,56,1,129,4,236,255,60,4,64,0,3,5,2,0,148,4,143,1,77,7,2,2,170,6,246,1,100,6,118,3,242,5,160,1,88,2,107,4,70,5,251,4,110,5,121,3,3,7,146,3,230,6,227,0,159,4,226,4,34,7,249,1,62,7,151,3,49,9,57,255,175,1,152,0,199,6,43,255,228,255,136,1,54,5,103,255,204,255,210,3,127,4,189,254,112,254,45,3,167,6,120,255,84,0,169,5,223,7,181,254,113,255,119,255,168,4,0,255,22,2,99,255,7,4,205,254,73,254,30,2,219,2,183,254,92,254,159,255,104,2,150,254,88,255,190,254,110,1,9,255,146,255,45,255,89,0,60,255,203,254,20,0,59,0,148,254,49,254,226,254,89,0,176,254,175,0,80,254,141,0,133,254,66,255,78,254,60,255,177,255,150,0,234,254,29,255,232,254,166,0,213,253,90,254,101,255,29,2,146,254,54,0,227,255,173,255,211,254,250,252,186,0,116,2,115,254,248,254,242,0,37,1,59,255,183,253,124,0,154,1,53,0,123,255,10,0,84,1,198,253,215,251,65,0,66,254,68,0,19,254,127,1,169,3,155,254,57,253,153,254,6,255,91,253,212,251,36,1,230,255,107,1,6,0,95,2,33,5,129,255,246,255,233,5,94,7,201,2,204,3,189,5,133,8,163,5,224,7,161,249,192,249,252,248,14,247,253,251,22,249,180,251,23,248,3,251,148,250,169,250,2,250,77,252,75,250,52,252,12,250,25,252,58,251,4,252,108,251,209,252,37,252,32,252,165,250,64,251,18,252,247,250,186,251,24,253,12,251,13,253,243,250,162,252,101,252,119,252,40,252,90,253,229,251,83,253,230,251,193,251,39,252,218,251,89,253,35,252,127,253,153,251,48,252,6,253,114,253,134,252,218,252,191,252,189,251,62,253,139,253,147,253,218,252,128,253,212,252,249,252,134,253,245,252,225,253,28,252,203,253,205,251,188,253,222,253,157,253,196,253,149,253,8,253,222,254,145,252,242,253,201,252,50,254,229,252,3,255,215,253,97,254,179,253,73,254,235,253,172,254,76,253,89,252,7,254,252,252,66,253,149,251,249,254,206,254,53,252,29,254,67,254,182,255,213,253,220,253,154,253,127,255,75,253,22,255,116,254,10,255,37,254,6,255,247,254,108,254,136,254,254,253,95,254,2,254,212,254,199,254,178,254,104,253,49,254,210,252,126,254,64,253,175,254,153,253,22,255,55,255,23,255,17,255,89,255,201,253,53,255,149,253,109,255,97,254,141,255,160,254,90,255,18,253,85,255,7,253,242,254,145,252,248,254,121,252,145,254,24,253,43,0,37,254,14,0,115,253,43,0,98,253,11,0,64,254,197,255,247,253,130,255,137,255,101,255,155,253,214,255,161,252,229,255,93,252,136,0,29,254,183,0,44,254,55,0,214,254,55,0,208,254,57,1,159,253,57,1,48,253,66,1,89,255,100,0,227,253,253,255,137,255,145,255,69,255,233,0,20,255,4,1,22,255,26,0,91,255,134,0,211,255,216,255,219,253,104,1,53,255,122,1,124,254,194,1,129,254,19,1,20,0,182,0,153,255,246,0,145,255,175,1,37,0,206,1,110,255,231,1,99,255,228,254,197,255,247,1,72,255,24,0,53,0,253,255,54,0,122,0,3,1,77,1,66,0,228,1,104,0,180,1,68,0,195,0,116,0,190,0,206,0,13,1,247,255,226,1,96,1,126,1,29,1,143,1,21,1,196,1,0,1,69,0,186,0,13,0,41,1,243,255,3,1,161,255,30,0,56,0,138,1,196,0,169,1,205,0,200,1,25,1,65,2,15,0,191,0,119,1,34,1,151,1,64,2,200,255,227,0,32,2,149,1,0,0,37,2,164,255,16,2,27,255,95,1,11,255,82,1,150,254,179,1,167,0,15,2,181,255,46,1,91,0,56,3,129,0,87,2,240,1,167,2,186,0,237,2,153,0,225,2,231,254,88,2,164,254,103,2,20,255,1,3,41,0,113,3,38,0,122,3,36,255,73,3,155,254,115,3,119,254,135,3,134,253,218,1,68,254,82,3,81,255,166,2,19,254,242,0,249,253,17,3,54,253,70,2,227,253,110,1,225,253,178,1,171,253,244,1,3,253,222,0,66,253,149,3,25,253,194,3,155,252,245,1,125,252,36,2,133,254,200,0,77,254,157,0,205,252,214,0,163,252,157,0,154,253,40,0,136,253,94,0,141,252,202,255,27,253,4,2,11,254,42,1,154,253,85,255,154,252,95,255,159,252,233,255,206,252,93,0,9,252,245,254,106,253,153,254,219,253,2,0,70,254,135,255,135,254,0,0,29,255,33,0,98,254,130,255,127,255,212,0,90,252,34,0,198,251,230,254,161,251,244,254,58,253,199,252,92,254,65,255,204,251,96,252,107,252,163,255,140,253,154,254,97,0,7,0,50,255,119,254,155,255,24,0,53,255,38,0,88,255,83,0,169,253,89,254,233,254,170,1,68,253,118,0,181,255,206,0,43,252,95,253,88,253,161,1,145,254,37,0,233,254,218,1,127,255,194,254,63,1,40,1,142,253,217,255,87,1,90,2,72,253,217,255,209,254,172,3,104,0,233,0,132,254,137,0,220,255,13,1,181,255,42,255,120,0,43,0,239,253,35,254,203,1,164,0,54,255,27,255,207,255,89,255,97,2,24,3,98,0,36,255,147,3,148,0,37,1,27,1,101,3,91,0,63,2,138,1,70,1,178,255,205,2,67,0,109,1,189,254,104,2,220,255,219,2,27,0,107,2,238,0,120,2,17,1,192,1,99,0,33,3,220,1,101,3,17,1,173,2,64,0,21,3,72,0,253,3,217,0,25,3,203,1,222,2,104,1,134,2,224,1,104,1,66,1,173,1,208,1,126,2,174,1,244,2,107,1,232,3,148,1,171,2,16,2,90,2,103,2,143,2,157,1,178,3,175,2,169,3,90,2,136,3,92,2,43,2,225,2,18,3,150,2,211,1,142,2,106,1,77,2,161,3,198,2,242,1,222,1,159,1,164,1,181,2,115,3,45,3,171,2,13,3,157,3,145,3,171,3,214,2,220,2,235,1,85,3,19,2,180,3,222,2,195,3,59,1,40,3,249,2,243,2,120,4,248,2,143,2,52,4,58,3,33,4,67,4,70,3,235,3,40,3,23,4,109,4,147,2,77,4,224,3,26,4,50,4,51,4,203,3,182,2,202,4,30,4,59,2,73,3,116,3,124,5,99,5,72,4,56,4,93,3,207,4,223,2,4,5,248,2,248,4,223,3,87,5,29,4,233,4,188,2,26,4,22,2,220,3,197,1,240,4,87,2,116,4,167,2,85,6,47,3,104,5,9,2,37,5,137,1,28,6,37,3,168,5,174,2,44,4,136,2,107,3,51,1,59,4,105,1,23,4,61,1,137,5,196,3,163,2,59,2,128,4,79,0,90,4,209,255,250,5,55,1,185,6,58,1,142,4,177,2,2,2,162,255,93,1,26,1,132,5,72,1,1,4,231,1,191,255,57,0,37,3,202,3,36,0,62,0,1,3,249,254,23,3,166,254,125,2,187,2,119,255,108,2,22,2,29,2,33,253,194,0,199,2,44,1,244,254,161,252,158,3,1,3,60,253,84,254,250,1,174,0,132,252,138,253,179,1,35,2,101,250,254,254,109,2,215,1,6,252,168,250,119,254,9,2,104,252,82,253,231,255,20,0,42,252,124,251,84,1,9,0,234,249,145,251,160,254,48,0,213,249,110,254,137,252,6,0,124,251,136,252,220,253,160,254,149,249,112,251,97,255,98,2,24,248,61,252,31,255,193,0,136,249,88,248,11,255,19,254,60,252,112,249,88,252,133,253,237,250,48,249,148,250,164,253,252,249,189,252,139,250,121,255,204,249,222,254,122,249,56,253,37,248,160,249,129,249,229,255,46,247,213,252,123,251,184,0,15,251,189,0,169,250,74,2,37,248,201,0,234,252,200,2,70,251,3,0,247,251,40,3,29,251,62,3,145,255,123,2,156,249,191,1,49,254,75,252,67,254,96,252,8,254,118,251,11,254,69,251,144,0,161,254,140,254,228,251,229,254,221,251,233,254,157,251,193,253,98,250,181,253,178,249,89,252,40,252,229,0,178,2,103,252,49,253,109,254,82,5,83,253,47,254,106,3,141,1,3,254,210,255,61,1,54,5,27,254,200,1,45,3,183,1,101,254,83,1,130,3,43,4,87,254,46,0,161,5,241,1,115,252,224,252,185,5,22,4,2,255,191,254,150,5,141,4,68,0,94,1,10,4,154,2,114,1,11,0,31,5,22,3,143,0,232,0,17,4,26,6,142,255,151,2,80,6,54,4,198,1,67,2,251,4,16,4,180,255,141,3,240,2,43,4,153,0,0,2,92,1,190,4,102,2,129,1,51,7,40,3,13,1,10,4,203,0,62,4,140,2,249,3,247,6,106,4,173,1,47,5,131,1,104,5,207,255,159,4,184,255,191,4,96,254,233,3,32,2,213,6,160,254,199,4,10,254,175,4,179,253,57,2,29,255,94,6,114,255,42,6,26,255,179,6,54,253,8,5,186,252,118,5,107,4,77,5,48,255,208,4,181,1,197,3,95,252,50,3,43,3,130,5,91,3,227,5,164,0,188,4,107,5,1,7,228,1,82,7,200,1,15,8,228,3,146,4,46,5,122,5,36,5,80,5,111,4,238,4,210,4,82,6,81,5,232,6,141,5,203,4,48,6,67,5,86,3,160,2,149,6,30,6,115,4,246,4,224,7,33,7,237,6,45,6,252,5,180,5,207,5,178,3,123,6,253,3,208,6,188,4,112,5,209,3,236,6,137,4,34,7,140,4,182,6,149,5,181,7,55,6,161,4,96,3,84,8,37,4,7,7,46,3,46,7,245,2,56,8,35,5,6,8,234,4,65,8,147,3,27,9,162,3,187,5,123,4,30,10,159,5,197,8,208,6,42,8,84,6,54,9,174,5,106,10,226,5,84,7,45,7,22,8,183,7,203,6,41,6,170,2,9,5,48,6,253,7,174,5,50,8,194,9,212,7,151,10,18,8,214,2,52,6,196,10,32,9,228,0,79,3,152,9,123,6,36,0,45,1,150,7,165,7,66,254,160,255,106,8,116,5,253,5,77,4,14,0,96,2,101,252,36,253,103,5,190,7,65,5,184,3,88,253,65,1,1,5,244,4,198,249,109,1,173,3,178,3,55,249,202,252,70,9,227,10,29,7,228,10,236,248,29,247,169,248,23,246,152,249,200,248,97,249,44,248,60,251,136,248,59,251,198,247,233,249,204,249,219,249,236,249,85,251,177,249,56,251,65,249,177,250,129,251,176,249,100,248,6,251,145,250,231,250,133,250,185,249,101,251,116,249,225,250,93,250,58,250,169,250,126,252,24,251,221,251,205,250,146,251,42,252,147,251,131,251,32,250,200,251,228,250,4,252,97,251,44,252,50,250,57,252,41,250,36,252,102,252,233,251,203,251,186,252,101,251,166,252,58,251,149,251,239,251,216,251,1,253,152,252,123,251,67,253,144,252,62,253,118,252,250,252,8,252,190,253,200,251,223,252,58,250,177,253,169,251,176,253,134,251,55,253,148,250,128,253,160,250,171,253,221,251,96,254,121,252,82,253,192,252,107,253,60,253,68,254,156,252,22,254,103,252,138,254,248,252,149,253,110,251,183,253,219,253,255,252,229,252,77,254,109,253,238,253,27,253,14,254,187,252,155,254,171,253,233,254,153,252,13,255,137,252,230,254,103,253,232,254,101,253,91,255,208,253,118,254,121,252,150,254,102,254,64,254,185,253,103,254,194,253,199,254,155,254,131,253,220,253,198,253,76,254,128,252,8,254,130,254,11,253,198,255,31,254,91,255,150,253,65,255,138,254,22,255,130,254,34,255,85,253,231,255,32,254,94,254,153,254,38,253,159,254,188,254,99,255,80,254,190,254,118,254,209,254,228,254,152,255,167,253,223,254,212,253,60,255,180,253,106,255,109,253,160,253,39,254,232,255,188,255,64,254,38,254,248,255,6,254,211,255,20,253,72,255,180,252,4,255,123,252,165,255,184,253,159,255,116,253,138,0,4,253,125,255,90,253,244,255,98,253,165,0,253,254,253,255,184,252,149,255,115,252,37,0,32,252,44,0,170,252,97,254,185,252,13,0,23,252,241,254,254,251,203,254,226,252,34,254,192,252,24,254,81,252,168,0,168,251,125,254,95,251,155,255,97,251,216,255,83,252,196,254,250,251,254,252,236,251,143,253,199,251,230,253,56,251,213,254,224,250,76,254,83,251,105,253,113,251,95,255,64,251,78,253,43,251,193,252,104,250,48,253,133,250,19,254,126,252,28,253,102,252,223,252,178,251,110,254,213,249,60,252,219,251,130,253,11,251,98,250,37,250,90,252,34,250,129,252,194,249,204,253,69,249,51,253,162,253,171,253,114,251,195,251,167,250,44,254,102,248,43,250,210,248,71,252,116,248,93,252,37,250,68,255,157,249,91,254,79,250,174,254,88,250,234,255,106,248,90,254,42,248,7,255,16,254,142,255,138,248,13,253,247,250,174,0,85,250,147,255,30,254,255,254,59,251,4,254,175,249,151,0,98,249,208,0,114,253,107,0,141,249,29,0,139,251,23,1,65,251,50,1,52,251,6,254,38,253,81,255,44,251,155,255,55,252,39,2,154,252,22,1,201,252,59,1,205,253,120,1,229,251,228,0,5,254,24,1,169,253,25,1,10,253,253,0,207,254,123,1,13,253,122,255,157,253,148,2,200,252,24,2,207,252,134,2,99,254,49,0,171,254,177,0,59,254,14,2,30,254,77,2,185,255,83,1,111,253,8,1,12,255,39,1,19,255,59,1,125,254,57,2,6,254,247,255,135,254,14,0,96,255,149,2,40,255,40,0,204,254,210,255,95,0,214,0,14,255,167,0,170,255,192,0,200,255,27,0,180,255,31,0,36,0,53,1,150,255,74,255,143,255,74,0,71,254,234,255,23,0,139,0,81,0,245,255,44,0,15,0,169,255,119,255,138,255,49,255,98,255,198,255,16,1,164,255,100,255,71,254,8,0,120,255,128,0,35,255,101,0,38,255,40,0,59,255,180,255,56,254,9,0,67,254,33,0,89,254,226,0,60,0,73,0,34,255,156,0,113,254,24,1,194,254,245,0,171,254,166,0,13,254,83,1,66,255,71,1,37,255,69,1,119,255,167,255,172,253,100,0,141,253,144,0,91,253,231,1,28,0,252,0,121,254,214,0,215,255,26,1,228,255,99,0,226,254,75,1,49,0,203,1,124,254,53,2,143,254,180,1,28,0,80,1,247,255,141,1,89,255,106,2,34,0,84,2,239,255,49,2,116,255,43,1,79,0,10,2,125,0,203,0,2,0,244,0,32,1,255,0,211,0,175,0,82,0,84,2,187,0,5,2,108,0,125,1,255,0,109,1,41,1,241,1,96,1,71,1,174,255,25,0,210,0,115,1,245,0,5,1,3,0,33,2,193,1,140,0,38,1,44,0,39,1,212,0,91,1,244,0,238,1,75,1,16,2,201,0,51,1,93,1,155,1,101,2,28,1,102,2,157,1,208,1,66,1,112,2,141,1,97,0,200,0,96,255,128,1,149,0,106,1,239,1,13,2,13,1,73,2,33,0,235,1,135,255,177,1,171,1,99,2,242,1,4,2,171,0,187,1,241,1,154,2,184,1,19,1,54,2,63,2,146,0,127,2,155,0,158,2,223,255,173,0,212,0,184,2,90,255,89,2,65,255,183,2,23,254,247,1,175,0,230,2,214,0,220,1,116,1,59,4,66,2,18,2,74,2,9,3,169,1,106,3,59,1,73,3,118,1,80,3,91,255,53,2,35,0,223,3,217,255,38,4,73,1,200,2,18,3,72,3,133,2,27,3,149,2,164,2,59,2,150,3,120,2,55,4,161,2,49,3,62,1,132,1,106,3,244,3,52,2,80,3,112,3,108,2,45,2,223,1,159,2,197,1,180,2,212,1,72,3,130,2,76,3,133,2,250,1,172,1,129,3,55,2,69,3,131,1,194,3,243,1,179,2,49,2,171,3,158,3,15,3,40,1,22,3,12,1,4,4,18,2,106,3,73,1,36,2,143,0,163,2,35,1,247,1,66,0,17,4,103,1,18,3,97,0,37,3,33,0,69,3,214,1,255,1,49,0,68,4,71,1,150,4,67,1,3,0,242,0,104,3,218,1,177,2,173,1,49,5,166,2,18,4,108,2,85,4,152,2,65,1,193,0,121,3,182,3,129,4,106,3,125,3,123,2,109,3,94,3,180,3,145,3,13,5,153,2,40,5,127,2,229,3,25,3,122,5,6,4,152,4,244,3,86,4,191,3,130,5,157,3,123,5,147,3,31,2,94,3,92,4,198,4,67,3,166,4,67,3,166,4,191,3,124,4,123,4,96,5,20,5,169,4,135,5,207,4,55,5,61,5,234,2,68,4,175,6,3,5,109,5,49,4,54,5,30,6,129,4,195,5,109,6,113,4,33,7,196,4,32,4,102,5,241,5,194,6,96,6,9,6,84,6,6,6,87,3,60,6,97,3,131,6,181,2,117,3,180,6,239,5,143,4,16,5,161,8,224,6,160,7,213,5,228,7,202,5,254,5,74,7,158,6,216,7,30,6,236,2,225,6,57,3,38,1,112,5,60,4,10,8,109,2,35,5,109,1,7,5,198,0,4,4,232,1,128,5,249,0,147,1,246,3,25,6,68,1,107,1,109,6,20,4,193,0,111,1,242,7,67,7,5,255,67,2,238,2,226,3,13,255,30,0,45,5,111,3,228,255,87,255,112,2,149,3,59,254,159,0,186,0,90,5,154,253,6,0,25,2,136,1,162,255,221,254,13,3,229,0,128,255,214,254,245,0,235,1,67,253,120,253,204,3,21,3,11,254,128,253,178,0,255,0,147,254,122,254,1,255,61,1,66,252,218,254,65,255,228,0,249,252,65,254,157,0,19,255,111,253,48,253,105,254,92,0,139,255,157,253,78,1,26,255,89,253,196,251,112,255,195,254,123,252,163,252,30,253,152,254,171,255,41,253,166,255,237,252,100,0,234,255,121,254,249,254,200,255,183,255,175,254,14,253,5,0,67,255,62,253,144,253,89,0,168,254,121,255,167,251,159,254,19,255,84,253,145,251,237,254,178,251,243,254,77,251,152,0,145,0,46,253,48,251,49,0,80,0,32,251,248,252,8,255,135,1,36,253,221,253,213,1,218,0,1,255,160,252,69,0,110,1,90,255,27,254,80,253,191,0,68,251,84,251,86,255,87,255,228,250,161,249,65,1,214,1,117,250,37,251,192,255,16,1,175,250,8,255,236,1,53,2,47,253,159,253,195,0,229,1,195,253,123,255,171,1,202,0,85,255,138,255,199,0,63,2,2,0,225,255,182,2,243,2,170,250,217,255,40,2,45,2,23,254,15,1,168,2,25,2,13,0,59,254,87,3,186,3,123,255,204,255,175,255,226,2,111,251,125,2,31,4,35,4,161,255,164,2,235,4,57,4,233,1,49,1,63,254,186,3,234,253,228,3,55,252,98,3,222,251,35,4,242,250,106,2,120,250,105,2,54,254,86,5,97,255,29,7,250,252,240,253,242,255,86,4,78,251,123,252,252,252,177,1,24,251,25,251,13,252,210,254,166,253,183,253,9,253,174,249,8,253,243,249,184,252,127,248,208,252,229,253,23,249,69,247,29,255,220,255,14,248,217,248,197,247,154,251,89,246,232,248,66,250,252,0,115,245,97,254,197,253,45,254,229,5,18,6,132,8,183,7,22,9,228,7,191,248,111,249,191,248,37,249,248,247,130,251,170,247,138,249,173,249,181,251,88,249,149,251,191,250,184,249,177,250,154,249,198,250,243,250,211,250,15,251,128,249,143,249,49,250,173,252,190,250,216,248,123,250,116,247,254,250,87,253,7,249,143,249,58,252,198,251,97,251,116,249,226,251,207,251,138,251,122,251,73,251,24,253,6,251,27,252,90,252,153,250,97,252,120,250,14,252,231,250,241,252,69,252,231,251,124,252,31,252,207,252,31,253,201,252,52,252,91,251,30,253,186,251,30,253,126,251,240,252,223,252,214,252,238,252,132,252,248,253,24,252,206,252,124,253,59,252,191,253,142,252,227,253,74,253,97,253,107,252,173,253,126,253,122,253,153,253,68,252,147,253,99,252,253,253,41,253,29,254,209,252,27,254,184,252,190,253,72,254,55,253,190,253,187,254,111,253,98,253,126,254,198,253,71,254,102,253,254,253,237,252,120,254,239,253,246,253,59,254,25,254,89,254,152,253,183,253,151,253,99,255,106,253,244,254,88,253,164,254,190,254,189,254,136,253,68,254,208,254,82,254,180,254,54,254,235,254,44,254,109,253,231,252,193,254,132,253,29,255,214,253,139,254,165,254,178,254,46,255,56,254,64,255,238,253,14,255,40,255,58,255,146,254,142,254,174,254,95,255,103,254,20,253,149,255,132,254,218,254,125,253,33,255,103,253,22,255,27,253,115,255,16,254,126,255,2,254,117,255,185,254,84,255,207,254,206,254,188,253,92,255,249,254,250,254,84,255,189,255,110,254,31,0,146,254,246,255,76,254,170,255,241,253,71,0,135,254,234,255,159,253,244,255,90,253,189,255,193,254,63,0,65,255,35,0,75,255,217,255,14,255,126,0,89,255,116,255,224,253,155,0,215,254,174,0,215,254,38,0,248,255,117,0,132,254,197,0,60,254,240,0,246,253,223,0,153,255,110,0,69,255,87,0,101,255,169,0,209,255,157,0,26,0,173,255,156,255,128,0,80,0,209,0,194,255,6,0,7,0,22,0,5,0,62,1,236,255,248,0,211,255,56,255,193,255,156,0,187,255,250,0,73,255,113,1,130,255,143,255,180,255,114,255,134,255,192,255,2,255,225,255,35,0,79,255,185,255,249,255,171,0,93,0,27,0,108,0,212,0,182,254,47,255,133,255,186,255,233,254,95,0,160,255,20,0,68,255,195,255,198,254,87,0,212,254,178,255,158,254,122,255,11,0,122,0,116,255,122,0,237,254,152,0,219,254,140,0,174,255,138,0,191,254,145,255,32,254,100,255,153,254,76,0,2,255,216,255,133,253,160,255,246,253,79,0,5,254,8,0,244,254,47,1,229,253,68,0,66,254,61,0,246,253,50,1,111,0,189,0,77,254,122,0,133,254,166,0,197,253,114,254,136,253,182,255,21,253,161,255,57,254,194,0,72,252,83,0,226,252,192,0,13,253,192,0,243,252,94,255,149,253,234,0,105,253,215,254,24,254,147,255,60,252,124,255,186,252,188,255,181,252,58,0,168,251,170,255,219,252,213,254,80,252,3,255,246,252,206,255,59,252,219,253,160,254,158,255,32,252,169,254,163,251,197,254,163,251,205,254,125,251,138,254,131,253,26,255,114,251,213,255,237,250,156,255,99,252,119,254,6,251,168,253,79,253,126,255,57,250,200,254,215,250,2,255,72,250,70,254,244,250,155,253,19,251,9,254,35,250,144,254,214,250,26,0,104,250,190,255,49,249,95,255,148,249,45,254,32,249,220,253,143,250,200,253,236,249,153,252,41,250,246,251,149,250,197,253,131,248,240,253,9,249,133,255,151,248,25,255,250,247,189,254,252,247,118,252,72,248,201,253,131,248,148,253,1,248,35,252,203,251,142,254,17,248,64,253,205,246,19,253,76,245,191,251,139,248,159,0,36,248,248,0,142,253,133,255,221,246,62,252,99,253,104,254,157,250,106,251,60,254,148,254,236,251,33,253,124,255,183,0,172,249,16,253,221,253,205,254,247,252,19,251,158,255,41,0,144,252,189,251,255,254,97,0,190,249,215,248,31,0,230,255,124,253,207,253,76,255,222,253,127,254,185,251,102,254,222,252,98,254,197,252,55,254,54,252,22,254,171,251,41,255,108,252,112,255,87,252,19,254,11,251,251,253,29,250,181,0,101,0,180,254,135,252,188,252,87,252,209,253,83,254,139,253,221,253,73,255,175,254,223,253,174,255,6,255,226,254,5,0,124,255,164,254,4,255,219,254,40,254,98,255,100,0,227,255,197,0,20,255,88,254,163,252,43,255,116,255,249,255,85,254,69,254,187,0,159,255,84,253,32,253,219,254,2,1,144,254,104,255,106,255,136,1,159,253,175,0,114,255,43,1,118,255,152,0,137,255,73,1,26,254,204,255,37,1,198,0,73,255,117,0,175,0,75,1,198,255,238,254,231,0,44,1,224,254,74,1,207,254,116,1,145,255,153,1,247,255,167,1,83,0,0,1,67,0,111,1,237,255,248,0,91,0,113,0,221,255,150,1,65,255,154,0,238,0,40,1,5,0,197,0,141,0,221,0,57,1,198,0,211,0,165,1,244,0,78,1,88,0,170,1,13,255,198,1,202,0,40,2,251,255,147,1,35,1,185,0,219,0,45,1,251,0,138,0,128,0,69,0,197,0,32,1,116,255,195,255,188,0,105,1,197,0,86,2,186,1,17,1,34,1,143,0,216,1,226,1,157,0,114,1,159,1,65,1,116,1,129,1,146,1,40,2,155,0,24,0,38,2,7,1,245,255,21,0,104,1,227,0,147,0,2,255,168,1,97,0,110,1,243,255,119,1,141,0,193,1,232,0,140,1,251,1,218,1,16,1,189,2,68,1,106,1,209,255,75,2,148,0,31,2,69,0,144,1,205,255,49,2,59,0,220,0,246,255,96,1,147,0,206,0,211,0,141,2,185,0,51,2,41,1,53,2,28,1,82,2,121,0,254,2,192,0,142,1,118,0,130,2,178,1,233,0,8,1,225,1,211,1,129,0,91,255,187,2,239,0,90,0,26,0,86,1,218,1,201,255,27,0,132,1,94,0,84,255,0,0,213,2,123,1,196,255,81,1,114,1,209,1,95,0,63,1,38,3,83,2,78,0,4,1,241,1,83,3,210,0,48,2,202,1,62,2,48,254,202,0,241,1,113,2,54,255,152,0,48,0,200,2,236,255,54,2,100,0,203,2,199,1,212,1,155,1,93,2,63,1,134,2,195,0,103,2,145,1,26,2,168,2,227,2,201,0,155,2,178,1,186,3,198,1,169,1,134,2,235,1,94,2,169,2,160,1,252,1,241,1,54,3,170,1,47,3,148,2,135,2,116,2,204,2,185,2,210,1,106,2,201,1,173,2,204,1,109,1,53,1,209,2,55,2,68,3,89,2,97,2,44,1,57,3,203,1,175,3,175,2,169,2,21,2,147,3,86,2,79,2,243,0,108,3,195,1,106,3,164,1,18,3,61,1,220,2,220,0,154,3,61,1,84,4,111,1,19,2,210,1,4,4,137,2,29,4,103,2,10,4,41,2,61,3,90,2,253,3,31,3,159,3,35,3,110,3,251,2,31,3,240,1,93,5,5,3,73,2,2,3,35,3,162,3,75,4,25,3,198,4,94,3,185,4,127,3,1,4,215,2,4,3,77,3,148,4,91,4,99,3,253,3,62,3,245,3,73,3,142,3,250,1,191,2,215,4,53,4,108,2,51,3,172,4,59,4,131,4,57,4,118,4,139,3,11,6,97,4,29,5,136,2,63,5,100,2,204,5,220,3,199,5,169,3,217,3,48,5,187,3,61,5,173,1,142,3,73,3,58,5,52,2,155,4,156,1,132,4,147,5,40,5,154,5,50,5,128,2,248,2,190,6,130,5,190,0,43,2,49,4,237,3,170,1,1,1,71,3,212,3,235,0,231,0,240,5,143,4,109,0,37,1,246,3,33,6,49,1,142,0,124,4,27,2,221,254,148,255,189,4,204,3,22,0,40,255,155,2,60,3,30,254,182,1,197,1,151,5,187,253,90,254,21,3,131,1,154,254,58,254,174,0,12,3,220,255,140,254,134,1,122,255,139,253,160,0,206,254,239,2,22,251,181,254,177,0,10,2,8,255,62,2,5,255,127,2,237,253,151,1,172,253,138,1,93,254,21,3,151,253,33,3,38,252,143,1,167,252,215,2,249,255,6,2,65,253,54,1,137,251,232,255,22,252,31,1,64,252,107,1,237,250,56,1,2,250,245,0,235,249,49,1,28,0,153,0,165,252,81,255,223,255,76,1,138,250,102,255,212,0,154,1,175,253,59,255,188,251,64,253,120,252,191,255,26,1,111,1,106,252,82,253,89,1,93,0,254,254,155,254,184,2,132,2,75,253,228,255,192,1,237,1,239,254,193,0,15,2,34,2,13,255,255,253,128,1,120,255,17,1,159,254,0,2,114,255,25,2,58,255,173,3,238,2,83,0,248,0,66,2,93,3,200,255,80,2,74,3,44,0,124,3,24,0,33,0,122,3,240,255,214,3,63,3,118,5,255,5,106,7,180,6,96,5,156,7,185,5,22,252,95,252,184,251,77,251,127,253,93,252,164,253,63,252,245,252,95,253,189,252,236,252,96,254,104,253,54,254,2,253,116,253,247,253,106,253,17,254,1,252,3,254,1,252,84,254,68,254,216,253,144,254,63,254,33,254,45,255,226,251,121,252,196,254,7,255,199,253,177,253,199,253,237,254,227,253,65,255,52,253,68,255,182,252,248,254,179,254,8,255,194,254,28,255,237,254,1,0,201,253,28,255,141,255,35,255,18,255,138,254,59,255,5,254,34,255,189,253,254,254,80,254,195,255,12,255,167,254,2,0,174,254,39,0,41,255,87,255,198,255,0,0,200,255,250,255,53,255,125,255,1,0,70,255,251,255,45,255,6,0,132,254,11,0,94,254,140,255,131,0,122,255,113,0,89,0,252,255,71,0,254,255,237,255,64,255,6,1,24,0,189,0,151,0,123,255,147,255,186,0,103,255,166,0,37,255,37,0,139,0,193,0,171,0,81,1,124,0,158,0,195,255,141,0,226,0,243,255,190,0,231,0,34,0,98,1,109,0,60,1,201,0,244,0,164,0,74,1,171,255,134,1,172,255,254,0,71,1,1,1,79,1,235,1,147,0,220,1,105,0,54,0,77,0,181,1,114,1,165,1,58,1,193,1,86,1,73,1,126,0,161,2,36,1,59,2,132,1,243,0,193,0,141,2,64,1,109,2,24,1,194,0,124,1,5,2,69,2,45,0,67,1,111,0,166,1,233,1,139,1,222,2,22,2,110,2,34,2,230,1,246,1,62,1,60,2,189,0,38,2,129,1,166,1,99,255,153,0,131,255,126,1,59,255,130,1,249,254,78,1,228,0,185,2,68,255,1,0,51,0,41,1,5,254,213,0,136,254,141,1,232,255,255,0,221,253,89,0,10,254,162,255,131,1,179,0,148,253,68,0,84,253,112,0,126,253,162,254,252,254,172,0,74,254,188,254,8,1,136,2,60,252,252,255,159,251,7,0,122,255,134,0,147,251,206,254,143,0,96,0,92,254,15,254,59,251,162,254,9,250,83,253,95,255,72,0,105,3,179,2,220,2,27,1,153,3,97,1,78,1,219,1,71,4,53,3,96,3,12,2,75,3,241,1,202,2,199,2,20,3,238,2,52,4,202,2,180,4,241,2,65,2,150,2,124,245,170,192,38,3,44,7,95,251,33,228,37,12,28,4,40,248,202,208,85,16,107,5,192,249,99,218,69,9,145,5,232,249,78,219,176,12,193,7,210,251,214,230,35,7,16,9,184,252,64,236,173,3,242,12,199,254,163,248,47,9,161,11,41,254,234,244,32,14,116,9,247,252,183,237,123,13,24,12,98,254,70,246,139,11,205,16,72,0,178,1,56,7,148,17,139,0,68,3,44,15,40,21,157,1,180,9,163,4,42,28,67,3,166,19,11,12,40,35,139,4,90,27,216,28,115,3,37,247,177,202,74,23,226,5,58,250,60,221,35,20,86,8,61,252,88,233,8,31,217,7,228,251,65,231,107,25,202,8,139,252,49,235,246,29,192,10,180,253,47,242,64,23,200,11,60,254,92,245,34,19,180,14,131,255,17,253,77,27,4,14,60,255,103,251,238,31,138,15,213,255,252,254,176,23,52,17,107,0,133,2,29,30,223,19,64,1,136,7,147,21,133,23,57,2,98,13,89,30,214,27,50,3,62,19,172,23,2,31,209,3,253,22,218,21,223,44,243,5,212,35,85,41,76,5,159,249,153,217,89,35,61,6,145,250,68,223,66,38,243,7,247,251,180,231,242,34,111,9,244,252,164,237,56,40,24,10,87,253,253,239,191,36,174,10,171,253,245,241,252,33,146,12,156,254,160,247,29,38,67,13,235,254,123,249,193,39,52,15,181,255,58,254,210,35,176,17,148,0,123,3,168,39,140,19,40,1,245,6,154,35,103,22,241,1,177,11,4,41,122,24,116,2,198,14,126,39,207,29,151,3,158,21,140,34,23,34,93,4,72,26,252,34,208,48,112,6,193,38,124,50,208,3,185,247,47,206,171,44,219,6,28,251,141,226,106,47,24,9,189,252,96,236,124,44,64,9,214,252,248,236,204,41,248,11,83,254,236,245,44,48,45,11,238,253,136,243,202,45,255,12,205,254,200,248,6,44,116,14,106,255,120,252,109,42,61,17,110,0,151,2,50,47,181,17,150,0,134,3,19,44,85,20,98,1,84,8,184,46,161,24,125,2,253,14,159,43,110,29,132,3,44,21,96,47,137,32,25,4,168,24,217,42,25,42,149,5,156,33,60,40,224,67,87,8,53,50,75,54,145,6,220,250,15,225,36,49,253,7,254,251,221,231,209,51,135,9,2,253,254,237,209,54,173,11,47,254,14,245,140,52,26,12,99,254,78,246,108,48,74,14,89,255,18,252,198,52,196,14,137,255,55,253,80,50,176,16,62,0,118,1,221,52,253,18,253,0,243,5,123,49,81,21,168,1,248,9,30,54,218,23,78,2,223,13,231,50,83,25,166,2,244,15,245,52,41,30,169,3,7,22,157,50,95,36,189,4,136,28,146,53,31,45,252,5,5,36,47,49,102,59,146,7,147,45,9,59,4,6,91,250,4,222,224,58,29,9,192,252,113,236,191,56,207,9,45,253,0,239,100,57,127,12,147,254,107,247,22,60,232,13,49,255,33,251,53,55,120,15,206,255,212,254,254,58,140,16,50,0,42,1,252,55,216,18,242,0,174,5,254,57,75,21,166,1,238,9,202,59,195,23,72,2,190,13,249,55,232,26,0,3,15,18,212,58,9,30,162,3,226,21,70,56,210,36,207,4,245,28,27,60,13,38,0,5,26,30,232,57,191,55,52,7,94,43,32,53,107,97,109,10,195,62,12,64,177,7,198,251,139,230,177,65,16,11,223,253,45,243,97,61,27,11,229,253,80,243,232,62,8,13,209,254,223,248,0,64,123,15,207,255,218,254,44,66,227,17,165,0,224,3,95,61,247,17,171,0,6,4,94,63,72,21,165,1,233,9,192,65,238,24,143,2,105,15,129,61,229,27,53,3,80,19,198,63,45,29,120,3,223,20,227,64,176,33,76,4,222,25,132,66,178,40,99,5,111,32,33,62,41,46,29,6,207,36,238,65,98,57,95,7,96,44,131,64,134,81,102,9,147,56,222,70,35,8,25,252,131,232,201,75,106,12,137,254,47,247,100,68,98,13,248,254,203,249,86,78,187,15,231,255,105,255,149,70,153,16,54,0,70,1,8,74,202,19,58,1,98,7,47,69,26,21,153,1,157,9,123,77,48,24,98,2,92,14,30,70,102,27,27,3,176,18,70,83,197,30,198,3,184,22,246,69,73,36,186,4,115,28,200,74,74,36,186,4,116,28,37,80,117,44,230,5,129,35,155,70,149,56,74,7,226,43,31,78,218,69,129,8,52,51,154,73,252,127,0,12,62,72,61,42,81,112,63,11,181,67,0,80,225,10,198,253,153,242,153,73,194,25,191,2,139,16,81,24,245,28,108,3,156,20,51,67,204,40,103,5,133,32,122,84,245,4,61,249,74,215,143,82,71,17,113,0,171,2,40,44,20,6,106,250,95,222,61,74,20,50,150,6,164,39,215,67,194,9,37,253,210,238,194,69,225,18,244,0,192,5,10,39,194,9,37,253,210,238,122,68,184,30,196,3,170,22,174,55,92,7,133,251,5,229,20,62,81,12,125,254,233,246,61,26,10,7,67,251,121,227,10,71,225,78,53,9,109,55,102,70,215,11,67,254,138,245,71,65,225,22,16,2,109,12,143,34,174,15,226,255,76,255,20,62,10,35,134,4,60,27,102,70,112,5,198,249,129,218,71,65,0,16,0,0,0,0,0,32,143,2,108,245,79,192,133,59,102,54,16,7,132,42,174,55,40,12,106,254,116,246,10,55,61,18,193,0,141,4,30,21,143,10,154,253,143,241,122,52,153,25,182,2,84,16,163,48,133,3,67,247,100,203,163,48,102,10,131,253,7,241,184,14,143,2,108,245,79,192,153,57,215,91,22,10,183,60,225,74,153,9,13,253,62,238,184,78,215,19,62,1,121,7,225,26,0,16,0,0,0,0,0,80,112,33,65,4,156,25,204,76,225,2,26,246,105,196,61,74,163,16,58,0,91,1,184,30,40,8,29,252,151,232,204,44,0,48,87,6,43,38,20,62,194,5,26,250,126,220,112,61,20,18,180,0,62,4,215,35,153,5,240,249,131,219,184,62,92,27,25,3,164,18,235,57,225,2,26,246,105,196,225,58,204,8,140,252,55,235,215,19,204,4,12,249,38,214,215,51,174,67,83,8,27,50,163,64,30,9,193,252,118,236,225,58,184,22,6,2,46,12,92,15,102,14,100,255,86,252,174,55,153,33,72,4,198,25,235,65,10,3,106,246,74,198,225,58,225,14,149,255,122,253,174,23,102,2,12,245,17,190,122,36,40,36,180,4,83,28,215,51,225,6,33,251,172,226,215,51,194,13,33,255,193,250,153,9,174,7,196,251,127,230,204,44,153,21,187,1,108,10,245,40,225,2,26,246,105,196,112,45,122,12,145,254,92,247,194,5,10,3,106,246,74,198,0,64,248,65,226,67,190,69,142,71,82,73,12,75,188,76,98,78,0,80,150,81,35,83,170,84,42,86,163,87,22,89,130,90,234,91,76,93,168,94,0,96,83,97,161,98,236,99,49,101,115,102,177,103,235,104,34,106,85,107,132,108,177,109,218,110,0,112,35,113,67,114,97,115,123,116,147,117,169,118,188,119,204,120,218,121,230,122,239,123,247,124,252,125,255,126,255,127,255,127,61,10,63,10,69,10,78,10,91,10,108,10,129,10,153,10,181,10,212,10,248,10,31,11,74,11,120,11,170,11,224,11,25,12,86,12,151,12,219,12,35,13,110,13,189,13,15,14,101,14,190,14,27,15,123,15,223,15,70,16,176,16,30,17,143,17,3,18,123,18,245,18,115,19,244,19,120,20,0,21,138,21,23,22,168,22,59,23,209,23,106,24,6,25,165,25,70,26,234,26,145,27,59,28,231,28,149,29,70,30,250,30,176,31,104,32,35,33,224,33,159,34,97,35,36,36,234,36,178,37,124,38,71,39,21,40,228,40,181,41,136,42,93,43,51,44,11,45,228,45,191,46,155,47,121,48,88,49,56,50,26,51,252,51,224,52,196,53,170,54,145,55,120,56,96,57,73,58,51,59,29,60,8,61,243,61,223,62,203,63,184,64,165,65,146,66,127,67,108,68,90,69,71,70,52,71,33,72,14,73,251,73,231,74,211,75,191,76,170,77,149,78,126,79,104,80,80,81,56,82,31,83,5,84,234,84,207,85,178,86,148,87,116,88,84,89,50,90,15,91,235,91,197,92,157,93,117,94,74,95,30,96,240,96,192,97,143,98,91,99,38,100,239,100,181,101,122,102,60,103,253,103,187,104,119,105,48,106,232,106,156,107,79,108,255,108,172,109,87,110,255,110,165,111,71,112,231,112,133,113,31,114,183,114,75,115,221,115,108,116,248,116,129,117,6,118,137,118,8,119,133,119,254,119,116,120,230,120,86,121,194,121,42,122,144,122,242,122,80,123,171,123,3,124,87,124,167,124,244,124,62,125,132,125,198,125,5,126,64,126,120,126,172,126,220,126,9,127,49,127,87,127,120,127,150,127,176,127,199,127,217,127,232,127,243,127,251,127,255,127,255,127,229,127,153,127,25,127,103,126,129,125],"i8",g,o.GLOBAL_BASE+20480),b([106,124,33,123,167,121,252,119,34,118,24,116,223,113,122,111,231,108,41,106,65,103,47,100,245,96,149,93,15,90,101,86,153,82,171,78,158,74,116,70,45,66,204,61,82,57,193,52,27,48,98,43,151,38,189,33,213,28,226,23,230,18,226,13,216,8,203,3,61,10,64,10,73,10,88,10,108,10,135,10,167,10,205,10,249,10,43,11,99,11,160,11,227,11,44,12,122,12,207,12,40,13,136,13,237,13,87,14,199,14,60,15,183,15,55,16,189,16,71,17,215,17,108,18,6,19,165,19,73,20,242,20,159,21,82,22,9,23,196,23,133,24,73,25,18,26,224,26,177,27,135,28,97,29,62,30,32,31,5,32,238,32,219,33,203,34,191,35,182,36,176,37,174,38,174,39,177,40,184,41,193,42,204,43,218,44,235,45,254,46,19,48,42,49,67,50,94,51,123,52,154,53,186,54,219,55,254,56,34,58,71,59,109,60,148,61,188,62,228,63,13,65,54,66,96,67,138,68,180,69,221,70,7,72,48,73,89,74,130,75,169,76,208,77,246,78,27,80,63,81,98,82,132,83,164,84,194,85,223,86,250,87,19,89,43,90,64,91,83,92,99,93,113,94,125,95,134,96,140,97,143,98,144,99,141,100,135,101,126,102,114,103,98,104,79,105,56,106,30,107,255,107,221,108,183,109,140,110,94,111,43,112,244,112,185,113,121,114,53,115,236,115,158,116,76,117,245,117,153,118,55,119,209,119,102,120,246,120,129,121,6,122,134,122,1,123,118,123,230,123,81,124,182,124,21,125,111,125,195,125,17,126,90,126,157,126,219,126,18,127,68,127,112,127,150,127,183,127,209,127,230,127,244,127,253,127,255,127,255,127,244,127,208,127,149,127,66,127,215,126,85,126,188,125,12,125,69,124,104,123,117,122,108,121,78,120,28,119,213,117,122,116,13,115,140,113,250,111,87,110,162,108,222,106,11,105,40,103,57,101,60,99,51,97,30,95,255,92,215,90,165,88,108,86,44,84,229,81,154,79,74,77,247,74,161,72,74,70,243,67,156,65,71,63,244,60,164,58,88,56,18,54,209,51,152,49,103,47,62,45,31,43,11,41,2,39,5,37,21,35,51,33,95,31,155,29,231,27,67,26,177,24,49,23,195,21,105,20,34,19,239,17,209,16,201,15,214,14,249,13,50,13,130,12,232,11,102,11,252,10,169,10,109,10,73,10,61,10,61,10,63,10,67,10,74,10,84,10,96,10,111,10,129,10,150,10,174,10,200,10,229,10,5,11,39,11,77,11,117,11,159,11,205,11,253,11,48,12,101,12,157,12,216,12,22,13,86,13,153,13,222,13,38,14,113,14,190,14,13,15,96,15,181,15,12,16,102,16,194,16,33,17,130,17,230,17,76,18,180,18,31,19,140,19,252,19,110,20,226,20,88,21,209,21,76,22,201,22,72,23,202,23,77,24,211,24,91,25,229,25,113,26,254,26,142,27,32,28,180,28,74,29,225,29,123,30,22,31,179,31,82,32,242,32,149,33,57,34,222,34,133,35,46,36,216,36,132,37,50,38,224,38,145,39,66,40,245,40,169,41,95,42,22,43,206,43,135,44,66,45,253,45,186,46,120,47,54,48,246,48,183,49,120,50,59,51,254,51,194,52,135,53,77,54,19,55,218,55,161,56,106,57,50,58,252,58,197,59,144,60,90,61,37,62,240,62,188,63,136,64,84,65,32,66,236,66,185,67,133,68,82,69,30,70,235,70,183,71,132,72,80,73,28,74,231,74,179,75,126,76,73,77,19,78,221,78,166,79,111,80,56,81,0,82,199,82,142,83,84,84,25,85,221,85,161,86,100,87,38,88,231,88,167,89,103,90,37,91,226,91,158,92,89,93,19,94,204,94,131,95,57,96,238,96,162,97,84,98,5,99,181,99,99,100,15,101,186,101,100,102,12,103,178,103,87,104,250,104,155,105,59,106,217,106,117,107,16,108,168,108,63,109,211,109,102,110,247,110,134,111,19,112,158,112,39,113,174,113,50,114,181,114,53,115,179,115,47,116,169,116,33,117,150,117,9,118,122,118,232,118,84,119,190,119,37,120,138,120,236,120,76,121,170,121,5,122,94,122,180,122,7,123,88,123,167,123,242,123,60,124,130,124,198,124,8,125,71,125,131,125,188,125,243,125,39,126,89,126,136,126,180,126,221,126,4,127,40,127,73,127,103,127,131,127,156,127,178,127,197,127,214,127,228,127,239,127,247,127,253,127,255,127,255,127,97,125,160,117,15,105,48,88,181,67,116,44,98,19,68,101,99,111,100,101,114,0,101,110,99,111,100,101,114,0],"i8",g,o.GLOBAL_BASE+30720);var de=o.alignMemory(b(12,"i8",E),8);function ve(e){var i,r=ve;r.called||((i=X)%4096>0&&(i+=4096-i%4096),X=i,r.called=!0,h(o.dynamicAlloc),r.alloc=o.dynamicAlloc,o.dynamicAlloc=function(){Le("cannot dynamically allocate, sbrk now has control")});var n=X;return 0==e||r.alloc(e)?n:-1>>>0}function Be(i){return e.___errno_location&&(I[e.___errno_location()>>2]=i),i}h(de%8==0);var Ee={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};e.N=He,e.V=Fe,e.S=Re;var ge={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"},be={ttys:[],init:function(){},shutdown:function(){},register:function(e,i){be.ttys[e]={input:[],output:[],ops:i},Ce.registerDevice(e,be.stream_ops)},stream_ops:{open:function(e){var i=be.ttys[e.node.rdev];if(!i)throw new Ce.ErrnoError(Ee.ENODEV);e.tty=i,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,i,r,n,A){if(!e.tty||!e.tty.ops.get_char)throw new Ce.ErrnoError(Ee.ENXIO);for(var t=0,f=0;f<n;f++){var o;try{o=e.tty.ops.get_char(e.tty)}catch(a){throw new Ce.ErrnoError(Ee.EIO)}if(void 0===o&&0===t)throw new Ce.ErrnoError(Ee.EAGAIN);if(null==o)break;t++,i[r+f]=o}return t&&(e.node.timestamp=Date.now()),t},write:function(e,i,r,n,A){if(!e.tty||!e.tty.ops.put_char)throw new Ce.ErrnoError(Ee.ENXIO);for(var t=0;t<n;t++)try{e.tty.ops.put_char(e.tty,i[r+t])}catch(f){throw new Ce.ErrnoError(Ee.EIO)}return n&&(e.node.timestamp=Date.now()),t}},default_tty_ops:{get_char:function(e){if(!e.input.length){var i=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(i=window.prompt("Input: "))&&(i+="\n"):"function"==typeof readline&&null!==(i=readline())&&(i+="\n"),!i)return null;e.input=re(i,!0)}return e.input.shift()},put_char:function(i,r){null===r||10===r?(e.print(D(i.output,0)),i.output=[]):0!=r&&i.output.push(r)},flush:function(i){i.output&&i.output.length>0&&(e.print(D(i.output,0)),i.output=[])}},default_tty1_ops:{put_char:function(i,r){null===r||10===r?(e.printErr(D(i.output,0)),i.output=[]):0!=r&&i.output.push(r)},flush:function(i){i.output&&i.output.length>0&&(e.printErr(D(i.output,0)),i.output=[])}}},ke={ops_table:null,mount:function(e){return ke.createNode(null,"/",16895,0)},createNode:function(e,i,r,n){if(Ce.isBlkdev(r)||Ce.isFIFO(r))throw new Ce.ErrnoError(Ee.EPERM);ke.ops_table||(ke.ops_table={dir:{node:{getattr:ke.node_ops.getattr,setattr:ke.node_ops.setattr,lookup:ke.node_ops.lookup,mknod:ke.node_ops.mknod,rename:ke.node_ops.rename,unlink:ke.node_ops.unlink,rmdir:ke.node_ops.rmdir,readdir:ke.node_ops.readdir,symlink:ke.node_ops.symlink},stream:{llseek:ke.stream_ops.llseek}},file:{node:{getattr:ke.node_ops.getattr,setattr:ke.node_ops.setattr},stream:{llseek:ke.stream_ops.llseek,read:ke.stream_ops.read,write:ke.stream_ops.write,allocate:ke.stream_ops.allocate,mmap:ke.stream_ops.mmap,msync:ke.stream_ops.msync}},link:{node:{getattr:ke.node_ops.getattr,setattr:ke.node_ops.setattr,readlink:ke.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ke.node_ops.getattr,setattr:ke.node_ops.setattr},stream:Ce.chrdev_stream_ops}});var A=Ce.createNode(e,i,r,n);return Ce.isDir(A.mode)?(A.node_ops=ke.ops_table.dir.node,A.stream_ops=ke.ops_table.dir.stream,A.contents={}):Ce.isFile(A.mode)?(A.node_ops=ke.ops_table.file.node,A.stream_ops=ke.ops_table.file.stream,A.usedBytes=0,A.contents=null):Ce.isLink(A.mode)?(A.node_ops=ke.ops_table.link.node,A.stream_ops=ke.ops_table.link.stream):Ce.isChrdev(A.mode)&&(A.node_ops=ke.ops_table.chrdev.node,A.stream_ops=ke.ops_table.chrdev.stream),A.timestamp=Date.now(),e&&(e.contents[i]=A),A},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var i=[],r=0;r<e.usedBytes;++r)i.push(e.contents[r]);return i}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage:function(e,i){if(e.contents&&e.contents.subarray&&i>e.contents.length&&(e.contents=ke.getFileDataAsRegularArray(e),e.usedBytes=e.contents.length),!e.contents||e.contents.subarray){var r=e.contents?e.contents.buffer.byteLength:0;if(r>=i)return;i=Math.max(i,r*(r<1048576?2:1.125)|0),0!=r&&(i=Math.max(i,256));var n=e.contents;return e.contents=new Uint8Array(i),void(e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0))}for(!e.contents&&i>0&&(e.contents=[]);e.contents.length<i;)e.contents.push(0)},resizeFileStorage:function(e,i){if(e.usedBytes!=i){if(0==i)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(new ArrayBuffer(i)),r&&e.contents.set(r.subarray(0,Math.min(i,e.usedBytes))),void(e.usedBytes=i)}if(e.contents||(e.contents=[]),e.contents.length>i)e.contents.length=i;else for(;e.contents.length<i;)e.contents.push(0);e.usedBytes=i}},node_ops:{getattr:function(e){var i={};return i.dev=Ce.isChrdev(e.mode)?e.id:1,i.ino=e.id,i.mode=e.mode,i.nlink=1,i.uid=0,i.gid=0,i.rdev=e.rdev,Ce.isDir(e.mode)?i.size=4096:Ce.isFile(e.mode)?i.size=e.usedBytes:Ce.isLink(e.mode)?i.size=e.link.length:i.size=0,i.atime=new Date(e.timestamp),i.mtime=new Date(e.timestamp),i.ctime=new Date(e.timestamp),i.blksize=4096,i.blocks=Math.ceil(i.size/i.blksize),i},setattr:function(e,i){void 0!==i.mode&&(e.mode=i.mode),void 0!==i.timestamp&&(e.timestamp=i.timestamp),void 0!==i.size&&ke.resizeFileStorage(e,i.size)},lookup:function(e,i){throw Ce.genericErrors[Ee.ENOENT]},mknod:function(e,i,r,n){return ke.createNode(e,i,r,n)},rename:function(e,i,r){if(Ce.isDir(e.mode)){var n;try{n=Ce.lookupNode(i,r)}catch(t){}if(n)for(var A in n.contents)throw new Ce.ErrnoError(Ee.ENOTEMPTY)}delete e.parent.contents[e.name],e.name=r,i.contents[r]=e,e.parent=i},unlink:function(e,i){delete e.contents[i]},rmdir:function(e,i){var r=Ce.lookupNode(e,i);for(var n in r.contents)throw new Ce.ErrnoError(Ee.ENOTEMPTY);delete e.contents[i]},readdir:function(e){var i=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&i.push(r);return i},symlink:function(e,i,r){var n=ke.createNode(e,i,41471,0);return n.link=r,n},readlink:function(e){if(!Ce.isLink(e.mode))throw new Ce.ErrnoError(Ee.EINVAL);return e.link}},stream_ops:{read:function(e,i,r,n,A){var t=e.node.contents;if(A>=e.node.usedBytes)return 0;var f=Math.min(e.node.usedBytes-A,n);if(h(f>=0),f>8&&t.subarray)i.set(t.subarray(A,A+f),r);else for(var o=0;o<f;o++)i[r+o]=t[A+o];return f},write:function(e,i,r,n,A,t){if(!n)return 0;var f=e.node;if(f.timestamp=Date.now(),i.subarray&&(!f.contents||f.contents.subarray)){if(t)return f.contents=i.subarray(r,r+n),f.usedBytes=n,n;if(0===f.usedBytes&&0===A)return f.contents=new Uint8Array(i.subarray(r,r+n)),f.usedBytes=n,n;if(A+n<=f.usedBytes)return f.contents.set(i.subarray(r,r+n),A),n}if(ke.expandFileStorage(f,A+n),f.contents.subarray&&i.subarray)f.contents.set(i.subarray(r,r+n),A);else for(var o=0;o<n;o++)f.contents[A+o]=i[r+o];return f.usedBytes=Math.max(f.usedBytes,A+n),n},llseek:function(e,i,r){var n=i;if(1===r?n+=e.position:2===r&&Ce.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new Ce.ErrnoError(Ee.EINVAL);return n},allocate:function(e,i,r){ke.expandFileStorage(e.node,i+r),e.node.usedBytes=Math.max(e.node.usedBytes,i+r)},mmap:function(e,i,r,n,A,t,f){if(!Ce.isFile(e.node.mode))throw new Ce.ErrnoError(Ee.ENODEV);var o,a,s=e.node.contents;if(2&f||s.buffer!==i&&s.buffer!==i.buffer){if((A>0||A+n<e.node.usedBytes)&&(s=s.subarray?s.subarray(A,A+n):Array.prototype.slice.call(s,A,A+n)),a=!0,!(o=Oe(n)))throw new Ce.ErrnoError(Ee.ENOMEM);i.set(s,o)}else a=!1,o=s.byteOffset;return{ptr:o,allocated:a}},msync:function(e,i,r,n,A){if(!Ce.isFile(e.node.mode))throw new Ce.ErrnoError(Ee.ENODEV);return 2&A?0:(ke.stream_ops.write(e,i,0,n,r,!1),0)}}},De={dbs:{},indexedDB:function(){if("undefined"!=typeof indexedDB)return indexedDB;var e=null;return"object"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),h(e,"IDBFS used, but indexedDB not supported"),e},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(e){return ke.mount.apply(null,arguments)},syncfs:function(e,i,r){De.getLocalSet(e,function(n,A){if(n)return r(n);De.getRemoteSet(e,function(e,n){if(e)return r(e);var t=i?n:A,f=i?A:n;De.reconcile(t,f,r)})})},getDB:function(e,i){var r,n=De.dbs[e];if(n)return i(null,n);try{r=De.indexedDB().open(e,De.DB_VERSION)}catch(A){return i(A)}r.onupgradeneeded=function(e){var i,r=e.target.result,n=e.target.transaction;(i=r.objectStoreNames.contains(De.DB_STORE_NAME)?n.objectStore(De.DB_STORE_NAME):r.createObjectStore(De.DB_STORE_NAME)).indexNames.contains("timestamp")||i.createIndex("timestamp","timestamp",{unique:!1})},r.onsuccess=function(){n=r.result,De.dbs[e]=n,i(null,n)},r.onerror=function(e){i(this.error),e.preventDefault()}},getLocalSet:function(e,i){var r={};function n(e){return"."!==e&&".."!==e}function A(e){return function(i){return ye.join2(e,i)}}for(var t=Ce.readdir(e.mountpoint).filter(n).map(A(e.mountpoint));t.length;){var f,o=t.pop();try{f=Ce.stat(o)}catch(a){return i(a)}Ce.isDir(f.mode)&&t.push.apply(t,Ce.readdir(o).filter(n).map(A(o))),r[o]={timestamp:f.mtime}}return i(null,{type:"local",entries:r})},getRemoteSet:function(e,i){var r={};De.getDB(e.mountpoint,function(e,n){if(e)return i(e);var A=n.transaction([De.DB_STORE_NAME],"readonly");A.onerror=function(e){i(this.error),e.preventDefault()},A.objectStore(De.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess=function(e){var A=e.target.result;if(!A)return i(null,{type:"remote",db:n,entries:r});r[A.primaryKey]={timestamp:A.key},A.continue()}})},loadLocalEntry:function(e,i){var r,n;try{n=Ce.lookupPath(e).node,r=Ce.stat(e)}catch(A){return i(A)}return Ce.isDir(r.mode)?i(null,{timestamp:r.mtime,mode:r.mode}):Ce.isFile(r.mode)?(n.contents=ke.getFileDataAsTypedArray(n),i(null,{timestamp:r.mtime,mode:r.mode,contents:n.contents})):i(new Error("node type not supported"))},storeLocalEntry:function(e,i,r){try{if(Ce.isDir(i.mode))Ce.mkdir(e,i.mode);else{if(!Ce.isFile(i.mode))return r(new Error("node type not supported"));Ce.writeFile(e,i.contents,{encoding:"binary",canOwn:!0})}Ce.chmod(e,i.mode),Ce.utime(e,i.timestamp,i.timestamp)}catch(n){return r(n)}r(null)},removeLocalEntry:function(e,i){try{Ce.lookupPath(e);var r=Ce.stat(e);Ce.isDir(r.mode)?Ce.rmdir(e):Ce.isFile(r.mode)&&Ce.unlink(e)}catch(n){return i(n)}i(null)},loadRemoteEntry:function(e,i,r){var n=e.get(i);n.onsuccess=function(e){r(null,e.target.result)},n.onerror=function(e){r(this.error),e.preventDefault()}},storeRemoteEntry:function(e,i,r,n){var A=e.put(r,i);A.onsuccess=function(){n(null)},A.onerror=function(e){n(this.error),e.preventDefault()}},removeRemoteEntry:function(e,i,r){var n=e.delete(i);n.onsuccess=function(){r(null)},n.onerror=function(e){r(this.error),e.preventDefault()}},reconcile:function(e,i,r){var n=0,A=[];Object.keys(e.entries).forEach(function(r){var t=e.entries[r],f=i.entries[r];(!f||t.timestamp>f.timestamp)&&(A.push(r),n++)});var t=[];if(Object.keys(i.entries).forEach(function(r){i.entries[r],e.entries[r]||(t.push(r),n++)}),!n)return r(null);var f=0,o=("remote"===e.type?e.db:i.db).transaction([De.DB_STORE_NAME],"readwrite"),a=o.objectStore(De.DB_STORE_NAME);function s(e){return e?s.errored?void 0:(s.errored=!0,r(e)):++f>=n?r(null):void 0}o.onerror=function(e){s(this.error),e.preventDefault()},A.sort().forEach(function(e){"local"===i.type?De.loadRemoteEntry(a,e,function(i,r){if(i)return s(i);De.storeLocalEntry(e,r,s)}):De.loadLocalEntry(e,function(i,r){if(i)return s(i);De.storeRemoteEntry(a,e,r,s)})}),t.sort().reverse().forEach(function(e){"local"===i.type?De.removeLocalEntry(e,s):De.removeRemoteEntry(a,e,s)})}},Qe={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(e){h(t),Qe.reader||(Qe.reader=new FileReaderSync);var i=Qe.createNode(null,"/",Qe.DIR_MODE,0),r={};function n(e){for(var n=e.split("/"),A=i,t=0;t<n.length-1;t++){var f=n.slice(0,t+1).join("/");r[f]||(r[f]=Qe.createNode(A,f,Qe.DIR_MODE,0)),A=r[f]}return A}function A(e){var i=e.split("/");return i[i.length-1]}return Array.prototype.forEach.call(e.opts.files||[],function(e){Qe.createNode(n(e.name),A(e.name),Qe.FILE_MODE,0,e,e.lastModifiedDate)}),(e.opts.blobs||[]).forEach(function(e){Qe.createNode(n(e.name),A(e.name),Qe.FILE_MODE,0,e.data)}),(e.opts.packages||[]).forEach(function(e){e.metadata.files.forEach(function(i){var r=i.filename.substr(1);Qe.createNode(n(r),A(r),Qe.FILE_MODE,0,e.blob.slice(i.start,i.end))})}),i},createNode:function(e,i,r,n,A,t){var f=Ce.createNode(e,i,r);return f.mode=r,f.node_ops=Qe.node_ops,f.stream_ops=Qe.stream_ops,f.timestamp=(t||new Date).getTime(),h(Qe.FILE_MODE!==Qe.DIR_MODE),r===Qe.FILE_MODE?(f.size=A.size,f.contents=A):(f.size=4096,f.contents={}),e&&(e.contents[i]=f),f},node_ops:{getattr:function(e){return{dev:1,ino:void 0,mode:e.mode,nlink:1,uid:0,gid:0,rdev:void 0,size:e.size,atime:new Date(e.timestamp),mtime:new Date(e.timestamp),ctime:new Date(e.timestamp),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr:function(e,i){void 0!==i.mode&&(e.mode=i.mode),void 0!==i.timestamp&&(e.timestamp=i.timestamp)},lookup:function(e,i){throw new Ce.ErrnoError(Ee.ENOENT)},mknod:function(e,i,r,n){throw new Ce.ErrnoError(Ee.EPERM)},rename:function(e,i,r){throw new Ce.ErrnoError(Ee.EPERM)},unlink:function(e,i){throw new Ce.ErrnoError(Ee.EPERM)},rmdir:function(e,i){throw new Ce.ErrnoError(Ee.EPERM)},readdir:function(e){throw new Ce.ErrnoError(Ee.EPERM)},symlink:function(e,i,r){throw new Ce.ErrnoError(Ee.EPERM)},readlink:function(e){throw new Ce.ErrnoError(Ee.EPERM)}},stream_ops:{read:function(e,i,r,n,A){if(A>=e.node.size)return 0;var t=e.node.contents.slice(A,A+n),f=Qe.reader.readAsArrayBuffer(t);return i.set(new Uint8Array(f),r),t.size},write:function(e,i,r,n,A){throw new Ce.ErrnoError(Ee.EIO)},llseek:function(e,i,r){var n=i;if(1===r?n+=e.position:2===r&&Ce.isFile(e.node.mode)&&(n+=e.node.size),n<0)throw new Ce.ErrnoError(Ee.EINVAL);return n}}},Ce=(b(1,"i32*",E),b(1,"i32*",E),b(1,"i32*",E),{root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,handleFSError:function(e){if(!(e instanceof Ce.ErrnoError))throw e+" : "+P();return Be(e.errno)},lookupPath:function(e,i){if(i=i||{},!(e=ye.resolve(Ce.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===i[n]&&(i[n]=r[n]);if(i.recurse_count>8)throw new Ce.ErrnoError(Ee.ELOOP);for(var A=ye.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),t=Ce.root,f="/",o=0;o<A.length;o++){var a=o===A.length-1;if(a&&i.parent)break;if(t=Ce.lookupNode(t,A[o]),f=ye.join2(f,A[o]),Ce.isMountpoint(t)&&(!a||a&&i.follow_mount)&&(t=t.mounted.root),!a||i.follow)for(var s=0;Ce.isLink(t.mode);){var l=Ce.readlink(f);if(f=ye.resolve(ye.dirname(f),l),t=Ce.lookupPath(f,{recurse_count:i.recurse_count}).node,s++>40)throw new Ce.ErrnoError(Ee.ELOOP)}}return{path:f,node:t}},getPath:function(e){for(var i;;){if(Ce.isRoot(e)){var r=e.mount.mountpoint;return i?"/"!==r[r.length-1]?r+"/"+i:r+i:r}i=i?e.name+"/"+i:e.name,e=e.parent}},hashName:function(e,i){for(var r=0,n=0;n<i.length;n++)r=(r<<5)-r+i.charCodeAt(n)|0;return(e+r>>>0)%Ce.nameTable.length},hashAddNode:function(e){var i=Ce.hashName(e.parent.id,e.name);e.name_next=Ce.nameTable[i],Ce.nameTable[i]=e},hashRemoveNode:function(e){var i=Ce.hashName(e.parent.id,e.name);if(Ce.nameTable[i]===e)Ce.nameTable[i]=e.name_next;else for(var r=Ce.nameTable[i];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,i){var r=Ce.mayLookup(e);if(r)throw new Ce.ErrnoError(r,e);for(var n=Ce.hashName(e.id,i),A=Ce.nameTable[n];A;A=A.name_next){var t=A.name;if(A.parent.id===e.id&&t===i)return A}return Ce.lookup(e,i)},createNode:function(e,i,r,n){Ce.FSNode||(Ce.FSNode=function(e,i,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ce.nextInode++,this.name=i,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},Ce.FSNode.prototype={},Object.defineProperties(Ce.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return Ce.isDir(this.mode)}},isDevice:{get:function(){return Ce.isChrdev(this.mode)}}}));var A=new Ce.FSNode(e,i,r,n);return Ce.hashAddNode(A),A},destroyNode:function(e){Ce.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},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(e){var i=Ce.flagModes[e];if(void 0===i)throw new Error("Unknown file open mode: "+e);return i},flagsToPermissionString:function(e){var i=["r","w","rw"][3&e];return 512&e&&(i+="w"),i},nodePermissions:function(e,i){return Ce.ignorePermissions?0:(-1===i.indexOf("r")||292&e.mode)&&(-1===i.indexOf("w")||146&e.mode)&&(-1===i.indexOf("x")||73&e.mode)?0:Ee.EACCES},mayLookup:function(e){var i=Ce.nodePermissions(e,"x");return i||(e.node_ops.lookup?0:Ee.EACCES)},mayCreate:function(e,i){try{return Ce.lookupNode(e,i),Ee.EEXIST}catch(r){}return Ce.nodePermissions(e,"wx")},mayDelete:function(e,i,r){var n;try{n=Ce.lookupNode(e,i)}catch(t){return t.errno}var A=Ce.nodePermissions(e,"wx");if(A)return A;if(r){if(!Ce.isDir(n.mode))return Ee.ENOTDIR;if(Ce.isRoot(n)||Ce.getPath(n)===Ce.cwd())return Ee.EBUSY}else if(Ce.isDir(n.mode))return Ee.EISDIR;return 0},mayOpen:function(e,i){return e?Ce.isLink(e.mode)?Ee.ELOOP:Ce.isDir(e.mode)&&(0!=(2097155&i)||512&i)?Ee.EISDIR:Ce.nodePermissions(e,Ce.flagsToPermissionString(i)):Ee.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(e,i){e=e||0,i=i||Ce.MAX_OPEN_FDS;for(var r=e;r<=i;r++)if(!Ce.streams[r])return r;throw new Ce.ErrnoError(Ee.EMFILE)},getStream:function(e){return Ce.streams[e]},createStream:function(e,i,r){Ce.FSStream||(Ce.FSStream=function(){},Ce.FSStream.prototype={},Object.defineProperties(Ce.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var n=new Ce.FSStream;for(var A in e)n[A]=e[A];e=n;var t=Ce.nextfd(i,r);return e.fd=t,Ce.streams[t]=e,e},closeStream:function(e){Ce.streams[e]=null},chrdev_stream_ops:{open:function(e){var i=Ce.getDevice(e.node.rdev);e.stream_ops=i.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Ce.ErrnoError(Ee.ESPIPE)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,i){return e<<8|i},registerDevice:function(e,i){Ce.devices[e]={stream_ops:i}},getDevice:function(e){return Ce.devices[e]},getMounts:function(e){for(var i=[],r=[e];r.length;){var n=r.pop();i.push(n),r.push.apply(r,n.mounts)}return i},syncfs:function(e,i){"function"==typeof e&&(i=e,e=!1);var r=Ce.getMounts(Ce.root.mount),n=0;function A(e){if(e)return A.errored?void 0:(A.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach(function(i){if(!i.type.syncfs)return A(null);i.type.syncfs(i,e,A)})},mount:function(e,i,r){var n,A="/"===r,t=!r;if(A&&Ce.root)throw new Ce.ErrnoError(Ee.EBUSY);if(!A&&!t){var f=Ce.lookupPath(r,{follow_mount:!1});if(r=f.path,n=f.node,Ce.isMountpoint(n))throw new Ce.ErrnoError(Ee.EBUSY);if(!Ce.isDir(n.mode))throw new Ce.ErrnoError(Ee.ENOTDIR)}var o={type:e,opts:i,mountpoint:r,mounts:[]},a=e.mount(o);return a.mount=o,o.root=a,A?Ce.root=a:n&&(n.mounted=o,n.mount&&n.mount.mounts.push(o)),a},unmount:function(e){var i=Ce.lookupPath(e,{follow_mount:!1});if(!Ce.isMountpoint(i.node))throw new Ce.ErrnoError(Ee.EINVAL);var r=i.node,n=r.mounted,A=Ce.getMounts(n);Object.keys(Ce.nameTable).forEach(function(e){for(var i=Ce.nameTable[e];i;){var r=i.name_next;-1!==A.indexOf(i.mount)&&Ce.destroyNode(i),i=r}}),r.mounted=null;var t=r.mount.mounts.indexOf(n);h(-1!==t),r.mount.mounts.splice(t,1)},lookup:function(e,i){return e.node_ops.lookup(e,i)},mknod:function(e,i,r){var n=Ce.lookupPath(e,{parent:!0}).node,A=ye.basename(e);if(!A||"."===A||".."===A)throw new Ce.ErrnoError(Ee.EINVAL);var t=Ce.mayCreate(n,A);if(t)throw new Ce.ErrnoError(t);if(!n.node_ops.mknod)throw new Ce.ErrnoError(Ee.EPERM);return n.node_ops.mknod(n,A,i,r)},create:function(e,i){return i=void 0!==i?i:438,i&=4095,i|=32768,Ce.mknod(e,i,0)},mkdir:function(e,i){return i=void 0!==i?i:511,i&=1023,i|=16384,Ce.mknod(e,i,0)},mkdev:function(e,i,r){return void 0===r&&(r=i,i=438),i|=8192,Ce.mknod(e,i,r)},symlink:function(e,i){if(!ye.resolve(e))throw new Ce.ErrnoError(Ee.ENOENT);var r=Ce.lookupPath(i,{parent:!0}).node;if(!r)throw new Ce.ErrnoError(Ee.ENOENT);var n=ye.basename(i),A=Ce.mayCreate(r,n);if(A)throw new Ce.ErrnoError(A);if(!r.node_ops.symlink)throw new Ce.ErrnoError(Ee.EPERM);return r.node_ops.symlink(r,n,e)},rename:function(e,i){var r,n,A=ye.dirname(e),t=ye.dirname(i),f=ye.basename(e),o=ye.basename(i);try{r=Ce.lookupPath(e,{parent:!0}).node,n=Ce.lookupPath(i,{parent:!0}).node}catch(w){throw new Ce.ErrnoError(Ee.EBUSY)}if(!r||!n)throw new Ce.ErrnoError(Ee.ENOENT);if(r.mount!==n.mount)throw new Ce.ErrnoError(Ee.EXDEV);var a,s=Ce.lookupNode(r,f),l=ye.relative(e,t);if("."!==l.charAt(0))throw new Ce.ErrnoError(Ee.EINVAL);if("."!==(l=ye.relative(i,A)).charAt(0))throw new Ce.ErrnoError(Ee.ENOTEMPTY);try{a=Ce.lookupNode(n,o)}catch(w){}if(s!==a){var u=Ce.isDir(s.mode),c=Ce.mayDelete(r,f,u);if(c)throw new Ce.ErrnoError(c);if(c=a?Ce.mayDelete(n,o,u):Ce.mayCreate(n,o))throw new Ce.ErrnoError(c);if(!r.node_ops.rename)throw new Ce.ErrnoError(Ee.EPERM);if(Ce.isMountpoint(s)||a&&Ce.isMountpoint(a))throw new Ce.ErrnoError(Ee.EBUSY);if(n!==r&&(c=Ce.nodePermissions(r,"w")))throw new Ce.ErrnoError(c);Ce.hashRemoveNode(s);try{r.node_ops.rename(s,n,o)}catch(w){throw w}finally{Ce.hashAddNode(s)}}},rmdir:function(e){var i=Ce.lookupPath(e,{parent:!0}).node,r=ye.basename(e),n=Ce.lookupNode(i,r),A=Ce.mayDelete(i,r,!0);if(A)throw new Ce.ErrnoError(A);if(!i.node_ops.rmdir)throw new Ce.ErrnoError(Ee.EPERM);if(Ce.isMountpoint(n))throw new Ce.ErrnoError(Ee.EBUSY);i.node_ops.rmdir(i,r),Ce.destroyNode(n)},readdir:function(e){var i=Ce.lookupPath(e,{follow:!0}).node;if(!i.node_ops.readdir)throw new Ce.ErrnoError(Ee.ENOTDIR);return i.node_ops.readdir(i)},unlink:function(e){var i=Ce.lookupPath(e,{parent:!0}).node,r=ye.basename(e),n=Ce.lookupNode(i,r),A=Ce.mayDelete(i,r,!1);if(A)throw A===Ee.EISDIR&&(A=Ee.EPERM),new Ce.ErrnoError(A);if(!i.node_ops.unlink)throw new Ce.ErrnoError(Ee.EPERM);if(Ce.isMountpoint(n))throw new Ce.ErrnoError(Ee.EBUSY);i.node_ops.unlink(i,r),Ce.destroyNode(n)},readlink:function(e){var i=Ce.lookupPath(e).node;if(!i)throw new Ce.ErrnoError(Ee.ENOENT);if(!i.node_ops.readlink)throw new Ce.ErrnoError(Ee.EINVAL);return ye.resolve(Ce.getPath(i.parent),i.node_ops.readlink(i))},stat:function(e,i){var r=Ce.lookupPath(e,{follow:!i}).node;if(!r)throw new Ce.ErrnoError(Ee.ENOENT);if(!r.node_ops.getattr)throw new Ce.ErrnoError(Ee.EPERM);return r.node_ops.getattr(r)},lstat:function(e){return Ce.stat(e,!0)},chmod:function(e,i,r){var n;if(!(n="string"==typeof e?Ce.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new Ce.ErrnoError(Ee.EPERM);n.node_ops.setattr(n,{mode:4095&i|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,i){Ce.chmod(e,i,!0)},fchmod:function(e,i){var r=Ce.getStream(e);if(!r)throw new Ce.ErrnoError(Ee.EBADF);Ce.chmod(r.node,i)},chown:function(e,i,r,n){var A;if(!(A="string"==typeof e?Ce.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new Ce.ErrnoError(Ee.EPERM);A.node_ops.setattr(A,{timestamp:Date.now()})},lchown:function(e,i,r){Ce.chown(e,i,r,!0)},fchown:function(e,i,r){var n=Ce.getStream(e);if(!n)throw new Ce.ErrnoError(Ee.EBADF);Ce.chown(n.node,i,r)},truncate:function(e,i){if(i<0)throw new Ce.ErrnoError(Ee.EINVAL);var r;if(!(r="string"==typeof e?Ce.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ce.ErrnoError(Ee.EPERM);if(Ce.isDir(r.mode))throw new Ce.ErrnoError(Ee.EISDIR);if(!Ce.isFile(r.mode))throw new Ce.ErrnoError(Ee.EINVAL);var n=Ce.nodePermissions(r,"w");if(n)throw new Ce.ErrnoError(n);r.node_ops.setattr(r,{size:i,timestamp:Date.now()})},ftruncate:function(e,i){var r=Ce.getStream(e);if(!r)throw new Ce.ErrnoError(Ee.EBADF);if(0==(2097155&r.flags))throw new Ce.ErrnoError(Ee.EINVAL);Ce.truncate(r.node,i)},utime:function(e,i,r){var n=Ce.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(i,r)})},open:function(i,r,n,A,t){if(""===i)throw new Ce.ErrnoError(Ee.ENOENT);var f;if(n=void 0===n?438:n,n=64&(r="string"==typeof r?Ce.modeStringToFlags(r):r)?4095&n|32768:0,"object"==typeof i)f=i;else{i=ye.normalize(i);try{f=Ce.lookupPath(i,{follow:!(131072&r)}).node}catch(l){}}var o=!1;if(64&r)if(f){if(128&r)throw new Ce.ErrnoError(Ee.EEXIST)}else f=Ce.mknod(i,n,0),o=!0;if(!f)throw new Ce.ErrnoError(Ee.ENOENT);if(Ce.isChrdev(f.mode)&&(r&=-513),65536&r&&!Ce.isDir(f.mode))throw new Ce.ErrnoError(Ee.ENOTDIR);if(!o){var a=Ce.mayOpen(f,r);if(a)throw new Ce.ErrnoError(a)}512&r&&Ce.truncate(f,0),r&=-641;var s=Ce.createStream({node:f,path:Ce.getPath(f),flags:r,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1},A,t);return s.stream_ops.open&&s.stream_ops.open(s),!e.logReadFiles||1&r||(Ce.readFiles||(Ce.readFiles={}),i in Ce.readFiles||(Ce.readFiles[i]=1,e.printErr("read file: "+i))),s},close:function(e){e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(i){throw i}finally{Ce.closeStream(e.fd)}},llseek:function(e,i,r){if(!e.seekable||!e.stream_ops.llseek)throw new Ce.ErrnoError(Ee.ESPIPE);return e.position=e.stream_ops.llseek(e,i,r),e.ungotten=[],e.position},read:function(e,i,r,n,A){if(n<0||A<0)throw new Ce.ErrnoError(Ee.EINVAL);if(1==(2097155&e.flags))throw new Ce.ErrnoError(Ee.EBADF);if(Ce.isDir(e.node.mode))throw new Ce.ErrnoError(Ee.EISDIR);if(!e.stream_ops.read)throw new Ce.ErrnoError(Ee.EINVAL);var t=!0;if(void 0===A)A=e.position,t=!1;else if(!e.seekable)throw new Ce.ErrnoError(Ee.ESPIPE);var f=e.stream_ops.read(e,i,r,n,A);return t||(e.position+=f),f},write:function(e,i,r,n,A,t){if(n<0||A<0)throw new Ce.ErrnoError(Ee.EINVAL);if(0==(2097155&e.flags))throw new Ce.ErrnoError(Ee.EBADF);if(Ce.isDir(e.node.mode))throw new Ce.ErrnoError(Ee.EISDIR);if(!e.stream_ops.write)throw new Ce.ErrnoError(Ee.EINVAL);1024&e.flags&&Ce.llseek(e,0,2);var f=!0;if(void 0===A)A=e.position,f=!1;else if(!e.seekable)throw new Ce.ErrnoError(Ee.ESPIPE);var o=e.stream_ops.write(e,i,r,n,A,t);f||(e.position+=o);try{e.path&&Ce.trackingDelegate.onWriteToFile&&Ce.trackingDelegate.onWriteToFile(e.path)}catch(a){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+a.message)}return o},allocate:function(e,i,r){if(i<0||r<=0)throw new Ce.ErrnoError(Ee.EINVAL);if(0==(2097155&e.flags))throw new Ce.ErrnoError(Ee.EBADF);if(!Ce.isFile(e.node.mode)&&!Ce.isDir(node.mode))throw new Ce.ErrnoError(Ee.ENODEV);if(!e.stream_ops.allocate)throw new Ce.ErrnoError(Ee.EOPNOTSUPP);e.stream_ops.allocate(e,i,r)},mmap:function(e,i,r,n,A,t,f){if(1==(2097155&e.flags))throw new Ce.ErrnoError(Ee.EACCES);if(!e.stream_ops.mmap)throw new Ce.ErrnoError(Ee.ENODEV);return e.stream_ops.mmap(e,i,r,n,A,t,f)},msync:function(e,i,r,n,A){return e&&e.stream_ops.msync?e.stream_ops.msync(e,i,r,n,A):0},munmap:function(e){return 0},ioctl:function(e,i,r){if(!e.stream_ops.ioctl)throw new Ce.ErrnoError(Ee.ENOTTY);return e.stream_ops.ioctl(e,i,r)},readFile:function(e,i){if((i=i||{}).flags=i.flags||"r",i.encoding=i.encoding||"binary","utf8"!==i.encoding&&"binary"!==i.encoding)throw new Error('Invalid encoding type "'+i.encoding+'"');var r,n=Ce.open(e,i.flags),A=Ce.stat(e).size,t=new Uint8Array(A);return Ce.read(n,t,0,A,0),"utf8"===i.encoding?r=D(t,0):"binary"===i.encoding&&(r=t),Ce.close(n),r},writeFile:function(e,i,r){if((r=r||{}).flags=r.flags||"w",r.encoding=r.encoding||"utf8","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error('Invalid encoding type "'+r.encoding+'"');var n=Ce.open(e,r.flags,r.mode);if("utf8"===r.encoding){var A=new Uint8Array(C(i)+1),t=Q(i,A,0,A.length);Ce.write(n,A,0,t,0,r.canOwn)}else"binary"===r.encoding&&Ce.write(n,i,0,i.length,0,r.canOwn);Ce.close(n)},cwd:function(){return Ce.currentPath},chdir:function(e){var i=Ce.lookupPath(e,{follow:!0});if(!Ce.isDir(i.node.mode))throw new Ce.ErrnoError(Ee.ENOTDIR);var r=Ce.nodePermissions(i.node,"x");if(r)throw new Ce.ErrnoError(r);Ce.currentPath=i.path},createDefaultDirectories:function(){Ce.mkdir("/tmp"),Ce.mkdir("/home"),Ce.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(Ce.mkdir("/dev"),Ce.registerDevice(Ce.makedev(1,3),{read:function(){return 0},write:function(e,i,r,n,A){return n}}),Ce.mkdev("/dev/null",Ce.makedev(1,3)),be.register(Ce.makedev(5,0),be.default_tty_ops),be.register(Ce.makedev(6,0),be.default_tty1_ops),Ce.mkdev("/dev/tty",Ce.makedev(5,0)),Ce.mkdev("/dev/tty1",Ce.makedev(6,0)),"undefined"!=typeof crypto){var i=new Uint8Array(1);e=function(){return crypto.getRandomValues(i),i[0]}}else e=function(){return 256*Math.random()|0};Ce.createDevice("/dev","random",e),Ce.createDevice("/dev","urandom",e),Ce.mkdir("/dev/shm"),Ce.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Ce.mkdir("/proc"),Ce.mkdir("/proc/self"),Ce.mkdir("/proc/self/fd"),Ce.mount({mount:function(){var e=Ce.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,i){var r=+i,n=Ce.getStream(r);if(!n)throw new Ce.ErrnoError(Ee.EBADF);var A={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return A.parent=A,A}},e}},{},"/proc/self/fd")},createStandardStreams:function(){e.stdin?Ce.createDevice("/dev","stdin",e.stdin):Ce.symlink("/dev/tty","/dev/stdin"),e.stdout?Ce.createDevice("/dev","stdout",null,e.stdout):Ce.symlink("/dev/tty","/dev/stdout"),e.stderr?Ce.createDevice("/dev","stderr",null,e.stderr):Ce.symlink("/dev/tty1","/dev/stderr");var i=Ce.open("/dev/stdin","r");h(0===i.fd,"invalid handle for stdin ("+i.fd+")");var r=Ce.open("/dev/stdout","w");h(1===r.fd,"invalid handle for stdout ("+r.fd+")");var n=Ce.open("/dev/stderr","w");h(2===n.fd,"invalid handle for stderr ("+n.fd+")")},ensureErrnoError:function(){Ce.ErrnoError||(Ce.ErrnoError=function(e,i){this.node=i,this.setErrno=function(e){for(var i in this.errno=e,Ee)if(Ee[i]===e){this.code=i;break}},this.setErrno(e),this.message=ge[e]},Ce.ErrnoError.prototype=new Error,Ce.ErrnoError.prototype.constructor=Ce.ErrnoError,[Ee.ENOENT].forEach(function(e){Ce.genericErrors[e]=new Ce.ErrnoError(e),Ce.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){Ce.ensureErrnoError(),Ce.nameTable=new Array(4096),Ce.mount(ke,{},"/"),Ce.createDefaultDirectories(),Ce.createDefaultDevices(),Ce.createSpecialDirectories(),Ce.filesystems={MEMFS:ke,IDBFS:De,NODEFS:{},WORKERFS:Qe}},init:function(i,r,n){h(!Ce.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)"),Ce.init.initialized=!0,Ce.ensureErrnoError(),e.stdin=i||e.stdin,e.stdout=r||e.stdout,e.stderr=n||e.stderr,Ce.createStandardStreams()},quit:function(){Ce.init.initialized=!1;var i=e.R;i&&i(0);for(var r=0;r<Ce.streams.length;r++){var n=Ce.streams[r];n&&Ce.close(n)}},getMode:function(e,i){var r=0;return e&&(r|=365),i&&(r|=146),r},joinPath:function(e,i){var r=ye.join.apply(null,e);return i&&"/"==r[0]&&(r=r.substr(1)),r},absolutePath:function(e,i){return ye.resolve(i,e)},standardizePath:function(e){return ye.normalize(e)},findObject:function(e,i){var r=Ce.analyzePath(e,i);return r.exists?r.object:(Be(r.error),null)},analyzePath:function(e,i){try{e=(n=Ce.lookupPath(e,{follow:!i})).path}catch(A){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Ce.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=ye.basename(e),n=Ce.lookupPath(e,{follow:!i}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(A){r.error=A.errno}return r},createFolder:function(e,i,r,n){var A=ye.join2("string"==typeof e?e:Ce.getPath(e),i),t=Ce.getMode(r,n);return Ce.mkdir(A,t)},createPath:function(e,i,r,n){e="string"==typeof e?e:Ce.getPath(e);for(var A=i.split("/").reverse();A.length;){var t=A.pop();if(t){var f=ye.join2(e,t);try{Ce.mkdir(f)}catch(o){}e=f}}return f},createFile:function(e,i,r,n,A){var t=ye.join2("string"==typeof e?e:Ce.getPath(e),i),f=Ce.getMode(n,A);return Ce.create(t,f)},createDataFile:function(e,i,r,n,A,t){var f=i?ye.join2("string"==typeof e?e:Ce.getPath(e),i):e,o=Ce.getMode(n,A),a=Ce.create(f,o);if(r){if("string"==typeof r){for(var s=new Array(r.length),l=0,u=r.length;l<u;++l)s[l]=r.charCodeAt(l);r=s}Ce.chmod(a,146|o);var c=Ce.open(a,"w");Ce.write(c,r,0,r.length,0,t),Ce.close(c),Ce.chmod(a,o)}return a},createDevice:function(e,i,r,n){var A=ye.join2("string"==typeof e?e:Ce.getPath(e),i),t=Ce.getMode(!!r,!!n);Ce.createDevice.major||(Ce.createDevice.major=64);var f=Ce.makedev(Ce.createDevice.major++,0);return Ce.registerDevice(f,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,i,n,A,t){for(var f=0,o=0;o<A;o++){var a;try{a=r()}catch(s){throw new Ce.ErrnoError(Ee.EIO)}if(void 0===a&&0===f)throw new Ce.ErrnoError(Ee.EAGAIN);if(null==a)break;f++,i[n+o]=a}return f&&(e.node.timestamp=Date.now()),f},write:function(e,i,r,A,t){for(var f=0;f<A;f++)try{n(i[r+f])}catch(o){throw new Ce.ErrnoError(Ee.EIO)}return A&&(e.node.timestamp=Date.now()),f}}),Ce.mkdev(A,t,f)},createLink:function(e,i,r,n,A){var t=ye.join2("string"==typeof e?e:Ce.getPath(e),i);return Ce.symlink(r,t)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;var r=!0;if("undefined"!=typeof XMLHttpRequest)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.");if(!e.read)throw new Error("Cannot load without read() or XMLHttpRequest.");try{i.contents=re(e.read(i.url),!0),i.usedBytes=i.contents.length}catch(n){r=!1}return r||Be(Ee.EIO),r},createLazyFile:function(e,i,r,n,A){function f(){this.lengthKnown=!1,this.chunks=[]}if(f.prototype.get=function(e){if(!(e>this.length-1||e<0)){var i=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[i]}},f.prototype.setDataGetter=function(e){this.getter=e},f.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var i,n=Number(e.getResponseHeader("Content-length")),A=(i=e.getResponseHeader("Accept-Ranges"))&&"bytes"===i,t=1048576;A||(t=n);var f=this;f.setDataGetter(function(e){var i=e*t,A=(e+1)*t-1;if(A=Math.min(A,n-1),void 0===f.chunks[e]&&(f.chunks[e]=function(e,i){if(e>i)throw new Error("invalid range ("+e+", "+i+") or no bytes requested!");if(i>n-1)throw new Error("only "+n+" bytes available! programmer error!");var A=new XMLHttpRequest;if(A.open("GET",r,!1),n!==t&&A.setRequestHeader("Range","bytes="+e+"-"+i),"undefined"!=typeof Uint8Array&&(A.responseType="arraybuffer"),A.overrideMimeType&&A.overrideMimeType("text/plain; charset=x-user-defined"),A.send(null),!(A.status>=200&&A.status<300||304===A.status))throw new Error("Couldn't load "+r+". Status: "+A.status);return void 0!==A.response?new Uint8Array(A.response||[]):re(A.responseText||"",!0)}(i,A)),void 0===f.chunks[e])throw new Error("doXHR failed!");return f.chunks[e]}),this.q=n,this.Z=t,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!t)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new f;Object.defineProperty(o,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this.q}}),Object.defineProperty(o,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this.Z}});var a={isDevice:!1,contents:o}}else a={isDevice:!1,url:r};var s=Ce.createFile(e,i,a,n,A);a.contents?s.contents=a.contents:a.url&&(s.contents=null,s.url=a.url),Object.defineProperty(s,"usedBytes",{get:function(){return this.contents.length}});var l={};return Object.keys(s.stream_ops).forEach(function(e){var i=s.stream_ops[e];l[e]=function(){if(!Ce.forceLoadFile(s))throw new Ce.ErrnoError(Ee.EIO);return i.apply(null,arguments)}}),l.read=function(e,i,r,n,A){if(!Ce.forceLoadFile(s))throw new Ce.ErrnoError(Ee.EIO);var t=e.node.contents;if(A>=t.length)return 0;var f=Math.min(t.length-A,n);if(h(f>=0),t.slice)for(var o=0;o<f;o++)i[r+o]=t[A+o];else for(o=0;o<f;o++)i[r+o]=t.get(A+o);return f},s.stream_ops=l,s},createPreloadedFile:function(i,r,n,A,t,f,o,a,s,l){pe.init();var u=r?ye.resolve(ye.join2(i,r)):i;function c(n){function c(e){l&&l(),a||Ce.createDataFile(i,r,e,A,t,s),f&&f(),he()}var w=!1;e.preloadPlugins.forEach(function(e){w||e.canHandle(u)&&(e.handle(n,u,c,function(){o&&o(),he()}),w=!0)}),w||c(n)}we(),"string"==typeof n?pe.asyncLoad(n,function(e){c(e)},o):c(n)},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(e,i,r){i=i||function(){},r=r||function(){};var n=Ce.indexedDB();try{var A=n.open(Ce.DB_NAME(),Ce.DB_VERSION)}catch(t){return r(t)}A.onupgradeneeded=function(){console.log("creating db"),A.result.createObjectStore(Ce.DB_STORE_NAME)},A.onsuccess=function(){var n=A.result.transaction([Ce.DB_STORE_NAME],"readwrite"),t=n.objectStore(Ce.DB_STORE_NAME),f=0,o=0,a=e.length;function s(){0==o?i():r()}e.forEach(function(e){var i=t.put(Ce.analyzePath(e).object.contents,e);i.onsuccess=function(){++f+o==a&&s()},i.onerror=function(){f+ ++o==a&&s()}}),n.onerror=r},A.onerror=r},loadFilesFromDB:function(e,i,r){i=i||function(){},r=r||function(){};var n=Ce.indexedDB();try{var A=n.open(Ce.DB_NAME(),Ce.DB_VERSION)}catch(t){return r(t)}A.onupgradeneeded=r,A.onsuccess=function(){var n=A.result;try{var f=n.transaction([Ce.DB_STORE_NAME],"readonly")}catch(t){return void r(t)}var o=f.objectStore(Ce.DB_STORE_NAME),a=0,s=0,l=e.length;function u(){0==s?i():r()}e.forEach(function(e){var i=o.get(e);i.onsuccess=function(){Ce.analyzePath(e).exists&&Ce.unlink(e),Ce.createDataFile(ye.dirname(e),ye.basename(e),i.result,!0,!0,!0),++a+s==l&&u()},i.onerror=function(){a+ ++s==l&&u()}}),f.onerror=r},A.onerror=r}}),ye={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,i){for(var r=0,n=e.length-1;n>=0;n--){var A=e[n];"."===A?e.splice(n,1):".."===A?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(i)for(;r--;r)e.unshift("..");return e},normalize:function(e){var i="/"===e.charAt(0),r="/"===e.substr(-1);return(e=ye.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))||i||(e="."),e&&r&&(e+="/"),(i?"/":"")+e},dirname:function(e){var i=ye.splitPath(e),r=i[0],n=i[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var i=e.lastIndexOf("/");return-1===i?e:e.substr(i+1)},extname:function(e){return ye.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ye.normalize(e.join("/"))},join2:function(e,i){return ye.normalize(e+"/"+i)},resolve:function(){for(var e="",i=!1,r=arguments.length-1;r>=-1&&!i;r--){var n=r>=0?arguments[r]:Ce.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,i="/"===n.charAt(0)}return(i?"/":"")+(e=ye.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))||"."},relative:function(e,i){function r(e){for(var i=0;i<e.length&&""===e[i];i++);for(var r=e.length-1;r>=0&&""===e[r];r--);return i>r?[]:e.slice(i,r-i+1)}e=ye.resolve(e).substr(1),i=ye.resolve(i).substr(1);for(var n=r(e.split("/")),A=r(i.split("/")),t=Math.min(n.length,A.length),f=t,o=0;o<t;o++)if(n[o]!==A[o]){f=o;break}var a=[];for(o=f;o<n.length;o++)a.push("..");return(a=a.concat(A.slice(f))).join("/")}};function Pe(e,i){if(pe.mainLoop.timingMode=e,pe.mainLoop.timingValue=i,!pe.mainLoop.func)return 1;if(0==e)pe.mainLoop.scheduler=function(){setTimeout(pe.mainLoop.runner,i)},pe.mainLoop.method="timeout";else if(1==e)pe.mainLoop.scheduler=function(){pe.requestAnimationFrame(pe.mainLoop.runner)},pe.mainLoop.method="rAF";else if(2==e){if(!window.setImmediate){var r=[],n="__emcc";window.addEventListener("message",function(e){e.source===window&&e.data===n&&(e.stopPropagation(),r.shift()())},!0),window.setImmediate=function(e){r.push(e),window.postMessage(n,"*")}}pe.mainLoop.scheduler=function(){window.setImmediate(pe.mainLoop.runner)},pe.mainLoop.method="immediate"}return 0}function Te(i,r,n,A,t){e.noExitRuntime=!0,h(!pe.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."),pe.mainLoop.func=i,pe.mainLoop.arg=A;var f=pe.mainLoop.currentlyRunningMainloop;if(pe.mainLoop.runner=function(){if(!w){if(pe.mainLoop.queue.length>0){var r=Date.now(),n=pe.mainLoop.queue.shift();if(n.func(n.arg),pe.mainLoop.remainingBlockers){var t=pe.mainLoop.remainingBlockers,a=t%1==0?t-1:Math.floor(t);n.counted?pe.mainLoop.remainingBlockers=a:(a+=.5,pe.mainLoop.remainingBlockers=(8*t+a)/9)}return console.log('main loop blocker "'+n.name+'" took '+(Date.now()-r)+" ms"),pe.mainLoop.updateStatus(),void setTimeout(pe.mainLoop.runner,0)}f<pe.mainLoop.currentlyRunningMainloop||(pe.mainLoop.currentFrameNumber=pe.mainLoop.currentFrameNumber+1|0,1==pe.mainLoop.timingMode&&pe.mainLoop.timingValue>1&&pe.mainLoop.currentFrameNumber%pe.mainLoop.timingValue!=0?pe.mainLoop.scheduler():("timeout"===pe.mainLoop.method&&e.ctx&&(e.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!"),pe.mainLoop.method=""),pe.mainLoop.runIter(function(){void 0!==A?o.dynCall("vi",i,[A]):o.dynCall("v",i)}),f<pe.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),pe.mainLoop.scheduler())))}},t||(r&&r>0?Pe(0,1e3/r):Pe(1,1),pe.mainLoop.scheduler()),n)throw"SimulateInfiniteLoop"}var pe={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){pe.mainLoop.scheduler=null,pe.mainLoop.currentlyRunningMainloop++},resume:function(){pe.mainLoop.currentlyRunningMainloop++;var e=pe.mainLoop.timingMode,i=pe.mainLoop.timingValue,r=pe.mainLoop.func;pe.mainLoop.func=null,Te(r,0,!1,pe.mainLoop.arg,!0),Pe(e,i),pe.mainLoop.scheduler()},updateStatus:function(){if(e.setStatus){var i=e.statusMessage||"Please wait...",r=pe.mainLoop.remainingBlockers,n=pe.mainLoop.expectedBlockers;r?r<n?e.setStatus(i+" ("+(n-r)+"/"+n+")"):e.setStatus(i):e.setStatus("")}},runIter:function(i){if(!w){if(e.preMainLoop&&!1===e.preMainLoop())return;try{i()}catch(r){if(r instanceof Ue)return;throw r&&"object"==typeof r&&r.stack&&e.printErr("exception thrown: "+[r,r.stack]),r}e.postMainLoop&&e.postMainLoop()}}},isFullScreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(e.preloadPlugins||(e.preloadPlugins=[]),!pe.initted){pe.initted=!0;try{new Blob,pe.hasBlobConstructor=!0}catch(t){pe.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}pe.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:pe.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),pe.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,e.noImageDecoding||void 0!==pe.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),e.noImageDecoding=!0);var i={canHandle:function(i){return!e.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(i)},handle:function(i,r,n,A){var f=null;if(pe.hasBlobConstructor)try{(f=new Blob([i],{type:pe.getMimetype(r)})).size!==i.length&&(f=new Blob([new Uint8Array(i).buffer],{type:pe.getMimetype(r)}))}catch(t){o.warnOnce("Blob constructor present but fails: "+t+"; falling back to blob builder")}if(!f){var a=new pe.BlobBuilder;a.append(new Uint8Array(i).buffer),f=a.getBlob()}var s=pe.URLObject.createObjectURL(f),l=new Image;l.onload=function(){h(l.complete,"Image "+r+" could not be decoded");var A=document.createElement("canvas");A.width=l.width,A.height=l.height,A.getContext("2d").drawImage(l,0,0),e.preloadedImages[r]=A,pe.URLObject.revokeObjectURL(s),n&&n(i)},l.onerror=function(e){console.log("Image "+s+" could not be decoded"),A&&A()},l.src=s}};e.preloadPlugins.push(i);var r={canHandle:function(i){return!e.noAudioDecoding&&i.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(i,r,n,A){var f=!1;function o(A){f||(f=!0,e.preloadedAudios[r]=A,n&&n(i))}function a(){f||(f=!0,e.preloadedAudios[r]=new Audio,A&&A())}if(!pe.hasBlobConstructor)return a();try{var s=new Blob([i],{type:pe.getMimetype(r)})}catch(t){return a()}var l=pe.URLObject.createObjectURL(s),u=new Audio;u.addEventListener("canplaythrough",function(){o(u)},!1),u.onerror=function(e){f||(console.log("warning: browser could not fully decode audio "+r+", trying slower base64 approach"),u.src="data:audio/x-"+r.substr(-3)+";base64,"+function(e){for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,A=0,t=0;t<e.length;t++)for(n=n<<8|e[t],A+=8;A>=6;){var f=n>>A-6&63;A-=6,r+=i[f]}return 2==A?(r+=i[(3&n)<<4],r+="=="):4==A&&(r+=i[(15&n)<<2],r+="="),r}(i),o(u))},u.src=l,pe.safeSetTimeout(function(){o(u)},1e4)}};e.preloadPlugins.push(r);var n=e.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",A,!1),document.addEventListener("mozpointerlockchange",A,!1),document.addEventListener("webkitpointerlockchange",A,!1),document.addEventListener("mspointerlockchange",A,!1),e.elementPointerLock&&n.addEventListener("click",function(e){!pe.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),e.preventDefault())},!1))}function A(){pe.pointerLock=document.pointerLockElement===n||document.mozPointerLockElement===n||document.webkitPointerLockElement===n||document.msPointerLockElement===n}},createContext:function(i,r,n,A){if(r&&e.ctx&&i==e.canvas)return e.ctx;var t,f;if(r){var o={antialias:!1,alpha:!1};if(A)for(var a in A)o[a]=A[a];(f=GL.createContext(i,o))&&(t=GL.getContext(f).GLctx),i.style.backgroundColor="black"}else t=i.getContext("2d");return t?(n&&(r||h("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),e.ctx=t,r&&GL.makeContextCurrent(f),e.useWebGL=r,pe.moduleContextCreatedCallbacks.forEach(function(e){e()}),pe.init()),t):null},destroyContext:function(e,i,r){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(i,r,n){pe.lockPointer=i,pe.resizeCanvas=r,pe.vrDevice=n,void 0===pe.lockPointer&&(pe.lockPointer=!0),void 0===pe.resizeCanvas&&(pe.resizeCanvas=!1),void 0===pe.vrDevice&&(pe.vrDevice=null);var A=e.canvas;function t(){pe.isFullScreen=!1;var i=A.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===i?(A.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},A.cancelFullScreen=A.cancelFullScreen.bind(document),pe.lockPointer&&A.requestPointerLock(),pe.isFullScreen=!0,pe.resizeCanvas&&pe.setFullScreenCanvasSize()):(i.parentNode.insertBefore(A,i),i.parentNode.removeChild(i),pe.resizeCanvas&&pe.setWindowedCanvasSize()),e.onFullScreen&&e.onFullScreen(pe.isFullScreen),pe.updateCanvasDimensions(A)}pe.fullScreenHandlersInstalled||(pe.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",t,!1),document.addEventListener("mozfullscreenchange",t,!1),document.addEventListener("webkitfullscreenchange",t,!1),document.addEventListener("MSFullscreenChange",t,!1));var f=document.createElement("div");A.parentNode.insertBefore(f,A),f.appendChild(A),f.requestFullScreen=f.requestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen||(f.webkitRequestFullScreen?function(){f.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),n?f.requestFullScreen({vrDisplay:n}):f.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(e){var i=Date.now();if(0===pe.nextRAF)pe.nextRAF=i+1e3/60;else for(;i+2>=pe.nextRAF;)pe.nextRAF+=1e3/60;var r=Math.max(pe.nextRAF-i,0);setTimeout(e,r)},requestAnimationFrame:function(e){"undefined"==typeof window?pe.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||pe.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(e){return function(){if(!w)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){pe.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(pe.allowAsyncCallbacks=!0,pe.queuedAsyncCallbacks.length>0){var e=pe.queuedAsyncCallbacks;pe.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return pe.requestAnimationFrame(function(){w||(pe.allowAsyncCallbacks?e():pe.queuedAsyncCallbacks.push(e))})},safeSetTimeout:function(i,r){return e.noExitRuntime=!0,setTimeout(function(){w||(pe.allowAsyncCallbacks?i():pe.queuedAsyncCallbacks.push(i))},r)},safeSetInterval:function(i,r){return e.noExitRuntime=!0,setInterval(function(){w||pe.allowAsyncCallbacks&&i()},r)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var i=0;switch(e.type){case"DOMMouseScroll":i=e.detail;break;case"mousewheel":i=e.wheelDelta;break;case"wheel":i=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return i},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(pe.pointerLock)"mousemove"!=i.type&&"mozMovementX"in i?pe.mouseMovementX=pe.mouseMovementY=0:(pe.mouseMovementX=pe.getMovementX(i),pe.mouseMovementY=pe.getMovementY(i)),"undefined"!=typeof SDL?(pe.mouseX=SDL.mouseX+pe.mouseMovementX,pe.mouseY=SDL.mouseY+pe.mouseMovementY):(pe.mouseX+=pe.mouseMovementX,pe.mouseY+=pe.mouseMovementY);else{var r=e.canvas.getBoundingClientRect(),n=e.canvas.width,A=e.canvas.height,t=void 0!==window.scrollX?window.scrollX:window.pageXOffset,f=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===i.type||"touchend"===i.type||"touchmove"===i.type){var o=i.touch;if(void 0===o)return;var a=o.pageX-(t+r.left),s=o.pageY-(f+r.top),l={x:a*=n/r.width,y:s*=A/r.height};if("touchstart"===i.type)pe.lastTouches[o.identifier]=l,pe.touches[o.identifier]=l;else if("touchend"===i.type||"touchmove"===i.type){var u=pe.touches[o.identifier];u||(u=l),pe.lastTouches[o.identifier]=u,pe.touches[o.identifier]=l}return}var c=i.pageX-(t+r.left),w=i.pageY-(f+r.top);c*=n/r.width,w*=A/r.height,pe.mouseMovementX=c-pe.mouseX,pe.mouseMovementY=w-pe.mouseY,pe.mouseX=c,pe.mouseY=w}},xhrLoad:function(e,i,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?i(n.response):r()},n.onerror=r,n.send(null)},asyncLoad:function(e,i,r,n){pe.xhrLoad(e,function(r){h(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),i(new Uint8Array(r)),n||he()},function(i){if(!r)throw'Loading data file "'+e+'" failed.';r()}),n||we()},resizeListeners:[],updateResizeListeners:function(){var i=e.canvas;pe.resizeListeners.forEach(function(e){e(i.width,i.height)})},setCanvasSize:function(i,r,n){var A=e.canvas;pe.updateCanvasDimensions(A,i,r),n||pe.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=F[SDL.screen+0*o.QUANTUM_SIZE>>2];e|=8388608,I[SDL.screen+0*o.QUANTUM_SIZE>>2]=e}pe.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=F[SDL.screen+0*o.QUANTUM_SIZE>>2];e&=-8388609,I[SDL.screen+0*o.QUANTUM_SIZE>>2]=e}pe.updateResizeListeners()},updateCanvasDimensions:function(i,r,n){r&&n?(i.widthNative=r,i.heightNative=n):(r=i.widthNative,n=i.heightNative);var A=r,t=n;if(e.forcedAspectRatio&&e.forcedAspectRatio>0&&(A/t<e.forcedAspectRatio?A=Math.round(t*e.forcedAspectRatio):t=Math.round(A/e.forcedAspectRatio)),(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&"undefined"!=typeof screen){var f=Math.min(screen.width/A,screen.height/t);A=Math.round(A*f),t=Math.round(t*f)}pe.resizeCanvas?(i.width!=A&&(i.width=A),i.height!=t&&(i.height=t),void 0!==i.style&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=r&&(i.width=r),i.height!=n&&(i.height=n),void 0!==i.style&&(A!=r||t!=n?(i.style.setProperty("width",A+"px","important"),i.style.setProperty("height",t+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var e=pe.nextWgetRequestHandle;return pe.nextWgetRequestHandle++,e}};e.requestFullScreen=function(e,i,r){pe.requestFullScreen(e,i,r)},e.requestAnimationFrame=function(e){pe.requestAnimationFrame(e)},e.setCanvasSize=function(e,i,r){pe.setCanvasSize(e,i,r)},e.pauseMainLoop=function(){pe.mainLoop.pause()},e.resumeMainLoop=function(){pe.mainLoop.resume()},e.getUserMedia=function(){pe.getUserMedia()},e.createContext=function(e,i,r,n){return pe.createContext(e,i,r,n)},Ce.staticInit(),K.unshift(function(){e.noFSInit||Ce.init.initialized||Ce.init()}),W.push(function(){Ce.ignorePermissions=!1}),V.push(function(){Ce.quit()}),e.FS_createFolder=Ce.createFolder,e.FS_createPath=Ce.createPath,e.FS_createDataFile=Ce.createDataFile,e.FS_createPreloadedFile=Ce.createPreloadedFile,e.FS_createLazyFile=Ce.createLazyFile,e.FS_createLink=Ce.createLink,e.FS_createDevice=Ce.createDevice,e.FS_unlink=Ce.unlink,K.unshift(function(){}),V.push(function(){}),H=G=o.alignMemory(_),L=!0,U=H+x,h((X=o.alignMemory(U))<Y,"TOTAL_MEMORY not big enough for stack"),e.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},e.asmLibraryArg={abort:Le,assert:h,$:function(e){switch(e){case 30:return S;case 85:return z/S;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:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return Be(Ee.EINVAL),-1},ee:function(){return 0},ie:function(){e.abort()},___setErrNo:Be,_:ve,re:function(e){var i=Date.now()/1e3|0;return e&&(I[e>>2]=i),i},ne:Pe,O:function(e,i,r){return p.set(p.subarray(i,i+r),e),e},Ae:Te,STACKTOP:G,STACK_MAX:U,tempDoublePtr:de,ABORT:w};var Me,me=function(e,i,r){"use asm";var n=new e.Int8Array(r);var A=new e.Int16Array(r);var t=new e.Int32Array(r);var f=new e.Uint8Array(r);var o=new e.Uint16Array(r);var a=new e.Uint32Array(r);var s=new e.Float32Array(r);var l=new e.Float64Array(r);var u=i.STACKTOP|0;var c=i.STACK_MAX|0;var w=i.tempDoublePtr|0;var h=i.ABORT|0;var d=e.NaN,v=e.Infinity;var B=0;var E=e.Math.floor;var g=e.Math.abs;var b=e.Math.sqrt;var k=e.Math.pow;var D=e.Math.cos;var Q=e.Math.sin;var C=e.Math.tan;var y=e.Math.acos;var P=e.Math.asin;var T=e.Math.atan;var p=e.Math.atan2;var M=e.Math.exp;var m=e.Math.log;var I=e.Math.ceil;var F=e.Math.imul;var R=e.Math.min;var O=e.Math.clz32;var H=i.abort;var U=i.assert;var N=i.$;var S=i.ee;var _=i.ie;var L=i.___setErrNo;var G=i._;var X=i.re;var x=i.ne;var Y=i.O;var z=i.Ae;function j(e){e=e|0;var i=0;i=u;u=u+e|0;u=u+15&-16;return i|0}function J(){return u|0}function K(e){e=e|0;u=e}function W(e,i){e=e|0;i=i|0;u=e;c=i}function V(e,i){e=e|0;i=i|0}function q(e){e=e|0;B=e}function Z(){return B|0}function $(){var e=0,i=0;i=u;u=u+16|0;e=i;t[e>>2]=0;oi(e,31756)|0;u=i;return t[e>>2]|0}function ee(e){e=e|0;var i=0,r=0;i=u;u=u+16|0;r=i;t[r>>2]=e;ai(r);u=i;return}function ie(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;ae(e,(n|0)==0?(f[i>>0]|0)>>>3&15:15,i+1|0,r,2)|0;return}function re(e){e=e|0;var i=0;i=hA(8)|0;ui(i,i+4|0,e)|0;return i|0}function ne(e){e=e|0;ci(e,e+4|0);dA(e);return}function Ae(e,i,r,A,o){e=e|0;i=i|0;r=r|0;A=A|0;o=o|0;var a=0;o=u;u=u+16|0;a=o;t[a>>2]=i;r=(wi(t[e>>2]|0,t[e+4>>2]|0,i,r,A,a,3)|0)<<16>>16;n[A>>0]=f[A>>0]|0|4;u=o;return r|0}function te(e){e=e|0;if(!e)e=-1;else{A[e>>1]=4096;e=0}return e|0}function fe(e,i,r,n,f,o){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0;c=t[o>>2]|0;v=f<<16>>16>0;if(v){a=0;s=0;do{u=A[r+(a<<1)>>1]|0;u=F(u,u)|0;if((u|0)!=1073741824){l=(u<<1)+s|0;if((u^s|0)>0&(l^s|0)<0){t[o>>2]=1;s=(s>>>31)+2147483647|0}else s=l}else{t[o>>2]=1;s=2147483647}a=a+1|0}while((a&65535)<<16>>16!=f<<16>>16);if((s|0)==2147483647){t[o>>2]=c;u=0;l=0;do{s=A[r+(u<<1)>>1]>>2;s=F(s,s)|0;if((s|0)!=1073741824){a=(s<<1)+l|0;if((s^l|0)>0&(a^l|0)<0){t[o>>2]=1;l=(l>>>31)+2147483647|0}else l=a}else{t[o>>2]=1;l=2147483647}u=u+1|0}while((u&65535)<<16>>16!=f<<16>>16)}else d=8}else{s=0;d=8}if((d|0)==8)l=s>>4;if(!l){A[e>>1]=0;return}h=((Kn(l)|0)&65535)+65535|0;s=h<<16>>16;if((h&65535)<<16>>16>0){a=l<<s;if((a>>s|0)==(l|0))l=a;else l=l>>31^2147483647}else{s=0-s<<16;if((s|0)<2031616)l=l>>(s>>16);else l=0}w=oA(l,o)|0;a=t[o>>2]|0;if(v){s=0;l=0;do{c=A[i+(s<<1)>>1]|0;c=F(c,c)|0;if((c|0)!=1073741824){u=(c<<1)+l|0;if((c^l|0)>0&(u^l|0)<0){t[o>>2]=1;l=(l>>>31)+2147483647|0}else l=u}else{t[o>>2]=1;l=2147483647}s=s+1|0}while((s&65535)<<16>>16!=f<<16>>16);if((l|0)==2147483647){t[o>>2]=a;c=0;l=0;do{u=A[i+(c<<1)>>1]>>2;u=F(u,u)|0;if((u|0)!=1073741824){s=(u<<1)+l|0;if((u^l|0)>0&(s^l|0)<0){t[o>>2]=1;l=(l>>>31)+2147483647|0}else l=s}else{t[o>>2]=1;l=2147483647}c=c+1|0}while((c&65535)<<16>>16!=f<<16>>16)}else d=29}else{l=0;d=29}if((d|0)==29)l=l>>4;if(!l)u=0;else{s=(Kn(l)|0)<<16>>16;a=h-s|0;u=a&65535;l=(Cn(w,oA(l<<s,o)|0)|0)<<16>>16;s=l<<7;a=a<<16>>16;if(u<<16>>16>0)a=u<<16>>16<31?s>>a:0;else{d=0-a<<16>>16;a=s<<d;a=(a>>d|0)==(s|0)?a:l>>24^2147483647}u=(F(((Hn(a,o)|0)<<9)+32768>>16,32767-(n&65535)<<16>>16)|0)>>>15<<16>>16}a=A[e>>1]|0;if(v){l=n<<16>>16;s=0;while(1){n=((F(a<<16>>16,l)|0)>>>15&65535)+u|0;a=n&65535;A[r>>1]=(F(A[r>>1]|0,n<<16>>16)|0)>>>12;s=s+1<<16>>16;if(s<<16>>16>=f<<16>>16)break;else r=r+2|0}}A[e>>1]=a;return}function oe(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0;a=t[n>>2]|0;f=r<<16>>16>0;if(f){s=0;o=0;do{u=A[i+(s<<1)>>1]|0;u=F(u,u)|0;if((u|0)!=1073741824){l=(u<<1)+o|0;if((u^o|0)>0&(l^o|0)<0){t[n>>2]=1;o=(o>>>31)+2147483647|0}else o=l}else{t[n>>2]=1;o=2147483647}s=s+1|0}while((s&65535)<<16>>16!=r<<16>>16);if((o|0)==2147483647){t[n>>2]=a;u=0;a=0;do{l=A[i+(u<<1)>>1]>>2;l=F(l,l)|0;if((l|0)!=1073741824){s=(l<<1)+a|0;if((l^a|0)>0&(s^a|0)<0){t[n>>2]=1;a=(a>>>31)+2147483647|0}else a=s}else{t[n>>2]=1;a=2147483647}u=u+1|0}while((u&65535)<<16>>16!=r<<16>>16)}else h=8}else{o=0;h=8}if((h|0)==8)a=o>>4;if(!a)return;w=((Kn(a)|0)&65535)+65535|0;l=w<<16>>16;if((w&65535)<<16>>16>0){s=a<<l;if((s>>l|0)==(a|0))a=s;else a=a>>31^2147483647}else{l=0-l<<16;if((l|0)<2031616)a=a>>(l>>16);else a=0}c=oA(a,n)|0;a=t[n>>2]|0;if(f){s=0;o=0;do{u=A[e+(s<<1)>>1]|0;u=F(u,u)|0;if((u|0)!=1073741824){l=(u<<1)+o|0;if((u^o|0)>0&(l^o|0)<0){t[n>>2]=1;o=(o>>>31)+2147483647|0}else o=l}else{t[n>>2]=1;o=2147483647}s=s+1|0}while((s&65535)<<16>>16!=r<<16>>16);if((o|0)==2147483647){t[n>>2]=a;a=0;s=0;do{u=A[e+(a<<1)>>1]>>2;u=F(u,u)|0;if((u|0)!=1073741824){l=(u<<1)+s|0;if((u^s|0)>0&(l^s|0)<0){t[n>>2]=1;s=(s>>>31)+2147483647|0}else s=l}else{t[n>>2]=1;s=2147483647}a=a+1|0}while((a&65535)<<16>>16!=r<<16>>16)}else h=28}else{o=0;h=28}if((h|0)==28)s=o>>4;if(!s)f=0;else{u=Kn(s)|0;l=u<<16>>16;if(u<<16>>16>0){a=s<<l;if((a>>l|0)==(s|0))s=a;else s=s>>31^2147483647}else{l=0-l<<16;if((l|0)<2031616)s=s>>(l>>16);else s=0}a=w-(u&65535)|0;l=a&65535;o=(Cn(c,oA(s,n)|0)|0)<<16>>16;f=o<<7;a=a<<16>>16;if(l<<16>>16>0)f=l<<16>>16<31?f>>a:0;else{w=0-a<<16>>16;e=f<<w;f=(e>>w|0)==(f|0)?e:o>>24^2147483647}f=Hn(f,n)|0;if((f|0)>4194303)f=2147483647;else f=(f|0)<-4194304?-2147483648:f<<9;f=oA(f,n)|0}o=(r&65535)+65535&65535;if(o<<16>>16<=-1)return;u=f<<16>>16;l=r+-1<<16>>16<<16>>16;while(1){a=i+(l<<1)|0;f=F(A[a>>1]|0,u)|0;do{if((f|0)!=1073741824){s=f<<1;if((s|0)<=268435455)if((s|0)<-268435456){A[a>>1]=-32768;break}else{A[a>>1]=f>>>12;break}else h=52}else{t[n>>2]=1;h=52}}while(0);if((h|0)==52){h=0;A[a>>1]=32767}o=o+-1<<16>>16;if(o<<16>>16<=-1)break;else l=l+-1|0}return}function ae(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0;l=u;u=u+496|0;s=l;a=(f|0)==2;do{if(!(a&1|(f|0)==4)){if(f){e=-1;u=l;return e|0}a=A[r>>1]|0;i=r+490|0;f=r+2|0;o=0;while(1){A[s+(o<<1)>>1]=A[f>>1]|0;o=o+1|0;if((o|0)==244)break;else f=f+2|0}o=a<<16>>16;if(a<<16>>16==7){f=492;i=t[e+1760>>2]|0;break}else{f=492;i=A[i>>1]|0;break}}else{o=e+1168|0;if(a){li(i,r,s,o);o=604}else{Je(i,r,s,o);o=3436}f=A[o+(i<<1)>>1]|0;do{if(i>>>0>=8){if((i|0)==8){i=A[s+76>>1]<<2|(A[s+74>>1]<<1|A[s+72>>1]);o=(A[s+70>>1]|0)==0?4:5;break}if(i>>>0<15){e=-1;u=l;return e|0}else{i=t[e+1760>>2]|0;o=7;break}}else o=0}while(0);if(f<<16>>16==-1){e=-1;u=l;return e|0}}}while(0);si(e,i,s,o,n);t[e+1760>>2]=i;e=f;u=l;return e|0}function se(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0;g=u;u=u+48|0;B=g+20|0;E=g;f=B;n=f+20|0;do{A[f>>1]=A[e>>1]|0;f=f+2|0;e=e+2|0}while((f|0)<(n|0));e=A[B+18>>1]|0;v=(e&65535)-((e&65535)>>>15&65535)|0;e:do{if(((v<<16>>31^v)&65535)<<16>>16<=4095){n=9;v=9;while(1){e=e<<16>>16;e=(e<<19>>19|0)==(e|0)?e<<3:e>>>15^32767;d=i+(n<<1)|0;A[d>>1]=e;e=e<<16>>16;e=F(e,e)|0;if((e|0)==1073741824){t[r>>2]=1;f=2147483647}else f=e<<1;e=2147483647-f|0;if((e&f|0)<0){t[r>>2]=1;e=2147483647}w=Kn(e)|0;h=15-(w&65535)&65535;a=w<<16>>16;if(w<<16>>16>0){f=e<<a;if((f>>a|0)!=(e|0))f=e>>31^2147483647}else{f=0-a<<16;if((f|0)<2031616)f=e>>(f>>16);else f=0}f=Cn(16384,oA(f,r)|0)|0;do{if(v<<16>>16>0){w=n+-1|0;s=f<<16>>16;l=v<<16>>16;c=0;while(1){n=o[B+(c<<1)>>1]|0;e=n<<16;a=F(A[B+(w-c<<1)>>1]|0,A[d>>1]|0)|0;if((a|0)==1073741824){t[r>>2]=1;f=2147483647}else f=a<<1;a=e-f|0;if(((a^e)&(f^e)|0)<0){t[r>>2]=1;a=(n>>>15)+2147483647|0}a=F((oA(a,r)|0)<<16>>16,s)|0;if((a|0)==1073741824){t[r>>2]=1;a=2147483647}else a=a<<1;a=_n(a,h,r)|0;f=a-(a>>>31)|0;if((f>>31^f|0)>32767){a=24;break}A[E+(c<<1)>>1]=a;c=c+1|0;if((l|0)<=(c|0)){a=26;break}}if((a|0)==24){a=0;f=i;n=f+20|0;do{A[f>>1]=0;f=f+2|0}while((f|0)<(n|0));e=10}else if((a|0)==26){a=0;if(v<<16>>16>0)e=v;else{a=28;break}}f=e+-1<<16>>16;gA(B|0,E|0,((f&65535)<<1)+2|0)|0;n=f<<16>>16}else a=28}while(0);if((a|0)==28){e=v+-1<<16>>16;if(e<<16>>16>-1){n=e<<16>>16;f=32767}else break}e=A[B+(n<<1)>>1]|0;v=(e&65535)-((e&65535)>>>15&65535)|0;if(((v<<16>>31^v)&65535)<<16>>16>4095)break e;else v=f}u=g;return}}while(0);f=i;n=f+20|0;do{A[f>>1]=0;f=f+2|0}while((f|0)<(n|0));u=g;return}function le(e,i){e=e|0;i=i|0;var r=0,n=0,A=0,f=0,o=0;if(i<<16>>16<=0){e=0;return e|0}n=t[e>>2]|0;A=0;r=0;do{o=n&1;r=o|r<<1&131070;f=n>>1;n=(o|0)==(n>>>28&1|0)?f:f|1073741824;A=A+1<<16>>16}while(A<<16>>16<i<<16>>16);t[e>>2]=n;o=r&65535;return o|0}function ue(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0,a=0,s=0,l=0;f=i;n=f+80|0;do{A[f>>1]=0;f=f+2|0}while((f|0)<(n|0));n=0;f=t[e>>2]|0;do{l=f&1;s=f>>1;s=(l|0)==(f>>>28&1|0)?s:s|1073741824;o=s&1;a=s>>1;t[e>>2]=(o|0)==(s>>>28&1|0)?a:a|1073741824;o=Dn((F(l<<1|o,1310720)|0)>>>17&65535,n,r)|0;l=t[e>>2]|0;a=l&1;s=l>>1;f=(a|0)==(l>>>28&1|0)?s:s|1073741824;t[e>>2]=f;A[i+(o<<16>>16<<1)>>1]=((a&65535)<<13&65535)+-4096<<16>>16;n=n+1<<16>>16}while(n<<16>>16<10);return}function ce(e,i,r,n,f,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;var s=0,l=0;s=A[e>>1]|0;if((s*31821|0)==1073741824){t[a>>2]=1;l=1073741823}else l=s*63642>>1;s=l+13849|0;if((l|0)>-1&(s^l|0)<0){t[a>>2]=1;s=(l>>>31)+2147483647|0}A[e>>1]=s;if(i<<16>>16<=0)return;l=0;s=f+((s&127)<<1)|0;while(1){A[n+(l<<1)>>1]=(-65536<<A[r+(l<<1)>>1]>>>16^65535)&o[s>>1];l=l+1|0;if((l&65535)<<16>>16==i<<16>>16)break;else s=s+2|0}return}function we(e){e=e|0;var i=0;if(!e){i=-1;return i|0}i=e+122|0;do{A[e>>1]=0;e=e+2|0}while((e|0)<(i|0));i=0;return i|0}function he(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0;l=159;s=0;while(1){c=A[r+(l<<1)>>1]|0;c=F(c,c)|0;c=(c|0)==1073741824?2147483647:c<<1;a=c+s|0;if((c^s|0)>-1&(a^s|0)<0){t[f>>2]=1;s=(s>>>31)+2147483647|0}else s=a;if((l|0)>0)l=l+-1|0;else{l=s;break}}f=l>>>14&65535;s=32767;a=59;while(1){c=A[e+(a<<1)>>1]|0;s=c<<16>>16<s<<16>>16?c:s;if((a|0)>0)a=a+-1|0;else break}c=(l|0)>536870911?32767:f;f=s<<16>>16;a=f<<20>>16;l=s<<16>>16>0?32767:-32768;r=55;s=A[e>>1]|0;while(1){u=A[e+(r<<1)>>1]|0;s=s<<16>>16<u<<16>>16?u:s;if((r|0)>1)r=r+-1|0;else break}r=A[e+80>>1]|0;u=A[e+82>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+84>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+86>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+88>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+90>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+92>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+94>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+96>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+98>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+100>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+102>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+104>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+106>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+108>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+110>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+112>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+114>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=A[e+116>>1]|0;r=r<<16>>16<u<<16>>16?u:r;u=e+118|0;h=A[u>>1]|0;do{if((c+-21&65535)<17557&s<<16>>16>20?(c<<16>>16|0)<(((f<<4|0)==(a|0)?a:l)|0)?1:(r<<16>>16<h<<16>>16?h:r)<<16>>16<1953:0){s=e+120|0;a=A[s>>1]|0;if(a<<16>>16>29){A[s>>1]=30;r=s;l=1;break}else{l=(a&65535)+1&65535;A[s>>1]=l;r=s;l=l<<16>>16>1&1;break}}else w=14}while(0);if((w|0)==14){r=e+120|0;A[r>>1]=0;l=0}s=0;do{h=s;s=s+1|0;A[e+(h<<1)>>1]=A[e+(s<<1)>>1]|0}while((s|0)!=59);A[u>>1]=c;s=A[r>>1]|0;s=s<<16>>16>15?16383:s<<16>>16>8?15565:13926;a=mn(i+8|0,5)|0;if((A[r>>1]|0)>20){if(((mn(i,9)|0)<<16>>16|0)>(s|0))w=20}else if((a<<16>>16|0)>(s|0))w=20;if((w|0)==20){A[n>>1]=0;return l|0}a=(o[n>>1]|0)+1&65535;if(a<<16>>16>10){A[n>>1]=10;return l|0}else{A[n>>1]=a;return l|0}}function de(e){e=e|0;var i=0;if(!e){i=-1;return i|0}i=e+18|0;do{A[e>>1]=0;e=e+2|0}while((e|0)<(i|0));i=0;return i|0}function ve(e,i,r,n,f,a,s,l,u,c,w,h){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;u=u|0;c=c|0;w=w|0;h=h|0;var d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;C=e+2|0;A[e>>1]=A[C>>1]|0;y=e+4|0;A[C>>1]=A[y>>1]|0;P=e+6|0;A[y>>1]=A[P>>1]|0;T=e+8|0;A[P>>1]=A[T>>1]|0;p=e+10|0;A[T>>1]=A[p>>1]|0;M=e+12|0;A[p>>1]=A[M>>1]|0;A[M>>1]=r;g=0;Q=0;do{d=f+(Q<<1)|0;B=uA(A[d>>1]|0,A[n+(Q<<1)>>1]|0,h)|0;B=(B&65535)-((B&65535)>>>15&65535)|0;B=B<<16>>31^B;D=((Wn(B&65535)|0)&65535)+65535|0;v=D<<16>>16;if((D&65535)<<16>>16<0){E=0-v<<16;if((E|0)<983040)b=B<<16>>16>>(E>>16)&65535;else b=0}else{E=B<<16>>16;B=E<<v;if((B<<16>>16>>v|0)==(E|0))b=B&65535;else b=(E>>>15^32767)&65535}k=Wn(A[d>>1]|0)|0;B=A[d>>1]|0;v=k<<16>>16;if(k<<16>>16<0){E=0-v<<16;if((E|0)<983040)E=B<<16>>16>>(E>>16)&65535;else E=0}else{E=B<<16>>16;B=E<<v;if((B<<16>>16>>v|0)==(E|0))E=B&65535;else E=(E>>>15^32767)&65535}v=Cn(b,E)|0;E=(D&65535)+2-(k&65535)|0;B=E&65535;do{if(E&32768){if(B<<16>>16!=-32768){D=0-E|0;E=D<<16>>16;if((D&65535)<<16>>16<0){E=0-E<<16;if((E|0)>=983040){E=0;break}E=v<<16>>16>>(E>>16)&65535;break}}else E=32767;B=v<<16>>16;v=B<<E;if((v<<16>>16>>E|0)==(B|0))E=v&65535;else E=(B>>>15^32767)&65535}else E=aA(v,B,h)|0}while(0);g=Dn(g,E,h)|0;Q=Q+1|0}while((Q|0)!=10);E=g&65535;B=g<<16>>16>5325;g=e+14|0;if(B){f=(o[g>>1]|0)+1&65535;A[g>>1]=f;if(f<<16>>16>10)A[e+16>>1]=0}else A[g>>1]=0;switch(i|0){case 0:case 1:case 2:case 3:case 6:break;default:{M=e+16|0;h=r;r=A[M>>1]|0;r=r&65535;r=r+1|0;r=r&65535;A[M>>1]=r;return h|0}}b=(s|a)<<16>>16==0;k=c<<16>>16==0;D=i>>>0<3;g=E+(D&((k|(b&(l<<16>>16==0|u<<16>>16==0)|w<<16>>16<2))^1)?61030:62259)&65535;g=g<<16>>16>0?g:0;if(g<<16>>16<=2048){g=g<<16>>16;if((g<<18>>18|0)==(g|0))u=g<<2;else u=g>>>15^32767}else u=8192;l=e+16|0;w=B|(A[l>>1]|0)<40;g=A[y>>1]|0;if((g*6554|0)==1073741824){t[h>>2]=1;B=2147483647}else B=g*13108|0;g=A[P>>1]|0;E=g*6554|0;if((E|0)!=1073741824){g=(g*13108|0)+B|0;if((E^B|0)>0&(g^B|0)<0){t[h>>2]=1;g=(B>>>31)+2147483647|0}}else{t[h>>2]=1;g=2147483647}E=A[T>>1]|0;B=E*6554|0;if((B|0)!=1073741824){E=(E*13108|0)+g|0;if((B^g|0)>0&(E^g|0)<0){t[h>>2]=1;E=(g>>>31)+2147483647|0}}else{t[h>>2]=1;E=2147483647}g=A[p>>1]|0;B=g*6554|0;if((B|0)!=1073741824){g=(g*13108|0)+E|0;if((B^E|0)>0&(g^E|0)<0){t[h>>2]=1;B=(E>>>31)+2147483647|0}else B=g}else{t[h>>2]=1;B=2147483647}g=A[M>>1]|0;E=g*6554|0;if((E|0)!=1073741824){g=(g*13108|0)+B|0;if((E^B|0)>0&(g^B|0)<0){t[h>>2]=1;g=(B>>>31)+2147483647|0}}else{t[h>>2]=1;g=2147483647}B=oA(g,h)|0;if(D&((b|k)^1)){g=A[e>>1]|0;if((g*4681|0)==1073741824){t[h>>2]=1;B=2147483647}else B=g*9362|0;g=A[C>>1]|0;E=g*4681|0;if((E|0)!=1073741824){g=(g*9362|0)+B|0;if((E^B|0)>0&(g^B|0)<0){t[h>>2]=1;B=(B>>>31)+2147483647|0}else B=g}else{t[h>>2]=1;B=2147483647}g=A[y>>1]|0;E=g*4681|0;if((E|0)!=1073741824){g=(g*9362|0)+B|0;if((E^B|0)>0&(g^B|0)<0){t[h>>2]=1;B=(B>>>31)+2147483647|0}else B=g}else{t[h>>2]=1;B=2147483647}g=A[P>>1]|0;E=g*4681|0;if((E|0)!=1073741824){g=(g*9362|0)+B|0;if((E^B|0)>0&(g^B|0)<0){t[h>>2]=1;g=(B>>>31)+2147483647|0}}else{t[h>>2]=1;g=2147483647}E=A[T>>1]|0;B=E*4681|0;if((B|0)!=1073741824){E=(E*9362|0)+g|0;if((B^g|0)>0&(E^g|0)<0){t[h>>2]=1;g=(g>>>31)+2147483647|0}else g=E}else{t[h>>2]=1;g=2147483647}E=A[p>>1]|0;B=E*4681|0;if((B|0)!=1073741824){E=(E*9362|0)+g|0;if((B^g|0)>0&(E^g|0)<0){t[h>>2]=1;E=(g>>>31)+2147483647|0}}else{t[h>>2]=1;E=2147483647}B=A[M>>1]|0;d=B*4681|0;if((d|0)!=1073741824){v=(B*9362|0)+E|0;if((d^E|0)>0&(v^E|0)<0){t[h>>2]=1;v=(E>>>31)+2147483647|0}}else{t[h>>2]=1;v=2147483647}B=oA(v,h)|0}g=w?8192:u<<16>>16;d=F(g,r<<16>>16)|0;if((d|0)==1073741824){t[h>>2]=1;E=2147483647}else E=d<<1;B=B<<16>>16;v=B<<13;if((v|0)!=1073741824){d=E+(B<<14)|0;if((E^v|0)>0&(d^E|0)<0){t[h>>2]=1;E=(E>>>31)+2147483647|0}else E=d}else{t[h>>2]=1;E=2147483647}d=F(B,g)|0;if((d|0)==1073741824){t[h>>2]=1;v=2147483647}else v=d<<1;d=E-v|0;if(((d^E)&(v^E)|0)<0){t[h>>2]=1;d=(E>>>31)+2147483647|0}M=d<<2;r=l;h=oA((M>>2|0)==(d|0)?M:d>>31^2147483647,h)|0;M=A[r>>1]|0;M=M&65535;M=M+1|0;M=M&65535;A[r>>1]=M;return h|0}function Be(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0;n=i;t=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(t|0));n=0;do{a=A[e+(n<<1)>>1]|0;t=((a&8)<<10&65535^8192)+-4096<<16>>16;f=n<<16;a=((A[r+((a&7)<<1)>>1]|0)*327680|0)+f>>16;A[i+(a<<1)>>1]=t;f=((A[r+((o[e+(n+5<<1)>>1]&7)<<1)>>1]|0)*327680|0)+f>>16;if((f|0)<(a|0))t=0-(t&65535)&65535;a=i+(f<<1)|0;A[a>>1]=(o[a>>1]|0)+(t&65535);n=n+1|0}while((n|0)!=5);return}function Ee(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0;t=i<<16>>16;n=(t<<1&2|1)+((t>>>1&7)*5|0)|0;i=t>>>4&3;i=((t>>>6&7)*5|0)+((i|0)==3?4:i)|0;t=r;f=t+80|0;do{A[t>>1]=0;t=t+2|0}while((t|0)<(f|0));e=e<<16>>16;A[r+(n<<1)>>1]=(0-(e&1)&16383)+57344;A[r+(i<<1)>>1]=(0-(e>>>1&1)&16383)+57344;return}function ge(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var a=0,s=0;f=r<<16>>16;s=f>>>3;e=e<<16>>16;e=((e<<17>>17|0)==(e|0)?e<<1:e>>>15^32767)+(s&8)<<16;s=(o[n+(e+65536>>16<<1)>>1]|0)+((s&7)*5|0)|0;r=i<<16>>16;a=(0-(r&1)&16383)+57344&65535;e=t+((o[n+(e>>16<<1)>>1]|0)+((f&7)*5|0)<<16>>16<<1)|0;i=t;f=i+80|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(f|0));A[e>>1]=a;A[t+(s<<16>>16<<1)>>1]=(0-(r>>>1&1)&16383)+57344;return}function be(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0;i=i<<16>>16;n=(i&7)*5|0;t=(i>>>2&2|1)+((i>>>4&7)*5|0)|0;i=(i>>>6&2)+2+((i>>>8&7)*5|0)|0;f=r;o=f+80|0;do{A[f>>1]=0;f=f+2|0}while((f|0)<(o|0));e=e<<16>>16;A[r+(n<<1)>>1]=(0-(e&1)&16383)+57344;A[r+(t<<1)>>1]=(0-(e>>>1&1)&16383)+57344;A[r+(i<<1)>>1]=(0-(e>>>2&1)&16383)+57344;return}function ke(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0;i=i<<16>>16;o=A[r+((i&7)<<1)>>1]|0;a=A[r+((i>>>3&7)<<1)>>1]|0;f=A[r+((i>>>6&7)<<1)>>1]|0;r=(i>>>9&1)+3+((A[r+((i>>>10&7)<<1)>>1]|0)*5|0)|0;i=n;t=i+80|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(t|0));e=e<<16>>16;A[n+(o*327680>>16<<1)>>1]=(0-(e&1)&16383)+57344;A[n+((a*327680|0)+65536>>16<<1)>>1]=(0-(e>>>1&1)&16383)+57344;A[n+((f*327680|0)+131072>>16<<1)>>1]=(0-(e>>>2&1)&16383)+57344;A[n+(r<<16>>16<<1)>>1]=(0-(e>>>3&1)&16383)+57344;return}function De(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0;v=u;u=u+32|0;d=v+16|0;h=v;a=i;f=a+80|0;do{A[a>>1]=0;a=a+2|0}while((a|0)<(f|0));f=A[e>>1]|0;A[d>>1]=f;A[d+2>>1]=A[e+2>>1]|0;A[d+4>>1]=A[e+4>>1]|0;A[d+6>>1]=A[e+6>>1]|0;c=A[e+8>>1]|0;Qe(c>>>3&65535,c&7,0,4,1,h,r);c=A[e+10>>1]|0;Qe(c>>>3&65535,c&7,2,6,5,h,r);c=A[e+12>>1]|0;n=c>>2;do{if((n*25|0)!=1073741824){a=(F(n,1638400)|0)+786432>>21;n=a*6554>>15;if((n|0)>32767){t[r>>2]=1;s=1;l=1;e=163835;w=6;break}e=(n<<16>>16)*5|0;s=n&1;if((e|0)==1073741824){t[r>>2]=1;l=0;e=65535}else{l=0;w=6}}else{t[r>>2]=1;s=0;n=0;l=0;a=0;e=0;w=6}}while(0);if((w|0)==6)e=e&65535;w=a-e|0;s=s<<16>>16==0?w:4-w|0;w=s<<16>>16;A[h+6>>1]=Dn(((s<<17>>17|0)==(w|0)?s<<1:w>>>15^32767)&65535,c&1,r)|0;if(l){t[r>>2]=1;n=32767}w=n<<16>>16;A[h+14>>1]=((n<<17>>17|0)==(w|0)?n<<1:w>>>15^32767)+(c>>>1&1);n=0;while(1){f=f<<16>>16==0?8191:-8191;w=(A[h+(n<<1)>>1]<<2)+n<<16;a=w>>16;if((w|0)<2621440)A[i+(a<<1)>>1]=f;s=(A[h+(n+4<<1)>>1]<<2)+n<<16;e=s>>16;if((e|0)<(a|0))f=0-(f&65535)&65535;if((s|0)<2621440){w=i+(e<<1)|0;A[w>>1]=(o[w>>1]|0)+(f&65535)}n=n+1|0;if((n|0)==4)break;f=A[d+(n<<1)>>1]|0}u=v;return}function Qe(e,i,r,n,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,h=0,d=0;l=e<<16>>16>124?124:e;e=(l<<16>>16)*1311>>15;d=(e|0)>32767;if(!d){s=e<<16>>16;if((s*25|0)==1073741824){t[a>>2]=1;s=1073741823}else h=4}else{t[a>>2]=1;s=32767;h=4}if((h|0)==4)s=(s*50|0)>>>1;c=(l&65535)-s|0;s=(c<<16>>16)*6554>>15;w=(s|0)>32767;if(!w){l=s<<16>>16;if((l*5|0)==1073741824){t[a>>2]=1;u=1073741823}else h=9}else{t[a>>2]=1;l=32767;h=9}if((h|0)==9)u=(l*10|0)>>>1;c=c-u|0;h=c<<16>>16;l=i<<16>>16;u=l>>2;l=l-(u<<2)|0;A[o+(r<<16>>16<<1)>>1]=((c<<17>>17|0)==(h|0)?c<<1:h>>>15^32767)+(l&1);if(w){t[a>>2]=1;s=32767}r=s<<16>>16;A[o+(n<<16>>16<<1)>>1]=((s<<17>>17|0)==(r|0)?s<<1:r>>>15^32767)+(l<<16>>17);if(d){t[a>>2]=1;e=32767}n=e<<16>>16;A[o+(f<<16>>16<<1)>>1]=Dn(u&65535,((e<<17>>17|0)==(n|0)?e<<1:n>>>15^32767)&65535,a)|0;return}function Ce(e){e=e|0;var i=0,r=0,n=0,f=0;if(!e){f=-1;return f|0}Mn(e+1168|0);A[e+460>>1]=40;t[e+1164>>2]=0;i=e+646|0;r=e+1216|0;n=e+462|0;f=n+22|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(f|0));He(i,t[r>>2]|0)|0;Ye(e+686|0)|0;Le(e+700|0)|0;de(e+608|0)|0;We(e+626|0,t[r>>2]|0)|0;we(e+484|0)|0;qe(e+730|0)|0;Ue(e+748|0)|0;yn(e+714|0)|0;ye(e,0)|0;f=0;return f|0}function ye(e,i){e=e|0;i=i|0;var r=0,n=0;if(!e){e=-1;return e|0}t[e+388>>2]=e+308;kA(e|0,0,308)|0;i=(i|0)!=8;if(i){r=e+412|0;n=r+20|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));A[e+392>>1]=3e4;A[e+394>>1]=26e3;A[e+396>>1]=21e3;A[e+398>>1]=15e3;A[e+400>>1]=8e3;A[e+402>>1]=0;A[e+404>>1]=-8e3;A[e+406>>1]=-15e3;A[e+408>>1]=-21e3;A[e+410>>1]=-26e3}A[e+432>>1]=0;A[e+434>>1]=40;t[e+1164>>2]=0;A[e+436>>1]=0;A[e+438>>1]=0;A[e+440>>1]=0;A[e+460>>1]=40;A[e+462>>1]=0;A[e+464>>1]=0;if(i){r=e+442|0;n=r+18|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));r=e+466|0;n=r+18|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));de(e+608|0)|0;n=e+1216|0;We(e+626|0,t[n>>2]|0)|0;He(e+646|0,t[n>>2]|0)|0;Ye(e+686|0)|0;Le(e+700|0)|0;yn(e+714|0)|0}else{r=e+466|0;n=r+18|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));de(e+608|0)|0;He(e+646|0,t[e+1216>>2]|0)|0;Ye(e+686|0)|0;Le(e+700|0)|0}we(e+484|0)|0;A[e+606>>1]=21845;qe(e+730|0)|0;if(!i){e=0;return e|0}Ue(e+748|0)|0;e=0;return e|0}function Pe(e,i,r,f,a,s){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,ae=0,se=0,le=0,ue=0,we=0,de=0,Qe=0,Ce=0,Pe=0,Re=0,He=0,Ue=0,Le=0,Ye=0,Je=0,We=0,qe=0,ii=0,ri=0,ni=0,Ai=0,ti=0,fi=0,oi=0,ai=0,si=0,li=0,ui=0,ci=0,wi=0,hi=0,di=0,vi=0,Bi=0,Ei=0,gi=0,bi=0,ki=0,Di=0,Qi=0,Ci=0,yi=0,Pi=0,Ti=0;Ti=u;u=u+336|0;B=Ti+236|0;v=Ti+216|0;yi=Ti+112|0;Ci=Ti+12|0;gi=Ti+256|0;ki=Ti+136|0;bi=Ti+32|0;Bi=Ti+8|0;Ei=Ti+6|0;Qi=Ti+4|0;Di=Ti+2|0;Pi=Ti;ci=e+1164|0;wi=e+748|0;hi=_e(wi,f,ci)|0;if(hi){ye(e,8)|0;Ne(wi,e+412|0,e+646|0,e+714|0,e+608|0,hi,i,r,e+1168|0,a,s,ci);Pi=e+666|0;zn(Pi,e+392|0,10,ci);Ve(e+626|0,Pi,ci);Pi=e+1156|0;t[Pi>>2]=hi;u=Ti;return}switch(f|0){case 1:{l=1;Q=6;break}case 2:case 7:{ce(e+606|0,A[(t[e+1256>>2]|0)+(i<<1)>>1]|0,t[(t[e+1260>>2]|0)+(i<<2)>>2]|0,r,t[e+1276>>2]|0,ci);Q=9;break}case 3:{Q=9;break}default:{l=0;Q=6}}do{if((Q|0)==6){f=e+440|0;if((A[f>>1]|0)==6){A[f>>1]=5;li=0;ui=0;break}else{A[f>>1]=0;li=0;ui=0;break}}else if((Q|0)==9){f=e+440|0;li=(o[f>>1]|0)+1&65535;A[f>>1]=li<<16>>16>6?6:li;li=1;ui=1;l=0}}while(0);fi=e+1156|0;switch(t[fi>>2]|0){case 1:{A[f>>1]=5;A[e+436>>1]=0;break}case 2:{A[f>>1]=5;A[e+436>>1]=1;break}default:}w=e+646|0;oi=e+666|0;c=yi;h=oi;d=c+20|0;do{n[c>>0]=n[h>>0]|0;c=c+1|0;h=h+1|0}while((c|0)<(d|0));ai=(i|0)!=7;si=e+1168|0;if(ai){Fe(w,i,ui,r,si,B,ci);c=e+392|0;Rn(c,B,s,ci);r=r+6|0}else{Oe(w,ui,r,si,v,B,ci);c=e+392|0;In(c,v,B,s,ci);r=r+10|0}h=B;d=c+20|0;do{A[c>>1]=A[h>>1]|0;c=c+2|0;h=h+2|0}while((c|0)<(d|0));ti=i>>>0>1;T=i>>>0<4&1;Ai=(i|0)==5;ni=Ai?10:5;Ai=Ai?19:9;m=e+434|0;I=143-Ai&65535;R=e+460|0;O=e+462|0;H=e+464|0;p=i>>>0>2;U=e+388|0;N=(i|0)==0;S=i>>>0<2;_=e+1244|0;L=e+432|0;G=i>>>0<6;X=e+1168|0;x=(i|0)==6;Y=ui<<16>>16==0;z=e+714|0;j=e+686|0;J=e+436|0;K=e+700|0;W=(i|0)==7;V=e+482|0;q=i>>>0<3;Z=e+608|0;$=e+626|0;ee=e+438|0;ie=i>>>0<7;re=e+730|0;M=li^1;ne=l<<16>>16!=0;ri=ne?ui^1:0;Ae=e+442|0;te=e+458|0;fe=e+412|0;ae=e+80|0;se=e+1236|0;le=e+1240|0;ue=e+468|0;we=e+466|0;de=e+470|0;Qe=e+472|0;Ce=e+474|0;Pe=e+476|0;Re=e+478|0;He=e+480|0;Ue=e+444|0;Le=e+446|0;Ye=e+448|0;Je=e+450|0;We=e+452|0;qe=e+454|0;ii=e+456|0;C=0;y=0;E=0;g=0;P=-1;while(1){P=(P<<16>>16)+1|0;d=P&65535;y=1-(y<<16>>16)|0;k=y&65535;v=ti&E<<16>>16==80?0:E;b=r+2|0;B=A[r>>1]|0;e:do{if(ai){D=A[m>>1]|0;c=(D&65535)-ni&65535;c=c<<16>>16<20?20:c;h=(c&65535)+Ai&65535;w=h<<16>>16>143;pe(B,w?I:c,w?143:h,v,D,Bi,Ei,T,ci);v=A[Bi>>1]|0;A[R>>1]=v;if(li){B=A[m>>1]|0;if(B<<16>>16<143){B=(B&65535)+1&65535;A[m>>1]=B}A[Bi>>1]=B;A[Ei>>1]=0;if((A[O>>1]|0)!=0?!(p|(A[H>>1]|0)<5):0){A[Bi>>1]=v;B=v;v=0}else v=0}else{B=v;v=A[Ei>>1]|0}qn(t[U>>2]|0,B,v,40,1,ci);if(S){v=r+6|0;ge(d,A[r+4>>1]|0,A[b>>1]|0,t[_>>2]|0,gi,ci);r=A[L>>1]|0;D=r<<16>>16;B=D<<1;if((B|0)==(D<<17>>16|0)){h=N;break}h=N;B=r<<16>>16>0?32767:-32768;break}switch(i|0){case 2:{v=r+6|0;Ee(A[r+4>>1]|0,A[b>>1]|0,gi);r=A[L>>1]|0;D=r<<16>>16;B=D<<1;if((B|0)==(D<<17>>16|0)){h=N;break e}h=N;B=r<<16>>16>0?32767:-32768;break e}case 3:{v=r+6|0;be(A[r+4>>1]|0,A[b>>1]|0,gi);r=A[L>>1]|0;D=r<<16>>16;B=D<<1;if((B|0)==(D<<17>>16|0)){h=N;break e}h=N;B=r<<16>>16>0?32767:-32768;break e}default:{if(G){v=r+6|0;ke(A[r+4>>1]|0,A[b>>1]|0,t[X>>2]|0,gi);r=A[L>>1]|0;D=r<<16>>16;B=D<<1;if((B|0)==(D<<17>>16|0)){h=N;break e}h=N;B=r<<16>>16>0?32767:-32768;break e}if(!x){h=N;Q=44;break e}De(b,gi,ci);B=r+16|0;r=A[L>>1]|0;D=r<<16>>16;d=D<<1;if((d|0)==(D<<17>>16|0)){v=B;h=N;B=d;break e}v=B;h=N;B=r<<16>>16>0?32767:-32768;break e}}}else{Me(B,18,143,v,Bi,Ei,ci);if(Y?v<<16>>16==0|B<<16>>16<61:0){B=A[Bi>>1]|0;v=A[Ei>>1]|0}else{A[R>>1]=A[Bi>>1]|0;B=A[m>>1]|0;A[Bi>>1]=B;A[Ei>>1]=0;v=0}qn(t[U>>2]|0,B,v,40,0,ci);h=0;Q=44}}while(0);if((Q|0)==44){Q=0;if(li)xe(j,A[f>>1]|0,Qi,ci);else A[Qi>>1]=Ie(i,A[b>>1]|0,t[le>>2]|0)|0;ze(j,ui,A[J>>1]|0,Qi,ci);Be(r+4|0,gi,t[X>>2]|0);B=r+24|0;r=A[Qi>>1]|0;D=r<<16>>16;d=D<<1;if((d|0)==(D<<17>>16|0)){v=B;B=d}else{v=B;B=r<<16>>16>0?32767:-32768}}r=A[Bi>>1]|0;e:do{if(r<<16>>16<40){c=B<<16>>16;w=r;B=r<<16>>16;while(1){d=gi+(B<<1)|0;r=(F(A[gi+(B-(w<<16>>16)<<1)>>1]|0,c)|0)>>15;if((r|0)>32767){t[ci>>2]=1;r=32767}D=r&65535;A[Pi>>1]=D;A[d>>1]=Dn(A[d>>1]|0,D,ci)|0;B=B+1|0;if((B&65535)<<16>>16==40)break e;w=A[Bi>>1]|0}}}while(0);e:do{if(h){h=(y&65535|0)==0;if(h){r=v;d=g}else{r=v+2|0;d=A[v>>1]|0}if(Y)Te(z,i,d,gi,k,Qi,Di,si,ci);else{xe(j,A[f>>1]|0,Qi,ci);Ge(K,z,A[f>>1]|0,Di,ci)}ze(j,ui,A[J>>1]|0,Qi,ci);Xe(K,ui,A[J>>1]|0,Di,ci);v=A[Qi>>1]|0;B=v<<16>>16>13017?13017:v;if(h)Q=80;else D=d}else{r=v+2|0;B=A[v>>1]|0;switch(i|0){case 1:case 2:case 3:case 4:case 6:{if(Y)Te(z,i,B,gi,k,Qi,Di,si,ci);else{xe(j,A[f>>1]|0,Qi,ci);Ge(K,z,A[f>>1]|0,Di,ci)}ze(j,ui,A[J>>1]|0,Qi,ci);Xe(K,ui,A[J>>1]|0,Di,ci);v=A[Qi>>1]|0;B=v<<16>>16>13017?13017:v;if(!x){d=g;Q=80;break e}if((A[m>>1]|0)<=45){d=g;Q=80;break e}d=g;B=B<<16>>16>>>2&65535;Q=80;break e}case 5:{if(li)xe(j,A[f>>1]|0,Qi,ci);else A[Qi>>1]=Ie(5,B,t[le>>2]|0)|0;ze(j,ui,A[J>>1]|0,Qi,ci);if(Y)me(z,5,A[r>>1]|0,gi,t[se>>2]|0,Di,ci);else Ge(K,z,A[f>>1]|0,Di,ci);Xe(K,ui,A[J>>1]|0,Di,ci);B=A[Qi>>1]|0;r=v+4|0;v=B;d=g;B=B<<16>>16>13017?13017:B;Q=80;break e}default:{if(Y)me(z,i,B,gi,t[se>>2]|0,Di,ci);else Ge(K,z,A[f>>1]|0,Di,ci);Xe(K,ui,A[J>>1]|0,Di,ci);B=A[Qi>>1]|0;v=B;d=g;Q=80;break e}}}}while(0);if((Q|0)==80){Q=0;A[L>>1]=v<<16>>16>13017?13017:v;D=d}B=B<<16>>16;B=(B<<17>>17|0)==(B|0)?B<<1:B>>>15^32767;k=(B&65535)<<16>>16>16384;e:do{if(k){b=B<<16>>16;if(W)v=0;else{v=0;while(1){B=(F(A[(t[U>>2]|0)+(v<<1)>>1]|0,b)|0)>>15;if((B|0)>32767){t[ci>>2]=1;B=32767}A[Pi>>1]=B;B=F(A[Qi>>1]|0,B<<16>>16)|0;if((B|0)==1073741824){t[ci>>2]=1;B=2147483647}else B=B<<1;A[ki+(v<<1)>>1]=oA(B,ci)|0;v=v+1|0;if((v|0)==40)break e}}do{B=(F(A[(t[U>>2]|0)+(v<<1)>>1]|0,b)|0)>>15;if((B|0)>32767){t[ci>>2]=1;B=32767}A[Pi>>1]=B;B=F(A[Qi>>1]|0,B<<16>>16)|0;if((B|0)!=1073741824){B=B<<1;if((B|0)<0)B=~((B^-2)>>1);else Q=88}else{t[ci>>2]=1;B=2147483647;Q=88}if((Q|0)==88){Q=0;B=B>>1}A[ki+(v<<1)>>1]=oA(B,ci)|0;v=v+1|0}while((v|0)!=40)}}while(0);if(Y){A[we>>1]=A[ue>>1]|0;A[ue>>1]=A[de>>1]|0;A[de>>1]=A[Qe>>1]|0;A[Qe>>1]=A[Ce>>1]|0;A[Ce>>1]=A[Pe>>1]|0;A[Pe>>1]=A[Re>>1]|0;A[Re>>1]=A[He>>1]|0;A[He>>1]=A[V>>1]|0;A[V>>1]=A[Qi>>1]|0}if((li|(A[J>>1]|0)!=0?q&(A[O>>1]|0)!=0:0)?(di=A[Qi>>1]|0,di<<16>>16>12288):0){Q=(((di<<16>>16)+118784|0)>>>1)+12288&65535;A[Qi>>1]=Q<<16>>16>14745?14745:Q}Ke(yi,oi,E,Ci,ci);B=ve(Z,i,A[Di>>1]|0,Ci,$,ui,A[J>>1]|0,l,A[ee>>1]|0,A[O>>1]|0,A[H>>1]|0,ci)|0;switch(i|0){case 0:case 1:case 2:case 3:case 6:{d=A[Qi>>1]|0;b=1;break}default:{B=A[Di>>1]|0;d=A[Qi>>1]|0;if(ie)b=1;else{v=d<<16>>16;if(d<<16>>16<0)v=~((v^-2)>>1);else v=v>>>1;d=v&65535;b=2}}}c=d<<16>>16;E=b&65535;v=t[U>>2]|0;g=0;do{v=v+(g<<1)|0;A[bi+(g<<1)>>1]=A[v>>1]|0;v=F(A[v>>1]|0,c)|0;if((v|0)==1073741824){t[ci>>2]=1;w=2147483647}else w=v<<1;h=F(A[Di>>1]|0,A[gi+(g<<1)>>1]|0)|0;if((h|0)!=1073741824){v=(h<<1)+w|0;if((h^w|0)>0&(v^w|0)<0){t[ci>>2]=1;v=(w>>>31)+2147483647|0}}else{t[ci>>2]=1;v=2147483647}Q=v<<E;Q=oA((Q>>E|0)==(v|0)?Q:v>>31^2147483647,ci)|0;v=t[U>>2]|0;A[v+(g<<1)>>1]=Q;g=g+1|0}while((g|0)!=40);$e(re);if((q?(A[H>>1]|0)>3:0)?!((A[O>>1]|0)==0|M):0)Ze(re);ei(re,i,bi,B,A[Qi>>1]|0,gi,d,b,si,ci);B=0;h=0;do{v=A[bi+(h<<1)>>1]|0;v=F(v,v)|0;if((v|0)!=1073741824){d=(v<<1)+B|0;if((v^B|0)>0&(d^B|0)<0){t[ci>>2]=1;B=(B>>>31)+2147483647|0}else B=d}else{t[ci>>2]=1;B=2147483647}h=h+1|0}while((h|0)!=40);if((B|0)<0)B=~((B^-2)>>1);else B=B>>1;B=lA(B,Pi,ci)|0;d=((A[Pi>>1]|0)>>>1)+15|0;v=d&65535;d=d<<16>>16;if(v<<16>>16>0)if(v<<16>>16<31){B=B>>d;Q=135}else{B=0;Q=137}else{b=0-d<<16>>16;Q=B<<b;B=(Q>>b|0)==(B|0)?Q:B>>31^2147483647;Q=135}if((Q|0)==135){Q=0;if((B|0)<0)B=~((B^-4)>>2);else Q=137}if((Q|0)==137){Q=0;B=B>>>2}B=B&65535;do{if(q?(vi=A[H>>1]|0,vi<<16>>16>5):0)if(A[O>>1]|0)if((A[f>>1]|0)<4){if(ne){if(!(li|(A[ee>>1]|0)!=0))Q=145}else if(!li)Q=145;if((Q|0)==145?(A[J>>1]|0)==0:0){Q=147;break}je(bi,B,Ae,vi,A[J>>1]|0,ri,ci)|0;Q=147}else Q=147;else Q=151;else Q=147}while(0);do{if((Q|0)==147){Q=0;if(A[O>>1]|0){if(!li?(A[J>>1]|0)==0:0){Q=151;break}if((A[f>>1]|0)>=4)Q=151}else Q=151}}while(0);if((Q|0)==151){Q=0;A[Ae>>1]=A[Ue>>1]|0;A[Ue>>1]=A[Le>>1]|0;A[Le>>1]=A[Ye>>1]|0;A[Ye>>1]=A[Je>>1]|0;A[Je>>1]=A[We>>1]|0;A[We>>1]=A[qe>>1]|0;A[qe>>1]=A[ii>>1]|0;A[ii>>1]=A[te>>1]|0;A[te>>1]=B}if(k){B=0;do{k=ki+(B<<1)|0;A[k>>1]=Dn(A[k>>1]|0,A[bi+(B<<1)>>1]|0,ci)|0;B=B+1|0}while((B|0)!=40);oe(bi,ki,40,ci);t[ci>>2]=0;cA(s,ki,a+(C<<1)|0,40,fe,0)}else{t[ci>>2]=0;cA(s,bi,a+(C<<1)|0,40,fe,0)}if(!(t[ci>>2]|0))bA(fe|0,a+(C+30<<1)|0,20)|0;else{d=193;while(1){v=e+(d<<1)|0;k=A[v>>1]|0;B=k<<16>>16;if(k<<16>>16<0)B=~((B^-4)>>2);else B=B>>>2;A[v>>1]=B;if((d|0)>0)d=d+-1|0;else{d=39;break}}while(1){v=bi+(d<<1)|0;k=A[v>>1]|0;B=k<<16>>16;if(k<<16>>16<0)B=~((B^-4)>>2);else B=B>>>2;A[v>>1]=B;if((d|0)>0)d=d+-1|0;else break}cA(s,bi,a+(C<<1)|0,40,fe,1)}bA(e|0,ae|0,308)|0;A[m>>1]=A[Bi>>1]|0;B=C+40|0;E=B&65535;if(E<<16>>16>=160)break;else{C=B<<16>>16;s=s+22|0;g=D}}A[O>>1]=he(e+484|0,e+466|0,a,H,ci)|0;Se(wi,oi,a,ci);A[J>>1]=ui;A[ee>>1]=l;Ve(e+626|0,oi,ci);Pi=fi;t[Pi>>2]=hi;u=Ti;return}function Te(e,i,r,n,f,a,s,l,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;var w=0,h=0,d=0,v=0,B=0;B=u;u=u+16|0;d=B+2|0;v=B;r=r<<16>>16;r=(r<<18>>18|0)==(r|0)?r<<2:r>>>15^32767;switch(i|0){case 3:case 4:case 6:{h=r<<16>>16;r=t[l+84>>2]|0;A[a>>1]=A[r+(h<<1)>>1]|0;l=A[r+(h+1<<1)>>1]|0;w=A[r+(h+3<<1)>>1]|0;a=A[r+(h+2<<1)>>1]|0;break}case 0:{l=(r&65535)+(f<<16>>16<<1^2)|0;l=(l&65535)<<16>>16>1022?1022:l<<16>>16;A[a>>1]=A[782+(l<<1)>>1]|0;a=A[782+(l+1<<1)>>1]|0;Un(a<<16>>16,v,d,c);A[v>>1]=(o[v>>1]|0)+65524;l=sA(A[d>>1]|0,5,c)|0;h=A[v>>1]|0;h=Dn(l,((h<<26>>26|0)==(h|0)?h<<10:h>>>15^32767)&65535,c)|0;l=A[d>>1]|0;r=A[v>>1]|0;if((r*24660|0)==1073741824){t[c>>2]=1;f=2147483647}else f=r*49320|0;w=(l<<16>>16)*24660>>15;r=f+(w<<1)|0;if((f^w|0)>0&(r^f|0)<0){t[c>>2]=1;r=(f>>>31)+2147483647|0}w=r<<13;l=a;w=oA((w>>13|0)==(r|0)?w:r>>31^2147483647,c)|0;a=h;break}default:{h=r<<16>>16;r=t[l+80>>2]|0;A[a>>1]=A[r+(h<<1)>>1]|0;l=A[r+(h+1<<1)>>1]|0;w=A[r+(h+3<<1)>>1]|0;a=A[r+(h+2<<1)>>1]|0}}Pn(e,i,n,v,d,0,0,c);f=F((Vn(14,A[d>>1]|0,c)|0)<<16>>16,l<<16>>16)|0;if((f|0)==1073741824){t[c>>2]=1;r=2147483647}else r=f<<1;l=10-(o[v>>1]|0)|0;f=l&65535;l=l<<16>>16;if(f<<16>>16>0){v=f<<16>>16<31?r>>l:0;v=v>>>16;v=v&65535;A[s>>1]=v;Tn(e,a,w);u=B;return}else{c=0-l<<16>>16;v=r<<c;v=(v>>c|0)==(r|0)?v:r>>31^2147483647;v=v>>>16;v=v&65535;A[s>>1]=v;Tn(e,a,w);u=B;return}}function pe(e,i,r,n,f,o,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;if(!(n<<16>>16)){s=e<<16>>16;if(e<<16>>16>=197){A[o>>1]=s+65424;A[a>>1]=0;return}f=((s<<16)+131072>>16)*10923>>15;if((f|0)>32767){t[l>>2]=1;f=32767}e=(f&65535)+19|0;A[o>>1]=e;A[a>>1]=s+58-((e*196608|0)>>>16);return}if(!(s<<16>>16)){l=e<<16>>16<<16;e=((l+131072>>16)*21846|0)+-65536>>16;A[o>>1]=e+(i&65535);A[a>>1]=((l+-131072|0)>>>16)-((e*196608|0)>>>16);return}if((uA(f,i,l)|0)<<16>>16>5)f=(i&65535)+5&65535;s=r<<16>>16;s=(s-(f&65535)&65535)<<16>>16>4?s+65532&65535:f;f=e<<16>>16;if(e<<16>>16<4){A[o>>1]=((((s&65535)<<16)+-327680|0)>>>16)+f;A[a>>1]=0;return}f=f<<16;if(e<<16>>16<12){l=(((f+-327680>>16)*10923|0)>>>15<<16)+-65536|0;e=l>>16;A[o>>1]=(s&65535)+e;A[a>>1]=((f+-589824|0)>>>16)-(l>>>15)-e;return}else{A[o>>1]=((f+-786432+((s&65535)<<16)|0)>>>16)+1;A[a>>1]=0;return}}function Me(e,i,r,n,t,f,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;if(n<<16>>16){a=(o[t>>1]|0)+65531|0;a=(a<<16>>16|0)<(i<<16>>16|0)?i:a&65535;r=r<<16>>16;i=e<<16>>16<<16;e=((i+327680>>16)*10924|0)+-65536>>16;A[t>>1]=(((((a&65535)<<16)+589824>>16|0)>(r|0)?r+65527&65535:a)&65535)+e;A[f>>1]=((i+-196608|0)>>>16)-((e*393216|0)>>>16);return}n=e<<16>>16;if(e<<16>>16<463){e=((((n<<16)+327680>>16)*10924|0)>>>16)+17|0;A[t>>1]=e;A[f>>1]=n+105-((e*393216|0)>>>16);return}else{A[t>>1]=n+65168;A[f>>1]=0;return}}function me(e,i,r,n,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,c=0,w=0;w=u;u=u+16|0;l=w+6|0;s=w+4|0;Pn(e,i,n,l,s,w+2|0,w,a);c=(r&31)*3|0;n=f+(c<<1)|0;if(!((uA(i&65535,7,a)|0)<<16>>16)){l=Vn(A[l>>1]|0,A[s>>1]|0,a)|0;s=l<<16>>16;s=(F(((l<<20>>20|0)==(s|0)?l<<4:s>>>15^32767)<<16>>16,A[n>>1]|0)|0)>>15;if((s|0)>32767){t[a>>2]=1;s=32767}n=s<<16;r=n>>16;if((s<<17>>17|0)==(r|0))s=n>>15;else s=r>>>15^32767}else{r=Vn(14,A[s>>1]|0,a)|0;r=F(r<<16>>16,A[n>>1]|0)|0;if((r|0)==1073741824){t[a>>2]=1;n=2147483647}else n=r<<1;r=uA(9,A[l>>1]|0,a)|0;s=r<<16>>16;if(r<<16>>16>0)s=r<<16>>16<31?n>>s:0;else{a=0-s<<16>>16;s=n<<a;s=(s>>a|0)==(n|0)?s:n>>31^2147483647}s=s>>>16}A[o>>1]=s;Tn(e,A[f+(c+1<<1)>>1]|0,A[f+(c+2<<1)>>1]|0);u=w;return}function Ie(e,i,r){e=e|0;i=i|0;r=r|0;i=A[r+(i<<16>>16<<1)>>1]|0;if((e|0)!=7){e=i;return e|0}e=i&65532;return e|0}function Fe(e,i,r,f,o,a,s){e=e|0;i=i|0;r=r|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0;k=u;u=u+48|0;B=k+20|0;b=k;g=t[o+44>>2]|0;E=t[o+64>>2]|0;l=t[o+4>>2]|0;v=t[o+12>>2]|0;w=t[o+20>>2]|0;c=t[o+56>>2]|0;if(!(r<<16>>16)){h=i>>>0<2;if(h){r=765;d=508;w=t[o+52>>2]|0}else{o=(i|0)==5;r=o?1533:765;d=2044;l=o?c:l}c=A[f>>1]|0;r=((c*196608>>16|0)>(r&65535|0)?r:c*3&65535)<<16>>16;c=A[l+(r<<1)>>1]|0;A[B>>1]=c;A[B+2>>1]=A[l+(r+1<<1)>>1]|0;A[B+4>>1]=A[l+(r+2<<1)>>1]|0;r=A[f+2>>1]|0;if(h)r=r<<16>>16<<1&65535;h=(r<<16>>16)*196608|0;h=(h|0)>100466688?1533:h>>16;A[B+6>>1]=A[v+(h<<1)>>1]|0;A[B+8>>1]=A[v+(h+1<<1)>>1]|0;A[B+10>>1]=A[v+(h+2<<1)>>1]|0;f=A[f+4>>1]|0;f=((f<<18>>16|0)>(d&65535|0)?d:f<<2&65535)<<16>>16;A[B+12>>1]=A[w+(f<<1)>>1]|0;A[B+14>>1]=A[w+((f|1)<<1)>>1]|0;A[B+16>>1]=A[w+((f|2)<<1)>>1]|0;A[B+18>>1]=A[w+((f|3)<<1)>>1]|0;if((i|0)==8){r=0;while(1){E=e+(r<<1)|0;A[b+(r<<1)>>1]=Dn(c,Dn(A[g+(r<<1)>>1]|0,A[E>>1]|0,s)|0,s)|0;A[E>>1]=c;r=r+1|0;if((r|0)==10)break;c=A[B+(r<<1)>>1]|0}tA(b,205,10,s);l=e+20|0;c=b;r=l+20|0;do{n[l>>0]=n[c>>0]|0;l=l+1|0;c=c+1|0}while((l|0)<(r|0));zn(b,a,10,s);u=k;return}else l=0;do{c=e+(l<<1)|0;r=(F(A[E+(l<<1)>>1]|0,A[c>>1]|0)|0)>>15;if((r|0)>32767){t[s>>2]=1;r=32767}f=Dn(A[g+(l<<1)>>1]|0,r&65535,s)|0;i=A[B+(l<<1)>>1]|0;A[b+(l<<1)>>1]=Dn(i,f,s)|0;A[c>>1]=i;l=l+1|0}while((l|0)!=10);tA(b,205,10,s);l=e+20|0;c=b;r=l+20|0;do{n[l>>0]=n[c>>0]|0;l=l+1|0;c=c+1|0}while((l|0)<(r|0));zn(b,a,10,s);u=k;return}else{l=0;do{r=(A[e+20+(l<<1)>>1]|0)*29491>>15;if((r|0)>32767){t[s>>2]=1;r=32767}c=(A[g+(l<<1)>>1]|0)*3277>>15;if((c|0)>32767){t[s>>2]=1;c=32767}A[b+(l<<1)>>1]=Dn(c&65535,r&65535,s)|0;l=l+1|0}while((l|0)!=10);if((i|0)==8){l=0;do{E=e+(l<<1)|0;B=Dn(A[g+(l<<1)>>1]|0,A[E>>1]|0,s)|0;A[E>>1]=uA(A[b+(l<<1)>>1]|0,B,s)|0;l=l+1|0}while((l|0)!=10);tA(b,205,10,s);l=e+20|0;c=b;r=l+20|0;do{n[l>>0]=n[c>>0]|0;l=l+1|0;c=c+1|0}while((l|0)<(r|0));zn(b,a,10,s);u=k;return}else l=0;do{c=e+(l<<1)|0;r=(F(A[E+(l<<1)>>1]|0,A[c>>1]|0)|0)>>15;if((r|0)>32767){t[s>>2]=1;r=32767}B=Dn(A[g+(l<<1)>>1]|0,r&65535,s)|0;A[c>>1]=uA(A[b+(l<<1)>>1]|0,B,s)|0;l=l+1|0}while((l|0)!=10);tA(b,205,10,s);l=e+20|0;c=b;r=l+20|0;do{n[l>>0]=n[c>>0]|0;l=l+1|0;c=c+1|0}while((l|0)<(r|0));zn(b,a,10,s);u=k;return}}function Re(e,i,r){e=e|0;i=i|0;r=r|0;bA(e|0,r+((i<<16>>16)*10<<1)|0,20)|0;return}function Oe(e,i,r,f,o,a,s){e=e|0;i=i|0;r=r|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0;k=u;u=u+80|0;v=k+60|0;B=k+40|0;g=k+20|0;b=k;E=t[f+48>>2]|0;w=t[f+24>>2]|0;h=t[f+28>>2]|0;d=t[f+32>>2]|0;if(i<<16>>16){l=0;do{v=E+(l<<1)|0;r=Dn(((A[v>>1]|0)*1639|0)>>>15&65535,((A[e+20+(l<<1)>>1]|0)*31128|0)>>>15&65535,s)|0;A[g+(l<<1)>>1]=r;A[b+(l<<1)>>1]=r;B=e+(l<<1)|0;A[B>>1]=uA(r,Dn(A[v>>1]|0,((A[B>>1]|0)*21299|0)>>>15&65535,s)|0,s)|0;l=l+1|0}while((l|0)!=10);tA(g,205,10,s);tA(b,205,10,s);l=e+20|0;f=b;i=l+20|0;do{n[l>>0]=n[f>>0]|0;l=l+1|0;f=f+1|0}while((l|0)<(i|0));zn(g,o,10,s);zn(b,a,10,s);u=k;return}i=t[f+16>>2]|0;f=t[f+8>>2]|0;c=A[r>>1]|0;c=((c<<18>>18|0)==(c|0)?c<<2:c>>>15^32767)<<16>>16;A[v>>1]=A[f+(c<<1)>>1]|0;A[v+2>>1]=A[f+(c+1<<1)>>1]|0;A[B>>1]=A[f+(c+2<<1)>>1]|0;A[B+2>>1]=A[f+(c+3<<1)>>1]|0;c=A[r+2>>1]|0;c=((c<<18>>18|0)==(c|0)?c<<2:c>>>15^32767)<<16>>16;A[v+4>>1]=A[i+(c<<1)>>1]|0;A[v+6>>1]=A[i+(c+1<<1)>>1]|0;A[B+4>>1]=A[i+(c+2<<1)>>1]|0;A[B+6>>1]=A[i+(c+3<<1)>>1]|0;c=A[r+4>>1]|0;f=c<<16>>16;if(c<<16>>16<0)i=~((f^-2)>>1);else i=f>>>1;c=i<<16>>16;c=((i<<18>>18|0)==(c|0)?i<<2:c>>>15^32767)<<16>>16;l=w+(c+1<<1)|0;i=A[w+(c<<1)>>1]|0;if(!(f&1)){A[v+8>>1]=i;A[v+10>>1]=A[l>>1]|0;A[B+8>>1]=A[w+(c+2<<1)>>1]|0;A[B+10>>1]=A[w+(c+3<<1)>>1]|0}else{if(i<<16>>16==-32768)i=32767;else i=0-(i&65535)&65535;A[v+8>>1]=i;i=A[l>>1]|0;if(i<<16>>16==-32768)i=32767;else i=0-(i&65535)&65535;A[v+10>>1]=i;i=A[w+(c+2<<1)>>1]|0;if(i<<16>>16==-32768)i=32767;else i=0-(i&65535)&65535;A[B+8>>1]=i;i=A[w+(c+3<<1)>>1]|0;if(i<<16>>16==-32768)i=32767;else i=0-(i&65535)&65535;A[B+10>>1]=i}l=A[r+6>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;A[v+12>>1]=A[h+(l<<1)>>1]|0;A[v+14>>1]=A[h+(l+1<<1)>>1]|0;A[B+12>>1]=A[h+(l+2<<1)>>1]|0;A[B+14>>1]=A[h+(l+3<<1)>>1]|0;l=A[r+8>>1]|0;l=((l<<18>>18|0)==(l|0)?l<<2:l>>>15^32767)<<16>>16;A[v+16>>1]=A[d+(l<<1)>>1]|0;A[v+18>>1]=A[d+(l+1<<1)>>1]|0;A[B+16>>1]=A[d+(l+2<<1)>>1]|0;A[B+18>>1]=A[d+(l+3<<1)>>1]|0;l=0;do{f=e+(l<<1)|0;i=(A[f>>1]|0)*21299>>15;if((i|0)>32767){t[s>>2]=1;i=32767}d=Dn(A[E+(l<<1)>>1]|0,i&65535,s)|0;A[g+(l<<1)>>1]=Dn(A[v+(l<<1)>>1]|0,d,s)|0;r=A[B+(l<<1)>>1]|0;A[b+(l<<1)>>1]=Dn(r,d,s)|0;A[f>>1]=r;l=l+1|0}while((l|0)!=10);tA(g,205,10,s);tA(b,205,10,s);l=e+20|0;f=b;i=l+20|0;do{n[l>>0]=n[f>>0]|0;l=l+1|0;f=f+1|0}while((l|0)<(i|0));zn(g,o,10,s);zn(b,a,10,s);u=k;return}function He(e,i){e=e|0;i=i|0;var r=0,n=0;if(!e){n=-1;return n|0}r=e;n=r+20|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));bA(e+20|0,i|0,20)|0;n=0;return n|0}function Ue(e){e=e|0;var i=0,r=0,f=0,o=0,a=0;if(!e){a=-1;return a|0}A[e>>1]=0;A[e+2>>1]=8192;i=e+4|0;A[i>>1]=3500;A[e+6>>1]=3500;t[e+8>>2]=1887529304;A[e+12>>1]=3e4;A[e+14>>1]=26e3;A[e+16>>1]=21e3;A[e+18>>1]=15e3;A[e+20>>1]=8e3;A[e+22>>1]=0;A[e+24>>1]=-8e3;A[e+26>>1]=-15e3;A[e+28>>1]=-21e3;A[e+30>>1]=-26e3;A[e+32>>1]=3e4;A[e+34>>1]=26e3;A[e+36>>1]=21e3;A[e+38>>1]=15e3;A[e+40>>1]=8e3;A[e+42>>1]=0;A[e+44>>1]=-8e3;A[e+46>>1]=-15e3;A[e+48>>1]=-21e3;A[e+50>>1]=-26e3;A[e+212>>1]=0;A[e+374>>1]=0;A[e+392>>1]=0;r=e+52|0;A[r>>1]=1384;A[e+54>>1]=2077;A[e+56>>1]=3420;A[e+58>>1]=5108;A[e+60>>1]=6742;A[e+62>>1]=8122;A[e+64>>1]=9863;A[e+66>>1]=11092;A[e+68>>1]=12714;A[e+70>>1]=13701;f=e+72|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+92|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+112|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+132|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+152|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+172|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));f=e+192|0;o=r;a=f+20|0;do{n[f>>0]=n[o>>0]|0;f=f+1|0;o=o+1|0}while((f|0)<(a|0));kA(e+214|0,0,160)|0;A[e+376>>1]=3500;A[e+378>>1]=3500;a=A[i>>1]|0;A[e+380>>1]=a;A[e+382>>1]=a;A[e+384>>1]=a;A[e+386>>1]=a;A[e+388>>1]=a;A[e+390>>1]=a;A[e+394>>1]=0;A[e+396>>1]=7;A[e+398>>1]=32767;A[e+400>>1]=0;A[e+402>>1]=0;A[e+404>>1]=0;t[e+408>>2]=1;A[e+412>>1]=0;a=0;return a|0}function Ne(e,i,r,f,a,s,l,c,w,h,d,v){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;var B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0;Z=u;u=u+304|0;x=Z+192|0;L=Z+168|0;z=Z+148|0;W=Z+216|0;j=Z+146|0;J=Z+144|0;G=Z+124|0;X=Z+104|0;Y=Z+84|0;K=Z+60|0;S=Z+40|0;N=Z;q=e+404|0;V=e+400|0;if((A[q>>1]|0)!=0?(A[V>>1]|0)!=0:0){U=e+394|0;A[U>>1]=A[636+(l<<1)>>1]|0;y=A[e+212>>1]|0;C=y+10|0;bA(e+52+(((C&65535|0)==80?0:C<<16>>16)<<1)|0,e+52+(y<<1)|0,20)|0;y=A[e+392>>1]|0;C=y+1|0;A[e+376+(((C&65535|0)==8?0:C<<16>>16)<<1)>>1]=A[e+376+(y<<1)>>1]|0;C=e+4|0;A[C>>1]=0;y=N+36|0;P=N+32|0;T=N+28|0;p=N+24|0;M=N+20|0;m=N+16|0;I=N+12|0;R=N+8|0;O=N+4|0;H=e+52|0;g=N;_=g+40|0;do{t[g>>2]=0;g=g+4|0}while((g|0)<(_|0));E=0;B=7;while(1){_=A[e+376+(B<<1)>>1]|0;Q=_<<16>>16;if(_<<16>>16<0)Q=~((Q^-8)>>3);else Q=Q>>>3;E=Dn(E,Q&65535,v)|0;A[C>>1]=E;k=B*10|0;g=9;while(1){b=N+(g<<2)|0;D=t[b>>2]|0;_=A[e+52+(g+k<<1)>>1]|0;Q=_+D|0;if((_^D|0)>-1&(Q^D|0)<0){t[v>>2]=1;Q=(D>>>31)+2147483647|0}t[b>>2]=Q;if((g|0)>0)g=g+-1|0;else break}if((B|0)<=0)break;else B=B+-1|0}A[S+18>>1]=(t[y>>2]|0)>>>3;A[S+16>>1]=(t[P>>2]|0)>>>3;A[S+14>>1]=(t[T>>2]|0)>>>3;A[S+12>>1]=(t[p>>2]|0)>>>3;A[S+10>>1]=(t[M>>2]|0)>>>3;A[S+8>>1]=(t[m>>2]|0)>>>3;A[S+6>>1]=(t[I>>2]|0)>>>3;A[S+4>>1]=(t[R>>2]|0)>>>3;A[S+2>>1]=(t[O>>2]|0)>>>3;A[S>>1]=(t[N>>2]|0)>>>3;zn(S,e+12|0,10,v);A[C>>1]=uA(A[C>>1]|0,A[U>>1]|0,v)|0;gA(e+214|0,H|0,160)|0;S=9;while(1){_=A[e+214+(S+70<<1)>>1]|0;b=_<<16>>16;N=A[e+214+(S+60<<1)>>1]|0;g=(N<<16>>16)+b|0;if((N^_)<<16>>16>-1&(g^b|0)<0){t[v>>2]=1;g=(b>>>31)+2147483647|0}_=A[e+214+(S+50<<1)>>1]|0;b=_+g|0;if((_^g|0)>-1&(b^g|0)<0){t[v>>2]=1;b=(g>>>31)+2147483647|0}_=A[e+214+(S+40<<1)>>1]|0;g=_+b|0;if((_^b|0)>-1&(g^b|0)<0){t[v>>2]=1;g=(b>>>31)+2147483647|0}_=A[e+214+(S+30<<1)>>1]|0;b=_+g|0;if((_^g|0)>-1&(b^g|0)<0){t[v>>2]=1;b=(g>>>31)+2147483647|0}_=A[e+214+(S+20<<1)>>1]|0;g=_+b|0;if((_^b|0)>-1&(g^b|0)<0){t[v>>2]=1;g=(b>>>31)+2147483647|0}_=A[e+214+(S+10<<1)>>1]|0;b=_+g|0;if((_^g|0)>-1&(b^g|0)<0){t[v>>2]=1;g=(g>>>31)+2147483647|0}else g=b;_=A[e+214+(S<<1)>>1]|0;b=_+g|0;if((_^g|0)>-1&(b^g|0)<0){t[v>>2]=1;b=(g>>>31)+2147483647|0}if((b|0)<0)b=~((b^-8)>>3);else b=b>>>3;Q=b&65535;k=A[654+(S<<1)>>1]|0;D=7;while(1){B=e+214+((D*10|0)+S<<1)|0;b=uA(A[B>>1]|0,Q,v)|0;A[B>>1]=b;b=(F(k,b<<16>>16)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[B>>1]=b;E=(b&65535)-(b>>>15&1)|0;E=E<<16>>31^E;g=E&65535;if(g<<16>>16>655)g=(((E<<16>>16)+261489|0)>>>2)+655&65535;g=g<<16>>16>1310?1310:g;if(!(b&32768))b=g;else b=0-(g&65535)&65535;A[B>>1]=b;if((D|0)>0)D=D+-1|0;else break}if((S|0)>0)S=S+-1|0;else break}}if(A[V>>1]|0){Q=e+32|0;D=e+12|0;g=Q;k=D;_=g+20|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));k=e+4|0;E=A[k>>1]|0;B=e+6|0;A[B>>1]=E;do{if(A[e+402>>1]|0){g=A[e>>1]|0;A[e>>1]=0;g=g<<16>>16<32?g:32;_=g<<16>>16;b=_<<10;if((b|0)!=(_<<26>>16|0)){t[v>>2]=1;b=g<<16>>16>0?32767:-32768}if(g<<16>>16>1)b=Cn(1024,b&65535)|0;else b=16384;A[e+2>>1]=b;Re(r,A[c>>1]|0,t[w+60>>2]|0);Fe(r,8,0,c+2|0,w,D,v);g=r;_=g+20|0;do{n[g>>0]=0;g=g+1|0}while((g|0)<(_|0));E=A[c+8>>1]|0;E=E<<16>>16==0?-32768:((E+64&65535)>127?E<<16>>16>0?32767:32768:E<<16>>16<<9)+60416&65535;A[k>>1]=E;if((A[e+412>>1]|0)!=0?(t[e+408>>2]|0)!=0:0)break;g=Q;k=D;_=g+20|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));A[B>>1]=E}}while(0);g=E<<16>>16;if(E<<16>>16<0)g=~((g^-2)>>1);else g=g>>>1;g=g+56536|0;b=g<<16;if((b|0)>0)g=0;else g=(b|0)<-946077696?-14436:g&65535;A[f>>1]=g;A[f+2>>1]=g;A[f+4>>1]=g;A[f+6>>1]=g;c=((g<<16>>16)*5443|0)>>>15&65535;A[f+8>>1]=c;A[f+10>>1]=c;A[f+12>>1]=c;A[f+14>>1]=c}g=((A[636+(l<<1)>>1]|0)*104864|0)>>>15<<16;if((g|0)<0)g=~((g>>16^-32)>>5);else g=g>>21;l=e+394|0;A[l>>1]=Dn(((A[l>>1]|0)*29491|0)>>>15&65535,g&65535,v)|0;f=(o[e>>1]<<16)+65536|0;g=f>>16;w=e+2|0;g=(F(((f<<10>>26|0)==(g|0)?f>>>6:g>>>15^32767)<<16>>16,A[w>>1]|0)|0)>>15;if((g|0)>32767){t[v>>2]=1;g=32767}E=g&65535;if(E<<16>>16<=1024)if(E<<16>>16<-2048)D=-32768;else D=g<<4&65535;else D=16384;c=e+4|0;Q=D<<16>>16;b=F(A[c>>1]|0,Q)|0;if((b|0)==1073741824){t[v>>2]=1;S=2147483647}else S=b<<1;b=(F(A[e+30>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}C=b&65535;A[x+18>>1]=C;b=(F(A[e+28>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+16>>1]=b;b=(F(A[e+26>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+14>>1]=b;b=(F(A[e+24>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+12>>1]=b;b=(F(A[e+22>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+10>>1]=b;b=(F(A[e+20>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+8>>1]=b;b=(F(A[e+18>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+6>>1]=b;b=(F(A[e+16>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+4>>1]=b;b=(F(A[e+14>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x+2>>1]=b;b=(F(A[e+12>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[x>>1]=b;f=e+6|0;Q=16384-(D&65535)<<16>>16;b=F(A[f>>1]|0,Q)|0;if((b|0)!=1073741824){g=(b<<1)+S|0;if((b^S|0)>0&(g^S|0)<0){t[v>>2]=1;N=(S>>>31)+2147483647|0}else N=g}else{t[v>>2]=1;N=2147483647}g=C;k=9;while(1){E=x+(k<<1)|0;b=(F(A[e+32+(k<<1)>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}g=Dn(g,b&65535,v)|0;A[E>>1]=g;_=g<<16>>16;b=_<<1;if((b|0)!=(_<<17>>16|0)){t[v>>2]=1;b=g<<16>>16>0?32767:-32768}A[E>>1]=b;b=k+-1|0;if((k|0)<=0)break;g=A[x+(b<<1)>>1]|0;k=b}S=e+374|0;b=((o[S>>1]<<16)+-161021952>>16)*9830>>15;if((b|0)>32767){t[v>>2]=1;b=32767}b=4096-(b&65535)|0;g=b<<16;if((g|0)>268369920)Q=32767;else Q=(g|0)<0?0:b<<19>>16;U=e+8|0;b=le(U,3)|0;jn(x,G,10,v);g=X;k=G;_=g+20|0;do{A[g>>1]=A[k>>1]|0;g=g+2|0;k=k+2|0}while((g|0)<(_|0));g=(b<<16>>16)*10|0;k=9;while(1){E=X+(k<<1)|0;B=A[E>>1]|0;b=(F(A[e+214+(k+g<<1)>>1]|0,Q)|0)>>15;if((b|0)>32767){t[v>>2]=1;b=32767}A[E>>1]=Dn(B,b&65535,v)|0;if((k|0)>0)k=k+-1|0;else break}tA(G,205,10,v);tA(X,205,10,v);g=r+20|0;k=G;_=g+20|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));zn(G,x,10,v);zn(X,Y,10,v);Ln(x,L,v);Ln(Y,K,v);g=d;k=L;_=g+22|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));g=d+22|0;k=L;_=g+22|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));g=d+44|0;k=L;_=g+22|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));g=d+66|0;k=L;_=g+22|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));se(L+2|0,z,v);b=0;g=32767;do{E=A[z+(b<<1)>>1]|0;E=F(E,E)|0;if(E>>>0<1073741824)E=32767-(E>>>15)|0;else{t[v>>2]=1;E=0}g=(F(E<<16>>16,g<<16>>16)|0)>>15;if((g|0)>32767){t[v>>2]=1;g=32767}b=b+1|0}while((b|0)!=10);Un(g<<16>>16,j,J,v);g=(o[j>>1]<<16)+-983040|0;E=g>>16;E=aA(uA(0,Dn(((g<<12>>28|0)==(E|0)?g>>>4:E>>>15^32767)&65535,aA(A[J>>1]|0,3,v)|0,v)|0,v)|0,1,v)|0;g=(A[S>>1]|0)*29491>>15;if((g|0)>32767){t[v>>2]=1;g=32767}b=E<<16>>16;E=b*3277>>15;if((E|0)>32767){t[v>>2]=1;E=32767}A[S>>1]=Dn(g&65535,E&65535,v)|0;E=N>>10;B=E+262144|0;if((E|0)>-1&(B^E|0)<0){t[v>>2]=1;B=(E>>>31)+2147483647|0}J=b<<4;E=B-J|0;if(((E^B)&(B^J)|0)<0){t[v>>2]=1;B=(B>>>31)+2147483647|0}else B=E;J=A[l>>1]<<5;E=J+B|0;if((J^B|0)>-1&(E^B|0)<0){t[v>>2]=1;E=(B>>>31)+2147483647|0}b=(Vn(E>>>16&65535,E>>>1&32767,v)|0)<<16>>16;ue(U,W,v);B=39;while(1){g=W+(B<<1)|0;E=(F(A[g>>1]|0,b)|0)>>15;if((E|0)>32767){t[v>>2]=1;E=32767}A[g>>1]=E;if((B|0)>0)B=B+-1|0;else break}cA(K,W,h,40,i,1);ue(U,W,v);B=39;while(1){g=W+(B<<1)|0;E=(F(A[g>>1]|0,b)|0)>>15;if((E|0)>32767){t[v>>2]=1;E=32767}A[g>>1]=E;if((B|0)>0)B=B+-1|0;else break}cA(K,W,h+80|0,40,i,1);ue(U,W,v);B=39;while(1){g=W+(B<<1)|0;E=(F(A[g>>1]|0,b)|0)>>15;if((E|0)>32767){t[v>>2]=1;E=32767}A[g>>1]=E;if((B|0)>0)B=B+-1|0;else break}cA(K,W,h+160|0,40,i,1);ue(U,W,v);g=39;while(1){B=W+(g<<1)|0;E=(F(A[B>>1]|0,b)|0)>>15;if((E|0)>32767){t[v>>2]=1;E=32767}A[B>>1]=E;if((g|0)>0)g=g+-1|0;else break}cA(K,W,h+240|0,40,i,1);A[a+14>>1]=20;A[a+16>>1]=0;if((s|0)==2){E=A[e>>1]|0;E=E<<16>>16>32?32:E<<16>>16<1?8:E;h=E<<16>>16;B=h<<10;if((B|0)!=(h<<26>>16|0)){t[v>>2]=1;B=E<<16>>16>0?32767:-32768}A[w>>1]=Cn(1024,B&65535)|0;A[e>>1]=0;g=e+32|0;k=e+12|0;_=g+20|0;do{n[g>>0]=n[k>>0]|0;g=g+1|0;k=k+1|0}while((g|0)<(_|0));v=A[c>>1]|0;A[f>>1]=v;A[c>>1]=(v&65535)+65280}if(!(A[V>>1]|0)){u=Z;return}do{if(!(A[e+402>>1]|0)){if(A[q>>1]|0)break;u=Z;return}}while(0);A[e>>1]=0;A[e+412>>1]=1;u=Z;return}function Se(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,a=0,s=0,l=0,c=0,w=0;c=u;u=u+16|0;s=c+2|0;l=c;A[l>>1]=0;a=e+212|0;f=(o[a>>1]|0)+10|0;f=(f&65535|0)==80?0:f&65535;A[a>>1]=f;bA(e+52+(f<<16>>16<<1)|0,i|0,20)|0;f=0;a=159;while(1){w=A[r+(a<<1)>>1]|0;w=F(w,w)|0;w=(w|0)==1073741824?2147483647:w<<1;i=w+f|0;if((w^f|0)>-1&(i^f|0)<0){t[n>>2]=1;f=(f>>>31)+2147483647|0}else f=i;if((a|0)>0)a=a+-1|0;else break}Un(f,s,l,n);f=A[s>>1]|0;w=f<<16>>16;i=w<<10;if((i|0)!=(w<<26>>16|0)){t[n>>2]=1;i=f<<16>>16>0?32767:-32768}A[s>>1]=i;w=A[l>>1]|0;f=w<<16>>16;if(w<<16>>16<0)f=~((f^-32)>>5);else f=f>>>5;l=e+392|0;w=(o[l>>1]|0)+1|0;w=(w&65535|0)==8?0:w&65535;A[l>>1]=w;A[e+376+(w<<16>>16<<1)>>1]=f+57015+i;u=c;return}function _e(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0,s=0,l=0,u=0,c=0,w=0;u=(i|0)==4;c=(i|0)==5;w=(i|0)==6;n=t[e+408>>2]|0;e:do{if((i+-4|0)>>>0<3)l=4;else{if((n+-1|0)>>>0<2)switch(i|0){case 2:case 3:case 7:{l=4;break e}default:}A[e>>1]=0;s=0}}while(0);if((l|0)==4){e:do{if((n|0)==2){switch(i|0){case 2:case 4:case 6:case 7:break;default:{f=1;break e}}f=2}else f=1}while(0);s=(o[e>>1]|0)+1&65535;A[e>>1]=s;s=(i|0)!=5&s<<16>>16>50?2:f}a=e+398|0;if(c&(A[e+412>>1]|0)==0){A[a>>1]=0;f=0}else f=A[a>>1]|0;f=Dn(f,1,r)|0;A[a>>1]=f;r=e+404|0;A[r>>1]=0;e:do{switch(i|0){case 2:case 4:case 5:case 6:case 7:{if(!((i|0)==7&(s|0)==0)){if(f<<16>>16>30){A[r>>1]=1;A[a>>1]=0;A[e+396>>1]=0;break e}f=e+396|0;n=A[f>>1]|0;if(!(n<<16>>16)){A[a>>1]=0;break e}else{A[f>>1]=(n&65535)+65535;break e}}else l=14;break}default:l=14}}while(0);if((l|0)==14)A[e+396>>1]=7;if(!s)return s|0;f=e+400|0;A[f>>1]=0;n=e+402|0;A[n>>1]=0;if(u){A[f>>1]=1;return s|0}if(c){A[f>>1]=1;A[n>>1]=1;return s|0}if(!w)return s|0;A[f>>1]=1;A[r>>1]=0;return s|0}function Le(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=1;A[e+2>>1]=1;A[e+4>>1]=1;A[e+6>>1]=1;A[e+8>>1]=1;A[e+10>>1]=0;A[e+12>>1]=1;e=0;return e|0}function Ge(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0;l=u;u=u+16|0;s=l+2|0;a=l;o=mn(e,5)|0;e=e+10|0;if((uA(o,A[e>>1]|0,f)|0)<<16>>16>0)o=A[e>>1]|0;o=(F(A[674+(r<<16>>16<<1)>>1]|0,o<<16>>16)|0)>>15;if((o|0)>32767){t[f>>2]=1;o=32767}A[n>>1]=o;pn(i,s,a,f);Tn(i,A[s>>1]|0,A[a>>1]|0);u=l;return}function Xe(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;if(!(i<<16>>16)){if(r<<16>>16){i=e+12|0;if((uA(A[n>>1]|0,A[i>>1]|0,t)|0)<<16>>16>0)A[n>>1]=A[i>>1]|0}else i=e+12|0;A[i>>1]=A[n>>1]|0}A[e+10>>1]=A[n>>1]|0;t=e+2|0;A[e>>1]=A[t>>1]|0;r=e+4|0;A[t>>1]=A[r>>1]|0;t=e+6|0;A[r>>1]=A[t>>1]|0;e=e+8|0;A[t>>1]=A[e>>1]|0;A[e>>1]=A[n>>1]|0;return}function xe(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0;f=mn(e,5)|0;e=e+10|0;if((uA(f,A[e>>1]|0,n)|0)<<16>>16>0)f=A[e>>1]|0;f=(F(A[688+(i<<16>>16<<1)>>1]|0,f<<16>>16)|0)>>15;if((f|0)<=32767){n=f;n=n&65535;A[r>>1]=n;return}t[n>>2]=1;n=32767;n=n&65535;A[r>>1]=n;return}function Ye(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=1640;A[e+2>>1]=1640;A[e+4>>1]=1640;A[e+6>>1]=1640;A[e+8>>1]=1640;A[e+10>>1]=0;A[e+12>>1]=16384;e=0;return e|0}function ze(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;if(!(i<<16>>16)){if(r<<16>>16){i=e+12|0;if((uA(A[n>>1]|0,A[i>>1]|0,t)|0)<<16>>16>0)A[n>>1]=A[i>>1]|0}else i=e+12|0;A[i>>1]=A[n>>1]|0}n=A[n>>1]|0;i=e+10|0;A[i>>1]=n;if((uA(n,16384,t)|0)<<16>>16>0){A[i>>1]=16384;i=16384}else i=A[i>>1]|0;t=e+2|0;A[e>>1]=A[t>>1]|0;n=e+4|0;A[t>>1]=A[n>>1]|0;t=e+6|0;A[n>>1]=A[t>>1]|0;e=e+8|0;A[t>>1]=A[e>>1]|0;A[e>>1]=i;return}function je(e,i,r,n,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0;l=mn(r,9)|0;u=A[r+16>>1]|0;s=u<<16>>16;r=(s+(A[r+14>>1]|0)|0)>>>1;r=(s|0)<(r<<16>>16|0)?u:r&65535;if(!(i<<16>>16>5?l<<16>>16>i<<16>>16:0))return 0;s=r<<16>>16;s=((s<<18>>18|0)==(s|0)?s<<2:s>>>15^32767)&65535;if(!(n<<16>>16>6&f<<16>>16==0))s=uA(s,r,a)|0;l=l<<16>>16>s<<16>>16?s:l;u=Wn(i)|0;s=u<<16>>16;if(u<<16>>16<0){r=0-s<<16;if((r|0)<983040)s=i<<16>>16>>(r>>16)&65535;else s=0}else{r=i<<16>>16;f=r<<s;if((f<<16>>16>>s|0)==(r|0))s=f&65535;else s=(r>>>15^32767)&65535}n=F((Cn(16383,s)|0)<<16>>16,l<<16>>16)|0;if((n|0)==1073741824){t[a>>2]=1;f=2147483647}else f=n<<1;n=uA(20,u,a)|0;s=n<<16>>16;if(n<<16>>16>0)n=n<<16>>16<31?f>>s:0;else{i=0-s<<16>>16;n=f<<i;n=(n>>i|0)==(f|0)?n:f>>31^2147483647}n=(n|0)>32767?32767:n&65535;n=o<<16>>16!=0&n<<16>>16>3072?3072:n<<16>>16;r=0;do{f=e+(r<<1)|0;s=F(A[f>>1]|0,n)|0;if((s|0)==1073741824){t[a>>2]=1;s=2147483647}else s=s<<1;A[f>>1]=s>>>11;r=r+1|0}while((r|0)!=40);return 0}function Je(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var o=0,a=0,s=0,l=0;o=t[n+104>>2]|0;a=t[n+96>>2]|0;if(e>>>0>=8){A[r>>1]=(f[i>>0]|0)>>>4&1;A[r+2>>1]=(f[i>>0]|0)>>>5&1;A[r+4>>1]=(f[i>>0]|0)>>>6&1;A[r+6>>1]=(f[i>>0]|0)>>>7&255;o=o+(e<<1)|0;if((A[o>>1]|0)>1){e=1;n=1;a=4}else return;while(1){s=i+e|0;e=a|1;A[r+(a<<16>>16<<1)>>1]=f[s>>0]&1;A[r+(e<<16>>16<<1)>>1]=(f[s>>0]|0)>>>1&1;l=a|3;A[r+(e+1<<16>>16<<16>>16<<1)>>1]=(f[s>>0]|0)>>>2&1;A[r+(l<<16>>16<<1)>>1]=(f[s>>0]|0)>>>3&1;A[r+(l+1<<16>>16<<16>>16<<1)>>1]=(f[s>>0]|0)>>>4&1;A[r+(l+2<<16>>16<<16>>16<<1)>>1]=(f[s>>0]|0)>>>5&1;A[r+(l+3<<16>>16<<16>>16<<1)>>1]=(f[s>>0]|0)>>>6&1;A[r+(l+4<<16>>16<<16>>16<<1)>>1]=(f[s>>0]|0)>>>7&255;n=n+1<<16>>16;if(n<<16>>16<(A[o>>1]|0)){e=n<<16>>16;a=a+8<<16>>16}else break}return}l=t[(t[n+100>>2]|0)+(e<<2)>>2]|0;A[r+(A[l>>1]<<1)>>1]=(f[i>>0]|0)>>>4&1;A[r+(A[l+2>>1]<<1)>>1]=(f[i>>0]|0)>>>5&1;A[r+(A[l+4>>1]<<1)>>1]=(f[i>>0]|0)>>>6&1;A[r+(A[l+6>>1]<<1)>>1]=(f[i>>0]|0)>>>7&255;s=o+(e<<1)|0;if((A[s>>1]|0)<=1)return;n=a+(e<<1)|0;o=1;e=1;a=4;while(1){o=i+o|0;a=a<<16>>16;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=f[o>>0]&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>1&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>2&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>3&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>4&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>5&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>6&1;a=a+1|0;if((a|0)<(A[n>>1]|0)){A[r+(A[l+(a<<1)>>1]<<1)>>1]=(f[o>>0]|0)>>>7&1;a=a+1|0}}}}}}}}e=e+1<<16>>16;if(e<<16>>16<(A[s>>1]|0))o=e<<16>>16;else break}return}function Ke(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;var f=0,o=0,a=0,s=0;switch(r<<16>>16){case 0:{s=9;while(1){a=A[e+(s<<1)>>1]|0;r=a<<16>>16;if(a<<16>>16<0)r=~((r^-4)>>2);else r=r>>>2;o=A[i+(s<<1)>>1]|0;f=o<<16>>16;if(o<<16>>16<0)o=~((f^-4)>>2);else o=f>>>2;A[n+(s<<1)>>1]=Dn((a&65535)-r&65535,o&65535,t)|0;if((s|0)>0)s=s+-1|0;else break}return}case 40:{o=9;while(1){t=A[e+(o<<1)>>1]|0;r=t<<16>>16;if(t<<16>>16<0)f=~((r^-2)>>1);else f=r>>>1;t=A[i+(o<<1)>>1]|0;r=t<<16>>16;if(t<<16>>16<0)r=~((r^-2)>>1);else r=r>>>1;A[n+(o<<1)>>1]=r+f;if((o|0)>0)o=o+-1|0;else break}return}case 80:{s=9;while(1){a=A[e+(s<<1)>>1]|0;r=a<<16>>16;if(a<<16>>16<0)a=~((r^-4)>>2);else a=r>>>2;r=A[i+(s<<1)>>1]|0;f=r<<16>>16;if(r<<16>>16<0)o=~((f^-4)>>2);else o=f>>>2;A[n+(s<<1)>>1]=Dn(a&65535,(r&65535)-o&65535,t)|0;if((s|0)>0)s=s+-1|0;else break}return}case 120:{A[n+18>>1]=A[i+18>>1]|0;A[n+16>>1]=A[i+16>>1]|0;A[n+14>>1]=A[i+14>>1]|0;A[n+12>>1]=A[i+12>>1]|0;A[n+10>>1]=A[i+10>>1]|0;A[n+8>>1]=A[i+8>>1]|0;A[n+6>>1]=A[i+6>>1]|0;A[n+4>>1]=A[i+4>>1]|0;A[n+2>>1]=A[i+2>>1]|0;A[n>>1]=A[i>>1]|0;return}default:return}}function We(e,i){e=e|0;i=i|0;if(!e){e=-1;return e|0}bA(e|0,i|0,20)|0;e=0;return e|0}function Ve(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0,a=0,s=0,l=0,u=0;u=0;do{l=e+(u<<1)|0;n=A[l>>1]|0;a=n&65535;s=a<<16;n=n<<16>>16;if((n*5243|0)==1073741824){t[r>>2]=1;o=2147483647}else o=n*10486|0;f=s-o|0;if(((f^s)&(o^s)|0)<0){t[r>>2]=1;o=(a>>>15)+2147483647|0}else o=f;n=A[i+(u<<1)>>1]|0;f=n*5243|0;if((f|0)!=1073741824){n=(n*10486|0)+o|0;if((f^o|0)>0&(n^o|0)<0){t[r>>2]=1;n=(o>>>31)+2147483647|0}}else{t[r>>2]=1;n=2147483647}A[l>>1]=oA(n,r)|0;u=u+1|0}while((u|0)!=10);return}function qe(e){e=e|0;var i=0;if(!e){i=-1;return i|0}i=e+18|0;do{A[e>>1]=0;e=e+2|0}while((e|0)<(i|0));i=0;return i|0}function Ze(e){e=e|0;A[e+14>>1]=1;return}function $e(e){e=e|0;A[e+14>>1]=0;return}function ei(e,i,r,n,f,o,a,s,l,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;c=c|0;var w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0;p=u;u=u+160|0;y=p+80|0;P=p;k=t[l+120>>2]|0;D=t[l+124>>2]|0;Q=t[l+128>>2]|0;b=t[l+132>>2]|0;h=e+6|0;g=e+8|0;A[g>>1]=A[h>>1]|0;B=e+4|0;A[h>>1]=A[B>>1]|0;E=e+2|0;A[B>>1]=A[E>>1]|0;A[E>>1]=A[e>>1]|0;A[e>>1]=f;l=f<<16>>16<14746?f<<16>>16>9830&1:2;w=e+12|0;f=A[w>>1]|0;d=f<<15;do{if((d|0)<=536870911)if((d|0)<-536870912){t[c>>2]=1;f=-2147483648;break}else{f=f<<17;break}else{t[c>>2]=1;f=2147483647}}while(0);C=n<<16>>16;v=e+16|0;if((oA(f,c)|0)<<16>>16>=n<<16>>16){d=A[v>>1]|0;if(d<<16>>16>0){d=(d&65535)+65535&65535;A[v>>1]=d}if(!(d<<16>>16)){f=(A[e>>1]|0)<9830;f=(A[E>>1]|0)<9830?f?2:1:f&1;if((A[B>>1]|0)<9830)f=(f&65535)+1&65535;if((A[h>>1]|0)<9830)f=(f&65535)+1&65535;if((A[g>>1]|0)<9830)f=(f&65535)+1&65535;d=0;l=f<<16>>16>2?0:l}}else{A[v>>1]=2;d=2}E=l<<16>>16;g=e+10|0;E=(d<<16>>16==0?(E|0)>((A[g>>1]|0)+1|0):0)?E+65535&65535:l;e=(A[e+14>>1]|0)==1?0:n<<16>>16<10?2:E<<16>>16<2&d<<16>>16>0?(E&65535)+1&65535:E;A[g>>1]=e;A[w>>1]=n;switch(i|0){case 4:case 6:case 7:break;default:if(e<<16>>16<2){d=0;l=0;h=o;w=y;while(1){if(!(A[h>>1]|0))f=0;else{l=l<<16>>16;A[P+(l<<1)>>1]=d;f=A[h>>1]|0;l=l+1&65535}A[w>>1]=f;A[h>>1]=0;d=d+1<<16>>16;if(d<<16>>16>=40){g=l;break}else{h=h+2|0;w=w+2|0}}E=e<<16>>16==0;E=(i|0)==5?E?k:D:E?Q:b;if(g<<16>>16>0){B=0;do{v=A[P+(B<<1)>>1]|0;l=v<<16>>16;e=A[y+(l<<1)>>1]|0;if(v<<16>>16<40){d=e<<16>>16;h=39-v&65535;w=v;l=o+(l<<1)|0;f=E;while(1){i=(F(A[f>>1]|0,d)|0)>>>15&65535;A[l>>1]=Dn(A[l>>1]|0,i,c)|0;w=w+1<<16>>16;if(w<<16>>16>=40)break;else{l=l+2|0;f=f+2|0}}if(v<<16>>16>0){l=E+(h+1<<1)|0;T=36}}else{l=E;T=36}if((T|0)==36){T=0;f=e<<16>>16;d=0;h=o;while(1){i=(F(A[l>>1]|0,f)|0)>>>15&65535;A[h>>1]=Dn(A[h>>1]|0,i,c)|0;d=d+1<<16>>16;if(d<<16>>16>=v<<16>>16)break;else{h=h+2|0;l=l+2|0}}}B=B+1|0}while((B&65535)<<16>>16!=g<<16>>16)}}}B=a<<16>>16;E=C<<1;f=s<<16>>16;w=0-f<<16;l=w>>16;if(s<<16>>16>0){d=0;h=r;while(1){e=F(A[r+(d<<1)>>1]|0,B)|0;if((e|0)==1073741824){t[c>>2]=1;w=2147483647}else w=e<<1;s=F(E,A[o>>1]|0)|0;e=s+w|0;if((s^w|0)>-1&(e^w|0)<0){t[c>>2]=1;e=(w>>>31)+2147483647|0}s=e<<f;A[h>>1]=oA((s>>f|0)==(e|0)?s:e>>31^2147483647,c)|0;d=d+1|0;if((d|0)==40)break;else{o=o+2|0;h=h+2|0}}u=p;return}if((w|0)<2031616){d=0;h=r;while(1){e=F(A[r+(d<<1)>>1]|0,B)|0;if((e|0)==1073741824){t[c>>2]=1;w=2147483647}else w=e<<1;s=F(E,A[o>>1]|0)|0;e=s+w|0;if((s^w|0)>-1&(e^w|0)<0){t[c>>2]=1;e=(w>>>31)+2147483647|0}A[h>>1]=oA(e>>l,c)|0;d=d+1|0;if((d|0)==40)break;else{o=o+2|0;h=h+2|0}}u=p;return}else{h=0;w=r;while(1){e=F(A[r+(h<<1)>>1]|0,B)|0;if((e|0)==1073741824){t[c>>2]=1;e=2147483647}else e=e<<1;s=F(E,A[o>>1]|0)|0;if((s^e|0)>-1&(s+e^e|0)<0)t[c>>2]=1;A[w>>1]=oA(0,c)|0;h=h+1|0;if((h|0)==40)break;else{o=o+2|0;w=w+2|0}}u=p;return}}function ii(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=0;A[e+2>>1]=0;A[e+4>>1]=0;A[e+6>>1]=0;A[e+8>>1]=0;A[e+10>>1]=0;e=0;return e|0}function ri(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0;if(r<<16>>16<=0)return;t=e+10|0;s=e+8|0;u=e+4|0;c=e+6|0;w=e+2|0;f=A[u>>1]|0;o=A[c>>1]|0;a=A[e>>1]|0;l=A[w>>1]|0;h=0;while(1){d=A[t>>1]|0;v=A[s>>1]|0;A[t>>1]=v;B=A[i>>1]|0;A[s>>1]=B;d=((B<<16>>16)*7699|0)+((F(a<<16>>16,-7667)|0)+(((f<<16>>16)*15836|0)+((o<<16>>16)*15836>>15))+((F(l<<16>>16,-7667)|0)>>15))+(F(v<<16>>16,-15398)|0)+((d<<16>>16)*7699|0)|0;v=d<<3;d=(v>>3|0)==(d|0)?v:d>>31^2147483647;v=d<<1;A[i>>1]=oA((v>>1|0)==(d|0)?v:d>>31^2147483647,n)|0;a=A[u>>1]|0;A[e>>1]=a;l=A[c>>1]|0;A[w>>1]=l;f=d>>>16&65535;A[u>>1]=f;o=(d>>>1)-(d>>16<<15)&65535;A[c>>1]=o;h=h+1<<16>>16;if(h<<16>>16>=r<<16>>16)break;else i=i+2|0}return}function ni(e){e=e|0;if(!e)e=-1;else{A[e>>1]=0;e=0}return e|0}function Ai(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0;s=n<<16>>16;o=i+(s+-1<<1)|0;s=s+-2|0;l=A[o>>1]|0;if(n<<16>>16<2)n=r<<16>>16;else{n=r<<16>>16;a=0;i=i+(s<<1)|0;while(1){r=(F(A[i>>1]|0,n)|0)>>15;if((r|0)>32767){t[f>>2]=1;r=32767}A[o>>1]=uA(A[o>>1]|0,r&65535,f)|0;o=o+-2|0;a=a+1<<16>>16;if((a<<16>>16|0)>(s|0))break;else i=i+-2|0}}n=(F(A[e>>1]|0,n)|0)>>15;if((n|0)<=32767){s=n;s=s&65535;a=A[o>>1]|0;f=uA(a,s,f)|0;A[o>>1]=f;A[e>>1]=l;return}t[f>>2]=1;s=32767;s=s&65535;a=A[o>>1]|0;f=uA(a,s,f)|0;A[o>>1]=f;A[e>>1]=l;return}function ti(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}kA(e+104|0,0,340)|0;i=e+102|0;r=e;n=r+100|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));te(i)|0;ni(e+100|0)|0;n=0;return n|0}function fi(e,i,r,f,o){e=e|0;i=i|0;r=r|0;f=f|0;o=o|0;var a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0;D=u;u=u+96|0;E=D+22|0;g=D;b=D+44|0;bA(e+124|0,r|0,320)|0;h=b+22|0;d=e+100|0;v=e+80|0;B=e+102|0;if((i&-2|0)==6){w=0;while(1){wA(f,702,E);wA(f,722,g);c=e+104+(w+10<<1)|0;fA(E,c,e,40);s=b;a=E;i=s+22|0;do{A[s>>1]=A[a>>1]|0;s=s+2|0;a=a+2|0}while((s|0)<(i|0));s=h;i=s+22|0;do{A[s>>1]=0;s=s+2|0}while((s|0)<(i|0));cA(g,b,b,22,h,0);i=0;s=21;do{a=A[b+(s<<16>>16<<1)>>1]|0;a=F(a,a)|0;if((a|0)==1073741824){k=7;break}l=a<<1;a=l+i|0;if((l^i|0)>-1&(a^i|0)<0){t[o>>2]=1;i=(i>>>31)+2147483647|0}else i=a;s=s+-1<<16>>16}while(s<<16>>16>-1);if((k|0)==7){k=0;t[o>>2]=1}l=i>>>16&65535;a=20;i=0;s=20;while(1){a=F(A[b+(a+1<<1)>>1]|0,A[b+(a<<1)>>1]|0)|0;if((a|0)==1073741824){k=13;break}Q=a<<1;a=Q+i|0;if((Q^i|0)>-1&(a^i|0)<0){t[o>>2]=1;i=(i>>>31)+2147483647|0}else i=a;a=(s&65535)+-1<<16>>16;if(a<<16>>16>-1){a=a<<16>>16;s=s+-1|0}else break}if((k|0)==13){k=0;t[o>>2]=1}i=i>>16;if((i|0)<1)i=0;else i=Cn((i*26214|0)>>>15&65535,l)|0;Ai(d,e,i,40,o);i=r+(w<<1)|0;cA(g,e,i,40,v,1);fe(B,c,i,29491,40,o);i=(w<<16)+2621440|0;if((i|0)<10485760){w=i>>16;f=f+22|0}else break}s=e+104|0;a=e+424|0;i=s+20|0;do{n[s>>0]=n[a>>0]|0;s=s+1|0;a=a+1|0}while((s|0)<(i|0));u=D;return}else{w=0;while(1){wA(f,742,E);wA(f,762,g);c=e+104+(w+10<<1)|0;fA(E,c,e,40);s=b;a=E;i=s+22|0;do{A[s>>1]=A[a>>1]|0;s=s+2|0;a=a+2|0}while((s|0)<(i|0));s=h;i=s+22|0;do{A[s>>1]=0;s=s+2|0}while((s|0)<(i|0));cA(g,b,b,22,h,0);i=0;s=21;do{a=A[b+(s<<16>>16<<1)>>1]|0;a=F(a,a)|0;if((a|0)==1073741824){k=22;break}Q=a<<1;a=Q+i|0;if((Q^i|0)>-1&(a^i|0)<0){t[o>>2]=1;i=(i>>>31)+2147483647|0}else i=a;s=s+-1<<16>>16}while(s<<16>>16>-1);if((k|0)==22){k=0;t[o>>2]=1}l=i>>>16&65535;a=20;i=0;s=20;while(1){a=F(A[b+(a+1<<1)>>1]|0,A[b+(a<<1)>>1]|0)|0;if((a|0)==1073741824){k=28;break}Q=a<<1;a=Q+i|0;if((Q^i|0)>-1&(a^i|0)<0){t[o>>2]=1;i=(i>>>31)+2147483647|0}else i=a;a=(s&65535)+-1<<16>>16;if(a<<16>>16>-1){a=a<<16>>16;s=s+-1|0}else break}if((k|0)==28){k=0;t[o>>2]=1}i=i>>16;if((i|0)<1)i=0;else i=Cn((i*26214|0)>>>15&65535,l)|0;Ai(d,e,i,40,o);i=r+(w<<1)|0;cA(g,e,i,40,v,1);fe(B,c,i,29491,40,o);i=(w<<16)+2621440|0;if((i|0)<10485760){w=i>>16;f=f+22|0}else break}s=e+104|0;a=e+424|0;i=s+20|0;do{n[s>>0]=n[a>>0]|0;s=s+1|0;a=a+1|0}while((s|0)<(i|0));u=D;return}}function oi(e,i){e=e|0;i=i|0;var r=0,n=0;if(!e){e=-1;return e|0}t[e>>2]=0;r=hA(1764)|0;if(!r){e=-1;return e|0}if((Ce(r)|0)<<16>>16==0?(n=r+1748|0,(ii(n)|0)<<16>>16==0):0){ye(r,0)|0;ti(r+1304|0)|0;ii(n)|0;t[r+1760>>2]=0;t[e>>2]=r;e=0;return e|0}i=t[r>>2]|0;if(!i){e=-1;return e|0}dA(i);t[r>>2]=0;e=-1;return e|0}function ai(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function si(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0;k=u;u=u+208|0;b=k+88|0;g=k;E=e+1164|0;a=t[e+1256>>2]|0;if((n+-5|0)>>>0<2){B=a+16|0;if((A[B>>1]|0)>0){v=t[(t[e+1260>>2]|0)+32>>2]|0;d=0;a=0;while(1){h=v+(d<<1)|0;c=A[h>>1]|0;if(c<<16>>16>0){l=r;w=0;s=0;while(1){s=o[l>>1]|s<<1&131070;w=w+1<<16>>16;if(w<<16>>16>=c<<16>>16)break;else l=l+2|0}s=s&65535}else s=0;A[b+(d<<1)>>1]=s;a=a+1<<16>>16;if(a<<16>>16<(A[B>>1]|0)){r=r+(A[h>>1]<<1)|0;d=a<<16>>16}else break}}}else{v=a+(i<<1)|0;if((A[v>>1]|0)>0){B=t[(t[e+1260>>2]|0)+(i<<2)>>2]|0;h=0;a=0;while(1){d=B+(h<<1)|0;c=A[d>>1]|0;if(c<<16>>16>0){l=r;w=0;s=0;while(1){s=o[l>>1]|s<<1&131070;w=w+1<<16>>16;if(w<<16>>16>=c<<16>>16)break;else l=l+2|0}s=s&65535}else s=0;A[b+(h<<1)>>1]=s;a=a+1<<16>>16;if(a<<16>>16<(A[v>>1]|0)){r=r+(A[d>>1]<<1)|0;h=a<<16>>16}else break}}}Pe(e,i,b,n,f,g);fi(e+1304|0,i,f,g,E);ri(e+1748|0,f,160,E);a=0;do{e=f+(a<<1)|0;A[e>>1]=o[e>>1]&65528;a=a+1|0}while((a|0)!=160);u=k;return}function li(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var a=0,s=0,l=0;s=t[n+100>>2]|0;l=(o[(t[n+96>>2]|0)+(e<<1)>>1]|0)+65535|0;n=l&65535;a=n<<16>>16>-1;if(e>>>0<8){if(!a)return;s=t[s+(e<<2)>>2]|0;a=l<<16>>16;while(1){A[r+(A[s+(a<<1)>>1]<<1)>>1]=(f[i+(a>>3)>>0]|0)>>>(a&7^7)&1;n=n+-1<<16>>16;if(n<<16>>16>-1)a=n<<16>>16;else break}return}else{if(!a)return;a=l<<16>>16;while(1){A[r+(a<<1)>>1]=(f[i+(a>>3)>>0]|0)>>>(a&7^7)&1;n=n+-1<<16>>16;if(n<<16>>16>-1)a=n<<16>>16;else break}return}}function ui(e,i,r){e=e|0;i=i|0;r=r|0;e=$r(e,r,31764)|0;return((Vr(i)|0|e)<<16>>16!=0)<<31>>31|0}function ci(e,i){e=e|0;i=i|0;en(e);qr(i);return}function wi(e,i,r,f,a,s,l){e=e|0;i=i|0;r=r|0;f=f|0;a=a|0;s=s|0;l=l|0;var c=0,w=0,h=0,d=0,v=0;v=u;u=u+512|0;c=v+8|0;w=v+4|0;h=v;t[h>>2]=0;d=l<<16>>16==3;if(!((l&65535)<2|d&1)){if(l<<16>>16!=2){a=-1;u=v;return a|0}rn(e,r,f,c+2|0,h);e=t[h>>2]|0;t[s>>2]=e;Zr(i,e,w);i=t[w>>2]|0;A[c>>1]=i;A[c+490>>1]=(i|0)==3?-1:r&65535;n[a>>0]=i;i=1;do{c=c+1|0;n[a+i>>0]=n[c>>0]|0;i=i+1|0}while((i|0)!=492);c=492;u=v;return c|0}rn(e,r,f,c,h);Zr(i,t[h>>2]|0,w);f=t[w>>2]|0;if((f|0)!=3){i=t[h>>2]|0;t[s>>2]=i;if((i|0)==8){switch(f|0){case 1:{A[c+70>>1]=0;break}case 2:{h=c+70|0;A[h>>1]=o[h>>1]|0|1;break}default:}A[c+72>>1]=r&1;A[c+74>>1]=r>>>1&1;A[c+76>>1]=r>>>2&1;i=8}}else{t[s>>2]=15;i=15}if(d){qi(i,c,a,(t[e+4>>2]|0)+2392|0);a=A[3404+(t[s>>2]<<16>>16<<1)>>1]|0;u=v;return a|0}switch(l<<16>>16){case 0:{Vi(i,c,a,(t[e+4>>2]|0)+2392|0);a=A[3404+(t[s>>2]<<16>>16<<1)>>1]|0;u=v;return a|0}case 1:{Wi(i,c,a,(t[e+4>>2]|0)+2392|0);a=A[3436+(t[s>>2]<<16>>16<<1)>>1]|0;u=v;return a|0}default:{a=-1;u=v;return a|0}}}function hi(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0;C=u;u=u+480|0;Q=C;f=240;l=t;s=e;a=Q;o=0;while(1){D=((F(A[l>>1]|0,A[s>>1]|0)|0)+16384|0)>>>15;A[a>>1]=D;D=D<<16;o=(F(D>>15,D>>16)|0)+o|0;if((o|0)<0){c=4;break}f=f+-1|0;if(!((f&65535)<<16>>16)){f=0;break}else{l=l+2|0;s=s+2|0;a=a+2|0}}if((c|0)==4){o=f&65535;a=240-f|0;if(!(o<<16>>16))f=0;else{l=o;s=t+(a<<1)|0;f=e+(a<<1)|0;o=Q+(a<<1)|0;while(1){A[o>>1]=((F(A[s>>1]|0,A[f>>1]|0)|0)+16384|0)>>>15;l=l+-1<<16>>16;if(!(l<<16>>16)){f=0;break}else{s=s+2|0;f=f+2|0;o=o+2|0}}}do{s=f&65535;f=120;a=Q;o=0;while(1){D=(A[a>>1]|0)>>>2;b=a+2|0;A[a>>1]=D;D=D<<16>>16;D=F(D,D)|0;k=(A[b>>1]|0)>>>2;A[b>>1]=k;k=k<<16>>16;o=((F(k,k)|0)+D<<1)+o|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else a=a+4|0}f=s+4|0}while((o|0)<1)}D=o+1|0;k=(Kn(D)|0)<<16>>16;D=D<<k;A[r>>1]=D>>>16;A[n>>1]=(D>>>1)-(D>>16<<15);D=Q+478|0;l=i<<16>>16;if(i<<16>>16<=0){Q=k-f|0;Q=Q&65535;u=C;return Q|0}B=Q+476|0;E=k+1|0;g=239-l|0;b=Q+(236-l<<1)|0;i=l;r=r+(l<<1)|0;n=n+(l<<1)|0;while(1){c=F((g>>>1)+65535&65535,-2)|0;s=Q+(c+236<<1)|0;c=b+(c<<1)|0;t=240-i|0;v=t+-1|0;a=Q+(v<<1)|0;e=v>>>1&65535;t=Q+(t+-2<<1)|0;l=F(A[D>>1]|0,A[a>>1]|0)|0;if(!(e<<16>>16)){c=t;s=B}else{d=B;h=D;while(1){o=a+-4|0;w=h+-4|0;l=(F(A[d>>1]|0,A[t>>1]|0)|0)+l|0;e=e+-1<<16>>16;l=(F(A[w>>1]|0,A[o>>1]|0)|0)+l|0;if(!(e<<16>>16))break;else{t=a+-6|0;d=h+-6|0;a=o;h=w}}}if(v&1)l=(F(A[s>>1]|0,A[c>>1]|0)|0)+l|0;v=l<<E;A[r>>1]=v>>>16;A[n>>1]=(v>>>1)-(v>>16<<15);if((i&65535)+-1<<16>>16<<16>>16>0){g=g+1|0;b=b+2|0;i=i+-1|0;r=r+-2|0;n=n+-2|0}else break}Q=k-f|0;Q=Q&65535;u=C;return Q|0}function di(e,i,r,n,t,f,a,s){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0;m=u;u=u+3440|0;M=m+3420|0;y=m+3400|0;P=m+3224|0;p=m;Q=m+3320|0;T=m+3240|0;C=m+24|0;_i(r,e,Q,2,s);Wr(Q,i,T,P,5,y,5,s);Ni(r,T,C,s);Jr(10,5,5,Q,C,y,P,p,s);i=n;s=i+80|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(s|0));A[f>>1]=65535;A[f+2>>1]=65535;A[f+4>>1]=65535;A[f+6>>1]=65535;A[f+8>>1]=65535;d=0;v=p;B=M;do{e=A[v>>1]|0;v=v+2|0;l=(e*6554|0)>>>15;c=l<<16>>16;i=n+(e<<1)|0;s=A[i>>1]|0;if((A[T+(e<<1)>>1]|0)>0){A[i>>1]=s+4096;A[B>>1]=8192;w=l}else{A[i>>1]=s+61440;A[B>>1]=-8192;w=c+8|0}B=B+2|0;h=w&65535;i=e-(l<<2)-c<<16>>16;l=f+(i<<1)|0;s=A[l>>1]|0;e=s<<16>>16;do{if(s<<16>>16>=0){c=w<<16>>16;if(!((c^e)&8)){i=f+(i+5<<1)|0;if((e|0)>(c|0)){A[i>>1]=s;A[l>>1]=h;break}else{A[i>>1]=h;break}}else{i=f+(i+5<<1)|0;if((e&7)>>>0>(c&7)>>>0){A[i>>1]=h;break}else{A[i>>1]=s;A[l>>1]=h;break}}}else A[l>>1]=h}while(0);d=d+1<<16>>16}while(d<<16>>16<10);B=M+2|0;d=M+4|0;w=M+6|0;c=M+8|0;l=M+10|0;i=M+12|0;s=M+14|0;e=M+16|0;E=M+18|0;g=40;b=r+(0-(A[p>>1]|0)<<1)|0;k=r+(0-(A[p+2>>1]|0)<<1)|0;D=r+(0-(A[p+4>>1]|0)<<1)|0;Q=r+(0-(A[p+6>>1]|0)<<1)|0;C=r+(0-(A[p+8>>1]|0)<<1)|0;y=r+(0-(A[p+10>>1]|0)<<1)|0;P=r+(0-(A[p+12>>1]|0)<<1)|0;T=r+(0-(A[p+14>>1]|0)<<1)|0;n=r+(0-(A[p+16>>1]|0)<<1)|0;v=r+(0-(A[p+18>>1]|0)<<1)|0;h=t;while(1){N=(F(A[M>>1]|0,A[b>>1]|0)|0)>>7;U=(F(A[B>>1]|0,A[k>>1]|0)|0)>>7;H=(F(A[d>>1]|0,A[D>>1]|0)|0)>>7;O=(F(A[w>>1]|0,A[Q>>1]|0)|0)>>7;R=(F(A[c>>1]|0,A[C>>1]|0)|0)>>7;I=(F(A[l>>1]|0,A[y>>1]|0)|0)>>7;p=(F(A[i>>1]|0,A[P>>1]|0)|0)>>7;r=(F(A[s>>1]|0,A[T>>1]|0)|0)>>>7;t=(F(A[e>>1]|0,A[n>>1]|0)|0)>>>7;A[h>>1]=(N+128+U+H+O+R+I+p+r+t+((F(A[E>>1]|0,A[v>>1]|0)|0)>>>7)|0)>>>8;g=g+-1<<16>>16;if(!(g<<16>>16))break;else{b=b+2|0;k=k+2|0;D=D+2|0;Q=Q+2|0;C=C+2|0;y=y+2|0;P=P+2|0;T=T+2|0;n=n+2|0;v=v+2|0;h=h+2|0}}i=0;do{s=f+(i<<1)|0;e=A[s>>1]|0;if((i|0)<5)e=(o[a+((e&7)<<1)>>1]|e&8)&65535;else e=A[a+((e&7)<<1)>>1]|0;A[s>>1]=e;i=i+1|0}while((i|0)!=10);u=m;return}function vi(e,i,r,n,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0;L=u;u=u+3456|0;H=L+3448|0;R=L+3360|0;m=L+3368|0;d=L+3280|0;O=L+3200|0;I=L;N=(n&65535)<<17;_=r<<16>>16;U=r<<16>>16<40;if(U){n=N>>16;r=_;do{c=(F(A[i+(r-_<<1)>>1]|0,n)|0)>>15;if((c|0)>32767){t[s>>2]=1;c=32767}M=i+(r<<1)|0;A[M>>1]=Dn(A[M>>1]|0,c&65535,s)|0;r=r+1|0}while((r&65535)<<16>>16!=40)}_i(i,e,m,1,s);Kr(m,O,d,8);Ni(i,O,I,s);M=R+2|0;A[R>>1]=0;A[M>>1]=1;e=1;c=0;h=1;d=0;w=-1;do{T=A[2830+(d<<1)>>1]|0;p=T<<16>>16;P=0;do{C=A[2834+(P<<1)>>1]|0;y=C<<16>>16;Q=e;k=p;b=h;D=T;g=w;while(1){l=A[m+(k<<1)>>1]|0;B=A[I+(k*80|0)+(k<<1)>>1]|0;r=y;h=1;E=C;e=C;w=-1;while(1){n=Dn(l,A[m+(r<<1)>>1]|0,s)|0;n=n<<16>>16;n=(F(n,n)|0)>>>15;v=(A[I+(k*80|0)+(r<<1)>>1]<<15)+32768+((A[I+(r*80|0)+(r<<1)>>1]|0)+B<<14)|0;if(((F(n<<16>>16,h<<16>>16)|0)-(F(v>>16,w<<16>>16)|0)<<1|0)>0){h=v>>>16&65535;e=E;w=n&65535}v=r+5|0;E=v&65535;if(E<<16>>16>=40)break;else r=v<<16>>16}if(((F(w<<16>>16,b<<16>>16)|0)-(F(h<<16>>16,g<<16>>16)|0)<<1|0)>0){A[R>>1]=D;A[M>>1]=e;c=D}else{e=Q;h=b;w=g}v=k+5|0;D=v&65535;if(D<<16>>16>=40)break;else{Q=e;k=v<<16>>16;b=h;g=w}}P=P+1|0}while((P|0)!=4);d=d+1|0}while((d|0)!=2);B=e;E=c;n=f;r=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(r|0));h=E;r=0;v=0;n=0;while(1){c=h<<16>>16;l=A[O+(c<<1)>>1]|0;e=(c*6554|0)>>>15;h=e<<16;d=h>>15;w=c-(d+(e<<3)<<16>>17)|0;switch(w<<16>>16|0){case 0:{d=h>>10;e=1;break}case 1:{if(!((r&65535)<<16>>16))e=0;else{d=e<<22>>16|16;e=1}break}case 2:{d=e<<22>>16|32;e=1;break}case 3:{d=e<<17>>16|1;e=0;break}case 4:{d=e<<22>>16|48;e=1;break}default:{d=e;e=w&65535}}d=d&65535;w=f+(c<<1)|0;if(l<<16>>16>0){A[w>>1]=8191;A[H+(r<<1)>>1]=32767;c=e<<16>>16;if(e<<16>>16<0){c=0-c<<16;if((c|0)<983040)c=1>>>(c>>16)&65535;else c=0}else{I=1<<c;c=(I<<16>>16>>c|0)==1?I&65535:32767}n=Dn(n,c,s)|0}else{A[w>>1]=-8192;A[H+(r<<1)>>1]=-32768}c=Dn(v,d,s)|0;r=r+1|0;if((r|0)==2){v=c;break}h=A[R+(r<<1)>>1]|0;v=c}A[a>>1]=n;d=H+2|0;h=A[H>>1]|0;e=0;w=i+(0-(E<<16>>16)<<1)|0;c=i+(0-(B<<16>>16)<<1)|0;do{n=F(A[w>>1]|0,h)|0;w=w+2|0;if((n|0)!=1073741824?(S=n<<1,!((n|0)>0&(S|0)<0)):0)l=S;else{t[s>>2]=1;l=2147483647}r=F(A[d>>1]|0,A[c>>1]|0)|0;c=c+2|0;if((r|0)!=1073741824){n=(r<<1)+l|0;if((r^l|0)>0&(n^l|0)<0){t[s>>2]=1;n=(l>>>31)+2147483647|0}}else{t[s>>2]=1;n=2147483647}A[o+(e<<1)>>1]=oA(n,s)|0;e=e+1|0}while((e|0)!=40);if(!U){u=L;return v|0}r=N>>16;n=_;do{l=(F(A[f+(n-_<<1)>>1]|0,r)|0)>>15;if((l|0)>32767){t[s>>2]=1;l=32767}o=f+(n<<1)|0;A[o>>1]=Dn(A[o>>1]|0,l&65535,s)|0;n=n+1|0}while((n&65535)<<16>>16!=40);u=L;return v|0}function Bi(e,i,r,n,f,o,a,s,l,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;c=c|0;var w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0;Q=u;u=u+3456|0;B=Q+3360|0;E=Q+3368|0;g=Q+3280|0;b=Q+3200|0;k=Q;D=f<<16>>16;d=D<<1;if((d|0)==(D<<17>>16|0))v=d;else{t[c>>2]=1;v=f<<16>>16>0?32767:-32768}D=n<<16>>16;w=n<<16>>16<40;if(w){f=v<<16>>16;h=D;do{n=r+(h<<1)|0;d=(F(A[r+(h-D<<1)>>1]|0,f)|0)>>15;if((d|0)>32767){t[c>>2]=1;d=32767}A[n>>1]=Dn(A[n>>1]|0,d&65535,c)|0;h=h+1|0}while((h&65535)<<16>>16!=40)}_i(r,i,E,1,c);Kr(E,b,g,8);Ni(r,b,k,c);Ei(e,E,k,l,B);d=gi(e,B,b,o,r,a,s,c)|0;if(!w){u=Q;return d|0}h=v<<16>>16;f=D;do{n=o+(f<<1)|0;w=(F(A[o+(f-D<<1)>>1]|0,h)|0)>>15;if((w|0)>32767){t[c>>2]=1;w=32767}A[n>>1]=Dn(A[n>>1]|0,w&65535,c)|0;f=f+1|0}while((f&65535)<<16>>16!=40);u=Q;return d|0}function Ei(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;var f=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0;Q=t+2|0;A[t>>1]=0;A[Q>>1]=1;k=e<<16>>16<<1;f=1;D=0;e=-1;do{b=(D<<3)+k<<16>>16;l=A[n+(b<<1)>>1]|0;b=A[n+((b|1)<<1)>>1]|0;a=l<<16>>16;e:do{if(l<<16>>16<40){g=b<<16>>16;if(b<<16>>16<40)E=f;else while(1){if((e<<16>>16|0)<(0-(f<<16>>16)|0)){A[t>>1]=l;A[Q>>1]=b;s=1;e=-1}else s=f;f=a+5|0;l=f&65535;if(l<<16>>16>=40){f=s;break e}else{a=f<<16>>16;f=s}}while(1){v=A[r+(a*80|0)+(a<<1)>>1]|0;d=o[i+(a<<1)>>1]|0;h=g;f=1;B=b;s=b;u=-1;while(1){w=(o[i+(h<<1)>>1]|0)+d<<16>>16;w=(F(w,w)|0)>>>15;c=(A[r+(a*80|0)+(h<<1)>>1]<<15)+32768+((A[r+(h*80|0)+(h<<1)>>1]|0)+v<<14)|0;if(((F(w<<16>>16,f<<16>>16)|0)-(F(c>>16,u<<16>>16)|0)<<1|0)>0){f=c>>>16&65535;s=B;u=w&65535}c=h+5|0;B=c&65535;if(B<<16>>16>=40)break;else h=c<<16>>16}if(((F(u<<16>>16,E<<16>>16)|0)-(F(f<<16>>16,e<<16>>16)|0)<<1|0)>0){A[t>>1]=l;A[Q>>1]=s;e=u}else f=E;a=a+5|0;l=a&65535;if(l<<16>>16>=40)break;else{a=a<<16>>16;E=f}}}}while(0);D=D+1|0}while((D|0)!=2);return}function gi(e,i,r,n,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,u=0,c=0,w=0,h=0,d=0;l=n;u=l+80|0;do{A[l>>1]=0;l=l+2|0}while((l|0)<(u|0));l=A[i>>1]|0;h=(l*6554|0)>>>15;u=h<<16>>16;w=(748250>>>((l+(F(u,-5)|0)<<16>>16)+((e<<16>>16)*5|0)|0)&1|0)==0;c=(A[r+(l<<1)>>1]|0)>0;d=c?32767:-32768;A[n+(l<<1)>>1]=c?8191:-8192;l=i+2|0;e=A[l>>1]|0;n=n+(e<<1)|0;if((A[r+(e<<1)>>1]|0)>0){A[n>>1]=8191;r=32767;n=(c&1|2)&65535}else{A[n>>1]=-8192;r=-32768;n=c&1}h=((e*6554|0)>>>15<<3)+(w?h:u+64|0)&65535;A[a>>1]=n;w=0;c=f+(0-(A[i>>1]|0)<<1)|0;n=f+(0-(A[l>>1]|0)<<1)|0;do{l=F(d,A[c>>1]|0)|0;c=c+2|0;if((l|0)==1073741824){t[s>>2]=1;e=2147483647}else e=l<<1;u=F(r,A[n>>1]|0)|0;n=n+2|0;if((u|0)!=1073741824){l=(u<<1)+e|0;if((u^e|0)>0&(l^e|0)<0){t[s>>2]=1;l=(e>>>31)+2147483647|0}}else{t[s>>2]=1;l=2147483647}A[o+(w<<1)>>1]=oA(l,s)|0;w=w+1|0}while((w|0)!=40);return h|0}function bi(e,i,r,n,f,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;var c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0;J=u;u=u+3440|0;_=J+3360|0;L=J+3280|0;X=J+3200|0;G=J;Y=(n&65535)<<17;j=r<<16>>16;x=r<<16>>16<40;if(x){r=Y>>16;c=j;do{n=(F(A[i+(c-j<<1)>>1]|0,r)|0)>>15;if((n|0)>32767){t[l>>2]=1;n=32767}S=i+(c<<1)|0;A[S>>1]=Dn(A[S>>1]|0,n&65535,l)|0;c=c+1|0}while((c&65535)<<16>>16!=40)}_i(i,e,_,1,l);Kr(_,X,L,6);Ni(i,X,G,l);S=1;w=2;h=1;n=0;c=1;e=-1;d=1;while(1){N=2;E=2;while(1){O=0;H=0;U=d;R=E;while(1){if(H<<16>>16<40){p=U<<16>>16;M=U<<16>>16<40;m=R<<16>>16;I=R<<16>>16<40;P=H<<16>>16;T=H;while(1){if((A[L+(P<<1)>>1]|0)>-1){Q=A[G+(P*80|0)+(P<<1)>>1]|0;if(M){C=o[_+(P<<1)>>1]|0;D=p;B=1;y=U;r=U;E=0;v=-1;while(1){b=(o[_+(D<<1)>>1]|0)+C|0;k=b<<16>>16;k=(F(k,k)|0)>>>15;g=(A[G+(P*80|0)+(D<<1)>>1]<<15)+32768+((A[G+(D*80|0)+(D<<1)>>1]|0)+Q<<14)|0;if(((F(k<<16>>16,B<<16>>16)|0)-(F(g>>16,v<<16>>16)|0)<<1|0)>0){B=g>>>16&65535;r=y;E=b&65535;v=k&65535}g=D+5|0;y=g&65535;if(y<<16>>16>=40)break;else D=g<<16>>16}}else{B=1;r=U;E=0}if(I){C=E&65535;y=r<<16>>16;D=(B<<16>>16<<14)+32768|0;k=m;E=1;Q=R;v=R;B=-1;while(1){b=(o[_+(k<<1)>>1]|0)+C<<16>>16;b=(F(b,b)|0)>>>15;g=D+(A[G+(k*80|0)+(k<<1)>>1]<<12)+((A[G+(P*80|0)+(k<<1)>>1]|0)+(A[G+(y*80|0)+(k<<1)>>1]|0)<<13)|0;if(((F(b<<16>>16,E<<16>>16)|0)-(F(g>>16,B<<16>>16)|0)<<1|0)>0){E=g>>>16&65535;v=Q;B=b&65535}g=k+5|0;Q=g&65535;if(Q<<16>>16>=40){D=E;k=B;break}else k=g<<16>>16}}else{D=1;v=R;k=-1}E=F(k<<16>>16,c<<16>>16)|0;if((E|0)==1073741824){t[l>>2]=1;g=2147483647}else g=E<<1;E=F(D<<16>>16,e<<16>>16)|0;if((E|0)==1073741824){t[l>>2]=1;B=2147483647}else B=E<<1;E=g-B|0;if(((E^g)&(B^g)|0)<0){t[l>>2]=1;E=(g>>>31)+2147483647|0}y=(E|0)>0;w=y?v:w;h=y?r:h;n=y?T:n;c=y?D:c;e=y?k:e}E=P+5|0;T=E&65535;if(T<<16>>16>=40)break;else P=E<<16>>16}}O=O+1<<16>>16;if(O<<16>>16>=3)break;else{I=R;R=U;U=H;H=I}}r=N+2|0;E=r&65535;if(E<<16>>16>=5)break;else N=r&65535}r=S+2|0;d=r&65535;if(d<<16>>16<4)S=r&65535;else{E=w;w=h;break}}r=f;c=r+80|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(c|0));k=n<<16>>16;e=A[X+(k<<1)>>1]|0;n=(k*6554|0)>>>15;r=n<<16;c=k-(((r>>16)*327680|0)>>>16)|0;switch(c<<16>>16|0){case 1:{n=r>>12;break}case 2:{n=r>>8;c=2;break}case 3:{n=n<<20>>16|8;c=1;break}case 4:{n=n<<24>>16|128;c=2;break}default:}r=f+(k<<1)|0;if(e<<16>>16>0){A[r>>1]=8191;y=32767;h=65536<<(c<<16>>16)>>>16&65535}else{A[r>>1]=-8192;y=-32768;h=0}g=w<<16>>16;w=A[X+(g<<1)>>1]|0;r=(g*6554|0)>>>15;c=r<<16;e=g-(((c>>16)*327680|0)>>>16)|0;switch(e<<16>>16|0){case 1:{r=c>>12;break}case 2:{r=c>>8;e=2;break}case 3:{r=r<<20>>16|8;e=1;break}case 4:{r=r<<24>>16|128;e=2;break}default:}c=f+(g<<1)|0;if(w<<16>>16>0){A[c>>1]=8191;b=32767;h=(65536<<(e<<16>>16)>>>16)+(h&65535)&65535}else{A[c>>1]=-8192;b=-32768}d=r+n|0;B=E<<16>>16;w=A[X+(B<<1)>>1]|0;n=(B*6554|0)>>>15;r=n<<16;c=B-(((r>>16)*327680|0)>>>16)|0;switch(c<<16>>16|0){case 1:{r=r>>12;break}case 2:{r=r>>8;c=2;break}case 3:{r=n<<20>>16|8;c=1;break}case 4:{r=n<<24>>16|128;c=2;break}default:r=n}n=f+(B<<1)|0;if(w<<16>>16>0){A[n>>1]=8191;E=32767;n=(65536<<(c<<16>>16)>>>16)+(h&65535)&65535}else{A[n>>1]=-8192;E=-32768;n=h}v=d+r|0;A[s>>1]=n;h=0;d=i+(0-k<<1)|0;e=i+(0-g<<1)|0;w=i+(0-B<<1)|0;do{n=F(A[d>>1]|0,y)|0;d=d+2|0;if((n|0)!=1073741824?(z=n<<1,!((n|0)>0&(z|0)<0)):0)c=z;else{t[l>>2]=1;c=2147483647}n=F(A[e>>1]|0,b)|0;e=e+2|0;if((n|0)!=1073741824){r=(n<<1)+c|0;if((n^c|0)>0&(r^c|0)<0){t[l>>2]=1;r=(c>>>31)+2147483647|0}}else{t[l>>2]=1;r=2147483647}c=F(A[w>>1]|0,E)|0;w=w+2|0;if((c|0)!=1073741824){n=(c<<1)+r|0;if((c^r|0)>0&(n^r|0)<0){t[l>>2]=1;n=(r>>>31)+2147483647|0}}else{t[l>>2]=1;n=2147483647}A[a+(h<<1)>>1]=oA(n,l)|0;h=h+1|0}while((h|0)!=40);n=v&65535;if(!x){u=J;return n|0}c=Y>>16;r=j;do{e=(F(A[f+(r-j<<1)>>1]|0,c)|0)>>15;if((e|0)>32767){t[l>>2]=1;e=32767}a=f+(r<<1)|0;A[a>>1]=Dn(A[a>>1]|0,e&65535,l)|0;r=r+1|0}while((r&65535)<<16>>16!=40);u=J;return n|0}function ki(e,i,r,n,f,a,s,l,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;var w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0;ne=u;u=u+3456|0;Z=ne+3448|0;V=ne+3360|0;J=ne+3368|0;K=ne+3280|0;q=ne+3200|0;W=ne;ee=(n&65535)<<17;re=r<<16>>16;$=r<<16>>16<40;if($){r=ee>>16;w=re;do{n=(F(A[i+(w-re<<1)>>1]|0,r)|0)>>15;if((n|0)>32767){t[c>>2]=1;n=32767}j=i+(w<<1)|0;A[j>>1]=Dn(A[j>>1]|0,n&65535,c)|0;w=w+1|0}while((w&65535)<<16>>16!=40)}_i(i,e,J,1,c);Kr(J,q,K,4);Ni(i,q,W,c);Y=V+2|0;A[V>>1]=0;z=V+4|0;A[Y>>1]=1;j=V+6|0;A[z>>1]=2;A[j>>1]=3;B=3;d=2;h=1;n=0;r=1;w=-1;v=3;do{_=0;L=0;G=v;X=1;x=2;while(1){if(L<<16>>16<40){R=X<<16>>16;O=X<<16>>16<40;H=x<<16>>16;U=x<<16>>16<40;N=G<<16>>16;S=G<<16>>16<40;I=L<<16>>16;m=d;p=h;T=r;M=L;while(1){if((A[K+(I<<1)>>1]|0)>-1){g=A[W+(I*80|0)+(I<<1)>>1]|0;if(O){E=o[J+(I<<1)>>1]|0;b=R;y=1;d=X;h=X;Q=0;C=-1;while(1){D=(o[J+(b<<1)>>1]|0)+E|0;k=D<<16>>16;k=(F(k,k)|0)>>>15;P=(A[W+(I*80|0)+(b<<1)>>1]<<15)+32768+((A[W+(b*80|0)+(b<<1)>>1]|0)+g<<14)|0;if(((F(k<<16>>16,y<<16>>16)|0)-(F(P>>16,C<<16>>16)|0)<<1|0)>0){y=P>>>16&65535;h=d;Q=D&65535;C=k&65535}P=b+5|0;d=P&65535;if(d<<16>>16>=40)break;else b=P<<16>>16}}else{y=1;h=X;Q=0}if(U){r=Q&65535;e=h<<16>>16;g=(y<<16>>16<<14)+32768|0;b=H;P=1;E=x;d=x;C=0;Q=-1;while(1){D=(o[J+(b<<1)>>1]|0)+r|0;k=D<<16>>16;k=(F(k,k)|0)>>>15;y=g+(A[W+(b*80|0)+(b<<1)>>1]<<12)+((A[W+(I*80|0)+(b<<1)>>1]|0)+(A[W+(e*80|0)+(b<<1)>>1]|0)<<13)|0;if(((F(k<<16>>16,P<<16>>16)|0)-(F(y>>16,Q<<16>>16)|0)<<1|0)>0){P=y>>>16&65535;d=E;C=D&65535;Q=k&65535}y=b+5|0;E=y&65535;if(E<<16>>16>=40)break;else b=y<<16>>16}}else{P=1;d=x;C=0}if(S){g=C&65535;E=d<<16>>16;e=h<<16>>16;k=(P&65535)<<16|32768;D=N;r=1;b=G;y=G;P=-1;while(1){Q=(o[J+(D<<1)>>1]|0)+g<<16>>16;Q=(F(Q,Q)|0)>>>15;C=(A[W+(D*80|0)+(D<<1)>>1]<<12)+k+((A[W+(e*80|0)+(D<<1)>>1]|0)+(A[W+(E*80|0)+(D<<1)>>1]|0)+(A[W+(I*80|0)+(D<<1)>>1]|0)<<13)|0;if(((F(Q<<16>>16,r<<16>>16)|0)-(F(C>>16,P<<16>>16)|0)<<1|0)>0){r=C>>>16&65535;y=b;P=Q&65535}C=D+5|0;b=C&65535;if(b<<16>>16>=40)break;else D=C<<16>>16}}else{r=1;y=G;P=-1}if(((F(P<<16>>16,T<<16>>16)|0)-(F(r<<16>>16,w<<16>>16)|0)<<1|0)>0){A[V>>1]=M;A[Y>>1]=h;A[z>>1]=d;A[j>>1]=y;B=y;n=M;w=P}else{d=m;h=p;r=T}}else{d=m;h=p;r=T}D=I+5|0;M=D&65535;if(M<<16>>16>=40)break;else{I=D<<16>>16;m=d;p=h;T=r}}}_=_+1<<16>>16;if(_<<16>>16>=4)break;else{N=x;S=G;x=X;X=L;G=N;L=S}}v=v+1<<16>>16}while(v<<16>>16<5);P=B;y=d;C=h;Q=n;n=f;r=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(r|0));e=Q;r=0;w=0;n=0;while(1){d=e<<16>>16;v=A[q+(d<<1)>>1]|0;e=d*13108>>16;h=d-((e*327680|0)>>>16)|0;e=A[l+(e<<1)>>1]|0;switch(h<<16>>16|0){case 1:{B=e<<16>>16<<3&65535;break}case 2:{B=e<<16>>16<<6&65535;break}case 3:{B=e<<16>>16<<10&65535;break}case 4:{B=((e&65535)<<10|512)&65535;h=3;break}default:B=e}e=f+(d<<1)|0;if(v<<16>>16>0){A[e>>1]=8191;e=32767;n=(65536<<(h<<16>>16)>>>16)+(n&65535)&65535}else{A[e>>1]=-8192;e=-32768}A[Z+(r<<1)>>1]=e;w=(B&65535)+(w&65535)|0;r=r+1|0;if((r|0)==4){D=w;break}e=A[V+(r<<1)>>1]|0}A[s>>1]=n;g=Z+2|0;b=Z+4|0;k=Z+6|0;e=A[Z>>1]|0;E=0;h=i+(0-(Q<<16>>16)<<1)|0;d=i+(0-(C<<16>>16)<<1)|0;v=i+(0-(y<<16>>16)<<1)|0;B=i+(0-(P<<16>>16)<<1)|0;do{n=F(A[h>>1]|0,e)|0;h=h+2|0;if((n|0)!=1073741824?(ie=n<<1,!((n|0)>0&(ie|0)<0)):0)w=ie;else{t[c>>2]=1;w=2147483647}n=F(A[g>>1]|0,A[d>>1]|0)|0;d=d+2|0;if((n|0)!=1073741824){r=(n<<1)+w|0;if((n^w|0)>0&(r^w|0)<0){t[c>>2]=1;r=(w>>>31)+2147483647|0}}else{t[c>>2]=1;r=2147483647}n=F(A[b>>1]|0,A[v>>1]|0)|0;v=v+2|0;if((n|0)!=1073741824){w=(n<<1)+r|0;if((n^r|0)>0&(w^r|0)<0){t[c>>2]=1;w=(r>>>31)+2147483647|0}}else{t[c>>2]=1;w=2147483647}r=F(A[k>>1]|0,A[B>>1]|0)|0;B=B+2|0;if((r|0)!=1073741824){n=(r<<1)+w|0;if((r^w|0)>0&(n^w|0)<0){t[c>>2]=1;n=(w>>>31)+2147483647|0}}else{t[c>>2]=1;n=2147483647}A[a+(E<<1)>>1]=oA(n,c)|0;E=E+1|0}while((E|0)!=40);n=D&65535;if(((re<<16)+-2621440|0)>-1|$^1){u=ne;return n|0}w=ee>>16;r=re;do{e=(F(A[f+(r-re<<1)>>1]|0,w)|0)>>15;if((e|0)>32767){t[c>>2]=1;e=32767}a=f+(r<<1)|0;A[a>>1]=Dn(A[a>>1]|0,e&65535,c)|0;r=r+1|0}while((r&65535)<<16>>16!=40);u=ne;return n|0}function Di(e,i,r,n,f,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0;S=u;u=u+3440|0;g=S+3424|0;R=S+3408|0;O=S+3240|0;b=S+3224|0;m=S+3328|0;E=S+3248|0;I=S+24|0;N=S+16|0;U=S;Si(r,e,m,2,4,4,s);Wr(m,i,E,O,4,R,4,s);Ni(r,E,I,s);Jr(8,4,4,m,I,R,O,b,s);i=n;e=i+80|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(e|0));A[U>>1]=-1;A[N>>1]=-1;p=U+2|0;A[p>>1]=-1;M=N+2|0;A[M>>1]=-1;m=U+4|0;A[m>>1]=-1;I=N+4|0;A[I>>1]=-1;O=U+6|0;A[O>>1]=-1;R=N+6|0;A[R>>1]=-1;v=0;do{h=A[b+(v<<1)>>1]|0;i=h>>>2;c=i&65535;e=h&3;w=(A[E+(h<<1)>>1]|0)>0;h=n+(h<<1)|0;B=w&1^1;A[h>>1]=(o[h>>1]|0)+(w?8191:57345);A[g+(v<<1)>>1]=w?32767:-32768;w=U+(e<<1)|0;h=A[w>>1]|0;do{if(h<<16>>16>=0){d=N+(e<<1)|0;l=(h<<16>>16|0)<=(i<<16>>16|0);i=U+((e|4)<<1)|0;if((B&65535|0)==(o[d>>1]&1|0))if(l){A[i>>1]=c;break}else{A[i>>1]=h;A[w>>1]=c;A[d>>1]=B;break}else if(l){A[i>>1]=h;A[w>>1]=c;A[d>>1]=B;break}else{A[i>>1]=c;break}}else{A[w>>1]=c;A[N+(e<<1)>>1]=B}}while(0);v=v+1|0}while((v|0)!=8);k=g+2|0;D=g+4|0;Q=g+6|0;C=g+8|0;y=g+10|0;P=g+12|0;T=g+14|0;g=A[g>>1]|0;v=0;d=r+(0-(A[b>>1]|0)<<1)|0;h=r+(0-(A[b+2>>1]|0)<<1)|0;w=r+(0-(A[b+4>>1]|0)<<1)|0;c=r+(0-(A[b+6>>1]|0)<<1)|0;i=r+(0-(A[b+8>>1]|0)<<1)|0;e=r+(0-(A[b+10>>1]|0)<<1)|0;l=r+(0-(A[b+12>>1]|0)<<1)|0;r=r+(0-(A[b+14>>1]|0)<<1)|0;do{B=F(A[d>>1]|0,g)|0;d=d+2|0;if((B|0)!=1073741824?(H=B<<1,!((B|0)>0&(H|0)<0)):0)B=H;else{t[s>>2]=1;B=2147483647}E=F(A[k>>1]|0,A[h>>1]|0)|0;h=h+2|0;if((E|0)!=1073741824){n=(E<<1)+B|0;if((E^B|0)>0&(n^B|0)<0){t[s>>2]=1;B=(B>>>31)+2147483647|0}else B=n}else{t[s>>2]=1;B=2147483647}E=F(A[D>>1]|0,A[w>>1]|0)|0;w=w+2|0;if((E|0)!=1073741824){n=(E<<1)+B|0;if((E^B|0)>0&(n^B|0)<0){t[s>>2]=1;n=(B>>>31)+2147483647|0}}else{t[s>>2]=1;n=2147483647}E=F(A[Q>>1]|0,A[c>>1]|0)|0;c=c+2|0;if((E|0)!=1073741824){B=(E<<1)+n|0;if((E^n|0)>0&(B^n|0)<0){t[s>>2]=1;B=(n>>>31)+2147483647|0}}else{t[s>>2]=1;B=2147483647}E=F(A[C>>1]|0,A[i>>1]|0)|0;i=i+2|0;if((E|0)!=1073741824){n=(E<<1)+B|0;if((E^B|0)>0&(n^B|0)<0){t[s>>2]=1;n=(B>>>31)+2147483647|0}}else{t[s>>2]=1;n=2147483647}E=F(A[y>>1]|0,A[e>>1]|0)|0;e=e+2|0;if((E|0)!=1073741824){B=(E<<1)+n|0;if((E^n|0)>0&(B^n|0)<0){t[s>>2]=1;B=(n>>>31)+2147483647|0}}else{t[s>>2]=1;B=2147483647}E=F(A[P>>1]|0,A[l>>1]|0)|0;l=l+2|0;if((E|0)!=1073741824){n=(E<<1)+B|0;if((E^B|0)>0&(n^B|0)<0){t[s>>2]=1;n=(B>>>31)+2147483647|0}}else{t[s>>2]=1;n=2147483647}E=F(A[T>>1]|0,A[r>>1]|0)|0;r=r+2|0;if((E|0)!=1073741824){B=(E<<1)+n|0;if((E^n|0)>0&(B^n|0)<0){t[s>>2]=1;B=(n>>>31)+2147483647|0}}else{t[s>>2]=1;B=2147483647}A[f+(v<<1)>>1]=oA(B,s)|0;v=v+1|0}while((v|0)!=40);A[a>>1]=A[N>>1]|0;A[a+2>>1]=A[M>>1]|0;A[a+4>>1]=A[I>>1]|0;A[a+6>>1]=A[R>>1]|0;e=A[U>>1]|0;i=A[U+8>>1]|0;l=A[p>>1]|0;A[a+8>>1]=i<<1&2|e&1|l<<2&4|(((i>>1)*327680|0)+(e>>>1<<16)+(F(l>>1,1638400)|0)|0)>>>13&65528;l=A[m>>1]|0;e=A[U+12>>1]|0;i=A[U+10>>1]|0;A[a+10>>1]=e<<1&2|l&1|i<<2&4|(((e>>1)*327680|0)+(l>>>1<<16)+(F(i>>1,1638400)|0)|0)>>>13&65528;i=A[U+14>>1]|0;l=A[O>>1]|0;e=l<<16>>16>>>1;if(!(i&2)){f=e;s=i<<16>>16;N=s>>1;N=N*327680|0;f=f<<16;N=f+N|0;N=N<<5;N=N>>16;N=N|12;N=N*2622|0;N=N>>>16;f=l&65535;f=f&1;s=s<<17;s=s&131072;N=N<<18;s=N|s;s=s>>>16;f=s|f;f=f&65535;a=a+12|0;A[a>>1]=f;u=S;return}f=4-(e<<16>>16)|0;s=i<<16>>16;N=s>>1;N=N*327680|0;f=f<<16;N=f+N|0;N=N<<5;N=N>>16;N=N|12;N=N*2622|0;N=N>>>16;f=l&65535;f=f&1;s=s<<17;s=s&131072;N=N<<18;s=N|s;s=s>>>16;f=s|f;f=f&65535;a=a+12|0;A[a>>1]=f;u=S;return}function Qi(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0;B=r<<16>>16;o=0-B|0;r=f+(o<<2)|0;f=((B-(n<<16>>16)|0)>>>2)+1&65535;if(f<<16>>16<=0)return;B=i<<16>>16>>>1&65535;if(!(B<<16>>16)){while(1){t[r>>2]=0;t[r+4>>2]=0;t[r+8>>2]=0;t[r+12>>2]=0;if(f<<16>>16>1){r=r+16|0;f=f+-1<<16>>16}else break}return}v=e+(o<<1)|0;while(1){u=v+4|0;w=A[u>>1]|0;s=A[v>>1]|0;c=w;l=B;h=e;d=v;v=v+8|0;a=0;o=0;n=0;i=0;while(1){g=A[h>>1]|0;E=(F(s<<16>>16,g)|0)+a|0;a=A[d+2>>1]|0;o=(F(a,g)|0)+o|0;s=(F(c<<16>>16,g)|0)+n|0;n=A[d+6>>1]|0;c=(F(n,g)|0)+i|0;i=A[h+2>>1]|0;a=E+(F(i,a)|0)|0;o=o+(F(w<<16>>16,i)|0)|0;u=u+4|0;n=s+(F(i,n)|0)|0;s=A[u>>1]|0;i=c+(F(s<<16>>16,i)|0)|0;l=l+-1<<16>>16;if(!(l<<16>>16))break;g=w;c=s;w=A[d+8>>1]|0;h=h+4|0;d=d+4|0;s=g}t[r>>2]=a<<1;t[r+4>>2]=o<<1;t[r+8>>2]=n<<1;t[r+12>>2]=i<<1;if(f<<16>>16<=1)break;else{r=r+16|0;f=f+-1<<16>>16}}return}function Ci(e,i,r,n,f,a,s,l,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;var w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0;C=u;u=u+16|0;D=C+2|0;Q=C;do{if(f<<16>>16>0){E=n<<16>>16;b=0;d=0;n=0;h=0;g=0;while(1){w=A[e+(b<<1)>>1]|0;v=w<<16>>16;d=(F(v,v)|0)+d|0;v=A[i+(b<<1)>>1]|0;n=(F(v,v)|0)+n|0;h=(F(A[r+(b<<1)>>1]|0,v)|0)+h|0;v=F(v,E)|0;if((v|0)==1073741824){t[c>>2]=1;B=2147483647}else B=v<<1;v=B<<1;v=(uA(w,oA((v>>1|0)==(B|0)?v:B>>31^2147483647,c)|0,c)|0)<<16>>16;v=F(v,v)|0;if((v|0)!=1073741824){w=(v<<1)+g|0;if((v^g|0)>0&(w^g|0)<0){t[c>>2]=1;w=(g>>>31)+2147483647|0}}else{t[c>>2]=1;w=2147483647}b=b+1|0;if((b&65535)<<16>>16==f<<16>>16){g=w;break}else g=w}d=d<<1;n=n<<1;h=h<<1;if((d|0)>=0){if((d|0)<400){w=g;k=14;break}}else{t[c>>2]=1;d=2147483647}B=Kn(d)|0;v=B<<16>>16;if(B<<16>>16>0){w=d<<v;if((w>>v|0)!=(d|0))w=d>>31^2147483647}else{w=0-v<<16;if((w|0)<2031616)w=d>>(w>>16);else w=0}A[a>>1]=w>>>16;d=n;E=h;w=g;n=15-(B&65535)&65535}else{n=0;h=0;w=0;k=14}}while(0);if((k|0)==14){A[a>>1]=0;d=n;E=h;n=-15}A[s>>1]=n;if((d|0)<0){t[c>>2]=1;d=2147483647}v=Kn(d)|0;h=v<<16>>16;if(v<<16>>16>0){n=d<<h;if((n>>h|0)!=(d|0))n=d>>31^2147483647}else{n=0-h<<16;if((n|0)<2031616)n=d>>(n>>16);else n=0}A[a+2>>1]=n>>>16;A[s+2>>1]=15-(v&65535);d=Kn(E)|0;h=d<<16>>16;if(d<<16>>16>0){n=E<<h;if((n>>h|0)!=(E|0))n=E>>31^2147483647}else{n=0-h<<16;if((n|0)<2031616)n=E>>(n>>16);else n=0}A[a+4>>1]=n>>>16;A[s+4>>1]=2-(d&65535);d=Kn(w)|0;n=d<<16>>16;if(d<<16>>16>0){h=w<<n;if((h>>n|0)!=(w|0))h=w>>31^2147483647}else{n=0-n<<16;if((n|0)<2031616)h=w>>(n>>16);else h=0}n=h>>>16&65535;w=15-(d&65535)&65535;A[a+6>>1]=n;A[s+6>>1]=w;if((h>>16|0)<=0){c=0;A[l>>1]=c;u=C;return}h=A[a>>1]|0;if(!(h<<16>>16)){c=0;A[l>>1]=c;u=C;return}n=Cn(aA(h,1,c)|0,n)|0;n=(n&65535)<<16;h=((uA(w,A[s>>1]|0,c)|0)&65535)+3|0;w=h&65535;h=h<<16>>16;if(w<<16>>16>0)w=w<<16>>16<31?n>>h:0;else{s=0-h<<16>>16;w=n<<s;w=(w>>s|0)==(n|0)?w:n>>31^2147483647}Un(w,D,Q,c);Q=cr((o[D>>1]|0)+65509&65535,A[Q>>1]|0,c)|0;D=Q<<13;c=oA((D>>13|0)==(Q|0)?D:Q>>31^2147483647,c)|0;A[l>>1]=c;u=C;return}function yi(e,i,r,n,f,a,s,l,c,w,h){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;var d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0;C=u;u=u+80|0;k=C;A[s>>1]=A[a>>1]|0;A[l>>1]=A[a+2>>1]|0;B=A[a+4>>1]|0;if(B<<16>>16==-32768)B=32767;else B=0-(B&65535)&65535;A[s+2>>1]=B;A[l+2>>1]=(o[a+6>>1]|0)+1;switch(e|0){case 0:case 5:{b=0;v=0;d=0;g=0;break}default:{b=0;v=1;d=1;g=1}}while(1){E=(A[f+(b<<1)>>1]|0)>>>3;A[k+(b<<1)>>1]=E;E=E<<16>>16;B=F(E,E)|0;if((B|0)!=1073741824){a=(B<<1)+v|0;if((B^v|0)>0&(a^v|0)<0){t[h>>2]=1;v=(v>>>31)+2147483647|0}else v=a}else{t[h>>2]=1;v=2147483647}B=F(A[i+(b<<1)>>1]|0,E)|0;if((B|0)!=1073741824){a=(B<<1)+d|0;if((B^d|0)>0&(a^d|0)<0){t[h>>2]=1;d=(d>>>31)+2147483647|0}else d=a}else{t[h>>2]=1;d=2147483647}B=F(A[n+(b<<1)>>1]|0,E)|0;if((B|0)!=1073741824){a=(B<<1)+g|0;if((B^g|0)>0&(a^g|0)<0){t[h>>2]=1;a=(g>>>31)+2147483647|0}}else{t[h>>2]=1;a=2147483647}b=b+1|0;if((b|0)==40){n=a;E=d;break}else g=a}d=Kn(v)|0;a=d<<16>>16;if(d<<16>>16>0){B=v<<a;if((B>>a|0)!=(v|0))B=v>>31^2147483647}else{B=0-a<<16;if((B|0)<2031616)B=v>>(B>>16);else B=0}f=s+4|0;A[f>>1]=B>>>16;i=l+4|0;A[i>>1]=-3-(d&65535);v=Kn(E)|0;a=v<<16>>16;if(v<<16>>16>0){B=E<<a;if((B>>a|0)!=(E|0))B=E>>31^2147483647}else{B=0-a<<16;if((B|0)<2031616)B=E>>(B>>16);else B=0}a=B>>>16;A[s+6>>1]=(a|0)==32768?32767:0-a&65535;A[l+6>>1]=7-(v&65535);v=Kn(n)|0;a=v<<16>>16;if(v<<16>>16>0){B=n<<a;if((B>>a|0)!=(n|0))B=n>>31^2147483647}else{B=0-a<<16;if((B|0)<2031616)B=n>>(B>>16);else B=0}A[s+8>>1]=B>>>16;A[l+8>>1]=7-(v&65535);switch(e|0){case 0:case 5:{B=0;d=0;break}default:{u=C;return}}do{d=(F(A[k+(B<<1)>>1]|0,A[r+(B<<1)>>1]|0)|0)+d|0;B=B+1|0}while((B|0)!=40);a=d<<1;B=Kn(a)|0;v=B<<16>>16;if(B<<16>>16>0){d=a<<v;if((d>>v|0)==(a|0)){D=d;Q=40}else{D=a>>31^2147483647;Q=40}}else{d=0-v<<16;if((d|0)<2031616){D=a>>(d>>16);Q=40}}if((Q|0)==40?(D>>16|0)>=1:0){h=aA(D>>>16&65535,1,h)|0;A[c>>1]=Cn(h,A[f>>1]|0)|0;A[w>>1]=65528-(B&65535)-(o[i>>1]|0);u=C;return}A[c>>1]=0;A[w>>1]=0;u=C;return}function Pi(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0,a=0;o=0;f=0;do{a=A[e+(o<<1)>>1]|0;f=(F(a,a)|0)+f|0;o=o+1|0}while((o|0)!=40);if((f|0)<0){t[n>>2]=1;f=2147483647}n=Kn(f)|0;e=n<<16>>16;if(n<<16>>16>0){o=f<<e;if((o>>e|0)==(f|0))f=o;else f=f>>31^2147483647}else{e=0-e<<16;if((e|0)<2031616)f=f>>(e>>16);else f=0}A[r>>1]=f>>>16;A[i>>1]=16-(n&65535);return}function Ti(e,i,r,n,f,o,a,s,l,c,w,h,d){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;var v=0,B=0,E=0,g=0;B=u;u=u+16|0;v=B;if(c>>>0<2){a=Bi(w,e,i,r,n,a,s,v,t[h+76>>2]|0,d)|0;d=t[l>>2]|0;A[d>>1]=a;a=A[v>>1]|0;t[l>>2]=d+4;A[d+2>>1]=a;u=B;return}switch(c|0){case 2:{a=vi(e,i,r,n,a,s,v,d)|0;d=t[l>>2]|0;A[d>>1]=a;a=A[v>>1]|0;t[l>>2]=d+4;A[d+2>>1]=a;u=B;return}case 3:{a=bi(e,i,r,n,a,s,v,d)|0;d=t[l>>2]|0;A[d>>1]=a;a=A[v>>1]|0;t[l>>2]=d+4;A[d+2>>1]=a;u=B;return}default:{if((c&-2|0)==4){a=ki(e,i,r,n,a,s,v,t[h+36>>2]|0,d)|0;d=t[l>>2]|0;A[d>>1]=a;a=A[v>>1]|0;t[l>>2]=d+4;A[d+2>>1]=a;u=B;return}if((c|0)!=6){w=f<<16>>16;w=(w<<17>>17|0)==(w|0)?w<<1:w>>>15^32767;f=r<<16>>16<40;if(!f){di(e,o,i,a,s,t[l>>2]|0,t[h+36>>2]|0,d);t[l>>2]=(t[l>>2]|0)+20;u=B;return}v=r<<16>>16;c=w<<16>>16;n=v;do{g=(F(A[i+(n-v<<1)>>1]|0,c)|0)>>>15&65535;E=i+(n<<1)|0;A[E>>1]=Dn(A[E>>1]|0,g,d)|0;n=n+1|0}while((n&65535)<<16>>16!=40);di(e,o,i,a,s,t[l>>2]|0,t[h+36>>2]|0,d);t[l>>2]=(t[l>>2]|0)+20;if(!f){u=B;return}f=r<<16>>16;c=w<<16>>16;v=f;do{n=(F(A[a+(v-f<<1)>>1]|0,c)|0)>>15;if((n|0)>32767){t[d>>2]=1;n=32767}g=a+(v<<1)|0;A[g>>1]=Dn(A[g>>1]|0,n&65535,d)|0;v=v+1|0}while((v&65535)<<16>>16!=40);u=B;return}h=n<<16>>16;h=(h<<17>>17|0)==(h|0)?h<<1:h>>>15^32767;w=r<<16>>16<40;if(!w){Di(e,o,i,a,s,t[l>>2]|0,d);t[l>>2]=(t[l>>2]|0)+14;u=B;return}v=r<<16>>16;c=h<<16>>16;n=v;do{f=(F(A[i+(n-v<<1)>>1]|0,c)|0)>>15;if((f|0)>32767){t[d>>2]=1;f=32767}g=i+(n<<1)|0;A[g>>1]=Dn(A[g>>1]|0,f&65535,d)|0;n=n+1|0}while((n&65535)<<16>>16!=40);Di(e,o,i,a,s,t[l>>2]|0,d);t[l>>2]=(t[l>>2]|0)+14;if(!w){u=B;return}f=r<<16>>16;c=h<<16>>16;v=f;do{n=(F(A[a+(v-f<<1)>>1]|0,c)|0)>>15;if((n|0)>32767){t[d>>2]=1;n=32767}g=a+(v<<1)|0;A[g>>1]=Dn(A[g>>1]|0,n&65535,d)|0;v=v+1|0}while((v&65535)<<16>>16!=40);u=B;return}}}function pi(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(4)|0;if(!i){e=-1;return e|0}if(!((Cr(i)|0)<<16>>16)){yr(t[i>>2]|0)|0;t[e>>2]=i;e=0;return e|0}else{Pr(i);dA(i);e=-1;return e|0}}function Mi(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;Pr(i);dA(t[e>>2]|0);t[e>>2]=0;return}function mi(e){e=e|0;if(!e){e=-1;return e|0}yr(t[e>>2]|0)|0;e=0;return e|0}function Ii(e,i,r,n,f,a,s,l,c,w,h,d,v,B,E,g,b,k,D,Q){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;E=E|0;g=g|0;b=b|0;k=k|0;D=D|0;Q=Q|0;var C=0,y=0,P=0,T=0;y=u;u=u+16|0;T=y+2|0;P=y;A[v>>1]=Tr(t[e>>2]|0,r,f,s,c,a,40,n,B,P,T,Q)|0;e=A[T>>1]|0;n=t[b>>2]|0;t[b>>2]=n+2;A[n>>1]=e;qn(s,A[v>>1]|0,A[B>>1]|0,40,A[P>>1]|0,Q);Ui(s,a,d,40);A[E>>1]=or(r,c,d,g,40,Q)|0;A[k>>1]=32767;if(w<<16>>16!=0?(C=A[E>>1]|0,C<<16>>16>15565):0)C=sn(i,C,Q)|0;else C=0;if(r>>>0<2){T=A[E>>1]|0;A[E>>1]=T<<16>>16>13926?13926:T;if(C<<16>>16)A[k>>1]=15565}else{if(C<<16>>16){A[k>>1]=15565;A[E>>1]=15565}if((r|0)==7){P=zr(7,A[k>>1]|0,E,0,0,D,Q)|0;T=t[b>>2]|0;t[b>>2]=T+2;A[T>>1]=P}}v=A[E>>1]|0;C=0;while(1){P=F(A[d>>1]|0,v)|0;A[h>>1]=(o[c>>1]|0)-(P>>>14);P=(F(A[s>>1]|0,v)|0)>>>14;T=l+(C<<1)|0;A[T>>1]=(o[T>>1]|0)-P;C=C+1|0;if((C|0)==40)break;else{s=s+2|0;c=c+2|0;h=h+2|0;d=d+2|0}}u=y;return}function Fi(e,i){e=e|0;i=i|0;var r=0,n=0,A=0,f=0;f=u;u=u+16|0;A=f;if(!e){e=-1;u=f;return e|0}t[e>>2]=0;r=hA(2532)|0;t[A>>2]=r;if(!r){e=-1;u=f;return e|0}Mn(r+2392|0);t[r+2188>>2]=0;t[(t[A>>2]|0)+2192>>2]=0;t[(t[A>>2]|0)+2196>>2]=0;t[(t[A>>2]|0)+2200>>2]=0;t[(t[A>>2]|0)+2204>>2]=0;t[(t[A>>2]|0)+2208>>2]=0;t[(t[A>>2]|0)+2212>>2]=0;t[(t[A>>2]|0)+2220>>2]=0;n=t[A>>2]|0;t[n+2216>>2]=i;t[n+2528>>2]=0;r=n;if((((((((pi(n+2196|0)|0)<<16>>16==0?(Gn(n+2192|0)|0)<<16>>16==0:0)?(rr(n+2200|0)|0)<<16>>16==0:0)?(mr(n+2204|0)|0)<<16>>16==0:0)?(tn(n+2208|0)|0)<<16>>16==0:0)?(un(n+2212|0)|0)<<16>>16==0:0)?(Gi(n+2220|0,t[n+2432>>2]|0)|0)<<16>>16==0:0)?(gr(n+2188|0)|0)<<16>>16==0:0){Oi(n)|0;t[e>>2]=r;e=0;u=f;return e|0}Ri(A);e=-1;u=f;return e|0}function Ri(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;br(i+2188|0);xn((t[e>>2]|0)+2192|0);nr((t[e>>2]|0)+2200|0);Mi((t[e>>2]|0)+2196|0);Fr((t[e>>2]|0)+2204|0);on((t[e>>2]|0)+2208|0);wn((t[e>>2]|0)+2212|0);xi((t[e>>2]|0)+2220|0);dA(t[e>>2]|0);t[e>>2]=0;return}function Oi(e){e=e|0;var i=0,r=0,n=0,f=0;if(!e){f=-1;return f|0}t[e+652>>2]=e+320;t[e+640>>2]=e+240;t[e+644>>2]=e+160;t[e+648>>2]=e+80;t[e+1264>>2]=e+942;t[e+1912>>2]=e+1590;n=e+1938|0;t[e+2020>>2]=n;t[e+2384>>2]=e+2304;i=e+2028|0;t[e+2024>>2]=e+2108;t[e+2528>>2]=0;kA(e|0,0,640)|0;kA(e+1282|0,0,308)|0;kA(e+656|0,0,286)|0;r=e+2224|0;f=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(f|0));n=i;f=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(f|0));i=e+1268|0;n=r;f=n+80|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(f|0));A[i>>1]=40;A[e+1270>>1]=40;A[e+1272>>1]=40;A[e+1274>>1]=40;A[e+1276>>1]=40;kr(t[e+2188>>2]|0)|0;Xn(t[e+2192>>2]|0)|0;mi(t[e+2196>>2]|0)|0;Ar(t[e+2200>>2]|0)|0;Ir(t[e+2204>>2]|0)|0;fn(t[e+2208>>2]|0)|0;cn(t[e+2212>>2]|0)|0;Xi(t[e+2220>>2]|0,t[e+2432>>2]|0)|0;A[e+2388>>1]=0;f=0;return f|0}function Hi(e,i,r,n,f,o){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;var a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,oe=0,ae=0,se=0,le=0,ue=0,ce=0,we=0,he=0,de=0,ve=0;ve=u;u=u+1184|0;z=ve;w=ve+1096|0;h=ve+1008|0;l=ve+904|0;le=ve+928|0;ue=ve+824|0;W=ve+744|0;we=ve+664|0;he=ve+584|0;q=ve+328|0;oe=ve+504|0;ae=ve+424|0;ce=ve+344|0;de=ve+248|0;V=ve+168|0;ne=ve+88|0;te=ve+68|0;fe=ve+48|0;Ae=ve+28|0;se=ve+24|0;ie=ve+22|0;$=ve+20|0;K=ve+16|0;j=ve+12|0;J=ve+10|0;ee=ve+8|0;Z=ve+6|0;re=ve+4|0;t[z>>2]=n;Y=e+2528|0;a=e+652|0;gA(t[a>>2]|0,r|0,320)|0;t[f>>2]=i;c=e+2216|0;if(!(t[c>>2]|0)){r=e+2220|0;n=0}else{n=En(t[e+2212>>2]|0,t[a>>2]|0,Y)|0;x=e+2220|0;r=x;n=ji(t[x>>2]|0,n,f,Y)|0}x=e+2392|0;Dr(t[e+2188>>2]|0,i,t[e+644>>2]|0,t[e+648>>2]|0,w,x,Y);s=e+2192|0;Yn(t[s>>2]|0,i,t[f>>2]|0,w,h,l,z,Y);zi(t[r>>2]|0,l,t[a>>2]|0,Y);if((t[f>>2]|0)==8){Yi(t[r>>2]|0,n,t[(t[s>>2]|0)+40>>2]|0,(t[e+2200>>2]|0)+32|0,z,Y);kA(e+1282|0,0,308)|0;a=e+2244|0;v=a+20|0;do{A[a>>1]=0;a=a+2|0}while((a|0)<(v|0));a=e+2284|0;v=a+20|0;do{A[a>>1]=0;a=a+2|0}while((a|0)<(v|0));a=t[e+2020>>2]|0;v=a+80|0;do{A[a>>1]=0;a=a+2|0}while((a|0)<(v|0));a=e+2028|0;v=a+80|0;do{A[a>>1]=0;a=a+2|0}while((a|0)<(v|0));Xn(t[s>>2]|0)|0;a=t[s>>2]|0;r=l;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));a=(t[s>>2]|0)+20|0;r=l;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));mi(t[e+2196>>2]|0)|0;A[e+2388>>1]=0;X=0}else X=an(t[e+2208>>2]|0,t[s>>2]|0,Y)|0;_=e+640|0;s=e+2264|0;a=e+1264|0;r=e+2204|0;n=e+2212|0;L=e+1268|0;G=e+1278|0;Or(i,2842,2862,2882,w,0,t[_>>2]|0,s,t[a>>2]|0,Y);if(i>>>0>1){Qr(t[r>>2]|0,t[n>>2]|0,i,t[a>>2]|0,K,L,G,0,t[c>>2]|0,Y);Or(i,2842,2862,2882,w,80,t[_>>2]|0,s,t[a>>2]|0,Y);Qr(t[r>>2]|0,t[n>>2]|0,i,(t[a>>2]|0)+160|0,K+2|0,L,G,1,t[c>>2]|0,Y)}else{Or(i,2842,2862,2882,w,80,t[_>>2]|0,s,t[a>>2]|0,Y);Qr(t[r>>2]|0,t[n>>2]|0,i,t[a>>2]|0,K,L,G,1,t[c>>2]|0,Y);A[K+2>>1]=A[K>>1]|0}if(t[c>>2]|0)Bn(t[n>>2]|0,K,Y);if((t[f>>2]|0)==8){he=e+656|0;de=e+976|0;gA(he|0,de|0,286)|0;de=e+320|0;gA(e|0,de|0,320)|0;u=ve;return 0}y=e+2224|0;P=e+2244|0;T=e+2284|0;p=e+2388|0;M=e+2020|0;m=e+1916|0;I=e+1912|0;F=e+2024|0;R=e+2384|0;O=e+2196|0;H=e+2208|0;U=e+2464|0;N=e+2200|0;S=e+2224|0;D=e+2244|0;Q=e+1270|0;C=e+1280|0;k=0;c=0;l=0;E=0;g=0;s=0;b=-1;while(1){d=b;b=b+1<<16>>16;E=1-(E<<16>>16)|0;n=E&65535;B=(E&65535|0)!=0;r=t[f>>2]|0;a=(r|0)==0;do{if(B)if(a){a=te;r=y;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));a=fe;r=P;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));a=Ae;r=T;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));A[se>>1]=A[p>>1]|0;i=(t[_>>2]|0)+(k<<1)|0;a=20;break}else{i=(t[_>>2]|0)+(k<<1)|0;a=19;break}else{i=(t[_>>2]|0)+(k<<1)|0;if(a)a=20;else a=19}}while(0);if((a|0)==19)nn(r,2842,2862,2882,w,h,i,T,D,t[M>>2]|0,m,(t[I>>2]|0)+(k<<1)|0,t[F>>2]|0,le,oe,t[R>>2]|0);else if((a|0)==20?(nn(0,2842,2862,2882,w,h,i,T,fe,t[M>>2]|0,m,(t[I>>2]|0)+(k<<1)|0,t[F>>2]|0,le,oe,t[R>>2]|0),B):0){a=ne;r=t[F>>2]|0;v=a+80|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0))}a=ae;r=oe;v=a+80|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));Ii(t[O>>2]|0,t[H>>2]|0,t[f>>2]|0,g,K,t[F>>2]|0,(t[I>>2]|0)+(k<<1)|0,ae,le,X,ue,we,j,J,ee,q,z,re,t[U>>2]|0,Y);switch(d<<16>>16){case-1:{if((A[G>>1]|0)>0)A[Q>>1]=A[j>>1]|0;break}case 2:{if((A[C>>1]|0)>0)A[L>>1]=A[j>>1]|0;break}default:}Ti(ue,t[F>>2]|0,A[j>>1]|0,A[p>>1]|0,A[ee>>1]|0,ae,W,he,z,t[f>>2]|0,b,x,Y);tr(t[N>>2]|0,t[f>>2]|0,oe,(t[I>>2]|0)+(k<<1)|0,W,le,ue,we,he,q,n,A[re>>1]|0,ie,$,ee,Z,z,x,Y);ln(t[H>>2]|0,A[ee>>1]|0,Y);i=t[f>>2]|0;do{if(!i)if(B){a=ce;r=le;v=a+80|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));a=de;r=he;v=a+80|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));a=V;r=W;v=a+80|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));l=A[j>>1]|0;c=A[J>>1]|0;An(t[_>>2]|0,0,g,A[ee>>1]|0,A[Z>>1]|0,h,o,le,W,we,he,te,T,fe,t[I>>2]|0,p,Y);A[p>>1]=A[se>>1]|0;s=g;break}else{a=T;r=Ae;v=a+20|0;do{A[a>>1]=A[r>>1]|0;a=a+2|0;r=r+2|0}while((a|0)<(v|0));B=s<<16>>16;qn((t[I>>2]|0)+(B<<1)|0,l,c,40,1,Y);Ui((t[I>>2]|0)+(B<<1)|0,ne,we,40);An(t[_>>2]|0,t[f>>2]|0,s,A[ie>>1]|0,A[$>>1]|0,h+-22|0,o,ce,V,we,de,S,T,D,t[I>>2]|0,se,Y);nn(t[f>>2]|0,2842,2862,2882,w,h,(t[_>>2]|0)+(k<<1)|0,T,D,t[M>>2]|0,m,(t[I>>2]|0)+(k<<1)|0,t[F>>2]|0,le,oe,t[R>>2]|0);qn((t[I>>2]|0)+(k<<1)|0,A[j>>1]|0,A[J>>1]|0,40,1,Y);Ui((t[I>>2]|0)+(k<<1)|0,t[F>>2]|0,we,40);An(t[_>>2]|0,t[f>>2]|0,g,A[ee>>1]|0,A[Z>>1]|0,h,o,le,W,we,he,S,T,D,t[I>>2]|0,p,Y);break}else An(t[_>>2]|0,i,g,A[ee>>1]|0,A[Z>>1]|0,h,o,le,W,we,he,S,T,D,t[I>>2]|0,p,Y)}while(0);i=k+40|0;g=i&65535;if(g<<16>>16>=160)break;else{k=i<<16>>16;w=w+22|0;h=h+22|0}}gA(e+1282|0,e+1602|0,308)|0;he=e+656|0;de=e+976|0;gA(he|0,de|0,286)|0;de=e+320|0;gA(e|0,de|0,320)|0;u=ve;return 0}function Ui(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0;h=n<<16>>16;if(n<<16>>16>1)w=1;else return;while(1){t=A[e>>1]|0;a=i+(w+-1<<1)|0;n=F(A[i+(w<<1)>>1]|0,t)|0;l=A[a>>1]|0;t=F(l<<16>>16,t)|0;o=(w+131071|0)>>>1;s=o&65535;f=A[e+2>>1]|0;if(!(s<<16>>16)){i=a;o=l}else{u=(o<<1)+131070&131070;c=w-u|0;o=e;do{v=(F(l<<16>>16,f)|0)+n|0;d=o;o=o+4|0;n=A[a+-2>>1]|0;f=(F(n,f)|0)+t|0;t=A[o>>1]|0;a=a+-4|0;n=v+(F(t,n)|0)|0;l=A[a>>1]|0;t=f+(F(l<<16>>16,t)|0)|0;s=s+-1<<16>>16;f=A[d+6>>1]|0}while(s<<16>>16!=0);o=i+(c+-3<<1)|0;e=e+(u+2<<1)|0;i=o;o=A[o>>1]|0}n=(F(o<<16>>16,f)|0)+n|0;A[r>>1]=t>>>12;A[r+2>>1]=n>>>12;n=(w<<16)+131072>>16;if((n|0)<(h|0)){r=r+4|0;e=e+(1-w<<1)|0;w=n}else break}return}function Ni(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0;y=u;u=u+80|0;C=y;o=20;f=e;t=1;while(1){Q=A[f>>1]|0;Q=(F(Q,Q)|0)+t|0;t=A[f+2>>1]|0;t=Q+(F(t,t)|0)|0;o=o+-1<<16>>16;if(!(o<<16>>16))break;else f=f+4|0}t=t<<1;if((t|0)<0){f=20;t=e;n=C;while(1){A[n>>1]=(A[t>>1]|0)>>>1;A[n+2>>1]=(A[t+2>>1]|0)>>>1;f=f+-1<<16>>16;if(!(f<<16>>16)){Q=C;break}else{t=t+4|0;n=n+4|0}}}else{t=Hn(t>>1,n)|0;if((t|0)<16777215)t=((t>>9)*32440|0)>>>15<<16>>16;else t=32440;o=20;f=e;n=C;while(1){A[n>>1]=((F(A[f>>1]|0,t)|0)+32|0)>>>6;A[n+2>>1]=((F(A[f+2>>1]|0,t)|0)+32|0)>>>6;o=o+-1<<16>>16;if(!(o<<16>>16)){Q=C;break}else{f=f+4|0;n=n+4|0}}}o=20;f=Q;n=r+3198|0;t=0;while(1){D=A[f>>1]|0;D=(F(D,D)|0)+t|0;A[n>>1]=(D+16384|0)>>>15;k=A[f+2>>1]|0;t=(F(k,k)|0)+D|0;A[n+-82>>1]=(t+16384|0)>>>15;o=o+-1<<16>>16;if(!(o<<16>>16))break;else{f=f+4|0;n=n+-164|0}}D=i+78|0;k=1;while(1){t=39-k|0;e=r+3120+(t<<1)|0;n=r+(t*80|0)+78|0;t=i+(t<<1)|0;s=C+(k<<1)|0;f=65575-k|0;a=f&65535;o=A[Q>>1]|0;if(!(a<<16>>16)){a=D;f=0}else{B=f+65535&65535;g=B*41|0;b=(F(k,-40)|0)-g|0;E=0-k|0;g=E-g|0;E=E-B|0;v=k+B|0;d=A[s>>1]|0;w=Q;h=D;l=r+((38-k|0)*80|0)+78|0;f=0;c=0;while(1){s=s+2|0;f=(F(d<<16>>16,o)|0)+f|0;w=w+2|0;d=A[s>>1]|0;c=(F(d<<16>>16,o)|0)+c|0;T=t;t=t+-2|0;o=A[t>>1]|0;P=A[h>>1]<<1;T=(F((F(P,A[T>>1]|0)|0)>>16,(f<<1)+32768>>16)|0)>>>15&65535;A[n>>1]=T;A[e>>1]=T;o=(F((F(P,o)|0)>>16,(c<<1)+32768>>16)|0)>>>15&65535;A[e+-2>>1]=o;A[l>>1]=o;a=a+-1<<16>>16;o=A[w>>1]|0;if(!(a<<16>>16))break;else{h=h+-2|0;e=e+-82|0;n=n+-82|0;l=l+-82|0}}s=C+(v+1<<1)|0;a=i+(38-B<<1)|0;t=i+(E+38<<1)|0;e=r+3040+(g+38<<1)|0;n=r+3040+(b+38<<1)|0}T=(F(A[s>>1]|0,o)|0)+f|0;T=(F((T<<1)+32768>>16,(F(A[a>>1]<<1,A[t>>1]|0)|0)>>16)|0)>>>15&65535;A[e>>1]=T;A[n>>1]=T;n=(k<<16)+131072|0;if((n|0)<2621440)k=n>>16;else break}u=y;return}function Si(e,i,r,n,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0;B=u;u=u+160|0;v=B;if(f<<16>>16>0){h=o&65535;d=0;s=5;do{if((d|0)<40){w=d;c=d&65535;o=0;while(1){if(c<<16>>16<40){c=c<<16>>16;l=0;do{l=(F(A[e+(c-w<<1)>>1]|0,A[i+(c<<1)>>1]|0)|0)+l|0;c=c+1|0}while((c&65535)<<16>>16!=40)}else l=0;l=l<<1;t[v+(w<<2)>>2]=l;l=lr(l)|0;o=(l|0)>(o|0)?l:o;l=w+h|0;c=l&65535;if(c<<16>>16>=40)break;else w=l<<16>>16}}else o=0;s=(o>>1)+s|0;d=d+1|0}while((d&65535)<<16>>16!=f<<16>>16)}else s=5;n=((Kn(s)|0)&65535)-(n&65535)|0;o=n<<16>>16;l=0-o<<16;s=(l|0)<2031616;l=l>>16;if((n&65535)<<16>>16>0)if(s){s=0;do{n=t[v+(s<<2)>>2]|0;i=n<<o;A[r+(s<<1)>>1]=oA((i>>o|0)==(n|0)?i:n>>31^2147483647,a)|0;s=s+1|0}while((s|0)!=40);u=B;return}else{s=0;do{n=t[v+(s<<2)>>2]|0;i=n<<o;A[r+(s<<1)>>1]=oA((i>>o|0)==(n|0)?i:n>>31^2147483647,a)|0;s=s+1|0}while((s|0)!=40);u=B;return}else if(s){s=0;do{A[r+(s<<1)>>1]=oA(t[v+(s<<2)>>2]>>l,a)|0;s=s+1|0}while((s|0)!=40);u=B;return}else{s=0;do{A[r+(s<<1)>>1]=oA(0,a)|0;s=s+1|0}while((s|0)!=40);u=B;return}}function _i(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0;y=u;u=u+160|0;C=y;k=e+2|0;D=A[e>>1]|0;Q=0;f=5;do{b=Q;s=0;while(1){w=i+(b<<1)|0;g=40-b|0;o=(g+131071|0)>>>1&65535;l=i+(b+1<<1)|0;a=F(A[w>>1]<<1,D)|0;if(!(o<<16>>16))o=k;else{E=131111-b+131070&131070;B=b+E|0;v=k;d=e;h=w;while(1){c=h+4|0;w=d+4|0;a=(F(A[l>>1]<<1,A[v>>1]|0)|0)+a|0;o=o+-1<<16>>16;a=(F(A[c>>1]<<1,A[w>>1]|0)|0)+a|0;if(!(o<<16>>16))break;else{l=h+6|0;v=d+6|0;d=w;h=c}}l=i+(B+3<<1)|0;o=e+(E+3<<1)|0}if(!(g&1))a=(F(A[l>>1]<<1,A[o>>1]|0)|0)+a|0;t[C+(b<<2)>>2]=a;a=(a|0)<0?0-a|0:a;s=(a|0)>(s|0)?a:s;a=b+5|0;if((a&65535)<<16>>16<40)b=a<<16>>16;else break}f=(s>>1)+f|0;Q=Q+1|0}while((Q|0)!=5);n=((Kn(f)|0)&65535)-(n&65535)|0;a=n<<16>>16;f=0-a<<16;s=f>>16;if((n&65535)<<16>>16>0){o=20;f=C;while(1){C=t[f>>2]|0;n=C<<a;A[r>>1]=(((n>>a|0)==(C|0)?n:C>>31^2147483647)+32768|0)>>>16;C=t[f+4>>2]|0;n=C<<a;A[r+2>>1]=(((n>>a|0)==(C|0)?n:C>>31^2147483647)+32768|0)>>>16;o=o+-1<<16>>16;if(!(o<<16>>16))break;else{r=r+4|0;f=f+8|0}}u=y;return}if((f|0)<2031616){o=20;f=C;while(1){A[r>>1]=((t[f>>2]>>s)+32768|0)>>>16;A[r+2>>1]=((t[f+4>>2]>>s)+32768|0)>>>16;o=o+-1<<16>>16;if(!(o<<16>>16))break;else{r=r+4|0;f=f+8|0}}u=y;return}else{A[r>>1]=0;C=r+4|0;A[r+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;n=C+4|0;A[C+2>>1]=0;A[n>>1]=0;C=n+4|0;A[n+2>>1]=0;A[C>>1]=0;A[C+2>>1]=0;u=y;return}}function Li(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var A=0,f=0,o=0;o=(Cn(16383,i)|0)<<16>>16;i=F(o,i<<16>>16)|0;if((i|0)==1073741824){t[n>>2]=1;A=2147483647}else A=i<<1;f=(F(o,r<<16>>16)|0)>>15;i=A+(f<<1)|0;if((A^f|0)>0&(i^A|0)<0){t[n>>2]=1;i=(A>>>31)+2147483647|0}A=2147483647-i|0;r=A>>16;i=F(r,o)|0;if((i|0)==1073741824){t[n>>2]=1;f=2147483647}else f=i<<1;o=(F((A>>>1)-(r<<15)<<16>>16,o)|0)>>15;i=f+(o<<1)|0;if((f^o|0)>0&(i^f|0)<0){t[n>>2]=1;i=(f>>>31)+2147483647|0}f=i>>16;o=e>>16;r=F(f,o)|0;r=(r|0)==1073741824?2147483647:r<<1;A=(F((i>>>1)-(f<<15)<<16>>16,o)|0)>>15;n=(A<<1)+r|0;n=(A^r|0)>0&(n^r|0)<0?(r>>>31)+2147483647|0:n;o=(F(f,(e>>>1)-(o<<15)<<16>>16)|0)>>15;e=n+(o<<1)|0;e=(n^o|0)>0&(e^n|0)<0?(n>>>31)+2147483647|0:e;n=e<<2;return((n>>2|0)==(e|0)?n:e>>31^2147483647)|0}function Gi(e,i){e=e|0;i=i|0;var r=0,n=0,f=0,o=0;if(!e){o=-1;return o|0}t[e>>2]=0;r=hA(192)|0;if(!r){o=-1;return o|0}n=r+176|0;A[n>>1]=0;A[n+2>>1]=0;A[n+4>>1]=0;A[n+6>>1]=0;A[n+8>>1]=0;A[n+10>>1]=0;n=r;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+20|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+40|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+60|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+80|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+100|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+120|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+140|0;f=i;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=r+160|0;o=n+20|0;do{A[n>>1]=0;n=n+2|0}while((n|0)<(o|0));A[r+188>>1]=7;A[r+190>>1]=32767;t[e>>2]=r;o=0;return o|0}function Xi(e,i){e=e|0;i=i|0;var r=0,n=0,t=0;if(!e){t=-1;return t|0}r=e+176|0;A[r>>1]=0;A[r+2>>1]=0;A[r+4>>1]=0;A[r+6>>1]=0;A[r+8>>1]=0;A[r+10>>1]=0;r=e;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+20|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+40|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+60|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+80|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+100|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+120|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+140|0;n=i;t=r+20|0;do{A[r>>1]=A[n>>1]|0;r=r+2|0;n=n+2|0}while((r|0)<(t|0));r=e+160|0;t=r+20|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(t|0));A[e+188>>1]=7;A[e+190>>1]=32767;t=1;return t|0}function xi(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function Yi(e,i,r,n,f,o){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;var a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;p=u;u=u+112|0;y=p+80|0;P=p+60|0;T=p+40|0;C=p;if(i<<16>>16==0?(a=e+178|0,(A[a>>1]|0)!=0):0){T=e+180|0;o=e+182|0;r=a;T=A[T>>1]|0;n=t[f>>2]|0;P=n+2|0;A[n>>1]=T;o=A[o>>1]|0;T=n+4|0;A[P>>1]=o;P=e+184|0;P=A[P>>1]|0;o=n+6|0;A[T>>1]=P;T=e+186|0;T=A[T>>1]|0;e=n+8|0;A[o>>1]=T;r=A[r>>1]|0;n=n+10|0;t[f>>2]=n;A[e>>1]=r;u=p;return}E=C+36|0;g=C+32|0;b=C+28|0;k=C+24|0;D=C+20|0;Q=C+16|0;d=C+12|0;v=C+8|0;B=C+4|0;i=C;a=i+40|0;do{t[i>>2]=0;i=i+4|0}while((i|0)<(a|0));h=7;i=0;while(1){w=A[e+160+(h<<1)>>1]|0;a=w<<16>>16;if(w<<16>>16<0)a=~((a^-4)>>2);else a=a>>>2;i=Dn(i,a&65535,o)|0;l=h*10|0;w=9;while(1){c=C+(w<<2)|0;s=t[c>>2]|0;M=A[e+(w+l<<1)>>1]|0;a=M+s|0;if((M^s|0)>-1&(a^s|0)<0){t[o>>2]=1;a=(s>>>31)+2147483647|0}t[c>>2]=a;if((w|0)>0)w=w+-1|0;else break}if((h|0)>0)h=h+-1|0;else break}a=i<<16>>16;if(i<<16>>16<0)a=~((a^-2)>>1);else a=a>>>1;A[P+18>>1]=(t[E>>2]|0)>>>3;A[P+16>>1]=(t[g>>2]|0)>>>3;A[P+14>>1]=(t[b>>2]|0)>>>3;A[P+12>>1]=(t[k>>2]|0)>>>3;A[P+10>>1]=(t[D>>2]|0)>>>3;A[P+8>>1]=(t[Q>>2]|0)>>>3;A[P+6>>1]=(t[d>>2]|0)>>>3;A[P+4>>1]=(t[v>>2]|0)>>>3;A[P+2>>1]=(t[B>>2]|0)>>>3;A[P>>1]=(t[C>>2]|0)>>>3;i=e+178|0;a=(((a<<16)+167772160|0)>>>16)+128|0;A[i>>1]=a;a=a<<16;if((a|0)<0)a=~((a>>16^-256)>>8);else a=a>>24;A[i>>1]=a;if((a|0)<=63){if((a|0)<0){A[i>>1]=0;a=0}}else{A[i>>1]=63;a=63}M=uA(a<<8&65535,11560,o)|0;M=M<<16>>16>0?0:M<<16>>16<-14436?-14436:M;A[n>>1]=M;A[n+2>>1]=M;A[n+4>>1]=M;A[n+6>>1]=M;M=((M<<16>>16)*5443|0)>>>15&65535;A[n+8>>1]=M;A[n+10>>1]=M;A[n+12>>1]=M;A[n+14>>1]=M;jn(P,y,10,o);tA(y,205,10,o);zn(y,P,10,o);n=e+182|0;M=e+180|0;Zn(r,8,P,T,n,M,o);o=n;n=i;M=A[M>>1]|0;r=t[f>>2]|0;T=r+2|0;A[r>>1]=M;o=A[o>>1]|0;M=r+4|0;A[T>>1]=o;T=e+184|0;T=A[T>>1]|0;o=r+6|0;A[M>>1]=T;e=e+186|0;e=A[e>>1]|0;M=r+8|0;A[o>>1]=e;e=A[n>>1]|0;r=r+10|0;t[f>>2]=r;A[M>>1]=e;u=p;return}function zi(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,a=0,s=0,l=0,c=0,w=0;w=u;u=u+16|0;s=w+2|0;c=w;l=e+176|0;a=(o[l>>1]|0)+1|0;a=(a&65535|0)==8?0:a&65535;A[l>>1]=a;a=e+((a<<16>>16)*10<<1)|0;f=a+20|0;do{A[a>>1]=A[i>>1]|0;a=a+2|0;i=i+2|0}while((a|0)<(f|0));i=0;f=160;while(1){a=A[r>>1]|0;i=(F(a<<1,a)|0)+i|0;if((i|0)<0){i=2147483647;break}f=f+-1<<16>>16;if(!(f<<16>>16))break;else r=r+2|0}Un(i,s,c,n);i=A[s>>1]|0;s=i<<16>>16;r=s<<10;if((r|0)!=(s<<26>>16|0)){t[n>>2]=1;r=i<<16>>16>0?32767:-32768}A[e+160+(A[l>>1]<<1)>>1]=(((A[c>>1]|0)>>>5)+r<<16)+-558432256>>17;u=w;return}function ji(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0,a=0;o=e+190|0;a=Dn(A[o>>1]|0,1,n)|0;A[o>>1]=a;f=e+188|0;do{if(!(i<<16>>16)){e=A[f>>1]|0;if(!(e<<16>>16)){A[o>>1]=0;t[r>>2]=8;e=1;break}o=(e&65535)+65535&65535;A[f>>1]=o;if((Dn(a,o,n)|0)<<16>>16<30){t[r>>2]=8;e=0}else e=0}else{A[f>>1]=7;e=0}}while(0);return e|0}function Ji(e,i,r,n,A,t,f,o){e=e|0;i=i|0;r=r|0;n=n|0;A=A|0;t=t|0;f=f|0;o=o|0;if(!(t<<16>>16)){t=e<<16>>16;if(((t<<16)+-5570560|0)<65536){i=(t*3|0)+-58+(i<<16>>16)|0;i=i&65535;return i|0}else{i=t+112|0;i=i&65535;return i|0}}if(!(f<<16>>16)){o=(e&65535)-(n&65535)<<16;i=(i<<16>>16)+2+(o>>15)+(o>>16)|0;i=i&65535;return i|0}n=n<<16>>16;n=(((r&65535)-n<<16)+-327680|0)>0?n+5&65535:r;A=A<<16>>16;r=e<<16>>16;n=(((A-(n&65535)<<16)+-262144|0)>0?A+65532&65535:n)<<16>>16;A=n*196608|0;e=A+-393216>>16;t=((i&65535)<<16)+(r*196608|0)>>16;if(!(e-t&32768)){i=r+5-n|0;i=i&65535;return i|0}if((A+196608>>16|0)>(t|0)){i=t+3-e|0;i=i&65535;return i|0}else{i=r+11-n|0;i=i&65535;return i|0}}function Ki(e,i,r,n,A){e=e|0;i=i|0;r=r|0;n=n|0;A=A|0;A=e<<16>>16;do{if(!(n<<16>>16))if(e<<16>>16<95){A=((A*393216|0)+-6881280>>16)+(i<<16>>16)|0;break}else{A=A+368|0;break}else A=((((A-(r&65535)|0)*393216|0)+196608|0)>>>16)+(i&65535)|0}while(0);return A&65535|0}function Wi(e,i,r,f){e=e|0;i=i|0;r=r|0;f=f|0;var a=0,s=0,l=0,u=0,c=0,w=0;a=t[f+96>>2]|0;if(e>>>0<8){c=(t[f+100>>2]|0)+(e<<2)|0;u=t[c>>2]|0;n[r>>0]=A[i+(A[u>>1]<<1)>>1]<<4|e|A[i+(A[u+2>>1]<<1)>>1]<<5|A[i+(A[u+4>>1]<<1)>>1]<<6|A[i+(A[u+6>>1]<<1)>>1]<<7;u=a+(e<<1)|0;f=A[u>>1]|0;if((f+-7|0)>4){a=4;l=4;e=1;while(1){w=A[i+(A[(t[c>>2]|0)+(a<<1)>>1]<<1)>>1]|0;f=r+(e<<16>>16)|0;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+((l|1)<<16>>16<<1)>>1]<<1)>>1]<<1|w&65535;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+((l|2)<<16>>16<<1)>>1]<<1)>>1]<<2|w;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+((l|3)<<16>>16<<1)>>1]<<1)>>1]<<3|w;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+(l+4<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<4|w;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+(l+5<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<5|w;n[f>>0]=w;w=o[i+(A[(t[c>>2]|0)+(l+6<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<6|w;n[f>>0]=w;s=l+8<<16>>16;e=e+1<<16>>16;n[f>>0]=o[i+(A[(t[c>>2]|0)+(l+7<<16>>16<<16>>16<<1)>>1]<<1)>>1]<<7|w;a=s<<16>>16;f=A[u>>1]|0;if((a|0)>=(f+-7|0))break;else l=s}}else{s=4;e=1}u=f+4&7;if(!u)return;a=r+(e<<16>>16)|0;n[a>>0]=0;f=0;l=0;e=0;while(1){l=(o[i+(A[(t[c>>2]|0)+(s<<16>>16<<1)>>1]<<1)>>1]&255)<<f|l&255;n[a>>0]=l;e=e+1<<16>>16;f=e<<16>>16;if((f|0)>=(u|0))break;else s=s+1<<16>>16}return}if((e|0)==15){n[r>>0]=15;return}n[r>>0]=A[i>>1]<<4|e|A[i+2>>1]<<5|A[i+4>>1]<<6|A[i+6>>1]<<7;f=a+(e<<1)|0;e=A[f>>1]|0;a=((e&65535)<<16)+262144>>16;c=a&-8;l=(c+524281|0)>>>3&65535;if(l<<16>>16>0){a=((a&-8)+524281|0)>>>3;u=((a<<3)+524280&524280)+12|0;s=1;e=i+8|0;while(1){n[r+(s<<16>>16)>>0]=o[e+2>>1]<<1|o[e>>1]|o[e+4>>1]<<2|o[e+6>>1]<<3|o[e+8>>1]<<4|o[e+10>>1]<<5|o[e+12>>1]<<6|o[e+14>>1]<<7;if(l<<16>>16>1){l=l+-1<<16>>16;s=s+1<<16>>16;e=e+16|0}else break}e=A[f>>1]|0;s=(a<<16)+65536>>16}else{u=4;s=1}e=(0-c|4)+(e&65535)<<16;l=e>>16;if(!l)return;s=r+s|0;n[s>>0]=0;if((e|0)>0){e=0;a=0;f=0}else return;do{a=a&255|A[i+(u+e<<1)>>1]<<e;n[s>>0]=a;f=f+1<<16>>16;e=f<<16>>16}while((e|0)<(l|0));return}function Vi(e,i,r,f){e=e|0;i=i|0;r=r|0;f=f|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0;h=t[f+100>>2]|0;w=t[f+96>>2]|0;n[r>>0]=e&15;w=w+(e<<1)|0;a=A[w>>1]|0;if(e>>>0>=8){u=((a&65535)<<16)+-458752|0;if((u|0)>0){c=1;l=i;while(1){i=l+16|0;f=c+1<<16>>16;n[r+(c<<16>>16)>>0]=o[l+14>>1]|o[l+12>>1]<<1|((o[l+2>>1]<<6|o[l>>1]<<7|o[l+4>>1]<<5|o[l+6>>1]<<4)&240|o[l+8>>1]<<3|o[l+10>>1]<<2)&252;u=u+-524288&-65536;if((u|0)<=0)break;else{c=f;l=i}}a=A[w>>1]|0}else f=1;c=a&7;a=r+(f<<16>>16)|0;n[a>>0]=0;if(!c)return;else{s=0;l=0;u=0;f=i}while(1){l=l&255|A[f>>1]<<7-s;n[a>>0]=l;u=u+1<<16>>16;s=u<<16>>16;if((s|0)>=(c|0))break;else f=f+2|0}return}l=a<<16>>16;if(a<<16>>16>7){a=h+(e<<2)|0;f=0;c=0;s=1;while(1){d=o[i+(A[(t[a>>2]|0)+(f<<1)>>1]<<1)>>1]<<7;l=r+(s<<16>>16)|0;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|1)<<16>>16<<1)>>1]<<1)>>1]<<6|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|2)<<16>>16<<1)>>1]<<1)>>1]<<5|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|3)<<16>>16<<1)>>1]<<1)>>1]<<4|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|4)<<16>>16<<1)>>1]<<1)>>1]<<3|d&240;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|5)<<16>>16<<1)>>1]<<1)>>1]<<2|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|6)<<16>>16<<1)>>1]<<1)>>1]<<1|d;n[l>>0]=d;u=c+8<<16>>16;s=s+1<<16>>16;n[l>>0]=d&254|o[i+(A[(t[a>>2]|0)+((c|7)<<16>>16<<1)>>1]<<1)>>1];f=u<<16>>16;l=A[w>>1]|0;if((f|0)>=(l+-7|0))break;else c=u}}else{u=0;s=1}w=l&7;c=r+(s<<16>>16)|0;n[c>>0]=0;if(!w)return;s=h+(e<<2)|0;a=0;f=0;l=0;while(1){f=(o[i+(A[(t[s>>2]|0)+(u<<16>>16<<1)>>1]<<1)>>1]&255)<<7-a|f&255;n[c>>0]=f;l=l+1<<16>>16;a=l<<16>>16;if((a|0)>=(w|0))break;else u=u+1<<16>>16}return}function qi(e,i,r,f){e=e|0;i=i|0;r=r|0;f=f|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0;h=t[f+100>>2]|0;w=t[f+96>>2]|0;n[r>>0]=e<<3;w=w+(e<<1)|0;a=A[w>>1]|0;if(e>>>0>=8){u=((a&65535)<<16)+-458752|0;if((u|0)>0){c=1;l=i;while(1){i=l+16|0;f=c+1<<16>>16;n[r+(c<<16>>16)>>0]=o[l+14>>1]|o[l+12>>1]<<1|((o[l+2>>1]<<6|o[l>>1]<<7|o[l+4>>1]<<5|o[l+6>>1]<<4)&240|o[l+8>>1]<<3|o[l+10>>1]<<2)&252;u=u+-524288&-65536;if((u|0)<=0)break;else{c=f;l=i}}a=A[w>>1]|0}else f=1;c=a&7;a=r+(f<<16>>16)|0;n[a>>0]=0;if(!c)return;else{s=0;l=0;u=0;f=i}while(1){l=l&255|A[f>>1]<<7-s;n[a>>0]=l;u=u+1<<16>>16;s=u<<16>>16;if((s|0)>=(c|0))break;else f=f+2|0}return}l=a<<16>>16;if(a<<16>>16>7){a=h+(e<<2)|0;f=0;c=0;s=1;while(1){d=o[i+(A[(t[a>>2]|0)+(f<<1)>>1]<<1)>>1]<<7;l=r+(s<<16>>16)|0;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|1)<<16>>16<<1)>>1]<<1)>>1]<<6|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|2)<<16>>16<<1)>>1]<<1)>>1]<<5|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|3)<<16>>16<<1)>>1]<<1)>>1]<<4|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|4)<<16>>16<<1)>>1]<<1)>>1]<<3|d&240;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|5)<<16>>16<<1)>>1]<<1)>>1]<<2|d;n[l>>0]=d;d=o[i+(A[(t[a>>2]|0)+((c|6)<<16>>16<<1)>>1]<<1)>>1]<<1|d;n[l>>0]=d;u=c+8<<16>>16;s=s+1<<16>>16;n[l>>0]=d&254|o[i+(A[(t[a>>2]|0)+((c|7)<<16>>16<<1)>>1]<<1)>>1];f=u<<16>>16;l=A[w>>1]|0;if((f|0)>=(l+-7|0))break;else c=u}}else{u=0;s=1}w=l&7;c=r+(s<<16>>16)|0;n[c>>0]=0;if(!w)return;s=h+(e<<2)|0;a=0;f=0;l=0;while(1){f=(o[i+(A[(t[s>>2]|0)+(u<<16>>16<<1)>>1]<<1)>>1]&255)<<7-a|f&255;n[c>>0]=f;l=l+1<<16>>16;a=l<<16>>16;if((a|0)>=(w|0))break;else u=u+1<<16>>16}return}function Zi(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(16)|0;if(!i){e=-1;return e|0}A[i>>1]=0;A[i+2>>1]=0;A[i+4>>1]=0;A[i+6>>1]=0;A[i+8>>1]=0;A[i+10>>1]=0;A[i+12>>1]=0;A[i+14>>1]=0;t[e>>2]=i;e=0;return e|0}function $i(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=0;A[e+2>>1]=0;A[e+4>>1]=0;A[e+6>>1]=0;A[e+8>>1]=0;A[e+10>>1]=0;A[e+12>>1]=0;A[e+14>>1]=0;e=0;return e|0}function er(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function ir(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var o=0,a=0,s=0,l=0,u=0;s=i<<16>>16<2722?0:i<<16>>16<5444?1:2;a=sA(r,1,f)|0;u=e+4|0;if(!(r<<16>>16>200?a<<16>>16>(A[u>>1]|0):0)){a=A[e>>1]|0;if(a<<16>>16){o=a+-1<<16>>16;A[e>>1]=o;o=o<<16>>16!=0;l=5}}else{A[e>>1]=8;o=1;l=5}if((l|0)==5)if((s&65535)<2&o)s=(s&65535)+1&65535;l=e+6|0;A[l>>1]=i;o=mn(l,5)|0;if(!(s<<16>>16!=0|o<<16>>16>5443))if(o<<16>>16<0)o=16384;else{o=o<<16>>16;o=(((o<<18>>18|0)==(o|0)?o<<2:o>>>15^32767)<<16>>16)*24660>>15;if((o|0)>32767){t[f>>2]=1;o=32767}o=16384-o&65535}else o=0;a=e+2|0;if(!(A[a>>1]|0))o=aA(o,1,f)|0;A[n>>1]=o;A[a>>1]=o;A[u>>1]=r;n=e+12|0;A[e+14>>1]=A[n>>1]|0;r=e+10|0;A[n>>1]=A[r>>1]|0;e=e+8|0;A[r>>1]=A[e>>1]|0;A[e>>1]=A[l>>1]|0;return}function rr(e){e=e|0;var i=0,r=0,n=0,f=0,o=0,a=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(68)|0;n=i;if(!i){e=-1;return e|0}t[i+28>>2]=0;f=i+64|0;t[f>>2]=0;o=i+32|0;if(((yn(o)|0)<<16>>16==0?(a=i+48|0,(yn(a)|0)<<16>>16==0):0)?(Zi(f)|0)<<16>>16==0:0){r=i+32|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(r|0));yn(o)|0;yn(a)|0;$i(t[f>>2]|0)|0;t[e>>2]=n;e=0;return e|0}er(f);dA(i);e=-1;return e|0}function nr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;er(i+64|0);dA(t[e>>2]|0);t[e>>2]=0;return}function Ar(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}i=e+32|0;r=e;n=r+32|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));yn(i)|0;yn(e+48|0)|0;$i(t[e+64>>2]|0)|0;n=0;return n|0}function tr(e,i,r,n,f,a,s,l,c,w,h,d,v,B,E,g,b,k,D){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;E=E|0;g=g|0;b=b|0;k=k|0;D=D|0;var Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0;R=u;u=u+48|0;C=R+34|0;P=R+32|0;p=R+30|0;T=R+28|0;y=R+18|0;Q=R+8|0;M=R+6|0;m=R+4|0;I=R+2|0;F=R;if(i){h=e+32|0;Pn(h,i,f,C,P,M,m,D);do{if((i|0)!=7){yi(i,a,s,l,c,w,y,Q,F,I,D);if((i|0)==5){xr(t[e+64>>2]|0,r,n,f,y,Q,A[M>>1]|0,A[m>>1]|0,A[C>>1]|0,A[P>>1]|0,40,A[F>>1]|0,A[I>>1]|0,d,E,g,p,T,b,k,D);break}else{e=jr(i,A[C>>1]|0,A[P>>1]|0,y,Q,d,E,g,p,T,k,D)|0;a=t[b>>2]|0;t[b>>2]=a+2;A[a>>1]=e;break}}else{A[g>>1]=fr(s,c,D)|0;e=Yr(7,A[C>>1]|0,A[P>>1]|0,g,p,T,t[k+68>>2]|0,D)|0;a=t[b>>2]|0;t[b>>2]=a+2;A[a>>1]=e}}while(0);Tn(h,A[p>>1]|0,A[T>>1]|0);u=R;return}if(!(h<<16>>16)){Pn(e+48|0,0,f,C,P,M,m,D);yi(0,a,s,l,c,w,y,Q,F,I,D);Pi(a,M,m,D);a=Gr(e+32|0,A[e>>1]|0,A[e+2>>1]|0,e+8|0,e+18|0,A[e+4>>1]|0,A[e+6>>1]|0,f,A[C>>1]|0,A[P>>1]|0,Q,y,A[M>>1]|0,A[m>>1]|0,d,v,B,E,g,D)|0;A[t[e+28>>2]>>1]=a;u=R;return}h=t[b>>2]|0;t[b>>2]=h+2;t[e+28>>2]=h;h=e+48|0;r=e+32|0;v=r;v=o[v>>1]|o[v+2>>1]<<16;r=r+4|0;r=o[r>>1]|o[r+2>>1]<<16;b=h;B=b;A[B>>1]=v;A[B+2>>1]=v>>>16;b=b+4|0;A[b>>1]=r;A[b+2>>1]=r>>>16;b=e+40|0;r=b;r=o[r>>1]|o[r+2>>1]<<16;b=b+4|0;b=o[b>>1]|o[b+2>>1]<<16;B=e+56|0;v=B;A[v>>1]=r;A[v+2>>1]=r>>>16;B=B+4|0;A[B>>1]=b;A[B+2>>1]=b>>>16;B=e+2|0;Pn(h,0,f,e,B,M,m,D);yi(0,a,s,l,c,w,e+18|0,e+8|0,F,I,D);l=(o[I>>1]|0)+1|0;b=A[F>>1]|0;v=l<<16>>16;if((l&65535)<<16>>16<0){k=0-v<<16;if((k|0)<983040)k=b<<16>>16>>(k>>16)&65535;else k=0}else{b=b<<16>>16;k=b<<v;if((k<<16>>16>>v|0)==(b|0))k=k&65535;else k=(b>>>15^32767)&65535}A[g>>1]=k;Pi(a,e+4|0,e+6|0,D);Lr(h,A[e>>1]|0,A[B>>1]|0,A[I>>1]|0,A[F>>1]|0,D);u=R;return}function fr(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0;t=10;r=e;n=i;e=0;while(1){e=(F(A[n>>1]>>1,A[r>>1]|0)|0)+e|0;e=e+(F(A[n+2>>1]>>1,A[r+2>>1]|0)|0)|0;e=e+(F(A[n+4>>1]>>1,A[r+4>>1]|0)|0)|0;e=e+(F(A[n+6>>1]>>1,A[r+6>>1]|0)|0)|0;t=t+-1<<16>>16;if(!(t<<16>>16))break;else{r=r+8|0;n=n+8|0}}r=e<<1;t=Kn(r|1)|0;f=t<<16>>16;r=(t<<16>>16<17?r>>17-f:r<<f+-17)&65535;if(r<<16>>16<1){i=0;return i|0}else{t=20;n=i;e=0}while(1){i=A[n>>1]>>1;i=((F(i,i)|0)>>>2)+e|0;e=A[n+2>>1]>>1;e=i+((F(e,e)|0)>>>2)|0;t=t+-1<<16>>16;if(!(t<<16>>16))break;else n=n+4|0}e=e<<3;t=Kn(e)|0;i=t<<16>>16;r=Cn(r,(t<<16>>16<16?e>>16-i:e<<i+-16)&65535)|0;i=(f<<16)+327680-(i<<16)|0;e=i>>16;if((i|0)>65536)e=r<<16>>16>>e+-1;else e=r<<16>>16<<1-e;i=e&65535;return i|0}function or(e,i,r,n,f,o){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0;t[o>>2]=0;c=f<<16>>16;l=c>>>2&65535;h=l<<16>>16==0;if(h)s=0;else{u=l;a=r;s=0;while(1){d=A[a>>1]|0;d=(F(d,d)|0)+s|0;s=A[a+2>>1]|0;s=d+(F(s,s)|0)|0;d=A[a+4>>1]|0;d=s+(F(d,d)|0)|0;s=A[a+6>>1]|0;s=d+(F(s,s)|0)|0;u=u+-1<<16>>16;if(!(u<<16>>16))break;else a=a+8|0}}if(!((s>>>31^1)&(s|0)<1073741824)){s=c>>>1&65535;if(!(s<<16>>16))s=1;else{a=s;u=r;s=0;while(1){d=A[u>>1]>>2;d=(F(d,d)|0)+s|0;s=A[u+2>>1]>>2;s=d+(F(s,s)|0)|0;a=a+-1<<16>>16;if(!(a<<16>>16))break;else u=u+4|0}s=s<<1|1}d=(Kn(s)|0)<<16>>16;w=d+65532&65535;d=oA(s<<d,o)|0}else{c=s<<1|1;d=Kn(c)|0;w=d;d=oA(c<<(d<<16>>16),o)|0}t[o>>2]=0;do{if(!(f<<16>>16)){s=1;v=14}else{c=f;u=i;s=r;f=0;while(1){B=F(A[s>>1]|0,A[u>>1]|0)|0;a=B+f|0;if((B^f|0)>0&(a^f|0)<0)break;c=c+-1<<16>>16;if(!(c<<16>>16)){v=13;break}else{u=u+2|0;s=s+2|0;f=a}}if((v|0)==13){s=a<<1|1;v=14;break}t[o>>2]=1;if(h)s=1;else{s=i;a=0;while(1){a=(F(A[r>>1]>>2,A[s>>1]|0)|0)+a|0;a=a+(F(A[r+2>>1]>>2,A[s+2>>1]|0)|0)|0;a=a+(F(A[r+4>>1]>>2,A[s+4>>1]|0)|0)|0;a=a+(F(A[r+6>>1]>>2,A[s+6>>1]|0)|0)|0;l=l+-1<<16>>16;if(!(l<<16>>16))break;else{s=s+8|0;r=r+8|0}}s=a<<1|1}r=(Kn(s)|0)<<16>>16;a=r+65532&65535;r=oA(s<<r,o)|0}}while(0);if((v|0)==14){r=Kn(s)|0;a=r;r=oA(s<<(r<<16>>16),o)|0}A[n>>1]=d;s=w<<16>>16;A[n+2>>1]=15-s;A[n+4>>1]=r;a=a<<16>>16;A[n+6>>1]=15-a;if(r<<16>>16<4){B=0;return B|0}a=aA(Cn(r<<16>>16>>>1&65535,d)|0,a-s&65535,o)|0;a=a<<16>>16>19661?19661:a;if((e|0)!=7){B=a;return B|0}B=a&65532;return B|0}function ar(e,i,r,n,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,h=0;l=(n&65535)+65535&65535;if(l<<16>>16>f<<16>>16){w=n+-1<<16>>16<<16>>16;n=-2147483648;while(1){u=t[e+(0-w<<2)>>2]|0;s=u<<1;u=(s>>1|0)==(u|0)?s:u>>31^2147483647;s=t[e+(~w<<2)>>2]|0;c=u-s|0;if(((c^u)&(u^s)|0)<0){t[a>>2]=1;c=(u>>>31)+2147483647|0}u=t[e+(1-w<<2)>>2]|0;s=c-u|0;if(((s^c)&(u^c)|0)<0){t[a>>2]=1;s=(c>>>31)+2147483647|0}c=lr(s)|0;n=(c|0)<(n|0)?n:c;l=l+-1<<16>>16;if(l<<16>>16<=f<<16>>16){f=n;break}else w=w+-1|0}}else f=-2147483648;e=r<<16>>16>0;if(e){n=0;s=i;l=0;while(1){c=A[s>>1]|0;c=F(c,c)|0;if((c|0)!=1073741824){u=(c<<1)+l|0;if((c^l|0)>0&(u^l|0)<0){t[a>>2]=1;l=(l>>>31)+2147483647|0}else l=u}else{t[a>>2]=1;l=2147483647}n=n+1<<16>>16;if(n<<16>>16>=r<<16>>16)break;else s=s+2|0}if(e){e=0;w=i;n=i+-2|0;s=0;while(1){c=F(A[n>>1]|0,A[w>>1]|0)|0;if((c|0)!=1073741824){u=(c<<1)+s|0;if((c^s|0)>0&(u^s|0)<0){t[a>>2]=1;s=(s>>>31)+2147483647|0}else s=u}else{t[a>>2]=1;s=2147483647}e=e+1<<16>>16;if(e<<16>>16>=r<<16>>16)break;else{w=w+2|0;n=n+2|0}}}else s=0}else{l=0;s=0}n=l<<1;n=(n>>1|0)==(l|0)?n:l>>31^2147483647;r=s<<1;r=(r>>1|0)==(s|0)?r:s>>31^2147483647;l=n-r|0;if(((l^n)&(r^n)|0)<0){t[a>>2]=1;l=(n>>>31)+2147483647|0}e=lr(l)|0;w=((Kn(f)|0)&65535)+65535|0;l=w<<16>>16;if((w&65535)<<16>>16>0){n=f<<l;if((n>>l|0)!=(f|0))n=f>>31^2147483647}else{l=0-l<<16;if((l|0)<2031616)n=f>>(l>>16);else n=0}c=Kn(e)|0;s=c<<16>>16;if(c<<16>>16>0){l=e<<s;if((l>>s|0)==(e|0))h=33;else{l=e>>31^2147483647;h=33}}else{l=0-s<<16;if((l|0)<2031616){l=e>>(l>>16);h=33}else u=0}if((h|0)==33)if(l>>>0>65535)u=Cn(n>>>16&65535,l>>>16&65535)|0;else u=0;l=c&65535;h=(w&65535)-l|0;n=h&65535;if(!(h&32768)){a=aA(u,n,a)|0;A[o>>1]=a;return 0}if(n<<16>>16!=-32768){a=l-w|0;s=a<<16>>16;if((a&65535)<<16>>16<0){s=0-s<<16;if((s|0)>=983040){a=0;A[o>>1]=a;return 0}a=u<<16>>16>>(s>>16)&65535;A[o>>1]=a;return 0}}else s=32767;n=u<<16>>16;l=n<<s;if((l<<16>>16>>s|0)==(n|0)){a=l&65535;A[o>>1]=a;return 0}a=(n>>>15^32767)&65535;A[o>>1]=a;return 0}function sr(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;if(r<<16>>16)i=i<<16>>16<<1&65535;if(i<<16>>16<0){e=e+-2|0;i=(i&65535)+6&65535}r=i<<16>>16;n=6-r<<16>>16;i=(F(A[3468+(r<<1)>>1]|0,A[e>>1]|0)|0)+16384|0;i=i+(F(A[3468+(n<<1)>>1]|0,A[e+2>>1]|0)|0)|0;i=i+(F(A[3468+(r+6<<1)>>1]|0,A[e+-2>>1]|0)|0)|0;i=i+(F(A[3468+(n+6<<1)>>1]|0,A[e+4>>1]|0)|0)|0;i=(F(A[3468+(r+12<<1)>>1]|0,A[e+-4>>1]|0)|0)+i|0;i=i+(F(A[3468+(n+12<<1)>>1]|0,A[e+6>>1]|0)|0)|0;r=i+(F(A[3468+(r+18<<1)>>1]|0,A[e+-6>>1]|0)|0)|0;return(r+(F(A[3468+(n+18<<1)>>1]|0,A[e+8>>1]|0)|0)|0)>>>15&65535|0}function lr(e){e=e|0;e=e-(e>>>31)|0;return e>>31^e|0}function ur(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0;if(!(e<<16>>16))return;else{t=3518;f=3538;n=r}while(1){n=n+2|0;i=i+2|0;s=A[i>>1]|0;a=A[t>>1]|0;r=F(a,s)|0;r=(r|0)==1073741824?2147483647:r<<1;s=(F(A[f>>1]|0,s)|0)>>15;o=(s<<1)+r|0;o=(r^s|0)>0&(o^r|0)<0?(r>>>31)+2147483647|0:o;a=(F(a,A[n>>1]|0)|0)>>15;r=o+(a<<1)|0;r=(o^a|0)>0&(r^o|0)<0?(o>>>31)+2147483647|0:r;A[i>>1]=r>>>16;A[n>>1]=(r>>>1)-(r>>16<<15);e=e+-1<<16>>16;if(!(e<<16>>16))break;else{t=t+2|0;f=f+2|0}}return}function cr(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,A=0;n=e&65535;A=n<<16;i=i<<16>>16;e=(i<<1)+A|0;if(!((i^A|0)>0&(e^A|0)<0)){A=e;return A|0}t[r>>2]=1;A=(n>>>15)+2147483647|0;return A|0}function wr(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}t[e>>2]=0;i=hA(22)|0;if(!i){n=-1;return n|0}A[i>>1]=4096;r=i+2|0;n=r+20|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));t[e>>2]=i;n=0;return n|0}function hr(e){e=e|0;var i=0;if(!e){i=-1;return i|0}A[e>>1]=4096;e=e+2|0;i=e+20|0;do{A[e>>1]=0;e=e+2|0}while((e|0)<(i|0));i=0;return i|0}function dr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function vr(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0;N=u;u=u+96|0;H=N+66|0;U=N+44|0;O=N+22|0;s=N;M=i+2|0;R=r+2|0;I=(A[R>>1]<<1)+(o[M>>1]<<16)|0;a=lr(I)|0;a=Li(a,A[i>>1]|0,A[r>>1]|0,f)|0;if((I|0)>0)a=Er(a)|0;T=a>>16;A[t>>1]=oA(a,f)|0;k=a>>20;m=H+2|0;A[m>>1]=k;I=U+2|0;A[I>>1]=(a>>>5)-(k<<15);k=F(T,T)|0;k=(k|0)==1073741824?2147483647:k<<1;T=(F((a>>>1)-(T<<15)<<16>>16,T)|0)>>15;p=T<<1;P=p+k|0;P=(T^k|0)>0&(P^k|0)<0?(k>>>31)+2147483647|0:P;p=P+p|0;p=2147483647-(lr((P^T|0)>0&(p^P|0)<0?(P>>>31)+2147483647|0:p)|0)|0;P=p>>16;T=A[i>>1]|0;k=F(P,T)|0;k=(k|0)==1073741824?2147483647:k<<1;T=(F((p>>>1)-(P<<15)<<16>>16,T)|0)>>15;p=(T<<1)+k|0;p=(T^k|0)>0&(p^k|0)<0?(k>>>31)+2147483647|0:p;P=(F(A[r>>1]|0,P)|0)>>15;k=p+(P<<1)|0;k=(p^P|0)>0&(k^p|0)<0?(p>>>31)+2147483647|0:k;p=Kn(k)|0;k=k<<(p<<16>>16);P=O+2|0;T=s+2|0;l=k;k=(k>>>1)-(k>>16<<15)|0;D=s+4|0;Q=O+4|0;C=2;y=2;while(1){b=l>>>16;a=b&65535;B=k&65535;E=y+-1|0;w=H+(E<<1)|0;g=U+(E<<1)|0;v=1;d=w;h=g;c=M;s=R;l=0;while(1){S=A[c>>1]|0;_=((F(A[h>>1]|0,S)|0)>>15)+l|0;l=A[d>>1]|0;l=_+(F(l,S)|0)+((F(l,A[s>>1]|0)|0)>>15)|0;v=v+1<<16>>16;if((v<<16>>16|0)>=(y|0))break;else{d=d+-2|0;h=h+-2|0;c=c+2|0;s=s+2|0}}_=(o[i+(y<<1)>>1]<<16)+(l<<5)+(A[r+(y<<1)>>1]<<1)|0;l=Li(lr(_)|0,a,B,f)|0;if((_|0)>0)l=Er(l)|0;s=p<<16>>16;if(p<<16>>16>0){a=l<<s;if((a>>s|0)!=(l|0))a=l>>31^2147483647}else{s=0-s<<16;if((s|0)<2031616)a=l>>(s>>16);else a=0}v=a>>16;if((y|0)<5)A[t+(E<<1)>>1]=(a+32768|0)>>>16;_=(a>>>16)-(a>>>31)|0;if(((_<<16>>31^_)&65535)<<16>>16>32750){a=16;break}h=(a>>>1)-(v<<15)<<16>>16;d=1;l=g;s=P;c=T;while(1){S=(F(A[l>>1]|0,v)|0)>>15;g=A[w>>1]|0;_=(F(g,h)|0)>>15;g=F(g,v)|0;_=g+S+(A[U+(d<<1)>>1]|0)+(A[H+(d<<1)>>1]<<15)+_|0;A[s>>1]=_>>>15;A[c>>1]=_&32767;d=d+1|0;if((d&65535)<<16>>16==C<<16>>16)break;else{w=w+-2|0;l=l+-2|0;s=s+2|0;c=c+2|0}}A[Q>>1]=a>>20;A[D>>1]=(a>>>5)-(A[O+(y<<1)>>1]<<15);S=F(v,v)|0;S=(S|0)==1073741824?2147483647:S<<1;a=(F(h,v)|0)>>15;_=a<<1;s=_+S|0;s=(a^S|0)>0&(s^S|0)<0?(S>>>31)+2147483647|0:s;_=s+_|0;_=2147483647-(lr((s^a|0)>0&(_^s|0)<0?(s>>>31)+2147483647|0:_)|0)|0;s=_>>16;a=b<<16>>16;a=((F(s,k<<16>>16)|0)>>15)+(F(s,a)|0)+((F((_>>>1)-(s<<15)<<16>>16,a)|0)>>15)<<1;s=(Kn(a)|0)<<16>>16;a=a<<s;_=y<<1;gA(m|0,P|0,_|0)|0;gA(I|0,T|0,_|0)|0;y=y+1|0;if((y|0)>=11){a=20;break}else{p=s+(p&65535)&65535;l=a;k=(a>>1)-(a>>16<<15)|0;D=D+2|0;Q=Q+2|0;C=C+1<<16>>16}}if((a|0)==16){a=n+22|0;do{A[n>>1]=A[e>>1]|0;n=n+2|0;e=e+2|0}while((n|0)<(a|0));_=t;S=_;A[S>>1]=0;A[S+2>>1]=0>>>16;_=_+4|0;A[_>>1]=0;A[_+2>>1]=0>>>16;u=N;return 0}else if((a|0)==20){A[n>>1]=4096;_=((A[I>>1]|0)+8192+(A[m>>1]<<15)|0)>>>14&65535;A[n+2>>1]=_;A[e+2>>1]=_;_=((A[U+4>>1]|0)+8192+(A[H+4>>1]<<15)|0)>>>14&65535;A[n+4>>1]=_;A[e+4>>1]=_;_=((A[U+6>>1]|0)+8192+(A[H+6>>1]<<15)|0)>>>14&65535;A[n+6>>1]=_;A[e+6>>1]=_;_=((A[U+8>>1]|0)+8192+(A[H+8>>1]<<15)|0)>>>14&65535;A[n+8>>1]=_;A[e+8>>1]=_;_=((A[U+10>>1]|0)+8192+(A[H+10>>1]<<15)|0)>>>14&65535;A[n+10>>1]=_;A[e+10>>1]=_;_=((A[U+12>>1]|0)+8192+(A[H+12>>1]<<15)|0)>>>14&65535;A[n+12>>1]=_;A[e+12>>1]=_;_=((A[U+14>>1]|0)+8192+(A[H+14>>1]<<15)|0)>>>14&65535;A[n+14>>1]=_;A[e+14>>1]=_;_=((A[U+16>>1]|0)+8192+(A[H+16>>1]<<15)|0)>>>14&65535;A[n+16>>1]=_;A[e+16>>1]=_;_=((A[U+18>>1]|0)+8192+(A[H+18>>1]<<15)|0)>>>14&65535;A[n+18>>1]=_;A[e+18>>1]=_;_=((A[U+20>>1]|0)+8192+(A[H+20>>1]<<15)|0)>>>14&65535;A[n+20>>1]=_;A[e+20>>1]=_;u=N;return 0}return 0}function Br(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;n=e>>16;A[i>>1]=n;A[r>>1]=(e>>>1)-(n<<15);return}function Er(e){e=e|0;return((e|0)==-2147483648?2147483647:0-e|0)|0}function gr(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(4)|0;if(!i){e=-1;return e|0}t[i>>2]=0;if(!((wr(i)|0)<<16>>16)){hr(t[i>>2]|0)|0;t[e>>2]=i;e=0;return e|0}else{dr(i);dA(i);e=-1;return e|0}}function br(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dr(i);dA(t[e>>2]|0);t[e>>2]=0;return}function kr(e){e=e|0;if(!e){e=-1;return e|0}hr(t[e>>2]|0)|0;e=0;return e|0}function Dr(e,i,r,n,A,f,o){e=e|0;i=i|0;r=r|0;n=n|0;A=A|0;f=f|0;o=o|0;var a=0,s=0,l=0,c=0;c=u;u=u+64|0;l=c+48|0;s=c+22|0;a=c;if((i|0)==7){r=t[f+116>>2]|0;hi(n,10,a,s,t[f+112>>2]|0,o)|0;ur(10,a,s,o);vr(t[e>>2]|0,a,s,A+22|0,l,o)|0;hi(n,10,a,s,r,o)|0;ur(10,a,s,o);vr(t[e>>2]|0,a,s,A+66|0,l,o)|0;u=c;return}else{hi(r,10,a,s,t[f+108>>2]|0,o)|0;ur(10,a,s,o);vr(t[e>>2]|0,a,s,A+66|0,l,o)|0;u=c;return}}function Qr(e,i,r,n,t,f,o,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;if((r|0)==6){A[t>>1]=Rr(e,i,n,20,143,80,f,o,a,s,l)|0;return}A[o>>1]=0;A[o+2>>1]=0;if(r>>>0<2){A[t>>1]=pr(i,r,n,20,143,160,a,s,l)|0;return}if(r>>>0<6){A[t>>1]=pr(i,r,n,20,143,80,a,s,l)|0;return}else{A[t>>1]=pr(i,r,n,18,143,80,a,s,l)|0;return}}function Cr(e){e=e|0;var i=0;if((e|0)!=0?(t[e>>2]=0,i=hA(2)|0,(i|0)!=0):0){A[i>>1]=0;t[e>>2]=i;i=0}else i=-1;return i|0}function yr(e){e=e|0;if(!e)e=-1;else{A[e>>1]=0;e=0}return e|0}function Pr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function Tr(e,i,r,n,t,f,a,s,l,c,w,h){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;var d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0;J=u;u=u+240|0;b=J+160|0;k=J+80|0;G=J;L=A[3558+(i*18|0)>>1]|0;j=A[3558+(i*18|0)+2>>1]|0;d=A[3558+(i*18|0)+4>>1]|0;X=A[3558+(i*18|0)+6>>1]|0;E=A[3558+(i*18|0)+12>>1]|0;B=A[3558+(i*18|0)+14>>1]|0;v=A[3558+(i*18|0)+16>>1]|0;e:do{switch(s<<16>>16){case 0:case 80:if(i>>>0<2&s<<16>>16==80){x=(o[e>>1]|0)-(E&65535)|0;x=(x<<16>>16|0)<(v<<16>>16|0)?v:x&65535;_=B<<16>>16;Y=(x&65535)+_&65535;z=Y<<16>>16>143;x=z?143-_&65535:x;Y=z?143:Y;z=1;break e}else{x=(o[r+((s<<16>>16!=0&1)<<1)>>1]|0)-(o[3558+(i*18|0)+8>>1]|0)|0;x=(x<<16>>16|0)<(v<<16>>16|0)?v:x&65535;_=A[3558+(i*18|0)+10>>1]|0;Y=(x&65535)+_&65535;z=Y<<16>>16>143;x=z?143-_&65535:x;Y=z?143:Y;z=0;break e}default:{x=(o[e>>1]|0)-(E&65535)|0;x=(x<<16>>16|0)<(v<<16>>16|0)?v:x&65535;_=B<<16>>16;Y=(x&65535)+_&65535;z=Y<<16>>16>143;x=z?143-_&65535:x;Y=z?143:Y;z=1}}}while(0);S=x&65535;s=S+65532|0;g=s&65535;N=(Y&65535)+4&65535;_=s<<16>>16;s=0-(s&65535)|0;E=s&65535;Ui(n+(s<<16>>16<<1)|0,f,b,a);s=a<<16>>16;T=s>>>1&65535;D=T<<16>>16==0;if(D)a=1;else{a=T;v=b;r=k;B=0;while(1){U=A[v>>1]|0;A[r>>1]=U>>>2;U=(F(U,U)|0)+B|0;B=A[v+2>>1]|0;A[r+2>>1]=B>>>2;B=U+(F(B,B)|0)|0;a=a+-1<<16>>16;if(!(a<<16>>16))break;else{v=v+4|0;r=r+4|0}}a=(B|0)<33554433}U=a?0:2;P=a?b:k;Q=a?b:k;e:do{if(g<<16>>16<=N<<16>>16){C=s+-1|0;R=P+(C<<1)|0;O=f+(C<<1)|0;H=P+(s+-2<<1)|0;M=C>>>1;m=M&65535;y=m<<16>>16==0;I=a?12:14;M=(M<<1)+131070&131070;r=s+-3-M|0;p=P+(r<<1)|0;M=P+(s+-4-M<<1)|0;f=f+(r<<1)|0;if(!D){D=_;while(1){k=T;b=Q;v=t;B=0;a=0;while(1){k=k+-1<<16>>16;s=A[b>>1]|0;B=(F(s,A[v>>1]|0)|0)+B|0;s=(F(s,s)|0)+a|0;a=A[b+2>>1]|0;B=B+(F(a,A[v+2>>1]|0)|0)|0;a=s+(F(a,a)|0)|0;if(!(k<<16>>16))break;else{b=b+4|0;v=v+4|0}}b=Hn(a<<1,h)|0;a=b>>16;v=B<<1>>16;k=F(a,v)|0;k=(k|0)==1073741824?2147483647:k<<1;v=(F((b>>>1)-(a<<15)<<16>>16,v)|0)>>15;b=(v<<1)+k|0;b=(v^k|0)>0&(b^k|0)<0?(k>>>31)+2147483647|0:b;a=(F(a,B&32767)|0)>>15;k=b+(a<<1)|0;A[G+(D-_<<1)>>1]=(b^a|0)>0&(k^b|0)<0?(b>>>31)+65535|0:k;if(g<<16>>16!=N<<16>>16){E=E+-1<<16>>16;k=A[n+(E<<16>>16<<1)>>1]|0;if(y){b=C;a=H;B=O;v=R}else{b=m;a=H;B=O;v=R;while(1){D=(F(A[B>>1]|0,k)|0)>>I;A[v>>1]=D+(o[a>>1]|0);D=(F(A[B+-2>>1]|0,k)|0)>>I;A[v+-2>>1]=D+(o[a+-2>>1]|0);b=b+-1<<16>>16;if(!(b<<16>>16)){b=r;a=M;B=f;v=p;break}else{a=a+-4|0;B=B+-4|0;v=v+-4|0}}}D=(F(A[B>>1]|0,k)|0)>>I;A[v>>1]=D+(o[a>>1]|0);A[P+(b+-1<<1)>>1]=k>>U}g=g+1<<16>>16;if(g<<16>>16>N<<16>>16)break e;else D=g<<16>>16}}if(y){a=P+(s+-2<<1)|0;B=_;while(1){Hn(0,h)|0;A[G+(B-_<<1)>>1]=0;if(g<<16>>16!=N<<16>>16){E=E+-1<<16>>16;t=A[n+(E<<16>>16<<1)>>1]|0;m=(F(A[O>>1]|0,t)|0)>>I;A[R>>1]=m+(o[H>>1]|0);A[a>>1]=t>>U}g=g+1<<16>>16;if(g<<16>>16>N<<16>>16)break e;else B=g<<16>>16}}b=P+(r+-1<<1)|0;a=_;while(1){Hn(0,h)|0;A[G+(a-_<<1)>>1]=0;if(g<<16>>16!=N<<16>>16){E=E+-1<<16>>16;a=A[n+(E<<16>>16<<1)>>1]|0;B=m;v=H;r=O;s=R;while(1){t=(F(A[r>>1]|0,a)|0)>>I;A[s>>1]=t+(o[v>>1]|0);t=(F(A[r+-2>>1]|0,a)|0)>>I;A[s+-2>>1]=t+(o[v+-2>>1]|0);B=B+-1<<16>>16;if(!(B<<16>>16))break;else{v=v+-4|0;r=r+-4|0;s=s+-4|0}}t=(F(A[f>>1]|0,a)|0)>>I;A[p>>1]=t+(o[M>>1]|0);A[b>>1]=a>>U}g=g+1<<16>>16;if(g<<16>>16>N<<16>>16)break;else a=g<<16>>16}}}while(0);g=x<<16>>16;r=S+1&65535;if(r<<16>>16>Y<<16>>16)f=x;else{E=x;s=A[G+(g-_<<1)>>1]|0;while(1){B=A[G+((r<<16>>16)-_<<1)>>1]|0;v=B<<16>>16<s<<16>>16;E=v?E:r;r=r+1<<16>>16;if(r<<16>>16>Y<<16>>16){f=E;break}else s=v?s:B}}e:do{if(!(z<<16>>16==0?f<<16>>16>L<<16>>16:0)){if(!(i>>>0<4&z<<16>>16!=0)){E=G+((f<<16>>16)-_<<1)|0;B=sr(E,d,j,h)|0;r=(d&65535)+1&65535;if(r<<16>>16<=X<<16>>16)while(1){v=sr(E,r,j,h)|0;s=v<<16>>16>B<<16>>16;d=s?r:d;r=r+1<<16>>16;if(r<<16>>16>X<<16>>16)break;else B=s?v:B}if((i+-7|0)>>>0<2){X=d<<16>>16==-3;r=(X<<31>>31)+f<<16>>16;d=X?3:d;break}switch(d<<16>>16){case-2:{r=f+-1<<16>>16;d=1;break e}case 2:{r=f+1<<16>>16;d=-1;break e}default:{r=f;break e}}}L=A[e>>1]|0;L=((L<<16>>16)-g|0)>5?g+5&65535:L;s=Y<<16>>16;L=(s-(L<<16>>16)|0)>4?s+65532&65535:L;s=f<<16>>16;r=L<<16>>16;if((s|0)==(r+-1|0)?1:f<<16>>16==L<<16>>16){E=G+(s-_<<1)|0;s=sr(E,d,j,h)|0;r=(d&65535)+1&65535;if(r<<16>>16<=X<<16>>16)while(1){B=sr(E,r,j,h)|0;v=B<<16>>16>s<<16>>16;d=v?r:d;r=r+1<<16>>16;if(r<<16>>16>X<<16>>16)break;else s=v?B:s}if((i+-7|0)>>>0<2){X=d<<16>>16==-3;r=(X<<31>>31)+f<<16>>16;d=X?3:d;break}switch(d<<16>>16){case-2:{r=f+-1<<16>>16;d=1;break e}case 2:{r=f+1<<16>>16;d=-1;break e}default:{r=f;break e}}}if((s|0)==(r+-2|0)){r=G+(s-_<<1)|0;s=sr(r,0,j,h)|0;if((i|0)!=8){d=0;E=1;while(1){B=sr(r,E,j,h)|0;v=B<<16>>16>s<<16>>16;d=v?E:d;E=E+1<<16>>16;if(E<<16>>16>X<<16>>16)break;else s=v?B:s}if((i+-7|0)>>>0>=2)switch(d<<16>>16){case-2:{r=f+-1<<16>>16;d=1;break e}case 2:{r=f+1<<16>>16;d=-1;break e}default:{r=f;break e}}}else d=0;X=d<<16>>16==-3;r=(X<<31>>31)+f<<16>>16;d=X?3:d;break}if((s|0)==(r+1|0)){E=G+(s-_<<1)|0;r=sr(E,d,j,h)|0;s=(d&65535)+1&65535;if(s<<16>>16<=0)while(1){v=sr(E,s,j,h)|0;B=v<<16>>16>r<<16>>16;d=B?s:d;s=s+1<<16>>16;if(s<<16>>16>0)break;else r=B?v:r}if((i+-7|0)>>>0<2){X=d<<16>>16==-3;r=(X<<31>>31)+f<<16>>16;d=X?3:d;break}switch(d<<16>>16){case-2:{r=f+-1<<16>>16;d=1;break e}case 2:{r=f+1<<16>>16;d=-1;break e}default:{r=f;break e}}}else{r=f;d=0}}else{r=f;d=0}}while(0);if((i+-7|0)>>>0>1){X=e;e=Ji(r,d,A[e>>1]|0,x,Y,z,i>>>0<4&1,h)|0;A[w>>1]=e;A[X>>1]=r;A[c>>1]=j;A[l>>1]=d;u=J;return r|0}else{h=Ki(r,d,x,z,h)|0;A[w>>1]=h;A[e>>1]=r;A[c>>1]=j;A[l>>1]=d;u=J;return r|0}}function pr(e,i,r,n,f,o,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;var c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;M=u;u=u+1200|0;T=M+1188|0;P=M+580|0;p=M+578|0;y=M+576|0;k=M;Q=M+582|0;C=(s|0)!=0;do{if(C)if(i>>>0<2){vn(e,1,l);break}else{vn(e,0,l);break}}while(0);D=f<<16>>16;h=0-D|0;w=r+(h<<1)|0;h=h&65535;E=o<<16>>16;do{if(h<<16>>16<o<<16>>16){B=h;v=w;h=0;while(1){g=A[v>>1]|0;h=(F(g<<1,g)|0)+h|0;if((h|0)<0)break;B=B+1<<16>>16;if(B<<16>>16>=o<<16>>16){b=14;break}else v=v+2|0}if((b|0)==14){if((h|0)<1048576){b=15;break}gA(Q|0,w|0,E+D<<1|0)|0;g=0;break}c=E+D|0;d=c>>>1;B=d&65535;if(!(B<<16>>16))h=Q;else{g=((d<<1)+131070&131070)+2|0;E=g-D|0;v=Q;while(1){A[v>>1]=(A[w>>1]|0)>>>3;A[v+2>>1]=(A[w+2>>1]|0)>>>3;B=B+-1<<16>>16;if(!(B<<16>>16))break;else{w=w+4|0;v=v+4|0}}w=r+(E<<1)|0;h=Q+(g<<1)|0}if(!(c&1))g=3;else{A[h>>1]=(A[w>>1]|0)>>>3;g=3}}else b=15}while(0);if((b|0)==15){g=E+D|0;h=g>>>1;d=h&65535;if(!(d<<16>>16))h=Q;else{E=((h<<1)+131070&131070)+2|0;v=E-D|0;B=Q;while(1){A[B>>1]=A[w>>1]<<3;A[B+2>>1]=A[w+2>>1]<<3;d=d+-1<<16>>16;if(!(d<<16>>16))break;else{w=w+4|0;B=B+4|0}}w=r+(v<<1)|0;h=Q+(E<<1)|0}if(!(g&1))g=-3;else{A[h>>1]=A[w>>1]<<3;g=-3}}E=k+(D<<2)|0;v=Q+(D<<1)|0;Qi(v,o,f,n,E);c=(i|0)==7&1;h=n<<16>>16;w=h<<2;if((w|0)!=(h<<18>>16|0)){t[l>>2]=1;w=n<<16>>16>0?32767:-32768}B=Mr(e,E,v,g,c,o,f,w&65535,T,s,l)|0;h=h<<1;d=Mr(e,E,v,g,c,o,w+65535&65535,h&65535,P,s,l)|0;h=Mr(e,E,v,g,c,o,h+65535&65535,n,p,s,l)|0;if(a<<16>>16==1&C){ar(E,v,o,f,n,y,l)|0;hn(e,A[y>>1]|0)}w=A[T>>1]|0;c=A[P>>1]|0;if(((w<<16>>16)*55706>>16|0)>=(c<<16>>16|0)){P=w;T=B;P=P<<16>>16;P=P*55706|0;P=P>>16;p=A[p>>1]|0;p=p<<16>>16;p=(P|0)<(p|0);p=p?h:T;u=M;return p|0}A[T>>1]=c;P=c;T=d;P=P<<16>>16;P=P*55706|0;P=P>>16;p=A[p>>1]|0;p=p<<16>>16;p=(P|0)<(p|0);p=p?h:T;u=M;return p|0}function Mr(e,i,r,n,f,o,a,s,l,u,c){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;u=u|0;c=c|0;var w=0,h=0,d=0,v=0,B=0;if(a<<16>>16<s<<16>>16){s=-2147483648;d=a}else{d=a;w=-2147483648;h=i+(0-(a<<16>>16)<<2)|0;i=a;while(1){a=t[h>>2]|0;B=(a|0)<(w|0);i=B?i:d;w=B?w:a;d=d+-1<<16>>16;if(d<<16>>16<s<<16>>16){s=w;d=i;break}else h=h+4|0}}i=o<<16>>16>>>2&65535;if(!(i<<16>>16))i=0;else{w=i;a=r+(0-(d<<16>>16)<<1)|0;i=0;while(1){B=A[a>>1]|0;B=(F(B,B)|0)+i|0;i=A[a+2>>1]|0;i=B+(F(i,i)|0)|0;B=A[a+4>>1]|0;B=i+(F(B,B)|0)|0;i=A[a+6>>1]|0;i=B+(F(i,i)|0)|0;w=w+-1<<16>>16;if(!(w<<16>>16))break;else a=a+8|0}i=i<<1}if(u)dn(e,s,i,c);i=Hn(i,c)|0;a=f<<16>>16!=0;if(a)i=(i|0)>1073741823?2147483647:i<<1;f=s>>16;e=i>>16;c=F(e,f)|0;c=(c|0)==1073741824?2147483647:c<<1;i=(F((i>>>1)-(e<<15)<<16>>16,f)|0)>>15;B=(i<<1)+c|0;B=(i^c|0)>0&(B^c|0)<0?(c>>>31)+2147483647|0:B;f=(F(e,(s>>>1)-(f<<15)<<16>>16)|0)>>15;i=B+(f<<1)|0;i=(B^f|0)>0&(i^B|0)<0?(B>>>31)+2147483647|0:i;if(!a){A[l>>1]=i;return d|0}a=n<<16>>16;if(n<<16>>16>0)if(n<<16>>16<31){a=i>>a;v=16}else a=0;else{v=0-a<<16>>16;a=i<<v;a=(a>>v|0)==(i|0)?a:i>>31^2147483647;v=16}if((v|0)==16){if((a|0)>65535){A[l>>1]=32767;return d|0}if((a|0)<-65536){A[l>>1]=-32768;return d|0}}A[l>>1]=a>>>1;return d|0}function mr(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(6)|0;if(!i){e=-1;return e|0}A[i>>1]=40;A[i+2>>1]=0;A[i+4>>1]=0;t[e>>2]=i;e=0;return e|0}function Ir(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=40;A[e+2>>1]=0;A[e+4>>1]=0;e=0;return e|0}function Fr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function Rr(e,i,r,n,f,o,a,s,l,c,w){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;var h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0;I=u;u=u+1200|0;D=I+1186|0;Q=I+1184|0;m=I+1182|0;k=I;y=I+576|0;C=f<<16>>16;M=y+(C<<1)|0;h=(0-C&65535)<<16>>16<o<<16>>16;if(h){E=0-f<<16>>16<<16>>16;d=0;do{B=A[r+(E<<1)>>1]|0;B=F(B,B)|0;if((B|0)!=1073741824){v=(B<<1)+d|0;if((B^d|0)>0&(v^d|0)<0){t[w>>2]=1;d=(d>>>31)+2147483647|0}else d=v}else{t[w>>2]=1;d=2147483647}E=E+1|0}while((E&65535)<<16>>16!=o<<16>>16)}else d=0;if((2147483646-d&d|0)>=0)if((d|0)==2147483647){if(h){d=0-f<<16>>16<<16>>16;do{A[y+(d+C<<1)>>1]=aA(A[r+(d<<1)>>1]|0,3,w)|0;d=d+1|0}while((d&65535)<<16>>16!=o<<16>>16)}}else g=14;else{t[w>>2]=1;g=14}do{if((g|0)==14){if((1048575-d&d|0)<0){t[w>>2]=1;d=(d>>>31)+2147483647|0}else d=d+-1048576|0;if((d|0)>=0){if(!h)break;p=0-f<<16>>16<<16>>16;gA(y+(C+p<<1)|0,r+(p<<1)|0,(((o+f<<16>>16)+-1&65535)<<1)+2|0)|0;break}if(h){d=0-f<<16>>16<<16>>16;do{p=A[r+(d<<1)>>1]|0;A[y+(d+C<<1)>>1]=(p<<19>>19|0)==(p|0)?p<<3:p>>>15^32767;d=d+1|0}while((d&65535)<<16>>16!=o<<16>>16)}}}while(0);T=k+(C<<2)|0;Qi(M,o,f,n,T);E=A[e>>1]|0;p=e+4|0;P=s+(l<<16>>16<<1)|0;e:do{if(f<<16>>16<n<<16>>16)b=f;else{if((A[p>>1]|0)<=0){r=f;s=-2147483648;B=f;g=3402;while(1){Br(t[k+(C-(r<<16>>16)<<2)>>2]|0,D,Q,w);v=A[Q>>1]|0;d=A[g>>1]|0;E=F(d,A[D>>1]|0)|0;if((E|0)==1073741824){t[w>>2]=1;h=2147483647}else h=E<<1;b=(F(d,v<<16>>16)|0)>>15;E=h+(b<<1)|0;if((h^b|0)>0&(E^h|0)<0){t[w>>2]=1;E=(h>>>31)+2147483647|0}v=(E|0)<(s|0);B=v?B:r;r=r+-1<<16>>16;if(r<<16>>16<n<<16>>16){b=B;break e}else{s=v?s:E;g=g+-2|0}}}s=f;h=-2147483648;B=f;b=2902+(C+123-(E<<16>>16)<<1)|0;r=3402;while(1){Br(t[k+(C-(s<<16>>16)<<2)>>2]|0,D,Q,w);g=A[Q>>1]|0;v=A[r>>1]|0;E=F(v,A[D>>1]|0)|0;if((E|0)==1073741824){t[w>>2]=1;d=2147483647}else d=E<<1;g=(F(v,g<<16>>16)|0)>>15;E=d+(g<<1)|0;if((d^g|0)>0&(E^d|0)<0){t[w>>2]=1;E=(d>>>31)+2147483647|0}Br(E,D,Q,w);g=A[Q>>1]|0;v=A[b>>1]|0;E=F(v,A[D>>1]|0)|0;if((E|0)==1073741824){t[w>>2]=1;d=2147483647}else d=E<<1;g=(F(v,g<<16>>16)|0)>>15;E=d+(g<<1)|0;if((d^g|0)>0&(E^d|0)<0){t[w>>2]=1;E=(d>>>31)+2147483647|0}v=(E|0)<(h|0);B=v?B:s;s=s+-1<<16>>16;if(s<<16>>16<n<<16>>16){b=B;break}else{h=v?h:E;b=b+-2|0;r=r+-2|0}}}}while(0);if(o<<16>>16>0){s=0;r=M;g=y+(C-(b<<16>>16)<<1)|0;B=0;d=0;while(1){E=A[g>>1]|0;v=F(E,A[r>>1]|0)|0;if((v|0)!=1073741824){h=(v<<1)+B|0;if((v^B|0)>0&(h^B|0)<0){t[w>>2]=1;B=(B>>>31)+2147483647|0}else B=h}else{t[w>>2]=1;B=2147483647}h=F(E,E)|0;if((h|0)!=1073741824){v=(h<<1)+d|0;if((h^d|0)>0&(v^d|0)<0){t[w>>2]=1;d=(d>>>31)+2147483647|0}else d=v}else{t[w>>2]=1;d=2147483647}s=s+1<<16>>16;if(s<<16>>16>=o<<16>>16)break;else{r=r+2|0;g=g+2|0}}}else{B=0;d=0}v=(c|0)==0;if(!v){vn(i,0,w);dn(i,B,d,w)}h=(oA(d,w)|0)<<16>>16;if((h*13107|0)==1073741824){t[w>>2]=1;d=2147483647}else d=h*26214|0;h=B-d|0;if(((h^B)&(d^B)|0)<0){t[w>>2]=1;h=(B>>>31)+2147483647|0}c=oA(h,w)|0;A[P>>1]=c;if(c<<16>>16>0){h=a+6|0;A[a+8>>1]=A[h>>1]|0;c=a+4|0;A[h>>1]=A[c>>1]|0;h=a+2|0;A[c>>1]=A[h>>1]|0;A[h>>1]=A[a>>1]|0;A[a>>1]=b;A[e>>1]=mn(a,5)|0;A[e+2>>1]=32767;h=32767}else{A[e>>1]=b;e=e+2|0;h=((A[e>>1]|0)*29491|0)>>>15&65535;A[e>>1]=h}A[p>>1]=((uA(h,9830,w)|0)&65535)>>>15^1;if(v){u=I;return b|0}if((uA(l,1,w)|0)<<16>>16){u=I;return b|0}ar(T,M,o,f,n,m,w)|0;hn(i,A[m>>1]|0);u=I;return b|0}function Or(e,i,r,n,A,t,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;A=A|0;t=t|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0;s=u;u=u+48|0;c=s+22|0;l=s;i=e>>>0<6?i:r;r=t<<16>>16>0?22:0;e=A+(r<<1)|0;wA(e,i,c);wA(e,n,l);e=t<<16>>16;t=a+(e<<1)|0;fA(c,f+(e<<1)|0,t,40);cA(l,t,t,40,o,1);r=A+(((r<<16)+720896|0)>>>16<<1)|0;wA(r,i,c);wA(r,n,l);e=(e<<16)+2621440>>16;a=a+(e<<1)|0;fA(c,f+(e<<1)|0,a,40);cA(l,a,a,40,o,1);u=s;return}function Hr(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(12)|0;if(!i){e=-1;return e|0}A[i>>1]=0;A[i+2>>1]=0;A[i+4>>1]=0;A[i+6>>1]=0;A[i+8>>1]=0;A[i+10>>1]=0;t[e>>2]=i;e=0;return e|0}function Ur(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=0;A[e+2>>1]=0;A[e+4>>1]=0;A[e+6>>1]=0;A[e+8>>1]=0;A[e+10>>1]=0;e=0;return e|0}function Nr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function Sr(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0;c=e+10|0;t=A[c>>1]|0;w=e+8|0;n=A[w>>1]|0;if(!(r<<16>>16)){e=n;u=t;A[c>>1]=u;A[w>>1]=e;return}a=e+4|0;s=e+6|0;l=e+2|0;o=A[s>>1]|0;u=A[a>>1]|0;f=r;r=t;while(1){h=(F(A[e>>1]|0,-3733)|0)+(((u<<16>>16)*7807|0)+((o<<16>>16)*7807>>15))|0;A[e>>1]=u;h=h+((F(A[l>>1]|0,-3733)|0)>>15)|0;A[l>>1]=o;h=((r<<16>>16)*1899|0)+h+(F(n<<16>>16,-3798)|0)|0;r=A[i>>1]|0;h=h+((r<<16>>16)*1899|0)|0;A[i>>1]=(h+2048|0)>>>12;t=h>>>12;u=t&65535;A[a>>1]=u;o=(h<<3)-(t<<15)&65535;A[s>>1]=o;f=f+-1<<16>>16;if(!(f<<16>>16))break;else{h=n;i=i+2|0;n=r;r=h}}A[c>>1]=n;A[w>>1]=r;return}function _r(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0,a=0,s=0;f=A[(t[n+88>>2]|0)+(e<<1)>>1]|0;if(!(f<<16>>16))return;s=r;a=t[(t[n+92>>2]|0)+(e<<2)>>2]|0;while(1){r=A[a>>1]|0;if(!(r<<16>>16))r=0;else{e=A[i>>1]|0;o=r;n=s+((r<<16>>16)+-1<<1)|0;while(1){r=e<<16>>16;A[n>>1]=r&1;o=o+-1<<16>>16;if(!(o<<16>>16))break;else{e=r>>>1&65535;n=n+-2|0}}r=A[a>>1]|0}i=i+2|0;f=f+-1<<16>>16;if(!(f<<16>>16))break;else{s=s+(r<<16>>16<<1)|0;a=a+2|0}}return}function Lr(e,i,r,n,f,a){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;var s=0,l=0,c=0,w=0,h=0;h=u;u=u+16|0;c=h+2|0;w=h;s=f<<16>>16;if(f<<16>>16<1){a=-5443;w=-32768;Tn(e,w,a);u=h;return}l=Vn(14,r,a)|0;if((s|0)<(l<<16>>16|0))r=n;else{r=(n&65535)+1&65535;f=s>>>1&65535}n=Cn(f,l&65535)|0;A[w>>1]=n;Un(n<<16>>16,c,w,a);A[c>>1]=((((r&65535)-(i&65535)<<16)+-65536|0)>>>16)+(o[c>>1]|0);n=sA(A[w>>1]|0,5,a)|0;s=A[c>>1]|0;n=((s&65535)<<10)+(n&65535)&65535;if(n<<16>>16>18284){a=3037;w=18284;Tn(e,w,a);u=h;return}f=A[w>>1]|0;s=s<<16>>16;if((s*24660|0)==1073741824){t[a>>2]=1;r=2147483647}else r=s*49320|0;w=(f<<16>>16)*24660>>15;s=r+(w<<1)|0;if((r^w|0)>0&(s^r|0)<0){t[a>>2]=1;s=(r>>>31)+2147483647|0}w=s<<13;a=oA((w>>13|0)==(s|0)?w:s>>31^2147483647,a)|0;w=n;Tn(e,w,a);u=h;return}function Gr(e,i,r,n,f,a,s,l,c,w,h,d,v,B,E,g,b,k,D,Q){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;E=E|0;g=g|0;b=b|0;k=k|0;D=D|0;Q=Q|0;var C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,oe=0;oe=u;u=u+80|0;ne=oe+66|0;Ae=oe+64|0;te=oe+62|0;fe=oe+60|0;G=oe+40|0;X=oe+20|0;_=oe;A[ne>>1]=i;A[Ae>>1]=c;A[te>>1]=w;S=Vn(14,r,Q)|0;re=S&65535;A[fe>>1]=re;L=Vn(14,w,Q)|0;N=(o[n>>1]|0)+65523|0;A[_>>1]=N;m=(o[n+2>>1]|0)+65522|0;I=_+2|0;A[I>>1]=m;R=((i&65535)<<16)+-720896|0;T=R>>16;R=(R>>>15)+15+(o[n+4>>1]|0)|0;O=_+4|0;A[O>>1]=R;H=(o[n+6>>1]|0)+T|0;U=_+6|0;A[U>>1]=H;T=T+1+(o[n+8>>1]|0)|0;p=_+8|0;A[p>>1]=T;C=(o[h>>1]|0)+65523&65535;A[_+10>>1]=C;M=(o[h+2>>1]|0)+65522&65535;A[_+12>>1]=M;y=((c&65535)<<16)+-720896|0;n=y>>16;y=(y>>>15)+15+(o[h+4>>1]|0)&65535;A[_+14>>1]=y;P=(o[h+6>>1]|0)+n&65535;A[_+16>>1]=P;n=n+1+(o[h+8>>1]|0)&65535;A[_+18>>1]=n;ee=(a&65535)-(v&65535)<<16;c=ee>>16;if((ee|0)>0){w=s;r=B<<16>>16>>c&65535}else{w=s<<16>>16>>0-c&65535;r=B}if((sA(r,1,Q)|0)<<16>>16>w<<16>>16)r=1;else r=(((w<<16>>16)+3>>2|0)>(r<<16>>16|0))<<31>>31;h=N+r&65535;A[_>>1]=h;ee=m+r&65535;A[I>>1]=ee;$=R+r&65535;A[O>>1]=$;Z=H+r&65535;A[U>>1]=Z;q=T+r&65535;A[p>>1]=q;c=n<<16>>16>h<<16>>16?n:h;c=P<<16>>16>c<<16>>16?P:c;c=y<<16>>16>c<<16>>16?y:c;c=M<<16>>16>c<<16>>16?M:c;c=C<<16>>16>c<<16>>16?C:c;c=q<<16>>16>c<<16>>16?q:c;c=Z<<16>>16>c<<16>>16?Z:c;c=$<<16>>16>c<<16>>16?$:c;c=(ee<<16>>16>c<<16>>16?ee:c)+1&65535;n=0;while(1){r=c-(h&65535)|0;h=r&65535;w=o[f>>1]<<16;r=r<<16>>16;if(h<<16>>16>0)h=h<<16>>16<31?w>>r:0;else{ee=0-r<<16>>16;h=w<<ee;h=(h>>ee|0)==(w|0)?h:w>>31^2147483647}ee=h>>16;A[G+(n<<1)>>1]=ee;A[X+(n<<1)>>1]=(h>>>1)-(ee<<15);n=n+1|0;if((n|0)==5){r=5;w=d;break}h=A[_+(n<<1)>>1]|0;f=f+2|0}while(1){n=c-(C&65535)|0;C=n&65535;h=o[w>>1]<<16;n=n<<16>>16;if(C<<16>>16>0)h=C<<16>>16<31?h>>n:0;else{$=0-n<<16>>16;ee=h<<$;h=(ee>>$|0)==(h|0)?ee:h>>31^2147483647}ee=h>>16;A[G+(r<<1)>>1]=ee;A[X+(r<<1)>>1]=(h>>>1)-(ee<<15);h=r+1|0;if((h&65535)<<16>>16==10)break;C=A[_+(h<<1)>>1]|0;r=h;w=w+2|0}x=S<<16>>16;Y=A[G>>1]|0;z=A[X>>1]|0;j=A[G+2>>1]|0;J=A[X+2>>1]|0;K=A[G+4>>1]|0;W=A[X+4>>1]|0;V=A[G+6>>1]|0;q=A[X+6>>1]|0;Z=A[G+8>>1]|0;$=A[X+8>>1]|0;ee=E&65535;v=L<<16>>16;a=A[G+10>>1]|0;P=A[X+10>>1]|0;y=A[G+12>>1]|0;f=A[X+12>>1]|0;r=A[G+14>>1]|0;w=A[X+14>>1]|0;n=A[G+16>>1]|0;C=A[X+16>>1]|0;T=A[G+18>>1]|0;X=A[X+18>>1]|0;c=2147483647;G=0;h=0;p=782;do{_=A[p>>1]|0;H=(F(x,A[p+2>>1]|0)|0)>>>15<<16;d=H>>16;R=_<<1;N=(F(R,_)|0)>>16;B=F(N,Y)|0;if((B|0)==1073741824){t[Q>>2]=1;U=2147483647}else U=B<<1;L=(F(z,N)|0)>>15;B=U+(L<<1)|0;if((U^L|0)>0&(B^U|0)<0){t[Q>>2]=1;B=(U>>>31)+2147483647|0}N=F(j,_)|0;if((N|0)==1073741824){t[Q>>2]=1;U=2147483647}else U=N<<1;L=(F(J,_)|0)>>15;N=U+(L<<1)|0;if((U^L|0)>0&(N^U|0)<0){t[Q>>2]=1;N=(U>>>31)+2147483647|0}H=(F(H>>15,d)|0)>>16;U=F(K,H)|0;if((U|0)==1073741824){t[Q>>2]=1;O=2147483647}else O=U<<1;L=(F(W,H)|0)>>15;U=O+(L<<1)|0;if((O^L|0)>0&(U^O|0)<0){t[Q>>2]=1;U=(O>>>31)+2147483647|0}H=F(V,d)|0;if((H|0)==1073741824){t[Q>>2]=1;O=2147483647}else O=H<<1;L=(F(q,d)|0)>>15;H=O+(L<<1)|0;if((O^L|0)>0&(H^O|0)<0){t[Q>>2]=1;L=(O>>>31)+2147483647|0}else L=H;O=(F(R,d)|0)>>16;H=F(Z,O)|0;if((H|0)==1073741824){t[Q>>2]=1;R=2147483647}else R=H<<1;S=(F($,O)|0)>>15;H=R+(S<<1)|0;if((R^S|0)>0&(H^R|0)<0){t[Q>>2]=1;H=(R>>>31)+2147483647|0}O=A[p+4>>1]|0;R=A[p+6>>1]|0;p=p+8|0;if((_-ee&65535)<<16>>16<1?(ie=O<<16>>16,O<<16>>16<=E<<16>>16):0){m=(F(R<<16>>16,v)|0)>>>15<<16;_=m>>16;M=ie<<1;R=(F(M,ie)|0)>>16;O=F(a,R)|0;if((O|0)==1073741824){t[Q>>2]=1;I=2147483647}else I=O<<1;S=(F(P,R)|0)>>15;O=I+(S<<1)|0;if((I^S|0)>0&(O^I|0)<0){t[Q>>2]=1;O=(I>>>31)+2147483647|0}R=F(y,ie)|0;if((R|0)==1073741824){t[Q>>2]=1;I=2147483647}else I=R<<1;S=(F(f,ie)|0)>>15;R=I+(S<<1)|0;if((I^S|0)>0&(R^I|0)<0){t[Q>>2]=1;S=(I>>>31)+2147483647|0}else S=R;I=(F(m>>15,_)|0)>>16;R=F(r,I)|0;if((R|0)==1073741824){t[Q>>2]=1;m=2147483647}else m=R<<1;d=(F(w,I)|0)>>15;R=m+(d<<1)|0;if((m^d|0)>0&(R^m|0)<0){t[Q>>2]=1;d=(m>>>31)+2147483647|0}else d=R;R=F(n,_)|0;if((R|0)==1073741824){t[Q>>2]=1;I=2147483647}else I=R<<1;m=(F(C,_)|0)>>15;R=I+(m<<1)|0;if((I^m|0)>0&(R^I|0)<0){t[Q>>2]=1;s=(I>>>31)+2147483647|0}else s=R;I=(F(M,_)|0)>>16;R=F(T,I)|0;if((R|0)==1073741824){t[Q>>2]=1;m=2147483647}else m=R<<1;_=(F(X,I)|0)>>15;R=m+(_<<1)|0;if((m^_|0)>0&(R^m|0)<0){t[Q>>2]=1;R=(m>>>31)+2147483647|0}_=N+B+U+L+H+O+S+d+s+R|0;L=(_|0)<(c|0);c=L?_:c;h=L?G:h}G=G+1<<16>>16}while(G<<16>>16<256);E=(h&65535)<<18>>16;Xr(e,782+(E<<1)|0,re,i,g,b,Q);Pn(e,0,l,Ae,te,ne,fe,Q);l=(Vn(14,A[te>>1]|0,Q)|0)&65535;Xr(e,782+((E|2)<<1)|0,l,A[Ae>>1]|0,k,D,Q);u=oe;return h|0}function Xr(e,i,r,n,f,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0;h=u;u=u+16|0;c=h+2|0;w=h;A[f>>1]=A[i>>1]|0;l=A[i+2>>1]|0;r=F(r<<16>>16<<1,l)|0;f=10-(n&65535)|0;i=f&65535;f=f<<16>>16;if(i<<16>>16>0)i=i<<16>>16<31?r>>f:0;else{f=0-f<<16>>16;i=r<<f;i=(i>>f|0)==(r|0)?i:r>>31^2147483647}A[a>>1]=i>>>16;Un(l,c,w,s);A[c>>1]=(o[c>>1]|0)+65524;f=sA(A[w>>1]|0,5,s)|0;n=A[c>>1]|0;f=((n&65535)<<10)+(f&65535)&65535;r=A[w>>1]|0;n=n<<16>>16;if((n*24660|0)==1073741824){t[s>>2]=1;i=2147483647}else i=n*49320|0;w=(r<<16>>16)*24660>>15;n=i+(w<<1)|0;if(!((i^w|0)>0&(n^i|0)<0)){s=n;s=s<<13;s=s+32768|0;s=s>>>16;s=s&65535;Tn(e,f,s);u=h;return}t[s>>2]=1;s=(i>>>31)+2147483647|0;s=s<<13;s=s+32768|0;s=s>>>16;s=s&65535;Tn(e,f,s);u=h;return}function xr(e,i,r,n,f,a,s,l,c,w,h,d,v,B,E,g,b,k,D,Q,C){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;E=E|0;g=g|0;b=b|0;k=k|0;D=D|0;Q=Q|0;C=C|0;var y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,oe=0,ae=0,se=0,le=0,ue=0;ue=u;u=u+80|0;ae=ue+72|0;se=ue+70|0;le=ue+68|0;fe=ue+66|0;oe=ue+56|0;Z=ue+24|0;q=ue+12|0;W=ue+48|0;V=ue+40|0;Y=ue+34|0;j=ue+22|0;X=ue+6|0;x=ue;zr(5,B,E,X,x,t[Q+72>>2]|0,C)|0;T=Vn(14,w,C)|0;z=Q+68|0;G=t[z>>2]|0;K=c<<16>>16;J=K+65526|0;B=(o[a>>1]|0)+65523&65535;A[oe>>1]=B;Q=(o[a+2>>1]|0)+65522&65535;A[oe+2>>1]=Q;ne=J<<16>>16;Ae=((J<<17>>17|0)==(ne|0)?J<<1:ne>>>15^32767)+15+(o[a+4>>1]|0)&65535;A[oe+4>>1]=Ae;te=(o[a+6>>1]|0)+ne&65535;A[oe+6>>1]=te;a=ne+1+(o[a+8>>1]|0)&65535;A[oe+8>>1]=a;Q=Q<<16>>16>B<<16>>16?Q:B;Q=Ae<<16>>16>Q<<16>>16?Ae:Q;Q=te<<16>>16>Q<<16>>16?te:Q;Q=(Dn(a<<16>>16>Q<<16>>16?a:Q,1,C)|0)&65535;a=B;B=0;while(1){w=Q-(a&65535)|0;a=w&65535;P=o[f+(B<<1)>>1]<<16;w=w<<16>>16;if(a<<16>>16>0)w=a<<16>>16<31?P>>w:0;else{te=0-w<<16>>16;w=P<<te;w=(w>>te|0)==(P|0)?w:P>>31^2147483647}Br(w,Z+(B<<1)|0,q+(B<<1)|0,C);w=B+1|0;if((w|0)==5)break;a=A[oe+(w<<1)>>1]|0;B=w}_=Z+2|0;L=q+2|0;te=T<<16>>16;$=Z+4|0;ee=q+4|0;ie=Z+6|0;re=q+6|0;ne=Z+8|0;Ae=q+8|0;m=0;a=2147483647;f=0;w=0;while(1){S=A[X+(f<<1)>>1]|0;T=F(S,S)|0;if(T>>>0>1073741823){t[C>>2]=1;T=32767}else T=T>>>15;Q=A[q>>1]|0;P=T<<16>>16;T=F(P,A[Z>>1]|0)|0;if((T|0)==1073741824){t[C>>2]=1;B=2147483647}else B=T<<1;N=(F(Q<<16>>16,P)|0)>>15;T=B+(N<<1)|0;if((B^N|0)>0&(T^B|0)<0){t[C>>2]=1;T=(B>>>31)+2147483647|0}Q=A[L>>1]|0;P=F(A[_>>1]|0,S)|0;if((P|0)!=1073741824){B=(P<<1)+T|0;if((P^T|0)>0&(B^T|0)<0){t[C>>2]=1;B=(T>>>31)+2147483647|0}}else{t[C>>2]=1;B=2147483647}T=(F(Q<<16>>16,S)|0)>>15;if((T|0)>32767){t[C>>2]=1;T=32767}N=T<<16;T=(N>>15)+B|0;if((N>>16^B|0)>0&(T^B|0)<0){t[C>>2]=1;N=(B>>>31)+2147483647|0}else N=T;H=(N>>>31)+2147483647|0;U=f&65535;T=m;R=0;O=G;do{P=(F(A[O>>1]|0,te)|0)>>15;O=O+6|0;if((P|0)>32767){t[C>>2]=1;P=32767}I=P<<16>>16;P=F(I,I)|0;if((P|0)==1073741824){t[C>>2]=1;M=2147483647}else M=P<<1;Br(M,ae,se,C);P=F(I,S)|0;if((P|0)==1073741824){t[C>>2]=1;M=2147483647}else M=P<<1;Br(M,le,fe,C);B=A[ee>>1]|0;p=A[se>>1]|0;P=A[$>>1]|0;Q=A[ae>>1]|0;m=F(Q,P)|0;if((m|0)!=1073741824){M=(m<<1)+N|0;if((m^N|0)>0&(M^N|0)<0){t[C>>2]=1;M=H}}else{t[C>>2]=1;M=2147483647}m=(F(p<<16>>16,P)|0)>>15;if((m|0)>32767){t[C>>2]=1;m=32767}p=m<<16;m=(p>>15)+M|0;if((p>>16^M|0)>0&(m^M|0)<0){t[C>>2]=1;m=(M>>>31)+2147483647|0}M=(F(Q,B<<16>>16)|0)>>15;if((M|0)>32767){t[C>>2]=1;M=32767}p=M<<16;M=(p>>15)+m|0;if((p>>16^m|0)>0&(M^m|0)<0){t[C>>2]=1;M=(m>>>31)+2147483647|0}P=A[re>>1]|0;m=F(A[ie>>1]|0,I)|0;if((m|0)!=1073741824){p=(m<<1)+M|0;if((m^M|0)>0&(p^M|0)<0){t[C>>2]=1;p=(M>>>31)+2147483647|0}}else{t[C>>2]=1;p=2147483647}P=(F(P<<16>>16,I)|0)>>15;if((P|0)>32767){t[C>>2]=1;P=32767}I=P<<16;P=(I>>15)+p|0;if((I>>16^p|0)>0&(P^p|0)<0){t[C>>2]=1;P=(p>>>31)+2147483647|0}Q=A[Ae>>1]|0;p=A[fe>>1]|0;B=A[ne>>1]|0;y=A[le>>1]|0;m=F(y,B)|0;do{if((m|0)==1073741824){t[C>>2]=1;m=2147483647}else{M=(m<<1)+P|0;if(!((m^P|0)>0&(M^P|0)<0)){m=M;break}t[C>>2]=1;m=(P>>>31)+2147483647|0}}while(0);M=(F(p<<16>>16,B)|0)>>15;if((M|0)>32767){t[C>>2]=1;M=32767}I=M<<16;M=(I>>15)+m|0;if((I>>16^m|0)>0&(M^m|0)<0){t[C>>2]=1;M=(m>>>31)+2147483647|0}P=(F(y,Q<<16>>16)|0)>>15;if((P|0)>32767){t[C>>2]=1;P=32767}I=P<<16;P=(I>>15)+M|0;if((I>>16^M|0)>0&(P^M|0)<0){t[C>>2]=1;P=(M>>>31)+2147483647|0}I=(P|0)<(a|0);T=I?R:T;w=I?U:w;a=I?P:a;R=R+1<<16>>16}while(R<<16>>16<32);f=f+1|0;if((f|0)==3){P=T;f=w;break}else m=T}L=(P<<16>>16)*3|0;a=A[G+(L<<1)>>1]|0;A[b>>1]=A[G+(L+1<<1)>>1]|0;A[k>>1]=A[G+(L+2<<1)>>1]|0;a=F(a<<16>>16,te)|0;if((a|0)==1073741824){t[C>>2]=1;T=2147483647}else T=a<<1;L=9-K|0;G=L&65535;L=L<<16>>16;_=G<<16>>16>0;if(_)T=G<<16>>16<31?T>>L:0;else{N=0-L<<16>>16;S=T<<N;T=(S>>N|0)==(T|0)?S:T>>31^2147483647}A[g>>1]=T>>>16;S=f<<16>>16;X=A[X+(S<<1)>>1]|0;A[E>>1]=X;x=A[x+(S<<1)>>1]|0;Ci(i,r,n,X,h,W,V,Y,C);ir(e,A[Y>>1]|0,A[g>>1]|0,j,C);if(!((A[W>>1]|0)!=0&(A[j>>1]|0)>0)){C=P;b=t[D>>2]|0;g=b+2|0;A[b>>1]=x;b=b+4|0;t[D>>2]=b;A[g>>1]=C;u=ue;return}I=W+6|0;A[I>>1]=l;M=V+6|0;A[M>>1]=s;c=((uA(v,c,C)|0)&65535)+10|0;Q=c<<16>>16;if((c&65535)<<16>>16<0){w=0-Q<<16;if((w|0)<983040)d=d<<16>>16>>(w>>16)&65535;else d=0}else{w=d<<16>>16;B=w<<Q;if((B<<16>>16>>Q|0)==(w|0))d=B&65535;else d=(w>>>15^32767)&65535}a=A[E>>1]|0;T=A[j>>1]|0;z=t[z>>2]|0;B=A[g>>1]|0;j=10-K|0;Q=j<<16>>16;if((j&65535)<<16>>16<0){w=0-Q<<16;if((w|0)<983040)l=B<<16>>16>>(w>>16)&65535;else l=0}else{w=B<<16>>16;B=w<<Q;if((B<<16>>16>>Q|0)==(w|0))l=B&65535;else l=(w>>>15^32767)&65535}f=a<<16>>16;w=F(f,f)|0;if(w>>>0>1073741823){t[C>>2]=1;a=32767}else a=w>>>15;P=Dn(32767-(T&65535)&65535,1,C)|0;T=T<<16>>16;w=F(A[W+2>>1]|0,T)|0;if((w|0)==1073741824){t[C>>2]=1;w=2147483647}else w=w<<1;j=w<<1;w=F(((j>>1|0)==(w|0)?j:w>>31^2147418112)>>16,a<<16>>16)|0;if((w|0)==1073741824){t[C>>2]=1;m=2147483647}else m=w<<1;p=(o[V+2>>1]|0)+65521|0;Q=p&65535;w=F(A[W+4>>1]|0,T)|0;if((w|0)==1073741824){t[C>>2]=1;a=2147483647}else a=w<<1;w=a<<1;w=(F(((w>>1|0)==(a|0)?w:a>>31^2147418112)>>16,f)|0)>>15;if((w|0)>32767){t[C>>2]=1;w=32767}A[$>>1]=w;a=J&65535;A[ae>>1]=a;a=Dn(A[V+4>>1]|0,a,C)|0;w=F(A[I>>1]|0,T)|0;if((w|0)==1073741824){t[C>>2]=1;w=2147483647}else w=w<<1;y=w<<1;A[ie>>1]=((y>>1|0)==(w|0)?y:w>>31^2147418112)>>>16;y=((K<<17>>17|0)==(K|0)?K<<1:K>>>15^32767)+65529&65535;A[ae>>1]=y;y=Dn(A[M>>1]|0,y,C)|0;w=(F(A[I>>1]|0,P<<16>>16)|0)>>15;if((w|0)>32767){t[C>>2]=1;w=32767}A[ne>>1]=w;P=Dn(y,1,C)|0;B=F(A[W>>1]|0,T)|0;if((B|0)==1073741824){t[C>>2]=1;w=2147483647}else w=B<<1;M=lA(w,ae,C)|0;f=(o[ae>>1]|0)+47|0;A[ae>>1]=f;f=(o[V>>1]|0)-(f&65535)|0;T=f+31&65535;T=Q<<16>>16>T<<16>>16?Q:T;T=a<<16>>16>T<<16>>16?a:T;T=y<<16>>16>T<<16>>16?y:T;T=(P<<16>>16>T<<16>>16?P:T)<<16>>16;B=T-(p&65535)|0;w=B&65535;B=B<<16>>16;if(w<<16>>16>0)N=w<<16>>16<31?m>>B:0;else{V=0-B<<16>>16;N=m<<V;N=(N>>V|0)==(m|0)?N:m>>31^2147483647}Q=T-(a&65535)|0;w=Q&65535;B=o[$>>1]<<16;Q=Q<<16>>16;if(w<<16>>16>0)B=w<<16>>16<31?B>>Q:0;else{W=0-Q<<16>>16;V=B<<W;B=(V>>W|0)==(B|0)?V:B>>31^2147483647}Br(B,$,ee,C);y=T-(y&65535)|0;B=y&65535;Q=o[ie>>1]<<16;y=y<<16>>16;if(B<<16>>16>0)B=B<<16>>16<31?Q>>y:0;else{V=0-y<<16>>16;B=Q<<V;B=(B>>V|0)==(Q|0)?B:Q>>31^2147483647}Br(B,ie,re,C);y=T-(P&65535)|0;B=y&65535;Q=o[ne>>1]<<16;y=y<<16>>16;if(B<<16>>16>0)B=B<<16>>16<31?Q>>y:0;else{V=0-y<<16>>16;B=Q<<V;B=(B>>V|0)==(Q|0)?B:Q>>31^2147483647}Br(B,ne,Ae,C);y=T+65505|0;A[ae>>1]=y;y=y-(f&65535)|0;B=aA(y&65535,1,C)|0;Q=B<<16>>16;if(B<<16>>16>0)Q=B<<16>>16<31?M>>Q:0;else{V=0-Q<<16>>16;Q=M<<V;Q=(Q>>V|0)==(M|0)?Q:M>>31^2147483647}do{if(!(y&1))m=Q;else{Br(Q,Z,q,C);B=A[q>>1]|0;Q=A[Z>>1]|0;if((Q*23170|0)==1073741824){t[C>>2]=1;y=2147483647}else y=Q*46340|0;Z=(B<<16>>16)*23170>>15;Q=y+(Z<<1)|0;if(!((y^Z|0)>0&(Q^y|0)<0)){m=Q;break}t[C>>2]=1;m=(y>>>31)+2147483647|0}}while(0);I=(N>>>31)+2147483647|0;M=2147483647;p=0;Q=0;R=z;while(1){B=(F(A[R>>1]|0,te)|0)>>15;R=R+6|0;if((B|0)>32767){t[C>>2]=1;B=32767}y=B&65535;if(y<<16>>16>=l<<16>>16)break;a=B<<16>>16;B=F(a,a)|0;if((B|0)==1073741824){t[C>>2]=1;w=2147483647}else w=B<<1;Br(w,se,le,C);B=(uA(y,d,C)|0)<<16>>16;B=F(B,B)|0;if((B|0)==1073741824){t[C>>2]=1;B=2147483647}else B=B<<1;Br(B,fe,oe,C);y=A[ee>>1]|0;w=F(A[$>>1]|0,a)|0;do{if((w|0)==1073741824){t[C>>2]=1;w=2147483647}else{B=(w<<1)+N|0;if(!((w^N|0)>0&(B^N|0)<0)){w=B;break}t[C>>2]=1;w=I}}while(0);B=(F(y<<16>>16,a)|0)>>15;if((B|0)>32767){t[C>>2]=1;B=32767}Z=B<<16;B=(Z>>15)+w|0;if((Z>>16^w|0)>0&(B^w|0)<0){t[C>>2]=1;B=(w>>>31)+2147483647|0}f=A[re>>1]|0;P=A[le>>1]|0;a=A[ie>>1]|0;T=A[se>>1]|0;w=F(T,a)|0;do{if((w|0)==1073741824){t[C>>2]=1;y=2147483647}else{y=(w<<1)+B|0;if(!((w^B|0)>0&(y^B|0)<0))break;t[C>>2]=1;y=(B>>>31)+2147483647|0}}while(0);w=(F(P<<16>>16,a)|0)>>15;if((w|0)>32767){t[C>>2]=1;w=32767}Z=w<<16;w=(Z>>15)+y|0;if((Z>>16^y|0)>0&(w^y|0)<0){t[C>>2]=1;w=(y>>>31)+2147483647|0}B=(F(T,f<<16>>16)|0)>>15;if((B|0)>32767){t[C>>2]=1;B=32767}Z=B<<16;B=(Z>>15)+w|0;if((Z>>16^w|0)>0&(B^w|0)<0){t[C>>2]=1;B=(w>>>31)+2147483647|0}B=lA(B,ae,C)|0;y=aA(A[ae>>1]|0,1,C)|0;w=y<<16>>16;if(y<<16>>16>0)y=y<<16>>16<31?B>>w:0;else{Z=0-w<<16>>16;y=B<<Z;y=(y>>Z|0)==(B|0)?y:B>>31^2147483647}B=y-m|0;if(((B^y)&(y^m)|0)<0){t[C>>2]=1;B=(y>>>31)+2147483647|0}B=(oA(B,C)|0)<<16>>16;B=F(B,B)|0;if((B|0)==1073741824){t[C>>2]=1;y=2147483647}else y=B<<1;T=A[Ae>>1]|0;a=A[oe>>1]|0;P=A[ne>>1]|0;f=A[fe>>1]|0;w=F(f,P)|0;do{if((w|0)==1073741824){t[C>>2]=1;B=2147483647}else{B=(w<<1)+y|0;if(!((w^y|0)>0&(B^y|0)<0))break;t[C>>2]=1;B=(y>>>31)+2147483647|0}}while(0);w=(F(a<<16>>16,P)|0)>>15;if((w|0)>32767){t[C>>2]=1;w=32767}Z=w<<16;w=(Z>>15)+B|0;if((Z>>16^B|0)>0&(w^B|0)<0){t[C>>2]=1;w=(B>>>31)+2147483647|0}B=(F(f,T<<16>>16)|0)>>15;if((B|0)>32767){t[C>>2]=1;B=32767}Z=B<<16;B=(Z>>15)+w|0;if((Z>>16^w|0)>0&(B^w|0)<0){t[C>>2]=1;B=(w>>>31)+2147483647|0}w=(B|0)<(M|0);Q=w?p:Q;p=p+1<<16>>16;if(p<<16>>16>=32)break;else M=w?B:M}le=(Q<<16>>16)*3|0;y=A[z+(le<<1)>>1]|0;A[b>>1]=A[z+(le+1<<1)>>1]|0;A[k>>1]=A[z+(le+2<<1)>>1]|0;y=F(y<<16>>16,te)|0;if((y|0)==1073741824){t[C>>2]=1;y=2147483647}else y=y<<1;if(_)y=G<<16>>16<31?y>>L:0;else{b=0-L<<16>>16;C=y<<b;y=(C>>b|0)==(y|0)?C:y>>31^2147483647}A[g>>1]=y>>>16;C=Q;b=t[D>>2]|0;g=b+2|0;A[b>>1]=x;b=b+4|0;t[D>>2]=b;A[g>>1]=C;u=ue;return}function Yr(e,i,r,n,t,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0,c=0,w=0;w=(e|0)==7;s=A[n>>1]|0;if(w){s=s<<16>>16>>>1&65535;c=Vn(i,r,a)|0;i=c<<16;e=i>>16;if((c<<20>>20|0)==(e|0))e=i>>12;else e=e>>>15^32767}else{c=Vn(i,r,a)|0;i=c<<16;e=i>>16;if((c<<21>>21|0)==(e|0))e=i>>11;else e=e>>>15^32767}c=e<<16>>16;a=s<<16>>16;i=a-((F(c,A[o>>1]|0)|0)>>>15&65535)|0;i=((i&32768|0)!=0?0-i|0:i)&65535;l=1;e=0;u=o;while(1){u=u+6|0;s=a-((F(A[u>>1]|0,c)|0)>>>15&65535)|0;r=s<<16;s=(r|0)<0?0-(r>>16)|0:s;r=(s<<16>>16|0)<(i<<16>>16|0);e=r?l:e;l=l+1<<16>>16;if(l<<16>>16>=32)break;else i=r?s&65535:i}u=(e<<16>>16)*196608>>16;A[n>>1]=(F(A[o+(u<<1)>>1]|0,c)|0)>>>15<<(w&1);A[t>>1]=A[o+(u+1<<1)>>1]|0;A[f>>1]=A[o+(u+2<<1)>>1]|0;return e|0}function zr(e,i,r,n,t,f,o){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;var a=0,s=0,l=0,u=0,c=0,w=0;a=uA(A[r>>1]|0,A[f>>1]|0,o)|0;a=(a&65535)-((a&65535)>>>15&65535)|0;a=(a<<16>>31^a)&65535;l=0;u=1;while(1){s=A[f+(u<<1)>>1]|0;if(s<<16>>16>i<<16>>16)s=a;else{s=uA(A[r>>1]|0,s,o)|0;s=(s&65535)-((s&65535)>>>15&65535)|0;s=(s<<16>>31^s)&65535;w=s<<16>>16<a<<16>>16;s=w?s:a;l=w?u&65535:l}u=u+1|0;if((u|0)==16)break;else a=s}if((e|0)!=5){a=A[f+(l<<16>>16<<1)>>1]|0;if((e|0)==7){A[r>>1]=a&65532;return l|0}else{A[r>>1]=a;return l|0}}s=l<<16>>16;switch(l<<16>>16){case 0:{a=0;break}case 15:{c=8;break}default:if((A[f+(s+1<<1)>>1]|0)>i<<16>>16)c=8;else a=s+65535&65535}if((c|0)==8)a=s+65534&65535;A[t>>1]=a;w=a<<16>>16;A[n>>1]=A[f+(w<<1)>>1]|0;w=w+1|0;A[t+2>>1]=w;w=w<<16>>16;A[n+2>>1]=A[f+(w<<1)>>1]|0;w=w+1|0;A[t+4>>1]=w;A[n+4>>1]=A[f+(w<<16>>16<<1)>>1]|0;A[r>>1]=A[f+(s<<1)>>1]|0;return l|0}function jr(e,i,r,n,f,a,s,l,c,w,h,d){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;var v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0;N=u;u=u+32|0;E=N+20|0;g=N+10|0;B=N;switch(e|0){case 3:case 4:case 6:{h=h+84|0;U=128;break}default:{h=h+80|0;U=64}}H=t[h>>2]|0;v=Vn(14,r,d)|0;O=i<<16>>16;R=O+65525|0;e=(o[f>>1]|0)+65523&65535;A[B>>1]=e;i=(o[f+2>>1]|0)+65522&65535;A[B+2>>1]=i;I=R<<16>>16;I=Dn(A[f+4>>1]|0,((R<<17>>17|0)==(I|0)?R<<1:I>>>15^32767)+15&65535,d)|0;A[B+4>>1]=I;R=Dn(A[f+6>>1]|0,R&65535,d)|0;A[B+6>>1]=R;f=Dn(A[f+8>>1]|0,O+65526&65535,d)|0;A[B+8>>1]=f;i=i<<16>>16>e<<16>>16?i:e;i=I<<16>>16>i<<16>>16?I:i;i=R<<16>>16>i<<16>>16?R:i;i=(f<<16>>16>i<<16>>16?f:i)+1&65535;f=0;while(1){r=i-(e&65535)|0;h=r&65535;e=o[n+(f<<1)>>1]<<16;r=r<<16>>16;if(h<<16>>16>0)h=h<<16>>16<31?e>>r:0;else{R=0-r<<16>>16;h=e<<R;h=(h>>R|0)==(e|0)?h:e>>31^2147483647}Br(h,E+(f<<1)|0,g+(f<<1)|0,d);h=f+1|0;if((h|0)==5)break;e=A[B+(h<<1)>>1]|0;f=h}R=v<<16>>16;C=A[E>>1]|0;y=A[g>>1]|0;P=A[E+2>>1]|0;T=A[g+2>>1]|0;p=A[E+4>>1]|0;M=A[g+4>>1]|0;m=A[E+6>>1]|0;I=A[g+6>>1]|0;Q=A[E+8>>1]|0;b=A[g+8>>1]|0;i=2147483647;k=0;h=0;D=H;while(1){f=A[D>>1]|0;if(f<<16>>16>a<<16>>16)v=i;else{v=(F(A[D+2>>1]|0,R)|0)>>15;if((v|0)>32767){t[d>>2]=1;v=32767}g=f<<16>>16;f=F(g,g)|0;if(f>>>0>1073741823){t[d>>2]=1;B=32767}else B=f>>>15;r=v<<16>>16;v=F(r,r)|0;if(v>>>0>1073741823){t[d>>2]=1;E=32767}else E=v>>>15;n=(F(r,g)|0)>>15;if((n|0)>32767){t[d>>2]=1;n=32767}v=B<<16>>16;B=F(C,v)|0;if((B|0)==1073741824){t[d>>2]=1;f=2147483647}else f=B<<1;v=(F(y,v)|0)>>15;B=f+(v<<1)|0;if((f^v|0)>0&(B^f|0)<0){t[d>>2]=1;B=(f>>>31)+2147483647|0}v=F(P,g)|0;if((v|0)==1073741824){t[d>>2]=1;f=2147483647}else f=v<<1;g=(F(T,g)|0)>>15;v=f+(g<<1)|0;if((f^g|0)>0&(v^f|0)<0){t[d>>2]=1;v=(f>>>31)+2147483647|0}f=v+B|0;if((v^B|0)>-1&(f^B|0)<0){t[d>>2]=1;f=(B>>>31)+2147483647|0}v=E<<16>>16;B=F(p,v)|0;if((B|0)==1073741824){t[d>>2]=1;e=2147483647}else e=B<<1;g=(F(M,v)|0)>>15;B=e+(g<<1)|0;if((e^g|0)>0&(B^e|0)<0){t[d>>2]=1;B=(e>>>31)+2147483647|0}v=B+f|0;if((B^f|0)>-1&(v^f|0)<0){t[d>>2]=1;e=(f>>>31)+2147483647|0}else e=v;v=F(m,r)|0;if((v|0)==1073741824){t[d>>2]=1;B=2147483647}else B=v<<1;g=(F(I,r)|0)>>15;v=B+(g<<1)|0;if((B^g|0)>0&(v^B|0)<0){t[d>>2]=1;v=(B>>>31)+2147483647|0}f=v+e|0;if((v^e|0)>-1&(f^e|0)<0){t[d>>2]=1;B=(e>>>31)+2147483647|0}else B=f;f=n<<16>>16;v=F(Q,f)|0;if((v|0)==1073741824){t[d>>2]=1;e=2147483647}else e=v<<1;g=(F(b,f)|0)>>15;v=e+(g<<1)|0;if((e^g|0)>0&(v^e|0)<0){t[d>>2]=1;f=(e>>>31)+2147483647|0}else f=v;v=f+B|0;if((f^B|0)>-1&(v^B|0)<0){t[d>>2]=1;v=(B>>>31)+2147483647|0}g=(v|0)<(i|0);v=g?v:i;h=g?k:h}D=D+8|0;k=k+1<<16>>16;if((k<<16>>16|0)>=(U|0))break;else i=v}a=h<<16>>16;a=((a<<18>>18|0)==(a|0)?a<<2:a>>>15^32767)<<16>>16;A[s>>1]=A[H+(a<<1)>>1]|0;i=A[H+(a+1<<1)>>1]|0;A[c>>1]=A[H+(a+2<<1)>>1]|0;A[w>>1]=A[H+(a+3<<1)>>1]|0;i=F(i<<16>>16,R)|0;if((i|0)==1073741824){t[d>>2]=1;e=2147483647}else e=i<<1;r=10-O|0;i=r&65535;r=r<<16>>16;if(i<<16>>16>0){d=i<<16>>16<31?e>>r:0;d=d>>>16;d=d&65535;A[l>>1]=d;u=N;return h|0}else{c=0-r<<16>>16;d=e<<c;d=(d>>c|0)==(e|0)?d:e>>31^2147483647;d=d>>>16;d=d&65535;A[l>>1]=d;u=N;return h|0}}function Jr(e,i,r,n,t,f,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;s=s|0;l=l|0;var c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0,S=0,_=0,L=0,G=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0,V=0,q=0,Z=0,$=0,ee=0,ie=0,re=0,ne=0,Ae=0,te=0,fe=0,oe=0,ae=0,se=0,le=0,ue=0,ce=0,we=0,he=0,de=0,ve=0,Be=0,Ee=0,ge=0,be=0,ke=0,De=0;De=u;u=u+160|0;ke=De;w=e<<16>>16;ge=e<<16>>16==10;be=A[a+(A[f>>1]<<1)>>1]|0;if(e<<16>>16>0){l=0;c=s;while(1){A[c>>1]=l;l=l+1<<16>>16;if(l<<16>>16>=e<<16>>16)break;else c=c+2|0}}if(r<<16>>16<=1){u=De;return}Be=f+2|0;Ee=be<<16>>16;he=n+(Ee<<1)|0;de=t+(Ee*80|0)+(Ee<<1)|0;ve=f+6|0;V=i&65535;q=f+4|0;Z=f+10|0;$=f+8|0;ee=f+14|0;ie=f+12|0;re=f+18|0;ne=f+16|0;Ae=s+2|0;te=s+4|0;fe=s+6|0;oe=s+8|0;ae=s+10|0;se=s+12|0;le=s+14|0;ue=s+16|0;ce=s+18|0;we=e<<16>>16>2;K=f+(w+-1<<1)|0;j=1;W=1;L=0;G=0;J=-1;while(1){z=A[a+(A[Be>>1]<<1)>>1]|0;Y=z<<16>>16;i=(o[n+(Y<<1)>>1]|0)+(o[he>>1]|0)|0;c=(A[t+(Ee*80|0)+(Y<<1)>>1]<<13)+32768+((A[t+(Y*80|0)+(Y<<1)>>1]|0)+(A[de>>1]|0)<<12)|0;w=A[ve>>1]|0;if(w<<16>>16<40){w=w<<16>>16;h=ke;while(1){X=(A[t+(w*80|0)+(w<<1)>>1]|0)>>>1;_=A[t+(w*80|0)+(Ee<<1)>>1]|0;x=A[t+(w*80|0)+(Y<<1)>>1]|0;A[h>>1]=i+(o[n+(w<<1)>>1]|0);A[h+2>>1]=(_+2+X+x|0)>>>2;w=w+V|0;if((w&65535)<<16>>16<40){w=w<<16>>16;h=h+4|0}else break}T=A[ve>>1]|0}else T=w;i=A[q>>1]|0;P=c>>12;w=i<<16>>16;e:do{if(i<<16>>16<40){y=T<<16>>16;if(T<<16>>16<40){h=1;v=i;E=T;B=0;d=-1}else while(1){w=w+V|0;if((w&65535)<<16>>16<40)w=w<<16>>16;else{h=1;x=i;X=T;w=0;break e}}while(1){C=((A[t+(w*80|0)+(w<<1)>>1]|0)+P>>1)+(A[t+(w*80|0)+(Ee<<1)>>1]|0)+(A[t+(w*80|0)+(Y<<1)>>1]|0)|0;Q=o[n+(w<<1)>>1]|0;k=y;D=T;b=ke;g=B;while(1){c=(o[b>>1]|0)+Q|0;l=c<<16>>16;l=(F(l,l)|0)>>>15;B=(C+(A[t+(w*80|0)+(k<<1)>>1]|0)>>2)+(A[b+2>>1]|0)>>1;if((F(l<<16>>16,h<<16>>16)|0)>(F(B,d<<16>>16)|0)){h=B&65535;v=i;E=D;B=c&65535;d=l&65535}else B=g;c=k+V|0;D=c&65535;if(D<<16>>16>=40)break;else{k=c<<16>>16;b=b+4|0;g=B}}w=w+V|0;i=w&65535;if(i<<16>>16<40)w=w<<16>>16;else{x=v;X=E;w=B;break}}}else{h=1;x=i;X=T;w=0}}while(0);v=h<<16>>16<<15;h=A[Z>>1]|0;if(h<<16>>16<40){c=x<<16>>16;l=X<<16>>16;i=w&65535;h=h<<16>>16;w=ke;while(1){U=A[t+(h*80|0)+(h<<1)>>1]>>1;H=A[t+(h*80|0)+(Ee<<1)>>1]|0;N=A[t+(h*80|0)+(Y<<1)>>1]|0;S=A[t+(h*80|0)+(c<<1)>>1]|0;_=A[t+(h*80|0)+(l<<1)>>1]|0;A[w>>1]=(o[n+(h<<1)>>1]|0)+i;A[w+2>>1]=(H+2+U+N+S+_|0)>>>2;h=h+V|0;if((h&65535)<<16>>16<40){h=h<<16>>16;w=w+4|0}else break}U=A[Z>>1]|0}else U=h;d=A[$>>1]|0;h=d<<16>>16;e:do{if(d<<16>>16<40){p=x<<16>>16;M=X<<16>>16;m=U<<16>>16;T=v+32768|0;if(U<<16>>16<40){B=1;v=d;i=U;E=d;w=0;d=-1}else while(1){h=h+V|0;if((h&65535)<<16>>16<40)h=h<<16>>16;else{h=1;_=d;S=U;w=0;break e}}while(1){l=o[n+(h<<1)>>1]|0;P=(A[t+(h*80|0)+(Y<<1)>>1]|0)+(A[t+(h*80|0)+(Ee<<1)>>1]|0)+(A[t+(h*80|0)+(p<<1)>>1]|0)+(A[t+(h*80|0)+(M<<1)>>1]|0)|0;y=T+(A[t+(h*80|0)+(h<<1)>>1]<<11)|0;Q=m;k=U;C=ke;while(1){g=(o[C>>1]|0)+l|0;c=y+(A[C+2>>1]<<14)+(P+(A[t+(h*80|0)+(Q<<1)>>1]|0)<<12)|0;b=g<<16>>16;b=(F(b,b)|0)>>>15;if((F(b<<16>>16,B<<16>>16)|0)>(F(c>>16,d<<16>>16)|0)){B=c>>>16&65535;D=E;i=k;w=g&65535;d=b&65535}else D=v;v=Q+V|0;k=v&65535;if(k<<16>>16>=40){v=D;break}else{Q=v<<16>>16;v=D;C=C+4|0}}h=h+V|0;E=h&65535;if(E<<16>>16<40)h=h<<16>>16;else{h=B;_=v;S=i;break}}}else{h=1;_=d;S=U;w=0}}while(0);B=h<<16>>16<<15;h=A[ee>>1]|0;if(h<<16>>16<40){c=x<<16>>16;l=X<<16>>16;d=_<<16>>16;v=S<<16>>16;i=w&65535;h=h<<16>>16;w=ke;while(1){I=A[t+(h*80|0)+(h<<1)>>1]>>1;m=A[t+(Ee*80|0)+(h<<1)>>1]|0;R=A[t+(Y*80|0)+(h<<1)>>1]|0;O=A[t+(c*80|0)+(h<<1)>>1]|0;H=A[t+(l*80|0)+(h<<1)>>1]|0;U=A[t+(d*80|0)+(h<<1)>>1]|0;N=A[t+(v*80|0)+(h<<1)>>1]|0;A[w>>1]=(o[n+(h<<1)>>1]|0)+i;A[w+2>>1]=(m+4+I+R+O+H+U+N|0)>>>3;h=h+V|0;if((h&65535)<<16>>16<40){h=h<<16>>16;w=w+4|0}else break}i=A[ee>>1]|0}else i=h;E=A[ie>>1]|0;if(E<<16>>16<40){U=x<<16>>16;I=X<<16>>16;m=_<<16>>16;M=S<<16>>16;p=i<<16>>16;T=i<<16>>16<40;R=B+32768|0;H=E<<16>>16;l=1;D=E;k=i;O=E;v=0;h=-1;while(1){if(T){B=o[n+(H<<1)>>1]|0;w=(A[t+(H*80|0)+(Y<<1)>>1]|0)+(A[t+(H*80|0)+(Ee<<1)>>1]|0)+(A[t+(H*80|0)+(U<<1)>>1]|0)+(A[t+(H*80|0)+(I<<1)>>1]|0)+(A[t+(H*80|0)+(m<<1)>>1]|0)+(A[t+(H*80|0)+(M<<1)>>1]|0)|0;d=R+(A[t+(H*80|0)+(H<<1)>>1]<<10)|0;b=p;E=i;y=k;P=ke;while(1){C=(o[P>>1]|0)+B|0;k=d+(A[P+2>>1]<<14)+(w+(A[t+(H*80|0)+(b<<1)>>1]|0)<<11)|0;Q=C<<16>>16;Q=(F(Q,Q)|0)>>>15;if((F(Q<<16>>16,l<<16>>16)|0)>(F(k>>16,h<<16>>16)|0)){l=k>>>16&65535;D=O;k=E;v=C&65535;h=Q&65535}else k=y;g=b+V|0;E=g&65535;if(E<<16>>16>=40)break;else{b=g<<16>>16;y=k;P=P+4|0}}}E=H+V|0;O=E&65535;if(O<<16>>16>=40){N=k;break}else H=E<<16>>16}}else{l=1;D=E;N=i;v=0;h=-1}if(ge){b=l<<16>>16<<15;h=A[re>>1]|0;if(h<<16>>16<40){w=x<<16>>16;i=X<<16>>16;c=_<<16>>16;l=S<<16>>16;B=D<<16>>16;E=N<<16>>16;d=v&65535;h=h<<16>>16;v=ke;while(1){m=A[t+(h*80|0)+(h<<1)>>1]>>1;M=A[t+(Ee*80|0)+(h<<1)>>1]|0;I=A[t+(Y*80|0)+(h<<1)>>1]|0;R=A[t+(w*80|0)+(h<<1)>>1]|0;O=A[t+(i*80|0)+(h<<1)>>1]|0;H=A[t+(c*80|0)+(h<<1)>>1]|0;U=A[t+(l*80|0)+(h<<1)>>1]|0;L=A[t+(B*80|0)+(h<<1)>>1]|0;G=A[t+(E*80|0)+(h<<1)>>1]|0;A[v>>1]=(o[n+(h<<1)>>1]|0)+d;A[v+2>>1]=(M+4+m+I+R+O+H+U+L+G|0)>>>3;h=h+V|0;if((h&65535)<<16>>16<40){h=h<<16>>16;v=v+4|0}else break}U=A[re>>1]|0}else U=h;B=A[ne>>1]|0;if(B<<16>>16<40){m=x<<16>>16;M=X<<16>>16;p=_<<16>>16;c=S<<16>>16;I=D<<16>>16;R=N<<16>>16;O=U<<16>>16;H=U<<16>>16<40;T=b+32768|0;w=B<<16>>16;l=1;E=B;v=U;i=B;h=-1;while(1){if(H){b=o[n+(w<<1)>>1]|0;d=(A[t+(Y*80|0)+(w<<1)>>1]|0)+(A[t+(Ee*80|0)+(w<<1)>>1]|0)+(A[t+(m*80|0)+(w<<1)>>1]|0)+(A[t+(M*80|0)+(w<<1)>>1]|0)+(A[t+(p*80|0)+(w<<1)>>1]|0)+(A[t+(c*80|0)+(w<<1)>>1]|0)+(A[t+(I*80|0)+(w<<1)>>1]|0)+(A[t+(R*80|0)+(w<<1)>>1]|0)|0;B=T+(A[t+(w*80|0)+(w<<1)>>1]<<9)|0;P=O;Q=U;y=ke;while(1){C=(o[y>>1]|0)+b<<16>>16;C=(F(C,C)|0)>>>15;k=B+(A[y+2>>1]<<13)+(d+(A[t+(w*80|0)+(P<<1)>>1]|0)<<10)|0;if((F(C<<16>>16,l<<16>>16)|0)>(F(k>>16,h<<16>>16)|0)){l=k>>>16&65535;E=i;v=Q;h=C&65535}g=P+V|0;Q=g&65535;if(Q<<16>>16>=40)break;else{P=g<<16>>16;y=y+4|0}}}B=w+V|0;i=B&65535;if(i<<16>>16>=40)break;else w=B<<16>>16}}else{l=1;E=B;v=U;h=-1}}else{E=L;v=G}if((F(h<<16>>16,j<<16>>16)|0)>(F(l<<16>>16,J<<16>>16)|0)){A[s>>1]=be;A[Ae>>1]=z;A[te>>1]=x;A[fe>>1]=X;A[oe>>1]=_;A[ae>>1]=S;A[se>>1]=D;A[le>>1]=N;if(ge){A[ue>>1]=E;A[ce>>1]=v}}else{l=j;h=J}w=A[Be>>1]|0;if(we){i=1;c=2;while(1){A[f+(i<<1)>>1]=A[f+(c<<1)>>1]|0;c=c+1|0;if((c&65535)<<16>>16==e<<16>>16)break;else i=i+1|0}}A[K>>1]=w;W=W+1<<16>>16;if(W<<16>>16>=r<<16>>16)break;else{j=l;L=E;G=v;J=h}}u=De;return}function Kr(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0;a=39;while(1){o=e+(a<<1)|0;f=A[o>>1]|0;t=i+(a<<1)|0;if(f<<16>>16>-1)A[t>>1]=32767;else{A[t>>1]=-32767;if(f<<16>>16==-32768)f=32767;else f=0-(f&65535)&65535;A[o>>1]=f}A[r+(a<<1)>>1]=f;if((a|0)>0)a=a+-1|0;else break}l=8-(n<<16>>16)|0;if((l|0)>0){s=0;t=0}else return;do{n=0;e=0;o=32767;while(1){i=A[r+(n<<1)>>1]|0;a=i<<16>>16>-1?i<<16>>16<o<<16>>16:0;t=a?e:t;f=n+5|0;e=f&65535;if(e<<16>>16>=40)break;else{n=f<<16>>16;o=a?i:o}}A[r+(t<<16>>16<<1)>>1]=-1;s=s+1<<16>>16}while((s<<16>>16|0)<(l|0));s=0;do{i=1;e=1;f=32767;while(1){n=A[r+(i<<1)>>1]|0;a=n<<16>>16>-1?n<<16>>16<f<<16>>16:0;t=a?e:t;o=i+5|0;e=o&65535;if(e<<16>>16>=40)break;else{i=o<<16>>16;f=a?n:f}}A[r+(t<<16>>16<<1)>>1]=-1;s=s+1<<16>>16}while((s<<16>>16|0)<(l|0));s=0;do{i=2;e=2;f=32767;while(1){n=A[r+(i<<1)>>1]|0;a=n<<16>>16>-1?n<<16>>16<f<<16>>16:0;t=a?e:t;o=i+5|0;e=o&65535;if(e<<16>>16>=40)break;else{i=o<<16>>16;f=a?n:f}}A[r+(t<<16>>16<<1)>>1]=-1;s=s+1<<16>>16}while((s<<16>>16|0)<(l|0));s=0;while(1){i=3;e=3;f=32767;while(1){n=A[r+(i<<1)>>1]|0;a=n<<16>>16>-1?n<<16>>16<f<<16>>16:0;t=a?e:t;o=i+5|0;e=o&65535;if(e<<16>>16>=40){f=t;break}else{i=o<<16>>16;f=a?n:f}}A[r+(f<<16>>16<<1)>>1]=-1;s=s+1<<16>>16;if((s<<16>>16|0)>=(l|0)){t=0;break}else t=f}do{i=4;e=4;s=32767;while(1){n=A[r+(i<<1)>>1]|0;a=n<<16>>16>-1?n<<16>>16<s<<16>>16:0;f=a?e:f;o=i+5|0;e=o&65535;if(e<<16>>16>=40)break;else{i=o<<16>>16;s=a?n:s}}A[r+(f<<16>>16<<1)>>1]=-1;t=t+1<<16>>16}while((t<<16>>16|0)<(l|0));return}function Wr(e,i,r,n,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0;C=u;u=u+80|0;Q=C;d=40;v=i;B=e;c=256;w=256;while(1){l=A[v>>1]|0;v=v+2|0;l=F(l,l)|0;if((l|0)!=1073741824){h=(l<<1)+c|0;if((l^c|0)>0&(h^c|0)<0){t[s>>2]=1;c=(c>>>31)+2147483647|0}else c=h}else{t[s>>2]=1;c=2147483647}D=A[B>>1]|0;w=(F(D<<1,D)|0)+w|0;d=d+-1<<16>>16;if(!(d<<16>>16))break;else B=B+2|0}D=Hn(c,s)|0;b=D<<5;D=((b>>5|0)==(D|0)?b:D>>31^2147418112)>>16;b=(Hn(w,s)|0)<<5>>16;k=39;E=i+78|0;g=Q+78|0;l=r+78|0;while(1){B=F(A[E>>1]|0,D)|0;E=E+-2|0;v=B<<1;i=e+(k<<1)|0;c=A[i>>1]|0;d=F(c<<16>>16,b)|0;if((d|0)!=1073741824){h=(d<<1)+v|0;if((d^v|0)>0&(h^v|0)<0){t[s>>2]=1;h=(B>>>30&1)+2147483647|0}}else{t[s>>2]=1;h=2147483647}w=h<<10;w=oA((w>>10|0)==(h|0)?w:h>>31^2147483647,s)|0;if(w<<16>>16>-1)A[l>>1]=32767;else{A[l>>1]=-32767;if(w<<16>>16==-32768)w=32767;else w=0-(w&65535)&65535;if(c<<16>>16==-32768)h=32767;else h=0-(c&65535)&65535;A[i>>1]=h}l=l+-2|0;A[g>>1]=w;if((k|0)<=0)break;else{k=k+-1|0;g=g+-2|0}}i=f<<16>>16;if(f<<16>>16<=0){A[o+(i<<1)>>1]=A[o>>1]|0;u=C;return}B=a&65535;v=0;d=-1;l=0;while(1){if((v|0)<40){w=v;h=v&65535;c=-1;while(1){s=A[Q+(w<<1)>>1]|0;a=s<<16>>16>c<<16>>16;c=a?s:c;l=a?h:l;w=w+B|0;h=w&65535;if(h<<16>>16>=40)break;else w=w<<16>>16}}else c=-1;A[n+(v<<1)>>1]=l;if(c<<16>>16>d<<16>>16)A[o>>1]=v;else c=d;v=v+1|0;if((v&65535)<<16>>16==f<<16>>16)break;else d=c}l=A[o>>1]|0;A[o+(i<<1)>>1]=l;if(f<<16>>16>1)c=1;else{u=C;return}do{n=l+1<<16>>16;l=n<<16>>16>=f<<16>>16?0:n;A[o+(c<<1)>>1]=l;A[o+(c+i<<1)>>1]=l;c=c+1|0}while((c&65535)<<16>>16!=f<<16>>16);u=C;return}function Vr(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(12)|0;if(!i){e=-1;return e|0}A[i>>1]=8;t[e>>2]=i;A[i+2>>1]=3;A[i+4>>1]=0;t[i+8>>2]=0;e=0;return e|0}function qr(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function Zr(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0;do{if((i|0)==8){n=e+2|0;f=(A[n>>1]|0)+-1<<16>>16;A[n>>1]=f;i=e+8|0;if(!(t[i>>2]|0)){t[r>>2]=1;A[n>>1]=3;break}o=e+4|0;if(f<<16>>16>2&(A[o>>1]|0)>0){t[r>>2]=2;A[o>>1]=(A[o>>1]|0)+-1<<16>>16;break}if(!(f<<16>>16)){t[r>>2]=2;A[n>>1]=A[e>>1]|0;break}else{t[r>>2]=3;break}}else{A[e+2>>1]=A[e>>1]|0;t[r>>2]=0;i=e+8|0}}while(0);t[i>>2]=t[r>>2];return}function $r(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,A=0,f=0;if(!e){e=-1;return e|0}t[e>>2]=0;r=hA(12)|0;n=r;if(!r){e=-1;return e|0}t[r>>2]=0;A=r+4|0;t[A>>2]=0;f=r+8|0;t[f>>2]=i;if((Hr(r)|0)<<16>>16==0?(Fi(A,t[f>>2]|0)|0)<<16>>16==0:0){Ur(t[r>>2]|0)|0;Oi(t[A>>2]|0)|0;t[e>>2]=n;e=0;return e|0}Nr(r);Ri(A);dA(r);e=-1;return e|0}function en(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;Nr(i);Ri((t[e>>2]|0)+4|0);dA(t[e>>2]|0);t[e>>2]=0;return}function rn(e,i,r,n,f){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;var a=0,s=0,l=0,c=0,w=0;c=u;u=u+448|0;s=c+320|0;l=c;kA(n|0,0,488)|0;a=0;do{w=r+(a<<1)|0;A[w>>1]=(o[w>>1]|0)&65528;a=a+1|0}while((a|0)!=160);Sr(t[e>>2]|0,r,160);w=e+4|0;Hi(t[w>>2]|0,i,r,s,f,l)|0;_r(t[f>>2]|0,s,n,(t[w>>2]|0)+2392|0);u=c;return}function nn(e,i,r,n,t,f,o,a,s,l,c,w,h,d,v,B){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;a=a|0;s=s|0;l=l|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;var E=0,g=0,b=0;b=u;u=u+48|0;E=b+22|0;g=b;wA(t,(e&-2|0)==6?r:i,E);wA(t,n,g);r=c;i=E;t=r+22|0;do{A[r>>1]=A[i>>1]|0;r=r+2|0;i=i+2|0}while((r|0)<(t|0));cA(f,c,h,40,l,0);cA(g,h,h,40,l,0);fA(f,o,v,40);r=w;i=v;t=r+80|0;do{A[r>>1]=A[i>>1]|0;r=r+2|0;i=i+2|0}while((r|0)<(t|0));cA(f,w,B,40,a,0);fA(E,B,d,40);cA(g,d,d,40,s,0);u=b;return}function An(e,i,r,n,t,f,a,s,l,u,c,w,h,d,v,B,E){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;s=s|0;l=l|0;u=u|0;c=c|0;w=w|0;h=h|0;d=d|0;v=v|0;B=B|0;E=E|0;var g=0,b=0,k=0,D=0,Q=0;if((i|0)==7){k=11;i=n<<16>>16>>>1&65535;g=2}else{k=13;i=n;g=1}A[B>>1]=n<<16>>16<13017?n:13017;b=r<<16>>16;v=v+(b<<1)|0;B=i<<16>>16;t=t<<16>>16;r=20;i=l;E=v;while(1){l=E+2|0;Q=F(A[E>>1]|0,B)|0;D=F(A[l>>1]|0,B)|0;Q=(F(A[i>>1]|0,t)|0)+Q<<1;D=(F(A[i+2>>1]|0,t)|0)+D<<1<<g;A[E>>1]=((Q<<g)+32768|0)>>>16;A[l>>1]=(D+32768|0)>>>16;r=r+-1<<16>>16;if(!(r<<16>>16))break;else{i=i+4|0;E=E+4|0}}i=n<<16>>16;cA(f,v,a+(b<<1)|0,40,w,1);r=30;E=0;while(1){D=r+b|0;A[h+(E<<1)>>1]=(o[e+(D<<1)>>1]|0)-(o[a+(D<<1)>>1]|0);D=F(A[u+(r<<1)>>1]|0,i)|0;Q=(F(A[c+(r<<1)>>1]|0,t)|0)>>k;A[d+(E<<1)>>1]=(o[s+(r<<1)>>1]|0)-(D>>>14)-Q;E=E+1|0;if((E|0)==10)break;else r=r+1|0}return}function tn(e){e=e|0;var i=0;if(!e){e=-1;return e|0}t[e>>2]=0;i=hA(16)|0;if(!i){e=-1;return e|0}A[i>>1]=0;A[i+2>>1]=0;A[i+4>>1]=0;A[i+6>>1]=0;A[i+8>>1]=0;A[i+10>>1]=0;A[i+12>>1]=0;A[i+14>>1]=0;t[e>>2]=i;e=0;return e|0}function fn(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=0;A[e+2>>1]=0;A[e+4>>1]=0;A[e+6>>1]=0;A[e+8>>1]=0;A[e+10>>1]=0;A[e+12>>1]=0;A[e+14>>1]=0;e=0;return e|0}function on(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function an(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0,a=0;n=o[i+6>>1]|0;r=o[i+8>>1]|0;t=n-r|0;t=(t&65535|0)!=32767?t&65535:32767;f=o[i+10>>1]|0;r=r-f|0;t=(r<<16>>16|0)<(t<<16>>16|0)?r&65535:t;r=o[i+12>>1]|0;f=f-r|0;t=(f<<16>>16|0)<(t<<16>>16|0)?f&65535:t;f=o[i+14>>1]|0;r=r-f|0;t=(r<<16>>16|0)<(t<<16>>16|0)?r&65535:t;f=f-(o[i+16>>1]|0)|0;r=A[i+2>>1]|0;a=o[i+4>>1]|0;i=(r&65535)-a|0;i=(i&65535|0)!=32767?i&65535:32767;n=a-n|0;if(((f<<16>>16|0)<(t<<16>>16|0)?f&65535:t)<<16>>16<1500?1:(((n<<16>>16|0)<(i<<16>>16|0)?n&65535:i)<<16>>16|0)<((r<<16>>16>32e3?600:r<<16>>16>30500?800:1100)|0)){f=(A[e>>1]|0)+1<<16>>16;a=f<<16>>16>11;A[e>>1]=a?12:f;return a&1|0}else{A[e>>1]=0;return 0}}function sn(e,i,r){e=e|0;i=i|0;r=r|0;i=aA(i,3,r)|0;i=Dn(i,A[e+2>>1]|0,r)|0;i=Dn(i,A[e+4>>1]|0,r)|0;i=Dn(i,A[e+6>>1]|0,r)|0;i=Dn(i,A[e+8>>1]|0,r)|0;i=Dn(i,A[e+10>>1]|0,r)|0;i=Dn(i,A[e+12>>1]|0,r)|0;return(Dn(i,A[e+14>>1]|0,r)|0)<<16>>16>15565|0}function ln(e,i,r){e=e|0;i=i|0;r=r|0;var n=0;r=e+4|0;A[e+2>>1]=A[r>>1]|0;n=e+6|0;A[r>>1]=A[n>>1]|0;r=e+8|0;A[n>>1]=A[r>>1]|0;n=e+10|0;A[r>>1]=A[n>>1]|0;r=e+12|0;A[n>>1]=A[r>>1]|0;e=e+14|0;A[r>>1]=A[e>>1]|0;A[e>>1]=i<<16>>16>>>3;return}function un(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}t[e>>2]=0;i=hA(128)|0;if(!i){n=-1;return n|0}r=i+72|0;n=r+46|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));A[i>>1]=150;A[i+36>>1]=150;A[i+18>>1]=150;A[i+54>>1]=0;A[i+2>>1]=150;A[i+38>>1]=150;A[i+20>>1]=150;A[i+56>>1]=0;A[i+4>>1]=150;A[i+40>>1]=150;A[i+22>>1]=150;A[i+58>>1]=0;A[i+6>>1]=150;A[i+42>>1]=150;A[i+24>>1]=150;A[i+60>>1]=0;A[i+8>>1]=150;A[i+44>>1]=150;A[i+26>>1]=150;A[i+62>>1]=0;A[i+10>>1]=150;A[i+46>>1]=150;A[i+28>>1]=150;A[i+64>>1]=0;A[i+12>>1]=150;A[i+48>>1]=150;A[i+30>>1]=150;A[i+66>>1]=0;A[i+14>>1]=150;A[i+50>>1]=150;A[i+32>>1]=150;A[i+68>>1]=0;A[i+16>>1]=150;A[i+52>>1]=150;A[i+34>>1]=150;A[i+70>>1]=0;A[i+118>>1]=13106;A[i+120>>1]=0;A[i+122>>1]=0;A[i+124>>1]=0;A[i+126>>1]=13106;t[e>>2]=i;n=0;return n|0}function cn(e){e=e|0;var i=0,r=0;if(!e){r=-1;return r|0}i=e+72|0;r=i+46|0;do{A[i>>1]=0;i=i+2|0}while((i|0)<(r|0));A[e>>1]=150;A[e+36>>1]=150;A[e+18>>1]=150;A[e+54>>1]=0;A[e+2>>1]=150;A[e+38>>1]=150;A[e+20>>1]=150;A[e+56>>1]=0;A[e+4>>1]=150;A[e+40>>1]=150;A[e+22>>1]=150;A[e+58>>1]=0;A[e+6>>1]=150;A[e+42>>1]=150;A[e+24>>1]=150;A[e+60>>1]=0;A[e+8>>1]=150;A[e+44>>1]=150;A[e+26>>1]=150;A[e+62>>1]=0;A[e+10>>1]=150;A[e+46>>1]=150;A[e+28>>1]=150;A[e+64>>1]=0;A[e+12>>1]=150;A[e+48>>1]=150;A[e+30>>1]=150;A[e+66>>1]=0;A[e+14>>1]=150;A[e+50>>1]=150;A[e+32>>1]=150;A[e+68>>1]=0;A[e+16>>1]=150;A[e+52>>1]=150;A[e+34>>1]=150;A[e+70>>1]=0;A[e+118>>1]=13106;A[e+120>>1]=0;A[e+122>>1]=0;A[e+124>>1]=0;A[e+126>>1]=13106;r=0;return r|0}function wn(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function hn(e,i){e=e|0;i=i|0;A[e+118>>1]=i;return}function dn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0;r=oA(r,n)|0;if(r<<16>>16<=0)return;r=r<<16>>16;if((r*21298|0)==1073741824){t[n>>2]=1;f=2147483647}else f=r*42596|0;r=i-f|0;if(((r^i)&(f^i)|0)<0){t[n>>2]=1;r=(i>>>31)+2147483647|0}if((r|0)<=0)return;e=e+104|0;A[e>>1]=o[e>>1]|0|16384;return}function vn(e,i,r){e=e|0;i=i|0;r=r|0;var n=0;e=e+104|0;n=aA(A[e>>1]|0,1,r)|0;A[e>>1]=n;if(!(i<<16>>16))return;A[e>>1]=(aA(n,1,r)|0)&65535|8192;return}function Bn(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0;t=e+112|0;n=uA(A[t>>1]|0,A[i>>1]|0,r)|0;n=(n&65535)-((n&65535)>>>15&65535)|0;n=((n<<16>>31^n)&65535)<<16>>16<4;f=A[i>>1]|0;A[t>>1]=f;i=i+2|0;f=uA(f,A[i>>1]|0,r)|0;f=(f&65535)-((f&65535)>>>15&65535)|0;n=((f<<16>>31^f)&65535)<<16>>16<4?n?2:1:n&1;A[t>>1]=A[i>>1]|0;t=e+102|0;A[t>>1]=aA(A[t>>1]|0,1,r)|0;i=e+110|0;if((Dn(A[i>>1]|0,n,r)|0)<<16>>16<=3){A[i>>1]=n;return}A[t>>1]=o[t>>1]|0|16384;A[i>>1]=n;return}function En(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;M=u;u=u+352|0;w=M+24|0;T=M;s=0;f=0;do{n=A[i+(s+-40<<1)>>1]|0;n=F(n,n)|0;if((n|0)!=1073741824){a=(n<<1)+f|0;if((n^f|0)>0&(a^f|0)<0){t[r>>2]=1;f=(f>>>31)+2147483647|0}else f=a}else{t[r>>2]=1;f=2147483647}s=s+1|0}while((s|0)!=160);h=f;if((343039-h&h|0)<0){t[r>>2]=1;f=(h>>>31)+2147483647|0}else f=h+-343040|0;if((f|0)<0){P=e+102|0;A[P>>1]=o[P>>1]&16383}c=h+-15e3|0;d=(14999-h&h|0)<0;if(d){t[r>>2]=1;a=(h>>>31)+2147483647|0}else a=c;if((a|0)<0){P=e+108|0;A[P>>1]=o[P>>1]&16383}n=e+72|0;l=e+74|0;a=A[n>>1]|0;s=A[l>>1]|0;f=0;do{P=f<<2;C=uA((A[i+(P<<1)>>1]|0)>>>2&65535,((a<<16>>16)*21955|0)>>>15&65535,r)|0;k=((C<<16>>16)*21955|0)>>>15&65535;b=Dn(a,k,r)|0;Q=P|1;y=uA((A[i+(Q<<1)>>1]|0)>>>2&65535,((s<<16>>16)*6390|0)>>>15&65535,r)|0;D=((y<<16>>16)*6390|0)>>>15&65535;a=Dn(s,D,r)|0;A[w+(P<<1)>>1]=Dn(b,a,r)|0;A[w+(Q<<1)>>1]=uA(b,a,r)|0;Q=P|2;a=uA((A[i+(Q<<1)>>1]|0)>>>2&65535,k,r)|0;C=Dn(C,((a<<16>>16)*21955|0)>>>15&65535,r)|0;P=P|3;s=uA((A[i+(P<<1)>>1]|0)>>>2&65535,D,r)|0;y=Dn(y,((s<<16>>16)*6390|0)>>>15&65535,r)|0;A[w+(Q<<1)>>1]=Dn(C,y,r)|0;A[w+(P<<1)>>1]=uA(C,y,r)|0;f=f+1|0}while((f|0)!=40);A[n>>1]=a;A[l>>1]=s;s=e+76|0;a=e+80|0;f=0;do{P=f<<2;gn(w+(P<<1)|0,w+((P|2)<<1)|0,s,r);gn(w+((P|1)<<1)|0,w+((P|3)<<1)|0,a,r);f=f+1|0}while((f|0)!=40);s=e+84|0;a=e+86|0;f=e+92|0;n=0;do{P=n<<3;bn(w+(P<<1)|0,w+((P|4)<<1)|0,s,r);bn(w+((P|2)<<1)|0,w+((P|6)<<1)|0,a,r);bn(w+((P|3)<<1)|0,w+((P|7)<<1)|0,f,r);n=n+1|0}while((n|0)!=20);s=e+88|0;a=e+90|0;f=0;do{P=f<<4;bn(w+(P<<1)|0,w+((P|8)<<1)|0,s,r);bn(w+((P|4)<<1)|0,w+((P|12)<<1)|0,a,r);f=f+1|0}while((f|0)!=10);g=kn(w,e+70|0,32,40,4,1,15,r)|0;A[T+16>>1]=g;b=kn(w,e+68|0,16,20,8,7,16,r)|0;A[T+14>>1]=b;k=kn(w,e+66|0,16,20,8,3,16,r)|0;A[T+12>>1]=k;D=kn(w,e+64|0,16,20,8,2,16,r)|0;A[T+10>>1]=D;Q=kn(w,e+62|0,16,20,8,6,16,r)|0;A[T+8>>1]=Q;C=kn(w,e+60|0,8,10,16,4,16,r)|0;A[T+6>>1]=C;y=kn(w,e+58|0,8,10,16,12,16,r)|0;A[T+4>>1]=y;P=kn(w,e+56|0,8,10,16,8,16,r)|0;A[T+2>>1]=P;E=kn(w,e+54|0,8,10,16,0,16,r)|0;A[T>>1]=E;s=0;n=0;do{a=e+(n<<1)|0;i=Wn(A[a>>1]|0)|0;a=A[a>>1]|0;f=i<<16>>16;if(i<<16>>16<0){l=0-f<<16;if((l|0)<983040)l=a<<16>>16>>(l>>16)&65535;else l=0}else{l=a<<16>>16;a=l<<f;if((a<<16>>16>>f|0)==(l|0))l=a&65535;else l=(l>>>15^32767)&65535}a=Cn(aA(A[T+(n<<1)>>1]|0,1,r)|0,l)|0;B=uA(i,5,r)|0;f=B<<16>>16;if(B<<16>>16<0){l=0-f<<16;if((l|0)<983040)l=a<<16>>16>>(l>>16);else l=0}else{a=a<<16>>16;l=a<<f;if((l<<16>>16>>f|0)!=(a|0))l=a>>>15^32767}l=l<<16>>16;l=F(l,l)|0;if((l|0)!=1073741824){a=(l<<1)+s|0;if((l^s|0)>0&(a^s|0)<0){t[r>>2]=1;s=(s>>>31)+2147483647|0}else s=a}else{t[r>>2]=1;s=2147483647}n=n+1|0}while((n|0)!=9);B=s<<6;s=(((B>>6|0)==(s|0)?B:s>>31^2147418112)>>16)*3641>>15;if((s|0)>32767){t[r>>2]=1;s=32767}B=A[e>>1]|0;l=B<<16>>16;v=A[e+2>>1]|0;a=(v<<16>>16)+l|0;if((v^B)<<16>>16>-1&(a^l|0)<0){t[r>>2]=1;a=(l>>>31)+2147483647|0}B=A[e+4>>1]|0;l=B+a|0;if((B^a|0)>-1&(l^a|0)<0){t[r>>2]=1;l=(a>>>31)+2147483647|0}B=A[e+6>>1]|0;a=B+l|0;if((B^l|0)>-1&(a^l|0)<0){t[r>>2]=1;a=(l>>>31)+2147483647|0}B=A[e+8>>1]|0;l=B+a|0;if((B^a|0)>-1&(l^a|0)<0){t[r>>2]=1;l=(a>>>31)+2147483647|0}B=A[e+10>>1]|0;a=B+l|0;if((B^l|0)>-1&(a^l|0)<0){t[r>>2]=1;a=(l>>>31)+2147483647|0}B=A[e+12>>1]|0;l=B+a|0;if((B^a|0)>-1&(l^a|0)<0){t[r>>2]=1;l=(a>>>31)+2147483647|0}B=A[e+14>>1]|0;a=B+l|0;if((B^l|0)>-1&(a^l|0)<0){t[r>>2]=1;a=(l>>>31)+2147483647|0}B=A[e+16>>1]|0;l=B+a|0;if((B^a|0)>-1&(l^a|0)<0){t[r>>2]=1;l=(a>>>31)+2147483647|0}v=l<<13;v=((v>>13|0)==(l|0)?v:l>>31^2147418112)>>>16&65535;l=(F((uA(v,0,r)|0)<<16>>16,-2808)|0)>>15;if((l|0)>32767){t[r>>2]=1;l=32767}w=Dn(l&65535,1260,r)|0;B=e+100|0;l=aA(A[B>>1]|0,1,r)|0;if((s<<16>>16|0)>((w<<16>>16<720?720:w<<16>>16)|0))l=(l&65535|16384)&65535;A[B>>1]=l;if(d){t[r>>2]=1;c=(h>>>31)+2147483647|0}f=A[e+118>>1]|0;d=e+126|0;l=A[d>>1]|0;n=l<<16>>16<19660;n=f<<16>>16<l<<16>>16?n?2621:6553:n?2621:655;i=l&65535;s=i<<16;l=F(n,l<<16>>16)|0;if((l|0)==1073741824){t[r>>2]=1;l=2147483647}else l=l<<1;a=s-l|0;if(((a^s)&(l^s)|0)<0){t[r>>2]=1;a=(i>>>15)+2147483647|0}s=F(n,f<<16>>16)|0;do{if((s|0)==1073741824){t[r>>2]=1;l=2147483647}else{l=a+(s<<1)|0;if(!((a^s|0)>0&(l^a|0)<0))break;t[r>>2]=1;l=(a>>>31)+2147483647|0}}while(0);i=oA(l,r)|0;h=(c|0)>-1;A[d>>1]=h?i<<16>>16<13106?13106:i:13106;i=e+106|0;A[i>>1]=aA(A[i>>1]|0,1,r)|0;a=e+108|0;l=aA(A[a>>1]|0,1,r)|0;A[a>>1]=l;s=A[d>>1]|0;e:do{if(h){do{if(s<<16>>16>19660)A[i>>1]=o[i>>1]|16384;else{if(s<<16>>16>16383)break;s=e+116|0;l=0;break e}}while(0);A[a>>1]=l&65535|16384;p=62}else p=62}while(0);do{if((p|0)==62){l=e+116|0;if(s<<16>>16<=22936){s=l;l=0;break}s=l;l=Dn(A[l>>1]|0,1,r)|0}}while(0);A[s>>1]=l;if((A[i>>1]&32640)!=32640){w=(A[a>>1]&32767)==32767;A[e+122>>1]=w&1;if(w)p=67}else{A[e+122>>1]=1;p=67}do{if((p|0)==67){s=e+98|0;if((A[s>>1]|0)>=5)break;A[s>>1]=5}}while(0);w=e+102|0;do{if((A[w>>1]&24576)==24576)p=71;else{if((A[e+104>>1]&31744)==31744){p=71;break}if(!(A[B>>1]&32640)){A[e+98>>1]=20;a=32767;break}else{a=E;s=0;l=0}while(1){n=A[e+18+(s<<1)>>1]|0;f=a<<16>>16>n<<16>>16;c=f?a:n;a=f?n:a;c=c<<16>>16<184?184:c;a=a<<16>>16<184?184:a;n=Wn(a)|0;f=n<<16>>16;do{if(n<<16>>16<0){i=0-f<<16;if((i|0)>=983040){i=0;break}i=a<<16>>16>>(i>>16)&65535}else{i=a<<16>>16;a=i<<f;if((a<<16>>16>>f|0)==(i|0)){i=a&65535;break}i=(i>>>15^32767)&65535}}while(0);c=Cn(aA(c,1,r)|0,i)|0;l=Dn(l,aA(c,uA(8,n,r)|0,r)|0,r)|0;s=s+1|0;if((s|0)==9)break;a=A[T+(s<<1)>>1]|0}if(l<<16>>16>1e3){A[e+98>>1]=20;a=32767;break}a=A[B>>1]|0;s=e+98|0;l=A[s>>1]|0;do{if(!(a&16384))p=86;else{if(!(l<<16>>16)){l=a;break}l=uA(l,1,r)|0;A[s>>1]=l;p=86}}while(0);if((p|0)==86){if(l<<16>>16==20){a=32767;break}l=A[B>>1]|0}a=(l&16384)==0?16383:3276}}while(0);if((p|0)==71){A[e+98>>1]=20;a=32767}s=E;l=0;while(1){c=e+18+(l<<1)|0;i=Jn(a,uA(s,A[c>>1]|0,r)|0,r)|0;A[c>>1]=Dn(A[c>>1]|0,i,r)|0;l=l+1|0;if((l|0)==9)break;s=A[T+(l<<1)>>1]|0}do{if(!(A[B>>1]&30720)){if(A[w>>1]&30720){p=95;break}if(!(A[e+114>>1]|0)){f=2097;n=1638;i=2}else p=95}else p=95}while(0);do{if((p|0)==95){if((A[e+98>>1]|0)==0?(A[e+114>>1]|0)==0:0){f=1867;n=491;i=2;break}f=1638;n=0;i=0}}while(0);a=0;do{s=e+(a<<1)|0;l=uA(A[e+36+(a<<1)>>1]|0,A[s>>1]|0,r)|0;if(l<<16>>16<0){l=Jn(f,l,r)|0;l=Dn(-2,Dn(A[s>>1]|0,l,r)|0,r)|0;l=l<<16>>16<40?40:l}else{l=Jn(n,l,r)|0;l=Dn(i,Dn(A[s>>1]|0,l,r)|0,r)|0;l=l<<16>>16>16e3?16e3:l}A[s>>1]=l;a=a+1|0}while((a|0)!=9);A[e+36>>1]=E;A[e+38>>1]=P;A[e+40>>1]=y;A[e+42>>1]=C;A[e+44>>1]=Q;A[e+46>>1]=D;A[e+48>>1]=k;A[e+50>>1]=b;A[e+52>>1]=g;s=v<<16>>16>100;a=s?7:4;s=s?4:5;if(!h){A[e+94>>1]=0;A[e+96>>1]=0;A[e+114>>1]=0;A[e+116>>1]=0;r=0;e=e+120|0;A[e>>1]=r;u=M;return r|0}f=e+114|0;n=A[f>>1]|0;do{if((A[e+116>>1]|0)<=100){if(n<<16>>16)break;n=A[B>>1]|0;do{if(!(n&16368)){if((A[d>>1]|0)>21298)n=1;else break;e=e+120|0;A[e>>1]=n;u=M;return n|0}}while(0);f=e+94|0;if(!(n&16384)){A[f>>1]=0;n=e+96|0;f=A[n>>1]|0;if(f<<16>>16<=0){r=0;e=e+120|0;A[e>>1]=r;u=M;return r|0}A[n>>1]=uA(f,1,r)|0;r=1;e=e+120|0;A[e>>1]=r;u=M;return r|0}else{r=Dn(A[f>>1]|0,1,r)|0;A[f>>1]=r;if((r<<16>>16|0)<(s|0)){r=1;e=e+120|0;A[e>>1]=r;u=M;return r|0}A[e+96>>1]=a;r=1;e=e+120|0;A[e>>1]=r;u=M;return r|0}}else{if(n<<16>>16>=250)break;A[f>>1]=250;n=250}}while(0);A[e+94>>1]=4;A[f>>1]=uA(n,1,r)|0;r=1;e=e+120|0;A[e>>1]=r;u=M;return r|0}function gn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0,a=0;f=(A[r>>1]|0)*21955>>15;if((f|0)>32767){t[n>>2]=1;f=32767}o=uA(A[e>>1]|0,f&65535,n)|0;f=(o<<16>>16)*21955>>15;if((f|0)>32767){t[n>>2]=1;f=32767}a=Dn(A[r>>1]|0,f&65535,n)|0;A[r>>1]=o;r=r+2|0;f=(A[r>>1]|0)*6390>>15;if((f|0)>32767){t[n>>2]=1;f=32767}o=uA(A[i>>1]|0,f&65535,n)|0;f=(o<<16>>16)*6390>>15;if((f|0)>32767){t[n>>2]=1;f=32767}f=Dn(A[r>>1]|0,f&65535,n)|0;A[r>>1]=o;A[e>>1]=aA(Dn(a,f,n)|0,1,n)|0;A[i>>1]=aA(uA(a,f,n)|0,1,n)|0;return}function bn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var f=0,o=0;f=(A[r>>1]|0)*13363>>15;if((f|0)>32767){t[n>>2]=1;f=32767}o=uA(A[i>>1]|0,f&65535,n)|0;f=(o<<16>>16)*13363>>15;if((f|0)>32767){t[n>>2]=1;f=32767}f=Dn(A[r>>1]|0,f&65535,n)|0;A[r>>1]=o;A[i>>1]=aA(uA(A[e>>1]|0,f,n)|0,1,n)|0;A[e>>1]=aA(Dn(A[e>>1]|0,f,n)|0,1,n)|0;return}function kn(e,i,r,n,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,u=0,c=0,w=0,h=0,d=0;if(r<<16>>16<n<<16>>16){w=f<<16>>16;l=o<<16>>16;h=r<<16>>16;u=0;do{d=A[e+((F(h,w)|0)+l<<1)>>1]|0;d=(d&65535)-((d&65535)>>>15&65535)|0;d=(d<<16>>31^d)<<16;c=(d>>15)+u|0;if((d>>16^u|0)>0&(c^u|0)<0){t[s>>2]=1;u=(u>>>31)+2147483647|0}else u=c;h=h+1|0}while((h&65535)<<16>>16!=n<<16>>16);h=u}else h=0;u=A[i>>1]|0;d=uA(16,a,s)|0;l=d<<16>>16;if(d<<16>>16>0){n=u<<l;if((n>>l|0)!=(u|0))n=u>>31^2147483647}else{l=0-l<<16;if((l|0)<2031616)n=u>>(l>>16);else n=0}l=n+h|0;if((n^h|0)>-1&(l^h|0)<0){t[s>>2]=1;l=(h>>>31)+2147483647|0}d=a<<16>>16;a=a<<16>>16>0;if(a){n=h<<d;if((n>>d|0)!=(h|0))n=h>>31^2147483647}else{n=0-d<<16;if((n|0)<2031616)n=h>>(n>>16);else n=0}A[i>>1]=n>>>16;if(r<<16>>16>0){w=f<<16>>16;u=o<<16>>16;c=0;do{o=A[e+((F(c,w)|0)+u<<1)>>1]|0;o=(o&65535)-((o&65535)>>>15&65535)|0;o=(o<<16>>31^o)<<16;n=(o>>15)+l|0;if((o>>16^l|0)>0&(n^l|0)<0){t[s>>2]=1;l=(l>>>31)+2147483647|0}else l=n;c=c+1|0}while((c&65535)<<16>>16!=r<<16>>16)}if(a){n=l<<d;if((n>>d|0)==(l|0)){s=n;s=s>>>16;s=s&65535;return s|0}s=l>>31^2147483647;s=s>>>16;s=s&65535;return s|0}else{n=0-d<<16;if((n|0)>=2031616){s=0;s=s>>>16;s=s&65535;return s|0}s=l>>(n>>16);s=s>>>16;s=s&65535;return s|0}}function Dn(e,i,r){e=e|0;i=i|0;r=r|0;e=(i<<16>>16)+(e<<16>>16)|0;if((e|0)<=32767){if((e|0)<-32768){t[r>>2]=1;e=-32768}}else{t[r>>2]=1;e=32767}return e&65535|0}function Qn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0;C=u;u=u+32|0;D=C+12|0;Q=C;A[D>>1]=1024;A[Q>>1]=1024;s=A[e+2>>1]|0;o=A[e+20>>1]|0;n=((o+s|0)>>>2)+64512|0;A[D+2>>1]=n;o=((s-o|0)>>>2)+1024|0;A[Q+2>>1]=o;s=A[e+4>>1]|0;t=A[e+18>>1]|0;n=((t+s|0)>>>2)-n|0;A[D+4>>1]=n;o=((s-t|0)>>>2)+o|0;A[Q+4>>1]=o;t=A[e+6>>1]|0;s=A[e+16>>1]|0;n=((s+t|0)>>>2)-n|0;A[D+6>>1]=n;o=((t-s|0)>>>2)+o|0;A[Q+6>>1]=o;s=A[e+8>>1]|0;t=A[e+14>>1]|0;n=((t+s|0)>>>2)-n|0;A[D+8>>1]=n;o=((s-t|0)>>>2)+o|0;A[Q+8>>1]=o;t=A[e+10>>1]|0;s=A[e+12>>1]|0;n=((s+t|0)>>>2)-n|0;A[D+10>>1]=n;A[Q+10>>1]=((t-s|0)>>>2)+o;o=A[3454]|0;s=o<<16>>16;e=A[D+2>>1]|0;t=(e<<16>>16<<14)+(s<<10)|0;E=t&-65536;t=(t>>>1)-(t>>16<<15)<<16;k=(((F(t>>16,s)|0)>>15)+(F(E>>16,s)|0)<<2)+-16777216|0;k=(A[D+4>>1]<<14)+k|0;a=k>>16;k=(k>>>1)-(a<<15)<<16;E=(((F(k>>16,s)|0)>>15)+(F(a,s)|0)<<2)-((t>>15)+E)|0;E=(A[D+6>>1]<<14)+E|0;t=E>>16;E=(E>>>1)-(t<<15)<<16;a=(((F(E>>16,s)|0)>>15)+(F(t,s)|0)<<2)-((k>>15)+(a<<16))|0;a=(A[D+8>>1]<<14)+a|0;k=a>>16;t=(n<<16>>3)+((((F((a>>>1)-(k<<15)<<16>>16,s)|0)>>15)+(F(k,s)|0)<<1)-((E>>15)+(t<<16)))|0;E=D+4|0;s=D;k=0;a=0;n=0;B=D+10|0;t=(t+33554432|0)>>>0<67108863?t>>>10&65535:(t|0)>33554431?32767:-32768;e:while(1){g=e<<16>>16<<14;v=s+6|0;d=s+8|0;h=a<<16>>16;while(1){if((h|0)>=60)break e;s=(h&65535)+1<<16>>16;l=A[6908+(s<<16>>16<<1)>>1]|0;b=l<<16>>16;a=g+(b<<10)|0;f=a&-65536;a=(a>>>1)-(a>>16<<15)<<16;c=(((F(a>>16,b)|0)>>15)+(F(f>>16,b)|0)<<2)+-16777216|0;w=A[E>>1]|0;c=(w<<16>>16<<14)+c|0;T=c>>16;c=(c>>>1)-(T<<15)<<16;f=(((F(c>>16,b)|0)>>15)+(F(T,b)|0)<<2)-((a>>15)+f)|0;a=A[v>>1]|0;f=(a<<16>>16<<14)+f|0;e=f>>16;f=(f>>>1)-(e<<15)<<16;T=(((F(f>>16,b)|0)>>15)+(F(e,b)|0)<<2)-((c>>15)+(T<<16))|0;c=A[d>>1]|0;T=(c<<16>>16<<14)+T|0;P=T>>16;e=(((F((T>>>1)-(P<<15)<<16>>16,b)|0)>>15)+(F(P,b)|0)<<1)-((f>>15)+(e<<16))|0;f=A[B>>1]|0;e=(f<<16>>16<<13)+e|0;e=(e+33554432|0)>>>0<67108863?e>>>10&65535:(e|0)>33554431?32767:-32768;if((F(e<<16>>16,t<<16>>16)|0)<1){b=s;s=w;break}else{h=h+1|0;o=l;t=e}}E=f<<16>>16<<13;B=s<<16>>16<<14;w=a<<16>>16<<14;d=c<<16>>16<<14;f=l<<16>>16;h=4;while(1){P=(o<<16>>16>>>1)+(f>>>1)|0;f=P<<16;v=f>>16;f=g+(f>>6)|0;T=f&-65536;f=(f>>>1)-(f>>16<<15)<<16;c=B+((((F(f>>16,v)|0)>>15)+(F(T>>16,v)|0)<<2)+-16777216)|0;s=c>>16;c=(c>>>1)-(s<<15)<<16;T=w+((((F(c>>16,v)|0)>>15)+(F(s,v)|0)<<2)-((f>>15)+T))|0;f=T>>16;T=(T>>>1)-(f<<15)<<16;s=d+((((F(T>>16,v)|0)>>15)+(F(f,v)|0)<<2)-((c>>15)+(s<<16)))|0;c=s>>16;P=P&65535;f=E+((((F((s>>>1)-(c<<15)<<16>>16,v)|0)>>15)+(F(c,v)|0)<<1)-((T>>15)+(f<<16)))|0;f=(f+33554432|0)>>>0<67108863?f>>>10&65535:(f|0)>33554431?32767:-32768;T=(F(f<<16>>16,e<<16>>16)|0)<1;v=T?l:P;e=T?e:f;o=T?P:o;t=T?f:t;h=h+-1<<16>>16;f=v<<16>>16;if(!(h<<16>>16)){l=f;a=o;o=v;break}else l=v}s=n<<16>>16;f=e<<16>>16;e=(t&65535)-f|0;t=e<<16;if(t){T=(e&65535)-(e>>>15&1)|0;T=T<<16>>31^T;e=(Wn(T&65535)|0)<<16>>16;e=(F((Cn(16383,T<<16>>16<<e&65535)|0)<<16>>16,(a&65535)-l<<16>>16)|0)>>19-e;if((t|0)<0)e=0-(e<<16>>16)|0;o=l-((F(e<<16>>16,f)|0)>>>10)&65535}A[i+(s<<1)>>1]=o;t=k<<16>>16==0?Q:D;P=o<<16>>16;e=A[t+2>>1]|0;f=(e<<16>>16<<14)+(P<<10)|0;T=f&-65536;f=(f>>>1)-(f>>16<<15)<<16;g=(((F(f>>16,P)|0)>>15)+(F(T>>16,P)|0)<<2)+-16777216|0;g=(A[t+4>>1]<<14)+g|0;E=g>>16;g=(g>>>1)-(E<<15)<<16;T=(((F(g>>16,P)|0)>>15)+(F(E,P)|0)<<2)-((f>>15)+T)|0;T=(A[t+6>>1]<<14)+T|0;f=T>>16;T=(T>>>1)-(f<<15)<<16;E=(((F(T>>16,P)|0)>>15)+(F(f,P)|0)<<2)-((g>>15)+(E<<16))|0;E=(A[t+8>>1]<<14)+E|0;g=E>>16;n=n+1<<16>>16;f=(((F((E>>>1)-(g<<15)<<16>>16,P)|0)>>15)+(F(g,P)|0)<<1)-((T>>15)+(f<<16))|0;f=(A[t+10>>1]<<13)+f|0;if(n<<16>>16<10){E=t+4|0;s=t;k=k^1;a=b;B=t+10|0;t=(f+33554432|0)>>>0<67108863?f>>>10&65535:(f|0)>33554431?32767:-32768}else{y=13;break}}if((y|0)==13){u=C;return}A[i>>1]=A[r>>1]|0;A[i+2>>1]=A[r+2>>1]|0;A[i+4>>1]=A[r+4>>1]|0;A[i+6>>1]=A[r+6>>1]|0;A[i+8>>1]=A[r+8>>1]|0;A[i+10>>1]=A[r+10>>1]|0;A[i+12>>1]=A[r+12>>1]|0;A[i+14>>1]=A[r+14>>1]|0;A[i+16>>1]=A[r+16>>1]|0;A[i+18>>1]=A[r+18>>1]|0;u=C;return}function Cn(e,i){e=e|0;i=i|0;var r=0,n=0,A=0,t=0,f=0,o=0;A=i<<16>>16;if(e<<16>>16<1?1:e<<16>>16>i<<16>>16){A=0;return A|0}if(e<<16>>16==i<<16>>16){A=32767;return A|0}n=A<<1;r=A<<2;t=e<<16>>16<<3;e=(t|0)<(r|0);t=t-(e?0:r)|0;e=e?0:4;f=(t|0)<(n|0);t=t-(f?0:n)|0;i=(t|0)<(A|0);e=(i&1|(f?e:e|2))<<3^8;i=t-(i?0:A)<<3;if((i|0)>=(r|0)){i=i-r|0;e=e&65528|4}t=(i|0)<(n|0);f=i-(t?0:n)|0;i=(f|0)<(A|0);e=(i&1^1|(t?e:e|2))<<16>>13;i=f-(i?0:A)<<3;if((i|0)>=(r|0)){i=i-r|0;e=e&65528|4}t=(i|0)<(n|0);f=i-(t?0:n)|0;i=(f|0)<(A|0);e=(i&1^1|(t?e:e|2))<<16>>13;i=f-(i?0:A)<<3;if((i|0)>=(r|0)){i=i-r|0;e=e&65528|4}o=(i|0)<(n|0);t=i-(o?0:n)|0;f=(t|0)<(A|0);i=(f&1^1|(o?e:e|2))<<16>>13;e=t-(f?0:A)<<3;if((e|0)>=(r|0)){e=e-r|0;i=i&65528|4}o=(e|0)<(n|0);o=((e-(o?0:n)|0)>=(A|0)|(o?i:i|2))&65535;return o|0}function yn(e){e=e|0;if(!e){e=-1;return e|0}A[e>>1]=-14336;A[e+8>>1]=-2381;A[e+2>>1]=-14336;A[e+10>>1]=-2381;A[e+4>>1]=-14336;A[e+12>>1]=-2381;A[e+6>>1]=-14336;A[e+14>>1]=-2381;e=0;return e|0}function Pn(e,i,r,n,f,a,s,l){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;a=a|0;s=s|0;l=l|0;var c=0,w=0,h=0,d=0,v=0,B=0;B=u;u=u+16|0;d=B+2|0;v=B;c=0;w=10;while(1){h=A[r>>1]|0;h=((F(h,h)|0)>>>3)+c|0;c=A[r+2>>1]|0;c=h+((F(c,c)|0)>>>3)|0;h=A[r+4>>1]|0;h=c+((F(h,h)|0)>>>3)|0;c=A[r+6>>1]|0;c=h+((F(c,c)|0)>>>3)|0;w=w+-1<<16>>16;if(!(w<<16>>16))break;else r=r+8|0}w=c<<4;w=(w|0)<0?2147483647:w;if((i|0)==7){Un(((oA(w,l)|0)<<16>>16)*52428|0,d,v,l);h=o[d>>1]<<16;w=A[v>>1]<<1;i=A[e+8>>1]|0;c=(i<<16>>16)*88|0;if(i<<16>>16>-1&(c|0)<-783741){t[l>>2]=1;r=2147483647}else r=c+783741|0;i=(A[e+10>>1]|0)*74|0;c=i+r|0;if((i^r|0)>-1&(c^r|0)<0){t[l>>2]=1;r=(r>>>31)+2147483647|0}else r=c;i=(A[e+12>>1]|0)*44|0;c=i+r|0;if((i^r|0)>-1&(c^r|0)<0){t[l>>2]=1;r=(r>>>31)+2147483647|0}else r=c;e=(A[e+14>>1]|0)*24|0;c=e+r|0;if((e^r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}e=h+-1966080+w|0;r=c-e|0;if(((r^c)&(c^e)|0)<0){t[l>>2]=1;r=(c>>>31)+2147483647|0}l=r>>17;A[n>>1]=l;l=(r>>2)-(l<<15)|0;l=l&65535;A[f>>1]=l;u=B;return}h=Kn(w)|0;c=h<<16>>16;if(h<<16>>16>0){r=w<<c;if((r>>c|0)==(w|0))w=r;else w=w>>31^2147483647}else{c=0-c<<16;if((c|0)<2031616)w=w>>(c>>16);else w=0}Nn(w,h,d,v);d=F(A[d>>1]|0,-49320)|0;c=(F(A[v>>1]|0,-24660)|0)>>15;c=(c&65536|0)==0?c:c|-65536;v=c<<1;r=v+d|0;if((v^d|0)>-1&(r^v|0)<0){t[l>>2]=1;r=(c>>>30&1)+2147483647|0}switch(i|0){case 6:{c=r+2134784|0;if((r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}break}case 5:{A[s>>1]=w>>>16;A[a>>1]=-11-(h&65535);c=r+2183936|0;if((r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}break}case 4:{c=r+2085632|0;if((r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}break}case 3:{c=r+2065152|0;if((r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}break}default:{c=r+2134784|0;if((r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}}}do{if((c|0)<=2097151)if((c|0)<-2097152){t[l>>2]=1;r=-2147483648;break}else{r=c<<10;break}else{t[l>>2]=1;r=2147483647}}while(0);s=(A[e>>1]|0)*11142|0;c=s+r|0;if((s^r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}s=(A[e+2>>1]|0)*9502|0;r=s+c|0;if((s^c|0)>-1&(r^c|0)<0){t[l>>2]=1;r=(c>>>31)+2147483647|0}s=(A[e+4>>1]|0)*5570|0;c=s+r|0;if((s^r|0)>-1&(c^r|0)<0){t[l>>2]=1;c=(r>>>31)+2147483647|0}e=(A[e+6>>1]|0)*3112|0;r=e+c|0;if((e^c|0)>-1&(r^c|0)<0){t[l>>2]=1;r=(c>>>31)+2147483647|0}r=F(r>>16,(i|0)==4?10878:10886)|0;if((r|0)<0)r=~((r^-256)>>8);else r=r>>8;A[n>>1]=r>>>16;if((r|0)<0)c=~((r^-2)>>1);else c=r>>1;n=r>>16<<15;r=c-n|0;if(((r^c)&(n^c)|0)>=0){l=r;l=l&65535;A[f>>1]=l;u=B;return}t[l>>2]=1;l=(c>>>31)+2147483647|0;l=l&65535;A[f>>1]=l;u=B;return}function Tn(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0,f=0;t=e+4|0;A[e+6>>1]=A[t>>1]|0;f=e+12|0;A[e+14>>1]=A[f>>1]|0;n=e+2|0;A[t>>1]=A[n>>1]|0;t=e+10|0;A[f>>1]=A[t>>1]|0;A[n>>1]=A[e>>1]|0;n=e+8|0;A[t>>1]=A[n>>1]|0;A[n>>1]=i;A[e>>1]=r;return}function pn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0;f=Dn(0,A[e+8>>1]|0,n)|0;f=Dn(f,A[e+10>>1]|0,n)|0;f=Dn(f,A[e+12>>1]|0,n)|0;f=Dn(f,A[e+14>>1]|0,n)|0;t=f<<16>>16>>2;t=(f<<16>>16<0?t|49152:t)&65535;A[i>>1]=t<<16>>16<-2381?-2381:t;i=Dn(0,A[e>>1]|0,n)|0;i=Dn(i,A[e+2>>1]|0,n)|0;i=Dn(i,A[e+4>>1]|0,n)|0;n=Dn(i,A[e+6>>1]|0,n)|0;e=n<<16>>16>>2;e=(n<<16>>16<0?e|49152:e)&65535;A[r>>1]=e<<16>>16<-14336?-14336:e;return}function Mn(e){e=e|0;t[e>>2]=6892;t[e+4>>2]=8180;t[e+8>>2]=21e3;t[e+12>>2]=9716;t[e+16>>2]=22024;t[e+20>>2]=12788;t[e+24>>2]=24072;t[e+28>>2]=26120;t[e+32>>2]=28168;t[e+36>>2]=6876;t[e+40>>2]=7452;t[e+44>>2]=8140;t[e+48>>2]=20980;t[e+52>>2]=16884;t[e+56>>2]=17908;t[e+60>>2]=7980;t[e+64>>2]=8160;t[e+68>>2]=6678;t[e+72>>2]=6646;t[e+76>>2]=6614;t[e+80>>2]=29704;t[e+84>>2]=28680;t[e+88>>2]=3720;t[e+92>>2]=8;t[e+96>>2]=4172;t[e+100>>2]=44;t[e+104>>2]=3436;t[e+108>>2]=30316;t[e+112>>2]=30796;t[e+116>>2]=31276;t[e+120>>2]=7472;t[e+124>>2]=7552;t[e+128>>2]=7632;t[e+132>>2]=7712;return}function mn(e,i){e=e|0;i=i|0;var r=0,n=0,t=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0;w=u;u=u+48|0;l=w+18|0;c=w;s=i<<16>>16;gA(c|0,e|0,s<<1|0)|0;if(i<<16>>16>0){r=0;n=0}else{c=s>>1;c=l+(c<<1)|0;c=A[c>>1]|0;c=c<<16>>16;c=e+(c<<1)|0;c=A[c>>1]|0;u=w;return c|0}do{a=0;o=-32767;while(1){t=A[c+(a<<1)>>1]|0;f=t<<16>>16<o<<16>>16;n=f?n:a&65535;a=a+1|0;if((a&65535)<<16>>16==i<<16>>16)break;else o=f?o:t}A[c+(n<<16>>16<<1)>>1]=-32768;A[l+(r<<1)>>1]=n;r=r+1|0}while((r&65535)<<16>>16!=i<<16>>16);c=s>>1;c=l+(c<<1)|0;c=A[c>>1]|0;c=c<<16>>16;c=e+(c<<1)|0;c=A[c>>1]|0;u=w;return c|0}function In(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;var f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0;f=u;u=u+32|0;o=f;P=i+2|0;y=o+2|0;A[o>>1]=((A[i>>1]|0)>>>1)+((A[e>>1]|0)>>>1);C=i+4|0;Q=o+4|0;A[y>>1]=((A[P>>1]|0)>>>1)+((A[e+2>>1]|0)>>>1);D=i+6|0;k=o+6|0;A[Q>>1]=((A[C>>1]|0)>>>1)+((A[e+4>>1]|0)>>>1);b=i+8|0;g=o+8|0;A[k>>1]=((A[D>>1]|0)>>>1)+((A[e+6>>1]|0)>>>1);E=i+10|0;B=o+10|0;A[g>>1]=((A[b>>1]|0)>>>1)+((A[e+8>>1]|0)>>>1);v=i+12|0;d=o+12|0;A[B>>1]=((A[E>>1]|0)>>>1)+((A[e+10>>1]|0)>>>1);h=i+14|0;w=o+14|0;A[d>>1]=((A[v>>1]|0)>>>1)+((A[e+12>>1]|0)>>>1);c=i+16|0;l=o+16|0;A[w>>1]=((A[h>>1]|0)>>>1)+((A[e+14>>1]|0)>>>1);s=i+18|0;a=o+18|0;A[l>>1]=((A[c>>1]|0)>>>1)+((A[e+16>>1]|0)>>>1);A[a>>1]=((A[s>>1]|0)>>>1)+((A[e+18>>1]|0)>>>1);Ln(o,n,t);Ln(i,n+22|0,t);A[o>>1]=((A[r>>1]|0)>>>1)+((A[i>>1]|0)>>>1);A[y>>1]=((A[r+2>>1]|0)>>>1)+((A[P>>1]|0)>>>1);A[Q>>1]=((A[r+4>>1]|0)>>>1)+((A[C>>1]|0)>>>1);A[k>>1]=((A[r+6>>1]|0)>>>1)+((A[D>>1]|0)>>>1);A[g>>1]=((A[r+8>>1]|0)>>>1)+((A[b>>1]|0)>>>1);A[B>>1]=((A[r+10>>1]|0)>>>1)+((A[E>>1]|0)>>>1);A[d>>1]=((A[r+12>>1]|0)>>>1)+((A[v>>1]|0)>>>1);A[w>>1]=((A[r+14>>1]|0)>>>1)+((A[h>>1]|0)>>>1);A[l>>1]=((A[r+16>>1]|0)>>>1)+((A[c>>1]|0)>>>1);A[a>>1]=((A[r+18>>1]|0)>>>1)+((A[s>>1]|0)>>>1);Ln(o,n+44|0,t);Ln(r,n+66|0,t);u=f;return}function Fn(e,i,r,n,t){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;var f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0;f=u;u=u+32|0;o=f;P=i+2|0;y=o+2|0;A[o>>1]=((A[i>>1]|0)>>>1)+((A[e>>1]|0)>>>1);C=i+4|0;Q=o+4|0;A[y>>1]=((A[P>>1]|0)>>>1)+((A[e+2>>1]|0)>>>1);D=i+6|0;k=o+6|0;A[Q>>1]=((A[C>>1]|0)>>>1)+((A[e+4>>1]|0)>>>1);b=i+8|0;g=o+8|0;A[k>>1]=((A[D>>1]|0)>>>1)+((A[e+6>>1]|0)>>>1);E=i+10|0;B=o+10|0;A[g>>1]=((A[b>>1]|0)>>>1)+((A[e+8>>1]|0)>>>1);v=i+12|0;d=o+12|0;A[B>>1]=((A[E>>1]|0)>>>1)+((A[e+10>>1]|0)>>>1);h=i+14|0;w=o+14|0;A[d>>1]=((A[v>>1]|0)>>>1)+((A[e+12>>1]|0)>>>1);c=i+16|0;l=o+16|0;A[w>>1]=((A[h>>1]|0)>>>1)+((A[e+14>>1]|0)>>>1);s=i+18|0;a=o+18|0;A[l>>1]=((A[c>>1]|0)>>>1)+((A[e+16>>1]|0)>>>1);A[a>>1]=((A[s>>1]|0)>>>1)+((A[e+18>>1]|0)>>>1);Ln(o,n,t);A[o>>1]=((A[r>>1]|0)>>>1)+((A[i>>1]|0)>>>1);A[y>>1]=((A[r+2>>1]|0)>>>1)+((A[P>>1]|0)>>>1);A[Q>>1]=((A[r+4>>1]|0)>>>1)+((A[C>>1]|0)>>>1);A[k>>1]=((A[r+6>>1]|0)>>>1)+((A[D>>1]|0)>>>1);A[g>>1]=((A[r+8>>1]|0)>>>1)+((A[b>>1]|0)>>>1);A[B>>1]=((A[r+10>>1]|0)>>>1)+((A[E>>1]|0)>>>1);A[d>>1]=((A[r+12>>1]|0)>>>1)+((A[v>>1]|0)>>>1);A[w>>1]=((A[r+14>>1]|0)>>>1)+((A[h>>1]|0)>>>1);A[l>>1]=((A[r+16>>1]|0)>>>1)+((A[c>>1]|0)>>>1);A[a>>1]=((A[r+18>>1]|0)>>>1)+((A[s>>1]|0)>>>1);Ln(o,n+44|0,t);u=f;return}function Rn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0,O=0,H=0;t=u;u=u+32|0;f=t;R=A[e>>1]|0;A[f>>1]=R-(R>>>2)+((A[i>>1]|0)>>>2);R=e+2|0;m=A[R>>1]|0;O=i+2|0;F=f+2|0;A[F>>1]=m-(m>>>2)+((A[O>>1]|0)>>>2);m=e+4|0;T=A[m>>1]|0;I=i+4|0;M=f+4|0;A[M>>1]=T-(T>>>2)+((A[I>>1]|0)>>>2);T=e+6|0;C=A[T>>1]|0;p=i+6|0;P=f+6|0;A[P>>1]=C-(C>>>2)+((A[p>>1]|0)>>>2);C=e+8|0;k=A[C>>1]|0;y=i+8|0;Q=f+8|0;A[Q>>1]=k-(k>>>2)+((A[y>>1]|0)>>>2);k=e+10|0;E=A[k>>1]|0;D=i+10|0;b=f+10|0;A[b>>1]=E-(E>>>2)+((A[D>>1]|0)>>>2);E=e+12|0;d=A[E>>1]|0;g=i+12|0;B=f+12|0;A[B>>1]=d-(d>>>2)+((A[g>>1]|0)>>>2);d=e+14|0;c=A[d>>1]|0;v=i+14|0;h=f+14|0;A[h>>1]=c-(c>>>2)+((A[v>>1]|0)>>>2);c=e+16|0;a=A[c>>1]|0;w=i+16|0;l=f+16|0;A[l>>1]=a-(a>>>2)+((A[w>>1]|0)>>>2);a=e+18|0;H=A[a>>1]|0;s=i+18|0;o=f+18|0;A[o>>1]=H-(H>>>2)+((A[s>>1]|0)>>>2);Ln(f,r,n);A[f>>1]=((A[e>>1]|0)>>>1)+((A[i>>1]|0)>>>1);A[F>>1]=((A[R>>1]|0)>>>1)+((A[O>>1]|0)>>>1);A[M>>1]=((A[m>>1]|0)>>>1)+((A[I>>1]|0)>>>1);A[P>>1]=((A[T>>1]|0)>>>1)+((A[p>>1]|0)>>>1);A[Q>>1]=((A[C>>1]|0)>>>1)+((A[y>>1]|0)>>>1);A[b>>1]=((A[k>>1]|0)>>>1)+((A[D>>1]|0)>>>1);A[B>>1]=((A[E>>1]|0)>>>1)+((A[g>>1]|0)>>>1);A[h>>1]=((A[d>>1]|0)>>>1)+((A[v>>1]|0)>>>1);A[l>>1]=((A[c>>1]|0)>>>1)+((A[w>>1]|0)>>>1);A[o>>1]=((A[a>>1]|0)>>>1)+((A[s>>1]|0)>>>1);Ln(f,r+22|0,n);H=A[i>>1]|0;A[f>>1]=H-(H>>>2)+((A[e>>1]|0)>>>2);e=A[O>>1]|0;A[F>>1]=e-(e>>>2)+((A[R>>1]|0)>>>2);e=A[I>>1]|0;A[M>>1]=e-(e>>>2)+((A[m>>1]|0)>>>2);e=A[p>>1]|0;A[P>>1]=e-(e>>>2)+((A[T>>1]|0)>>>2);e=A[y>>1]|0;A[Q>>1]=e-(e>>>2)+((A[C>>1]|0)>>>2);e=A[D>>1]|0;A[b>>1]=e-(e>>>2)+((A[k>>1]|0)>>>2);e=A[g>>1]|0;A[B>>1]=e-(e>>>2)+((A[E>>1]|0)>>>2);e=A[v>>1]|0;A[h>>1]=e-(e>>>2)+((A[d>>1]|0)>>>2);e=A[w>>1]|0;A[l>>1]=e-(e>>>2)+((A[c>>1]|0)>>>2);e=A[s>>1]|0;A[o>>1]=e-(e>>>2)+((A[a>>1]|0)>>>2);Ln(f,r+44|0,n);Ln(i,r+66|0,n);u=t;return}function On(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0,O=0,H=0;t=u;u=u+32|0;f=t;R=A[e>>1]|0;A[f>>1]=R-(R>>>2)+((A[i>>1]|0)>>>2);R=e+2|0;m=A[R>>1]|0;O=i+2|0;F=f+2|0;A[F>>1]=m-(m>>>2)+((A[O>>1]|0)>>>2);m=e+4|0;T=A[m>>1]|0;I=i+4|0;M=f+4|0;A[M>>1]=T-(T>>>2)+((A[I>>1]|0)>>>2);T=e+6|0;C=A[T>>1]|0;p=i+6|0;P=f+6|0;A[P>>1]=C-(C>>>2)+((A[p>>1]|0)>>>2);C=e+8|0;k=A[C>>1]|0;y=i+8|0;Q=f+8|0;A[Q>>1]=k-(k>>>2)+((A[y>>1]|0)>>>2);k=e+10|0;E=A[k>>1]|0;D=i+10|0;b=f+10|0;A[b>>1]=E-(E>>>2)+((A[D>>1]|0)>>>2);E=e+12|0;d=A[E>>1]|0;g=i+12|0;B=f+12|0;A[B>>1]=d-(d>>>2)+((A[g>>1]|0)>>>2);d=e+14|0;c=A[d>>1]|0;v=i+14|0;h=f+14|0;A[h>>1]=c-(c>>>2)+((A[v>>1]|0)>>>2);c=e+16|0;a=A[c>>1]|0;w=i+16|0;l=f+16|0;A[l>>1]=a-(a>>>2)+((A[w>>1]|0)>>>2);a=e+18|0;H=A[a>>1]|0;s=i+18|0;o=f+18|0;A[o>>1]=H-(H>>>2)+((A[s>>1]|0)>>>2);Ln(f,r,n);A[f>>1]=((A[e>>1]|0)>>>1)+((A[i>>1]|0)>>>1);A[F>>1]=((A[R>>1]|0)>>>1)+((A[O>>1]|0)>>>1);A[M>>1]=((A[m>>1]|0)>>>1)+((A[I>>1]|0)>>>1);A[P>>1]=((A[T>>1]|0)>>>1)+((A[p>>1]|0)>>>1);A[Q>>1]=((A[C>>1]|0)>>>1)+((A[y>>1]|0)>>>1);A[b>>1]=((A[k>>1]|0)>>>1)+((A[D>>1]|0)>>>1);A[B>>1]=((A[E>>1]|0)>>>1)+((A[g>>1]|0)>>>1);A[h>>1]=((A[d>>1]|0)>>>1)+((A[v>>1]|0)>>>1);A[l>>1]=((A[c>>1]|0)>>>1)+((A[w>>1]|0)>>>1);A[o>>1]=((A[a>>1]|0)>>>1)+((A[s>>1]|0)>>>1);Ln(f,r+22|0,n);i=A[i>>1]|0;A[f>>1]=i-(i>>>2)+((A[e>>1]|0)>>>2);e=A[O>>1]|0;A[F>>1]=e-(e>>>2)+((A[R>>1]|0)>>>2);e=A[I>>1]|0;A[M>>1]=e-(e>>>2)+((A[m>>1]|0)>>>2);e=A[p>>1]|0;A[P>>1]=e-(e>>>2)+((A[T>>1]|0)>>>2);e=A[y>>1]|0;A[Q>>1]=e-(e>>>2)+((A[C>>1]|0)>>>2);e=A[D>>1]|0;A[b>>1]=e-(e>>>2)+((A[k>>1]|0)>>>2);e=A[g>>1]|0;A[B>>1]=e-(e>>>2)+((A[E>>1]|0)>>>2);e=A[v>>1]|0;A[h>>1]=e-(e>>>2)+((A[d>>1]|0)>>>2);e=A[w>>1]|0;A[l>>1]=e-(e>>>2)+((A[c>>1]|0)>>>2);e=A[s>>1]|0;A[o>>1]=e-(e>>>2)+((A[a>>1]|0)>>>2);Ln(f,r+44|0,n);u=t;return}function Hn(e,i){e=e|0;i=i|0;var r=0,n=0;if((e|0)<1){i=1073741823;return i|0}r=(Kn(e)|0)<<16>>16;i=30-r|0;e=e<<r>>(i&1^1);r=(e>>25<<16)+-1048576>>16;n=A[7030+(r<<1)>>1]|0;i=(n<<16)-(F(n-(o[7030+(r+1<<1)>>1]|0)<<16>>15,e>>>10&32767)|0)>>(i<<16>>17)+1;return i|0}function Un(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;n=Kn(e)|0;Nn(e<<(n<<16>>16),n,i,r);return}function Nn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;if((e|0)<1){A[r>>1]=0;r=0;A[n>>1]=r;return}else{A[r>>1]=30-(i&65535);r=(e>>25<<16)+-2097152>>16;i=A[7128+(r<<1)>>1]|0;r=((i<<16)-(F(e>>>9&65534,i-(o[7128+(r+1<<1)>>1]|0)<<16>>16)|0)|0)>>>16&65535;A[n>>1]=r;return}}function Sn(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,t=0;n=e+2|0;r=A[n>>1]|0;A[i>>1]=r;t=e+4|0;A[i+2>>1]=(o[t>>1]|0)-(o[e>>1]|0);A[i+4>>1]=(o[e+6>>1]|0)-(o[n>>1]|0);n=e+8|0;A[i+6>>1]=(o[n>>1]|0)-(o[t>>1]|0);A[i+8>>1]=(o[e+10>>1]|0)-(o[e+6>>1]|0);t=e+12|0;A[i+10>>1]=(o[t>>1]|0)-(o[n>>1]|0);A[i+12>>1]=(o[e+14>>1]|0)-(o[e+10>>1]|0);A[i+14>>1]=(o[e+16>>1]|0)-(o[t>>1]|0);A[i+16>>1]=(o[e+18>>1]|0)-(o[e+14>>1]|0);A[i+18>>1]=16384-(o[e+16>>1]|0);e=10;t=i;while(1){r=r<<16>>16;i=(r<<16)+-120782848|0;if((i|0)>0)i=1843-((i>>16)*12484>>16)|0;else i=3427-((r*56320|0)>>>16)|0;n=t+2|0;A[t>>1]=i<<3;e=e+-1<<16>>16;if(!(e<<16>>16))break;r=A[n>>1]|0;t=n}return}function _n(e,i,r){e=e|0;i=i|0;r=r|0;r=i<<16>>16;if(i<<16>>16>31){i=0;return i|0}if(i<<16>>16>0)return((1<<r+-1&e|0)!=0&1)+(i<<16>>16<31?e>>r:0)|0;r=0-r<<16>>16;i=e<<r;i=(i>>r|0)==(e|0)?i:e>>31^2147483647;return i|0}function Ln(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0;E=u;u=u+48|0;v=E+24|0;B=E;h=v+4|0;t[v>>2]=16777216;n=0-(A[e>>1]|0)|0;d=v+8|0;t[h>>2]=n<<10;f=A[e+4>>1]|0;l=n>>6;t[d>>2]=33554432-(((F((n<<9)-(l<<15)<<16>>16,f)|0)>>15)+(F(l,f)|0)<<2);l=v+4|0;f=(t[l>>2]|0)-(f<<10)|0;t[l>>2]=f;l=v+12|0;n=v+4|0;t[l>>2]=f;r=A[e+8>>1]|0;o=f;c=1;while(1){s=l+-4|0;a=t[s>>2]|0;w=a>>16;t[l>>2]=o+f-(((F((a>>>1)-(w<<15)<<16>>16,r)|0)>>15)+(F(w,r)|0)<<2);if((c|0)==2)break;o=t[l+-12>>2]|0;l=s;f=a;c=c+1|0}t[n>>2]=(t[n>>2]|0)-(r<<10);r=v+16|0;n=t[v+8>>2]|0;t[r>>2]=n;s=A[e+12>>1]|0;f=n;l=1;while(1){a=r+-4|0;o=t[a>>2]|0;w=o>>16;t[r>>2]=f+n-(((F((o>>>1)-(w<<15)<<16>>16,s)|0)>>15)+(F(w,s)|0)<<2);if((l|0)==3)break;f=t[r+-12>>2]|0;r=a;n=o;l=l+1|0}r=v+4|0;t[r>>2]=(t[r>>2]|0)-(s<<10);r=v+20|0;f=t[v+12>>2]|0;t[r>>2]=f;n=A[e+16>>1]|0;o=f;l=1;while(1){s=r+-4|0;a=t[s>>2]|0;w=a>>16;t[r>>2]=o+f-(((F((a>>>1)-(w<<15)<<16>>16,n)|0)>>15)+(F(w,n)|0)<<2);if((l|0)==4)break;o=t[r+-12>>2]|0;r=s;f=a;l=l+1|0}l=v+4|0;t[l>>2]=(t[l>>2]|0)-(n<<10);t[B>>2]=16777216;l=0-(A[e+2>>1]|0)|0;w=B+8|0;t[B+4>>2]=l<<10;n=A[e+6>>1]|0;c=l>>6;t[w>>2]=33554432-(((F((l<<9)-(c<<15)<<16>>16,n)|0)>>15)+(F(c,n)|0)<<2);c=B+4|0;n=(t[c>>2]|0)-(n<<10)|0;t[c>>2]=n;c=B+12|0;l=B+4|0;t[c>>2]=n;s=A[e+10>>1]|0;f=n;r=1;while(1){a=c+-4|0;o=t[a>>2]|0;g=o>>16;t[c>>2]=f+n-(((F((o>>>1)-(g<<15)<<16>>16,s)|0)>>15)+(F(g,s)|0)<<2);if((r|0)==2)break;f=t[c+-12>>2]|0;c=a;n=o;r=r+1|0}t[l>>2]=(t[l>>2]|0)-(s<<10);l=B+16|0;n=t[B+8>>2]|0;t[l>>2]=n;s=A[e+14>>1]|0;f=n;r=1;while(1){a=l+-4|0;o=t[a>>2]|0;g=o>>16;t[l>>2]=f+n-(((F((o>>>1)-(g<<15)<<16>>16,s)|0)>>15)+(F(g,s)|0)<<2);if((r|0)==3)break;f=t[l+-12>>2]|0;l=a;n=o;r=r+1|0}r=B+4|0;t[r>>2]=(t[r>>2]|0)-(s<<10);r=B+20|0;s=t[B+12>>2]|0;t[r>>2]=s;n=A[e+18>>1]|0;a=s;l=1;while(1){f=r+-4|0;o=t[f>>2]|0;g=o>>16;t[r>>2]=a+s-(((F((o>>>1)-(g<<15)<<16>>16,n)|0)>>15)+(F(g,n)|0)<<2);if((l|0)==4)break;a=t[r+-12>>2]|0;r=f;s=o;l=l+1|0}a=(t[B+4>>2]|0)-(n<<10)|0;c=v+20|0;s=B+20|0;l=t[v+16>>2]|0;e=(t[c>>2]|0)+l|0;t[c>>2]=e;c=t[B+16>>2]|0;g=(t[s>>2]|0)-c|0;t[s>>2]=g;s=t[v+12>>2]|0;l=l+s|0;t[v+16>>2]=l;o=t[B+12>>2]|0;c=c-o|0;t[B+16>>2]=c;n=t[d>>2]|0;s=s+n|0;t[v+12>>2]=s;f=t[w>>2]|0;d=o-f|0;t[B+12>>2]=d;o=t[h>>2]|0;w=n+o|0;t[v+8>>2]=w;h=f-a|0;t[B+8>>2]=h;v=o+(t[v>>2]|0)|0;B=a-(t[B>>2]|0)|0;A[i>>1]=4096;v=v+4096|0;A[i+2>>1]=(v+B|0)>>>13;A[i+20>>1]=(v-B|0)>>>13;B=w+4096|0;A[i+4>>1]=(B+h|0)>>>13;A[i+18>>1]=(B-h|0)>>>13;B=s+4096|0;A[i+6>>1]=(B+d|0)>>>13;A[i+16>>1]=(B-d|0)>>>13;B=l+4096|0;A[i+8>>1]=(B+c|0)>>>13;A[i+14>>1]=(B-c|0)>>>13;B=e+4096|0;A[i+10>>1]=(B+g|0)>>>13;A[i+12>>1]=(B-g|0)>>>13;u=E;return}function Gn(e){e=e|0;var i=0,r=0,n=0,f=0,o=0;if(!e){o=-1;return o|0}t[e>>2]=0;i=hA(44)|0;if(!i){o=-1;return o|0}r=i+40|0;if((rA(r)|0)<<16>>16){o=-1;return o|0}n=i;f=7452;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));n=i+20|0;f=7452;o=n+20|0;do{A[n>>1]=A[f>>1]|0;n=n+2|0;f=f+2|0}while((n|0)<(o|0));nA(t[r>>2]|0)|0;t[e>>2]=i;o=0;return o|0}function Xn(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}i=e;r=7452;n=i+20|0;do{A[i>>1]=A[r>>1]|0;i=i+2|0;r=r+2|0}while((i|0)<(n|0));i=e+20|0;r=7452;n=i+20|0;do{A[i>>1]=A[r>>1]|0;i=i+2|0;r=r+2|0}while((i|0)<(n|0));nA(t[e+40>>2]|0)|0;n=0;return n|0}function xn(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;AA(i+40|0);dA(t[e>>2]|0);t[e>>2]=0;return}function Yn(e,i,r,n,f,o,a,s){e=e|0;i=i|0;r=r|0;n=n|0;f=f|0;o=o|0;a=a|0;s=s|0;var l=0,c=0,w=0,h=0,d=0;d=u;u=u+64|0;h=d+44|0;l=d+24|0;c=d+4|0;w=d;if((i|0)==7){Qn(n+22|0,l,e,s);Qn(n+66|0,o,l,s);Fn(e,l,o,n,s);if((r|0)==8)n=6;else{eA(t[e+40>>2]|0,l,o,c,h,t[a>>2]|0,s);In(e+20|0,c,h,f,s);f=(t[a>>2]|0)+10|0;n=7}}else{Qn(n+66|0,o,e,s);On(e,o,n,s);if((r|0)==8)n=6;else{Zn(t[e+40>>2]|0,i,o,h,t[a>>2]|0,w,s);Rn(e+20|0,h,f,s);f=(t[a>>2]|0)+6|0;n=7}}if((n|0)==6){n=e;f=n+20|0;do{A[n>>1]=A[o>>1]|0;n=n+2|0;o=o+2|0}while((n|0)<(f|0));u=d;return}else if((n|0)==7){t[a>>2]=f;n=e;f=n+20|0;do{A[n>>1]=A[o>>1]|0;n=n+2|0;o=o+2|0}while((n|0)<(f|0));n=e+20|0;o=h;f=n+20|0;do{A[n>>1]=A[o>>1]|0;n=n+2|0;o=o+2|0}while((n|0)<(f|0));u=d;return}}function zn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0;if(r<<16>>16>0)n=0;else return;do{f=A[e+(n<<1)>>1]|0;o=f>>8;t=A[7194+(o<<1)>>1]|0;A[i+(n<<1)>>1]=((F((A[7194+(o+1<<1)>>1]|0)-t|0,f&255)|0)>>>8)+t;n=n+1|0}while((n&65535)<<16>>16!=r<<16>>16);return}function jn(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0;n=(r<<16>>16)+-1|0;r=n&65535;if(r<<16>>16<=-1)return;t=63;o=i+(n<<1)|0;f=e+(n<<1)|0;while(1){e=A[f>>1]|0;i=t;while(1){n=i<<16>>16;t=A[7194+(n<<1)>>1]|0;if(e<<16>>16>t<<16>>16)i=i+-1<<16>>16;else break}A[o>>1]=(((F(A[7324+(n<<1)>>1]|0,(e<<16>>16)-(t<<16>>16)|0)|0)+2048|0)>>>12)+(n<<8);r=r+-1<<16>>16;if(r<<16>>16>-1){t=i;o=o+-2|0;f=f+-2|0}else break}return}function Jn(e,i,r){e=e|0;i=i|0;r=r|0;e=(F(i<<16>>16,e<<16>>16)|0)+16384>>15;e=e|0-(e&65536);if((e|0)<=32767){if((e|0)<-32768){t[r>>2]=1;e=-32768}}else{t[r>>2]=1;e=32767}return e&65535|0}function Kn(e){e=e|0;var i=0;e:do{if((e|0)!=0?(i=e-(e>>>31)|0,i=i>>31^i,(i&1073741824|0)==0):0){e=i;i=0;while(1){if(e&536870912){e=7;break}if(e&268435456){e=8;break}if(e&134217728){e=9;break}i=i+4<<16>>16;e=e<<4;if(e&1073741824)break e}if((e|0)==7){i=i|1;break}else if((e|0)==8){i=i|2;break}else if((e|0)==9){i=i|3;break}}else i=0}while(0);return i|0}function Wn(e){e=e|0;var i=0,r=0;if(!(e<<16>>16)){r=0;return r|0}i=(e&65535)-((e&65535)>>>15&65535)|0;i=(i<<16>>31^i)<<16;e=i>>16;if(!(e&16384)){r=i;i=0}else{r=0;return r|0}while(1){if(e&8192){e=i;r=7;break}if(e&4096){e=i;r=8;break}if(e&2048){e=i;r=9;break}i=i+4<<16>>16;r=r<<4;e=r>>16;if(e&16384){e=i;r=10;break}}if((r|0)==7){r=e|1;return r|0}else if((r|0)==8){r=e|2;return r|0}else if((r|0)==9){r=e|3;return r|0}else if((r|0)==10)return e|0;return 0}function Vn(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0;i=i<<16>>16;if((i&134217727|0)==33554432){t[r>>2]=1;i=2147483647}else i=i<<6;n=i>>>16&31;a=A[7792+(n<<1)>>1]|0;f=a<<16;i=F(a-(o[7792+(n+1<<1)>>1]|0)<<16>>16,i>>>1&32767)|0;if((i|0)==1073741824){t[r>>2]=1;n=2147483647}else n=i<<1;i=f-n|0;if(((i^f)&(n^f)|0)>=0){a=i;e=e&65535;e=30-e|0;e=e&65535;r=_n(a,e,r)|0;return r|0}t[r>>2]=1;a=(a>>>15&1)+2147483647|0;e=e&65535;e=30-e|0;e=e&65535;r=_n(a,e,r)|0;return r|0}function qn(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0;h=u;u=u+48|0;w=h;c=0-(r&65535)|0;c=t<<16>>16==0?c:c<<1&131070;r=c&65535;c=(r<<16>>16<0?c+6|0:c)<<16>>16;f=6-c|0;A[w>>1]=A[7858+(c<<1)>>1]|0;A[w+2>>1]=A[7858+(f<<1)>>1]|0;A[w+4>>1]=A[7858+(c+6<<1)>>1]|0;A[w+6>>1]=A[7858+(f+6<<1)>>1]|0;A[w+8>>1]=A[7858+(c+12<<1)>>1]|0;A[w+10>>1]=A[7858+(f+12<<1)>>1]|0;A[w+12>>1]=A[7858+(c+18<<1)>>1]|0;A[w+14>>1]=A[7858+(f+18<<1)>>1]|0;A[w+16>>1]=A[7858+(c+24<<1)>>1]|0;A[w+18>>1]=A[7858+(f+24<<1)>>1]|0;A[w+20>>1]=A[7858+(c+30<<1)>>1]|0;A[w+22>>1]=A[7858+(f+30<<1)>>1]|0;A[w+24>>1]=A[7858+(c+36<<1)>>1]|0;A[w+26>>1]=A[7858+(f+36<<1)>>1]|0;A[w+28>>1]=A[7858+(c+42<<1)>>1]|0;A[w+30>>1]=A[7858+(f+42<<1)>>1]|0;A[w+32>>1]=A[7858+(c+48<<1)>>1]|0;A[w+34>>1]=A[7858+(f+48<<1)>>1]|0;A[w+36>>1]=A[7858+(c+54<<1)>>1]|0;A[w+38>>1]=A[7858+(f+54<<1)>>1]|0;f=n<<16>>16>>>1&65535;if(!(f<<16>>16)){u=h;return}c=e+((r<<16>>16>>15<<16>>16)-(i<<16>>16)<<1)|0;while(1){l=c+2|0;o=A[l>>1]|0;i=o;n=c;a=5;s=w;t=16384;r=16384;while(1){v=A[s>>1]|0;B=(F(v,i<<16>>16)|0)+r|0;d=A[l+-2>>1]|0;r=(F(d,v)|0)+t|0;v=n;n=n+4|0;E=A[s+2>>1]|0;r=r+(F(E,o<<16>>16)|0)|0;t=A[n>>1]|0;E=B+(F(t,E)|0)|0;l=l+-4|0;B=A[s+4>>1]|0;d=E+(F(B,d)|0)|0;i=A[l>>1]|0;B=r+(F(i<<16>>16,B)|0)|0;r=A[s+6>>1]|0;t=B+(F(r,t)|0)|0;o=A[v+6>>1]|0;r=d+(F(o<<16>>16,r)|0)|0;if(a<<16>>16<=1)break;else{a=a+-1<<16>>16;s=s+8|0}}A[e>>1]=t>>>15;A[e+2>>1]=r>>>15;f=f+-1<<16>>16;if(!(f<<16>>16))break;else{c=c+4|0;e=e+4|0}}u=h;return}function Zn(e,i,r,n,t,f,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;var s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0;p=u;u=u+144|0;g=p+120|0;C=p+100|0;P=p+80|0;T=p+60|0;y=p+40|0;v=p+20|0;B=p;jn(r,g,10,a);Sn(g,C,a);if((i|0)==8){A[f>>1]=0;l=2147483647;E=0;while(1){w=E*10|0;r=0;c=0;do{Q=(o[7980+(c+w<<1)>>1]|0)+(o[8140+(c<<1)>>1]|0)|0;A[B+(c<<1)>>1]=Q;Q=(o[g+(c<<1)>>1]|0)-(Q&65535)|0;A[v+(c<<1)>>1]=Q;Q=Q<<16;r=(F(Q>>15,Q>>16)|0)+r|0;c=c+1|0}while((c|0)!=10);if((r|0)<(l|0)){b=T;d=v;h=b+20|0;do{A[b>>1]=A[d>>1]|0;b=b+2|0;d=d+2|0}while((b|0)<(h|0));b=P;d=B;h=b+20|0;do{A[b>>1]=A[d>>1]|0;b=b+2|0;d=d+2|0}while((b|0)<(h|0));b=e;d=7980+(w<<1)|0;h=b+20|0;do{A[b>>1]=A[d>>1]|0;b=b+2|0;d=d+2|0}while((b|0)<(h|0));A[f>>1]=E}else r=l;E=E+1|0;if((E|0)==8)break;else l=r}}else{r=0;do{Q=F(A[8160+(r<<1)>>1]|0,A[e+(r<<1)>>1]|0)|0;Q=(Q>>>15)+(o[8140+(r<<1)>>1]|0)|0;A[P+(r<<1)>>1]=Q;A[T+(r<<1)>>1]=(o[g+(r<<1)>>1]|0)-Q;r=r+1|0}while((r|0)!=10)}do{if(i>>>0>=2){Q=T+2|0;D=T+4|0;k=o[T>>1]|0;b=A[C>>1]<<1;g=o[Q>>1]|0;v=A[C+2>>1]<<1;d=o[D>>1]|0;h=A[C+4>>1]<<1;if((i|0)==5){B=2147483647;f=0;r=0;E=17908;while(1){c=(F(k-(o[E>>1]|0)<<16>>16,b)|0)>>16;c=F(c,c)|0;w=(F(g-(o[E+2>>1]|0)<<16>>16,v)|0)>>16;c=(F(w,w)|0)+c|0;w=(F(d-(o[E+4>>1]|0)<<16>>16,h)|0)>>16;w=c+(F(w,w)|0)|0;c=(w|0)<(B|0);r=c?f:r;f=f+1<<16>>16;if(f<<16>>16>=512)break;else{B=c?w:B;E=E+6|0}}w=(r<<16>>16)*3|0;A[T>>1]=A[17908+(w<<1)>>1]|0;A[Q>>1]=A[17908+(w+1<<1)>>1]|0;A[D>>1]=A[17908+(w+2<<1)>>1]|0;A[t>>1]=r;w=T+6|0;c=T+8|0;k=T+10|0;E=o[w>>1]|0;f=A[C+6>>1]<<1;B=o[c>>1]|0;v=A[C+8>>1]<<1;d=o[k>>1]|0;h=A[C+10>>1]<<1;s=2147483647;g=0;r=0;b=9716;while(1){l=(F(f,E-(o[b>>1]|0)<<16>>16)|0)>>16;l=F(l,l)|0;i=(F(v,B-(o[b+2>>1]|0)<<16>>16)|0)>>16;l=(F(i,i)|0)+l|0;i=(F(h,d-(o[b+4>>1]|0)<<16>>16)|0)>>16;i=l+(F(i,i)|0)|0;l=(i|0)<(s|0);r=l?g:r;g=g+1<<16>>16;if(g<<16>>16>=512)break;else{s=l?i:s;b=b+6|0}}s=(r<<16>>16)*3|0;A[w>>1]=A[9716+(s<<1)>>1]|0;A[c>>1]=A[9716+(s+1<<1)>>1]|0;A[k>>1]=A[9716+(s+2<<1)>>1]|0;A[t+2>>1]=r;s=T+12|0;A[t+4>>1]=$n(s,12788,C+12|0,512)|0;g=Q;E=D;r=k;l=T;break}else{B=2147483647;f=0;r=0;E=8180;while(1){c=(F(k-(o[E>>1]|0)<<16>>16,b)|0)>>16;c=F(c,c)|0;w=(F(g-(o[E+2>>1]|0)<<16>>16,v)|0)>>16;c=(F(w,w)|0)+c|0;w=(F(d-(o[E+4>>1]|0)<<16>>16,h)|0)>>16;w=c+(F(w,w)|0)|0;c=(w|0)<(B|0);r=c?f:r;f=f+1<<16>>16;if(f<<16>>16>=256)break;else{B=c?w:B;E=E+6|0}}w=(r<<16>>16)*3|0;A[T>>1]=A[8180+(w<<1)>>1]|0;A[Q>>1]=A[8180+(w+1<<1)>>1]|0;A[D>>1]=A[8180+(w+2<<1)>>1]|0;A[t>>1]=r;w=T+6|0;c=T+8|0;k=T+10|0;E=o[w>>1]|0;f=A[C+6>>1]<<1;B=o[c>>1]|0;v=A[C+8>>1]<<1;d=o[k>>1]|0;h=A[C+10>>1]<<1;s=2147483647;g=0;r=0;b=9716;while(1){l=(F(f,E-(o[b>>1]|0)<<16>>16)|0)>>16;l=F(l,l)|0;i=(F(v,B-(o[b+2>>1]|0)<<16>>16)|0)>>16;l=(F(i,i)|0)+l|0;i=(F(h,d-(o[b+4>>1]|0)<<16>>16)|0)>>16;i=l+(F(i,i)|0)|0;l=(i|0)<(s|0);r=l?g:r;g=g+1<<16>>16;if(g<<16>>16>=512)break;else{s=l?i:s;b=b+6|0}}s=(r<<16>>16)*3|0;A[w>>1]=A[9716+(s<<1)>>1]|0;A[c>>1]=A[9716+(s+1<<1)>>1]|0;A[k>>1]=A[9716+(s+2<<1)>>1]|0;A[t+2>>1]=r;s=T+12|0;A[t+4>>1]=$n(s,12788,C+12|0,512)|0;g=Q;E=D;r=k;l=T;break}}else{D=T+2|0;Q=T+4|0;w=o[T>>1]|0;c=A[C>>1]<<1;l=o[D>>1]|0;s=A[C+2>>1]<<1;i=o[Q>>1]|0;h=A[C+4>>1]<<1;B=2147483647;f=0;r=0;E=8180;while(1){v=(F(c,w-(o[E>>1]|0)<<16>>16)|0)>>16;v=F(v,v)|0;d=(F(s,l-(o[E+2>>1]|0)<<16>>16)|0)>>16;v=(F(d,d)|0)+v|0;d=(F(h,i-(o[E+4>>1]|0)<<16>>16)|0)>>16;d=v+(F(d,d)|0)|0;v=(d|0)<(B|0);r=v?f:r;f=f+1<<16>>16;if(f<<16>>16>=256)break;else{B=v?d:B;E=E+6|0}}w=(r<<16>>16)*3|0;A[T>>1]=A[8180+(w<<1)>>1]|0;A[D>>1]=A[8180+(w+1<<1)>>1]|0;A[Q>>1]=A[8180+(w+2<<1)>>1]|0;A[t>>1]=r;w=T+6|0;c=T+8|0;k=T+10|0;E=o[w>>1]|0;f=A[C+6>>1]<<1;B=o[c>>1]|0;v=A[C+8>>1]<<1;d=o[k>>1]|0;h=A[C+10>>1]<<1;s=2147483647;g=0;r=0;b=9716;while(1){l=(F(f,E-(o[b>>1]|0)<<16>>16)|0)>>16;l=F(l,l)|0;i=(F(v,B-(o[b+2>>1]|0)<<16>>16)|0)>>16;l=(F(i,i)|0)+l|0;i=(F(h,d-(o[b+4>>1]|0)<<16>>16)|0)>>16;i=l+(F(i,i)|0)|0;l=(i|0)<(s|0);r=l?g:r;g=g+1<<16>>16;if(g<<16>>16>=256)break;else{s=l?i:s;b=b+12|0}}s=(r<<16>>16)*6|0;A[w>>1]=A[9716+(s<<1)>>1]|0;A[c>>1]=A[9716+((s|1)<<1)>>1]|0;A[k>>1]=A[9716+(s+2<<1)>>1]|0;A[t+2>>1]=r;s=T+12|0;A[t+4>>1]=$n(s,16884,C+12|0,128)|0;g=D;E=Q;r=k;l=T}}while(0);b=e;d=T;h=b+20|0;do{A[b>>1]=A[d>>1]|0;b=b+2|0;d=d+2|0}while((b|0)<(h|0));A[y>>1]=(o[P>>1]|0)+(o[l>>1]|0);A[y+2>>1]=(o[P+2>>1]|0)+(o[g>>1]|0);A[y+4>>1]=(o[P+4>>1]|0)+(o[E>>1]|0);A[y+6>>1]=(o[P+6>>1]|0)+(o[w>>1]|0);A[y+8>>1]=(o[P+8>>1]|0)+(o[c>>1]|0);A[y+10>>1]=(o[P+10>>1]|0)+(o[r>>1]|0);A[y+12>>1]=(o[P+12>>1]|0)+(o[s>>1]|0);A[y+14>>1]=(o[P+14>>1]|0)+(o[T+14>>1]|0);A[y+16>>1]=(o[P+16>>1]|0)+(o[T+16>>1]|0);A[y+18>>1]=(o[P+18>>1]|0)+(o[T+18>>1]|0);tA(y,205,10,a);zn(y,n,10,a);u=p;return}function $n(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0;g=e+2|0;b=e+4|0;k=e+6|0;if(n<<16>>16>0){c=o[e>>1]|0;w=A[r>>1]<<1;h=o[g>>1]|0;d=A[r+2>>1]<<1;v=o[b>>1]|0;B=A[r+4>>1]<<1;E=o[k>>1]|0;t=A[r+6>>1]<<1;s=2147483647;l=0;r=0;u=i;while(1){f=(F(w,c-(o[u>>1]|0)<<16>>16)|0)>>16;f=F(f,f)|0;a=(F(d,h-(o[u+2>>1]|0)<<16>>16)|0)>>16;f=(F(a,a)|0)+f|0;a=(F(B,v-(o[u+4>>1]|0)<<16>>16)|0)>>16;a=f+(F(a,a)|0)|0;f=(F(t,E-(o[u+6>>1]|0)<<16>>16)|0)>>16;f=a+(F(f,f)|0)|0;a=(f|0)<(s|0);r=a?l:r;l=l+1<<16>>16;if(l<<16>>16>=n<<16>>16)break;else{s=a?f:s;u=u+8|0}}}else r=0;n=r<<16>>16<<2;E=n|1;A[e>>1]=A[i+(n<<1)>>1]|0;A[g>>1]=A[i+(E<<1)>>1]|0;A[b>>1]=A[i+(E+1<<1)>>1]|0;A[k>>1]=A[i+((n|3)<<1)>>1]|0;return r|0}function eA(e,i,r,n,t,f,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;a=a|0;var s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,R=0,O=0,H=0,U=0,N=0;H=u;u=u+192|0;c=H+160|0;l=H+140|0;p=H+120|0;M=H+100|0;m=H+80|0;I=H+60|0;s=H+40|0;R=H+20|0;O=H;jn(i,c,10,a);jn(r,l,10,a);Sn(c,p,a);Sn(l,M,a);w=0;r=m;i=I;h=s;while(1){T=(((A[e+(w<<1)>>1]|0)*21299|0)>>>15)+(o[20980+(w<<1)>>1]|0)|0;A[r>>1]=T;A[i>>1]=(o[c>>1]|0)-T;A[h>>1]=(o[l>>1]|0)-T;w=w+1|0;if((w|0)==10)break;else{c=c+2|0;l=l+2|0;r=r+2|0;i=i+2|0;h=h+2|0}}A[f>>1]=iA(I,s,21e3,A[p>>1]|0,A[p+2>>1]|0,A[M>>1]|0,A[M+2>>1]|0,128)|0;A[f+2>>1]=iA(I+4|0,s+4|0,22024,A[p+4>>1]|0,A[p+6>>1]|0,A[M+4>>1]|0,A[M+6>>1]|0,256)|0;C=I+8|0;y=s+8|0;P=I+10|0;T=s+10|0;r=A[C>>1]|0;d=A[p+8>>1]<<1;v=A[P>>1]|0;B=A[p+10>>1]<<1;E=A[y>>1]|0;g=A[M+8>>1]<<1;b=A[T>>1]|0;k=A[M+10>>1]<<1;l=2147483647;D=0;h=0;Q=24072;i=0;while(1){c=A[Q>>1]|0;w=(F(r-c<<16>>16,d)|0)>>16;w=F(w,w)|0;c=(F(c+r<<16>>16,d)|0)>>16;c=F(c,c)|0;U=A[Q+2>>1]|0;N=(F(v-U<<16>>16,B)|0)>>16;w=(F(N,N)|0)+w|0;U=(F(U+v<<16>>16,B)|0)>>16;c=(F(U,U)|0)+c|0;if((w|0)<(l|0)|(c|0)<(l|0)){N=A[Q+4>>1]|0;U=(F(E-N<<16>>16,g)|0)>>16;U=(F(U,U)|0)+w|0;N=(F(N+E<<16>>16,g)|0)>>16;N=(F(N,N)|0)+c|0;c=A[Q+6>>1]|0;w=(F(b-c<<16>>16,k)|0)>>16;w=U+(F(w,w)|0)|0;c=(F(c+b<<16>>16,k)|0)>>16;c=N+(F(c,c)|0)|0;N=(w|0)<(l|0);w=N?w:l;U=(c|0)<(w|0);w=U?c:w;h=N|U?D:h;i=U?1:N?0:i}else w=l;D=D+1<<16>>16;if(D<<16>>16>=256)break;else{l=w;Q=Q+8|0}}w=h<<16>>16;c=w<<2;h=c|1;l=24072+(h<<1)|0;r=A[24072+(c<<1)>>1]|0;if(!(i<<16>>16)){A[C>>1]=r;A[P>>1]=A[l>>1]|0;A[y>>1]=A[24072+(h+1<<1)>>1]|0;A[T>>1]=A[24072+((c|3)<<1)>>1]|0;i=w<<1}else{A[C>>1]=0-(r&65535);A[P>>1]=0-(o[l>>1]|0);A[y>>1]=0-(o[24072+(h+1<<1)>>1]|0);A[T>>1]=0-(o[24072+((c|3)<<1)>>1]|0);i=w<<1&65534|1}A[f+4>>1]=i;A[f+6>>1]=iA(I+12|0,s+12|0,26120,A[p+12>>1]|0,A[p+14>>1]|0,A[M+12>>1]|0,A[M+14>>1]|0,256)|0;A[f+8>>1]=iA(I+16|0,s+16|0,28168,A[p+16>>1]|0,A[p+18>>1]|0,A[M+16>>1]|0,A[M+18>>1]|0,64)|0;l=0;c=R;w=O;r=m;i=I;while(1){U=o[r>>1]|0;A[c>>1]=U+(o[i>>1]|0);N=A[s>>1]|0;A[w>>1]=U+(N&65535);A[e+(l<<1)>>1]=N;l=l+1|0;if((l|0)==10)break;else{c=c+2|0;w=w+2|0;r=r+2|0;i=i+2|0;s=s+2|0}}tA(R,205,10,a);tA(O,205,10,a);zn(R,n,10,a);zn(O,t,10,a);u=H;return}function iA(e,i,r,n,t,f,o,a){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;o=o|0;a=a|0;var s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0;h=A[e>>1]|0;b=e+2|0;v=A[b>>1]|0;E=A[i>>1]|0;k=i+2|0;g=A[k>>1]|0;if(a<<16>>16>0){w=n<<16>>16<<1;c=t<<16>>16<<1;u=f<<16>>16<<1;t=o<<16>>16<<1;f=2147483647;s=0;n=0;l=r;while(1){o=(F(w,h-(A[l>>1]|0)|0)|0)>>16;o=F(o,o)|0;if(((o|0)<(f|0)?(d=(F(c,v-(A[l+2>>1]|0)|0)|0)>>16,d=(F(d,d)|0)+o|0,(d|0)<(f|0)):0)?(B=(F(u,E-(A[l+4>>1]|0)|0)|0)>>16,B=(F(B,B)|0)+d|0,(B|0)<(f|0)):0){o=(F(t,g-(A[l+6>>1]|0)|0)|0)>>16;o=(F(o,o)|0)+B|0;D=(o|0)<(f|0);o=D?o:f;n=D?s:n}else o=f;s=s+1<<16>>16;if(s<<16>>16>=a<<16>>16)break;else{f=o;l=l+8|0}}}else n=0;D=n<<16>>16<<2;a=D|1;A[e>>1]=A[r+(D<<1)>>1]|0;A[b>>1]=A[r+(a<<1)>>1]|0;A[i>>1]=A[r+(a+1<<1)>>1]|0;A[k>>1]=A[r+((D|3)<<1)>>1]|0;return n|0}function rA(e){e=e|0;var i=0,r=0,n=0;if(!e){n=-1;return n|0}t[e>>2]=0;i=hA(20)|0;if(!i){n=-1;return n|0}r=i;n=r+20|0;do{A[r>>1]=0;r=r+2|0}while((r|0)<(n|0));t[e>>2]=i;n=0;return n|0}function nA(e){e=e|0;var i=0;if(!e){i=-1;return i|0}i=e+20|0;do{A[e>>1]=0;e=e+2|0}while((e|0)<(i|0));i=0;return i|0}function AA(e){e=e|0;var i=0;if(!e)return;i=t[e>>2]|0;if(!i)return;dA(i);t[e>>2]=0;return}function tA(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0;if(r<<16>>16<=0)return;t=i<<16>>16;f=i&65535;o=0;while(1){n=A[e>>1]|0;if(n<<16>>16<i<<16>>16){A[e>>1]=i;n=(i<<16>>16)+t|0}else n=(n&65535)+f|0;o=o+1<<16>>16;if(o<<16>>16>=r<<16>>16)break;else{i=n&65535;e=e+2|0}}return}function fA(e,i,r,n){e=e|0;i=i|0;r=r|0;n=n|0;var t=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0;t=n<<16>>16;n=t>>>2&65535;if(!(n<<16>>16))return;w=t+-1|0;g=e+20|0;d=i+(t+-4<<1)|0;v=i+(t+-3<<1)|0;B=i+(t+-2<<1)|0;E=i+(w<<1)|0;h=i+(t+-11<<1)|0;w=r+(w<<1)|0;while(1){i=A[g>>1]|0;o=5;a=g;s=h;l=h+-2|0;u=h+-4|0;c=h+-6|0;f=2048;e=2048;t=2048;r=2048;while(1){f=(F(A[s>>1]|0,i)|0)+f|0;e=(F(A[l>>1]|0,i)|0)+e|0;t=(F(A[u>>1]|0,i)|0)+t|0;i=(F(A[c>>1]|0,i)|0)+r|0;r=A[a+-2>>1]|0;f=f+(F(A[s+2>>1]|0,r)|0)|0;e=e+(F(A[l+2>>1]|0,r)|0)|0;t=t+(F(A[u+2>>1]|0,r)|0)|0;a=a+-4|0;r=i+(F(A[c+2>>1]|0,r)|0)|0;o=o+-1<<16>>16;i=A[a>>1]|0;if(!(o<<16>>16))break;else{s=s+4|0;l=l+4|0;u=u+4|0;c=c+4|0}}s=(F(A[E>>1]|0,i)|0)+f|0;l=(F(A[B>>1]|0,i)|0)+e|0;u=(F(A[v>>1]|0,i)|0)+t|0;c=(F(A[d>>1]|0,i)|0)+r|0;A[w>>1]=s>>>12;A[w+-2>>1]=l>>>12;A[w+-4>>1]=u>>>12;A[w+-6>>1]=c>>>12;n=n+-1<<16>>16;if(!(n<<16>>16))break;else{d=d+-8|0;v=v+-8|0;B=B+-8|0;E=E+-8|0;h=h+-8|0;w=w+-8|0}}return}function oA(e,i){e=e|0;i=i|0;var r=0;r=e+32768|0;if((e|0)>-1&(r^e|0)<0){t[i>>2]=1;r=(e>>>31)+2147483647|0}return r>>>16&65535|0}function aA(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,A=0;n=i<<16>>16;if(!(i<<16>>16))return e|0;if(i<<16>>16>0){e=e<<16>>16>>(i<<16>>16>15?15:n)&65535;return e|0}A=0-n|0;i=e<<16>>16;A=(A&65535)<<16>>16>15?15:A<<16>>16;n=i<<A;if((n<<16>>16>>A|0)==(i|0)){A=n&65535;return A|0}t[r>>2]=1;A=e<<16>>16>0?32767:-32768;return A|0}function sA(e,i,r){e=e|0;i=i|0;r=r|0;if(i<<16>>16>15){i=0;return i|0}r=aA(e,i,r)|0;if(i<<16>>16>0)return r+((1<<(i<<16>>16)+-1&e<<16>>16|0)!=0&1)<<16>>16|0;else{i=r;return i|0}}function lA(e,i,r){e=e|0;i=i|0;r=r|0;var n=0,f=0,a=0;if((e|0)<1){A[i>>1]=0;r=0;return r|0}f=(Kn(e)|0)&65534;a=f&65535;f=f<<16>>16;if(a<<16>>16>0){n=e<<f;if((n>>f|0)!=(e|0))n=e>>31^2147483647}else{f=0-f<<16;if((f|0)<2031616)n=e>>(f>>16);else n=0}A[i>>1]=a;i=n>>>25&63;i=i>>>0>15?i+-16|0:i;a=A[30216+(i<<1)>>1]|0;e=a<<16;n=F(a-(o[30216+(i+1<<1)>>1]|0)<<16>>16,n>>>10&32767)|0;if((n|0)==1073741824){t[r>>2]=1;f=2147483647}else f=n<<1;n=e-f|0;if(((n^e)&(f^e)|0)>=0){r=n;return r|0}t[r>>2]=1;r=(a>>>15&1)+2147483647|0;return r|0}function uA(e,i,r){e=e|0;i=i|0;r=r|0;e=(e<<16>>16)-(i<<16>>16)|0;if((e+32768|0)>>>0<=65535){r=e;r=r&65535;return r|0}t[r>>2]=1;r=(e|0)>32767?32767:-32768;r=r&65535;return r|0}function cA(e,i,r,n,t,f){e=e|0;i=i|0;r=r|0;n=n|0;t=t|0;f=f|0;var o=0,a=0,s=0,l=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0;P=u;u=u+48|0;h=P;s=h;o=t;a=s+20|0;do{A[s>>1]=A[o>>1]|0;s=s+2|0;o=o+2|0}while((s|0)<(a|0));w=h+18|0;E=e+2|0;g=e+4|0;d=i+20|0;b=e+6|0;k=e+8|0;D=e+10|0;Q=e+12|0;C=e+14|0;y=e+16|0;v=e+18|0;B=e+20|0;a=A[w>>1]|0;o=5;l=i;c=r;s=h+20|0;while(1){M=A[e>>1]|0;p=(F(M,A[l>>1]|0)|0)+2048|0;M=(F(A[l+2>>1]|0,M)|0)+2048|0;h=a<<16>>16;p=p-(F(h,A[E>>1]|0)|0)|0;T=A[g>>1]|0;h=M-(F(h,T)|0)|0;M=A[w+-2>>1]|0;T=p-(F(M,T)|0)|0;p=A[b>>1]|0;M=h-(F(p,M)|0)|0;h=A[w+-4>>1]|0;p=T-(F(h,p)|0)|0;T=A[k>>1]|0;h=M-(F(T,h)|0)|0;M=A[w+-6>>1]|0;T=p-(F(M,T)|0)|0;p=A[D>>1]|0;M=h-(F(M,p)|0)|0;h=A[w+-8>>1]|0;p=T-(F(h,p)|0)|0;T=A[Q>>1]|0;h=M-(F(T,h)|0)|0;M=A[w+-10>>1]|0;T=p-(F(M,T)|0)|0;p=A[C>>1]|0;M=h-(F(p,M)|0)|0;h=A[w+-12>>1]|0;p=T-(F(h,p)|0)|0;T=A[y>>1]|0;h=M-(F(h,T)|0)|0;M=A[w+-14>>1]|0;T=p-(F(M,T)|0)|0;p=A[v>>1]|0;M=h-(F(p,M)|0)|0;h=A[w+-16>>1]|0;p=T-(F(h,p)|0)|0;T=A[B>>1]|0;h=M-(F(T,h)|0)|0;T=p-(F(A[w+-18>>1]|0,T)|0)|0;T=(T+134217728|0)>>>0<268435455?T>>>12&65535:(T|0)>134217727?32767:-32768;h=h-(F(A[E>>1]|0,T<<16>>16)|0)|0;w=s+2|0;A[s>>1]=T;A[c>>1]=T;a=(h+134217728|0)>>>0<268435455?h>>>12&65535:(h|0)>134217727?32767:-32768;A[w>>1]=a;A[c+2>>1]=a;o=o+-1<<16>>16;if(!(o<<16>>16))break;else{l=l+4|0;c=c+4|0;s=s+4|0}}n=(n<<16>>16)+-10|0;s=n>>>1&65535;if(s<<16>>16){h=r+18|0;a=i+16|0;w=A[h>>1]|0;l=d;o=r+20|0;while(1){T=A[e>>1]|0;c=(F(T,A[l>>1]|0)|0)+2048|0;T=(F(A[a+6>>1]|0,T)|0)+2048|0;a=A[E>>1]|0;p=w<<16>>16;c=c-(F(p,a)|0)|0;M=A[g>>1]|0;p=T-(F(p,M)|0)|0;T=A[h+-2>>1]|0;M=c-(F(T,M)|0)|0;c=A[b>>1]|0;T=p-(F(c,T)|0)|0;p=A[h+-4>>1]|0;c=M-(F(p,c)|0)|0;M=A[k>>1]|0;p=T-(F(M,p)|0)|0;T=A[h+-6>>1]|0;M=c-(F(T,M)|0)|0;c=A[D>>1]|0;T=p-(F(T,c)|0)|0;p=A[h+-8>>1]|0;c=M-(F(p,c)|0)|0;M=A[Q>>1]|0;p=T-(F(M,p)|0)|0;T=A[h+-10>>1]|0;M=c-(F(T,M)|0)|0;c=A[C>>1]|0;T=p-(F(c,T)|0)|0;p=A[h+-12>>1]|0;c=M-(F(p,c)|0)|0;M=A[y>>1]|0;p=T-(F(p,M)|0)|0;T=A[h+-14>>1]|0;M=c-(F(T,M)|0)|0;c=A[v>>1]|0;T=p-(F(c,T)|0)|0;p=A[h+-16>>1]|0;c=M-(F(p,c)|0)|0;M=A[B>>1]|0;p=T-(F(M,p)|0)|0;M=c-(F(A[h+-18>>1]|0,M)|0)|0;c=l+4|0;M=(M+134217728|0)>>>0<268435455?M>>>12&65535:(M|0)>134217727?32767:-32768;a=p-(F(a,M<<16>>16)|0)|0;h=o+2|0;A[o>>1]=M;do{if((a+134217728|0)>>>0>=268435455){o=o+4|0;if((a|0)>134217727){A[h>>1]=32767;a=32767;break}else{A[h>>1]=-32768;a=-32768;break}}else{a=a>>>12&65535;A[h>>1]=a;o=o+4|0}}while(0);s=s+-1<<16>>16;if(!(s<<16>>16))break;else{M=l;w=a;l=c;a=M}}}if(!(f<<16>>16)){u=P;return}s=t;o=r+(n<<1)|0;a=s+20|0;do{A[s>>1]=A[o>>1]|0;s=s+2|0;o=o+2|0}while((s|0)<(a|0));u=P;return}function wA(e,i,r){e=e|0;i=i|0;r=r|0;A[r>>1]=A[e>>1]|0;A[r+2>>1]=((F(A[i>>1]|0,A[e+2>>1]|0)|0)+16384|0)>>>15;A[r+4>>1]=((F(A[i+2>>1]|0,A[e+4>>1]|0)|0)+16384|0)>>>15;A[r+6>>1]=((F(A[i+4>>1]|0,A[e+6>>1]|0)|0)+16384|0)>>>15;A[r+8>>1]=((F(A[i+6>>1]|0,A[e+8>>1]|0)|0)+16384|0)>>>15;A[r+10>>1]=((F(A[i+8>>1]|0,A[e+10>>1]|0)|0)+16384|0)>>>15;A[r+12>>1]=((F(A[i+10>>1]|0,A[e+12>>1]|0)|0)+16384|0)>>>15;A[r+14>>1]=((F(A[i+12>>1]|0,A[e+14>>1]|0)|0)+16384|0)>>>15;A[r+16>>1]=((F(A[i+14>>1]|0,A[e+16>>1]|0)|0)+16384|0)>>>15;A[r+18>>1]=((F(A[i+16>>1]|0,A[e+18>>1]|0)|0)+16384|0)>>>15;A[r+20>>1]=((F(A[i+18>>1]|0,A[e+20>>1]|0)|0)+16384|0)>>>15;return}function hA(e){e=e|0;var i=0,r=0,n=0,A=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0,p=0,M=0,m=0,I=0,F=0,R=0,O=0,H=0,U=0,N=0,S=0,L=0,X=0,x=0,Y=0,z=0,j=0,J=0,K=0,W=0;do{if(e>>>0<245){E=e>>>0<11?16:e+11&-8;e=E>>>3;c=t[26]|0;s=c>>>e;if(s&3){n=(s&1^1)+e|0;i=n<<1;r=144+(i<<2)|0;i=144+(i+2<<2)|0;A=t[i>>2]|0;f=A+8|0;o=t[f>>2]|0;do{if((r|0)==(o|0))t[26]=c&~(1<<n);else{if(o>>>0>=(t[30]|0)>>>0?(u=o+12|0,(t[u>>2]|0)==(A|0)):0){t[u>>2]=r;t[i>>2]=o;break}_()}}while(0);K=n<<3;t[A+4>>2]=K|3;K=A+(K|4)|0;t[K>>2]=t[K>>2]|1;break}i=t[28]|0;if(E>>>0>i>>>0){if(s){A=2<<e;A=s<<e&(A|0-A);A=(A&0-A)+-1|0;f=A>>>12&16;A=A>>>f;n=A>>>5&8;A=A>>>n;r=A>>>2&4;A=A>>>r;o=A>>>1&2;A=A>>>o;a=A>>>1&1;a=(n|f|r|o|a)+(A>>>a)|0;A=a<<1;o=144+(A<<2)|0;A=144+(A+2<<2)|0;r=t[A>>2]|0;f=r+8|0;n=t[f>>2]|0;do{if((o|0)==(n|0)){t[26]=c&~(1<<a);w=i}else{if(n>>>0>=(t[30]|0)>>>0?(l=n+12|0,(t[l>>2]|0)==(r|0)):0){t[l>>2]=o;t[A>>2]=n;w=t[28]|0;break}_()}}while(0);K=a<<3;i=K-E|0;t[r+4>>2]=E|3;s=r+E|0;t[r+(E|4)>>2]=i|1;t[r+K>>2]=i;if(w){r=t[31]|0;n=w>>>3;o=n<<1;a=144+(o<<2)|0;A=t[26]|0;n=1<<n;if(A&n){A=144+(o+2<<2)|0;o=t[A>>2]|0;if(o>>>0<(t[30]|0)>>>0)_();else{d=A;v=o}}else{t[26]=A|n;d=144+(o+2<<2)|0;v=a}t[d>>2]=r;t[v+12>>2]=r;t[r+8>>2]=v;t[r+12>>2]=a}t[28]=i;t[31]=s;break}e=t[27]|0;if(e){A=(e&0-e)+-1|0;J=A>>>12&16;A=A>>>J;j=A>>>5&8;A=A>>>j;K=A>>>2&4;A=A>>>K;o=A>>>1&2;A=A>>>o;s=A>>>1&1;s=t[408+((j|J|K|o|s)+(A>>>s)<<2)>>2]|0;A=(t[s+4>>2]&-8)-E|0;o=s;while(1){a=t[o+16>>2]|0;if(!a){a=t[o+20>>2]|0;if(!a){i=A;break}}o=(t[a+4>>2]&-8)-E|0;K=o>>>0<A>>>0;A=K?o:A;o=a;s=K?a:s}e=t[30]|0;if(s>>>0>=e>>>0?(k=s+E|0,s>>>0<k>>>0):0){n=t[s+24>>2]|0;a=t[s+12>>2]|0;do{if((a|0)==(s|0)){o=s+20|0;a=t[o>>2]|0;if(!a){o=s+16|0;a=t[o>>2]|0;if(!a){g=0;break}}while(1){f=a+20|0;A=t[f>>2]|0;if(A){a=A;o=f;continue}f=a+16|0;A=t[f>>2]|0;if(!A)break;else{a=A;o=f}}if(o>>>0<e>>>0)_();else{t[o>>2]=0;g=a;break}}else{o=t[s+8>>2]|0;if((o>>>0>=e>>>0?(r=o+12|0,(t[r>>2]|0)==(s|0)):0)?(h=a+8|0,(t[h>>2]|0)==(s|0)):0){t[r>>2]=a;t[h>>2]=o;g=a;break}_()}}while(0);do{if(n){o=t[s+28>>2]|0;f=408+(o<<2)|0;if((s|0)==(t[f>>2]|0)){t[f>>2]=g;if(!g){t[27]=t[27]&~(1<<o);break}}else{if(n>>>0<(t[30]|0)>>>0)_();o=n+16|0;if((t[o>>2]|0)==(s|0))t[o>>2]=g;else t[n+20>>2]=g;if(!g)break}f=t[30]|0;if(g>>>0<f>>>0)_();t[g+24>>2]=n;o=t[s+16>>2]|0;do{if(o)if(o>>>0<f>>>0)_();else{t[g+16>>2]=o;t[o+24>>2]=g;break}}while(0);o=t[s+20>>2]|0;if(o)if(o>>>0<(t[30]|0)>>>0)_();else{t[g+20>>2]=o;t[o+24>>2]=g;break}}}while(0);if(i>>>0<16){K=i+E|0;t[s+4>>2]=K|3;K=s+(K+4)|0;t[K>>2]=t[K>>2]|1}else{t[s+4>>2]=E|3;t[s+(E|4)>>2]=i|1;t[s+(i+E)>>2]=i;n=t[28]|0;if(n){r=t[31]|0;A=n>>>3;o=A<<1;a=144+(o<<2)|0;f=t[26]|0;A=1<<A;if(f&A){o=144+(o+2<<2)|0;f=t[o>>2]|0;if(f>>>0<(t[30]|0)>>>0)_();else{b=o;D=f}}else{t[26]=f|A;b=144+(o+2<<2)|0;D=a}t[b>>2]=r;t[D+12>>2]=r;t[r+8>>2]=D;t[r+12>>2]=a}t[28]=i;t[31]=k}f=s+8|0;break}_()}else W=154}else W=154}else if(e>>>0<=4294967231){e=e+11|0;D=e&-8;c=t[27]|0;if(c){s=0-D|0;e=e>>>8;if(e)if(D>>>0>16777215)u=31;else{k=(e+1048320|0)>>>16&8;W=e<<k;b=(W+520192|0)>>>16&4;W=W<<b;u=(W+245760|0)>>>16&2;u=14-(b|k|u)+(W<<u>>>15)|0;u=D>>>(u+7|0)&1|u<<1}else u=0;e=t[408+(u<<2)>>2]|0;e:do{if(!e){a=0;e=0;W=86}else{r=s;a=0;i=D<<((u|0)==31?0:25-(u>>>1)|0);l=e;e=0;while(1){n=t[l+4>>2]&-8;s=n-D|0;if(s>>>0<r>>>0)if((n|0)==(D|0)){n=l;e=l;W=90;break e}else e=l;else s=r;W=t[l+20>>2]|0;l=t[l+16+(i>>>31<<2)>>2]|0;a=(W|0)==0|(W|0)==(l|0)?a:W;if(!l){W=86;break}else{r=s;i=i<<1}}}}while(0);if((W|0)==86){if((a|0)==0&(e|0)==0){e=2<<u;e=c&(e|0-e);if(!e){E=D;W=154;break}e=(e&0-e)+-1|0;g=e>>>12&16;e=e>>>g;v=e>>>5&8;e=e>>>v;b=e>>>2&4;e=e>>>b;k=e>>>1&2;e=e>>>k;a=e>>>1&1;a=t[408+((v|g|b|k|a)+(e>>>a)<<2)>>2]|0;e=0}if(!a){v=s;d=e}else{n=a;W=90}}if((W|0)==90)while(1){W=0;k=(t[n+4>>2]&-8)-D|0;a=k>>>0<s>>>0;s=a?k:s;e=a?n:e;a=t[n+16>>2]|0;if(a){n=a;W=90;continue}n=t[n+20>>2]|0;if(!n){v=s;d=e;break}else W=90}if((d|0)!=0?v>>>0<((t[28]|0)-D|0)>>>0:0){e=t[30]|0;if(d>>>0>=e>>>0?(R=d+D|0,d>>>0<R>>>0):0){s=t[d+24>>2]|0;a=t[d+12>>2]|0;do{if((a|0)==(d|0)){o=d+20|0;a=t[o>>2]|0;if(!a){o=d+16|0;a=t[o>>2]|0;if(!a){C=0;break}}while(1){f=a+20|0;A=t[f>>2]|0;if(A){a=A;o=f;continue}f=a+16|0;A=t[f>>2]|0;if(!A)break;else{a=A;o=f}}if(o>>>0<e>>>0)_();else{t[o>>2]=0;C=a;break}}else{o=t[d+8>>2]|0;if((o>>>0>=e>>>0?(B=o+12|0,(t[B>>2]|0)==(d|0)):0)?(E=a+8|0,(t[E>>2]|0)==(d|0)):0){t[B>>2]=a;t[E>>2]=o;C=a;break}_()}}while(0);do{if(s){a=t[d+28>>2]|0;o=408+(a<<2)|0;if((d|0)==(t[o>>2]|0)){t[o>>2]=C;if(!C){t[27]=t[27]&~(1<<a);break}}else{if(s>>>0<(t[30]|0)>>>0)_();o=s+16|0;if((t[o>>2]|0)==(d|0))t[o>>2]=C;else t[s+20>>2]=C;if(!C)break}a=t[30]|0;if(C>>>0<a>>>0)_();t[C+24>>2]=s;o=t[d+16>>2]|0;do{if(o)if(o>>>0<a>>>0)_();else{t[C+16>>2]=o;t[o+24>>2]=C;break}}while(0);o=t[d+20>>2]|0;if(o)if(o>>>0<(t[30]|0)>>>0)_();else{t[C+20>>2]=o;t[o+24>>2]=C;break}}}while(0);e:do{if(v>>>0>=16){t[d+4>>2]=D|3;t[d+(D|4)>>2]=v|1;t[d+(v+D)>>2]=v;a=v>>>3;if(v>>>0<256){f=a<<1;n=144+(f<<2)|0;A=t[26]|0;o=1<<a;if(A&o){o=144+(f+2<<2)|0;f=t[o>>2]|0;if(f>>>0<(t[30]|0)>>>0)_();else{y=o;P=f}}else{t[26]=A|o;y=144+(f+2<<2)|0;P=n}t[y>>2]=R;t[P+12>>2]=R;t[d+(D+8)>>2]=P;t[d+(D+12)>>2]=n;break}r=v>>>8;if(r)if(v>>>0>16777215)a=31;else{J=(r+1048320|0)>>>16&8;K=r<<J;j=(K+520192|0)>>>16&4;K=K<<j;a=(K+245760|0)>>>16&2;a=14-(j|J|a)+(K<<a>>>15)|0;a=v>>>(a+7|0)&1|a<<1}else a=0;o=408+(a<<2)|0;t[d+(D+28)>>2]=a;t[d+(D+20)>>2]=0;t[d+(D+16)>>2]=0;f=t[27]|0;A=1<<a;if(!(f&A)){t[27]=f|A;t[o>>2]=R;t[d+(D+24)>>2]=o;t[d+(D+12)>>2]=R;t[d+(D+8)>>2]=R;break}r=t[o>>2]|0;i:do{if((t[r+4>>2]&-8|0)!=(v|0)){a=v<<((a|0)==31?0:25-(a>>>1)|0);while(1){i=r+16+(a>>>31<<2)|0;o=t[i>>2]|0;if(!o)break;if((t[o+4>>2]&-8|0)==(v|0)){p=o;break i}else{a=a<<1;r=o}}if(i>>>0<(t[30]|0)>>>0)_();else{t[i>>2]=R;t[d+(D+24)>>2]=r;t[d+(D+12)>>2]=R;t[d+(D+8)>>2]=R;break e}}else p=r}while(0);r=p+8|0;i=t[r>>2]|0;K=t[30]|0;if(i>>>0>=K>>>0&p>>>0>=K>>>0){t[i+12>>2]=R;t[r>>2]=R;t[d+(D+8)>>2]=i;t[d+(D+12)>>2]=p;t[d+(D+24)>>2]=0;break}else _()}else{K=v+D|0;t[d+4>>2]=K|3;K=d+(K+4)|0;t[K>>2]=t[K>>2]|1}}while(0);f=d+8|0;break}_()}else{E=D;W=154}}else{E=D;W=154}}else{E=-1;W=154}}while(0);e:do{if((W|0)==154){e=t[28]|0;if(e>>>0>=E>>>0){i=e-E|0;r=t[31]|0;if(i>>>0>15){t[31]=r+E;t[28]=i;t[r+(E+4)>>2]=i|1;t[r+e>>2]=i;t[r+4>>2]=E|3}else{t[28]=0;t[31]=0;t[r+4>>2]=e|3;W=r+(e+4)|0;t[W>>2]=t[W>>2]|1}f=r+8|0;break}e=t[29]|0;if(e>>>0>E>>>0){W=e-E|0;t[29]=W;f=t[32]|0;t[32]=f+E;t[f+(E+4)>>2]=W|1;t[f+4>>2]=E|3;f=f+8|0;break}if(!(t[144]|0))BA();c=E+48|0;r=t[146]|0;u=E+47|0;n=r+u|0;r=0-r|0;l=n&r;if(l>>>0>E>>>0){e=t[136]|0;if((e|0)!=0?(p=t[134]|0,R=p+l|0,R>>>0<=p>>>0|R>>>0>e>>>0):0){f=0;break}i:do{if(!(t[137]&4)){e=t[32]|0;r:do{if(e){a=552;while(1){s=t[a>>2]|0;if(s>>>0<=e>>>0?(Q=a+4|0,(s+(t[Q>>2]|0)|0)>>>0>e>>>0):0){f=a;e=Q;break}a=t[a+8>>2]|0;if(!a){W=172;break r}}s=n-(t[29]|0)&r;if(s>>>0<2147483647){a=G(s|0)|0;R=(a|0)==((t[f>>2]|0)+(t[e>>2]|0)|0);e=R?s:0;if(R){if((a|0)!=(-1|0)){P=a;g=e;W=192;break i}}else W=182}else e=0}else W=172}while(0);do{if((W|0)==172){f=G(0)|0;if((f|0)!=(-1|0)){e=f;s=t[145]|0;a=s+-1|0;if(!(a&e))s=l;else s=l-e+(a+e&0-s)|0;e=t[134]|0;a=e+s|0;if(s>>>0>E>>>0&s>>>0<2147483647){R=t[136]|0;if((R|0)!=0?a>>>0<=e>>>0|a>>>0>R>>>0:0){e=0;break}a=G(s|0)|0;W=(a|0)==(f|0);e=W?s:0;if(W){P=f;g=e;W=192;break i}else W=182}else e=0}else e=0}}while(0);r:do{if((W|0)==182){f=0-s|0;do{if(c>>>0>s>>>0&(s>>>0<2147483647&(a|0)!=(-1|0))?(T=t[146]|0,T=u-s+T&0-T,T>>>0<2147483647):0)if((G(T|0)|0)==(-1|0)){G(f|0)|0;break r}else{s=T+s|0;break}}while(0);if((a|0)!=(-1|0)){P=a;g=s;W=192;break i}}}while(0);t[137]=t[137]|4;W=189}else{e=0;W=189}}while(0);if((((W|0)==189?l>>>0<2147483647:0)?(M=G(l|0)|0,m=G(0)|0,M>>>0<m>>>0&((M|0)!=(-1|0)&(m|0)!=(-1|0))):0)?(I=m-M|0,F=I>>>0>(E+40|0)>>>0,F):0){P=M;g=F?I:e;W=192}if((W|0)==192){s=(t[134]|0)+g|0;t[134]=s;if(s>>>0>(t[135]|0)>>>0)t[135]=s;v=t[32]|0;i:do{if(v){f=552;do{e=t[f>>2]|0;s=f+4|0;a=t[s>>2]|0;if((P|0)==(e+a|0)){O=e;H=s;U=a;N=f;W=202;break}f=t[f+8>>2]|0}while((f|0)!=0);if(((W|0)==202?(t[N+12>>2]&8|0)==0:0)?v>>>0<P>>>0&v>>>0>=O>>>0:0){t[H>>2]=U+g;W=(t[29]|0)+g|0;K=v+8|0;K=(K&7|0)==0?0:0-K&7;J=W-K|0;t[32]=v+K;t[29]=J;t[v+(K+4)>>2]=J|1;t[v+(W+4)>>2]=40;t[33]=t[148];break}s=t[30]|0;if(P>>>0<s>>>0){t[30]=P;s=P}a=P+g|0;e=552;while(1){if((t[e>>2]|0)==(a|0)){f=e;a=e;W=210;break}e=t[e+8>>2]|0;if(!e){a=552;break}}if((W|0)==210)if(!(t[a+12>>2]&8)){t[f>>2]=P;h=a+4|0;t[h>>2]=(t[h>>2]|0)+g;h=P+8|0;h=(h&7|0)==0?0:0-h&7;u=P+(g+8)|0;u=(u&7|0)==0?0:0-u&7;a=P+(u+g)|0;d=h+E|0;w=P+d|0;e=a-(P+h)-E|0;t[P+(h+4)>>2]=E|3;r:do{if((a|0)!=(v|0)){if((a|0)==(t[31]|0)){W=(t[28]|0)+e|0;t[28]=W;t[31]=w;t[P+(d+4)>>2]=W|1;t[P+(W+d)>>2]=W;break}i=g+4|0;o=t[P+(i+u)>>2]|0;if((o&3|0)==1){l=o&-8;n=o>>>3;n:do{if(o>>>0>=256){r=t[P+((u|24)+g)>>2]|0;f=t[P+(g+12+u)>>2]|0;A:do{if((f|0)==(a|0)){A=u|16;f=P+(i+A)|0;o=t[f>>2]|0;if(!o){f=P+(A+g)|0;o=t[f>>2]|0;if(!o){z=0;break}}while(1){A=o+20|0;n=t[A>>2]|0;if(n){o=n;f=A;continue}A=o+16|0;n=t[A>>2]|0;if(!n)break;else{o=n;f=A}}if(f>>>0<s>>>0)_();else{t[f>>2]=0;z=o;break}}else{A=t[P+((u|8)+g)>>2]|0;do{if(A>>>0>=s>>>0){s=A+12|0;if((t[s>>2]|0)!=(a|0))break;o=f+8|0;if((t[o>>2]|0)!=(a|0))break;t[s>>2]=f;t[o>>2]=A;z=f;break A}}while(0);_()}}while(0);if(!r)break;s=t[P+(g+28+u)>>2]|0;o=408+(s<<2)|0;do{if((a|0)!=(t[o>>2]|0)){if(r>>>0<(t[30]|0)>>>0)_();o=r+16|0;if((t[o>>2]|0)==(a|0))t[o>>2]=z;else t[r+20>>2]=z;if(!z)break n}else{t[o>>2]=z;if(z)break;t[27]=t[27]&~(1<<s);break n}}while(0);s=t[30]|0;if(z>>>0<s>>>0)_();t[z+24>>2]=r;a=u|16;o=t[P+(a+g)>>2]|0;do{if(o)if(o>>>0<s>>>0)_();else{t[z+16>>2]=o;t[o+24>>2]=z;break}}while(0);a=t[P+(i+a)>>2]|0;if(!a)break;if(a>>>0<(t[30]|0)>>>0)_();else{t[z+20>>2]=a;t[a+24>>2]=z;break}}else{o=t[P+((u|8)+g)>>2]|0;f=t[P+(g+12+u)>>2]|0;A=144+(n<<1<<2)|0;do{if((o|0)!=(A|0)){if(o>>>0>=s>>>0?(t[o+12>>2]|0)==(a|0):0)break;_()}}while(0);if((f|0)==(o|0)){t[26]=t[26]&~(1<<n);break}do{if((f|0)==(A|0))S=f+8|0;else{if(f>>>0>=s>>>0?(L=f+8|0,(t[L>>2]|0)==(a|0)):0){S=L;break}_()}}while(0);t[o+12>>2]=f;t[S>>2]=o}}while(0);a=P+((l|u)+g)|0;e=l+e|0}a=a+4|0;t[a>>2]=t[a>>2]&-2;t[P+(d+4)>>2]=e|1;t[P+(e+d)>>2]=e;a=e>>>3;if(e>>>0<256){f=a<<1;n=144+(f<<2)|0;A=t[26]|0;o=1<<a;do{if(!(A&o)){t[26]=A|o;j=144+(f+2<<2)|0;J=n}else{o=144+(f+2<<2)|0;f=t[o>>2]|0;if(f>>>0>=(t[30]|0)>>>0){j=o;J=f;break}_()}}while(0);t[j>>2]=w;t[J+12>>2]=w;t[P+(d+8)>>2]=J;t[P+(d+12)>>2]=n;break}r=e>>>8;do{if(!r)a=0;else{if(e>>>0>16777215){a=31;break}J=(r+1048320|0)>>>16&8;W=r<<J;j=(W+520192|0)>>>16&4;W=W<<j;a=(W+245760|0)>>>16&2;a=14-(j|J|a)+(W<<a>>>15)|0;a=e>>>(a+7|0)&1|a<<1}}while(0);o=408+(a<<2)|0;t[P+(d+28)>>2]=a;t[P+(d+20)>>2]=0;t[P+(d+16)>>2]=0;f=t[27]|0;A=1<<a;if(!(f&A)){t[27]=f|A;t[o>>2]=w;t[P+(d+24)>>2]=o;t[P+(d+12)>>2]=w;t[P+(d+8)>>2]=w;break}r=t[o>>2]|0;n:do{if((t[r+4>>2]&-8|0)!=(e|0)){a=e<<((a|0)==31?0:25-(a>>>1)|0);while(1){i=r+16+(a>>>31<<2)|0;o=t[i>>2]|0;if(!o)break;if((t[o+4>>2]&-8|0)==(e|0)){K=o;break n}else{a=a<<1;r=o}}if(i>>>0<(t[30]|0)>>>0)_();else{t[i>>2]=w;t[P+(d+24)>>2]=r;t[P+(d+12)>>2]=w;t[P+(d+8)>>2]=w;break r}}else K=r}while(0);r=K+8|0;i=t[r>>2]|0;W=t[30]|0;if(i>>>0>=W>>>0&K>>>0>=W>>>0){t[i+12>>2]=w;t[r>>2]=w;t[P+(d+8)>>2]=i;t[P+(d+12)>>2]=K;t[P+(d+24)>>2]=0;break}else _()}else{W=(t[29]|0)+e|0;t[29]=W;t[32]=w;t[P+(d+4)>>2]=W|1}}while(0);f=P+(h|8)|0;break e}else a=552;while(1){f=t[a>>2]|0;if(f>>>0<=v>>>0?(o=t[a+4>>2]|0,A=f+o|0,A>>>0>v>>>0):0)break;a=t[a+8>>2]|0}a=f+(o+-39)|0;a=f+(o+-47+((a&7|0)==0?0:0-a&7))|0;s=v+16|0;a=a>>>0<s>>>0?v:a;o=a+8|0;f=P+8|0;f=(f&7|0)==0?0:0-f&7;W=g+-40-f|0;t[32]=P+f;t[29]=W;t[P+(f+4)>>2]=W|1;t[P+(g+-36)>>2]=40;t[33]=t[148];f=a+4|0;t[f>>2]=27;t[o>>2]=t[138];t[o+4>>2]=t[139];t[o+8>>2]=t[140];t[o+12>>2]=t[141];t[138]=P;t[139]=g;t[141]=0;t[140]=o;o=a+28|0;t[o>>2]=7;if((a+32|0)>>>0<A>>>0)do{W=o;o=o+4|0;t[o>>2]=7}while((W+8|0)>>>0<A>>>0);if((a|0)!=(v|0)){e=a-v|0;t[f>>2]=t[f>>2]&-2;t[v+4>>2]=e|1;t[a>>2]=e;A=e>>>3;if(e>>>0<256){o=A<<1;a=144+(o<<2)|0;f=t[26]|0;n=1<<A;if(f&n){r=144+(o+2<<2)|0;i=t[r>>2]|0;if(i>>>0<(t[30]|0)>>>0)_();else{X=r;x=i}}else{t[26]=f|n;X=144+(o+2<<2)|0;x=a}t[X>>2]=v;t[x+12>>2]=v;t[v+8>>2]=x;t[v+12>>2]=a;break}r=e>>>8;if(r)if(e>>>0>16777215)o=31;else{K=(r+1048320|0)>>>16&8;W=r<<K;J=(W+520192|0)>>>16&4;W=W<<J;o=(W+245760|0)>>>16&2;o=14-(J|K|o)+(W<<o>>>15)|0;o=e>>>(o+7|0)&1|o<<1}else o=0;n=408+(o<<2)|0;t[v+28>>2]=o;t[v+20>>2]=0;t[s>>2]=0;r=t[27]|0;i=1<<o;if(!(r&i)){t[27]=r|i;t[n>>2]=v;t[v+24>>2]=n;t[v+12>>2]=v;t[v+8>>2]=v;break}r=t[n>>2]|0;r:do{if((t[r+4>>2]&-8|0)!=(e|0)){o=e<<((o|0)==31?0:25-(o>>>1)|0);while(1){i=r+16+(o>>>31<<2)|0;n=t[i>>2]|0;if(!n)break;if((t[n+4>>2]&-8|0)==(e|0)){Y=n;break r}else{o=o<<1;r=n}}if(i>>>0<(t[30]|0)>>>0)_();else{t[i>>2]=v;t[v+24>>2]=r;t[v+12>>2]=v;t[v+8>>2]=v;break i}}else Y=r}while(0);r=Y+8|0;i=t[r>>2]|0;W=t[30]|0;if(i>>>0>=W>>>0&Y>>>0>=W>>>0){t[i+12>>2]=v;t[r>>2]=v;t[v+8>>2]=i;t[v+12>>2]=Y;t[v+24>>2]=0;break}else _()}}else{W=t[30]|0;if((W|0)==0|P>>>0<W>>>0)t[30]=P;t[138]=P;t[139]=g;t[141]=0;t[35]=t[144];t[34]=-1;r=0;do{W=r<<1;K=144+(W<<2)|0;t[144+(W+3<<2)>>2]=K;t[144+(W+2<<2)>>2]=K;r=r+1|0}while((r|0)!=32);W=P+8|0;W=(W&7|0)==0?0:0-W&7;K=g+-40-W|0;t[32]=P+W;t[29]=K;t[P+(W+4)>>2]=K|1;t[P+(g+-36)>>2]=40;t[33]=t[148]}}while(0);i=t[29]|0;if(i>>>0>E>>>0){W=i-E|0;t[29]=W;f=t[32]|0;t[32]=f+E;t[f+(E+4)>>2]=W|1;t[f+4>>2]=E|3;f=f+8|0;break}}t[(vA()|0)>>2]=12;f=0}else f=0}}while(0);return f|0}function dA(e){e=e|0;var i=0,r=0,n=0,A=0,f=0,o=0,a=0,s=0,l=0,u=0,c=0,w=0,h=0,d=0,v=0,B=0,E=0,g=0,b=0,k=0,D=0,Q=0,C=0,y=0,P=0,T=0;e:do{if(e){A=e+-8|0;l=t[30]|0;i:do{if(A>>>0>=l>>>0?(n=t[e+-4>>2]|0,r=n&3,(r|0)!=1):0){k=n&-8;D=e+(k+-8)|0;do{if(!(n&1)){A=t[A>>2]|0;if(!r)break e;u=-8-A|0;w=e+u|0;h=A+k|0;if(w>>>0<l>>>0)break i;if((w|0)==(t[31]|0)){f=e+(k+-4)|0;A=t[f>>2]|0;if((A&3|0)!=3){T=w;f=h;break}t[28]=h;t[f>>2]=A&-2;t[e+(u+4)>>2]=h|1;t[D>>2]=h;break e}r=A>>>3;if(A>>>0<256){n=t[e+(u+8)>>2]|0;f=t[e+(u+12)>>2]|0;A=144+(r<<1<<2)|0;do{if((n|0)!=(A|0)){if(n>>>0>=l>>>0?(t[n+12>>2]|0)==(w|0):0)break;_()}}while(0);if((f|0)==(n|0)){t[26]=t[26]&~(1<<r);T=w;f=h;break}do{if((f|0)==(A|0))i=f+8|0;else{if(f>>>0>=l>>>0?(o=f+8|0,(t[o>>2]|0)==(w|0)):0){i=o;break}_()}}while(0);t[n+12>>2]=f;t[i>>2]=n;T=w;f=h;break}o=t[e+(u+24)>>2]|0;A=t[e+(u+12)>>2]|0;do{if((A|0)==(w|0)){n=e+(u+20)|0;A=t[n>>2]|0;if(!A){n=e+(u+16)|0;A=t[n>>2]|0;if(!A){c=0;break}}while(1){r=A+20|0;i=t[r>>2]|0;if(i){A=i;n=r;continue}r=A+16|0;i=t[r>>2]|0;if(!i)break;else{A=i;n=r}}if(n>>>0<l>>>0)_();else{t[n>>2]=0;c=A;break}}else{n=t[e+(u+8)>>2]|0;if((n>>>0>=l>>>0?(a=n+12|0,(t[a>>2]|0)==(w|0)):0)?(s=A+8|0,(t[s>>2]|0)==(w|0)):0){t[a>>2]=A;t[s>>2]=n;c=A;break}_()}}while(0);if(o){A=t[e+(u+28)>>2]|0;n=408+(A<<2)|0;if((w|0)==(t[n>>2]|0)){t[n>>2]=c;if(!c){t[27]=t[27]&~(1<<A);T=w;f=h;break}}else{if(o>>>0<(t[30]|0)>>>0)_();A=o+16|0;if((t[A>>2]|0)==(w|0))t[A>>2]=c;else t[o+20>>2]=c;if(!c){T=w;f=h;break}}n=t[30]|0;if(c>>>0<n>>>0)_();t[c+24>>2]=o;A=t[e+(u+16)>>2]|0;do{if(A)if(A>>>0<n>>>0)_();else{t[c+16>>2]=A;t[A+24>>2]=c;break}}while(0);A=t[e+(u+20)>>2]|0;if(A)if(A>>>0<(t[30]|0)>>>0)_();else{t[c+20>>2]=A;t[A+24>>2]=c;T=w;f=h;break}else{T=w;f=h}}else{T=w;f=h}}else{T=A;f=k}}while(0);if(T>>>0<D>>>0?(d=e+(k+-4)|0,v=t[d>>2]|0,(v&1|0)!=0):0){if(!(v&2)){if((D|0)==(t[32]|0)){P=(t[29]|0)+f|0;t[29]=P;t[32]=T;t[T+4>>2]=P|1;if((T|0)!=(t[31]|0))break e;t[31]=0;t[28]=0;break e}if((D|0)==(t[31]|0)){P=(t[28]|0)+f|0;t[28]=P;t[31]=T;t[T+4>>2]=P|1;t[T+P>>2]=P;break e}s=(v&-8)+f|0;r=v>>>3;do{if(v>>>0>=256){i=t[e+(k+16)>>2]|0;f=t[e+(k|4)>>2]|0;do{if((f|0)==(D|0)){A=e+(k+12)|0;f=t[A>>2]|0;if(!f){A=e+(k+8)|0;f=t[A>>2]|0;if(!f){Q=0;break}}while(1){n=f+20|0;r=t[n>>2]|0;if(r){f=r;A=n;continue}n=f+16|0;r=t[n>>2]|0;if(!r)break;else{f=r;A=n}}if(A>>>0<(t[30]|0)>>>0)_();else{t[A>>2]=0;Q=f;break}}else{A=t[e+k>>2]|0;if((A>>>0>=(t[30]|0)>>>0?(g=A+12|0,(t[g>>2]|0)==(D|0)):0)?(b=f+8|0,(t[b>>2]|0)==(D|0)):0){t[g>>2]=f;t[b>>2]=A;Q=f;break}_()}}while(0);if(i){f=t[e+(k+20)>>2]|0;A=408+(f<<2)|0;if((D|0)==(t[A>>2]|0)){t[A>>2]=Q;if(!Q){t[27]=t[27]&~(1<<f);break}}else{if(i>>>0<(t[30]|0)>>>0)_();f=i+16|0;if((t[f>>2]|0)==(D|0))t[f>>2]=Q;else t[i+20>>2]=Q;if(!Q)break}f=t[30]|0;if(Q>>>0<f>>>0)_();t[Q+24>>2]=i;A=t[e+(k+8)>>2]|0;do{if(A)if(A>>>0<f>>>0)_();else{t[Q+16>>2]=A;t[A+24>>2]=Q;break}}while(0);r=t[e+(k+12)>>2]|0;if(r)if(r>>>0<(t[30]|0)>>>0)_();else{t[Q+20>>2]=r;t[r+24>>2]=Q;break}}}else{n=t[e+k>>2]|0;f=t[e+(k|4)>>2]|0;A=144+(r<<1<<2)|0;do{if((n|0)!=(A|0)){if(n>>>0>=(t[30]|0)>>>0?(t[n+12>>2]|0)==(D|0):0)break;_()}}while(0);if((f|0)==(n|0)){t[26]=t[26]&~(1<<r);break}do{if((f|0)==(A|0))B=f+8|0;else{if(f>>>0>=(t[30]|0)>>>0?(E=f+8|0,(t[E>>2]|0)==(D|0)):0){B=E;break}_()}}while(0);t[n+12>>2]=f;t[B>>2]=n}}while(0);t[T+4>>2]=s|1;t[T+s>>2]=s;if((T|0)==(t[31]|0)){t[28]=s;break e}else f=s}else{t[d>>2]=v&-2;t[T+4>>2]=f|1;t[T+f>>2]=f}A=f>>>3;if(f>>>0<256){n=A<<1;f=144+(n<<2)|0;i=t[26]|0;r=1<<A;if(i&r){r=144+(n+2<<2)|0;i=t[r>>2]|0;if(i>>>0<(t[30]|0)>>>0)_();else{C=r;y=i}}else{t[26]=i|r;C=144+(n+2<<2)|0;y=f}t[C>>2]=T;t[y+12>>2]=T;t[T+8>>2]=y;t[T+12>>2]=f;break e}i=f>>>8;if(i)if(f>>>0>16777215)A=31;else{C=(i+1048320|0)>>>16&8;y=i<<C;e=(y+520192|0)>>>16&4;y=y<<e;A=(y+245760|0)>>>16&2;A=14-(e|C|A)+(y<<A>>>15)|0;A=f>>>(A+7|0)&1|A<<1}else A=0;r=408+(A<<2)|0;t[T+28>>2]=A;t[T+20>>2]=0;t[T+16>>2]=0;i=t[27]|0;n=1<<A;r:do{if(i&n){r=t[r>>2]|0;n:do{if((t[r+4>>2]&-8|0)!=(f|0)){A=f<<((A|0)==31?0:25-(A>>>1)|0);while(1){i=r+16+(A>>>31<<2)|0;n=t[i>>2]|0;if(!n)break;if((t[n+4>>2]&-8|0)==(f|0)){P=n;break n}else{A=A<<1;r=n}}if(i>>>0<(t[30]|0)>>>0)_();else{t[i>>2]=T;t[T+24>>2]=r;t[T+12>>2]=T;t[T+8>>2]=T;break r}}else P=r}while(0);i=P+8|0;r=t[i>>2]|0;y=t[30]|0;if(r>>>0>=y>>>0&P>>>0>=y>>>0){t[r+12>>2]=T;t[i>>2]=T;t[T+8>>2]=r;t[T+12>>2]=P;t[T+24>>2]=0;break}else _()}else{t[27]=i|n;t[r>>2]=T;t[T+24>>2]=r;t[T+12>>2]=T;t[T+8>>2]=T}}while(0);T=(t[34]|0)+-1|0;t[34]=T;if(!T)i=560;else break e;while(1){i=t[i>>2]|0;if(!i)break;else i=i+8|0}t[34]=-1;break e}}}while(0);_()}}while(0);return}function vA(){var e=0;e=600;return e|0}function BA(){var e=0;do{if(!(t[144]|0)){e=N(30)|0;if(!(e+-1&e)){t[146]=e;t[145]=e;t[147]=-1;t[148]=-1;t[149]=0;t[137]=0;t[144]=(X(0)|0)&-16^1431655768;break}else _()}}while(0);return}function EA(){}function gA(e,i,r){e=e|0;i=i|0;r=r|0;var A=0;if((r|0)>=4096)return Y(e|0,i|0,r|0)|0;A=e|0;if((e&3)==(i&3)){while(e&3){if(!r)return A|0;n[e>>0]=n[i>>0]|0;e=e+1|0;i=i+1|0;r=r-1|0}while((r|0)>=4){t[e>>2]=t[i>>2];e=e+4|0;i=i+4|0;r=r-4|0}}while((r|0)>0){n[e>>0]=n[i>>0]|0;e=e+1|0;i=i+1|0;r=r-1|0}return A|0}function bA(e,i,r){e=e|0;i=i|0;r=r|0;var A=0;if((i|0)<(e|0)&(e|0)<(i+r|0)){A=e;i=i+r|0;e=e+r|0;while((r|0)>0){e=e-1|0;i=i-1|0;r=r-1|0;n[e>>0]=n[i>>0]|0}e=A}else gA(e,i,r)|0;return e|0}function kA(e,i,r){e=e|0;i=i|0;r=r|0;var A=0,f=0,o=0,a=0;A=e+r|0;if((r|0)>=20){i=i&255;o=e&3;a=i|i<<8|i<<16|i<<24;f=A&~3;if(o){o=e+4-o|0;while((e|0)<(o|0)){n[e>>0]=i;e=e+1|0}}while((e|0)<(f|0)){t[e>>2]=a;e=e+4|0}}while((e|0)<(A|0)){n[e>>0]=i;e=e+1|0}return e-r|0}return{C:dA,___errno_location:vA,V:bA,Y:ie,X:ee,J:re,S:kA,D:hA,N:gA,K:ne,G:$,W:Ae,runPostSets:EA,stackAlloc:j,stackSave:J,stackRestore:K,establishStackSpace:W,setThrew:V,setTempRet0:q,getTempRet0:Z}}(e.asmGlobalArg,e.asmLibraryArg,N),Ie=(e.W=me.W,e.C=me.C),Fe=(e.runPostSets=me.runPostSets,e.V=me.V),Re=(e.X=me.X,e.J=me.J,e.S=me.S),Oe=e.D=me.D,He=e.N=me.N;function Ue(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ne(i){function r(){e.calledRun||(e.calledRun=!0,w||($(),j(W),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.L&&Ge&&e.callMain(i),function(){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)ie(e.postRun.shift());j(q)}()))}i=i||e.arguments,le>0||(function(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)ee(e.preRun.shift());j(J)}(),le>0||e.calledRun||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),r()},1)):r()))}function Se(i,r){if(!r||!e.noExitRuntime)throw e.noExitRuntime||(w=!0,G=Me,j(V),e.onExit&&e.onExit(i)),f&&"function"==typeof quit&&quit(i),new Ue(i)}e.Y=me.Y,e.G=me.G,e.K=me.K,e.___errno_location=me.___errno_location,o.stackAlloc=me.stackAlloc,o.stackSave=me.stackSave,o.stackRestore=me.stackRestore,o.establishStackSpace=me.establishStackSpace,o.setTempRet0=me.setTempRet0,o.getTempRet0=me.getTempRet0,Ue.prototype=new Error,Ue.prototype.constructor=Ue,ce=function i(){e.calledRun||Ne(),e.calledRun||(ce=i)},e.callMain=e.callMain=function(i){h(0==le,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),h(0==J.length,"cannot call main when preRun functions remain to be called"),i=i||[],$();var r=i.length+1;function n(){for(var e=0;e<3;e++)A.push(0)}var A=[b(re(e.thisProgram),"i8",0)];n();for(var t=0;t<r-1;t+=1)A.push(b(re(i[t]),"i8",0)),n();A.push(0),A=b(A,"i32",0),Me=o.stackSave();try{Se(e.L(r,A,0),!0)}catch(f){if(f instanceof Ue)return;if("SimulateInfiniteLoop"==f)return e.noExitRuntime=!0,void o.stackRestore(Me);throw f&&"object"==typeof f&&f.stack&&e.printErr("exception thrown: "+[f,f.stack]),f}},e.run=e.run=Ne,e.exit=e.exit=Se;var _e=[];function Le(i){void 0!==i?(e.print(i),e.printErr(i),i=JSON.stringify(i)):i="",w=!0;var r="abort("+i+") at "+P()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw _e&&_e.forEach(function(e){r=e(r,i)}),r}if(e.abort=e.abort=Le,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();var Ge=!0;return e.noInitialRun&&(Ge=!1),e.noExitRuntime=!0,Ne(),i}();self.onmessage=function(i){switch(i.data.command){case"encode":n=i.data.samples,A=(A=i.data.sampleRate)||8e3,self.postMessage({command:"encode",amr:e.encode(n,A,7)});break;case"decode":r=i.data.buffer,self.postMessage({command:"decode",amr:e.decode(r)})}var r,n,A}}.toString().replace(/^\s*function.*?\(\)\s*{/,"").replace(/}\s*$/,""),w=(window.URL||window.webkitURL).createObjectURL(new Blob([c],{type:"text/javascript"})),h=u.toString().replace(/^\s*function.*?\(\)\s*{/,"").replace(/}\s*$/,""),d=(window.URL||window.webkitURL).createObjectURL(new Blob([h],{type:"text/javascript"}));return function(){function e(){var i=this;r(this,e),this.te=!1,this.fe=!1,this.oe=new l,this.ae=new Float32Array(0),this.se=new Uint8Array(0),this.le=null,this.ue=null,this.ce=null,this.we=null,this.he=null,this.de=null,this.ve=null,this.Be=null,this.Ee=null,this.ge=null,this.be=!1,this.ke=!1,this.De=0,this.Qe=0,this.Ce="",this.ye=function(){i.oe.playPcm(new Float32Array(10),24e3)},this.Pe=function(){i.be&&(i.be=!1,i.ve&&i.ve(),i.ce&&i.ce()),i.ke||i.ue&&i.ue()},this.Te=function(e,i){var r=new Worker(w);r.postMessage(e),r.onmessage=function(e){i(e.data.amr),r.terminate()}},this.pe=function(e,i){var r=new Worker(d);r.postMessage(e),r.onmessage=function(e){i(e.data.amr),r.terminate()}}}return A(e,[{key:"isInit",value:function(){return this.te}},{key:"initWithArrayBuffer",value:function(i,r){var n=this;return this.Ce=r,(this.te||this.fe)&&e.throwAlreadyInitialized(),this.ye(),new Promise(function(A,t){if(r&&"audio/amr-wb"===r){var f=new Uint8Array(i);n.decodeAMRWBAsync(f).then(function(r){n.ae=r,n.te=!0,n.ae?(n.se=f,A()):l.decodeAudioArrayBufferByContext(i).then(function(e){return n.te=!0,n.encodeAMRAsync(e,l.getCtxSampleRate())}).then(function(i){return n.se=i,n.le=e.rawAMRWBData2Blob(i),n.decodeAMRWBAsync(i)}).then(function(e){n.ae=e,A()}).catch(function(){t(new Error("Failed to decode."))})})}else{var o=new Uint8Array(i);n.decodeAMRAsync(o).then(function(r){n.ae=r,n.te=!0,n.ae?(n.se=o,A()):l.decodeAudioArrayBufferByContext(i).then(function(e){return n.te=!0,n.encodeAMRAsync(e,l.getCtxSampleRate())}).then(function(i){return n.se=i,n.le=e.rawAMRData2Blob(i),n.decodeAMRAsync(i)}).then(function(e){n.ae=e,A()}).catch(function(){t(new Error("Failed to decode."))})})}})}},{key:"initWithBlob",value:function(i,r){var n=this;return this.Ce=r,(this.te||this.fe)&&e.throwAlreadyInitialized(),this.ye(),this.le=i,new Promise(function(e){var r=new FileReader;r.onload=function(i){e(i.target.result)},r.readAsArrayBuffer(i)}).then(function(e){return n.initWithArrayBuffer(e,r)})}},{key:"initWithUrl",value:function(i,r){var n=this;return this.Ce=r,(this.te||this.fe)&&e.throwAlreadyInitialized(),this.ye(),new Promise(function(e,r){var n=new XMLHttpRequest;n.open("GET",i,!0),n.responseType="arraybuffer",n.onload=function(){e(this.response)},n.onerror=function(){r(new Error("Failed to fetch "+i))},n.send()}).then(function(e){return n.initWithArrayBuffer(e,r)})}},{key:"initWithRecord",value:function(){var i=this;return(this.te||this.fe)&&e.throwAlreadyInitialized(),this.ye(),new Promise(function(e,r){i.oe.initRecorder().then(function(){i.fe=!0,e()}).catch(function(e){r(e)})})}},{key:"on",value:function(e,i){if("function"==typeof i)switch(e){case"play":this.we=i;break;case"stop":this.ve=i;break;case"pause":this.he=i;break;case"resume":this.de=i;break;case"ended":this.ue=i;break;case"autoEnded":this.ce=i;break;case"startRecord":this.Be=i;break;case"cancelRecord":this.Ee=i;break;case"finishRecord":this.ge=i}}},{key:"onPlay",value:function(e){this.on("play",e)}},{key:"onStop",value:function(e){this.on("stop",e)}},{key:"onPause",value:function(e){this.on("pause",e)}},{key:"onResume",value:function(e){this.on("resume",e)}},{key:"onEnded",value:function(e){this.on("ended",e)}},{key:"onAutoEnded",value:function(e){this.on("autoEnded",e)}},{key:"onStartRecord",value:function(e){this.on("startRecord",e)}},{key:"onFinishRecord",value:function(e){this.on("finishRecord",e)}},{key:"onCancelRecord",value:function(e){this.on("cancelRecord",e)}},{key:"play",value:function(e){var i=e&&e<this.getDuration()?parseFloat(e):0;if(!this.te)throw new Error("Please init AMR first.");this.we&&this.we(),this.be=!0,this.ke=!1,this.De=l.getCtxTime()-i,this.oe.playPcm(this.ae,this.fe?l.getCtxSampleRate():8e3,this.Pe.bind(this),i,this.Ce)}},{key:"stop",value:function(){this.oe.stopPcm(),this.be=!1,this.ke=!1,this.ve&&this.ve()}},{key:"pause",value:function(){this.be&&(this.be=!1,this.ke=!0,this.Qe=l.getCtxTime()-this.De,this.oe.stopPcm(),this.he&&this.he())}},{key:"resume",value:function(){this.ke&&(this.be=!0,this.ke=!1,this.De=l.getCtxTime()-this.Qe,this.oe.playPcm(this.ae,this.fe?l.getCtxSampleRate():8e3,this.Pe.bind(this),this.Qe,this.Ce),this.de&&this.de())}},{key:"playOrResume",value:function(){this.ke?this.resume():this.play()}},{key:"pauseOrResume",value:function(){this.ke?this.resume():this.pause()}},{key:"playOrPauseOrResume",value:function(){this.ke?this.resume():this.be?this.pause():this.play()}},{key:"setPosition",value:function(e){var i=parseFloat(e);i>this.getDuration()?this.stop():this.ke?this.Qe=i:this.be?(this.oe.stopPcmSilently(),this.De=l.getCtxTime()-i,this.oe.playPcm(this.ae,this.fe?l.getCtxSampleRate():8e3,this.Pe.bind(this),i,this.Ce)):this.play(i)}},{key:"getCurrentPosition",value:function(){return this.ke?this.Qe:this.be?l.getCtxTime()-this.De:0}},{key:"isPlaying",value:function(){return this.be}},{key:"isPaused",value:function(){return this.ke}},{key:"startRecord",value:function(){this.oe.startRecord(),this.Be&&this.Be()}},{key:"finishRecord",value:function(){var i=this;return new Promise(function(r){i.oe.stopRecord(),i.oe.generateRecordSamples().then(function(e){return i.ae=e,i.encodeAMRAsync(e,l.getCtxSampleRate())}).then(function(n){i.se=n,i.le=e.rawAMRData2Blob(i.se),i.te=!0,i.ge&&i.ge(),i.oe.releaseRecord(),r()})})}},{key:"cancelRecord",value:function(){this.oe.stopRecord(),this.oe.releaseRecord(),this.Ee&&this.Ee()}},{key:"isRecording",value:function(){return this.oe.isRecording()}},{key:"getDuration",value:function(){var e=this.fe?l.getCtxSampleRate():"audio/amr-wb"===this.Ce?16e3:8e3;return this.ae.length/e}},{key:"getBlob",value:function(){return this.le}},{key:"encodeAMRAsync",value:function(e,i){var r=this;return new Promise(function(n){r.Te({command:"encode",samples:e,sampleRate:i},n)})}},{key:"decodeAMRAsync",value:function(e){var i=this;return new Promise(function(r){i.Te({command:"decode",buffer:e},r)})}},{key:"encodeAMRWBAsync",value:function(e,i){var r=this;return new Promise(function(n){r.pe({command:"encode",samples:e,sampleRate:i},n)})}},{key:"decodeAMRWBAsync",value:function(e){var i=this;return new Promise(function(r){i.pe({command:"decode",buffer:e},r)})}}],[{key:"rawAMRWBData2Blob",value:function(e){return new Blob([e.buffer],{type:"audio/amr-wb"})}},{key:"rawAMRData2Blob",value:function(e){return new Blob([e.buffer],{type:"audio/amr"})}},{key:"throwAlreadyInitialized",value:function(){throw new Error("AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().")}},{key:"isPlaySupported",value:function(){return l.isPlaySupported()}},{key:"isRecordSupported",value:function(){return l.isRecordSupported()}}]),e}()});