bedrock-agentcore 0.1.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +102 -114
  2. package/dist/src/_utils/endpoints.d.ts +28 -0
  3. package/dist/src/_utils/endpoints.d.ts.map +1 -0
  4. package/dist/src/_utils/endpoints.js +44 -0
  5. package/dist/src/_utils/endpoints.js.map +1 -0
  6. package/dist/src/identity/client.d.ts +40 -0
  7. package/dist/src/identity/client.d.ts.map +1 -0
  8. package/dist/src/identity/client.js +109 -0
  9. package/dist/src/identity/client.js.map +1 -0
  10. package/dist/src/identity/index.d.ts +22 -0
  11. package/dist/src/identity/index.d.ts.map +1 -0
  12. package/dist/src/identity/index.js +24 -0
  13. package/dist/src/identity/index.js.map +1 -0
  14. package/dist/src/identity/types.d.ts +82 -0
  15. package/dist/src/identity/types.d.ts.map +1 -0
  16. package/dist/src/identity/types.js +5 -0
  17. package/dist/src/identity/types.js.map +1 -0
  18. package/dist/src/identity/wrappers.d.ts +54 -0
  19. package/dist/src/identity/wrappers.d.ts.map +1 -0
  20. package/dist/src/identity/wrappers.js +95 -0
  21. package/dist/src/identity/wrappers.js.map +1 -0
  22. package/dist/src/runtime/app.d.ts +144 -0
  23. package/dist/src/runtime/app.d.ts.map +1 -0
  24. package/dist/src/runtime/app.js +485 -0
  25. package/dist/src/runtime/app.js.map +1 -0
  26. package/dist/src/runtime/client.d.ts +154 -0
  27. package/dist/src/runtime/client.d.ts.map +1 -0
  28. package/dist/src/runtime/client.js +319 -0
  29. package/dist/src/runtime/client.js.map +1 -0
  30. package/dist/src/runtime/context.d.ts +33 -0
  31. package/dist/src/runtime/context.d.ts.map +1 -0
  32. package/dist/src/runtime/context.js +49 -0
  33. package/dist/src/runtime/context.js.map +1 -0
  34. package/dist/src/runtime/index.d.ts +8 -0
  35. package/dist/src/runtime/index.d.ts.map +1 -0
  36. package/dist/src/runtime/index.js +7 -0
  37. package/dist/src/runtime/index.js.map +1 -0
  38. package/dist/src/runtime/types.d.ts +429 -0
  39. package/dist/src/runtime/types.d.ts.map +1 -0
  40. package/dist/src/runtime/types.js +26 -0
  41. package/dist/src/runtime/types.js.map +1 -0
  42. package/dist/src/tools/browser/client.d.ts +19 -0
  43. package/dist/src/tools/browser/client.d.ts.map +1 -1
  44. package/dist/src/tools/browser/client.js +56 -0
  45. package/dist/src/tools/browser/client.js.map +1 -1
  46. package/dist/src/tools/browser/index.d.ts +1 -1
  47. package/dist/src/tools/browser/index.d.ts.map +1 -1
  48. package/dist/src/tools/browser/index.js.map +1 -1
  49. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts +20 -0
  50. package/dist/src/tools/browser/integrations/strands/click-tool.d.ts.map +1 -0
  51. package/dist/src/tools/browser/integrations/strands/click-tool.js +33 -0
  52. package/dist/src/tools/browser/integrations/strands/click-tool.js.map +1 -0
  53. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts +20 -0
  54. package/dist/src/tools/browser/integrations/strands/evaluate-tool.d.ts.map +1 -0
  55. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js +34 -0
  56. package/dist/src/tools/browser/integrations/strands/evaluate-tool.js.map +1 -0
  57. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts +19 -0
  58. package/dist/src/tools/browser/integrations/strands/get-html-tool.d.ts.map +1 -0
  59. package/dist/src/tools/browser/integrations/strands/get-html-tool.js +32 -0
  60. package/dist/src/tools/browser/integrations/strands/get-html-tool.js.map +1 -0
  61. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts +19 -0
  62. package/dist/src/tools/browser/integrations/strands/get-text-tool.d.ts.map +1 -0
  63. package/dist/src/tools/browser/integrations/strands/get-text-tool.js +32 -0
  64. package/dist/src/tools/browser/integrations/strands/get-text-tool.js.map +1 -0
  65. package/dist/src/tools/browser/integrations/strands/index.d.ts +25 -0
  66. package/dist/src/tools/browser/integrations/strands/index.d.ts.map +1 -0
  67. package/dist/src/tools/browser/integrations/strands/index.js +25 -0
  68. package/dist/src/tools/browser/integrations/strands/index.js.map +1 -0
  69. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts +21 -0
  70. package/dist/src/tools/browser/integrations/strands/navigate-tool.d.ts.map +1 -0
  71. package/dist/src/tools/browser/integrations/strands/navigate-tool.js +41 -0
  72. package/dist/src/tools/browser/integrations/strands/navigate-tool.js.map +1 -0
  73. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts +29 -0
  74. package/dist/src/tools/browser/integrations/strands/screenshot-tool.d.ts.map +1 -0
  75. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js +52 -0
  76. package/dist/src/tools/browser/integrations/strands/screenshot-tool.js.map +1 -0
  77. package/dist/src/tools/browser/integrations/strands/tools.d.ts +119 -0
  78. package/dist/src/tools/browser/integrations/strands/tools.d.ts.map +1 -0
  79. package/dist/src/tools/browser/integrations/strands/tools.js +141 -0
  80. package/dist/src/tools/browser/integrations/strands/tools.js.map +1 -0
  81. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts +22 -0
  82. package/dist/src/tools/browser/integrations/strands/type-tool.d.ts.map +1 -0
  83. package/dist/src/tools/browser/integrations/strands/type-tool.js +37 -0
  84. package/dist/src/tools/browser/integrations/strands/type-tool.js.map +1 -0
  85. package/dist/src/tools/browser/integrations/vercel-ai/tools.d.ts +1 -1
  86. package/dist/src/tools/browser/integrations/vercel-ai/tools.js +1 -1
  87. package/dist/src/tools/browser/live-view/BrowserLiveView.d.ts +10 -0
  88. package/dist/src/tools/browser/live-view/BrowserLiveView.d.ts.map +1 -0
  89. package/dist/src/tools/browser/live-view/BrowserLiveView.js +180 -0
  90. package/dist/src/tools/browser/live-view/BrowserLiveView.js.map +1 -0
  91. package/dist/src/tools/browser/live-view/index.d.ts +4 -0
  92. package/dist/src/tools/browser/live-view/index.d.ts.map +1 -0
  93. package/dist/src/tools/browser/live-view/index.js +3 -0
  94. package/dist/src/tools/browser/live-view/index.js.map +1 -0
  95. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/README.md +26 -0
  96. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/EULA.txt +403 -0
  97. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/README.md +57 -0
  98. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/dcv-ui.js +7 -0
  99. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/third-party-licenses.txt +145 -0
  100. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/EULA.txt +403 -0
  101. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/README.md +50 -0
  102. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/broadwayh264decoder-worker.js +1 -0
  103. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/jsmpegdecoder-worker.js +1 -0
  104. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/lz4decoder-worker.js +1 -0
  105. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/microphoneprocessor.js +1 -0
  106. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv.js +33 -0
  107. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/broadway/Decoder.js +850 -0
  108. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/jsmpeg/jsmpeg.min.js +1 -0
  109. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/lz4/lz4_decoder.js +12 -0
  110. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/third-party-licenses.txt +1068 -0
  111. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/EULA.txt +403 -0
  112. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/README.md +50 -0
  113. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/broadwayh264decoder-worker.js +1 -0
  114. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/jsmpegdecoder-worker.js +1 -0
  115. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/lz4decoder-worker.js +1 -0
  116. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/microphoneprocessor.js +1 -0
  117. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv.js +33 -0
  118. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/broadway/Decoder.js +850 -0
  119. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/jsmpeg/jsmpeg.min.js +1 -0
  120. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/lz4/lz4_decoder.js +12 -0
  121. package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/third-party-licenses.txt +1068 -0
  122. package/dist/src/tools/browser/live-view/scaling.d.ts +9 -0
  123. package/dist/src/tools/browser/live-view/scaling.d.ts.map +1 -0
  124. package/dist/src/tools/browser/live-view/scaling.js +13 -0
  125. package/dist/src/tools/browser/live-view/scaling.js.map +1 -0
  126. package/dist/src/tools/browser/types.d.ts +152 -0
  127. package/dist/src/tools/browser/types.d.ts.map +1 -1
  128. package/dist/src/tools/code-interpreter/client.d.ts +2 -0
  129. package/dist/src/tools/code-interpreter/client.d.ts.map +1 -1
  130. package/dist/src/tools/code-interpreter/client.js +31 -25
  131. package/dist/src/tools/code-interpreter/client.js.map +1 -1
  132. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts +28 -0
  133. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.d.ts.map +1 -0
  134. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js +47 -0
  135. package/dist/src/tools/code-interpreter/integrations/strands/execute-code-tool.js.map +1 -0
  136. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts +27 -0
  137. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.d.ts.map +1 -0
  138. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js +42 -0
  139. package/dist/src/tools/code-interpreter/integrations/strands/execute-command-tool.js.map +1 -0
  140. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts +33 -0
  141. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.d.ts.map +1 -0
  142. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js +78 -0
  143. package/dist/src/tools/code-interpreter/integrations/strands/file-operations-tool.js.map +1 -0
  144. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts +32 -0
  145. package/dist/src/tools/code-interpreter/integrations/strands/index.d.ts.map +1 -0
  146. package/dist/src/tools/code-interpreter/integrations/strands/index.js +32 -0
  147. package/dist/src/tools/code-interpreter/integrations/strands/index.js.map +1 -0
  148. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts +94 -0
  149. package/dist/src/tools/code-interpreter/integrations/strands/tools.d.ts.map +1 -0
  150. package/dist/src/tools/code-interpreter/integrations/strands/tools.js +112 -0
  151. package/dist/src/tools/code-interpreter/integrations/strands/tools.js.map +1 -0
  152. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.d.ts +2 -2
  153. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-code-tool.js +2 -2
  154. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.d.ts +2 -2
  155. package/dist/src/tools/code-interpreter/integrations/vercel-ai/execute-command-tool.js +2 -2
  156. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.d.ts +3 -3
  157. package/dist/src/tools/code-interpreter/integrations/vercel-ai/file-operations-tool.js +2 -2
  158. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.d.ts +1 -1
  159. package/dist/src/tools/code-interpreter/integrations/vercel-ai/index.js +1 -1
  160. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.d.ts +1 -1
  161. package/dist/src/tools/code-interpreter/integrations/vercel-ai/tools.js +1 -1
  162. package/package.json +69 -14
@@ -0,0 +1,850 @@
1
+ // universal module definition
2
+ (function (root, factory) {
3
+ if (typeof define === 'function' && define.amd) {
4
+ // AMD. Register as an anonymous module.
5
+ define([], factory);
6
+ } else if (typeof exports === 'object') {
7
+ // Node. Does not work with strict CommonJS, but
8
+ // only CommonJS-like environments that support module.exports,
9
+ // like Node.
10
+ module.exports = factory();
11
+ } else {
12
+ // Browser globals (root is window)
13
+ root.Decoder = factory();
14
+ }
15
+ }(this, function () {
16
+
17
+ var global;
18
+
19
+ function initglobal(){
20
+ global = this;
21
+ if (!global){
22
+ if (typeof window != "undefined"){
23
+ global = window;
24
+ }else if (typeof self != "undefined"){
25
+ global = self;
26
+ };
27
+ };
28
+ };
29
+ initglobal();
30
+
31
+
32
+ function error(message) {
33
+ console.error(message);
34
+ console.trace();
35
+ };
36
+
37
+
38
+ function assert(condition, message) {
39
+ if (!condition) {
40
+ error(message);
41
+ };
42
+ };
43
+
44
+
45
+ var getModule = function(par_broadwayOnHeadersDecoded, par_broadwayOnPictureDecoded){
46
+
47
+
48
+ /*var ModuleX = {
49
+ 'print': function(text) { console.log('stdout: ' + text); },
50
+ 'printErr': function(text) { console.log('stderr: ' + text); }
51
+ };*/
52
+
53
+
54
+ /*
55
+
56
+ The reason why this is all packed into one file is that this file can also function as worker.
57
+ you can integrate the file into your build system and provide the original file to be loaded into a worker.
58
+
59
+ */
60
+
61
+ var Module = (function(){
62
+
63
+ var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=9232,DYNAMIC_BASE=5252112,DYNAMICTOP_PTR=9200;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||83886080;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}if(!Math.imul||Math.imul(4294967295,5)!==-5)Math.imul=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};if(!Math.clz32)Math.clz32=function(x){var n=32;var y=x>>16;if(y){n-=16;x=y}y=x>>8;if(y){n-=8;x=y}y=x>>4;if(y){n-=4;x=y}y=x>>2;if(y){n-=2;x=y}y=x>>1;if(y)return n-2;return n-x};if(!Math.trunc)Math.trunc=function(x){return x<0?Math.ceil(x):Math.floor(x)};var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAAABAQEBAQECAgICAgIDAwMDAwMEBAQEBAQFBQUFBQUGBgYGBgYHBwcHBwcICAgIAAAAAAAAAAAAAAAACgAAAA0AAAAQAAAACwAAAA4AAAASAAAADQAAABAAAAAUAAAADgAAABIAAAAXAAAAEAAAABQAAAAZAAAAEgAAABcAAAAdAAAAAAAAAAAAAAAAAQIDBAUAAQIDBAUAAQIDBAUAAQIDBAUAAQIDBAUAAQIDBAUAAQIDBAUAAQIDBAUAAQIDAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHQAAAB4AAAAfAAAAIAAAACAAAAAhAAAAIgAAACIAAAAjAAAAIwAAACQAAAAkAAAAJQAAACUAAAAlAAAAJgAAACYAAAAmAAAAJwAAACcAAAAnAAAAJwAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAABABAgQIIAMFCgwPLwcLDQ4GCR8jJSosISIkKCcrLS4REhQYExUaHBcbHR4WGSYpLx8PABcbHR4HCw0OJystLhADBQoMExUaHCMlKiwBAgQIERIUGAYJFhkgISIkKCYpAAAAAAAAZiAmEAYIZRhlGEMQQxBDEEMQQxBDEEMQQxAiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCAAAAAAAAAAAakBKMCooCiBpOGk4SShJKCkgKSAJGAkYaDBoMGgwaDBIIEggSCBIICgYKBgoGCgYCBAIEAgQCBBnKGcoZyhnKGcoZyhnKGcoRxhHGEcYRxhHGEcYRxhHGG5gTlguUA5QblhOUC5IDkgNQA1ATUhNSC1ALUANOA04bVBtUE1ATUAtOC04DTANMGtIa0hrSGtIa0hrSGtIa0hLOEs4SzhLOEs4SzhLOEs4KzArMCswKzArMCswKzArMAsoCygLKAsoCygLKAsoCygAAAAAL2gvaBCAUIAwgBB4cIBQeDB4EHBweFBwMHAQaG9wb3BPaE9oL2AvYA9gD2BvaG9oT2BPYC9YL1gPWA9YAAAAAAAAAABmOEYgJiAGEGYwRhgmGAYIZShlKCUQJRBkIGQgZCBkIGQYZBhkGGQYQxBDEEMQQxBDEEMQQxBDEAAAAAAAAAAAaUhJOCk4CTAIKAgoSDBIMCgwKDAIIAggZ0BnQGdAZ0BHKEcoRyhHKCcoJygnKCcoBxgHGAcYBxgAAAAAbXhteG6AToAugA6ALngOeE54LnBNcE1wDXANcG1wbXBNaE1oLWgtaA1oDWhtaG1oTWBNYC1gLWANYA1gDFgMWAxYDFhMWExYTFhMWCxYLFgsWCxYDFAMUAxQDFBsYGxgbGBsYExQTFBMUExQLFAsUCxQLFAMSAxIDEgMSGtYa1hrWGtYa1hrWGtYa1hLSEtIS0hLSEtIS0hLSEtIK0grSCtIK0grSCtIK0grSAtAC0ALQAtAC0ALQAtAC0BrUGtQa1BrUGtQa1BrUGtQS0BLQEtAS0BLQEtAS0BLQCtAK0ArQCtAK0ArQCtAK0ALOAs4CzgLOAs4CzgLOAs4AAAAAAAAAAAAAAAAAAAAAAYYRjgmOAYQZkhGMCYwBgglKCUoRShFKCUgJSBFIEUgJRglGGVAZUBFGEUYJRAlEGQ4ZDhkOGQ4ZDBkMGQwZDBkKGQoZChkKGQgZCBkIGQgZBhkGGQYZBhEEEQQRBBEECQIJAgkCCQIBAAEAAQABAAAAAqAaoBKgCqACnhqeEp4KngKcGpwSnAqcApoKWgpaAlgCWBJaEloKWApYAlYCVhpaGloSWBJYClYKVgJUAlQaGBoYGhgaGBIWEhYSFhIWChQKFAoUChQCEgISAhICEhoWGhYaFhoWEhQSFBIUEhQKEgoSChIKEgIQAhACEAIQAc4BzgHOAc4BzgHOAc4BzgHMAcwBzAHMAcwBzAHMAcwR0hHSEdIR0hHSEdIR0hHSAcoBygHKAcoBygHKAcoByhnUGdQZ1BnUGdQZ1BnUGdQR0BHQEdAR0BHQEdAR0BHQCdAJ0AnQCdAJ0AnQCdAJ0AHIAcgByAHIAcgByAHIAcgBggmCAAABgAGECYQRhAAAAYYJhhGGGYYBiAmIEYgZiAGKCYoRihmKAYwJjBGMGYwBjgmOEY4ZjgGQCZARkBmQAZIJkhGSGZIBlAmUEZQZlAGWCZYRlhmWAZgJmBGYGZgBmgmaEZoZmgGcCZwRnBmcAZ4JnhGeGZ4BoAmgEaAZoAAAEMQAgACACEIIQghCCEIZyBnIEggKCBHGEcYJxgnGAYgBiAGIAYgBhgGGAYYBhgGEAYQBhAGEGYYZhhmGGYYJhAmECYQJhAGCAYIBggGCAAAZVVERDQ0IyMjIxMTExMBAQEBAQEBAQEBAQEBAQEBAPnp2cjIuLinp6enl5eXl4aGhoaGhoaGdnZ2dnZ2dnbm1sa2paWVlYSEhIR0dHR0ZGRkZFRUVFRDQ0NDQ0NDQzMzMzMzMzMzIyMjIyMjIyMTExMTExMTEwMDAwMDAwMD1rbFxaWllZWEhISEVFRUVEREREQEBAQEc3Nzc3Nzc3NjY2NjY2NjYzMzMzMzMzMzIyMjIyMjIyMTExMTExMTE8W1pQWUlHR0NDQkJIODg4NjY2NjU1NTU0NDQ0MTExMTtZWkpISEJCQUFAQEc3Nzc2NjY2NTU1NTQ0NDQzMzMzOmBhUVhISEhJOTk5OTk5OTc3Nzc3Nzc3NjY2NjY2NjY1NTU1NTU1NTQ0NDQ0NDQ0MzMzMzMzMzMyMjIyMjIyMjlgYVFXR0dHSDg4ODg4ODg2NjY2NjY2NjQ0NDQ0NDQ0MzMzMzMzMzMyMjIyMjIyMjUlJSUlJSUlJSUlJSUlJSUoYGJSUUFBQUc3Nzc3Nzc3NjY2NjY2NjYzMzMzMzMzMzUlJSUlJSUlJSUlJSUlJSUkJCQkJCQkJCQkJCQkJCQkIWBnV1JCQkJFNTU1NTU1NTYmJiYmJiYmJiYmJiYmJiYkJCQkJCQkJCQkJCQkJCQkIyMjIyMjIyMjIyMjIyMjIyFQVkZCMjIyNSUlJSUlJSUkJCQkJCQkJCMjIyMjIyMjIEFCMjMzNTU0FBQUFBQUFBBBRDQyIiIiIxMTExMTExMQAAAAAFAAAABAAAAAAAAAAAAAAABwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAIAAAACAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAABQAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAFAAAAAAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAAAAAAAAUAAAAEAAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAAAAAAcAAAAEAAAAAgAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAEAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAQAAAAQAAAAEAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAABAAAABAAAAAQAAAAEAAAAAwAAAAQAAAAGAAAAAAAAAA0AAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAAAAAADQAAAAAAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAAAAAAANAAAABAAAAAgAAAD/AAAAAAAAAP8AAAAAAAAAAAAAAA0AAAAEAAAACAAAAAAAAAAPAAAABAAAAAoAAAAEAAAACQAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAJAAAABAAAAAsAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAkAAAAEAAAADAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAACQAAAAQAAAAMAAAABAAAAAsAAAAEAAAADgAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAoAAAAEAAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACgAAAAEAAAALAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAQAAAAEAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAAAQAAAA8AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAADAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAHAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAP8AAAAEAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAA/wAAAAQAAAACAAAACgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA8AAAACAAAACgAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAABAAAAAUAAAD/AAAAAAAAAAQAAAAGAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAD/AAAADAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAP8AAAAMAAAA/wAAAAIAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAgAAAP8AAAAIAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAHAAAA/wAAAAIAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAAQAAAANAAAA/wAAAAgAAAADAAAADwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAAAAAAUAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAABAAAACgAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAALAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAAEAAAAAQAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAAQAAAAEAAAAAAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAAAAAABwAAAAAAAAANAAAA/wAAAAAAAAD/AAAAAAAAAAAAAAAHAAAABAAAAAIAAAD/AAAAAAAAAP8AAAAAAAAAAAAAAAcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAAAAAAAAAAAAAAAAAAAAAABAQFBgcICQoMDQ8RFBYZHCAkKC0yOD9HUFplcX+QorbL4v//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgMDAwMEBAQGBgcHCAgJCQoKCwsMDA0NDg4PDxAQERESEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAQAAAQABAQABAQEBAQEBAQEBAQEBAQEBAgEBAgEBAgEBAgECAwECAwICAwICBAIDBAIDBAMDBQMEBgMEBgQFBwQFCAQGCQUHCgYICwYIDQcKDggLEAkMEgoNFAsPFw0RGQAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAALgcAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQGwAAAxMyMiEhISECEiEhEQEiEgEBMiISAkMzIiISEgICU0MzIxISAgITI0MzY1MCAkRFQ09ERVIgSU5JVElBTElaQVRJT04gRkFJTEVE";var tempDoublePtr=9216;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function flush_NO_FILESYSTEM(){var fflush=Module["_fflush"];if(fflush)fflush(0);var buffers=SYSCALLS.buffers;if(buffers[1].length)SYSCALLS.printChar(1,10);if(buffers[2].length)SYSCALLS.printChar(2,10)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_write(stream,iov,iovcnt,pnum){try{var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){SYSCALLS.printChar(stream,HEAPU8[ptr+j])}num+=len}HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function _broadwayOnHeadersDecoded(){par_broadwayOnHeadersDecoded()}Module["_broadwayOnHeadersDecoded"]=_broadwayOnHeadersDecoded;function _broadwayOnPictureDecoded($buffer,width,height){par_broadwayOnPictureDecoded($buffer,width,height)}Module["_broadwayOnPictureDecoded"]=_broadwayOnPictureDecoded;function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array};var asmLibraryArg={"a":abort,"b":setTempRet0,"c":getTempRet0,"d":___setErrNo,"e":___wasi_fd_write,"f":_broadwayOnHeadersDecoded,"g":_broadwayOnPictureDecoded,"h":_emscripten_get_heap_size,"i":_emscripten_memcpy_big,"j":_emscripten_resize_heap,"k":_fd_write,"l":abortOnCannotGrowMemory,"m":demangle,"n":demangleAll,"o":flush_NO_FILESYSTEM,"p":jsStackTrace,"q":stackTrace,"r":tempDoublePtr,"s":DYNAMICTOP_PTR};// EMSCRIPTEN_START_ASM
64
+ var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
65
+ "use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=env.r|0,g=env.s|0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=global.Math.imul,q=env.a,r=env.b,s=env.c,t=env.d,u=env.e,v=env.f,w=env.g,x=env.h,y=env.i,z=env.j,A=env.k,B=env.l,C=env.m,D=env.n,E=env.o,F=env.p,G=env.q,H=9232,I=5252112,J=0.0;
66
+ // EMSCRIPTEN_START_FUNCS
67
+ function O(a){a=a|0;var b=0;b=H;H=H+a|0;H=H+15&-16;return b|0}function P(){return H|0}function Q(a){a=a|0;H=a}function R(a,b){a=a|0;b=b|0;H=a;I=b}function S(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=d[16+b>>0]|0;t=d[160+b>>0]|0;b=c[80+(t*12|0)>>2]<<g;h=c[80+(t*12|0)+4>>2]<<g;g=c[80+(t*12|0)+8>>2]<<g;if(!e)c[a>>2]=p(c[a>>2]|0,b)|0;do if(!(f&65436)){if(f&98|0){n=p(c[a+4>>2]|0,h)|0;t=p(c[a+20>>2]|0,b)|0;m=p(c[a+24>>2]|0,h)|0;o=c[a>>2]|0;s=(m>>1)+n+32+(o+t)>>6;c[a>>2]=s;r=(n>>1)-m+32+(o-t)>>6;c[a+4>>2]=r;q=32-((n>>1)-m)+(o-t)>>6;c[a+8>>2]=q;t=32-((m>>1)+n)+(o+t)>>6;c[a+12>>2]=t;c[a+48>>2]=s;c[a+32>>2]=s;c[a+16>>2]=s;c[a+52>>2]=r;c[a+36>>2]=r;c[a+20>>2]=r;c[a+56>>2]=q;c[a+40>>2]=q;c[a+24>>2]=q;c[a+60>>2]=t;c[a+44>>2]=t;c[a+28>>2]=t;if((q+512|r+512|s+512|t+512)>>>0>1023)b=1;else break;return b|0}b=(c[a>>2]|0)+32>>6;if((b+512|0)>>>0>1023){a=1;return a|0}else{c[a+60>>2]=b;c[a+56>>2]=b;c[a+52>>2]=b;c[a+48>>2]=b;c[a+44>>2]=b;c[a+40>>2]=b;c[a+36>>2]=b;c[a+32>>2]=b;c[a+28>>2]=b;c[a+24>>2]=b;c[a+20>>2]=b;c[a+16>>2]=b;c[a+12>>2]=b;c[a+8>>2]=b;c[a+4>>2]=b;c[a>>2]=b;break}}else{B=c[a+60>>2]|0;z=p(c[a+4>>2]|0,h)|0;c[a+56>>2]=p(c[a+56>>2]|0,h)|0;c[a+60>>2]=p(B,g)|0;B=p(c[a+8>>2]|0,h)|0;y=p(c[a+20>>2]|0,b)|0;D=p(c[a+16>>2]|0,g)|0;w=p(c[a+32>>2]|0,h)|0;u=p(c[a+12>>2]|0,b)|0;A=p(c[a+24>>2]|0,h)|0;C=p(c[a+28>>2]|0,h)|0;E=p(c[a+48>>2]|0,g)|0;F=p(c[a+36>>2]|0,h)|0;g=p(c[a+40>>2]|0,g)|0;v=p(c[a+44>>2]|0,b)|0;h=p(c[a+52>>2]|0,h)|0;x=c[a>>2]|0;e=(z>>1)-A+(x-y)|0;c[a+4>>2]=e;l=x-y-((z>>1)-A)|0;c[a+8>>2]=l;q=y+x-((A>>1)+z)|0;c[a+12>>2]=q;i=(D>>1)-E+(B-C)|0;c[a+20>>2]=i;m=B-C-((D>>1)-E)|0;c[a+24>>2]=m;r=C+B-((E>>1)+D)|0;c[a+28>>2]=r;j=(w>>1)-h+(u-v)|0;c[a+36>>2]=j;n=u-v-((w>>1)-h)|0;c[a+40>>2]=n;s=v+u-((h>>1)+w)|0;c[a+44>>2]=s;b=c[a+56>>2]|0;G=c[a+60>>2]|0;k=(g>>1)-G+(F-b)|0;c[a+52>>2]=k;o=F-b-((g>>1)-G)|0;c[a+56>>2]=o;t=b+F-((G>>1)+g)|0;c[a+60>>2]=t;f=((E>>1)+D+(C+B)>>1)-((G>>1)+g+(b+F))|0;b=((G>>1)+g+(b+F)>>1)+((E>>1)+D+(C+B))|0;g=(h>>1)+w+(v+u)+((A>>1)+z+(y+x))+32|0;c[a>>2]=g+b>>6;h=(A>>1)+z+(y+x)-((h>>1)+w+(v+u))+32|0;c[a+16>>2]=h+f>>6;c[a+32>>2]=h-f>>6;c[a+48>>2]=g-b>>6;if(((g+b>>6)+512|(h+f>>6)+512)>>>0>1023){G=1;return G|0}if(((g-b>>6)+512|(h-f>>6)+512)>>>0>1023){G=1;return G|0}F=j+e+32+((k>>1)+i)>>6;c[a+4>>2]=F;G=e-j+32+((i>>1)-k)>>6;c[a+20>>2]=G;g=e-j+32-((i>>1)-k)>>6;c[a+36>>2]=g;b=j+e+32-((k>>1)+i)>>6;c[a+52>>2]=b;if((F+512|G+512)>>>0>1023){G=1;return G|0}if((b+512|g+512)>>>0>1023){G=1;return G|0}F=n+l+32+((o>>1)+m)>>6;c[a+8>>2]=F;G=l-n+32+((m>>1)-o)>>6;c[a+24>>2]=G;g=l-n+32-((m>>1)-o)>>6;c[a+40>>2]=g;b=n+l+32-((o>>1)+m)>>6;c[a+56>>2]=b;if((F+512|G+512)>>>0>1023){G=1;return G|0}if((b+512|g+512)>>>0>1023){G=1;return G|0}F=s+q+32+((t>>1)+r)>>6;c[a+12>>2]=F;G=q-s+32+((r>>1)-t)>>6;c[a+28>>2]=G;g=q-s+32-((r>>1)-t)>>6;c[a+44>>2]=g;b=s+q+32-((t>>1)+r)>>6;c[a+60>>2]=b;if((F+512|G+512)>>>0>1023){G=1;return G|0}if((b+512|g+512)>>>0>1023){G=1;return G|0}}while(0);G=0;return G|0}function T(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;f=a[160+d>>0]|0;e=a[16+d>>0]|0;m=c[b+8>>2]|0;q=c[b+20>>2]|0;u=c[b+16>>2]|0;v=c[b+32>>2]|0;x=c[b+12>>2]|0;h=c[b+24>>2]|0;r=c[b+28>>2]|0;i=c[b+48>>2]|0;y=c[b+36>>2]|0;w=c[b+40>>2]|0;j=c[b+44>>2]|0;z=c[b+52>>2]|0;l=c[b>>2]|0;t=c[b+4>>2]|0;g=h+t+(q+l)|0;c[b>>2]=g;k=t-h+(l-q)|0;c[b+4>>2]=k;o=l-q-(t-h)|0;c[b+8>>2]=o;t=q+l-(h+t)|0;c[b+12>>2]=t;h=i+u+(r+m)|0;c[b+16>>2]=h;l=u-i+(m-r)|0;c[b+20>>2]=l;q=m-r-(u-i)|0;c[b+24>>2]=q;u=r+m-(i+u)|0;c[b+28>>2]=u;i=z+v+(j+x)|0;c[b+32>>2]=i;m=v-z+(x-j)|0;c[b+36>>2]=m;r=x-j-(v-z)|0;c[b+40>>2]=r;v=j+x-(z+v)|0;c[b+44>>2]=v;z=c[b+56>>2]|0;x=c[b+60>>2]|0;j=x+w+(z+y)|0;c[b+48>>2]=j;n=w-x+(y-z)|0;c[b+52>>2]=n;s=y-z-(w-x)|0;c[b+56>>2]=s;w=z+y-(x+w)|0;c[b+60>>2]=w;f=c[80+((f&255)*12|0)>>2]|0;if(d>>>0>11){z=f<<(e&255)+-2;c[b>>2]=p(j+h+(i+g)|0,z)|0;c[b+16>>2]=p(h-j+(g-i)|0,z)|0;c[b+32>>2]=p(g-i-(h-j)|0,z)|0;c[b+48>>2]=p(i+g-(j+h)|0,z)|0;c[b+4>>2]=p(n+l+(m+k)|0,z)|0;c[b+20>>2]=p(l-n+(k-m)|0,z)|0;c[b+36>>2]=p(k-m-(l-n)|0,z)|0;c[b+52>>2]=p(m+k-(n+l)|0,z)|0;c[b+8>>2]=p(s+q+(r+o)|0,z)|0;c[b+24>>2]=p(q-s+(o-r)|0,z)|0;c[b+40>>2]=p(o-r-(q-s)|0,z)|0;c[b+56>>2]=p(r+o-(s+q)|0,z)|0;c[b+12>>2]=p(w+u+(v+t)|0,z)|0;c[b+28>>2]=p(u-w+(t-v)|0,z)|0;c[b+44>>2]=p(t-v-(u-w)|0,z)|0;c[b+60>>2]=p(v+t-(w+u)|0,z)|0;return}else{y=(d+-6|0)>>>0<6?1:2;z=2-(e&255)|0;c[b>>2]=(p(j+h+(i+g)|0,f)|0)+y>>z;c[b+16>>2]=(p(h-j+(g-i)|0,f)|0)+y>>z;c[b+32>>2]=(p(g-i-(h-j)|0,f)|0)+y>>z;c[b+48>>2]=(p(i+g-(j+h)|0,f)|0)+y>>z;c[b+4>>2]=(p(n+l+(m+k)|0,f)|0)+y>>z;c[b+20>>2]=(p(l-n+(k-m)|0,f)|0)+y>>z;c[b+36>>2]=(p(k-m-(l-n)|0,f)|0)+y>>z;c[b+52>>2]=(p(m+k-(n+l)|0,f)|0)+y>>z;c[b+8>>2]=(p(s+q+(r+o)|0,f)|0)+y>>z;c[b+24>>2]=(p(q-s+(o-r)|0,f)|0)+y>>z;c[b+40>>2]=(p(o-r-(q-s)|0,f)|0)+y>>z;c[b+56>>2]=(p(r+o-(s+q)|0,f)|0)+y>>z;c[b+12>>2]=(p(w+u+(v+t)|0,f)|0)+y>>z;c[b+28>>2]=(p(u-w+(t-v)|0,f)|0)+y>>z;c[b+44>>2]=(p(t-v-(u-w)|0,f)|0)+y>>z;c[b+60>>2]=(p(v+t-(w+u)|0,f)|0)+y>>z;return}}function U(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0;e=c[80+((d[160+b>>0]|0)*12|0)>>2]|0;if(b>>>0>5){e=e<<(d[16+b>>0]|0)+-1;b=0}else b=1;f=c[a>>2]|0;g=c[a+8>>2]|0;h=c[a+4>>2]|0;i=c[a+12>>2]|0;c[a>>2]=(p(i+h+(g+f)|0,e)|0)>>b;c[a+4>>2]=(p(g+f-(i+h)|0,e)|0)>>b;c[a+8>>2]=(p(h-i+(f-g)|0,e)|0)>>b;c[a+12>>2]=(p(f-g-(h-i)|0,e)|0)>>b;i=c[a+16>>2]|0;h=c[a+24>>2]|0;g=c[a+20>>2]|0;f=c[a+28>>2]|0;c[a+16>>2]=(p(f+g+(h+i)|0,e)|0)>>b;c[a+20>>2]=(p(h+i-(f+g)|0,e)|0)>>b;c[a+24>>2]=(p(g-f+(i-h)|0,e)|0)>>b;c[a+28>>2]=(p(i-h-(g-f)|0,e)|0)>>b;return}function V(a,b){a=a|0;b=b|0;var c=0;if(1<<b+-1&a|0){a=0;return a|0}c=1<<b+-1;b=0;do{b=b+1|0;c=c>>>1}while((c|0)!=0&(c&a|0)==0);return b|0}function W(a){a=a|0;var b=0;b=8-(c[a+8>>2]|0)|0;a=ua(a,b)|0;if((a|0)==-1){b=1;return b|0}b=(a|0)!=(c[432+(b+-1<<2)>>2]|0)&1;return b|0}function X(a){a=a|0;var b=0;b=(c[a+12>>2]<<3)-(c[a+16>>2]|0)|0;if(!b){b=0;return b|0}if(b>>>0>8){b=1;return b|0}else return ((va(a)|0)>>>(32-b|0)|0)!=(1<<b+-1|0)|0;return 0}function Y(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+(d<<2)>>2]|0;a:do if((d+1|0)>>>0<b>>>0){d=d+1|0;do{if((c[a+(d<<2)>>2]|0)==(e|0))break a;d=d+1|0}while(d>>>0<b>>>0)}else d=d+1|0;while(0);return ((d|0)==(b|0)?0:d)|0}function Z(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[a+4>>2]|0;d=p(c[a+8>>2]|0,e)|0;f=c[a>>2]|0;c[a+12>>2]=f+(((b>>>0)%(e>>>0)|0)<<4)+(b-((b>>>0)%(e>>>0)|0)<<8);b=f+(d<<8)+(b-((b>>>0)%(e>>>0)|0)<<6)+(((b>>>0)%(e>>>0)|0)<<3)|0;c[a+16>>2]=b;c[a+20>>2]=b+(d<<6);return}function _(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;do if(((e>>>0>3?(a[b>>0]|0)==0:0)?(a[b+1>>0]|0)==0:0)?(h=a[b+2>>0]|0,(h&255)<2):0){n=-3;p=3;k=b+3|0;i=2;while(1){if(h<<24>>24)if(h<<24>>24==1&i>>>0>1)break;else i=0;else i=i+1|0;j=p+1|0;if((j|0)==(e|0)){q=6;break}else{h=a[k>>0]|0;n=~p;p=j;k=k+1|0}}if((q|0)==6){c[g>>2]=e;q=1;return q|0}j=(a[k>>0]|0)!=0;l=0;m=p;i=0;o=(j^1)&1;while(1){m=m+1|0;k=k+1|0;h=j?0:o;i=j&o>>>0>2?1:i;if((m|0)==(e|0)){q=15;break}q=a[k>>0]|0;j=q<<24>>24!=0;o=h+((j^1)&1)|0;h=q<<24>>24==3&(o|0)==2?1:l;if(q<<24>>24==1&o>>>0>1){q=13;break}else l=h}if((q|0)==13){m=n+m-o|0;c[f+12>>2]=m;l=h;j=p;n=f+12|0;h=o-(o>>>0<3?o:3)|0;break}else if((q|0)==15){m=n+e-h|0;c[f+12>>2]=m;j=p;n=f+12|0;break}}else q=16;while(0);if((q|0)==16){c[f+12>>2]=e;m=e;l=1;j=0;i=0;n=f+12|0;h=0}k=b+j|0;c[f>>2]=k;c[f+4>>2]=k;c[f+8>>2]=0;c[f+16>>2]=0;c[g>>2]=h+j+m;if(i|0){q=1;return q|0}if(!l){q=0;return q|0}h=c[n>>2]|0;do if(h){i=k;l=k;j=0;a:while(1){h=h+-1|0;k=a[i>>0]|0;do if((j|0)==2){if(k<<24>>24!=3)if((k&255)<3){h=1;q=30;break a}else{q=26;break}if(!h){h=1;q=30;break a}i=i+1|0;if((d[i>>0]|0)>3){h=1;q=30;break a}else j=0}else q=26;while(0);if((q|0)==26){q=0;a[l>>0]=k;i=i+1|0;l=l+1|0;j=k<<24>>24==0?j+1|0:0}if(!h){q=28;break}}if((q|0)==28){j=c[n>>2]|0;h=l;break}else if((q|0)==30)return h|0}else{j=0;i=k;h=k}while(0);c[n>>2]=h-i+j;q=0;return q|0}function $(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=H;H=H+16|0;fc(b,0,92);d=ua(a,8)|0;a:do if((((d|0)!=-1?(c[b>>2]=d,ua(a,1)|0,ua(a,1)|0,(ua(a,1)|0)!=-1):0)?(ua(a,5)|0)!=-1:0)?(e=ua(a,8)|0,(e|0)!=-1):0){c[b+4>>2]=e;d=ya(a,b+8|0)|0;if(!d)if((c[b+8>>2]|0)>>>0<=31){d=ya(a,h)|0;if(!d){d=c[h>>2]|0;if(d>>>0<=12){c[b+12>>2]=1<<d+4;d=ya(a,h)|0;if(!d){d=c[h>>2]|0;if(d>>>0<=2){c[b+16>>2]=d;b:do switch(d|0){case 0:{d=ya(a,h)|0;if(d|0)break a;d=c[h>>2]|0;if(d>>>0>12){d=1;break a}c[b+20>>2]=1<<d+4;break}case 1:{d=ua(a,1)|0;if((d|0)==-1){d=1;break a}c[b+24>>2]=(d|0)==1&1;d=za(a,b+28|0)|0;if(d|0)break a;d=za(a,b+32|0)|0;if(d|0)break a;d=ya(a,b+36|0)|0;if(d|0)break a;d=c[b+36>>2]|0;if(d>>>0>255){d=1;break a}if(!d){c[b+40>>2]=0;break b}d=cc(d<<2)|0;c[b+40>>2]=d;if(!d){d=65535;break a}if(c[b+36>>2]|0){d=za(a,d)|0;if(d|0)break a;e=1;while(1){if(e>>>0>=(c[b+36>>2]|0)>>>0)break b;d=za(a,(c[b+40>>2]|0)+(e<<2)|0)|0;if(!d)e=e+1|0;else break a}}break}default:{}}while(0);d=ya(a,b+44|0)|0;if(!d)if((c[b+44>>2]|0)>>>0<=16?(f=ua(a,1)|0,(f|0)!=-1):0){c[b+48>>2]=(f|0)==1&1;d=ya(a,h)|0;if(!d){c[b+52>>2]=(c[h>>2]|0)+1;d=ya(a,h)|0;if(!d){c[b+56>>2]=(c[h>>2]|0)+1;switch(ua(a,1)|0){case 0:case -1:{d=1;break a}default:{}}if((ua(a,1)|0)!=-1?(g=ua(a,1)|0,(g|0)!=-1):0){c[b+60>>2]=(g|0)==1&1;if((g|0)==1){d=ya(a,b+64|0)|0;if(d|0)break;d=ya(a,b+68|0)|0;if(d|0)break;d=ya(a,b+72|0)|0;if(d|0)break;d=ya(a,b+76|0)|0;if(d|0)break;e=c[b+52>>2]|0;if((c[b+64>>2]|0)>((e<<3)+~c[b+68>>2]|0)){d=1;break}d=c[b+56>>2]|0;if((c[b+72>>2]|0)>((d<<3)+~c[b+76>>2]|0)){d=1;break}}else{d=c[b+56>>2]|0;e=c[b+52>>2]|0}e=p(d,e)|0;do switch(c[b+4>>2]|0){case 10:{d=99;f=152064;g=59;break}case 11:{d=396;f=345600;g=59;break}case 12:{d=396;f=912384;g=59;break}case 13:{d=396;f=912384;g=59;break}case 20:{d=396;f=912384;g=59;break}case 21:{d=792;f=1824768;g=59;break}case 22:{d=1620;f=3110400;g=59;break}case 30:{d=1620;f=3110400;g=59;break}case 31:{d=3600;f=6912e3;g=59;break}case 32:{d=5120;f=7864320;g=59;break}case 40:{d=8192;f=12582912;g=59;break}case 41:{d=8192;f=12582912;g=59;break}case 42:{d=8704;f=13369344;g=59;break}case 50:{d=22080;f=42393600;g=59;break}case 51:{d=36864;f=70778880;g=59;break}default:g=61}while(0);do if((g|0)==59){if(d>>>0<e>>>0){g=61;break}e=(f>>>0)/((e*384|0)>>>0)|0;e=e>>>0<16?e:16;c[h>>2]=e;d=c[b+44>>2]|0;if(d>>>0>e>>>0)g=62;else d=e}while(0);if((g|0)==61){c[h>>2]=2147483647;d=c[b+44>>2]|0;g=62}if((g|0)==62)c[h>>2]=d;c[b+88>>2]=d;d=ua(a,1)|0;if((d|0)!=-1){c[b+80>>2]=(d|0)==1&1;do if((d|0)==1){d=cc(952)|0;c[b+84>>2]=d;if(!d){d=65535;break a}d=Ob(a,d)|0;if(d|0)break a;d=c[b+84>>2]|0;if(!(c[d+920>>2]|0))break;e=c[d+948>>2]|0;if((c[d+944>>2]|0)>>>0>e>>>0){d=1;break a}if(e>>>0<(c[b+44>>2]|0)>>>0){d=1;break a}if(e>>>0>(c[b+88>>2]|0)>>>0){d=1;break a}c[b+88>>2]=(e|0)==0?1:e}while(0);W(a)|0;d=0}else d=1}else d=1}}}else d=1}else d=1}}else d=1}}else d=1}else d=1;while(0);H=h;return d|0}function aa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((c[a>>2]|0)!=(c[b>>2]|0)){b=1;return b|0}if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){b=1;return b|0}if((c[a+12>>2]|0)!=(c[b+12>>2]|0)){b=1;return b|0}d=c[a+16>>2]|0;if((d|0)!=(c[b+16>>2]|0)){b=1;return b|0}if((c[a+44>>2]|0)!=(c[b+44>>2]|0)){b=1;return b|0}if((c[a+48>>2]|0)!=(c[b+48>>2]|0)){b=1;return b|0}if((c[a+52>>2]|0)!=(c[b+52>>2]|0)){b=1;return b|0}if((c[a+56>>2]|0)!=(c[b+56>>2]|0)){b=1;return b|0}h=c[a+60>>2]|0;if((h|0)!=(c[b+60>>2]|0)){b=1;return b|0}if((c[a+80>>2]|0)!=(c[b+80>>2]|0)){b=1;return b|0}a:do switch(d|0){case 0:{if((c[a+20>>2]|0)!=(c[b+20>>2]|0)){b=1;return b|0}break}case 1:{if((c[a+24>>2]|0)!=(c[b+24>>2]|0)){b=1;return b|0}if((c[a+28>>2]|0)!=(c[b+28>>2]|0)){b=1;return b|0}if((c[a+32>>2]|0)!=(c[b+32>>2]|0)){b=1;return b|0}d=c[a+36>>2]|0;if((d|0)!=(c[b+36>>2]|0)){b=1;return b|0}if(d|0){e=c[a+40>>2]|0;f=c[b+40>>2]|0;g=0;while(1){if((c[e+(g<<2)>>2]|0)!=(c[f+(g<<2)>>2]|0)){d=1;break}g=g+1|0;if(g>>>0>=d>>>0)break a}return d|0}break}default:{}}while(0);if(h|0){if((c[a+64>>2]|0)!=(c[b+64>>2]|0)){b=1;return b|0}if((c[a+68>>2]|0)!=(c[b+68>>2]|0)){b=1;return b|0}if((c[a+72>>2]|0)!=(c[b+72>>2]|0)){b=1;return b|0}if((c[a+76>>2]|0)!=(c[b+76>>2]|0)){b=1;return b|0}}b=0;return b|0}function ba(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=H;H=H+16|0;fc(b,0,72);d=ya(a,b)|0;if(d|0){a=d;H=f;return a|0}if((c[b>>2]|0)>>>0>255){a=1;H=f;return a|0}d=ya(a,b+4|0)|0;if(d|0){a=d;H=f;return a|0}if((c[b+4>>2]|0)>>>0>31){a=1;H=f;return a|0}if(ua(a,1)|0){a=1;H=f;return a|0}d=ua(a,1)|0;if((d|0)==-1){a=1;H=f;return a|0}c[b+8>>2]=(d|0)==1&1;d=ya(a,f+4|0)|0;if(d|0){a=d;H=f;return a|0}d=(c[f+4>>2]|0)+1|0;c[b+12>>2]=d;if(d>>>0>8){a=1;H=f;return a|0}a:do if(d>>>0>1){d=ya(a,b+16|0)|0;if(d|0){a=d;H=f;return a|0}d=c[b+16>>2]|0;if(d>>>0>6){a=1;H=f;return a|0}switch(d|0){case 0:{e=cc(c[b+12>>2]<<2)|0;c[b+20>>2]=e;if(!e){a=65535;H=f;return a|0}if(!(c[b+12>>2]|0))break a;e=0;while(1){d=ya(a,f+4|0)|0;if(d|0)break;c[(c[b+20>>2]|0)+(e<<2)>>2]=(c[f+4>>2]|0)+1;e=e+1|0;if(e>>>0>=(c[b+12>>2]|0)>>>0)break a}H=f;return d|0}case 2:{c[b+24>>2]=cc((c[b+12>>2]<<2)+-4|0)|0;e=cc((c[b+12>>2]<<2)+-4|0)|0;c[b+28>>2]=e;if((e|0)==0|(c[b+24>>2]|0)==0){a=65535;H=f;return a|0}if((c[b+12>>2]|0)==1)break a;e=0;while(1){d=ya(a,f+4|0)|0;if(d|0){e=49;break}c[(c[b+24>>2]|0)+(e<<2)>>2]=c[f+4>>2];d=ya(a,f+4|0)|0;if(d|0){e=49;break}c[(c[b+28>>2]|0)+(e<<2)>>2]=c[f+4>>2];e=e+1|0;if(e>>>0>=((c[b+12>>2]|0)+-1|0)>>>0)break a}if((e|0)==49){H=f;return d|0}break}case 5:case 4:case 3:{d=ua(a,1)|0;if((d|0)==-1){a=1;H=f;return a|0}c[b+32>>2]=(d|0)==1&1;d=ya(a,f+4|0)|0;if(!d){c[b+36>>2]=(c[f+4>>2]|0)+1;break a}else{a=d;H=f;return a|0}}case 6:{d=ya(a,f+4|0)|0;if(d|0){a=d;H=f;return a|0}e=(c[f+4>>2]|0)+1|0;c[b+40>>2]=e;e=cc(e<<2)|0;c[b+44>>2]=e;if(!e){a=65535;H=f;return a|0}d=c[464+((c[b+12>>2]|0)+-1<<2)>>2]|0;if(!(c[b+40>>2]|0))break a;e=0;while(1){g=ua(a,d)|0;c[(c[b+44>>2]|0)+(e<<2)>>2]=g;e=e+1|0;if(g>>>0>=(c[b+12>>2]|0)>>>0){d=1;break}if(e>>>0>=(c[b+40>>2]|0)>>>0)break a}H=f;return d|0}default:break a}}while(0);d=ya(a,f+4|0)|0;if(d|0){g=d;H=f;return g|0}d=c[f+4>>2]|0;if(d>>>0>31){g=1;H=f;return g|0}c[b+48>>2]=d+1;d=ya(a,f+4|0)|0;if(d|0){g=d;H=f;return g|0}if((c[f+4>>2]|0)>>>0>31){g=1;H=f;return g|0}if(ua(a,1)|0){g=1;H=f;return g|0}if((ua(a,2)|0)>>>0>2){g=1;H=f;return g|0}d=za(a,f)|0;if(d|0){g=d;H=f;return g|0}d=(c[f>>2]|0)+26|0;if(d>>>0>51){g=1;H=f;return g|0}c[b+52>>2]=d;d=za(a,f)|0;if(d|0){g=d;H=f;return g|0}if(((c[f>>2]|0)+26|0)>>>0>51){g=1;H=f;return g|0}d=za(a,f)|0;if(d|0){g=d;H=f;return g|0}d=c[f>>2]|0;if((d+12|0)>>>0>24){g=1;H=f;return g|0}c[b+56>>2]=d;d=ua(a,1)|0;if((d|0)==-1){g=1;H=f;return g|0}c[b+60>>2]=(d|0)==1&1;d=ua(a,1)|0;if((d|0)==-1){g=1;H=f;return g|0}c[b+64>>2]=(d|0)==1&1;d=ua(a,1)|0;if((d|0)==-1){g=1;H=f;return g|0}c[b+68>>2]=(d|0)==1&1;W(a)|0;g=0;H=f;return g|0}function ca(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=H;H=H+16|0;fc(b,0,988);n=p(c[d+56>>2]|0,c[d+52>>2]|0)|0;g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}k=c[o+4>>2]|0;c[b>>2]=k;if(k>>>0>=n>>>0){b=1;H=o;return b|0}g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}k=c[o+4>>2]|0;c[b+4>>2]=k;switch(k|0){case 7:case 2:break;case 5:case 0:{m=5;break}default:{b=1;H=o;return b|0}}if((m|0)==5){if((c[f>>2]|0)==5){b=1;H=o;return b|0}if(!(c[d+44>>2]|0)){b=1;H=o;return b|0}}g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}k=c[o+4>>2]|0;c[b+8>>2]=k;if((k|0)!=(c[e>>2]|0)){b=1;H=o;return b|0}g=c[d+12>>2]|0;h=0;while(1)if(!(g>>>h))break;else h=h+1|0;g=ua(a,h+-1|0)|0;if((g|0)==-1){b=1;H=o;return b|0}h=(c[f>>2]|0)==5;if((g|0)!=0&h){b=1;H=o;return b|0}c[b+12>>2]=g;if(h){g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}k=c[o+4>>2]|0;c[b+16>>2]=k;if(k>>>0>65535){b=1;H=o;return b|0}}g=c[d+16>>2]|0;if(!g){g=c[d+20>>2]|0;h=0;while(1)if(!(g>>>h))break;else h=h+1|0;g=ua(a,h+-1|0)|0;if((g|0)==-1){b=1;H=o;return b|0}c[b+20>>2]=g;do if(c[e+8>>2]|0){g=za(a,o)|0;if(!g){c[b+24>>2]=c[o>>2];break}else{b=g;H=o;return b|0}}while(0);if((c[f>>2]|0)==5){g=c[b+20>>2]|0;if(g>>>0>(c[d+20>>2]|0)>>>1>>>0){b=1;H=o;return b|0}k=c[b+24>>2]|0;if((g|0)!=(0-((k|0)<0?k:0)|0)){b=1;H=o;return b|0}}g=c[d+16>>2]|0}if((g|0)==1?(c[d+24>>2]|0)==0:0){g=za(a,o)|0;if(g|0){b=g;H=o;return b|0}c[b+28>>2]=c[o>>2];do if(c[e+8>>2]|0){g=za(a,o)|0;if(!g){c[b+32>>2]=c[o>>2];break}else{b=g;H=o;return b|0}}while(0);if((c[f>>2]|0)==5?(j=c[b+28>>2]|0,k=(c[d+32>>2]|0)+j+(c[b+32>>2]|0)|0,((j|0)<(k|0)?j:k)|0):0){b=1;H=o;return b|0}}if(c[e+68>>2]|0){g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}k=c[o+4>>2]|0;c[b+36>>2]=k;if(k>>>0>127){b=1;H=o;return b|0}}g=c[b+4>>2]|0;switch(g|0){case 5:case 0:{g=ua(a,1)|0;if((g|0)==-1){b=1;H=o;return b|0}c[b+40>>2]=g;do if(!g){g=c[e+48>>2]|0;if(g>>>0>16){b=1;H=o;return b|0}}else{g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}g=c[o+4>>2]|0;if(g>>>0>15){b=1;H=o;return b|0}else{g=g+1|0;break}}while(0);c[b+44>>2]=g;g=c[b+4>>2]|0;break}default:{}}a:do switch(g|0){case 5:case 0:{i=c[b+44>>2]|0;j=c[d+12>>2]|0;g=ua(a,1)|0;b:do if((g|0)==-1)g=1;else{c[b+68>>2]=g;if(g|0){h=0;while(1){if(h>>>0>i>>>0){g=1;break b}g=ya(a,o+8|0)|0;if(g|0)break b;g=c[o+8>>2]|0;if(g>>>0>3){g=1;break b}c[b+72+(h*12|0)>>2]=g;do if(g>>>0<2){g=ya(a,o+12|0)|0;if(g|0)break b;g=c[o+12>>2]|0;if(g>>>0>=j>>>0){g=1;break b}c[b+72+(h*12|0)+4>>2]=g+1}else{if((g|0)!=2)break;g=ya(a,o+12|0)|0;if(g|0)break b;c[b+72+(h*12|0)+8>>2]=c[o+12>>2]}while(0);if((c[o+8>>2]|0)==3)break;else h=h+1|0}if(!h){g=1;break}}break a}while(0);b=g;H=o;return b|0}default:{}}while(0);do if(c[f+4>>2]|0){k=c[d+44>>2]|0;f=(c[f>>2]|0)==5;g=ua(a,1)|0;c:do if(f)if(((g|0)!=-1?(c[b+276>>2]=g,l=ua(a,1)|0,(l|0)!=-1):0)?(c[b+280>>2]=l,(k|0)!=0|(l|0)==0):0)m=92;else g=1;else if((g|0)!=-1){c[b+284>>2]=g;if(g){i=0;j=0;h=0;d=0;f=0;while(1){if(i>>>0>((k<<1)+2|0)>>>0){g=1;break c}g=ya(a,o+8|0)|0;if(g|0)break c;g=c[o+8>>2]|0;if(g>>>0>6){g=1;break c}c[b+288+(i*20|0)>>2]=g;if((g|2|0)==3){g=ya(a,o+12|0)|0;if(g|0)break c;c[b+288+(i*20|0)+4>>2]=(c[o+12>>2]|0)+1;g=c[o+8>>2]|0}if((g|0)==2){g=ya(a,o+12|0)|0;if(g|0)break c;c[b+288+(i*20|0)+8>>2]=c[o+12>>2];g=c[o+8>>2]|0}switch(g|0){case 3:case 6:{g=ya(a,o+12|0)|0;if(g|0)break c;c[b+288+(i*20|0)+12>>2]=c[o+12>>2];g=c[o+8>>2]|0;break}default:{}}if((g|0)==4){g=ya(a,o+12|0)|0;if(g|0)break c;g=c[o+12>>2]|0;if(g>>>0>k>>>0){g=1;break c}c[b+288+(i*20|0)+16>>2]=(g|0)==0?65535:g+-1|0;g=c[o+8>>2]|0;h=h+1|0}d=d+((g|0)==5&1)|0;j=j+((g+-1|0)>>>0<3&1)|0;f=f+((g|0)==6&1)|0;if(!g)break;else i=i+1|0}if((d|h|f)>>>0<=1?!((d|0)!=0&(j|0)!=0):0)m=92;else g=1}else m=92}else g=1;while(0);if((m|0)==92)break;b=g;H=o;return b|0}while(0);g=za(a,o)|0;if(g|0){b=g;H=o;return b|0}m=c[o>>2]|0;c[b+48>>2]=m;m=(c[e+52>>2]|0)+m|0;c[o>>2]=m;if(m>>>0>51){b=1;H=o;return b|0}do if(c[e+60>>2]|0){g=ya(a,o+4|0)|0;if(g|0){b=g;H=o;return b|0}g=c[o+4>>2]|0;c[b+52>>2]=g;if(g>>>0>2){b=1;H=o;return b|0}if((g|0)!=1){g=za(a,o)|0;if(g|0){b=g;H=o;return b|0}g=c[o>>2]|0;if((g+6|0)>>>0>12){b=1;H=o;return b|0}c[b+56>>2]=g<<1;g=za(a,o)|0;if(g|0){b=g;H=o;return b|0}g=c[o>>2]|0;if((g+6|0)>>>0>12){b=1;H=o;return b|0}else{c[b+60>>2]=g<<1;break}}}while(0);if((c[e+12>>2]|0)>>>0>1?((c[e+16>>2]|0)+-3|0)>>>0<3:0){i=c[e+36>>2]|0;h=(n-(p((n>>>0)/(i>>>0)|0,i)|0)|0)==0;i=(h?1:2)+((n>>>0)/(i>>>0)|0)|0;h=0;while(1){g=h+1|0;if(!(-1<<g&i))break;else h=g}g=ua(a,((1<<h)+-1&i|0)==0?h:g)|0;c[o+4>>2]=g;if((g|0)==-1){b=1;H=o;return b|0}c[b+64>>2]=g;b=c[e+36>>2]|0;if(g>>>0>(((n+-1+b|0)>>>0)/(b>>>0)|0)>>>0){b=1;H=o;return b|0}}b=0;H=o;return b|0}function da(a,b){a=a|0;b=b|0;var d=0;d=H;H=H+32|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[d+16>>2]=c[a+16>>2];a=ya(d,d+20|0)|0;if(!a){a=ya(d,d+20|0)|0;if(!a){a=ya(d,d+20|0)|0;if(!a){a=c[d+20>>2]|0;if(a>>>0>255)a=1;else{c[b>>2]=a;a=0}}}}H=d;return a|0}function ea(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=H;H=H+32|0;c[e>>2]=c[a>>2];c[e+4>>2]=c[a+4>>2];c[e+8>>2]=c[a+8>>2];c[e+12>>2]=c[a+12>>2];c[e+16>>2]=c[a+16>>2];a=ya(e,e+20|0)|0;if(a|0){d=a;H=e;return d|0}a=ya(e,e+20|0)|0;if(a|0){d=a;H=e;return d|0}a=ya(e,e+20|0)|0;if(a|0){d=a;H=e;return d|0}a=0;while(1)if(!(b>>>a))break;else a=a+1|0;a=ua(e,a+-1|0)|0;if((a|0)==-1){d=1;H=e;return d|0}c[d>>2]=a;d=0;H=e;return d|0}function fa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=H;H=H+32|0;if((d|0)==5){c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];d=ya(f,f+20|0)|0;if(!d){d=ya(f,f+20|0)|0;if(!d){d=ya(f,f+20|0)|0;if(!d){d=0;while(1)if(!(b>>>d))break;else d=d+1|0;if((ua(f,d+-1|0)|0)==-1)d=1;else d=ya(f,e)|0}}}}else d=1;H=f;return d|0}function ga(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=H;H=H+32|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=c[b+12>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;if((ua(h,f+-1|0)|0)==-1){e=1;H=h;return e|0}if((d|0)==5?(g=ya(h,h+20|0)|0,g|0):0){e=g;H=h;return e|0}a=c[b+20>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;a=ua(h,f+-1|0)|0;if((a|0)==-1){e=1;H=h;return e|0}c[e>>2]=a;e=0;H=h;return e|0}function ha(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=H;H=H+32|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=ya(h,h+20|0)|0;if(a|0){e=a;H=h;return e|0}a=c[b+12>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;if((ua(h,f+-1|0)|0)==-1){e=1;H=h;return e|0}if((d|0)==5?(g=ya(h,h+20|0)|0,g|0):0){e=g;H=h;return e|0}a=c[b+20>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;if((ua(h,f+-1|0)|0)==-1){e=1;H=h;return e|0}e=za(h,e)|0;H=h;return e|0}function ia(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=H;H=H+32|0;c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];a=ya(i,i+20|0)|0;if(a|0){e=a;H=i;return e|0}a=ya(i,i+20|0)|0;if(a|0){e=a;H=i;return e|0}a=ya(i,i+20|0)|0;if(a|0){e=a;H=i;return e|0}a=c[b+12>>2]|0;b=0;while(1)if(!(a>>>b))break;else b=b+1|0;if((ua(i,b+-1|0)|0)==-1){e=1;H=i;return e|0}if((d|0)==5?(g=ya(i,i+20|0)|0,g|0):0){e=g;H=i;return e|0}a=za(i,f)|0;if(a|0){e=a;H=i;return e|0}if(e|0?(h=za(i,f+4|0)|0,h|0):0){e=h;H=i;return e|0}e=0;H=i;return e|0}function ja(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=H;H=H+32|0;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];c[h+12>>2]=c[b+12>>2];c[h+16>>2]=c[b+16>>2];f=ya(h,h+24|0)|0;if(f|0){e=f;H=h;return e|0}f=ya(h,h+24|0)|0;if(f|0){e=f;H=h;return e|0}f=ya(h,h+24|0)|0;if(f|0){e=f;H=h;return e|0}f=c[d+12>>2]|0;b=0;while(1)if(!(f>>>b))break;else b=b+1|0;if((ua(h,b+-1|0)|0)==-1){e=1;H=h;return e|0}f=ya(h,h+24|0)|0;if(f|0){e=f;H=h;return e|0}f=c[d+16>>2]|0;if(!f){f=c[d+20>>2]|0;b=0;while(1)if(!(f>>>b))break;else b=b+1|0;if((ua(h,b+-1|0)|0)==-1){e=1;H=h;return e|0}if(c[e+8>>2]|0?(g=za(h,h+20|0)|0,g|0):0){e=g;H=h;return e|0}f=c[d+16>>2]|0}if((f|0)==1?(c[d+24>>2]|0)==0:0){f=za(h,h+20|0)|0;if(f|0){e=f;H=h;return e|0}if(c[e+8>>2]|0?(i=za(h,h+20|0)|0,i|0):0){e=i;H=h;return e|0}}if(c[e+68>>2]|0?(j=ya(h,h+24|0)|0,j|0):0){e=j;H=h;return e|0}e=ua(h,1)|0;c[a>>2]=e;e=(e|0)==-1&1;H=h;return e|0}function ka(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H;H=H+448|0;h=c[b+3376>>2]|0;i=c[e>>2]|0;c[k+436>>2]=0;c[b+1192>>2]=(c[b+1192>>2]|0)+1;c[b+1200>>2]=0;c[k+432>>2]=(c[e+48>>2]|0)+(c[(c[b+12>>2]|0)+52>>2]|0);j=0;g=0;while(1){f=c[b+1212>>2]|0;if((c[e+36>>2]|0)==0?c[f+(i*216|0)+196>>2]|0:0){f=1;g=20;break}l=c[(c[b+12>>2]|0)+56>>2]|0;o=c[e+52>>2]|0;n=c[e+56>>2]|0;m=c[e+60>>2]|0;c[f+(i*216|0)+4>>2]=c[b+1192>>2];c[f+(i*216|0)+8>>2]=o;c[f+(i*216|0)+12>>2]=n;c[f+(i*216|0)+16>>2]=m;c[f+(i*216|0)+24>>2]=l;f=c[e+4>>2]|0;if((f|0)!=2?!((g|0)!=0|(f|0)==7):0){f=ya(a,k+436|0)|0;if(f|0){g=20;break}f=c[k+436>>2]|0;if(f>>>0>((c[b+1176>>2]|0)-i|0)>>>0){f=1;g=20;break}if(!f)g=0;else{fc(h+12|0,0,164);c[h>>2]=0;g=1}}f=c[k+436>>2]|0;if(!f){f=ma(a,h,(c[b+1212>>2]|0)+(i*216|0)|0,c[e+4>>2]|0,c[e+44>>2]|0)|0;if(!f)g=0;else{g=20;break}}else c[k+436>>2]=f+-1;f=sa((c[b+1212>>2]|0)+(i*216|0)|0,h,d,b+1220|0,k+432|0,i,c[(c[b+12>>2]|0)+64>>2]|0,k)|0;if(f|0){g=20;break}j=j+((c[(c[b+1212>>2]|0)+(i*216|0)+196>>2]|0)==1&1)|0;f=X(a)|0;f=(c[k+436>>2]|f|0)!=0;switch(c[e+4>>2]|0){case 7:case 2:{c[b+1200>>2]=i;break}default:{}}i=Y(c[b+1172>>2]|0,c[b+1176>>2]|0,i)|0;if(!((i|0)!=0|f^1)){f=1;g=20;break}if(!f){g=18;break}}if((g|0)==18){f=(c[b+1196>>2]|0)+j|0;if(f>>>0>(c[b+1176>>2]|0)>>>0){o=1;H=k;return o|0}c[b+1196>>2]=f;o=0;H=k;return o|0}else if((g|0)==20){H=k;return f|0}return 0}function la(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+1192>>2]|0;d=c[a+1200>>2]|0;a:do if(d)if((d+-1|0)>>>0>b>>>0){f=c[a+1212>>2]|0;d=d+-1|0;e=0;while(1){if((c[f+(d*216|0)+4>>2]|0)==(g|0)){e=e+1|0;h=c[(c[a+16>>2]|0)+52>>2]|0;if(e>>>0>=(h>>>0>10?h:10)>>>0){b=d;break a}}d=d+-1|0;if(d>>>0<=b>>>0){b=d;break}}}else b=d+-1|0;while(0);while(1){d=c[a+1212>>2]|0;if((c[d+(b*216|0)+4>>2]|0)!=(g|0)){b=11;break}e=d+(b*216|0)+196|0;d=c[e>>2]|0;if(!d){b=11;break}c[e>>2]=d+-1;b=Y(c[a+1172>>2]|0,c[a+1176>>2]|0,b)|0;if(!b){b=11;break}}if((b|0)==11)return}function ma(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=H;H=H+16|0;fc(d,0,2088);i=ya(a,q+4|0)|0;h=c[q+4>>2]|0;a:do switch(f|0){case 2:case 7:if((i|0)!=0|(h+6|0)>>>0>31){a=1;H=q;return a|0}else{c[d>>2]=h+6;m=h+6|0;p=d;break a}default:if((i|0)!=0|(h+1|0)>>>0>31){a=1;H=q;return a|0}else{c[d>>2]=h+1;m=h+1|0;p=d;break a}}while(0);b:do if((m|0)!=31){f=m>>>0<6;h=(m|0)!=6;o=f?2:h&1;c:do if(!f){d:do if(!h){c[q+8>>2]=0;h=va(a)|0;c[d+12>>2]=h>>>31;if(!(h>>>31)){c[d+76>>2]=h>>>28&7;h=h<<4;i=1}else{h=h<<1;i=0}n=h>>>31;c[d+16>>2]=n;if(!n){c[d+80>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+20>>2]=n;if(!n){c[d+84>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+24>>2]=n;if(!n){c[d+88>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+28>>2]=n;if(!n){c[d+92>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+32>>2]=n;if(!n){c[d+96>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+36>>2]=n;if(!n){c[d+100>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+40>>2]=n;if(!n){c[d+104>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;do if((wa(a,(i*3|0)+8|0)|0)!=-1){c[q+8>>2]=1;h=va(a)|0;c[d+44>>2]=h>>>31;if(!(h>>>31)){c[d+108>>2]=h>>>28&7;h=h<<4;i=1}else{h=h<<1;i=0}n=h>>>31;c[d+48>>2]=n;if(!n){c[d+112>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+52>>2]=n;if(!n){c[d+116>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+56>>2]=n;if(!n){c[d+120>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+60>>2]=n;if(!n){c[d+124>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+64>>2]=n;if(!n){c[d+128>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+68>>2]=n;if(!n){c[d+132>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;n=h>>>31;c[d+72>>2]=n;if(!n){c[d+136>>2]=h>>>28&7;h=h<<4;i=i+1|0}else h=h<<1;if((wa(a,(i*3|0)+8|0)|0)==-1)break;c[q+8>>2]=2;c[q+12>>2]=h;break d}while(0);c[q+12>>2]=h;h=1;n=96;break c}while(0);n=(ya(a,q+12|0)|0)!=0;h=c[q+12>>2]|0;if(n|h>>>0>3){h=1;n=96}else{c[d+140>>2]=h;h=0;n=96}}else{if(m>>>0<4){if(g>>>0>1){switch(m|0){case 0:case 1:{h=0;break}case 3:case 2:{h=1;break}default:h=3}f=0;while(1){if(Ba(a,q+12|0,g>>>0>2&1)|0){h=1;n=96;break c}i=c[q+12>>2]|0;if(i>>>0>=g>>>0){h=1;n=96;break c}c[d+144+(f<<2)>>2]=i;if(!h)break;else{h=h+-1|0;f=f+1|0}}}switch(m|0){case 0:case 1:{h=0;break}case 3:case 2:{h=1;break}default:h=3}f=0;while(1){i=za(a,q+8|0)|0;if(i|0){h=i;n=96;break c}b[d+160+(f<<2)>>1]=c[q+8>>2];i=za(a,q+8|0)|0;if(i|0){h=i;n=96;break c}b[d+160+(f<<2)+2>>1]=c[q+8>>2];if(!h){h=0;n=96;break c}else{h=h+-1|0;f=f+1|0}}}f=(ya(a,q+12|0)|0)!=0;h=c[q+12>>2]|0;e:do if(((!(f|h>>>0>3)?(c[d+176>>2]=h,f=(ya(a,q+12|0)|0)!=0,l=c[q+12>>2]|0,!(f|l>>>0>3)):0)?(c[d+180>>2]=l,l=(ya(a,q+12|0)|0)!=0,j=c[q+12>>2]|0,!(l|j>>>0>3)):0)?(c[d+184>>2]=j,l=(ya(a,q+12|0)|0)!=0,k=c[q+12>>2]|0,!(l|k>>>0>3)):0){c[d+188>>2]=k;if(g>>>0>1&(m|0)!=5){if(Ba(a,q+12|0,g>>>0>2&1)|0){h=1;break}h=c[q+12>>2]|0;if(h>>>0>=g>>>0){h=1;break}c[d+192>>2]=h;if(Ba(a,q+12|0,g>>>0>2&1)|0){h=1;break}h=c[q+12>>2]|0;if(h>>>0>=g>>>0){h=1;break}c[d+196>>2]=h;if(Ba(a,q+12|0,g>>>0>2&1)|0){h=1;break}h=c[q+12>>2]|0;if(h>>>0>=g>>>0){h=1;break}c[d+200>>2]=h;if(Ba(a,q+12|0,g>>>0>2&1)|0){h=1;break}h=c[q+12>>2]|0;if(h>>>0>=g>>>0){h=1;break}c[d+204>>2]=h}h=c[d+176>>2]|0;switch(h|0){case 0:break;case 2:case 1:{h=1;break}default:h=3}c[q+12>>2]=h;i=0;while(1){h=za(a,q+8|0)|0;if(h|0)break e;b[d+208+(i<<2)>>1]=c[q+8>>2];h=za(a,q+8|0)|0;if(h|0)break e;b[d+208+(i<<2)+2>>1]=c[q+8>>2];g=c[q+12>>2]|0;c[q+12>>2]=g+-1;if(!g)break;else i=i+1|0}h=c[d+180>>2]|0;switch(h|0){case 0:break;case 2:case 1:{h=1;break}default:h=3}c[q+12>>2]=h;i=0;while(1){h=za(a,q+8|0)|0;if(h|0)break e;b[d+224+(i<<2)>>1]=c[q+8>>2];h=za(a,q+8|0)|0;if(h|0)break e;b[d+224+(i<<2)+2>>1]=c[q+8>>2];g=c[q+12>>2]|0;c[q+12>>2]=g+-1;if(!g)break;else i=i+1|0}h=c[d+184>>2]|0;switch(h|0){case 0:break;case 2:case 1:{h=1;break}default:h=3}c[q+12>>2]=h;i=0;while(1){h=za(a,q+8|0)|0;if(h|0)break e;b[d+240+(i<<2)>>1]=c[q+8>>2];h=za(a,q+8|0)|0;if(h|0)break e;b[d+240+(i<<2)+2>>1]=c[q+8>>2];g=c[q+12>>2]|0;c[q+12>>2]=g+-1;if(!g)break;else i=i+1|0}h=c[d+188>>2]|0;switch(h|0){case 0:break;case 2:case 1:{h=1;break}default:h=3}c[q+12>>2]=h;i=0;while(1){h=za(a,q+8|0)|0;if(h|0)break e;b[d+256+(i<<2)>>1]=c[q+8>>2];h=za(a,q+8|0)|0;if(h|0)break e;b[d+256+(i<<2)+2>>1]=c[q+8>>2];g=c[q+12>>2]|0;c[q+12>>2]=g+-1;if(!g){h=0;break}else i=i+1|0}}else h=1;while(0)}while(0);if(h|0){a=h;H=q;return a|0}do if((o|0)!=1){h=Aa(a,q+4|0,(o|0)==0&1)|0;if(!h){o=c[q+4>>2]|0;c[d+4>>2]=o;if(!o)break b;else break}else{a=h;H=q;return a|0}}else{o=c[p>>2]|0;c[d+4>>2]=((o+-7|0)>>>0>11?((o+-7|0)>>>2<<4)+-48|0:(o+-7|0)>>>2<<4)|(o>>>0>18?15:0)}while(0);o=(za(a,q)|0)!=0;h=c[q>>2]|0;if(o|(h+26|0)>>>0>51){a=1;H=q;return a|0}c[d+8>>2]=h;i=c[d+4>>2]|0;f:do if((c[p>>2]|0)>>>0>6){h=Ca(a,d+1864|0,na(e,0,d+272|0)|0,16)|0;if(!(h&15)){b[d+320>>1]=h>>>4&255;j=0;h=i;k=3;while(1){i=h>>>1;if(h&1|0){h=Ca(a,d+328+(j<<6)+4|0,na(e,j,d+272|0)|0,15)|0;c[d+1992+(j<<2)>>2]=h>>>15;if(h&15|0)break f;b[d+272+(j<<1)>>1]=h>>>4&255;f=j|1;h=Ca(a,d+328+(f<<6)+4|0,na(e,f,d+272|0)|0,15)|0;c[d+1992+(f<<2)>>2]=h>>>15;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255;f=j|2;h=Ca(a,d+328+(f<<6)+4|0,na(e,f,d+272|0)|0,15)|0;c[d+1992+(f<<2)>>2]=h>>>15;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255;f=j|3;h=Ca(a,d+328+(f<<6)+4|0,na(e,f,d+272|0)|0,15)|0;c[d+1992+(f<<2)>>2]=h>>>15;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255}h=j+4|0;if(!k){f=h;n=115;break}else{j=h;h=i;k=k+-1|0}}}}else{j=0;h=i;k=3;while(1){i=h>>>1;if(h&1|0){h=Ca(a,d+328+(j<<6)|0,na(e,j,d+272|0)|0,16)|0;c[d+1992+(j<<2)>>2]=h>>>16;if(h&15|0)break f;b[d+272+(j<<1)>>1]=h>>>4&255;f=j|1;h=Ca(a,d+328+(f<<6)|0,na(e,f,d+272|0)|0,16)|0;c[d+1992+(f<<2)>>2]=h>>>16;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255;f=j|2;h=Ca(a,d+328+(f<<6)|0,na(e,f,d+272|0)|0,16)|0;c[d+1992+(f<<2)>>2]=h>>>16;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255;f=j|3;h=Ca(a,d+328+(f<<6)|0,na(e,f,d+272|0)|0,16)|0;c[d+1992+(f<<2)>>2]=h>>>16;if(h&15|0)break f;b[d+272+(f<<1)>>1]=h>>>4&255}h=j+4|0;if(!k){f=h;n=115;break}else{j=h;h=i;k=k+-1|0}}}while(0);do if((n|0)==115){if(i&3|0){h=Ca(a,d+1928|0,-1,4)|0;if(h&15|0)break;b[d+322>>1]=h>>>4&255;h=Ca(a,d+1944|0,-1,4)|0;if(h&15|0)break;b[d+324>>1]=h>>>4&255}if(i&2){h=Ca(a,d+328+(f<<6)+4|0,na(e,f,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(f<<1)>>1]=h>>>4&255;c[d+1992+(f<<2)>>2]=h>>>15;i=f+1|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+2|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+3|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+4|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+5|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+6|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;i=f+7|0;h=Ca(a,d+328+(i<<6)+4|0,na(e,i,d+272|0)|0,15)|0;if(!(h&15)){b[d+272+(i<<1)>>1]=h>>>4&255;c[d+1992+(i<<2)>>2]=h>>>15;h=0}}}}}}}}}else h=0}while(0);c[a+16>>2]=((c[a+4>>2]|0)-(c[a>>2]|0)<<3)+(c[a+8>>2]|0);if(h|0){a=h;H=q;return a|0}}else{g:do if(!(xa(a)|0)){while(1){if(ua(a,1)|0){h=1;break}if(xa(a)|0)break g}H=q;return h|0}while(0);f=0;i=d+328|0;while(1){h=ua(a,8)|0;c[q+4>>2]=h;if((h|0)==-1){h=1;break}c[i>>2]=h;f=f+1|0;if(f>>>0>=384)break b;else i=i+4|0}H=q;return h|0}while(0);a=0;H=q;return a|0}function na(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=Ga(e)|0;h=Ha(e)|0;g=a[j+4>>0]|0;i=a[h+4>>0]|0;h=(c[h>>2]|0)==4;if((c[j>>2]|0)==4){e=b[f+((g&255)<<1)>>1]|0;if(h){j=e+1+(b[f+((i&255)<<1)>>1]|0)>>1;return j|0}if(!(Ka(d,c[d+204>>2]|0)|0)){j=e;return j|0}j=e+1+(b[(c[d+204>>2]|0)+28+((i&255)<<1)>>1]|0)>>1;return j|0}if(h){e=b[f+((i&255)<<1)>>1]|0;if(!(Ka(d,c[d+200>>2]|0)|0)){j=e;return j|0}j=e+1+(b[(c[d+200>>2]|0)+28+((g&255)<<1)>>1]|0)>>1;return j|0}if(!(Ka(d,c[d+200>>2]|0)|0)){e=0;g=0}else{e=b[(c[d+200>>2]|0)+28+((g&255)<<1)>>1]|0;g=1}if(!(Ka(d,c[d+204>>2]|0)|0)){j=e;return j|0}else{j=b[(c[d+204>>2]|0)+28+((i&255)<<1)>>1]|0;return ((g|0)==0?j:e+1+j>>1)|0}return 0}function oa(a){a=a|0;return (a>>>0<6?2:(a|0)!=6&1)|0}function pa(a){a=a|0;switch(a|0){case 0:case 1:{a=1;break}case 3:case 2:{a=2;break}default:a=4}return a|0}function qa(a){a=a|0;switch(a|0){case 0:{a=1;break}case 2:case 1:{a=2;break}default:a=4}return a|0}function ra(a){a=a|0;return a+1&3|0}function sa(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=c[e>>2]|0;c[d>>2]=q;c[d+196>>2]=(c[d+196>>2]|0)+1;Z(f,i);if((q|0)==31){c[d+20>>2]=0;if((c[d+196>>2]|0)>>>0>1){b[d+28>>1]=16;b[d+30>>1]=16;b[d+32>>1]=16;b[d+34>>1]=16;b[d+36>>1]=16;b[d+38>>1]=16;b[d+40>>1]=16;b[d+42>>1]=16;b[d+44>>1]=16;b[d+46>>1]=16;b[d+48>>1]=16;b[d+50>>1]=16;b[d+52>>1]=16;b[d+54>>1]=16;b[d+56>>1]=16;b[d+58>>1]=16;b[d+60>>1]=16;b[d+62>>1]=16;b[d+64>>1]=16;b[d+66>>1]=16;b[d+68>>1]=16;b[d+70>>1]=16;b[d+72>>1]=16;b[d+74>>1]=16;k=0;return k|0}n=23;m=e+328|0;h=k;l=d+28|0;while(1){b[l>>1]=16;a[h>>0]=c[m>>2];a[h+1>>0]=c[m+4>>2];a[h+2>>0]=c[m+8>>2];a[h+3>>0]=c[m+12>>2];a[h+4>>0]=c[m+16>>2];a[h+5>>0]=c[m+20>>2];a[h+6>>0]=c[m+24>>2];a[h+7>>0]=c[m+28>>2];a[h+8>>0]=c[m+32>>2];a[h+9>>0]=c[m+36>>2];a[h+10>>0]=c[m+40>>2];a[h+11>>0]=c[m+44>>2];a[h+12>>0]=c[m+48>>2];a[h+13>>0]=c[m+52>>2];a[h+14>>0]=c[m+56>>2];a[h+15>>0]=c[m+60>>2];if(!n)break;else{n=n+-1|0;m=m+64|0;h=h+16|0;l=l+2|0}}Eb(f,k);k=0;return k|0}if(q){ec(d+28|0,e+272|0,54);m=c[e+8>>2]|0;l=c[h>>2]|0;do if(m){c[h>>2]=l+m;if((l+m|0)<0){c[h>>2]=l+m+52;l=l+m+52|0;break}if((l+m|0)>51){c[h>>2]=l+m+-52;l=l+m+-52|0}else l=l+m|0}while(0);c[d+20>>2]=l;a:do if((c[d>>2]|0)>>>0>6){if(b[d+76>>1]|0)T(e+1864|0,l);m=e+328|0;h=e+1992|0;n=496;o=15;l=d+28|0;while(1){p=c[e+1864+(c[n>>2]<<2)>>2]|0;n=n+4|0;c[m>>2]=p;if((p|0)==0?(b[l>>1]|0)==0:0)c[m>>2]=16777215;else s=19;if((s|0)==19?(s=0,S(m,c[d+20>>2]|0,1,c[h>>2]|0)|0):0){l=1;break}m=m+64|0;l=l+2|0;h=h+4|0;if(!o){p=m;o=l;break a}else o=o+-1|0}return l|0}else{if(b[d+28>>1]|0){if(S(e+328|0,l,0,c[e+1992>>2]|0)|0){k=1;return k|0}}else c[e+328>>2]=16777215;if(b[d+30>>1]|0){if(S(e+392|0,c[d+20>>2]|0,0,c[e+1996>>2]|0)|0){k=1;return k|0}}else c[e+392>>2]=16777215;if(b[d+32>>1]|0){if(S(e+456|0,c[d+20>>2]|0,0,c[e+2e3>>2]|0)|0){k=1;return k|0}}else c[e+456>>2]=16777215;if(b[d+34>>1]|0){if(S(e+520|0,c[d+20>>2]|0,0,c[e+2004>>2]|0)|0){k=1;return k|0}}else c[e+520>>2]=16777215;if(b[d+36>>1]|0){if(S(e+584|0,c[d+20>>2]|0,0,c[e+2008>>2]|0)|0){k=1;return k|0}}else c[e+584>>2]=16777215;if(b[d+38>>1]|0){if(S(e+648|0,c[d+20>>2]|0,0,c[e+2012>>2]|0)|0){k=1;return k|0}}else c[e+648>>2]=16777215;if(b[d+40>>1]|0){if(S(e+712|0,c[d+20>>2]|0,0,c[e+2016>>2]|0)|0){k=1;return k|0}}else c[e+712>>2]=16777215;if(b[d+42>>1]|0){if(S(e+776|0,c[d+20>>2]|0,0,c[e+2020>>2]|0)|0){k=1;return k|0}}else c[e+776>>2]=16777215;if(b[d+44>>1]|0){if(S(e+840|0,c[d+20>>2]|0,0,c[e+2024>>2]|0)|0){k=1;return k|0}}else c[e+840>>2]=16777215;if(b[d+46>>1]|0){if(S(e+904|0,c[d+20>>2]|0,0,c[e+2028>>2]|0)|0){k=1;return k|0}}else c[e+904>>2]=16777215;if(b[d+48>>1]|0){if(S(e+968|0,c[d+20>>2]|0,0,c[e+2032>>2]|0)|0){k=1;return k|0}}else c[e+968>>2]=16777215;if(b[d+50>>1]|0){if(S(e+1032|0,c[d+20>>2]|0,0,c[e+2036>>2]|0)|0){k=1;return k|0}}else c[e+1032>>2]=16777215;do if(!(b[d+52>>1]|0))c[e+1096>>2]=16777215;else{if(!(S(e+1096|0,c[d+20>>2]|0,0,c[e+2040>>2]|0)|0))break;else l=1;return l|0}while(0);do if(!(b[d+54>>1]|0))c[e+1160>>2]=16777215;else{if(!(S(e+1160|0,c[d+20>>2]|0,0,c[e+2044>>2]|0)|0))break;else l=1;return l|0}while(0);do if(!(b[d+56>>1]|0))c[e+1224>>2]=16777215;else{if(!(S(e+1224|0,c[d+20>>2]|0,0,c[e+2048>>2]|0)|0))break;else l=1;return l|0}while(0);do if(!(b[d+58>>1]|0))c[e+1288>>2]=16777215;else{if(!(S(e+1288|0,c[d+20>>2]|0,0,c[e+2052>>2]|0)|0))break;else l=1;return l|0}while(0);p=e+1352|0;h=e+2056|0;o=d+60|0}while(0);n=(c[d+24>>2]|0)+(c[d+20>>2]|0)|0;n=(n|0)<51?n:51;n=c[224+(((n|0)>0?n:0)<<2)>>2]|0;if((b[d+78>>1]|0)==0?(b[d+80>>1]|0)==0:0)l=e+1928|0;else{U(e+1928|0,n);l=e+1928|0}m=c[l>>2]|0;c[p>>2]=m;if((m|0)==0?(b[o>>1]|0)==0:0)c[p>>2]=16777215;else s=32;if((s|0)==32?S(p,n,1,c[h>>2]|0)|0:0){k=1;return k|0}m=h+4|0;t=c[e+1932>>2]|0;l=p+64|0;c[l>>2]=t;if((t|0)==0?(b[o+2>>1]|0)==0:0)c[l>>2]=16777215;else s=36;if((s|0)==36?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+8|0;t=c[e+1936>>2]|0;l=p+128|0;c[l>>2]=t;if((t|0)==0?(b[o+4>>1]|0)==0:0)c[l>>2]=16777215;else s=40;if((s|0)==40?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+12|0;t=c[e+1940>>2]|0;l=p+192|0;c[l>>2]=t;if((t|0)==0?(b[o+6>>1]|0)==0:0)c[l>>2]=16777215;else s=44;if((s|0)==44?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+16|0;t=c[e+1944>>2]|0;l=p+256|0;c[l>>2]=t;if((t|0)==0?(b[o+8>>1]|0)==0:0)c[l>>2]=16777215;else s=48;if((s|0)==48?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+20|0;t=c[e+1948>>2]|0;l=p+320|0;c[l>>2]=t;if((t|0)==0?(b[o+10>>1]|0)==0:0)c[l>>2]=16777215;else s=52;if((s|0)==52?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+24|0;t=c[e+1952>>2]|0;l=p+384|0;c[l>>2]=t;if((t|0)==0?(b[o+12>>1]|0)==0:0)c[l>>2]=16777215;else s=56;if((s|0)==56?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}m=h+28|0;t=c[e+1956>>2]|0;l=p+448|0;c[l>>2]=t;if((t|0)==0?(b[o+14>>1]|0)==0:0)c[l>>2]=16777215;else s=60;if((s|0)==60?S(l,n,1,c[m>>2]|0)|0:0){t=1;return t|0}if(q>>>0>=6){l=Wa(d,e,f,i,j,k)|0;if(l|0){t=l;return t|0}}else s=110}else{fc(d+28|0,0,54);c[d+20>>2]=c[h>>2];s=110}if((s|0)==110?(r=ab(d,e,g,i,f,k)|0,r|0):0){t=r;return t|0}t=0;return t|0}function ta(a){a=a|0;return a|0}function ua(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=c[a+4>>2]|0;j=c[a+12>>2]<<3;i=c[a+16>>2]|0;if((j-i|0)>31){f=c[a+8>>2]|0;e=(d[g+1>>0]|0)<<16|(d[g>>0]|0)<<24|(d[g+2>>0]|0)<<8|(d[g+3>>0]|0);if(!f)h=a+8|0;else{h=a+8|0;e=(d[g+4>>0]|0)>>>(8-f|0)|e<<f}}else if((j-i|0)>0){f=c[a+8>>2]|0;e=(d[g>>0]|0)<<f+24;if((j-i+-8+f|0)>0){h=j-i+-8+f|0;f=f+24|0;while(1){g=g+1|0;f=f+-8|0;e=(d[g>>0]|0)<<f|e;if((h|0)<=8){h=a+8|0;break}else h=h+-8|0}}else h=a+8|0}else{h=a+8|0;e=0}c[a+16>>2]=i+b;c[h>>2]=i+b&7;if((i+b|0)>>>0>j>>>0){a=-1;return a|0}c[a+4>>2]=(c[a>>2]|0)+((i+b|0)>>>3);a=e>>>(32-b|0);return a|0}function va(a){a=a|0;var b=0,e=0,f=0,g=0;e=c[a+4>>2]|0;b=(c[a+12>>2]<<3)-(c[a+16>>2]|0)|0;if((b|0)>31){a=c[a+8>>2]|0;b=(d[e+1>>0]|0)<<16|(d[e>>0]|0)<<24|(d[e+2>>0]|0)<<8|(d[e+3>>0]|0);if(!a){g=b;return g|0}g=(d[e+4>>0]|0)>>>(8-a|0)|b<<a;return g|0}if((b|0)<=0){g=0;return g|0}f=c[a+8>>2]|0;a=(d[e>>0]|0)<<f+24;if((b+-8+f|0)<=0){g=a;return g|0}g=b+-8+f|0;b=f+24|0;while(1){e=e+1|0;b=b+-8|0;a=(d[e>>0]|0)<<b|a;if((g|0)<=8)break;else g=g+-8|0}return a|0}function wa(a,b){a=a|0;b=b|0;b=(c[a+16>>2]|0)+b|0;c[a+16>>2]=b;c[a+8>>2]=b&7;if(b>>>0>c[a+12>>2]<<3>>>0){a=-1;return a|0}c[a+4>>2]=(c[a>>2]|0)+(b>>>3);a=0;return a|0}function xa(a){a=a|0;return (c[a+8>>2]|0)==0|0}function ya(a,b){a=a|0;b=b|0;var d=0,e=0;d=va(a)|0;if((d|0)<0){wa(a,1)|0;c[b>>2]=0;b=0;return b|0}if(d>>>0>1073741823){if((wa(a,3)|0)==-1){b=1;return b|0}c[b>>2]=(d>>>29&1)+1;b=0;return b|0}if(d>>>0>536870911){if((wa(a,5)|0)==-1){b=1;return b|0}c[b>>2]=(d>>>27&3)+3;b=0;return b|0}if(d>>>0>268435455){if((wa(a,7)|0)==-1){b=1;return b|0}c[b>>2]=(d>>>25&7)+7;b=0;return b|0}e=V(d,28)|0;if((e+4|0)!=32){wa(a,e+5|0)|0;d=ua(a,e+4|0)|0;if((d|0)==-1){b=1;return b|0}c[b>>2]=(1<<e+4)+-1+d;b=0;return b|0}c[b>>2]=0;wa(a,32)|0;if((ua(a,1)|0)!=1){b=1;return b|0}d=va(a)|0;if((wa(a,32)|0)==-1){b=1;return b|0}switch(d|0){case 0:{c[b>>2]=-1;b=0;return b|0}case 1:{c[b>>2]=-1;b=1;return b|0}default:{b=1;return b|0}}return 0}function za(a,b){a=a|0;b=b|0;var d=0,e=0;e=H;H=H+16|0;c[e>>2]=0;d=ya(a,e)|0;a=c[e>>2]|0;if((a|0)==-1)if(!d)a=1;else{c[b>>2]=-2147483648;a=0}else if(!d){c[b>>2]=(a&1|0)==0?0-((a+1|0)>>>1)|0:(a+1|0)>>>1;a=0}else a=1;H=e;return a|0}function Aa(a,b,e){a=a|0;b=b|0;e=e|0;var f=0;f=H;H=H+16|0;if(ya(a,f)|0){b=1;H=f;return b|0}a=c[f>>2]|0;if(a>>>0>47){b=1;H=f;return b|0}c[b>>2]=d[((e|0)==0?560:608)+a>>0];b=0;H=f;return b|0}function Ba(a,b,d){a=a|0;b=b|0;d=d|0;if(d|0){b=ya(a,b)|0;return b|0}d=ua(a,1)|0;c[b>>2]=d;if((d|0)==-1){b=1;return b|0}c[b>>2]=d^1;b=0;return b|0}function Ca(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=H;H=H+128|0;q=va(a)|0;do if(f>>>0<2)if((q|0)>=0){if(q>>>0>201326591){n=e[656+(q>>>26<<1)>>1]|0;J=25;break}if(q>>>0>16777215){n=e[720+(q>>>22<<1)>>1]|0;J=25;break}if(q>>>0>2097151){n=e[816+((q>>>18)+-8<<1)>>1]|0;J=25;break}else{n=e[928+(q>>>16<<1)>>1]|0;J=25;break}}else p=1;else if(f>>>0<4){if((q|0)<0){p=(q&1073741824|0)==0?2082:2;break}if(q>>>0>268435455){n=e[992+(q>>>26<<1)>>1]|0;J=25;break}if(q>>>0>33554431){n=e[1056+(q>>>23<<1)>>1]|0;J=25;break}else{n=e[1120+(q>>>18<<1)>>1]|0;J=25;break}}else{if(f>>>0<8){if(((q>>>26)+-8|0)>>>0<56){n=e[1376+(q>>>26<<1)>>1]|0;J=25;break}n=e[1504+(q>>>22<<1)>>1]|0;J=25;break}if(f>>>0<17){n=e[1760+(q>>>26<<1)>>1]|0;J=25;break}if(q>>>29|0){n=e[1888+(q>>>29<<1)>>1]|0;J=25;break}n=e[1904+(q>>>24<<1)>>1]|0;J=25;break}while(0);if((J|0)==25)if(!n){a=1;H=P;return a|0}else p=n;f=p&31;N=p>>>11;if((N&31)>>>0>g>>>0){a=1;H=P;return a|0}x=p>>>5&63;do if(N&31){if(!x){p=32-f|0;f=q<<f;n=0}else{do if((32-f|0)>>>0<x>>>0)if((wa(a,f)|0)==-1){a=1;H=P;return a|0}else{r=32;f=va(a)|0;break}else{r=32-f|0;f=q<<f}while(0);q=f>>>(32-x|0);f=f<<x;n=0;p=1<<x+-1;do{c[P+64+(n<<2)>>2]=(p&q|0)==0?1:-1;p=p>>>1;n=n+1|0}while((p|0)!=0);p=r-x|0}a:do if(n>>>0<(N&31)>>>0){q=p;u=n;t=(N&31)>>>0>10&x>>>0<3&1;b:while(1){if(q>>>0<16){if((wa(a,32-q|0)|0)==-1){L=1;J=125;break}q=32;s=va(a)|0}else s=f;do if((s|0)>=0)if(s>>>0<=1073741823)if(s>>>0<=536870911)if(s>>>0<=268435455)if(s>>>0<=134217727)if(s>>>0<=67108863)if(s>>>0<=33554431)if(s>>>0<=16777215)if(s>>>0<=8388607)if(s>>>0>4194303){G=9;J=59}else{if(s>>>0>2097151){G=10;J=59;break}if(s>>>0>1048575){G=11;J=59;break}if(s>>>0>524287){G=12;J=59;break}if(s>>>0>262143){G=13;J=59;break}if(s>>>0>131071){n=14;f=s<<15;o=q+-15|0;r=t;p=(t|0)==0?4:t}else{if((s&-65536|0)!=65536){L=1;J=125;break b}n=15;f=s<<16;o=q+-16|0;r=(t|0)==0?1:t;p=12}F=f;A=n<<r;y=r;w=p;v=(r|0)==0;J=60}else{G=8;J=59}else{G=7;J=59}else{G=6;J=59}else{G=5;J=59}else{G=4;J=59}else{G=3;J=59}else{G=2;J=59}else{G=1;J=59}else{G=0;J=59}while(0);if((J|0)==59){J=0;n=G+1|0;p=s<<n;n=q-n|0;f=G<<t;if(!t){D=n;E=p;z=f;B=0;C=1}else{F=p;A=f;o=n;y=t;w=t;v=0;J=60}}if((J|0)==60){J=0;if(o>>>0<w>>>0){if((wa(a,32-o|0)|0)==-1){L=1;J=125;break}f=32;n=va(a)|0}else{f=o;n=F}D=f-w|0;E=n<<w;z=(n>>>(32-w|0))+A|0;B=y;C=v}n=x>>>0<3&(u|0)==(x|0)?z+2|0:z;p=C?1:B;c[P+64+(u<<2)>>2]=(n&1|0)==0?(n+2|0)>>>1:0-((n+2|0)>>>1)|0;u=u+1|0;if(u>>>0>=(N&31)>>>0){m=D;j=E;break a}else{q=D;f=E;t=p+((p>>>0<6?((n+2|0)>>>1|0)>(3<<p+-1|0):0)&1)|0}}if((J|0)==125){H=P;return L|0}}else{m=p;j=f}while(0);if((N&31)>>>0<g>>>0){do if(m>>>0<9)if((wa(a,32-m|0)|0)==-1){a=1;H=P;return a|0}else{m=32;j=va(a)|0;break}while(0);f=j>>>23;c:do if((g|0)==4)if((j|0)>=0)if((N&31|0)!=3)if(j>>>0>1073741823)l=18;else l=(N&31|0)==2?34:j>>>0>536870911?35:51;else l=17;else l=1;else{do switch(N&31){case 1:{if(j>>>0>268435455)l=d[1968+(j>>>27)>>0]|0;else{I=2e3+f|0;J=91}break}case 2:{I=2032+(j>>>26)|0;J=91;break}case 3:{I=2096+(j>>>26)|0;J=91;break}case 4:{I=2160+(j>>>27)|0;J=91;break}case 5:{I=2192+(j>>>27)|0;J=91;break}case 6:{I=2224+(j>>>26)|0;J=91;break}case 7:{I=2288+(j>>>26)|0;J=91;break}case 8:{I=2352+(j>>>26)|0;J=91;break}case 9:{I=2416+(j>>>26)|0;J=91;break}case 10:{I=2480+(j>>>27)|0;J=91;break}case 11:{I=2512+(j>>>28)|0;J=91;break}case 12:{I=2528+(j>>>28)|0;J=91;break}case 13:{I=7268+(j>>>29)|0;J=91;break}case 14:{I=7276+(j>>>30)|0;J=91;break}default:{l=j>>31&16|1;break c}}while(0);if((J|0)==91)l=d[I>>0]|0;if(!l){a=1;H=P;return a|0}}while(0);f=l&15;m=m-f|0;j=j<<f;f=l>>>4&15}else f=0;if(!((N&31)+-1|0)){c[b+(f<<2)>>2]=c[P+64+((N&31)+-1<<2)>>2];M=m;h=1<<f;break}l=m;m=0;d:while(1){if(!f){c[P+(m<<2)>>2]=1;O=l;i=0}else{if(l>>>0<11){if((wa(a,32-l|0)|0)==-1){L=1;J=125;break}l=32;j=va(a)|0}switch(f|0){case 1:{K=7280+(j>>>31)|0;J=117;break}case 2:{K=7282+(j>>>30)|0;J=117;break}case 3:{K=7286+(j>>>30)|0;J=117;break}case 4:{K=7290+(j>>>29)|0;J=117;break}case 5:{K=7298+(j>>>29)|0;J=117;break}case 6:{K=7306+(j>>>29)|0;J=117;break}default:{if(j>>>0<=536870911)if(j>>>0<=268435455)if(j>>>0<=134217727)if(j>>>0<=67108863)if(j>>>0<=33554431)if(j>>>0>16777215)k=184;else k=j>>>0>8388607?201:j>>>0>4194303?218:j>>>0<2097152?0:235;else k=167;else k=150;else k=133;else k=116;else k=112-(j>>>29<<4)|3;if((k>>>4&15)>>>0>f>>>0){L=1;J=125;break d}}}if((J|0)==117){J=0;k=d[K>>0]|0}if(!k){L=1;J=125;break}g=k&15;i=k>>>4&15;c[P+(m<<2)>>2]=i+1;O=l-g|0;j=j<<g;i=f-i|0}m=m+1|0;if(m>>>0>=((N&31)+-1|0)>>>0){J=122;break}else{l=O;f=i}}if((J|0)==122){c[b+(i<<2)>>2]=c[P+64+((N&31)+-1<<2)>>2];j=(N&31)+-2|0;h=1<<i;while(1){i=(c[P+(j<<2)>>2]|0)+i|0;h=1<<i|h;c[b+(i<<2)>>2]=c[P+64+(j<<2)>>2];if(!j){M=O;break}else j=j+-1|0}}else if((J|0)==125){H=P;return L|0}}else{M=32-f|0;h=0}while(0);a=(wa(a,32-M|0)|0)==0;a=a?h<<16|(N&31)<<4:1;H=P;return a|0}function Da(a,b){a=a|0;b=b|0;if((ua(a,1)|0)==-1){b=1;return b|0}c[b+4>>2]=ua(a,2)|0;a=ua(a,5)|0;c[b>>2]=a;if((a+-2|0)>>>0<3){b=1;return b|0}switch(a|0){case 5:case 7:case 8:{if((a|0)==6|(c[b+4>>2]|0)==0){b=1;return b|0}break}case 6:case 9:case 10:case 11:case 12:{if(c[b+4>>2]|0){b=1;return b|0}break}default:{}}b=0;return b|0}function Ea(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!d)return;i=0;j=0;k=0;while(1){g=(i|0)!=0;f=a+(j*216|0)|0;c[a+(j*216|0)+200>>2]=g?f+-216|0:0;h=(k|0)!=0;if(h){c[a+(j*216|0)+204>>2]=f+((0-b|0)*216|0);e=i>>>0<(b+-1|0)>>>0?f+((1-b|0)*216|0)|0:0}else{c[a+(j*216|0)+204>>2]=0;e=0}c[a+(j*216|0)+208>>2]=e;c[a+(j*216|0)+212>>2]=h&g?f+(~b*216|0)|0:0;e=i+1|0;j=j+1|0;if((j|0)==(d|0))break;else{i=(e|0)==(b|0)?0:e;k=k+((e|0)==(b|0)&1)|0}}return}function Fa(a,b){a=a|0;b=b|0;switch(b|0){case 0:{a=c[a+200>>2]|0;break}case 1:{a=c[a+204>>2]|0;break}case 2:{a=c[a+208>>2]|0;break}case 3:{a=c[a+212>>2]|0;break}case 4:break;default:a=0}return a|0}function Ga(a){a=a|0;return 2544+(a<<3)|0}function Ha(a){a=a|0;return 2736+(a<<3)|0}function Ia(a){a=a|0;return 2928+(a<<3)|0}function Ja(a){a=a|0;return 3120+(a<<3)|0}function Ka(a,b){a=a|0;b=b|0;if(!b)return 0;else return (c[a+4>>2]|0)==(c[b+4>>2]|0)|0;return 0}function La(a){a=a|0;fc(a,0,3388);c[a+8>>2]=32;c[a+4>>2]=256;c[a+1332>>2]=1;return}function Ma(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+8>>2]|0;e=c[a+20+(d<<2)>>2]|0;do if(!e){e=cc(92)|0;c[a+20+(d<<2)>>2]=e;if(!e){a=65535;return a|0}}else{if((d|0)!=(c[a+8>>2]|0)){dc(c[e+40>>2]|0);c[(c[a+20+(d<<2)>>2]|0)+40>>2]=0;dc(c[(c[a+20+(d<<2)>>2]|0)+84>>2]|0);c[(c[a+20+(d<<2)>>2]|0)+84>>2]=0;break}if(aa(b,c[a+16>>2]|0)|0){dc(c[(c[a+20+(d<<2)>>2]|0)+40>>2]|0);c[(c[a+20+(d<<2)>>2]|0)+40>>2]=0;dc(c[(c[a+20+(d<<2)>>2]|0)+84>>2]|0);c[(c[a+20+(d<<2)>>2]|0)+84>>2]=0;c[a+8>>2]=33;c[a+4>>2]=257;c[a+16>>2]=0;c[a+12>>2]=0;break}dc(c[b+40>>2]|0);c[b+40>>2]=0;dc(c[b+84>>2]|0);c[b+84>>2]=0;a=0;return a|0}while(0);e=c[a+20+(d<<2)>>2]|0;d=e+92|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));a=0;return a|0}function Na(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b>>2]|0;e=c[a+148+(d<<2)>>2]|0;if(!e){e=cc(72)|0;c[a+148+(d<<2)>>2]=e;if(!e){a=65535;return a|0}}else{if((d|0)==(c[a+4>>2]|0)){if((c[b+4>>2]|0)!=(c[a+8>>2]|0))c[a+4>>2]=257;dc(c[e+20>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+20>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+24>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+24>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+28>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+28>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+44>>2]|0)}else{dc(c[e+20>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+20>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+24>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+24>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+28>>2]|0);c[(c[a+148+(d<<2)>>2]|0)+28>>2]=0;dc(c[(c[a+148+(d<<2)>>2]|0)+44>>2]|0)}c[(c[a+148+(d<<2)>>2]|0)+44>>2]=0}e=c[a+148+(d<<2)>>2]|0;d=e+72|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));a=0;return a|0}function Oa(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=c[a+148+(b<<2)>>2]|0;if(!m){a=1;return a|0}n=c[m+4>>2]|0;e=c[a+20+(n<<2)>>2]|0;if(!e){a=1;return a|0}j=c[e+52>>2]|0;l=p(c[e+56>>2]|0,j)|0;k=c[m+12>>2]|0;a:do if(k>>>0>1){e=c[m+16>>2]|0;switch(e|0){case 0:{e=c[m+20>>2]|0;f=0;while(1){if((c[e+(f<<2)>>2]|0)>>>0>l>>>0){e=1;break}f=f+1|0;if(f>>>0>=k>>>0)break a}return e|0}case 2:{g=c[m+24>>2]|0;h=c[m+28>>2]|0;i=0;while(1){e=c[g+(i<<2)>>2]|0;f=c[h+(i<<2)>>2]|0;if(!(e>>>0<=f>>>0&f>>>0<l>>>0)){e=1;f=33;break}i=i+1|0;if(((e>>>0)%(j>>>0)|0)>>>0>((f>>>0)%(j>>>0)|0)>>>0){e=1;f=33;break}if(i>>>0>=(k+-1|0)>>>0)break a}if((f|0)==33)return e|0;break}default:{if((e+-3|0)>>>0<3){if((c[m+36>>2]|0)>>>0>l>>>0)e=1;else break a;return e|0}if((e|0)!=6)break a;if((c[m+40>>2]|0)>>>0<l>>>0)e=1;else break a;return e|0}}}while(0);e=c[a+4>>2]|0;do if((e|0)!=256){if(!(c[a+3380>>2]|0)){if((e|0)==(b|0))break;if((n|0)==(c[a+8>>2]|0)){c[a+4>>2]=b;c[a+12>>2]=m;break}if(!d){a=1;return a|0}else{c[a+4>>2]=b;c[a+12>>2]=m;c[a+8>>2]=n;o=c[a+20+(n<<2)>>2]|0;c[a+16>>2]=o;b=c[o+52>>2]|0;o=c[o+56>>2]|0;c[a+1176>>2]=p(o,b)|0;c[a+1340>>2]=b;c[a+1344>>2]=o;c[a+3380>>2]=1;break}}c[a+3380>>2]=0;dc(c[a+1212>>2]|0);c[a+1212>>2]=0;dc(c[a+1172>>2]|0);c[a+1172>>2]=0;c[a+1212>>2]=cc((c[a+1176>>2]|0)*216|0)|0;b=cc(c[a+1176>>2]<<2)|0;c[a+1172>>2]=b;e=c[a+1212>>2]|0;if((b|0)==0|(e|0)==0){a=65535;return a|0}fc(e,0,(c[a+1176>>2]|0)*216|0);Ea(c[a+1212>>2]|0,c[(c[a+16>>2]|0)+52>>2]|0,c[a+1176>>2]|0);f=c[a+16>>2]|0;do if((c[a+1216>>2]|0)==0?(c[f+16>>2]|0)!=2:0){if((c[f+80>>2]|0?(o=c[f+84>>2]|0,c[o+920>>2]|0):0)?(c[o+944>>2]|0)==0:0){e=1;break}e=0}else e=1;while(0);o=p(c[f+56>>2]|0,c[f+52>>2]|0)|0;e=yb(a+1220|0,o,c[f+88>>2]|0,c[f+44>>2]|0,c[f+12>>2]|0,e)|0;if(e|0){a=e;return a|0}}else{c[a+4>>2]=b;c[a+12>>2]=m;c[a+8>>2]=n;o=c[a+20+(n<<2)>>2]|0;c[a+16>>2]=o;b=c[o+52>>2]|0;o=c[o+56>>2]|0;c[a+1176>>2]=p(o,b)|0;c[a+1340>>2]=b;c[a+1344>>2]=o;c[a+3380>>2]=1}while(0);a=0;return a|0}function Pa(a){a=a|0;var b=0,d=0;c[a+1196>>2]=0;c[a+1192>>2]=0;d=c[a+1176>>2]|0;if(!d)return;a=c[a+1212>>2]|0;b=0;do{c[a+(b*216|0)+4>>2]=0;c[a+(b*216|0)+196>>2]=0;b=b+1|0}while(b>>>0<d>>>0);return}function Qa(a){a=a|0;return (c[a+1188>>2]|0)==0|0}function Ra(a){a=a|0;var b=0,d=0,e=0;if(!(c[a+1404>>2]|0)){if((c[a+1196>>2]|0)==(c[a+1176>>2]|0)){e=1;return e|0}}else{e=c[a+1176>>2]|0;if(!e){e=1;return e|0}a=c[a+1212>>2]|0;b=0;d=0;do{d=d+((c[a+(b*216|0)+196>>2]|0)!=0&1)|0;b=b+1|0}while(b>>>0<e>>>0);if((d|0)==(e|0)){e=1;return e|0}}e=0;return e|0}function Sa(a,b){a=a|0;b=b|0;var d=0;d=c[a+16>>2]|0;Va(c[a+1172>>2]|0,c[a+12>>2]|0,b,c[d+52>>2]|0,c[d+56>>2]|0);return}function Ta(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=H;H=H+32|0;c[e>>2]=0;switch(c[b>>2]|0){case 6:case 7:case 8:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 17:case 18:{c[e>>2]=1;d=0;H=k;return d|0}case 5:case 1:{if(c[d+1332>>2]|0){c[e>>2]=1;c[d+1332>>2]=0}f=da(a,k+24|0)|0;if(f|0){d=f;H=k;return d|0}i=c[d+148+(c[k+24>>2]<<2)>>2]|0;if(!i){d=65520;H=k;return d|0}f=c[i+4>>2]|0;h=c[d+20+(f<<2)>>2]|0;if(!h){d=65520;H=k;return d|0}l=c[d+8>>2]|0;if(!((l|0)==32|(f|0)==(l|0))?(c[b>>2]|0)!=5:0){l=65520;H=k;return l|0}f=c[d+1304>>2]|0;l=c[b+4>>2]|0;if((f|0)!=(l|0)?(f|0)==0|(l|0)==0:0)c[e>>2]=1;f=(c[b>>2]|0)==5;if((c[d+1300>>2]|0)==5){if(!f)g=16}else if(f)g=16;if((g|0)==16)c[e>>2]=1;if(ea(a,c[h+12>>2]|0,k+20|0)|0){l=1;H=k;return l|0}f=c[k+20>>2]|0;if((c[d+1308>>2]|0)!=(f|0)){c[d+1308>>2]=f;c[e>>2]=1}if((c[b>>2]|0)==5){if(fa(a,c[h+12>>2]|0,5,k+16|0)|0){l=1;H=k;return l|0}if((c[d+1300>>2]|0)==5){f=c[d+1312>>2]|0;g=c[k+16>>2]|0;if((f|0)==(g|0))g=d+1312|0;else{c[e>>2]=1;f=g;g=d+1312|0}}else{f=c[k+16>>2]|0;g=d+1312|0}c[g>>2]=f}switch(c[h+16>>2]|0){case 0:{if(ga(a,h,c[b>>2]|0,k+12|0)|0){l=1;H=k;return l|0}f=c[k+12>>2]|0;if((c[d+1316>>2]|0)!=(f|0)){c[d+1316>>2]=f;c[e>>2]=1}if(c[i+8>>2]|0){f=ha(a,h,c[b>>2]|0,k+8|0)|0;if(f|0){l=f;H=k;return l|0}f=c[k+8>>2]|0;if((c[d+1320>>2]|0)!=(f|0)){c[d+1320>>2]=f;c[e>>2]=1}}break}case 1:{if(!(c[h+24>>2]|0)){f=ia(a,h,c[b>>2]|0,c[i+8>>2]|0,k)|0;if(f|0){l=f;H=k;return l|0}f=c[k>>2]|0;if((c[d+1324>>2]|0)!=(f|0)){c[d+1324>>2]=f;c[e>>2]=1}if(c[i+8>>2]|0?(j=c[k+4>>2]|0,(c[d+1328>>2]|0)!=(j|0)):0){c[d+1328>>2]=j;c[e>>2]=1}}break}default:{}}l=c[b+4>>2]|0;c[d+1300>>2]=c[b>>2];c[d+1300+4>>2]=l;l=0;H=k;return l|0}default:{l=0;H=k;return l|0}}return 0}function Ua(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=0;a:while(1){d=c[a+148+(k<<2)>>2]|0;b:do if(d|0?(i=c[a+20+(c[d+4>>2]<<2)>>2]|0,i|0):0){h=c[i+52>>2]|0;l=p(c[i+56>>2]|0,h)|0;j=c[d+12>>2]|0;if(j>>>0<=1){b=0;d=18;break a}b=c[d+16>>2]|0;switch(b|0){case 0:{b=c[d+20>>2]|0;d=0;while(1){if((c[b+(d<<2)>>2]|0)>>>0>l>>>0)break b;d=d+1|0;if(d>>>0>=j>>>0){b=0;d=18;break a}}}case 2:{g=c[d+24>>2]|0;d=c[d+28>>2]|0;f=0;while(1){e=c[g+(f<<2)>>2]|0;b=c[d+(f<<2)>>2]|0;if(!(e>>>0<=b>>>0&b>>>0<l>>>0))break b;f=f+1|0;if(((e>>>0)%(h>>>0)|0)>>>0>((b>>>0)%(h>>>0)|0)>>>0)break b;if(f>>>0>=(j+-1|0)>>>0){b=0;d=18;break a}}}default:{if((b+-3|0)>>>0<3)if((c[d+36>>2]|0)>>>0>l>>>0)break b;else{b=0;d=18;break a}if((b|0)!=6){b=0;d=18;break a}if((c[d+40>>2]|0)>>>0<l>>>0)break b;else{b=0;d=18;break a}}}}while(0);k=k+1|0;if(k>>>0>=256){b=1;d=18;break}}if((d|0)==18)return b|0;return 0}function Va(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0;o=p(f,e)|0;n=c[b+12>>2]|0;if((n|0)==1){fc(a,0,o<<2);return}g=c[b+16>>2]|0;if((g+-3|0)>>>0<3){d=p(c[b+36>>2]|0,d)|0;d=d>>>0<o>>>0?d:o;if((g&-2|0)==4){j=(c[b+32>>2]|0)==0?d:o-d|0;h=6}else r=d}else{j=0;d=0;h=6}a:do if((h|0)==6)switch(g|0){case 3:{r=d;break a}case 0:{j=c[b+20>>2]|0;if(!n){if(!o)return;while(1){}}d=0;while(1){if(d>>>0>=o>>>0){h=66;break}k=0;do{i=j+(k<<2)|0;g=c[i>>2]|0;b:do if(!g)g=0;else{b=0;do{h=b+d|0;if(h>>>0>=o>>>0)break b;c[a+(h<<2)>>2]=k;b=b+1|0;g=c[i>>2]|0}while(b>>>0<g>>>0)}while(0);k=k+1|0;d=g+d|0;g=d>>>0<o>>>0}while(k>>>0<n>>>0&g);if(!g){h=66;break}}if((h|0)==66)return;break}case 1:{if(!o)return;d=0;do{f=(d>>>0)/(e>>>0)|0;c[a+(d<<2)>>2]=((((p(f,n)|0)>>>1)+(d-(p(f,e)|0))|0)>>>0)%(n>>>0)|0;d=d+1|0}while((d|0)!=(o|0));return}case 2:{m=c[b+24>>2]|0;l=c[b+28>>2]|0;if(o|0){d=0;do{c[a+(d<<2)>>2]=n+-1;d=d+1|0}while((d|0)!=(o|0));if(!(n+-1|0))return}k=n+-2|0;while(1){d=c[m+(k<<2)>>2]|0;b=d-(p((d>>>0)/(e>>>0)|0,e)|0)|0;j=c[l+(k<<2)>>2]|0;i=j-(p((j>>>0)/(e>>>0)|0,e)|0)|0;c:do if(((d>>>0)/(e>>>0)|0)>>>0<=((j>>>0)/(e>>>0)|0)>>>0){if(b>>>0>i>>>0){d=(d>>>0)/(e>>>0)|0;while(1){d=d+1|0;if(d>>>0>((j>>>0)/(e>>>0)|0)>>>0)break c}}h=(d>>>0)/(e>>>0)|0;do{d=p(h,e)|0;g=b;do{c[a+(g+d<<2)>>2]=k;g=g+1|0}while(g>>>0<=i>>>0);h=h+1|0}while(h>>>0<=((j>>>0)/(e>>>0)|0)>>>0)}while(0);if(!k)break;else k=k+-1|0}return}case 4:{d=c[b+32>>2]|0;if(!o)return;g=0;do{c[a+(g<<2)>>2]=g>>>0<j>>>0?d:1-d|0;g=g+1|0}while((g|0)!=(o|0));return}case 5:{d=c[b+32>>2]|0;if(!e)return;if(!f)return;h=0;b=0;while(1){g=0;i=b;while(1){r=a+((p(g,e)|0)+h<<2)|0;c[r>>2]=i>>>0<j>>>0?d:1-d|0;g=g+1|0;if((g|0)==(f|0))break;else i=i+1|0}h=h+1|0;if((h|0)==(e|0))break;else b=b+f|0}return}default:{if(!o)return;d=c[b+44>>2]|0;g=0;do{c[a+(g<<2)>>2]=c[d+(g<<2)>>2];g=g+1|0}while((g|0)!=(o|0));return}}while(0);q=c[b+32>>2]|0;if(o|0){d=0;do{c[a+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=(o|0))}if(!r)return;m=(f-q|0)>>>1;o=0;g=(e-q|0)>>>1;h=(e-q|0)>>>1;b=(f-q|0)>>>1;i=(e-q|0)>>>1;j=q+-1|0;k=(f-q|0)>>>1;l=q;while(1){d=a+((p(k,e)|0)+i<<2)|0;n=(c[d>>2]|0)==1;if(n)c[d>>2]=0;do if(!((j|0)==-1&(i|0)==(g|0))){if((j|0)==1&(i|0)==(h|0)){i=h+1|0;i=(i|0)<(e+-1|0)?i:e+-1|0;d=m;h=i;j=0;l=1-(q<<1)|0;break}if((l|0)==-1&(k|0)==(b|0)){k=b+-1|0;k=(k|0)>0?k:0;d=m;b=k;j=1-(q<<1)|0;l=0;break}if((l|0)==1&(k|0)==(m|0)){k=m+1|0;k=(k|0)<(f+-1|0)?k:f+-1|0;d=k;j=(q<<1)+-1|0;l=0;break}else{d=m;i=i+j|0;k=k+l|0;break}}else{i=g+-1|0;i=(i|0)>0?i:0;d=m;g=i;j=0;l=(q<<1)+-1|0}while(0);o=o+(n&1)|0;if(o>>>0>=r>>>0)break;else m=d}return}function Wa(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=H;H=H+80|0;Xa(d,h+32|0,h,e);if((oa(c[a>>2]|0)|0)==1){e=Ya(a,g,b+328|0,h+32|0,h,f)|0;if(e|0){a=e;H=h;return a|0}}else{e=Za(a,g,b,h+32|0,h,f)|0;if(e|0){a=e;H=h;return a|0}}e=_a(a,g+256|0,b+1352|0,h+32+21|0,h+16|0,c[b+140>>2]|0,f)|0;if(e|0){a=e;H=h;return a|0}if((c[a+196>>2]|0)>>>0>1){a=0;H=h;return a|0}Eb(d,g);a=0;H=h;return a|0}function Xa(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(!f)return;i=c[b+4>>2]|0;j=p(c[b+8>>2]|0,i)|0;k=f-(p((f>>>0)/(i>>>0)|0,i)|0)|0;g=(c[b>>2]|0)+(p(i<<8,(f>>>0)/(i>>>0)|0)|0)+(k<<4)|0;if(i>>>0<=f>>>0){a[d>>0]=a[g+(0-(i<<4|1))>>0]|0;l=g+(0-(i<<4|1))+1+1|0;a[d+1>>0]=a[g+(0-(i<<4|1))+1>>0]|0;a[d+2>>0]=a[l>>0]|0;a[d+3>>0]=a[l+1>>0]|0;a[d+4>>0]=a[l+1+1>>0]|0;a[d+5>>0]=a[l+1+1+1>>0]|0;h=l+1+1+1+1+1|0;a[d+6>>0]=a[l+1+1+1+1>>0]|0;a[d+7>>0]=a[h>>0]|0;a[d+8>>0]=a[h+1>>0]|0;a[d+9>>0]=a[h+1+1>>0]|0;a[d+10>>0]=a[h+1+1+1>>0]|0;l=h+1+1+1+1+1|0;a[d+11>>0]=a[h+1+1+1+1>>0]|0;a[d+12>>0]=a[l>>0]|0;a[d+13>>0]=a[l+1>>0]|0;a[d+14>>0]=a[l+1+1>>0]|0;a[d+15>>0]=a[l+1+1+1>>0]|0;h=l+1+1+1+1+1|0;a[d+16>>0]=a[l+1+1+1+1>>0]|0;a[d+17>>0]=a[h>>0]|0;a[d+18>>0]=a[h+1>>0]|0;a[d+19>>0]=a[h+1+1>>0]|0;a[d+20>>0]=a[h+1+1+1>>0]|0;h=d+21|0}else h=d;if(k|0){a[e>>0]=a[g+-1>>0]|0;a[e+1>>0]=a[g+-1+(i<<4)>>0]|0;l=g+-1+(i<<4)+(i<<4)|0;a[e+2>>0]=a[l>>0]|0;a[e+3>>0]=a[l+(i<<4)>>0]|0;a[e+4>>0]=a[l+(i<<4)+(i<<4)>>0]|0;l=l+(i<<4)+(i<<4)+(i<<4)|0;a[e+5>>0]=a[l>>0]|0;a[e+6>>0]=a[l+(i<<4)>>0]|0;a[e+7>>0]=a[l+(i<<4)+(i<<4)>>0]|0;l=l+(i<<4)+(i<<4)+(i<<4)|0;a[e+8>>0]=a[l>>0]|0;a[e+9>>0]=a[l+(i<<4)>>0]|0;a[e+10>>0]=a[l+(i<<4)+(i<<4)>>0]|0;l=l+(i<<4)+(i<<4)+(i<<4)|0;a[e+11>>0]=a[l>>0]|0;a[e+12>>0]=a[l+(i<<4)>>0]|0;a[e+13>>0]=a[l+(i<<4)+(i<<4)>>0]|0;l=l+(i<<4)+(i<<4)+(i<<4)|0;a[e+14>>0]=a[l>>0]|0;a[e+15>>0]=a[l+(i<<4)>>0]|0;e=e+16|0}d=(c[b>>2]|0)+(j<<8)+(p(((f>>>0)/(i>>>0)|0)<<3,i<<3&2147483640)|0)+(k<<3)|0;if(i>>>0<=f>>>0){f=d+(0-(i<<3&2147483640|1))+1|0;a[h>>0]=a[d+(0-(i<<3&2147483640|1))>>0]|0;a[h+1>>0]=a[f>>0]|0;a[h+2>>0]=a[f+1>>0]|0;a[h+3>>0]=a[f+1+1>>0]|0;a[h+4>>0]=a[f+1+1+1>>0]|0;l=f+1+1+1+1+1|0;a[h+5>>0]=a[f+1+1+1+1>>0]|0;a[h+6>>0]=a[l>>0]|0;a[h+7>>0]=a[l+1>>0]|0;a[h+8>>0]=a[l+1+1>>0]|0;f=l+1+1+1+((j<<6)+-9)+1|0;a[h+9>>0]=a[l+1+1+1+((j<<6)+-9)>>0]|0;a[h+10>>0]=a[f>>0]|0;a[h+11>>0]=a[f+1>>0]|0;a[h+12>>0]=a[f+1+1>>0]|0;a[h+13>>0]=a[f+1+1+1>>0]|0;l=f+1+1+1+1+1|0;a[h+14>>0]=a[f+1+1+1+1>>0]|0;a[h+15>>0]=a[l>>0]|0;a[h+16>>0]=a[l+1>>0]|0;a[h+17>>0]=a[l+1+1>>0]|0}if(!k)return;a[e>>0]=a[d+-1>>0]|0;a[e+1>>0]=a[d+-1+(i<<3&2147483640)>>0]|0;l=d+-1+(i<<3&2147483640)+(i<<3&2147483640)|0;a[e+2>>0]=a[l>>0]|0;a[e+3>>0]=a[l+(i<<3&2147483640)>>0]|0;a[e+4>>0]=a[l+(i<<3&2147483640)+(i<<3&2147483640)>>0]|0;l=l+(i<<3&2147483640)+(i<<3&2147483640)+(i<<3&2147483640)|0;a[e+5>>0]=a[l>>0]|0;a[e+6>>0]=a[l+(i<<3&2147483640)>>0]|0;a[e+7>>0]=a[l+(i<<3&2147483640)+(i<<3&2147483640)>>0]|0;l=l+(i<<3&2147483640)+(i<<3&2147483640)+(i<<3&2147483640)+(j-i<<6)|0;a[e+8>>0]=a[l>>0]|0;a[e+9>>0]=a[l+(i<<3&2147483640)>>0]|0;a[e+10>>0]=a[l+(i<<3&2147483640)+(i<<3&2147483640)>>0]|0;l=l+(i<<3&2147483640)+(i<<3&2147483640)+(i<<3&2147483640)|0;a[e+11>>0]=a[l>>0]|0;a[e+12>>0]=a[l+(i<<3&2147483640)>>0]|0;a[e+13>>0]=a[l+(i<<3&2147483640)+(i<<3&2147483640)>>0]|0;l=l+(i<<3&2147483640)+(i<<3&2147483640)+(i<<3&2147483640)|0;a[e+14>>0]=a[l>>0]|0;a[e+15>>0]=a[l+(i<<3&2147483640)>>0]|0;return}function Ya(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0;j=Ka(b,c[b+200>>2]|0)|0;if((i|0)!=0&(j|0)!=0){q=(oa(c[c[b+200>>2]>>2]|0)|0)==2;j=q?0:j}k=Ka(b,c[b+204>>2]|0)|0;if((i|0)!=0&(k|0)!=0){l=(oa(c[c[b+204>>2]>>2]|0)|0)==2;l=l?0:k}else l=k;k=Ka(b,c[b+212>>2]|0)|0;if((i|0)!=0&(k|0)!=0){q=(oa(c[c[b+212>>2]>>2]|0)|0)==2;k=q?0:k}switch(ra(c[b>>2]|0)|0){case 0:{if(!l){f=1;return f|0}j=e;k=0;while(1){a[j>>0]=a[g+1>>0]|0;a[j+1>>0]=a[g+2>>0]|0;a[j+2>>0]=a[g+3>>0]|0;a[j+3>>0]=a[g+4>>0]|0;a[j+4>>0]=a[g+5>>0]|0;a[j+5>>0]=a[g+6>>0]|0;a[j+6>>0]=a[g+7>>0]|0;a[j+7>>0]=a[g+8>>0]|0;a[j+8>>0]=a[g+9>>0]|0;a[j+9>>0]=a[g+10>>0]|0;a[j+10>>0]=a[g+11>>0]|0;a[j+11>>0]=a[g+12>>0]|0;a[j+12>>0]=a[g+13>>0]|0;a[j+13>>0]=a[g+14>>0]|0;a[j+14>>0]=a[g+15>>0]|0;a[j+15>>0]=a[g+16>>0]|0;k=k+1|0;if((k|0)==16)break;else j=j+16|0}break}case 1:{if(!j){f=1;return f|0}j=e;k=0;while(1){q=h+k|0;a[j>>0]=a[q>>0]|0;a[j+1>>0]=a[q>>0]|0;a[j+2>>0]=a[q>>0]|0;a[j+3>>0]=a[q>>0]|0;a[j+4>>0]=a[q>>0]|0;a[j+5>>0]=a[q>>0]|0;a[j+6>>0]=a[q>>0]|0;a[j+7>>0]=a[q>>0]|0;a[j+8>>0]=a[q>>0]|0;a[j+9>>0]=a[q>>0]|0;a[j+10>>0]=a[q>>0]|0;a[j+11>>0]=a[q>>0]|0;a[j+12>>0]=a[q>>0]|0;a[j+13>>0]=a[q>>0]|0;a[j+14>>0]=a[q>>0]|0;a[j+15>>0]=a[q>>0]|0;k=k+1|0;if((k|0)==16)break;else j=j+16|0}break}case 2:{k=(j|0)!=0;j=(l|0)!=0;do if(!(k&j)){if(k){j=((d[h>>0]|0)+8+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)+(d[h+4>>0]|0)+(d[h+5>>0]|0)+(d[h+6>>0]|0)+(d[h+7>>0]|0)+(d[h+8>>0]|0)+(d[h+9>>0]|0)+(d[h+10>>0]|0)+(d[h+11>>0]|0)+(d[h+12>>0]|0)+(d[h+13>>0]|0)+(d[h+14>>0]|0)+(d[h+15>>0]|0)|0)>>>4;break}if(j)j=((d[g+1>>0]|0)+8+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)+(d[g+5>>0]|0)+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)+(d[g+9>>0]|0)+(d[g+10>>0]|0)+(d[g+11>>0]|0)+(d[g+12>>0]|0)+(d[g+13>>0]|0)+(d[g+14>>0]|0)+(d[g+15>>0]|0)+(d[g+16>>0]|0)|0)>>>4;else j=128}else j=((d[g+1>>0]|0)+16+(d[h>>0]|0)+(d[g+2>>0]|0)+(d[h+1>>0]|0)+(d[g+3>>0]|0)+(d[h+2>>0]|0)+(d[g+4>>0]|0)+(d[h+3>>0]|0)+(d[g+5>>0]|0)+(d[h+4>>0]|0)+(d[g+6>>0]|0)+(d[h+5>>0]|0)+(d[g+7>>0]|0)+(d[h+6>>0]|0)+(d[g+8>>0]|0)+(d[h+7>>0]|0)+(d[g+9>>0]|0)+(d[h+8>>0]|0)+(d[g+10>>0]|0)+(d[h+9>>0]|0)+(d[g+11>>0]|0)+(d[h+10>>0]|0)+(d[g+12>>0]|0)+(d[h+11>>0]|0)+(d[g+13>>0]|0)+(d[h+12>>0]|0)+(d[g+14>>0]|0)+(d[h+13>>0]|0)+(d[g+15>>0]|0)+(d[h+14>>0]|0)+(d[g+16>>0]|0)+(d[h+15>>0]|0)|0)>>>5;while(0);Ic(e|0,j&255|0,256)|0;break}default:{if(!((j|0)!=0&(l|0)!=0&(k|0)!=0)){f=1;return f|0}o=d[g+16>>0]|0;q=d[h+15>>0]|0;m=d[g>>0]|0;n=(((d[g+9>>0]|0)-(d[g+7>>0]|0)+((d[g+10>>0]|0)-(d[g+6>>0]|0)<<1)+(((d[g+11>>0]|0)-(d[g+5>>0]|0)|0)*3|0)+((d[g+12>>0]|0)-(d[g+4>>0]|0)<<2)+(((d[g+13>>0]|0)-(d[g+3>>0]|0)|0)*5|0)+(((d[g+14>>0]|0)-(d[g+2>>0]|0)|0)*6|0)+(((d[g+15>>0]|0)-(d[g+1>>0]|0)|0)*7|0)+(o-m<<3)|0)*5|0)+32>>6;m=(((d[h+8>>0]|0)-(d[h+6>>0]|0)+(q-m<<3)+((d[h+9>>0]|0)-(d[h+5>>0]|0)<<1)+(((d[h+10>>0]|0)-(d[h+4>>0]|0)|0)*3|0)+((d[h+11>>0]|0)-(d[h+3>>0]|0)<<2)+(((d[h+12>>0]|0)-(d[h+2>>0]|0)|0)*5|0)+(((d[h+13>>0]|0)-(d[h+1>>0]|0)|0)*6|0)+(((d[h+14>>0]|0)-(d[h>>0]|0)|0)*7|0)|0)*5|0)+32>>6;h=p(n,-7)|0;k=p(n,-6)|0;l=p(n,-5)|0;i=p(n,-4)|0;b=p(n,-3)|0;g=p(n,-2)|0;j=0;do{s=(p(j+-7|0,m)|0)+(q+o<<4)|0;r=j<<4;a[e+r>>0]=(s+h|0)<-16?0:((s+h+16>>5|0)<255?s+h+16>>5:255)&255;a[e+(r|1)>>0]=(s+k|0)<-16?0:((s+k+16>>5|0)<255?s+k+16>>5:255)&255;a[e+(r|2)>>0]=(s+l|0)<-16?0:((s+l+16>>5|0)<255?s+l+16>>5:255)&255;a[e+(r|3)>>0]=(s+i|0)<-16?0:((s+i+16>>5|0)<255?s+i+16>>5:255)&255;a[e+(r|4)>>0]=(s+b|0)<-16?0:((s+b+16>>5|0)<255?s+b+16>>5:255)&255;a[e+(r|5)>>0]=(s+g|0)<-16?0:((s+g+16>>5|0)<255?s+g+16>>5:255)&255;a[e+(r|6)>>0]=(s-n|0)<-16?0:((s-n+16>>5|0)<255?s-n+16>>5:255)&255;a[e+(r|7)>>0]=(s|0)<-16?0:((s+16>>5|0)<255?s+16>>5:255)&255;a[e+(r|8)>>0]=(s+n|0)<-16?0:((s+n+16>>5|0)<255?s+n+16>>5:255)&255;a[e+(r|9)>>0]=(s+(n<<1)|0)<-16?0:((s+(n<<1)+16>>5|0)<255?s+(n<<1)+16>>5:255)&255;a[e+(r|10)>>0]=(s+(n*3|0)|0)<-16?0:((s+(n*3|0)+16>>5|0)<255?s+(n*3|0)+16>>5:255)&255;a[e+(r|11)>>0]=(s+(n<<2)|0)<-16?0:((s+(n<<2)+16>>5|0)<255?s+(n<<2)+16>>5:255)&255;a[e+(r|12)>>0]=(s+(n*5|0)|0)<-16?0:((s+(n*5|0)+16>>5|0)<255?s+(n*5|0)+16>>5:255)&255;a[e+(r|13)>>0]=(s+(n*6|0)|0)<-16?0:((s+(n*6|0)+16>>5|0)<255?s+(n*6|0)+16>>5:255)&255;a[e+(r|14)>>0]=(s+(n*7|0)|0)<-16?0:((s+(n*7|0)+16>>5|0)<255?s+(n*7|0)+16>>5:255)&255;a[e+(r|15)>>0]=(s+(n<<3)|0)<-16?0:((s+(n<<3)+16>>5|0)<255?s+(n<<3)+16>>5:255)&255;j=j+1|0}while((j|0)!=16)}}$a(e,f,0);$a(e,f+64|0,1);$a(e,f+128|0,2);$a(e,f+192|0,3);$a(e,f+256|0,4);$a(e,f+320|0,5);$a(e,f+384|0,6);$a(e,f+448|0,7);$a(e,f+512|0,8);$a(e,f+576|0,9);$a(e,f+640|0,10);$a(e,f+704|0,11);$a(e,f+768|0,12);$a(e,f+832|0,13);$a(e,f+896|0,14);$a(e,f+960|0,15);s=0;return s|0}function Za(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=0;a:while(1){n=Ga(J)|0;m=c[n+4>>2]|0;n=Fa(b,c[n>>2]|0)|0;j=Ka(b,n)|0;if((i|0)!=0&(j|0)!=0){I=(oa(c[n>>2]|0)|0)==2;j=I?0:j}o=Ha(J)|0;l=c[o+4>>2]|0;o=Fa(b,c[o>>2]|0)|0;k=Ka(b,o)|0;if((i|0)!=0&(k|0)!=0){I=(oa(c[o>>2]|0)|0)==2;k=I?0:k}y=(j|0)!=0;x=(k|0)!=0;if(y&x){if(!(oa(c[n>>2]|0)|0))k=d[(m&255)+(n+82)>>0]|0;else k=2;if(!(oa(c[o>>2]|0)|0))j=d[(l&255)+(o+82)>>0]|0;else j=2;j=k>>>0<j>>>0?k:j}else j=2;if(!(c[f+12+(J<<2)>>2]|0)){I=c[f+76+(J<<2)>>2]|0;j=I+(I>>>0>=j>>>0&1)|0}a[b+82+J>>0]=j;k=c[(Ia(J)|0)>>2]|0;k=Fa(b,k)|0;l=Ka(b,k)|0;if((i|0)!=0&(l|0)!=0){I=(oa(c[k>>2]|0)|0)==2;l=I?0:l}k=c[(Ja(J)|0)>>2]|0;k=Fa(b,k)|0;m=Ka(b,k)|0;if((i|0)!=0&(m|0)!=0){I=(oa(c[k>>2]|0)|0)==2;m=I?0:m}H=c[3312+(J<<2)>>2]|0;I=c[3376+(J<<2)>>2]|0;t=(1285>>>J&1|0)!=0;if(t){r=h+(I+2)|0;o=I+3|0;q=h;k=h+I|0;n=h+(I+1)|0}else{r=e+((I<<4)+H+31)|0;o=(I<<4)+H+47|0;q=e;k=e+((I<<4)+H+-1)|0;n=e+((I<<4)+H+15)|0}G=a[k>>0]|0;F=a[n>>0]|0;E=a[q+o>>0]|0;D=a[r>>0]|0;do if(!(51>>>J&1)){k=(I+-1<<4)+H|0;u=a[e+k>>0]|0;v=a[e+(k+1)>>0]|0;w=a[e+(k+2)>>0]|0;n=a[e+(k+3)>>0]|0;o=a[e+(k+4)>>0]|0;q=a[e+(k+5)>>0]|0;r=a[e+(k+6)>>0]|0;s=a[e+(k+7)>>0]|0;if(t){t=h+(I+-1)|0;k=s;C=u;B=v;A=w;break}else{t=e+(k+-1)|0;k=s;C=u;B=v;A=w;break}}else{t=g+H|0;n=a[g+(H+4)>>0]|0;o=a[g+(H+5)>>0]|0;q=a[g+(H+6)>>0]|0;r=a[g+(H+7)>>0]|0;k=a[g+(H+8)>>0]|0;C=a[g+(H+1)>>0]|0;B=a[g+(H+2)>>0]|0;A=a[g+(H+3)>>0]|0}while(0);z=a[t>>0]|0;switch(j|0){case 0:{if(!x){j=1;k=51;break a}k=C;l=B;m=A;o=n;q=C;s=B;t=A;u=n;v=C;w=B;x=A;y=n;j=(A&255)<<16|(n&255)<<24|C&255|(B&255)<<8;break}case 1:{if(!y){j=1;k=51;break a}o=p(G&255,16843009)|0;u=p(F&255,16843009)|0;y=p(D&255,16843009)|0;k=o&255;l=o>>>8&255;m=o>>>16&255;o=o>>>24&255;q=u&255;s=u>>>8&255;t=u>>>16&255;u=u>>>24&255;v=y&255;w=y>>>8&255;x=y>>>16&255;y=y>>>24&255;j=p(E&255,16843009)|0;break}case 2:{do if(!(y&x)){if(y){j=((G&255)+2+(F&255)+(E&255)+(D&255)|0)>>>2;break}if(x)j=((n&255)+2+(A&255)+(B&255)+(C&255)|0)>>>2;else j=128}else j=((G&255)+4+(F&255)+(E&255)+(D&255)+(n&255)+(A&255)+(B&255)+(C&255)|0)>>>3;while(0);j=p(j&255,16843009)|0;k=j&255;l=j>>>8&255;m=j>>>16&255;o=j>>>24&255;q=j&255;s=j>>>8&255;t=j>>>16&255;u=j>>>24&255;v=j&255;w=j>>>8&255;x=j>>>16&255;y=j>>>24&255;break}case 3:{if(!x){j=1;k=51;break a}G=(l|0)==0;s=B&255;v=A&255;D=n&255;E=(G?n:o)&255;F=(G?n:q)&255;w=(D+2+F+(E<<1)|0)>>>2&255;j=(G?n:r)&255;x=(j+2+E+(F<<1)|0)>>>2&255;G=(G?n:k)&255;k=(v+2+(C&255)+(s<<1)|0)>>>2&255;l=(D+2+s+(v<<1)|0)>>>2&255;m=(E+2+v+(D<<1)|0)>>>2&255;o=w;q=(D+2+s+(v<<1)|0)>>>2&255;s=(E+2+v+(D<<1)|0)>>>2&255;t=w;u=x;v=(E+2+v+(D<<1)|0)>>>2&255;y=(F+2+G+(j<<1)|0)>>>2&255;j=(D+2+F+(E<<1)|0)>>>2&255|(j+2+(G*3|0)|0)>>>2<<24|(j+2+E+(F<<1)|0)>>>2<<8&65280|(F+2+G+(j<<1)|0)>>>2<<16&16711680;break}case 4:{if(!(y&x&(m|0)!=0)){j=1;k=51;break a}j=C&255;x=(j+2+(G&255)+((z&255)<<1)|0)>>>2&255;y=B&255;u=A&255;w=((F&255)+2+((G&255)<<1)+(z&255)|0)>>>2&255;k=x;l=(y+2+(j<<1)+(z&255)|0)>>>2&255;m=((y<<1)+u+(j+2)|0)>>>2&255;o=(y+2+(n&255)+(u<<1)|0)>>>2&255;q=w;s=x;t=(y+2+(j<<1)+(z&255)|0)>>>2&255;u=((y<<1)+u+(j+2)|0)>>>2&255;v=((G&255)+2+((F&255)<<1)+(D&255)|0)>>>2&255;y=(y+2+(j<<1)+(z&255)|0)>>>2&255;j=((F&255)+2+(E&255)+((D&255)<<1)|0)>>>2&255|((G&255)+2+((F&255)<<1)+(D&255)|0)>>>2<<8&65280|(j+2+(G&255)+((z&255)<<1)|0)>>>2<<24|((F&255)+2+((G&255)<<1)+(z&255)|0)>>>2<<16&16711680;break}case 5:{if(!(y&x&(m|0)!=0)){j=1;k=51;break a}j=C&255;E=B&255;C=A&255;u=n&255;k=(j+1+(z&255)|0)>>>1&255;l=(E+1+j|0)>>>1&255;m=(C+1+E|0)>>>1&255;o=(C+1+u|0)>>>1&255;q=(j+2+(G&255)+((z&255)<<1)|0)>>>2&255;s=(E+2+(j<<1)+(z&255)|0)>>>2&255;t=((E<<1)+C+(j+2)|0)>>>2&255;u=(E+2+u+(C<<1)|0)>>>2&255;v=((F&255)+2+((G&255)<<1)+(z&255)|0)>>>2&255;w=(j+1+(z&255)|0)>>>1&255;x=(E+1+j|0)>>>1&255;y=(C+1+E|0)>>>1&255;j=((E<<1)+C+(j+2)|0)>>>2<<24|((G&255)+2+((F&255)<<1)+(D&255)|0)>>>2&255|(j+2+(G&255)+((z&255)<<1)|0)>>>2<<8&65280|(E+2+(j<<1)+(z&255)|0)>>>2<<16&16711680;break}case 6:{if(!(y&x&(m|0)!=0)){j=1;k=51;break a}u=C&255;o=B&255;k=((G&255)+1+(z&255)|0)>>>1&255;l=((G&255)+2+u+((z&255)<<1)|0)>>>2&255;m=(o+2+(u<<1)+(z&255)|0)>>>2&255;o=(u+2+(A&255)+(o<<1)|0)>>>2&255;q=((G&255)+1+(F&255)|0)>>>1&255;s=((F&255)+2+((G&255)<<1)+(z&255)|0)>>>2&255;t=((G&255)+1+(z&255)|0)>>>1&255;u=((G&255)+2+u+((z&255)<<1)|0)>>>2&255;v=((F&255)+1+(D&255)|0)>>>1&255;w=((G&255)+2+((F&255)<<1)+(D&255)|0)>>>2&255;x=((G&255)+1+(F&255)|0)>>>1&255;y=((F&255)+2+((G&255)<<1)+(z&255)|0)>>>2&255;j=((F&255)+1+(D&255)|0)>>>1<<16&16711680|((G&255)+2+((F&255)<<1)+(D&255)|0)>>>2<<24|((D&255)+1+(E&255)|0)>>>1&255|(F&255)+2+(E&255)+((D&255)<<1)<<6&65280;break}case 7:{if(!x){j=1;k=51;break a}z=(l|0)==0;s=C&255;D=B&255;E=A&255;F=n&255;j=(z?n:o)&255;G=(z?n:q)&255;k=(D+1+s|0)>>>1&255;l=(E+1+D|0)>>>1&255;m=(F+1+E|0)>>>1&255;o=(F+1+j|0)>>>1&255;q=(E+2+s+(D<<1)|0)>>>2&255;s=(F+2+D+(E<<1)|0)>>>2&255;t=(j+2+E+(F<<1)|0)>>>2&255;u=(F+2+G+(j<<1)|0)>>>2&255;v=(E+1+D|0)>>>1&255;w=(F+1+E|0)>>>1&255;x=(F+1+j|0)>>>1&255;y=(j+1+G|0)>>>1&255;j=(j+2+E+(F<<1)|0)>>>2<<8&65280|(j+2+((z?n:r)&255)+(G<<1)|0)>>>2<<24|(F+2+D+(E<<1)|0)>>>2&255|(F+2+G+(j<<1)|0)>>>2<<16&16711680;break}default:{if(!y){j=1;k=51;break a}k=((F&255)+1+(G&255)|0)>>>1&255;l=((D&255)+2+(G&255)+((F&255)<<1)|0)>>>2&255;m=((F&255)+1+(D&255)|0)>>>1&255;o=((F&255)+2+(E&255)+((D&255)<<1)|0)>>>2&255;q=((F&255)+1+(D&255)|0)>>>1&255;s=((F&255)+2+(E&255)+((D&255)<<1)|0)>>>2&255;t=((D&255)+1+(E&255)|0)>>>1&255;u=((D&255)+2+((E&255)*3|0)|0)>>>2&255;v=((D&255)+1+(E&255)|0)>>>1&255;w=((D&255)+2+((E&255)*3|0)|0)>>>2&255;x=E;y=E;j=(E&255)<<8|E&255|(E&255)<<16|(E&255)<<24}}c[e+((I<<4)+H)>>2]=(m&255)<<16|(o&255)<<24|(l&255)<<8|k&255;c[e+((I<<4)+H)+16>>2]=(t&255)<<16|(u&255)<<24|(s&255)<<8|q&255;c[e+((I<<4)+H)+32>>2]=(x&255)<<16|(y&255)<<24|(w&255)<<8|v&255;c[e+((I<<4)+H)+48>>2]=j;$a(e,f+328+(J<<6)|0,J);J=J+1|0;if(J>>>0>=16){j=0;k=51;break}}if((k|0)==51)return j|0;return 0}function _a(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0;k=Ka(b,c[b+200>>2]|0)|0;if((j|0)!=0&(k|0)!=0){u=(oa(c[c[b+200>>2]>>2]|0)|0)==2;k=u?0:k}l=Ka(b,c[b+204>>2]|0)|0;if((j|0)!=0&(l|0)!=0){u=(oa(c[c[b+204>>2]>>2]|0)|0)==2;l=u?0:l}m=Ka(b,c[b+212>>2]|0)|0;if((j|0)!=0&(m|0)!=0){u=(oa(c[c[b+212>>2]>>2]|0)|0)==2;m=u?0:m}t=(k|0)!=0;u=(l|0)!=0;s=t&u&(m|0)!=0;r=(k|0)==0;q=(l|0)==0;n=16;o=1;b=f;a:while(1){switch(i|0){case 0:{m=g+1|0;do if(!(t&u)){if(u){k=((d[m>>0]|0)+2+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)|0)>>>2;l=((d[g+5>>0]|0)+2+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)|0)>>>2;break}if(t){l=((d[h>>0]|0)+2+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)|0)>>>2;k=l}else{k=128;l=128}}else{k=((d[m>>0]|0)+4+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)+(d[h>>0]|0)+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)|0)>>>3;l=((d[g+5>>0]|0)+2+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)|0)>>>2}while(0);k=k&255;f=l&255;Ic(e|0,k|0,4)|0;Ic(e+4|0,f|0,4)|0;Ic(e+8|0,k|0,4)|0;Ic(e+12|0,f|0,4)|0;Ic(e+16|0,k|0,4)|0;Ic(e+20|0,f|0,4)|0;j=e+32|0;Ic(e+24|0,k|0,4)|0;Ic(e+28|0,f|0,4)|0;if(t){l=d[h+7>>0]|0;k=(d[h+5>>0]|0)+(d[h+4>>0]|0)+(d[h+6>>0]|0)|0;if(u){m=(k+2+l|0)>>>2;k=(k+4+l+(d[g+5>>0]|0)+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)|0)>>>3}else{m=(k+2+l|0)>>>2;k=(k+2+l|0)>>>2}}else if(u){m=((d[m>>0]|0)+2+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)|0)>>>2;k=((d[g+5>>0]|0)+2+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)|0)>>>2}else{m=128;k=128}m=m&255;f=k&255;Ic(j|0,m|0,4)|0;Ic(e+36|0,f|0,4)|0;Ic(e+40|0,m|0,4)|0;Ic(e+44|0,f|0,4)|0;Ic(e+48|0,m|0,4)|0;Ic(e+52|0,f|0,4)|0;Ic(e+56|0,m|0,4)|0;Ic(e+60|0,f|0,4)|0;break}case 1:{if(r){k=1;l=28;break a}a[e>>0]=a[h>>0]|0;a[e+1>>0]=a[h>>0]|0;a[e+2>>0]=a[h>>0]|0;a[e+3>>0]=a[h>>0]|0;a[e+4>>0]=a[h>>0]|0;a[e+5>>0]=a[h>>0]|0;a[e+6>>0]=a[h>>0]|0;f=h+1|0;a[e+7>>0]=a[h>>0]|0;a[e+8>>0]=a[f>>0]|0;a[e+9>>0]=a[f>>0]|0;a[e+10>>0]=a[f>>0]|0;a[e+11>>0]=a[f>>0]|0;a[e+12>>0]=a[f>>0]|0;a[e+13>>0]=a[f>>0]|0;a[e+14>>0]=a[f>>0]|0;j=h+2|0;a[e+15>>0]=a[f>>0]|0;a[e+16>>0]=a[j>>0]|0;a[e+17>>0]=a[j>>0]|0;a[e+18>>0]=a[j>>0]|0;a[e+19>>0]=a[j>>0]|0;a[e+20>>0]=a[j>>0]|0;a[e+21>>0]=a[j>>0]|0;a[e+22>>0]=a[j>>0]|0;f=h+3|0;a[e+23>>0]=a[j>>0]|0;a[e+24>>0]=a[f>>0]|0;a[e+25>>0]=a[f>>0]|0;a[e+26>>0]=a[f>>0]|0;a[e+27>>0]=a[f>>0]|0;a[e+28>>0]=a[f>>0]|0;a[e+29>>0]=a[f>>0]|0;a[e+30>>0]=a[f>>0]|0;j=h+4|0;a[e+31>>0]=a[f>>0]|0;a[e+32>>0]=a[j>>0]|0;a[e+33>>0]=a[j>>0]|0;a[e+34>>0]=a[j>>0]|0;a[e+35>>0]=a[j>>0]|0;a[e+36>>0]=a[j>>0]|0;a[e+37>>0]=a[j>>0]|0;a[e+38>>0]=a[j>>0]|0;f=h+5|0;a[e+39>>0]=a[j>>0]|0;a[e+40>>0]=a[f>>0]|0;a[e+41>>0]=a[f>>0]|0;a[e+42>>0]=a[f>>0]|0;a[e+43>>0]=a[f>>0]|0;a[e+44>>0]=a[f>>0]|0;a[e+45>>0]=a[f>>0]|0;a[e+46>>0]=a[f>>0]|0;j=h+6|0;a[e+47>>0]=a[f>>0]|0;a[e+48>>0]=a[j>>0]|0;a[e+49>>0]=a[j>>0]|0;a[e+50>>0]=a[j>>0]|0;a[e+51>>0]=a[j>>0]|0;a[e+52>>0]=a[j>>0]|0;a[e+53>>0]=a[j>>0]|0;a[e+54>>0]=a[j>>0]|0;f=h+7|0;a[e+55>>0]=a[j>>0]|0;a[e+56>>0]=a[f>>0]|0;a[e+57>>0]=a[f>>0]|0;a[e+58>>0]=a[f>>0]|0;a[e+59>>0]=a[f>>0]|0;a[e+60>>0]=a[f>>0]|0;a[e+61>>0]=a[f>>0]|0;a[e+62>>0]=a[f>>0]|0;a[e+63>>0]=a[f>>0]|0;break}case 2:{if(q){k=1;l=28;break a}j=g+1|0;a[e>>0]=a[j>>0]|0;a[e+8>>0]=a[j>>0]|0;a[e+16>>0]=a[j>>0]|0;a[e+24>>0]=a[j>>0]|0;a[e+32>>0]=a[j>>0]|0;a[e+40>>0]=a[j>>0]|0;a[e+48>>0]=a[j>>0]|0;f=g+2|0;a[e+56>>0]=a[j>>0]|0;a[e+1>>0]=a[f>>0]|0;a[e+9>>0]=a[f>>0]|0;a[e+17>>0]=a[f>>0]|0;a[e+25>>0]=a[f>>0]|0;a[e+33>>0]=a[f>>0]|0;a[e+41>>0]=a[f>>0]|0;a[e+49>>0]=a[f>>0]|0;j=g+3|0;a[e+57>>0]=a[f>>0]|0;a[e+2>>0]=a[j>>0]|0;a[e+10>>0]=a[j>>0]|0;a[e+18>>0]=a[j>>0]|0;a[e+26>>0]=a[j>>0]|0;a[e+34>>0]=a[j>>0]|0;a[e+42>>0]=a[j>>0]|0;a[e+50>>0]=a[j>>0]|0;f=g+4|0;a[e+58>>0]=a[j>>0]|0;a[e+3>>0]=a[f>>0]|0;a[e+11>>0]=a[f>>0]|0;a[e+19>>0]=a[f>>0]|0;a[e+27>>0]=a[f>>0]|0;a[e+35>>0]=a[f>>0]|0;a[e+43>>0]=a[f>>0]|0;a[e+51>>0]=a[f>>0]|0;j=g+5|0;a[e+59>>0]=a[f>>0]|0;a[e+4>>0]=a[j>>0]|0;a[e+12>>0]=a[j>>0]|0;a[e+20>>0]=a[j>>0]|0;a[e+28>>0]=a[j>>0]|0;a[e+36>>0]=a[j>>0]|0;a[e+44>>0]=a[j>>0]|0;a[e+52>>0]=a[j>>0]|0;f=g+6|0;a[e+60>>0]=a[j>>0]|0;a[e+5>>0]=a[f>>0]|0;a[e+13>>0]=a[f>>0]|0;a[e+21>>0]=a[f>>0]|0;a[e+29>>0]=a[f>>0]|0;a[e+37>>0]=a[f>>0]|0;a[e+45>>0]=a[f>>0]|0;a[e+53>>0]=a[f>>0]|0;j=g+7|0;a[e+61>>0]=a[f>>0]|0;a[e+6>>0]=a[j>>0]|0;a[e+14>>0]=a[j>>0]|0;a[e+22>>0]=a[j>>0]|0;a[e+30>>0]=a[j>>0]|0;a[e+38>>0]=a[j>>0]|0;a[e+46>>0]=a[j>>0]|0;a[e+54>>0]=a[j>>0]|0;f=g+8|0;a[e+62>>0]=a[j>>0]|0;a[e+7>>0]=a[f>>0]|0;a[e+15>>0]=a[f>>0]|0;a[e+23>>0]=a[f>>0]|0;a[e+31>>0]=a[f>>0]|0;a[e+39>>0]=a[f>>0]|0;a[e+47>>0]=a[f>>0]|0;a[e+55>>0]=a[f>>0]|0;a[e+63>>0]=a[f>>0]|0;break}default:{if(!s){k=1;l=28;break a}l=d[g+8>>0]|0;m=d[h+7>>0]|0;j=d[g>>0]|0;f=(((d[g+5>>0]|0)-(d[g+3>>0]|0)+((d[g+6>>0]|0)-(d[g+2>>0]|0)<<1)+(((d[g+7>>0]|0)-(d[g+1>>0]|0)|0)*3|0)+(l-j<<2)|0)*17|0)+16>>5;j=(((d[h+4>>0]|0)-(d[h+2>>0]|0)+(m-j<<2)+((d[h+5>>0]|0)-(d[h+1>>0]|0)<<1)+(((d[h+6>>0]|0)-(d[h>>0]|0)|0)*3|0)|0)*17|0)+16>>5;l=(m+l<<4)+16+(p(j,-3)|0)|0;m=p(f,-3)|0;a[e>>0]=a[3952+(l+m>>5)>>0]|0;a[e+1>>0]=a[3952+(l+m+f>>5)>>0]|0;a[e+2>>0]=a[3952+(l+m+f+f>>5)>>0]|0;a[e+3>>0]=a[3952+(l+m+f+f+f>>5)>>0]|0;k=l+m+f+f+f+f|0;a[e+4>>0]=a[3952+(k>>5)>>0]|0;a[e+5>>0]=a[3952+(k+f>>5)>>0]|0;a[e+6>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+7>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+8>>0]=a[3952+(l+j+m>>5)>>0]|0;a[e+9>>0]=a[3952+(l+j+m+f>>5)>>0]|0;a[e+10>>0]=a[3952+(l+j+m+f+f>>5)>>0]|0;k=l+j+m+f+f+f|0;a[e+11>>0]=a[3952+(k>>5)>>0]|0;a[e+12>>0]=a[3952+(k+f>>5)>>0]|0;a[e+13>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+14>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+15>>0]=a[3952+(k+f+f+f+f>>5)>>0]|0;a[e+16>>0]=a[3952+(l+j+j+m>>5)>>0]|0;a[e+17>>0]=a[3952+(l+j+j+m+f>>5)>>0]|0;k=l+j+j+m+f+f|0;a[e+18>>0]=a[3952+(k>>5)>>0]|0;a[e+19>>0]=a[3952+(k+f>>5)>>0]|0;a[e+20>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+21>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+22>>0]=a[3952+(k+f+f+f+f>>5)>>0]|0;a[e+23>>0]=a[3952+(k+f+f+f+f+f>>5)>>0]|0;a[e+24>>0]=a[3952+(l+j+j+j+m>>5)>>0]|0;k=l+j+j+j+m+f|0;a[e+25>>0]=a[3952+(k>>5)>>0]|0;a[e+26>>0]=a[3952+(k+f>>5)>>0]|0;a[e+27>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+28>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+29>>0]=a[3952+(k+f+f+f+f>>5)>>0]|0;k=k+f+f+f+f+f|0;a[e+30>>0]=a[3952+(k>>5)>>0]|0;a[e+31>>0]=a[3952+(k+f>>5)>>0]|0;k=l+j+j+j+j+m|0;a[e+32>>0]=a[3952+(k>>5)>>0]|0;a[e+33>>0]=a[3952+(k+f>>5)>>0]|0;a[e+34>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+35>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+36>>0]=a[3952+(k+f+f+f+f>>5)>>0]|0;k=k+f+f+f+f+f|0;a[e+37>>0]=a[3952+(k>>5)>>0]|0;a[e+38>>0]=a[3952+(k+f>>5)>>0]|0;a[e+39>>0]=a[3952+(k+f+f>>5)>>0]|0;l=l+j+j+j+j+j|0;a[e+40>>0]=a[3952+(l+m>>5)>>0]|0;a[e+41>>0]=a[3952+(l+m+f>>5)>>0]|0;a[e+42>>0]=a[3952+(l+m+f+f>>5)>>0]|0;a[e+43>>0]=a[3952+(l+m+f+f+f>>5)>>0]|0;k=l+m+f+f+f+f|0;a[e+44>>0]=a[3952+(k>>5)>>0]|0;a[e+45>>0]=a[3952+(k+f>>5)>>0]|0;a[e+46>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+47>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+48>>0]=a[3952+(l+j+m>>5)>>0]|0;a[e+49>>0]=a[3952+(l+j+m+f>>5)>>0]|0;a[e+50>>0]=a[3952+(l+j+m+f+f>>5)>>0]|0;k=l+j+m+f+f+f|0;a[e+51>>0]=a[3952+(k>>5)>>0]|0;a[e+52>>0]=a[3952+(k+f>>5)>>0]|0;a[e+53>>0]=a[3952+(k+f+f>>5)>>0]|0;a[e+54>>0]=a[3952+(k+f+f+f>>5)>>0]|0;a[e+55>>0]=a[3952+(k+f+f+f+f>>5)>>0]|0;a[e+56>>0]=a[3952+(l+j+m+j>>5)>>0]|0;a[e+57>>0]=a[3952+(l+j+m+j+f>>5)>>0]|0;j=l+j+m+j+f+f|0;a[e+58>>0]=a[3952+(j>>5)>>0]|0;a[e+59>>0]=a[3952+(j+f>>5)>>0]|0;a[e+60>>0]=a[3952+(j+f+f>>5)>>0]|0;a[e+61>>0]=a[3952+(j+f+f+f>>5)>>0]|0;a[e+62>>0]=a[3952+(j+f+f+f+f>>5)>>0]|0;a[e+63>>0]=a[3952+(j+f+f+f+f+f>>5)>>0]|0}}$a(e,b,n);f=n|1;$a(e,b+64|0,f);$a(e,b+128|0,f+1|0);$a(e,b+192|0,n|3);if(o>>>0<2){g=g+9|0;n=n+4|0;o=2;e=e+64|0;h=h+8|0;b=b+256|0}else{k=0;l=28;break}}if((l|0)==28)return k|0;return 0}
68
+ function Gb(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0;Ma=H;H=H+176|0;ja=c[e+4>>2]|0;La=c[e+8>>2]|0;ya=p(La,ja)|0;if(!La){H=Ma;return}Aa=Ma+48+120|0;Ba=Ma+48+112|0;Ca=Ma+48+104|0;Da=Ma+48+96|0;Ea=Ma+48+88|0;Fa=Ma+48+80|0;Ga=Ma+48+72|0;Ha=Ma+48+64|0;Ia=Ma+48+56|0;Ja=Ma+48+48|0;Ka=Ma+48+40|0;La=Ma+48+32|0;ka=Ma+48+124|0;la=Ma+48+116|0;ma=Ma+48+108|0;na=Ma+48+92|0;oa=Ma+48+84|0;qa=Ma+48+76|0;ra=Ma+48+60|0;sa=Ma+48+52|0;ta=Ma+48+44|0;ua=Ma+48+28|0;va=Ma+48+20|0;wa=Ma+48+12|0;za=p(ja,-48)|0;ha=0;xa=0;ia=f;while(1){f=c[ia+8>>2]|0;do if((f|0)!=1){ga=ia+200|0;n=c[ga>>2]|0;do if(!n)g=1;else{if((f|0)==2?(c[ia+4>>2]|0)!=(c[n+4>>2]|0):0){g=1;break}g=5}while(0);fa=ia+204|0;k=c[fa>>2]|0;do if(k){if((f|0)==2?(c[ia+4>>2]|0)!=(c[k+4>>2]|0):0)break;g=g|2}while(0);ea=(g&2|0)==0;do if(ea){c[Ma+48+24>>2]=0;c[Ma+48+16>>2]=0;c[Ma+48+8>>2]=0;c[Ma+48>>2]=0;i=0}else{if((c[ia>>2]|0)>>>0<=5?(c[k>>2]|0)>>>0<=5:0){if((b[ia+28>>1]|0)==0?(b[k+48>>1]|0)==0:0)if((c[ia+116>>2]|0)==(c[k+124>>2]|0)?(da=(b[ia+132>>1]|0)-(b[k+172>>1]|0)|0,(((da|0)<0?0-da|0:da)|0)<=3):0){j=(b[ia+134>>1]|0)-(b[k+174>>1]|0)|0;j=(((j|0)<0?0-j|0:j)|0)>3&1}else j=1;else j=2;c[Ma+48>>2]=j;if((b[ia+30>>1]|0)==0?(b[k+50>>1]|0)==0:0)if((c[ia+116>>2]|0)==(c[k+124>>2]|0)?(da=(b[ia+136>>1]|0)-(b[k+176>>1]|0)|0,(((da|0)<0?0-da|0:da)|0)<=3):0){h=(b[ia+138>>1]|0)-(b[k+178>>1]|0)|0;h=(((h|0)<0?0-h|0:h)|0)>3&1}else h=1;else h=2;c[Ma+48+8>>2]=h;if((b[ia+36>>1]|0)==0?(b[k+56>>1]|0)==0:0)if((c[ia+120>>2]|0)==(c[k+128>>2]|0)?(da=(b[ia+148>>1]|0)-(b[k+188>>1]|0)|0,(((da|0)<0?0-da|0:da)|0)<=3):0){i=(b[ia+150>>1]|0)-(b[k+190>>1]|0)|0;i=(((i|0)<0?0-i|0:i)|0)>3&1}else i=1;else i=2;c[Ma+48+16>>2]=i;if((b[ia+38>>1]|0)==0?(b[k+58>>1]|0)==0:0)if((c[ia+120>>2]|0)==(c[k+128>>2]|0)?(da=(b[ia+152>>1]|0)-(b[k+192>>1]|0)|0,(((da|0)<0?0-da|0:da)|0)<=3):0){f=(b[ia+154>>1]|0)-(b[k+194>>1]|0)|0;f=(((f|0)<0?0-f|0:f)|0)>3&1}else f=1;else f=2;c[Ma+48+24>>2]=f;i=(h|j|i|f|0)!=0&1;break}c[Ma+48+24>>2]=4;c[Ma+48+16>>2]=4;c[Ma+48+8>>2]=4;c[Ma+48>>2]=4;i=1}while(0);da=(g&4|0)==0;do if(da){c[Ma+48+100>>2]=0;c[Ma+48+68>>2]=0;c[Ma+48+36>>2]=0;c[Ma+48+4>>2]=0;f=0;g=c[ia>>2]|0;h=ia;ca=64}else{g=c[ia>>2]|0;if(g>>>0<=5?(c[n>>2]|0)>>>0<=5:0){if((b[ia+28>>1]|0)==0?(b[n+38>>1]|0)==0:0)if((c[ia+116>>2]|0)==(c[n+120>>2]|0)?(ca=(b[ia+132>>1]|0)-(b[n+152>>1]|0)|0,(((ca|0)<0?0-ca|0:ca)|0)<=3):0){k=(b[ia+134>>1]|0)-(b[n+154>>1]|0)|0;k=(((k|0)<0?0-k|0:k)|0)>3&1}else k=1;else k=2;c[Ma+48+4>>2]=k;if((b[ia+32>>1]|0)==0?(b[n+42>>1]|0)==0:0)if((c[ia+116>>2]|0)==(c[n+120>>2]|0)?(ca=(b[ia+140>>1]|0)-(b[n+160>>1]|0)|0,(((ca|0)<0?0-ca|0:ca)|0)<=3):0){l=(b[ia+142>>1]|0)-(b[n+162>>1]|0)|0;l=(((l|0)<0?0-l|0:l)|0)>3&1}else l=1;else l=2;c[Ma+48+36>>2]=l;if((b[ia+44>>1]|0)==0?(b[n+54>>1]|0)==0:0)if((c[ia+124>>2]|0)==(c[n+128>>2]|0)?(ca=(b[ia+164>>1]|0)-(b[n+184>>1]|0)|0,(((ca|0)<0?0-ca|0:ca)|0)<=3):0){m=(b[ia+166>>1]|0)-(b[n+186>>1]|0)|0;m=(((m|0)<0?0-m|0:m)|0)>3&1}else m=1;else m=2;c[Ma+48+68>>2]=m;if((b[ia+48>>1]|0)==0?(b[n+58>>1]|0)==0:0)if((c[ia+124>>2]|0)==(c[n+128>>2]|0)?(ca=(b[ia+172>>1]|0)-(b[n+192>>1]|0)|0,(((ca|0)<0?0-ca|0:ca)|0)<=3):0){j=(b[ia+174>>1]|0)-(b[n+194>>1]|0)|0;j=(((j|0)<0?0-j|0:j)|0)>3&1}else j=1;else j=2;c[Ma+48+100>>2]=j;f=k;h=ia;i=(k|i|l|m|j|0)!=0&1;ca=66;break}c[Ma+48+100>>2]=4;c[Ma+48+68>>2]=4;c[Ma+48+36>>2]=4;c[Ma+48+4>>2]=4;f=4;h=ia;i=1;ca=64}while(0);if((ca|0)==64){ca=0;if(g>>>0>5){c[Aa>>2]=3;c[Ba>>2]=3;c[Ca>>2]=3;c[Da>>2]=3;c[Ea>>2]=3;c[Fa>>2]=3;c[Ga>>2]=3;c[Ha>>2]=3;c[Ia>>2]=3;c[Ja>>2]=3;c[Ka>>2]=3;c[La>>2]=3;c[ka>>2]=3;c[la>>2]=3;c[ma>>2]=3;c[na>>2]=3;c[oa>>2]=3;c[qa>>2]=3;c[ra>>2]=3;c[sa>>2]=3;c[ta>>2]=3;c[ua>>2]=3;c[va>>2]=3;c[wa>>2]=3}else ca=66}if((ca|0)==66){ca=0;a:do if((pa(g)|0)==1){h=ia+28|0;s=b[ia+32>>1]|0;if(s<<16>>16==0?(b[h>>1]|0)==0:0)g=0;else g=2;c[La>>2]=g;t=b[ia+34>>1]|0;if(t<<16>>16==0?(b[ia+30>>1]|0)==0:0)J=0;else J=2;c[Ka>>2]=J;u=b[ia+40>>1]|0;if(u<<16>>16==0?(b[ia+36>>1]|0)==0:0)I=0;else I=2;c[Ja>>2]=I;v=b[ia+42>>1]|0;if(v<<16>>16==0?(b[ia+38>>1]|0)==0:0)G=0;else G=2;c[Ia>>2]=G;w=b[ia+44>>1]|0;F=(w|s)<<16>>16==0?0:2;c[Ha>>2]=F;j=b[ia+46>>1]|0;E=(j|t)<<16>>16==0?0:2;c[Ga>>2]=E;k=b[ia+52>>1]|0;D=(k|u)<<16>>16==0?0:2;c[Fa>>2]=D;l=b[ia+54>>1]|0;C=(l|v)<<16>>16==0?0:2;c[Ea>>2]=C;m=b[ia+48>>1]|0;B=(m|w)<<16>>16==0?0:2;c[Da>>2]=B;n=b[ia+50>>1]|0;A=(n|j)<<16>>16==0?0:2;c[Ca>>2]=A;o=b[ia+56>>1]|0;z=(o|k)<<16>>16==0?0:2;c[Ba>>2]=z;q=b[ia+58>>1]|0;y=(q|l)<<16>>16==0?0:2;c[Aa>>2]=y;r=b[ia+30>>1]|0;if(r<<16>>16==0?(b[h>>1]|0)==0:0)x=0;else x=2;c[wa>>2]=x;aa=b[ia+36>>1]|0;ba=(aa|r)<<16>>16==0?0:2;c[va>>2]=ba;aa=(b[ia+38>>1]|aa)<<16>>16==0?0:2;c[ua>>2]=aa;$=s<<16>>16!=0|t<<16>>16==0^1?2:0;c[ta>>2]=$;t=t<<16>>16!=0|u<<16>>16==0^1?2:0;c[sa>>2]=t;u=u<<16>>16!=0|v<<16>>16==0^1?2:0;c[ra>>2]=u;s=(j|w)<<16>>16==0?0:2;c[qa>>2]=s;r=(k|j)<<16>>16==0?0:2;c[oa>>2]=r;v=(l|k)<<16>>16==0?0:2;c[na>>2]=v;m=(n|m)<<16>>16==0?0:2;c[ma>>2]=m;h=(o|n)<<16>>16==0?0:2;c[la>>2]=h;j=(q|o)<<16>>16==0?0:2;c[ka>>2]=j;n=v;v=t;w=$;t=E;q=F;o=G;l=I;k=J}else switch(c[h>>2]|0){case 2:{n=ia+28|0;o=b[ia+32>>1]|0;if(o<<16>>16==0?(b[n>>1]|0)==0:0)K=0;else K=2;c[La>>2]=K;q=b[ia+34>>1]|0;if(q<<16>>16==0?(b[ia+30>>1]|0)==0:0)k=0;else k=2;c[Ka>>2]=k;r=b[ia+40>>1]|0;if(r<<16>>16==0?(b[ia+36>>1]|0)==0:0)J=0;else J=2;c[Ja>>2]=J;s=b[ia+42>>1]|0;if(s<<16>>16==0?(b[ia+38>>1]|0)==0:0)I=0;else I=2;c[Ia>>2]=I;t=b[ia+48>>1]|0;if(t<<16>>16==0?(b[ia+44>>1]|0)==0:0)B=0;else B=2;c[Da>>2]=B;u=b[ia+50>>1]|0;if(u<<16>>16==0?(b[ia+46>>1]|0)==0:0)A=0;else A=2;c[Ca>>2]=A;v=b[ia+56>>1]|0;if(v<<16>>16==0?(b[ia+52>>1]|0)==0:0)z=0;else z=2;c[Ba>>2]=z;w=b[ia+58>>1]|0;if(w<<16>>16==0?(b[ia+54>>1]|0)==0:0)E=0;else E=2;c[Aa>>2]=E;x=b[ia+44>>1]|0;g=b[ia+166>>1]|0;h=b[ia+142>>1]|0;do if(!((x|o)<<16>>16)){ba=(b[ia+164>>1]|0)-(b[ia+140>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){G=1;break}if((((g-h|0)<0?0-(g-h)|0:g-h|0)|0)>3){G=1;break}G=(c[ia+124>>2]|0)!=(c[ia+116>>2]|0)&1}else G=2;while(0);c[Ha>>2]=G;m=b[ia+46>>1]|0;g=b[ia+170>>1]|0;h=b[ia+146>>1]|0;do if(!((m|q)<<16>>16)){ba=(b[ia+168>>1]|0)-(b[ia+144>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){F=1;break}if((((g-h|0)<0?0-(g-h)|0:g-h|0)|0)>3){F=1;break}F=(c[ia+124>>2]|0)!=(c[ia+116>>2]|0)&1}else F=2;while(0);c[Ga>>2]=F;l=b[ia+52>>1]|0;g=b[ia+182>>1]|0;h=b[ia+158>>1]|0;do if(!((l|r)<<16>>16)){ba=(b[ia+180>>1]|0)-(b[ia+156>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){D=1;break}if((((g-h|0)<0?0-(g-h)|0:g-h|0)|0)>3){D=1;break}D=(c[ia+128>>2]|0)!=(c[ia+120>>2]|0)&1}else D=2;while(0);c[Fa>>2]=D;j=b[ia+54>>1]|0;g=b[ia+186>>1]|0;h=b[ia+162>>1]|0;do if(!((j|s)<<16>>16)){ba=(b[ia+184>>1]|0)-(b[ia+160>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){C=1;break}if((((g-h|0)<0?0-(g-h)|0:g-h|0)|0)>3){C=1;break}C=(c[ia+128>>2]|0)!=(c[ia+120>>2]|0)&1}else C=2;while(0);c[Ea>>2]=C;g=b[ia+30>>1]|0;if(g<<16>>16==0?(b[n>>1]|0)==0:0)y=0;else y=2;c[wa>>2]=y;aa=b[ia+36>>1]|0;ba=(aa|g)<<16>>16==0?0:2;c[va>>2]=ba;aa=(b[ia+38>>1]|aa)<<16>>16==0?0:2;c[ua>>2]=aa;o=o<<16>>16!=0|q<<16>>16==0^1?2:0;c[ta>>2]=o;q=q<<16>>16!=0|r<<16>>16==0^1?2:0;c[sa>>2]=q;g=r<<16>>16!=0|s<<16>>16==0^1?2:0;c[ra>>2]=g;s=(m|x)<<16>>16==0?0:2;c[qa>>2]=s;r=(l|m)<<16>>16==0?0:2;c[oa>>2]=r;n=(j|l)<<16>>16==0?0:2;c[na>>2]=n;m=t<<16>>16!=0|u<<16>>16==0^1?2:0;c[ma>>2]=m;h=(v|u)<<16>>16==0?0:2;c[la>>2]=h;j=(w|v)<<16>>16==0?0:2;c[ka>>2]=j;u=g;v=q;w=o;x=y;y=E;t=F;q=G;o=I;l=J;g=K;break a}case 3:{h=ia+28|0;j=b[ia+32>>1]|0;if(j<<16>>16==0?(b[h>>1]|0)==0:0)g=0;else g=2;c[La>>2]=g;s=b[ia+34>>1]|0;if(s<<16>>16==0?(b[ia+30>>1]|0)==0:0)O=0;else O=2;c[Ka>>2]=O;t=b[ia+40>>1]|0;if(t<<16>>16==0?(b[ia+36>>1]|0)==0:0)N=0;else N=2;c[Ja>>2]=N;k=b[ia+42>>1]|0;if(k<<16>>16==0?(b[ia+38>>1]|0)==0:0)M=0;else M=2;c[Ia>>2]=M;l=b[ia+44>>1]|0;L=(l|j)<<16>>16==0?0:2;c[Ha>>2]=L;u=b[ia+46>>1]|0;K=(u|s)<<16>>16==0?0:2;c[Ga>>2]=K;v=b[ia+52>>1]|0;D=(v|t)<<16>>16==0?0:2;c[Fa>>2]=D;m=b[ia+54>>1]|0;C=(m|k)<<16>>16==0?0:2;c[Ea>>2]=C;o=b[ia+48>>1]|0;B=(o|l)<<16>>16==0?0:2;c[Da>>2]=B;E=b[ia+50>>1]|0;A=(E|u)<<16>>16==0?0:2;c[Ca>>2]=A;F=b[ia+56>>1]|0;z=(F|v)<<16>>16==0?0:2;c[Ba>>2]=z;q=b[ia+58>>1]|0;y=(q|m)<<16>>16==0?0:2;c[Aa>>2]=y;r=b[ia+30>>1]|0;if(r<<16>>16==0?(b[h>>1]|0)==0:0)x=0;else x=2;c[wa>>2]=x;h=ia+36|0;if(!(b[ia+38>>1]|0)){h=b[h>>1]|0;if(!(h<<16>>16)){J=0;h=0}else ca=146}else{h=b[h>>1]|0;ca=146}if((ca|0)==146){ca=0;J=2}c[ua>>2]=J;I=j<<16>>16!=0|s<<16>>16==0^1?2:0;c[ta>>2]=I;G=t<<16>>16!=0|k<<16>>16==0^1?2:0;c[ra>>2]=G;w=(u|l)<<16>>16==0?0:2;c[qa>>2]=w;n=(m|v)<<16>>16==0?0:2;c[na>>2]=n;m=(E|o)<<16>>16==0?0:2;c[ma>>2]=m;j=(q|F)<<16>>16==0?0:2;c[ka>>2]=j;k=b[ia+150>>1]|0;l=b[ia+138>>1]|0;do if(!((h|r)<<16>>16)){ba=(b[ia+148>>1]|0)-(b[ia+136>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){q=1;break}if((((k-l|0)<0?0-(k-l)|0:k-l|0)|0)>3){q=1;break}q=(c[ia+120>>2]|0)!=(c[ia+116>>2]|0)&1}else q=2;while(0);c[va>>2]=q;h=b[ia+158>>1]|0;k=b[ia+146>>1]|0;do if(!((t|s)<<16>>16)){ba=(b[ia+156>>1]|0)-(b[ia+144>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){o=1;break}if((((h-k|0)<0?0-(h-k)|0:h-k|0)|0)>3){o=1;break}o=(c[ia+120>>2]|0)!=(c[ia+116>>2]|0)&1}else o=2;while(0);c[sa>>2]=o;h=b[ia+182>>1]|0;k=b[ia+170>>1]|0;do if(!((v|u)<<16>>16)){ba=(b[ia+180>>1]|0)-(b[ia+168>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){l=1;break}if((((h-k|0)<0?0-(h-k)|0:h-k|0)|0)>3){l=1;break}l=(c[ia+128>>2]|0)!=(c[ia+124>>2]|0)&1}else l=2;while(0);c[oa>>2]=l;h=b[ia+190>>1]|0;k=b[ia+178>>1]|0;do if(!((F|E)<<16>>16)){ba=(b[ia+188>>1]|0)-(b[ia+176>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){h=1;break}if((((h-k|0)<0?0-(h-k)|0:h-k|0)|0)>3){h=1;break}h=(c[ia+128>>2]|0)!=(c[ia+124>>2]|0)&1}else h=2;while(0);c[la>>2]=h;r=l;s=w;u=G;v=o;w=I;aa=J;ba=q;t=K;q=L;o=M;l=N;k=O;break a}default:{w=b[ia+32>>1]|0;h=b[ia+28>>1]|0;E=b[ia+142>>1]|0;j=b[ia+134>>1]|0;if(!((h|w)<<16>>16)){g=(b[ia+140>>1]|0)-(b[ia+132>>1]|0)|0;g=((((g|0)<0?0-g|0:g)|0)>3?1:(((E-j|0)<0?0-(E-j)|0:E-j|0)|0)>3)&1}else g=2;c[La>>2]=g;F=b[ia+34>>1]|0;m=b[ia+30>>1]|0;G=b[ia+146>>1]|0;n=b[ia+138>>1]|0;if(!((m|F)<<16>>16)){k=(b[ia+144>>1]|0)-(b[ia+136>>1]|0)|0;k=((((k|0)<0?0-k|0:k)|0)>3?1:(((G-n|0)<0?0-(G-n)|0:G-n|0)|0)>3)&1}else k=2;c[Ka>>2]=k;I=b[ia+40>>1]|0;r=b[ia+36>>1]|0;K=b[ia+158>>1]|0;u=b[ia+150>>1]|0;if(!((r|I)<<16>>16)){l=(b[ia+156>>1]|0)-(b[ia+148>>1]|0)|0;l=((((l|0)<0?0-l|0:l)|0)>3?1:(((K-u|0)<0?0-(K-u)|0:K-u|0)|0)>3)&1}else l=2;c[Ja>>2]=l;J=b[ia+42>>1]|0;s=b[ia+38>>1]|0;L=b[ia+162>>1]|0;v=b[ia+154>>1]|0;if(!((s|J)<<16>>16)){o=(b[ia+160>>1]|0)-(b[ia+152>>1]|0)|0;o=((((o|0)<0?0-o|0:o)|0)>3?1:(((L-v|0)<0?0-(L-v)|0:L-v|0)|0)>3)&1}else o=2;c[Ia>>2]=o;M=b[ia+44>>1]|0;N=b[ia+166>>1]|0;if(!((M|w)<<16>>16)){ba=(b[ia+164>>1]|0)-(b[ia+140>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)<=3?(((N-E|0)<0?0-(N-E)|0:N-E|0)|0)<=3:0)q=(c[ia+124>>2]|0)!=(c[ia+116>>2]|0)&1;else q=1}else q=2;c[Ha>>2]=q;O=b[ia+46>>1]|0;P=b[ia+170>>1]|0;do if(!((O|F)<<16>>16)){ba=(b[ia+168>>1]|0)-(b[ia+144>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3)t=1;else{if((((P-G|0)<0?0-(P-G)|0:P-G|0)|0)>3){t=1;break}t=(c[ia+124>>2]|0)!=(c[ia+116>>2]|0)&1}}else t=2;while(0);c[Ga>>2]=t;Q=b[ia+52>>1]|0;T=b[ia+182>>1]|0;do if(!((Q|I)<<16>>16)){ba=(b[ia+180>>1]|0)-(b[ia+156>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){D=1;break}if((((T-K|0)<0?0-(T-K)|0:T-K|0)|0)>3){D=1;break}D=(c[ia+128>>2]|0)!=(c[ia+120>>2]|0)&1}else D=2;while(0);c[Fa>>2]=D;R=b[ia+54>>1]|0;S=b[ia+186>>1]|0;do if(!((R|J)<<16>>16)){ba=(b[ia+184>>1]|0)-(b[ia+160>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){C=1;break}if((((S-L|0)<0?0-(S-L)|0:S-L|0)|0)>3){C=1;break}C=(c[ia+128>>2]|0)!=(c[ia+120>>2]|0)&1}else C=2;while(0);c[Ea>>2]=C;U=b[ia+48>>1]|0;V=b[ia+174>>1]|0;if(!((U|M)<<16>>16)){B=(b[ia+172>>1]|0)-(b[ia+164>>1]|0)|0;B=((((B|0)<0?0-B|0:B)|0)>3?1:(((V-N|0)<0?0-(V-N)|0:V-N|0)|0)>3)&1}else B=2;c[Da>>2]=B;W=b[ia+50>>1]|0;X=b[ia+178>>1]|0;if(!((W|O)<<16>>16)){A=(b[ia+176>>1]|0)-(b[ia+168>>1]|0)|0;A=((((A|0)<0?0-A|0:A)|0)>3?1:(((X-P|0)<0?0-(X-P)|0:X-P|0)|0)>3)&1}else A=2;c[Ca>>2]=A;Y=b[ia+56>>1]|0;$=b[ia+190>>1]|0;if(!((Y|Q)<<16>>16)){z=(b[ia+188>>1]|0)-(b[ia+180>>1]|0)|0;z=((((z|0)<0?0-z|0:z)|0)>3?1:((($-T|0)<0?0-($-T)|0:$-T|0)|0)>3)&1}else z=2;c[Ba>>2]=z;Z=b[ia+58>>1]|0;_=b[ia+194>>1]|0;if(!((Z|R)<<16>>16)){y=(b[ia+192>>1]|0)-(b[ia+184>>1]|0)|0;y=((((y|0)<0?0-y|0:y)|0)>3?1:(((_-S|0)<0?0-(_-S)|0:_-S|0)|0)>3)&1}else y=2;c[Aa>>2]=y;if(!((m|h)<<16>>16)){x=(b[ia+136>>1]|0)-(b[ia+132>>1]|0)|0;x=((((x|0)<0?0-x|0:x)|0)>3?1:(((n-j|0)<0?0-(n-j)|0:n-j|0)|0)>3)&1}else x=2;c[wa>>2]=x;do if(!((r|m)<<16>>16)){ba=(b[ia+148>>1]|0)-(b[ia+136>>1]|0)|0;if((((ba|0)<0?0-ba|0:ba)|0)>3){ba=1;break}if((((u-n|0)<0?0-(u-n)|0:u-n|0)|0)>3){ba=1;break}ba=(c[ia+120>>2]|0)!=(c[ia+116>>2]|0)&1}else ba=2;while(0);c[va>>2]=ba;if(!((s|r)<<16>>16)){aa=(b[ia+152>>1]|0)-(b[ia+148>>1]|0)|0;aa=((((aa|0)<0?0-aa|0:aa)|0)>3?1:(((v-u|0)<0?0-(v-u)|0:v-u|0)|0)>3)&1}else aa=2;c[ua>>2]=aa;if(!((F|w)<<16>>16)){w=(b[ia+144>>1]|0)-(b[ia+140>>1]|0)|0;w=((((w|0)<0?0-w|0:w)|0)>3?1:(((G-E|0)<0?0-(G-E)|0:G-E|0)|0)>3)&1}else w=2;c[ta>>2]=w;do if(!((I|F)<<16>>16)){F=(b[ia+156>>1]|0)-(b[ia+144>>1]|0)|0;if((((F|0)<0?0-F|0:F)|0)>3){v=1;break}if((((K-G|0)<0?0-(K-G)|0:K-G|0)|0)>3){v=1;break}v=(c[ia+120>>2]|0)!=(c[ia+116>>2]|0)&1}else v=2;while(0);c[sa>>2]=v;if(!((J|I)<<16>>16)){u=(b[ia+160>>1]|0)-(b[ia+156>>1]|0)|0;u=((((u|0)<0?0-u|0:u)|0)>3?1:(((L-K|0)<0?0-(L-K)|0:L-K|0)|0)>3)&1}else u=2;c[ra>>2]=u;if(!((O|M)<<16>>16)){s=(b[ia+168>>1]|0)-(b[ia+164>>1]|0)|0;s=((((s|0)<0?0-s|0:s)|0)>3?1:(((P-N|0)<0?0-(P-N)|0:P-N|0)|0)>3)&1}else s=2;c[qa>>2]=s;do if(!((Q|O)<<16>>16)){O=(b[ia+180>>1]|0)-(b[ia+168>>1]|0)|0;if((((O|0)<0?0-O|0:O)|0)>3){r=1;break}if((((T-P|0)<0?0-(T-P)|0:T-P|0)|0)>3){r=1;break}r=(c[ia+128>>2]|0)!=(c[ia+124>>2]|0)&1}else r=2;while(0);c[oa>>2]=r;if(!((R|Q)<<16>>16)){n=(b[ia+184>>1]|0)-(b[ia+180>>1]|0)|0;n=((((n|0)<0?0-n|0:n)|0)>3?1:(((S-T|0)<0?0-(S-T)|0:S-T|0)|0)>3)&1}else n=2;c[na>>2]=n;if(!((W|U)<<16>>16)){m=(b[ia+176>>1]|0)-(b[ia+172>>1]|0)|0;m=((((m|0)<0?0-m|0:m)|0)>3?1:(((X-V|0)<0?0-(X-V)|0:X-V|0)|0)>3)&1}else m=2;c[ma>>2]=m;do if(!((Y|W)<<16>>16)){W=(b[ia+188>>1]|0)-(b[ia+176>>1]|0)|0;if((((W|0)<0?0-W|0:W)|0)>3){h=1;break}if(((($-X|0)<0?0-($-X)|0:$-X|0)|0)>3){h=1;break}h=(c[ia+128>>2]|0)!=(c[ia+124>>2]|0)&1}else h=2;while(0);c[la>>2]=h;if(!((Z|Y)<<16>>16)){j=(b[ia+192>>1]|0)-(b[ia+188>>1]|0)|0;j=((((j|0)<0?0-j|0:j)|0)>3?1:(((_-$|0)<0?0-(_-$)|0:_-$|0)|0)>3)&1}else j=2;c[ka>>2]=j;break a}}while(0);if((i|0)==0?(h|j|m|n|r|s|u|v|w|aa|ba|x|y|z|A|B|C|D|t|q|o|l|k|g|0)==0:0)break}A=ia+20|0;h=c[A>>2]|0;C=ia+12|0;i=c[C>>2]|0;k=(i+h|0)<51?i+h|0:51;k=(k|0)>0?k:0;D=ia+16|0;j=c[D>>2]|0;m=(j+h|0)<51?j+h|0:51;l=d[6832+k>>0]|0;c[Ma+28>>2]=l;m=d[6896+((m|0)>0?m:0)>>0]|0;c[Ma+32>>2]=m;c[Ma+24>>2]=6960+(k*3|0);do if(!ea){g=c[(c[fa>>2]|0)+20>>2]|0;if((g|0)==(h|0)){c[Ma+4>>2]=l;c[Ma+8>>2]=m;c[Ma>>2]=6960+(k*3|0);break}else{ba=(((h+1+g|0)>>>1)+i|0)<51?((h+1+g|0)>>>1)+i|0:51;ba=(ba|0)>0?ba:0;aa=(((h+1+g|0)>>>1)+j|0)<51?((h+1+g|0)>>>1)+j|0:51;c[Ma+4>>2]=d[6832+ba>>0];c[Ma+8>>2]=d[6896+((aa|0)>0?aa:0)>>0];c[Ma>>2]=6960+(ba*3|0);break}}while(0);do if(!da){g=c[(c[ga>>2]|0)+20>>2]|0;if((g|0)==(h|0)){c[Ma+16>>2]=l;c[Ma+20>>2]=m;c[Ma+12>>2]=6960+(k*3|0);break}else{ba=(((h+1+g|0)>>>1)+i|0)<51?((h+1+g|0)>>>1)+i|0:51;ba=(ba|0)>0?ba:0;aa=(((h+1+g|0)>>>1)+j|0)<51?((h+1+g|0)>>>1)+j|0:51;c[Ma+16>>2]=d[6832+ba>>0];c[Ma+20>>2]=d[6896+((aa|0)>0?aa:0)>>0];c[Ma+12>>2]=6960+(ba*3|0);break}}while(0);B=p(xa,ja)|0;x=3;k=0;y=(c[e>>2]|0)+(B<<8)+(ha<<4)|0;z=Ma+48|0;while(1){if(f|0)Hb(y,f,Ma+12|0,ja<<4);f=c[z+12>>2]|0;if(f|0)Hb(y+4|0,f,Ma+24|0,ja<<4);i=z+16|0;f=c[z+20>>2]|0;if(f|0)Hb(y+8|0,f,Ma+24|0,ja<<4);j=z+24|0;f=c[z+28>>2]|0;if(f|0)Hb(y+12|0,f,Ma+24|0,ja<<4);g=c[z>>2]|0;h=z+8|0;f=c[h>>2]|0;b:do if(((g|0)==(f|0)?(g|0)==(c[i>>2]|0):0)?(g|0)==(c[j>>2]|0):0){if(g|0){if(g>>>0<4){t=d[(c[Ma+(k*12|0)>>2]|0)+(g+-1)>>0]|0;s=Ma+(k*12|0)+4|0;l=Ma+(k*12|0)+8|0;q=y;r=16;while(1){g=q+(0-(ja<<4)<<1)|0;k=q+(0-(ja<<4))|0;i=q+(ja<<4)|0;j=a[i>>0]|0;n=d[k>>0]|0;o=d[q>>0]|0;do if(((n-o|0)<0?0-(n-o)|0:n-o|0)>>>0<(c[s>>2]|0)>>>0){m=d[g>>0]|0;f=c[l>>2]|0;if(((m-n|0)<0?0-(m-n)|0:m-n|0)>>>0>=f>>>0)break;if((((j&255)-o|0)<0?0-((j&255)-o)|0:(j&255)-o|0)>>>0>=f>>>0)break;h=d[q+za>>0]|0;if(((h-n|0)<0?0-(h-n)|0:h-n|0)>>>0<f>>>0){a[g>>0]=((((n+1+o|0)>>>1)-(m<<1)+h>>1|0)<(0-t|0)?0-t|0:(((n+1+o|0)>>>1)-(m<<1)+h>>1|0)>(t|0)?t:((n+1+o|0)>>>1)-(m<<1)+h>>1)+m;g=c[l>>2]|0;f=t+1|0}else{g=f;f=t}h=d[q+(ja<<5)>>0]|0;if(((h-o|0)<0?0-(h-o)|0:h-o|0)>>>0<g>>>0){a[i>>0]=((((n+1+o|0)>>>1)-((j&255)<<1)+h>>1|0)<(0-t|0)?0-t|0:(((n+1+o|0)>>>1)-((j&255)<<1)+h>>1|0)>(t|0)?t:((n+1+o|0)>>>1)-((j&255)<<1)+h>>1)+(j&255);f=f+1|0}aa=0-f|0;aa=(4-(j&255)+(o-n<<2)+m>>3|0)<(aa|0)?aa:(4-(j&255)+(o-n<<2)+m>>3|0)>(f|0)?f:4-(j&255)+(o-n<<2)+m>>3;ba=a[3952+(o-aa)>>0]|0;a[k>>0]=a[3952+(aa+n)>>0]|0;a[q>>0]=ba}while(0);r=r+-1|0;if(!r)break b;else q=q+1|0}}w=Ma+(k*12|0)+4|0;q=Ma+(k*12|0)+8|0;u=y;v=16;while(1){j=u+(0-(ja<<4)<<1)|0;f=u+(0-(ja<<4))|0;n=u+(ja<<4)|0;l=a[n>>0]|0;r=d[f>>0]|0;s=d[u>>0]|0;h=(r-s|0)<0?0-(r-s)|0:r-s|0;g=c[w>>2]|0;c:do if(h>>>0<g>>>0){t=d[j>>0]|0;i=c[q>>2]|0;if(((t-r|0)<0?0-(t-r)|0:t-r|0)>>>0>=i>>>0)break;if((((l&255)-s|0)<0?0-((l&255)-s)|0:(l&255)-s|0)>>>0>=i>>>0)break;k=u+za|0;o=u+(ja<<5)|0;m=a[o>>0]|0;do if(h>>>0<((g>>>2)+2|0)>>>0){g=d[k>>0]|0;if(((g-r|0)<0?0-(g-r)|0:g-r|0)>>>0<i>>>0){a[f>>0]=((l&255)+4+(s+r+t<<1)+g|0)>>>3;a[j>>0]=(s+r+t+2+g|0)>>>2;h=g*3|0;i=3;j=s+r+t+4|0;f=k;g=d[u+(0-(ja<<4)<<2)>>0]|0}else{h=2;i=2;j=(l&255)+r|0;g=t}a[f>>0]=(j+h+(g<<1)|0)>>>i;if((((m&255)-s|0)<0?0-((m&255)-s)|0:(m&255)-s|0)>>>0>=(c[q>>2]|0)>>>0)break;a[u>>0]=(((l&255)+r+s<<1)+4+t+(m&255)|0)>>>3;a[n>>0]=((l&255)+r+s+2+(m&255)|0)>>>2;a[o>>0]=((l&255)+r+s+4+((m&255)*3|0)+(d[u+(ja*48|0)>>0]<<1)|0)>>>3;break c}else a[f>>0]=((l&255)+r+2+(t<<1)|0)>>>2;while(0);a[u>>0]=(t+s+2+((l&255)<<1)|0)>>>2}while(0);v=v+-1|0;if(!v)break;else u=u+1|0}}}else ca=276;while(0);do if((ca|0)==276){ca=0;if(g){Ib(y,g,Ma+(k*12|0)|0,ja<<4);f=c[h>>2]|0}if(f|0)Ib(y+4|0,f,Ma+(k*12|0)|0,ja<<4);f=c[i>>2]|0;if(f|0)Ib(y+8|0,f,Ma+(k*12|0)|0,ja<<4);f=c[j>>2]|0;if(!f)break;Ib(y+12|0,f,Ma+(k*12|0)|0,ja<<4)}while(0);if(!x)break;f=c[z+36>>2]|0;x=x+-1|0;k=2;y=y+(ja<<6)|0;z=z+32|0}n=c[ia+24>>2]|0;l=c[A>>2]|0;m=(l+n|0)<51?l+n|0:51;m=c[224+(((m|0)>0?m:0)<<2)>>2]|0;j=c[C>>2]|0;k=(j+m|0)<51?j+m|0:51;k=(k|0)>0?k:0;g=c[D>>2]|0;i=(g+m|0)<51?g+m|0:51;h=d[6832+k>>0]|0;c[Ma+28>>2]=h;i=d[6896+((i|0)>0?i:0)>>0]|0;c[Ma+32>>2]=i;c[Ma+24>>2]=6960+(k*3|0);do if(!ea){f=c[(c[fa>>2]|0)+20>>2]|0;if((f|0)==(l|0)){c[Ma+4>>2]=h;c[Ma+8>>2]=i;c[Ma>>2]=6960+(k*3|0);break}else{ea=(f+n|0)<51?f+n|0:51;ea=(m+1+(c[224+(((ea|0)>0?ea:0)<<2)>>2]|0)|0)>>>1;fa=(ea+j|0)<51?ea+j|0:51;fa=(fa|0)>0?fa:0;ea=(ea+g|0)<51?ea+g|0:51;c[Ma+4>>2]=d[6832+fa>>0];c[Ma+8>>2]=d[6896+((ea|0)>0?ea:0)>>0];c[Ma>>2]=6960+(fa*3|0);break}}while(0);do if(!da){f=c[(c[ga>>2]|0)+20>>2]|0;if((f|0)==(l|0)){c[Ma+16>>2]=h;c[Ma+20>>2]=i;c[Ma+12>>2]=6960+(k*3|0);break}else{fa=(f+n|0)<51?f+n|0:51;fa=(m+1+(c[224+(((fa|0)>0?fa:0)<<2)>>2]|0)|0)>>>1;ga=(fa+j|0)<51?fa+j|0:51;ga=(ga|0)>0?ga:0;fa=(fa+g|0)<51?fa+g|0:51;c[Ma+16>>2]=d[6832+ga>>0];c[Ma+20>>2]=d[6896+((fa|0)>0?fa:0)>>0];c[Ma+12>>2]=6960+(ga*3|0);break}}while(0);h=(c[e>>2]|0)+(ya<<8)+(B<<6)+(ha<<3)|0;j=h+(ya<<6)|0;f=c[Ma+48+4>>2]|0;if(f|0){Jb(h,f,Ma+12|0,ja<<3);Jb(j,c[Ma+48+4>>2]|0,Ma+12|0,ja<<3)}f=c[Ma+48+36>>2]|0;if(f|0){Jb(h+(ja<<4)|0,f,Ma+12|0,ja<<3);Jb(j+(ja<<4)|0,c[Ma+48+36>>2]|0,Ma+12|0,ja<<3)}f=c[Ma+48+20>>2]|0;if(f|0){Jb(h+4|0,f,Ma+24|0,ja<<3);Jb(j+4|0,c[Ma+48+20>>2]|0,Ma+24|0,ja<<3)}f=c[Ma+48+52>>2]|0;if(f|0){Jb(h+(ja<<4)+4|0,f,Ma+24|0,ja<<3);Jb(j+(ja<<4)+4|0,c[Ma+48+52>>2]|0,Ma+24|0,ja<<3)}g=c[Ma+48>>2]|0;f=c[Ma+48+8>>2]|0;do if(((g|0)==(f|0)?(g|0)==(c[Ma+48+16>>2]|0):0)&(g|0)==(c[Ma+48+24>>2]|0)){if(g|0){Kb(h,g,Ma,ja<<3);Kb(j,c[Ma+48>>2]|0,Ma,ja<<3)}}else{if(g){Lb(h,g,Ma,ja<<3);Lb(j,c[Ma+48>>2]|0,Ma,ja<<3);f=c[Ma+48+8>>2]|0}if(f|0){Lb(h+2|0,f,Ma,ja<<3);Lb(j+2|0,c[Ma+48+8>>2]|0,Ma,ja<<3)}f=c[Ma+48+16>>2]|0;if(f|0){Lb(h+4|0,f,Ma,ja<<3);Lb(j+4|0,c[Ma+48+16>>2]|0,Ma,ja<<3)}f=c[Ma+48+24>>2]|0;if(!f)break;Lb(h+6|0,f,Ma,ja<<3);Lb(j+6|0,c[Ma+48+24>>2]|0,Ma,ja<<3)}while(0);i=h+(ja<<5)|0;h=j+(ja<<5)|0;f=c[Ma+48+68>>2]|0;if(f|0){Jb(i,f,Ma+12|0,ja<<3);Jb(h,c[Ma+48+68>>2]|0,Ma+12|0,ja<<3)}f=c[Ma+48+100>>2]|0;if(f|0){Jb(i+(ja<<4)|0,f,Ma+12|0,ja<<3);Jb(h+(ja<<4)|0,c[Ma+48+100>>2]|0,Ma+12|0,ja<<3)}f=c[Ma+48+84>>2]|0;if(f|0){Jb(i+4|0,f,Ma+24|0,ja<<3);Jb(h+4|0,c[Ma+48+84>>2]|0,Ma+24|0,ja<<3)}f=c[Ma+48+116>>2]|0;if(f|0){Jb(i+(ja<<4)+4|0,f,Ma+24|0,ja<<3);Jb(h+(ja<<4)+4|0,c[Ma+48+116>>2]|0,Ma+24|0,ja<<3)}g=c[Ma+48+64>>2]|0;f=c[Ma+48+72>>2]|0;if(((g|0)==(f|0)?(g|0)==(c[Ma+48+80>>2]|0):0)&(g|0)==(c[Ma+48+88>>2]|0)){if(!g)break;Kb(i,g,Ma+24|0,ja<<3);Kb(h,c[Ma+48+64>>2]|0,Ma+24|0,ja<<3);break}if(g){Lb(i,g,Ma+24|0,ja<<3);Lb(h,c[Ma+48+64>>2]|0,Ma+24|0,ja<<3);f=c[Ma+48+72>>2]|0}if(f|0){Lb(i+2|0,f,Ma+24|0,ja<<3);Lb(h+2|0,c[Ma+48+72>>2]|0,Ma+24|0,ja<<3)}f=c[Ma+48+80>>2]|0;if(f|0){Lb(i+4|0,f,Ma+24|0,ja<<3);Lb(h+4|0,c[Ma+48+80>>2]|0,Ma+24|0,ja<<3)}f=c[Ma+48+88>>2]|0;if(!f)break;Lb(i+6|0,f,Ma+24|0,ja<<3);Lb(h+6|0,c[Ma+48+88>>2]|0,Ma+24|0,ja<<3)}while(0);f=ha+1|0;xa=xa+((f|0)==(ja|0)&1)|0;if(xa>>>0>=(c[e+8>>2]|0)>>>0)break;else{ha=(f|0)==(ja|0)?0:f;ia=ia+216|0}}H=Ma;return}function Hb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;if(e>>>0<4){p=d[(c[f>>2]|0)+(e+-1)>>0]|0;o=4;while(1){e=b+-2|0;l=b+-1|0;j=b+1|0;k=a[j>>0]|0;m=d[l>>0]|0;n=d[b>>0]|0;if((((m-n|0)<0?0-(m-n)|0:m-n|0)>>>0<(c[f+4>>2]|0)>>>0?(r=d[e>>0]|0,q=c[f+8>>2]|0,((r-m|0)<0?0-(r-m)|0:r-m|0)>>>0<q>>>0):0)?(((k&255)-n|0)<0?0-((k&255)-n)|0:(k&255)-n|0)>>>0<q>>>0:0){i=a[b+2>>0]|0;h=d[b+-3>>0]|0;if(((h-m|0)<0?0-(h-m)|0:h-m|0)>>>0<q>>>0){a[e>>0]=((((m+1+n|0)>>>1)-(r<<1)+h>>1|0)<(0-p|0)?0-p|0:(((m+1+n|0)>>>1)-(r<<1)+h>>1|0)>(p|0)?p:((m+1+n|0)>>>1)-(r<<1)+h>>1)+r;h=c[f+8>>2]|0;e=p+1|0}else{h=q;e=p}if((((i&255)-n|0)<0?0-((i&255)-n)|0:(i&255)-n|0)>>>0<h>>>0){a[j>>0]=((((m+1+n|0)>>>1)-((k&255)<<1)+(i&255)>>1|0)<(0-p|0)?0-p|0:(((m+1+n|0)>>>1)-((k&255)<<1)+(i&255)>>1|0)>(p|0)?p:((m+1+n|0)>>>1)-((k&255)<<1)+(i&255)>>1)+(k&255);e=e+1|0}u=0-e|0;u=(4-(k&255)+(n-m<<2)+r>>3|0)<(u|0)?u:(4-(k&255)+(n-m<<2)+r>>3|0)>(e|0)?e:4-(k&255)+(n-m<<2)+r>>3;v=a[3952+(n-u)>>0]|0;a[l>>0]=a[3952+(u+m)>>0]|0;a[b>>0]=v}o=o+-1|0;if(!o)break;else b=b+g|0}return}t=4;while(1){i=b+-2|0;l=b+-1|0;p=b+1|0;n=a[p>>0]|0;r=d[l>>0]|0;s=d[b>>0]|0;h=(r-s|0)<0?0-(r-s)|0:r-s|0;e=c[f+4>>2]|0;do if((h>>>0<e>>>0?(v=d[i>>0]|0,u=c[f+8>>2]|0,((v-r|0)<0?0-(v-r)|0:v-r|0)>>>0<u>>>0):0)?(((n&255)-s|0)<0?0-((n&255)-s)|0:(n&255)-s|0)>>>0<u>>>0:0){m=b+-3|0;q=b+2|0;o=a[q>>0]|0;if(h>>>0<((e>>>2)+2|0)>>>0){e=d[m>>0]|0;if(((e-r|0)<0?0-(e-r)|0:e-r|0)>>>0<u>>>0){a[l>>0]=((n&255)+4+(s+r+v<<1)+e|0)>>>3;a[i>>0]=(s+r+v+2+e|0)>>>2;i=e*3|0;j=3;k=s+r+v+4|0;e=m;h=d[b+-4>>0]|0}else{i=2;j=2;k=(n&255)+r|0;e=l;h=v}a[e>>0]=(k+i+(h<<1)|0)>>>j;if((((o&255)-s|0)<0?0-((o&255)-s)|0:(o&255)-s|0)>>>0<(c[f+8>>2]|0)>>>0){a[b>>0]=(((n&255)+r+s<<1)+4+v+(o&255)|0)>>>3;a[p>>0]=((n&255)+r+s+2+(o&255)|0)>>>2;a[q>>0]=((n&255)+r+s+4+((o&255)*3|0)+((d[b+3>>0]|0)<<1)|0)>>>3;break}}else a[l>>0]=((n&255)+r+2+(v<<1)|0)>>>2;a[b>>0]=(v+s+2+((n&255)<<1)|0)>>>2}while(0);t=t+-1|0;if(!t)break;else b=b+g|0}return}function Ib(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;q=d[(c[f>>2]|0)+(e+-1)>>0]|0;r=p(g,-3)|0;o=4;while(1){e=b+(0-g<<1)|0;l=b+(0-g)|0;j=b+g|0;k=a[j>>0]|0;m=d[l>>0]|0;n=d[b>>0]|0;if((((m-n|0)<0?0-(m-n)|0:m-n|0)>>>0<(c[f+4>>2]|0)>>>0?(t=d[e>>0]|0,s=c[f+8>>2]|0,((t-m|0)<0?0-(t-m)|0:t-m|0)>>>0<s>>>0):0)?(((k&255)-n|0)<0?0-((k&255)-n)|0:(k&255)-n|0)>>>0<s>>>0:0){h=d[b+r>>0]|0;if(((h-m|0)<0?0-(h-m)|0:h-m|0)>>>0<s>>>0){a[e>>0]=((((m+1+n|0)>>>1)-(t<<1)+h>>1|0)<(0-q|0)?0-q|0:(((m+1+n|0)>>>1)-(t<<1)+h>>1|0)>(q|0)?q:((m+1+n|0)>>>1)-(t<<1)+h>>1)+t;h=c[f+8>>2]|0;e=q+1|0}else{h=s;e=q}i=d[b+(g<<1)>>0]|0;if(((i-n|0)<0?0-(i-n)|0:i-n|0)>>>0<h>>>0){a[j>>0]=((((m+1+n|0)>>>1)-((k&255)<<1)+i>>1|0)<(0-q|0)?0-q|0:(((m+1+n|0)>>>1)-((k&255)<<1)+i>>1|0)>(q|0)?q:((m+1+n|0)>>>1)-((k&255)<<1)+i>>1)+(k&255);e=e+1|0}j=0-e|0;k=(4-(k&255)+(n-m<<2)+t>>3|0)<(j|0)?j:(4-(k&255)+(n-m<<2)+t>>3|0)>(e|0)?e:4-(k&255)+(n-m<<2)+t>>3;n=a[3952+(n-k)>>0]|0;a[l>>0]=a[3952+(k+m)>>0]|0;a[b>>0]=n}o=o+-1|0;if(!o)break;else b=b+1|0}return}function Jb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=a[b+1>>0]|0;j=d[b+-1>>0]|0;l=d[b>>0]|0;do if((((j-l|0)<0?0-(j-l)|0:j-l|0)>>>0<(c[f+4>>2]|0)>>>0?(k=d[b+-2>>0]|0,i=c[f+8>>2]|0,((k-j|0)<0?0-(k-j)|0:k-j|0)>>>0<i>>>0):0)?(((h&255)-l|0)<0?0-((h&255)-l)|0:(h&255)-l|0)>>>0<i>>>0:0)if(e>>>0<4){i=d[(c[f>>2]|0)+(e+-1)>>0]|0;k=(4-(h&255)+(l-j<<2)+k>>3|0)<(~i|0)?~i:(4-(h&255)+(l-j<<2)+k>>3|0)>(i+1|0)?i+1|0:4-(h&255)+(l-j<<2)+k>>3;l=a[3952+(l-k)>>0]|0;a[b+-1>>0]=a[3952+(k+j)>>0]|0;a[b>>0]=l;break}else{a[b+-1>>0]=(j+2+(h&255)+(k<<1)|0)>>>2;a[b>>0]=(l+2+((h&255)<<1)+k|0)>>>2;break}while(0);i=d[b+g+-1>>0]|0;j=d[b+g>>0]|0;if(((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0>=(c[f+4>>2]|0)>>>0)return;k=d[b+g+-2>>0]|0;h=c[f+8>>2]|0;if(((k-i|0)<0?0-(k-i)|0:k-i|0)>>>0>=h>>>0)return;l=d[b+g+1>>0]|0;if(((l-j|0)<0?0-(l-j)|0:l-j|0)>>>0>=h>>>0)return;if(e>>>0<4){e=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=(4-l+(j-i<<2)+k>>3|0)<(~e|0)?~e:(4-l+(j-i<<2)+k>>3|0)>(e+1|0)?e+1|0:4-l+(j-i<<2)+k>>3;f=a[3952+(j-e)>>0]|0;a[b+g+-1>>0]=a[3952+(e+i)>>0]|0;a[b+g>>0]=f;return}else{a[b+g+-1>>0]=(i+2+l+(k<<1)|0)>>>2;a[b+g>>0]=(j+2+(l<<1)+k|0)>>>2;return}}function Kb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;if(e>>>0<4){m=d[(c[f>>2]|0)+(e+-1)>>0]|0;k=b;l=8;while(1){h=k+(0-g)|0;e=a[k+g>>0]|0;i=d[h>>0]|0;j=d[k>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<(c[f+4>>2]|0)>>>0?(o=d[k+(0-g<<1)>>0]|0,n=c[f+8>>2]|0,((o-i|0)<0?0-(o-i)|0:o-i|0)>>>0<n>>>0):0)?(((e&255)-j|0)<0?0-((e&255)-j)|0:(e&255)-j|0)>>>0<n>>>0:0){z=(4-(e&255)+(j-i<<2)+o>>3|0)<(~m|0)?~m:(4-(e&255)+(j-i<<2)+o>>3|0)>(m+1|0)?m+1|0:4-(e&255)+(j-i<<2)+o>>3;b=a[3952+(j-z)>>0]|0;a[h>>0]=a[3952+(z+i)>>0]|0;a[k>>0]=b}l=l+-1|0;if(!l)break;else k=k+1|0}return}n=0-g<<1;h=a[b+g>>0]|0;i=d[b+(0-g)>>0]|0;j=d[b>>0]|0;e=c[f+4>>2]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(l=d[b+n>>0]|0,k=c[f+8>>2]|0,((l-i|0)<0?0-(l-i)|0:l-i|0)>>>0<k>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<k>>>0:0){a[b+(0-g)>>0]=(i+2+(h&255)+(l<<1)|0)>>>2;a[b>>0]=(j+2+((h&255)<<1)+l|0)>>>2;e=c[f+4>>2]|0}h=a[b+1+g>>0]|0;i=d[b+1+(0-g)>>0]|0;j=d[b+1>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(p=d[b+1+n>>0]|0,m=c[f+8>>2]|0,((p-i|0)<0?0-(p-i)|0:p-i|0)>>>0<m>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<m>>>0:0){a[b+1+(0-g)>>0]=(i+2+(h&255)+(p<<1)|0)>>>2;a[b+1>>0]=(j+2+((h&255)<<1)+p|0)>>>2;e=c[f+4>>2]|0}h=a[b+2+g>>0]|0;i=d[b+2+(0-g)>>0]|0;j=d[b+2>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(r=d[b+2+n>>0]|0,q=c[f+8>>2]|0,((r-i|0)<0?0-(r-i)|0:r-i|0)>>>0<q>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<q>>>0:0){a[b+2+(0-g)>>0]=(i+2+(h&255)+(r<<1)|0)>>>2;a[b+2>>0]=(j+2+((h&255)<<1)+r|0)>>>2;e=c[f+4>>2]|0}h=a[b+3+g>>0]|0;i=d[b+3+(0-g)>>0]|0;j=d[b+3>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(t=d[b+3+n>>0]|0,s=c[f+8>>2]|0,((t-i|0)<0?0-(t-i)|0:t-i|0)>>>0<s>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<s>>>0:0){a[b+3+(0-g)>>0]=(i+2+(h&255)+(t<<1)|0)>>>2;a[b+3>>0]=(j+2+((h&255)<<1)+t|0)>>>2;e=c[f+4>>2]|0}h=a[b+4+g>>0]|0;i=d[b+4+(0-g)>>0]|0;j=d[b+4>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(v=d[b+4+n>>0]|0,u=c[f+8>>2]|0,((v-i|0)<0?0-(v-i)|0:v-i|0)>>>0<u>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<u>>>0:0){a[b+4+(0-g)>>0]=(i+2+(h&255)+(v<<1)|0)>>>2;a[b+4>>0]=(j+2+((h&255)<<1)+v|0)>>>2;e=c[f+4>>2]|0}h=a[b+5+g>>0]|0;i=d[b+5+(0-g)>>0]|0;j=d[b+5>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(x=d[b+5+n>>0]|0,w=c[f+8>>2]|0,((x-i|0)<0?0-(x-i)|0:x-i|0)>>>0<w>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<w>>>0:0){a[b+5+(0-g)>>0]=(i+2+(h&255)+(x<<1)|0)>>>2;a[b+5>>0]=(j+2+((h&255)<<1)+x|0)>>>2;e=c[f+4>>2]|0}h=a[b+6+g>>0]|0;i=d[b+6+(0-g)>>0]|0;j=d[b+6>>0]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(z=d[b+6+n>>0]|0,y=c[f+8>>2]|0,((z-i|0)<0?0-(z-i)|0:z-i|0)>>>0<y>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<y>>>0:0){a[b+6+(0-g)>>0]=(i+2+(h&255)+(z<<1)|0)>>>2;a[b+6>>0]=(j+2+((h&255)<<1)+z|0)>>>2;e=c[f+4>>2]|0}j=d[b+7+(0-g)>>0]|0;k=d[b+7>>0]|0;if(((j-k|0)<0?0-(j-k)|0:j-k|0)>>>0>=e>>>0)return;i=d[b+7+n>>0]|0;e=c[f+8>>2]|0;if(((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0>=e>>>0)return;h=d[b+7+g>>0]|0;if(((h-k|0)<0?0-(h-k)|0:h-k|0)>>>0>=e>>>0)return;a[b+7+(0-g)>>0]=(j+2+h+(i<<1)|0)>>>2;a[b+7>>0]=(k+2+(h<<1)+i|0)>>>2;return}function Lb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;m=d[(c[f>>2]|0)+(e+-1)>>0]|0;h=a[b+g>>0]|0;i=d[b+(0-g)>>0]|0;j=d[b>>0]|0;e=c[f+4>>2]|0;if((((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0<e>>>0?(l=d[b+(0-g<<1)>>0]|0,k=c[f+8>>2]|0,((l-i|0)<0?0-(l-i)|0:l-i|0)>>>0<k>>>0):0)?(((h&255)-j|0)<0?0-((h&255)-j)|0:(h&255)-j|0)>>>0<k>>>0:0){l=(4-(h&255)+(j-i<<2)+l>>3|0)<(~m|0)?~m:(4-(h&255)+(j-i<<2)+l>>3|0)>(m+1|0)?m+1|0:4-(h&255)+(j-i<<2)+l>>3;e=a[3952+(j-l)>>0]|0;a[b+(0-g)>>0]=a[3952+(l+i)>>0]|0;a[b>>0]=e;e=c[f+4>>2]|0}j=d[b+1+(0-g)>>0]|0;k=d[b+1>>0]|0;if(((j-k|0)<0?0-(j-k)|0:j-k|0)>>>0>=e>>>0)return;i=d[b+1+(0-g<<1)>>0]|0;e=c[f+8>>2]|0;if(((i-j|0)<0?0-(i-j)|0:i-j|0)>>>0>=e>>>0)return;h=d[b+1+g>>0]|0;if(((h-k|0)<0?0-(h-k)|0:h-k|0)>>>0>=e>>>0)return;f=(4-h+(k-j<<2)+i>>3|0)<(~m|0)?~m:(4-h+(k-j<<2)+i>>3|0)>(m+1|0)?m+1|0:4-h+(k-j<<2)+i>>3;m=a[3952+(k-f)>>0]|0;a[b+1+(0-g)>>0]=a[3952+(f+j)>>0]|0;a[b+1>>0]=m;return}function Mb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=c[b+4>>2]|0;n=c[b+8>>2]|0;switch(d|0){case 0:case 5:{f=3;break}default:if(!(c[a+3384>>2]|0))e=0;else f=3}if((f|0)==3){f=0;do{e=vb(a+1220|0,f)|0;f=f+1|0}while(f>>>0<16&(e|0)==0)}k=c[a+1176>>2]|0;if(k|0){h=c[a+1212>>2]|0;f=0;g=0;i=0;while(1){if(c[h+(g*216|0)+196>>2]|0){j=f;f=g;l=i;break}g=g+1|0;f=f+1|0;i=i+((f|0)==(m|0)&1)|0;f=(f|0)==(m|0)?0:f;if(g>>>0>=k>>>0){j=f;f=g;l=i;break}}if((f|0)!=(k|0)){h=(c[a+1212>>2]|0)+((p(l,m)|0)*216|0)|0;if(j|0){f=j;do{f=f+-1|0;k=h+(f*216|0)|0;Nb(k,b,l,f,d,e);c[k+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1}while((f|0)!=0)}f=j+1|0;if(f>>>0<m>>>0)do{g=h+(f*216|0)|0;if(!(c[g+196>>2]|0)){Nb(g,b,l,f,d,e);c[g+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1}f=f+1|0}while((f|0)!=(m|0));a:do if((l|0)!=0&(m|0)!=0){j=l+-1|0;k=p(j,m)|0;g=l+-2|0;if(!j){f=0;while(1){j=(c[a+1212>>2]|0)+(k*216|0)+(f*216|0)|0;Nb(j,b,0,f,d,e);c[j+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1;f=f+1|0;if((f|0)==(m|0))break a}}i=0;do{f=(c[a+1212>>2]|0)+(k*216|0)+(i*216|0)|0;Nb(f,b,j,i,d,e);c[f+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1;h=g;while(1){o=f;f=f+((0-m|0)*216|0)|0;Nb(f,b,h,i,d,e);c[o+((0-m|0)*216|0)+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1;if(!h)break;else h=h+-1|0}i=i+1|0}while((i|0)!=(m|0))}while(0);f=l+1|0;if(f>>>0>=n>>>0)return 0;if(!m)return 0;do{g=(c[a+1212>>2]|0)+((p(f,m)|0)*216|0)|0;i=0;do{h=g+(i*216|0)|0;if(!(c[h+196>>2]|0)){Nb(h,b,f,i,d,e);c[h+196>>2]=1;c[a+1204>>2]=(c[a+1204>>2]|0)+1}i=i+1|0}while((i|0)!=(m|0));f=f+1|0}while((f|0)!=(n|0));return 0}}switch(d|0){case 2:case 7:{if((e|0)==0|(c[a+3384>>2]|0)==0)f=13;else f=14;break}default:if(!e)f=13;else f=14}if((f|0)==13)fc(c[b>>2]|0,128,p(m*384|0,n)|0);else if((f|0)==14)ec(c[b>>2]|0,e,p(m*384|0,n)|0);g=c[a+1176>>2]|0;c[a+1204>>2]=g;if(!g)return 0;e=c[a+1212>>2]|0;f=0;do{c[e+(f*216|0)+8>>2]=1;f=f+1|0}while((f|0)!=(g|0));return 0}function Nb(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=H;H=H+480|0;N=c[e+4>>2]|0;x=c[e+8>>2]|0;Z(e,(p(N,f)|0)+g|0);j=(c[e>>2]|0)+(p(f<<8,N)|0)+(g<<4)|0;c[b+20>>2]=40;c[b+8>>2]=0;c[b>>2]=6;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;a:do switch(h|0){case 2:case 7:{fc(O+64|0,0,384);break}default:{c[O+472>>2]=0;c[O+448+4>>2]=N;c[O+448+8>>2]=x;c[O+448>>2]=i;if(!i){fc(O+64|0,0,384);break a}pb(O+64|0,O+472|0,O+448|0,g<<4,f<<4,0,0,16,16);Eb(e,O+64|0);H=O;return}}while(0);fc(O,0,64);if((f|0)!=0?(c[b+((0-N|0)*216|0)+196>>2]|0)!=0:0){t=j+(0-(N<<4))+1+1|0;u=(d[j+(0-(N<<4))+1>>0]|0)+(d[j+(0-(N<<4))>>0]|0)+(d[t>>0]|0)+(d[t+1>>0]|0)|0;s=t+1+1+1+1+1|0;t=(d[t+1+1+1>>0]|0)+(d[t+1+1>>0]|0)+(d[t+1+1+1+1>>0]|0)+(d[s>>0]|0)|0;y=s+1+1+1+1+1|0;s=(d[s+1+1>>0]|0)+(d[s+1>>0]|0)+(d[s+1+1+1>>0]|0)+(d[s+1+1+1+1>>0]|0)|0;y=(d[y+1>>0]|0)+(d[y>>0]|0)+(d[y+1+1>>0]|0)+(d[y+1+1+1>>0]|0)|0;c[O>>2]=s+(t+u)+(c[O>>2]|0)+y;c[O+4>>2]=t+u-s-y+(c[O+4>>2]|0);v=1}else{u=0;t=0;s=0;y=0;v=0}if((x+-1|0)!=(f|0)?(c[b+(N*216|0)+196>>2]|0)!=0:0){A=j+(N<<8)+1+1+1|0;z=(d[j+(N<<8)+1>>0]|0)+(d[j+(N<<8)>>0]|0)+(d[j+(N<<8)+1+1>>0]|0)+(d[A>>0]|0)|0;w=A+1+1+1+1+1|0;A=(d[A+1+1>>0]|0)+(d[A+1>>0]|0)+(d[A+1+1+1>>0]|0)+(d[A+1+1+1+1>>0]|0)|0;B=(d[w+1>>0]|0)+(d[w>>0]|0)+(d[w+1+1>>0]|0)+(d[w+1+1+1>>0]|0)|0;C=w+1+1+1+1+1|0;C=(d[C>>0]|0)+(d[w+1+1+1+1>>0]|0)+(d[C+1>>0]|0)+(d[C+1+1>>0]|0)|0;c[O>>2]=B+(A+z)+(c[O>>2]|0)+C;c[O+4>>2]=A+z-B-C+(c[O+4>>2]|0);w=1;q=v+1|0}else{w=0;z=0;A=0;B=0;C=0;q=v}if((g|0)!=0?(c[b+-20>>2]|0)!=0:0){D=(d[j+-1+(N<<4)>>0]|0)+(d[j+-1>>0]|0)+(d[j+-1+(N<<5)>>0]|0)+(d[j+-1+(N*48|0)>>0]|0)|0;K=j+-1+(N<<6)|0;E=(d[K+(N<<4)>>0]|0)+(d[K>>0]|0)+(d[K+(N<<5)>>0]|0)+(d[K+(N*48|0)>>0]|0)|0;J=(d[K+(N<<6)+(N<<4)>>0]|0)+(d[K+(N<<6)>>0]|0)+(d[K+(N<<6)+(N<<5)>>0]|0)+(d[K+(N<<6)+(N*48|0)>>0]|0)|0;K=K+(N<<6)+(N<<6)|0;K=(d[K+(N<<4)>>0]|0)+(d[K>>0]|0)+(d[K+(N<<5)>>0]|0)+(d[K+(N*48|0)>>0]|0)|0;c[O>>2]=J+(E+D)+(c[O>>2]|0)+K;c[O+16>>2]=E+D-J-K+(c[O+16>>2]|0);h=q+1|0;r=1}else{h=q;D=0;E=0;J=0;K=0;r=0}do if((N+-1|0)!=(g|0)?(c[b+412>>2]|0)!=0:0){o=(d[j+16+(N<<4)>>0]|0)+(d[j+16>>0]|0)+(d[j+16+(N<<5)>>0]|0)+(d[j+16+(N*48|0)>>0]|0)|0;n=j+16+(N<<6)|0;l=(d[n+(N<<4)>>0]|0)+(d[n>>0]|0)+(d[n+(N<<5)>>0]|0)+(d[n+(N*48|0)>>0]|0)|0;m=(d[n+(N<<6)+(N<<4)>>0]|0)+(d[n+(N<<6)>>0]|0)+(d[n+(N<<6)+(N<<5)>>0]|0)+(d[n+(N<<6)+(N*48|0)>>0]|0)|0;n=n+(N<<6)+(N<<6)|0;n=(d[n+(N<<4)>>0]|0)+(d[n>>0]|0)+(d[n+(N<<5)>>0]|0)+(d[n+(N*48|0)>>0]|0)|0;h=h+1|0;b=r+1|0;c[O>>2]=m+(l+o)+(c[O>>2]|0)+n;j=l+o-m-n+(c[O+16>>2]|0)|0;c[O+16>>2]=j;k=(q|0)==0;i=(r|0)!=0;if(!(k&i)){if(!k){j=1;k=O+4|0;G=21;break}}else c[O+4>>2]=J+K+E+D-o-l-m-n>>5;m=1;n=O+16|0;l=(v|0)!=0;k=(w|0)!=0;G=27}else G=17;while(0);if((G|0)==17){i=(r|0)!=0;if(!q){m=0;o=i;b=r;G=23}else{j=0;k=O+4|0;b=r;G=21}}if((G|0)==21){c[k>>2]=c[k>>2]>>q+3;m=j;o=i;G=23}do if((G|0)==23){i=(b|0)==0;l=(v|0)!=0;k=(w|0)!=0;if(k&(l&i)){c[O+16>>2]=s+y+t+u-C-B-A-z>>5;M=m;L=o;l=1;k=1;break}if(i){M=m;L=o}else{j=c[O+16>>2]|0;n=O+16|0;i=o;G=27}}while(0);if((G|0)==27){c[n>>2]=j>>b+3;M=m;L=i}switch(h|0){case 1:{b=c[O>>2]>>4;break}case 2:{b=c[O>>2]>>5;break}case 3:{b=(c[O>>2]|0)*21>>10;break}default:b=c[O>>2]>>6}c[O>>2]=b;i=c[O+4>>2]|0;h=c[O+16>>2]|0;if(!(h|i)){c[O+60>>2]=b;c[O+56>>2]=b;c[O+52>>2]=b;c[O+48>>2]=b;c[O+44>>2]=b;c[O+40>>2]=b;c[O+36>>2]=b;c[O+32>>2]=b;c[O+28>>2]=b;c[O+24>>2]=b;c[O+20>>2]=b;c[O+16>>2]=b;c[O+12>>2]=b;c[O+8>>2]=b;c[O+4>>2]=b}else{w=b+i|0;F=b+(i>>1)|0;G=b-(i>>1)|0;I=b-i|0;c[O>>2]=w+h;c[O+16>>2]=w+(h>>1);c[O+32>>2]=w-(h>>1);c[O+48>>2]=w-h;c[O+4>>2]=F+h;c[O+20>>2]=F+(h>>1);c[O+36>>2]=F-(h>>1);c[O+52>>2]=F-h;c[O+8>>2]=G+h;c[O+24>>2]=G+(h>>1);c[O+40>>2]=G-(h>>1);c[O+56>>2]=G-h;c[O+12>>2]=I+h;c[O+28>>2]=I+(h>>1);c[O+44>>2]=I-(h>>1);c[O+60>>2]=I-h}i=0;b=O+64|0;j=O;while(1){h=c[j+((i>>>2&3)<<2)>>2]|0;h=(h|0)<255?h:255;a[b>>0]=(h|0)>0?h:0;h=i+1|0;if((h|0)==256)break;else{i=h;b=b+1|0;j=(h&63|0)==0?j+16|0:j}}I=p(x,N)|0;i=y;r=z;q=A;n=B;j=C;F=0;o=D;m=E;b=J;h=K;E=(c[e>>2]|0)+(I<<8)+(p(f<<6,N)|0)+(g<<3)|0;while(1){fc(O,0,64);if(l){s=E+(0-(N<<3))|0;u=(d[s+1>>0]|0)+(d[s>>0]|0)|0;t=(d[s+1+1+1>>0]|0)+(d[s+1+1>>0]|0)|0;z=s+1+1+1+1+1|0;s=(d[z>>0]|0)+(d[s+1+1+1+1>>0]|0)|0;z=(d[z+1+1>>0]|0)+(d[z+1>>0]|0)|0;c[O>>2]=s+(t+u)+(c[O>>2]|0)+z;c[O+4>>2]=t+u-s-z+(c[O+4>>2]|0);i=1}else{z=i;i=0}if(k){C=E+(N<<6)|0;A=(d[C+1>>0]|0)+(d[C>>0]|0)|0;B=(d[C+1+1+1>>0]|0)+(d[C+1+1>>0]|0)|0;D=C+1+1+1+1+1|0;C=(d[D>>0]|0)+(d[C+1+1+1+1>>0]|0)|0;D=(d[D+1+1>>0]|0)+(d[D+1>>0]|0)|0;c[O>>2]=C+(B+A)+(c[O>>2]|0)+D;c[O+4>>2]=B+A-C-D+(c[O+4>>2]|0);r=i+1|0}else{A=r;B=q;C=n;D=j;r=i}if(L){y=E+-1|0;v=(d[y+(N<<3)>>0]|0)+(d[y>>0]|0)|0;w=(d[y+(N<<4)+(N<<3)>>0]|0)+(d[y+(N<<4)>>0]|0)|0;y=y+(N<<4)+(N<<4)|0;x=(d[y+(N<<3)>>0]|0)+(d[y>>0]|0)|0;y=(d[y+(N<<4)+(N<<3)>>0]|0)+(d[y+(N<<4)>>0]|0)|0;c[O>>2]=x+(w+v)+(c[O>>2]|0)+y;c[O+16>>2]=w+v-x-y+(c[O+16>>2]|0);i=r+1|0;b=1}else{i=r;v=o;w=m;x=b;y=h;b=0}do if(M){q=E+8|0;m=(d[q+(N<<3)>>0]|0)+(d[q>>0]|0)|0;n=(d[q+(N<<4)+(N<<3)>>0]|0)+(d[q+(N<<4)>>0]|0)|0;q=q+(N<<4)+(N<<4)|0;o=(d[q+(N<<3)>>0]|0)+(d[q>>0]|0)|0;q=(d[q+(N<<4)+(N<<3)>>0]|0)+(d[q+(N<<4)>>0]|0)|0;i=i+1|0;b=b+1|0;c[O>>2]=o+(n+m)+(c[O>>2]|0)+q;h=n+m-o-q+(c[O+16>>2]|0)|0;c[O+16>>2]=h;j=(r|0)==0;if(!(L&j))if(j){G=55;break}else{G=50;break}else{c[O+4>>2]=x+y+w+v-m-n-o-q>>4;G=55;break}}else if(!r)G=51;else G=50;while(0);if((G|0)==50){c[O+4>>2]=c[O+4>>2]>>r+2;G=51}do if((G|0)==51){G=0;h=(b|0)==0;if(k&(l&h)){h=s+z+t+u-D-C-B-A>>4;G=56;break}if(!h){h=c[O+16>>2]|0;G=55}}while(0);if((G|0)==55){h=h>>b+2;G=56}if((G|0)==56)c[O+16>>2]=h;switch(i|0){case 1:{b=c[O>>2]>>3;break}case 2:{b=c[O>>2]>>4;break}case 3:{b=(c[O>>2]|0)*21>>9;break}default:b=c[O>>2]>>5}c[O>>2]=b;i=c[O+4>>2]|0;h=c[O+16>>2]|0;if(!(h|i)){c[O+60>>2]=b;c[O+56>>2]=b;c[O+52>>2]=b;c[O+48>>2]=b;c[O+44>>2]=b;c[O+40>>2]=b;c[O+36>>2]=b;c[O+32>>2]=b;c[O+28>>2]=b;c[O+24>>2]=b;c[O+20>>2]=b;c[O+16>>2]=b;c[O+12>>2]=b;c[O+8>>2]=b;c[O+4>>2]=b}else{J=b+i|0;K=b+(i>>1)|0;g=b-(i>>1)|0;f=b-i|0;c[O>>2]=J+h;c[O+16>>2]=J+(h>>1);c[O+32>>2]=J-(h>>1);c[O+48>>2]=J-h;c[O+4>>2]=K+h;c[O+20>>2]=K+(h>>1);c[O+36>>2]=K-(h>>1);c[O+52>>2]=K-h;c[O+8>>2]=g+h;c[O+24>>2]=g+(h>>1);c[O+40>>2]=g-(h>>1);c[O+56>>2]=g-h;c[O+12>>2]=f+h;c[O+28>>2]=f+(h>>1);c[O+44>>2]=f-(h>>1);c[O+60>>2]=f-h}i=0;b=O+64+256+(F<<6)|0;j=O;while(1){h=c[j+((i>>>1&3)<<2)>>2]|0;h=(h|0)<255?h:255;a[b>>0]=(h|0)>0?h:0;h=i+1|0;if((h|0)==64)break;else{i=h;b=b+1|0;j=(h&15|0)==0?j+16|0:j}}F=F+1|0;if((F|0)==2)break;else{i=z;r=A;q=B;n=C;j=D;o=v;m=w;b=x;h=y;E=E+(I<<6)|0}}Eb(e,O+64|0);H=O;return}function Ob(a,b){a=a|0;b=b|0;var d=0,e=0;fc(b,0,952);d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b>>2]=(d|0)==1&1;do if((d|0)==1){d=ua(a,8)|0;if((d|0)==-1){b=1;return b|0}c[b+4>>2]=d;if((d|0)==255){d=ua(a,16)|0;if((d|0)==-1){b=1;return b|0}c[b+8>>2]=d;d=ua(a,16)|0;if((d|0)==-1){b=1;return b|0}else{c[b+12>>2]=d;break}}}while(0);d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+16>>2]=(d|0)==1&1;do if((d|0)==1){d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}else{c[b+20>>2]=(d|0)==1&1;break}}while(0);d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+24>>2]=(d|0)==1&1;if((d|0)==1){d=ua(a,3)|0;if((d|0)==-1){b=1;return b|0}c[b+28>>2]=d;d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+32>>2]=(d|0)==1&1;d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+36>>2]=(d|0)==1&1;if((d|0)==1){d=ua(a,8)|0;if((d|0)==-1){b=1;return b|0}c[b+40>>2]=d;d=ua(a,8)|0;if((d|0)==-1){b=1;return b|0}c[b+44>>2]=d;d=ua(a,8)|0;if((d|0)==-1){b=1;return b|0}}else e=22}else{c[b+28>>2]=5;e=22}if((e|0)==22){c[b+40>>2]=2;c[b+44>>2]=2;d=2}c[b+48>>2]=d;d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+52>>2]=(d|0)==1&1;if((d|0)==1){d=ya(a,b+56|0)|0;if(d|0){b=d;return b|0}if((c[b+56>>2]|0)>>>0>5){b=1;return b|0}d=ya(a,b+60|0)|0;if(d|0){b=d;return b|0}if((c[b+60>>2]|0)>>>0>5){b=1;return b|0}}d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+64>>2]=(d|0)==1&1;do if((d|0)==1){d=va(a)|0;if((d|0)==0|(wa(a,32)|0)==-1){b=1;return b|0}c[b+68>>2]=d;d=va(a)|0;if((d|0)==0|(wa(a,32)|0)==-1){b=1;return b|0}c[b+72>>2]=d;d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}else{c[b+76>>2]=(d|0)==1&1;break}}while(0);d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+80>>2]=(d|0)==1&1;if((d|0)==1){d=Pb(a,b+84|0)|0;if(d|0){b=d;return b|0}}else{c[b+84>>2]=1;c[b+96>>2]=288000001;c[b+224>>2]=288000001;c[b+480>>2]=24;c[b+484>>2]=24;c[b+488>>2]=24;c[b+492>>2]=24}d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+496>>2]=(d|0)==1&1;if((d|0)==1){d=Pb(a,b+500|0)|0;if(d|0){b=d;return b|0}}else{c[b+500>>2]=1;c[b+512>>2]=240000001;c[b+640>>2]=240000001;c[b+896>>2]=24;c[b+900>>2]=24;c[b+904>>2]=24;c[b+908>>2]=24}if(!((c[b+80>>2]|0)==0?!(c[b+496>>2]|0):0))e=45;do if((e|0)==45){d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}else{c[b+912>>2]=(d|0)==1&1;break}}while(0);d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+916>>2]=(d|0)==1&1;d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+920>>2]=(d|0)==1&1;do if((d|0)==1){d=ua(a,1)|0;if((d|0)==-1){b=1;return b|0}c[b+924>>2]=(d|0)==1&1;d=ya(a,b+928|0)|0;if(d|0){b=d;return b|0}if((c[b+928>>2]|0)>>>0>16){b=1;return b|0}d=ya(a,b+932|0)|0;if(d|0){b=d;return b|0}if((c[b+932>>2]|0)>>>0>16){b=1;return b|0}d=ya(a,b+936|0)|0;if(d|0){b=d;return b|0}if((c[b+936>>2]|0)>>>0>16){b=1;return b|0}d=ya(a,b+940|0)|0;if(d|0){b=d;return b|0}if((c[b+940>>2]|0)>>>0>16){b=1;return b|0}d=ya(a,b+944|0)|0;if(d|0){b=d;return b|0}d=ya(a,b+948|0)|0;if(!d)break;return d|0}else{c[b+924>>2]=1;c[b+928>>2]=2;c[b+932>>2]=1;c[b+936>>2]=16;c[b+940>>2]=16;c[b+944>>2]=16;c[b+948>>2]=16}while(0);b=0;return b|0}function Pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=ya(a,b)|0;if(d|0){b=d;return b|0}f=(c[b>>2]|0)+1|0;c[b>>2]=f;if(f>>>0>32){b=1;return b|0}d=ua(a,4)|0;if((d|0)==-1){b=1;return b|0}c[b+4>>2]=d;d=ua(a,4)|0;if((d|0)==-1){b=1;return b|0}c[b+8>>2]=d;a:do if(c[b>>2]|0){f=0;while(1){e=b+12+(f<<2)|0;d=ya(a,e)|0;if(d|0){e=18;break}d=c[e>>2]|0;if((d|0)==-1){d=1;e=18;break}c[e>>2]=d+1;c[e>>2]=d+1<<(c[b+4>>2]|0)+6;e=b+140+(f<<2)|0;d=ya(a,e)|0;if(d|0){e=18;break}d=c[e>>2]|0;if((d|0)==-1){d=1;e=18;break}c[e>>2]=d+1;c[e>>2]=d+1<<(c[b+8>>2]|0)+4;d=ua(a,1)|0;if((d|0)==-1){d=1;e=18;break}c[b+268+(f<<2)>>2]=(d|0)==1&1;f=f+1|0;if(f>>>0>=(c[b>>2]|0)>>>0)break a}if((e|0)==18)return d|0}while(0);d=ua(a,5)|0;if((d|0)==-1){b=1;return b|0}c[b+396>>2]=d+1;d=ua(a,5)|0;if((d|0)==-1){b=1;return b|0}c[b+400>>2]=d+1;d=ua(a,5)|0;if((d|0)==-1){b=1;return b|0}c[b+404>>2]=d+1;d=ua(a,5)|0;if((d|0)==-1){b=1;return b|0}c[b+408>>2]=d;b=0;return b|0}function Qb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:do if(!(c[d+284>>2]|0))n=0;else{g=0;b:while(1){f=c[d+288+(g*20|0)>>2]|0;switch(f|0){case 5:{n=1;break a}case 0:break b;default:{}}g=g+1|0}n=f}while(0);switch(c[b+16>>2]|0){case 0:{if((c[e>>2]|0)!=5){h=c[a>>2]|0;f=c[d+20>>2]|0;if(h>>>0>f>>>0?(j=c[b+20>>2]|0,(h-f|0)>>>0>=j>>>1>>>0):0){i=f;h=(c[a+4>>2]|0)+j|0;g=a}else{g=a;l=12}}else{c[a+4>>2]=0;c[a>>2]=0;f=c[d+20>>2]|0;h=0;g=a;l=12}do if((l|0)==12){if(f>>>0>h>>>0?(k=c[b+20>>2]|0,(f-h|0)>>>0>k>>>1>>>0):0){i=f;h=(c[a+4>>2]|0)-k|0;break}i=f;h=c[a+4>>2]|0}while(0);if(!(c[e+4>>2]|0)){a=c[d+24>>2]|0;a=h+i+((a|0)<0?a:0)|0;return a|0}c[a+4>>2]=h;f=c[d+24>>2]|0;if(!n){c[g>>2]=i;a=h+i+((f|0)<0?f:0)|0;return a|0}else{c[a+4>>2]=0;c[g>>2]=(f|0)<0?0-f|0:0;a=0;return a|0}}case 1:{if((c[e>>2]|0)!=5){f=c[a+12>>2]|0;if((c[a+8>>2]|0)>>>0>(c[d+12>>2]|0)>>>0)f=(c[b+12>>2]|0)+f|0}else f=0;l=c[b+36>>2]|0;if(!l)g=0;else g=(c[d+12>>2]|0)+f|0;m=(c[e+4>>2]|0)==0;k=g+(((g|0)!=0&m)<<31>>31)|0;if(k|0){e=k+-1-(p(((k+-1|0)>>>0)/(l>>>0)|0,l)|0)|0;j=((k+-1|0)>>>0)/(l>>>0)|0}else{e=0;j=0}if(!l)g=0;else{h=c[b+40>>2]|0;g=0;i=0;do{g=(c[h+(i<<2)>>2]|0)+g|0;i=i+1|0}while((i|0)!=(l|0))}if(k|0){g=p(g,j)|0;h=c[b+40>>2]|0;i=0;do{g=(c[h+(i<<2)>>2]|0)+g|0;i=i+1|0}while(i>>>0<=e>>>0)}else g=0;if(m)h=(c[b+28>>2]|0)+g|0;else h=g;g=(c[d+32>>2]|0)+(c[b+32>>2]|0)|0;if(!n){n=((g|0)<0?g:0)+h+(c[d+28>>2]|0)|0;c[a+12>>2]=f;c[a+8>>2]=c[d+12>>2];a=n;return a|0}else{c[a+12>>2]=0;c[a+8>>2]=0;a=0;return a|0}}default:{if((c[e>>2]|0)==5){h=0;f=0;g=a+12|0}else{g=c[d+12>>2]|0;f=c[a+12>>2]|0;if((c[a+8>>2]|0)>>>0>g>>>0)f=(c[b+12>>2]|0)+f|0;h=f;f=(g+f<<1)+(((c[e+4>>2]|0)==0)<<31>>31)|0;g=a+12|0}if(!n){c[g>>2]=h;c[a+8>>2]=c[d+12>>2];a=f;return a|0}else{c[g>>2]=0;c[a+8>>2]=0;a=0;return a|0}}}return 0}function Rb(a,b){a=a|0;b=b|0;var d=0;La(a);d=cc(2112)|0;c[a+3376>>2]=d;if(!d){d=1;return d|0}if(!b){d=0;return d|0}c[a+1216>>2]=1;d=0;return d|0}function Sb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=H;H=H+208|0;c[h+12>>2]=0;if((c[a+3344>>2]|0)!=0?(c[a+3348>>2]|0)==(b|0):0){c[h+16>>2]=c[a+3356>>2];c[h+16+4>>2]=c[a+3356+4>>2];c[h+16+8>>2]=c[a+3356+8>>2];c[h+16+12>>2]=c[a+3356+12>>2];c[h+16+4>>2]=c[h+16>>2];c[h+16+8>>2]=0;c[h+16+16>>2]=0;c[f>>2]=c[a+3352>>2]}else g=4;do if((g|0)==4)if(!(_(b,d,h+16|0,f)|0)){c[a+3356>>2]=c[h+16>>2];c[a+3356+4>>2]=c[h+16+4>>2];c[a+3356+8>>2]=c[h+16+8>>2];c[a+3356+12>>2]=c[h+16+12>>2];c[a+3356+16>>2]=c[h+16+16>>2];c[a+3352>>2]=c[f>>2];c[a+3348>>2]=b;break}else{a=3;H=h;return a|0}while(0);c[a+3344>>2]=0;if(Da(h+16|0,h)|0){a=3;H=h;return a|0}if(((c[h>>2]|0)+-1|0)>>>0>11){a=0;H=h;return a|0}b=Ta(h+16|0,h,a,h+12|0)|0;a:do if((b|0)<65520){switch(b|0){case 0:break;default:break a}do if(!(c[h+12>>2]|0))g=19;else{if(c[a+1184>>2]|0?c[a+16>>2]|0:0){if(c[a+3380>>2]|0){a=3;H=h;return a|0}if(!(c[a+1188>>2]|0)){c[a+1336>>2]=wb(a+1220|0)|0;Ab(a+1220|0);Mb(a,a+1336|0,0)|0;b=a+1336|0}else{Mb(a,a+1336|0,c[a+1372>>2]|0)|0;b=a+1336|0}c[f>>2]=0;c[a+3344>>2]=1;c[a+1180>>2]=0;d=a+16|0;e=b;b=a+1360|0;f=a+1188|0;break}c[a+1188>>2]=0;c[a+1180>>2]=0;g=19}while(0);b:do if((g|0)==19)switch(c[h>>2]|0){case 7:if(!($(h+16|0,h+112|0)|0)){Ma(a,h+112|0)|0;a=0;H=h;return a|0}else{dc(c[h+112+40>>2]|0);c[h+112+40>>2]=0;dc(c[h+112+84>>2]|0);c[h+112+84>>2]=0;a=3;H=h;return a|0}case 8:if(!(ba(h+16|0,h+40|0)|0)){Na(a,h+40|0)|0;a=0;H=h;return a|0}else{dc(c[h+40+20>>2]|0);c[h+40+20>>2]=0;dc(c[h+40+24>>2]|0);c[h+40+24>>2]=0;dc(c[h+40+28>>2]|0);c[h+40+28>>2]=0;dc(c[h+40+44>>2]|0);c[h+40+44>>2]=0;a=3;H=h;return a|0}case 1:case 5:{if(c[a+1180>>2]|0){a=0;H=h;return a|0}c[a+1184>>2]=1;if(Qa(a)|0){c[a+1204>>2]=0;c[a+1208>>2]=e;da(h+16|0,h+204|0)|0;b=c[a+8>>2]|0;d=Oa(a,c[h+204>>2]|0,(c[h>>2]|0)==5&1)|0;if(d|0){c[a+4>>2]=256;c[a+12>>2]=0;c[a+8>>2]=32;c[a+16>>2]=0;c[a+3380>>2]=0;a=(d|0)==65535?5:4;H=h;return a|0}if((b|0)!=(c[a+8>>2]|0)){d=c[a+16>>2]|0;c[h+8>>2]=1;b=c[a>>2]|0;if(b>>>0<32)b=c[a+20+(b<<2)>>2]|0;else b=0;c[f>>2]=0;c[a+3344>>2]=1;do if(((((c[h>>2]|0)==5?(f=ja(h+8|0,h+16|0,d,c[a+12>>2]|0,5)|0,(c[h+8>>2]|f|0)==0):0)?!((b|0)==0|(c[a+1276>>2]|0)!=0):0)?(c[b+52>>2]|0)==(c[d+52>>2]|0):0)?(c[b+56>>2]|0)==(c[d+56>>2]|0):0){if((c[b+88>>2]|0)!=(c[d+88>>2]|0)){g=39;break}Db(a+1220|0)}else g=39;while(0);if((g|0)==39)c[a+1280>>2]=0;c[a>>2]=c[a+8>>2];a=2;H=h;return a|0}}if(c[a+3380>>2]|0){a=3;H=h;return a|0}if(ca(h+16|0,a+2356|0,c[a+16>>2]|0,c[a+12>>2]|0,h)|0){a=3;H=h;return a|0}if(!(Qa(a)|0))b=a+1220|0;else{if((c[h>>2]|0)!=5?Bb(a+1220|0,c[a+2368>>2]|0,(c[h+4>>2]|0)!=0&1,c[(c[a+16>>2]|0)+48>>2]|0)|0:0){a=3;H=h;return a|0}c[a+1336>>2]=wb(a+1220|0)|0;b=a+1220|0}Hc(a+1368|0,a+2356|0,988)|0;c[a+1188>>2]=1;g=c[h+4>>2]|0;c[a+1360>>2]=c[h>>2];c[a+1360+4>>2]=g;Sa(a,c[a+1432>>2]|0);Ab(b);if(qb(b,a+1436|0,c[a+1380>>2]|0,c[a+1412>>2]|0)|0){a=3;H=h;return a|0}if(ka(h+16|0,a,a+1336|0,a+1368|0)|0){la(a,c[a+1368>>2]|0);a=3;H=h;return a|0}if(!(Ra(a)|0)){a=0;H=h;return a|0}else{c[a+1180>>2]=1;d=a+16|0;e=a+1336|0;b=a+1360|0;f=a+1188|0;break b}}default:{a=0;H=h;return a|0}}while(0);Gb(e,c[a+1212>>2]|0);Pa(a);b=Qb(a+1284|0,c[d>>2]|0,a+1368|0,b)|0;do if(c[f>>2]|0)if(!(c[a+1364>>2]|0)){rb(a+1220|0,0,e,c[a+1380>>2]|0,b,(c[a+1360>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}else{rb(a+1220|0,a+1644|0,e,c[a+1380>>2]|0,b,(c[a+1360>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}while(0);c[a+1184>>2]=0;c[f>>2]=0;a=1;H=h;return a|0}else{switch(b|0){case 65520:{b=4;break}default:break a}H=h;return b|0}while(0);a=3;H=h;return a|0}function Tb(a){a=a|0;var b=0,d=0,e=0;e=0;do{d=a+20+(e<<2)|0;b=c[d>>2]|0;if(b|0){dc(c[b+40>>2]|0);c[(c[d>>2]|0)+40>>2]=0;dc(c[(c[d>>2]|0)+84>>2]|0);c[(c[d>>2]|0)+84>>2]=0;dc(c[d>>2]|0);c[d>>2]=0}e=e+1|0}while((e|0)!=32);e=0;do{d=a+148+(e<<2)|0;b=c[d>>2]|0;if(b|0){dc(c[b+20>>2]|0);c[(c[d>>2]|0)+20>>2]=0;dc(c[(c[d>>2]|0)+24>>2]|0);c[(c[d>>2]|0)+24>>2]=0;dc(c[(c[d>>2]|0)+28>>2]|0);c[(c[d>>2]|0)+28>>2]=0;dc(c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0;dc(c[d>>2]|0);c[d>>2]=0}e=e+1|0}while((e|0)!=256);dc(c[a+3376>>2]|0);c[a+3376>>2]=0;dc(c[a+1212>>2]|0);c[a+1212>>2]=0;dc(c[a+1172>>2]|0);c[a+1172>>2]=0;zb(a+1220|0);return}function Ub(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Cb(a+1220|0)|0;if(!a){b=0;return b|0}c[b>>2]=c[a+4>>2];c[d>>2]=c[a+12>>2];c[e>>2]=c[a+8>>2];b=c[a>>2]|0;return b|0}function Vb(a){a=a|0;a=c[a+16>>2]|0;if(!a){a=0;return a|0}a=c[a+52>>2]|0;return a|0}function Wb(a){a=a|0;a=c[a+16>>2]|0;if(!a){a=0;return a|0}a=c[a+56>>2]|0;return a|0}function Xb(a){a=a|0;Db(a+1220|0);return}function Yb(a){a=a|0;return (Ua(a)|0)==0|0}function Zb(a){a=a|0;var b=0;a=c[a+16>>2]|0;if((((a|0?c[a+80>>2]|0:0)?(b=c[a+84>>2]|0,b|0):0)?c[b+24>>2]|0:0)?c[b+32>>2]|0:0){b=1;return b|0}b=0;return b|0}function _b(a){a=a|0;a=c[a+16>>2]|0;if(!a){a=2;return a|0}if(!(c[a+80>>2]|0)){a=2;return a|0}a=c[a+84>>2]|0;if(!a){a=2;return a|0}if(!(c[a+24>>2]|0)){a=2;return a|0}if(!(c[a+36>>2]|0)){a=2;return a|0}a=c[a+48>>2]|0;return a|0}function $b(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a=c[a+16>>2]|0;if(a|0?c[a+60>>2]|0:0){c[b>>2]=1;c[d>>2]=c[a+64>>2]<<1;c[e>>2]=(c[a+52>>2]<<4)-((c[a+68>>2]|0)+(c[a+64>>2]|0)<<1);c[f>>2]=c[a+72>>2]<<1;e=(c[a+56>>2]<<4)-((c[a+76>>2]|0)+(c[a+72>>2]|0)<<1)|0;c[g>>2]=e;return}c[b>>2]=0;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;e=0;c[g>>2]=e;return}function ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=c[a+16>>2]|0;a:do if((((a|0)!=0?(c[a+80>>2]|0)!=0:0)?(e=c[a+84>>2]|0,(e|0)!=0):0)?(c[e>>2]|0)!=0:0)do switch(c[e+4>>2]|0){case 255:{f=c[e+8>>2]|0;e=c[e+12>>2]|0;a=(f|0)==0|(e|0)==0?0:e;e=(f|0)==0|(e|0)==0?0:f;break a}case 1:{a=1;e=1;break a}case 2:{a=11;e=12;break a}case 3:{a=11;e=10;break a}case 4:{a=11;e=16;break a}case 5:{a=33;e=40;break a}case 6:{a=11;e=24;break a}case 7:{a=11;e=20;break a}case 8:{a=11;e=32;break a}case 9:{a=33;e=80;break a}case 10:{a=11;e=18;break a}case 11:{a=11;e=15;break a}case 12:{a=33;e=64;break a}case 13:{a=99;e=160;break a}default:{a=0;e=0;break a}}while(0);else{a=1;e=1}while(0);c[b>>2]=e;c[d>>2]=a;return}function bc(a){a=a|0;a=c[a+16>>2]|0;if(!a){a=0;return a|0}a=c[a>>2]|0;return a|0}function cc(a){a=a|0;return Fc(a)|0}function dc(a){a=a|0;Gc(a);return}function ec(a,b,c){a=a|0;b=b|0;c=c|0;Hc(a|0,b|0,c|0)|0;return}function fc(a,b,c){a=a|0;b=b|0;c=c|0;Ic(a|0,b&255|0,c|0)|0;return}function gc(a,b){a=a|0;b=b|0;var d=0;if(!a){b=-1;return b|0}d=Fc(3396)|0;if(!d){b=-4;return b|0}if(!(Rb(d+8|0,b)|0)){c[d>>2]=1;c[d+4>>2]=0;c[a>>2]=d;b=0;return b|0}else{Tb(d+8|0);Gc(d);b=-4;return b|0}return 0}function hc(a,b){a=a|0;b=b|0;if((a|0)==0|(b|0)==0){b=-1;return b|0}if(!(c[a+24>>2]|0)){b=-6;return b|0}if(!(c[a+20>>2]|0)){b=-6;return b|0}c[b+4>>2]=(Vb(a+8|0)|0)<<4;c[b+8>>2]=(Wb(a+8|0)|0)<<4;c[b+12>>2]=Zb(a+8|0)|0;c[b+16>>2]=_b(a+8|0)|0;$b(a+8|0,b+28|0,b+32|0,b+36|0,b+40|0,b+44|0);ac(a+8|0,b+20|0,b+24|0);c[b>>2]=bc(a+8|0)|0;b=0;return b|0}function ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=H;H=H+16|0;a:do if((!((b|0)==0|(d|0)==0)?(f=c[b>>2]|0,(f|0)!=0):0)?(g=c[b+4>>2]|0,(g|0)!=0):0)if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0){c[d>>2]=0;c[j>>2]=0;c[a+3392>>2]=c[b+12>>2];b:do if((e|0)==2){e=f;i=8}else{e=1;c:while(1){k=Sb(a+8|0,f,g,c[b+8>>2]|0,j)|0;h=c[j>>2]|0;f=f+h|0;h=g-h|0;g=(h|0)>0?h:0;c[d>>2]=f;switch(k|0){case 5:{e=-4;break a}case 2:break b;case 1:break c;case 4:{k=(Yb(a+8|0)|0|g|0)==0;e=k?-2:e;break}default:{}}if((h|0)<1)break a;if((c[a>>2]|0)==2){e=f;i=8;break b}}c[a+4>>2]=(c[a+4>>2]|0)+1;e=(h|0)<1?2:3;break a}while(0);if((i|0)==8){c[a>>2]=1;c[d>>2]=e+(c[j>>2]|0)}if((c[a+1288>>2]|0)!=0?(c[a+1244>>2]|0)!=(c[a+1248>>2]|0):0){c[a+1288>>2]=0;c[a>>2]=2;e=3}else e=4}else e=-3;else e=-1;while(0);H=j;return e|0}function jc(a){a=a|0;c[a>>2]=2;c[a+4>>2]=3;return}function kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=H;H=H+16|0;if((a|0)==0|(b|0)==0){b=-1;H=e;return b|0}if(d|0)Xb(a+8|0);a=Ub(a+8|0,e,e+4|0,e+8|0)|0;if(!a){b=0;H=e;return b|0}c[b>>2]=a;c[b+4>>2]=c[e>>2];c[b+8>>2]=c[e+4>>2];c[b+12>>2]=c[e+8>>2];b=2;H=e;return b|0}function lc(){var a=0,b=0;c[2098]=c[2106];a=ic(c[2104]|0,8384,8428)|0;switch(a|0){case 4:{if(hc(c[2104]|0,8432)|0){a=-1;return a|0}v();a=c[2107]|0;c[2097]=(c[2096]|0)-a+(c[2097]|0);c[2096]=a;a=0;return a|0}case 3:{b=c[2107]|0;c[2097]=(c[2096]|0)-b+(c[2097]|0);c[2096]=b;break}case 2:break;case -2:case 1:{c[2097]=0;b=a;return b|0}default:{b=a;return b|0}}c[2097]=0;c[2106]=(c[2106]|0)+1;if((kc(c[2104]|0,8480,0)|0)!=2){b=a;return b|0}do{c[2105]=(c[2105]|0)+1;w(c[2120]|0,c[2109]|0,c[2110]|0)}while((kc(c[2104]|0,8480,0)|0)==2);return a|0}function mc(a){a=a|0;var b=0;b=Fc(a)|0;c[2102]=b;c[2101]=b;c[2100]=a;c[2103]=b+a;return b|0}function nc(a){a=a|0;c[2100]=a;c[2096]=c[2101];c[2097]=a;do lc()|0;while((c[2097]|0)!=0);return}function oc(){var a=0;if(gc(8416,0)|0){Ec(7314)|0;if(!0)a=-1;else a=-1}else{c[2105]=1;c[2106]=1;a=0}return a|0}function pc(){return}function qc(){var a=0;a=H;H=H+16|0;jc(a);H=a;return c[a>>2]|0}function rc(){var a=0;a=H;H=H+16|0;jc(a);H=a;return c[a+4>>2]|0}function sc(a){a=a|0;return 0}function tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=H;H=H+32|0;e=c[a+28>>2]|0;c[h>>2]=e;e=(c[a+20>>2]|0)-e|0;c[h+4>>2]=e;c[h+8>>2]=b;c[h+12>>2]=d;f=h;g=2;e=e+d|0;while(1){if(!((u(c[a+60>>2]|0,f|0,g|0,h+16|0)|0)<<16>>16))b=c[h+16>>2]|0;else{c[h+16>>2]=-1;b=-1}if((e|0)==(b|0)){b=6;break}if((b|0)<0){b=8;break}k=c[f+4>>2]|0;i=b>>>0>k>>>0;j=i?f+8|0:f;k=b-(i?k:0)|0;c[j>>2]=(c[j>>2]|0)+k;c[j+4>>2]=(c[j+4>>2]|0)-k;f=j;g=g+(i<<31>>31)|0;e=e-b|0}if((b|0)==6){k=c[a+44>>2]|0;c[a+16>>2]=k+(c[a+48>>2]|0);c[a+28>>2]=k;c[a+20>>2]=k}else if((b|0)==8){c[a+16>>2]=0;c[a+28>>2]=0;c[a+20>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[f+4>>2]|0)|0}H=h;return d|0}function uc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;r(0);return 0}function vc(){return 8496}function wc(b){b=b|0;var d=0,e=0,f=0;a:do if(!(b&3)){d=b;f=5}else{d=b;e=b;while(1){if(!(a[e>>0]|0))break a;e=e+1|0;d=e;if(!(d&3)){d=e;f=5;break}}}while(0);if((f|0)==5){while(1){e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009))d=d+4|0;else break}if((e&255)<<24>>24)do d=d+1|0;while((a[d>>0]|0)!=0)}return d-b|0}function xc(a){a=a|0;return 1}function yc(a){a=a|0;return}function zc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[e+16>>2]|0;if(!f)if(!(Ac(e)|0)){f=c[e+16>>2]|0;g=5}else f=0;else g=5;a:do if((g|0)==5){g=c[e+20>>2]|0;if((f-g|0)>>>0<d>>>0){f=L[c[e+36>>2]&1](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=0;f=b}else{i=d;while(1){f=i+-1|0;if((a[b+f>>0]|0)==10)break;if(!f){h=0;f=b;break b}else i=f}f=L[c[e+36>>2]&1](e,b,i)|0;if(f>>>0<i>>>0)break a;g=c[e+20>>2]|0;h=i;d=d-i|0;f=b+i|0}while(0);Hc(g|0,f|0,d|0)|0;c[e+20>>2]=(c[e+20>>2]|0)+d;f=h+d|0}while(0);return f|0}function Ac(b){b=b|0;var d=0;d=a[b+74>>0]|0;a[b+74>>0]=d+255|d;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Bc(a,b){a=a|0;b=b|0;var c=0;c=wc(a)|0;return ((Cc(a,1,c,b)|0)!=(c|0))<<31>>31|0}function Cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=p(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(xc(e)|0)==0;a=zc(a,f,e)|0;if(!g)yc(e)}else a=zc(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Dc(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=H;H=H+16|0;a[h>>0]=e;f=c[b+16>>2]|0;if(!f)if(!(Ac(b)|0)){f=c[b+16>>2]|0;g=4}else f=-1;else g=4;do if((g|0)==4){g=c[b+20>>2]|0;if(g>>>0<f>>>0?(e&255|0)!=(a[b+75>>0]|0):0){c[b+20>>2]=g+1;a[g>>0]=e;f=e&255;break}if((L[c[b+36>>2]&1](b,h,1)|0)==1)f=d[h>>0]|0;else f=-1}while(0);H=h;return f|0}function Ec(b){b=b|0;var d=0,e=0,f=0;e=c[1816]|0;if((c[e+76>>2]|0)>-1)f=xc(e)|0;else f=0;do if((Bc(b,e)|0)<0)d=-1;else{if((a[e+75>>0]|0)!=10?(d=c[e+20>>2]|0,d>>>0<(c[e+16>>2]|0)>>>0):0){c[e+20>>2]=d+1;a[d>>0]=10;d=0;break}d=(Dc(e,10)|0)>>31}while(0);if(f|0)yc(e);return d|0}function Fc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=H;H=H+16|0;do if(a>>>0<245){n=a>>>0<11?16:a+11&-8;l=c[2125]|0;if(l>>>(n>>>3)&3|0){d=8540+((l>>>(n>>>3)&1^1)+(n>>>3)<<1<<2)|0;a=c[d+8>>2]|0;b=c[a+8>>2]|0;if((b|0)==(d|0))c[2125]=l&~(1<<(l>>>(n>>>3)&1^1)+(n>>>3));else{c[b+12>>2]=d;c[d+8>>2]=b}u=(l>>>(n>>>3)&1^1)+(n>>>3)<<3;c[a+4>>2]=u|3;c[a+u+4>>2]=c[a+u+4>>2]|1;u=a+8|0;H=v;return u|0}m=c[2127]|0;if(n>>>0>m>>>0){if(l>>>(n>>>3)|0){a=l>>>(n>>>3)<<(n>>>3)&(2<<(n>>>3)|0-(2<<(n>>>3)));e=((a&0-a)+-1|0)>>>(((a&0-a)+-1|0)>>>12&16);f=e>>>(e>>>5&8)>>>(e>>>(e>>>5&8)>>>2&4);f=(e>>>5&8|((a&0-a)+-1|0)>>>12&16|e>>>(e>>>5&8)>>>2&4|f>>>1&2|f>>>(f>>>1&2)>>>1&1)+(f>>>(f>>>1&2)>>>(f>>>(f>>>1&2)>>>1&1))|0;e=c[8540+(f<<1<<2)+8>>2]|0;a=c[e+8>>2]|0;if((a|0)==(8540+(f<<1<<2)|0)){c[2125]=l&~(1<<f);a=l&~(1<<f)}else{c[a+12>>2]=8540+(f<<1<<2);c[8540+(f<<1<<2)+8>>2]=a;a=l}c[e+4>>2]=n|3;c[e+n+4>>2]=(f<<3)-n|1;c[e+(f<<3)>>2]=(f<<3)-n;if(m|0){d=c[2130]|0;if(!(a&1<<(m>>>3))){c[2125]=a|1<<(m>>>3);a=8540+(m>>>3<<1<<2)+8|0;b=8540+(m>>>3<<1<<2)|0}else{a=8540+(m>>>3<<1<<2)+8|0;b=c[8540+(m>>>3<<1<<2)+8>>2]|0}c[a>>2]=d;c[b+12>>2]=d;c[d+8>>2]=b;c[d+12>>2]=8540+(m>>>3<<1<<2)}c[2127]=(f<<3)-n;c[2130]=e+n;u=e+8|0;H=v;return u|0}h=c[2126]|0;if(h){j=((h&0-h)+-1|0)>>>(((h&0-h)+-1|0)>>>12&16);k=j>>>(j>>>5&8)>>>(j>>>(j>>>5&8)>>>2&4);k=c[8804+((j>>>5&8|((h&0-h)+-1|0)>>>12&16|j>>>(j>>>5&8)>>>2&4|k>>>1&2|k>>>(k>>>1&2)>>>1&1)+(k>>>(k>>>1&2)>>>(k>>>(k>>>1&2)>>>1&1))<<2)>>2]|0;j=(c[k+4>>2]&-8)-n|0;b=k;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a)break}b=(c[a+4>>2]&-8)-n|0;i=b>>>0<j>>>0;j=i?b:j;b=a;k=i?a:k}i=k+n|0;if(i>>>0>k>>>0){f=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){b=k+20|0;a=c[b>>2]|0;if(!a){b=k+16|0;a=c[b>>2]|0;if(!a){b=0;break}}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;b=a}else{b=c[k+8>>2]|0;c[b+12>>2]=a;c[a+8>>2]=b;b=a}while(0);do if(f|0){a=c[k+28>>2]|0;if((k|0)==(c[8804+(a<<2)>>2]|0)){c[8804+(a<<2)>>2]=b;if(!b){c[2126]=h&~(1<<a);break}}else{c[((c[f+16>>2]|0)==(k|0)?f+16|0:f+20|0)>>2]=b;if(!b)break}c[b+24>>2]=f;a=c[k+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[k+20>>2]|0;if(a|0){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);if(j>>>0<16){u=j+n|0;c[k+4>>2]=u|3;u=k+u+4|0;c[u>>2]=c[u>>2]|1}else{c[k+4>>2]=n|3;c[i+4>>2]=j|1;c[i+j>>2]=j;if(m|0){d=c[2130]|0;if(!(1<<(m>>>3)&l)){c[2125]=1<<(m>>>3)|l;a=8540+(m>>>3<<1<<2)+8|0;b=8540+(m>>>3<<1<<2)|0}else{a=8540+(m>>>3<<1<<2)+8|0;b=c[8540+(m>>>3<<1<<2)+8>>2]|0}c[a>>2]=d;c[b+12>>2]=d;c[d+8>>2]=b;c[d+12>>2]=8540+(m>>>3<<1<<2)}c[2127]=j;c[2130]=i}u=k+8|0;H=v;return u|0}}}}else if(a>>>0<=4294967231){n=a+11&-8;e=c[2126]|0;if(e){if((a+11|0)>>>8)if(n>>>0>16777215)j=31;else{j=(a+11|0)>>>8<<((((a+11|0)>>>8)+1048320|0)>>>16&8);j=14-((j+520192|0)>>>16&4|(((a+11|0)>>>8)+1048320|0)>>>16&8|((j<<((j+520192|0)>>>16&4))+245760|0)>>>16&2)+(j<<((j+520192|0)>>>16&4)<<(((j<<((j+520192|0)>>>16&4))+245760|0)>>>16&2)>>>15)|0;j=n>>>(j+7|0)&1|j<<1}else j=0;a=c[8804+(j<<2)>>2]|0;a:do if(!a){d=0-n|0;b=0;a=0;p=61}else{d=0-n|0;b=0;i=n<<((j|0)==31?0:25-(j>>>1)|0);h=0;while(1){f=(c[a+4>>2]&-8)-n|0;if(f>>>0<d>>>0)if(!f){d=0;b=a;p=65;break a}else{d=f;h=a}p=c[a+20>>2]|0;a=c[a+16+(i>>>31<<2)>>2]|0;b=(p|0)==0|(p|0)==(a|0)?b:p;if(!a){a=h;p=61;break}else i=i<<1}}while(0);if((p|0)==61){if((b|0)==0&(a|0)==0){a=2<<j;if(!((a|0-a)&e))break;m=((a|0-a)&e&0-((a|0-a)&e))+-1|0;a=m>>>(m>>>12&16)>>>(m>>>(m>>>12&16)>>>5&8);b=a>>>(a>>>2&4)>>>(a>>>(a>>>2&4)>>>1&2);b=c[8804+((m>>>(m>>>12&16)>>>5&8|m>>>12&16|a>>>2&4|a>>>(a>>>2&4)>>>1&2|b>>>1&1)+(b>>>(b>>>1&1))<<2)>>2]|0;a=0}if(!b){h=d;i=a}else p=65}if((p|0)==65)while(1){m=(c[b+4>>2]&-8)-n|0;f=m>>>0<d>>>0;d=f?m:d;f=f?b:a;a=c[b+16>>2]|0;if(!a)a=c[b+20>>2]|0;if(!a){h=d;i=f;break}else{b=a;a=f}}if(((i|0)!=0?h>>>0<((c[2127]|0)-n|0)>>>0:0)?(k=i+n|0,k>>>0>i>>>0):0){g=c[i+24>>2]|0;a=c[i+12>>2]|0;do if((a|0)==(i|0)){b=i+20|0;a=c[b>>2]|0;if(!a){b=i+16|0;a=c[b>>2]|0;if(!a){a=0;break}}while(1){f=a+20|0;d=c[f>>2]|0;if(!d){f=a+16|0;d=c[f>>2]|0;if(!d)break;else{a=d;b=f}}else{a=d;b=f}}c[b>>2]=0}else{u=c[i+8>>2]|0;c[u+12>>2]=a;c[a+8>>2]=u}while(0);do if(g){b=c[i+28>>2]|0;if((i|0)==(c[8804+(b<<2)>>2]|0)){c[8804+(b<<2)>>2]=a;if(!a){c[2126]=e&~(1<<b);e=e&~(1<<b);break}}else{c[((c[g+16>>2]|0)==(i|0)?g+16|0:g+20|0)>>2]=a;if(!a)break}c[a+24>>2]=g;b=c[i+16>>2]|0;if(b|0){c[a+16>>2]=b;c[b+24>>2]=a}b=c[i+20>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a}}while(0);b:do if(h>>>0<16){u=h+n|0;c[i+4>>2]=u|3;u=i+u+4|0;c[u>>2]=c[u>>2]|1}else{c[i+4>>2]=n|3;c[k+4>>2]=h|1;c[k+h>>2]=h;d=h>>>3;if(h>>>0<256){a=c[2125]|0;if(!(a&1<<d)){c[2125]=a|1<<d;a=8540+(d<<1<<2)+8|0;b=8540+(d<<1<<2)|0}else{a=8540+(d<<1<<2)+8|0;b=c[8540+(d<<1<<2)+8>>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=8540+(d<<1<<2);break}a=h>>>8;if(a)if(h>>>0>16777215)d=31;else{d=a<<((a+1048320|0)>>>16&8)<<(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4);d=14-(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4|(a+1048320|0)>>>16&8|(d+245760|0)>>>16&2)+(d<<((d+245760|0)>>>16&2)>>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;a=8804+(d<<2)|0;c[k+28>>2]=d;c[k+16+4>>2]=0;c[k+16>>2]=0;b=1<<d;if(!(e&b)){c[2126]=e|b;c[a>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}a=c[a>>2]|0;c:do if((c[a+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(h|0)){a=b;break c}else{e=e<<1;a=b}}c[d>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break b}while(0);t=a+8|0;u=c[t>>2]|0;c[u+12>>2]=k;c[t>>2]=k;c[k+8>>2]=u;c[k+12>>2]=a;c[k+24>>2]=0}while(0);u=i+8|0;H=v;return u|0}}}else n=-1;while(0);d=c[2127]|0;if(d>>>0>=n>>>0){b=d-n|0;a=c[2130]|0;if(b>>>0>15){u=a+n|0;c[2130]=u;c[2127]=b;c[u+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=n|3}else{c[2127]=0;c[2130]=0;c[a+4>>2]=d|3;c[a+d+4>>2]=c[a+d+4>>2]|1}u=a+8|0;H=v;return u|0}f=c[2128]|0;if(f>>>0>n>>>0){s=f-n|0;c[2128]=s;u=c[2131]|0;t=u+n|0;c[2131]=t;c[t+4>>2]=s|1;c[u+4>>2]=n|3;u=u+8|0;H=v;return u|0}if(!(c[2243]|0)){c[2245]=4096;c[2244]=4096;c[2246]=-1;c[2247]=-1;c[2248]=0;c[2236]=0;c[2243]=v&-16^1431655768;a=4096}else a=c[2245]|0;h=n+48|0;i=n+47|0;k=a+i|0;j=0-a|0;if((k&j)>>>0<=n>>>0){u=0;H=v;return u|0}a=c[2235]|0;if(a|0?(m=c[2233]|0,(m+(k&j)|0)>>>0<=m>>>0?1:(m+(k&j)|0)>>>0>a>>>0):0){u=0;H=v;return u|0}d:do if(!(c[2236]&4)){b=c[2131]|0;e:do if(b){d=8948;while(1){m=c[d>>2]|0;if(m>>>0<=b>>>0?(m+(c[d+4>>2]|0)|0)>>>0>b>>>0:0)break;a=c[d+8>>2]|0;if(!a){p=128;break e}else d=a}if((k-f&j)>>>0<2147483647){a=Jc(k-f&j|0)|0;if((a|0)==((c[d>>2]|0)+(c[d+4>>2]|0)|0))if((a|0)==(-1|0))a=k-f&j;else{h=a;g=k-f&j;p=145;break d}else{e=a;d=k-f&j;p=136}}else a=0}else p=128;while(0);do if((p|0)==128){b=Jc(0)|0;if((b|0)!=(-1|0)?(g=c[2244]|0,g=((g+-1&b|0)==0?0:(g+-1+b&0-g)-b|0)+(k&j)|0,o=c[2233]|0,g>>>0>n>>>0&g>>>0<2147483647):0){m=c[2235]|0;if(m|0?(g+o|0)>>>0<=o>>>0|(g+o|0)>>>0>m>>>0:0){a=0;break}a=Jc(g|0)|0;if((a|0)==(b|0)){h=b;p=145;break d}else{e=a;d=g;p=136}}else a=0}while(0);do if((p|0)==136){b=0-d|0;if(!(h>>>0>d>>>0&(d>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){a=0;break}else{h=e;g=d;p=145;break d}a=c[2245]|0;a=i-d+a&0-a;if(a>>>0>=2147483647){h=e;g=d;p=145;break d}if((Jc(a|0)|0)==(-1|0)){Jc(b|0)|0;a=0;break}else{h=e;g=a+d|0;p=145;break d}}while(0);c[2236]=c[2236]|4;p=143}else{a=0;p=143}while(0);if(((p|0)==143?(k&j)>>>0<2147483647:0)?(q=Jc(k&j|0)|0,r=Jc(0)|0,s=(r-q|0)>>>0>(n+40|0)>>>0,!((q|0)==(-1|0)|s^1|q>>>0<r>>>0&((q|0)!=(-1|0)&(r|0)!=(-1|0))^1)):0){h=q;g=s?r-q|0:a;p=145}if((p|0)==145){a=(c[2233]|0)+g|0;c[2233]=a;if(a>>>0>(c[2234]|0)>>>0)c[2234]=a;j=c[2131]|0;f:do if(j){e=8948;while(1){a=c[e>>2]|0;b=c[e+4>>2]|0;if((h|0)==(a+b|0)){p=154;break}d=c[e+8>>2]|0;if(!d)break;else e=d}if(((p|0)==154?(t=e+4|0,(c[e+12>>2]&8|0)==0):0)?h>>>0>j>>>0&a>>>0<=j>>>0:0){c[t>>2]=b+g;u=(c[2128]|0)+g|0;t=(j+8&7|0)==0?0:0-(j+8)&7;c[2131]=j+t;c[2128]=u-t;c[j+t+4>>2]=u-t|1;c[j+u+4>>2]=40;c[2132]=c[2247];break}if(h>>>0<(c[2129]|0)>>>0)c[2129]=h;d=h+g|0;b=8948;while(1){if((c[b>>2]|0)==(d|0)){p=162;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((p|0)==162?(c[b+12>>2]&8|0)==0:0){c[b>>2]=h;l=b+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+((d+8&7|0)==0?0:0-(d+8)&7)|0;k=l+n|0;i=a-l-n|0;c[l+4>>2]=n|3;g:do if((j|0)==(a|0)){u=(c[2128]|0)+i|0;c[2128]=u;c[2131]=k;c[k+4>>2]=u|1}else{if((c[2130]|0)==(a|0)){u=(c[2127]|0)+i|0;c[2127]=u;c[2130]=k;c[k+4>>2]=u|1;c[k+u>>2]=u;break}h=c[a+4>>2]|0;if((h&3|0)==1){h:do if(h>>>0<256){b=c[a+8>>2]|0;d=c[a+12>>2]|0;if((d|0)==(b|0)){c[2125]=c[2125]&~(1<<(h>>>3));break}else{c[b+12>>2]=d;c[d+8>>2]=b;break}}else{g=c[a+24>>2]|0;b=c[a+12>>2]|0;do if((b|0)==(a|0)){b=c[a+16+4>>2]|0;if(!b){b=c[a+16>>2]|0;if(!b){b=0;break}else d=a+16|0}else d=a+16+4|0;while(1){f=b+20|0;e=c[f>>2]|0;if(!e){f=b+16|0;e=c[f>>2]|0;if(!e)break;else{b=e;d=f}}else{b=e;d=f}}c[d>>2]=0}else{u=c[a+8>>2]|0;c[u+12>>2]=b;c[b+8>>2]=u}while(0);if(!g)break;d=c[a+28>>2]|0;do if((c[8804+(d<<2)>>2]|0)!=(a|0)){c[((c[g+16>>2]|0)==(a|0)?g+16|0:g+20|0)>>2]=b;if(!b)break h}else{c[8804+(d<<2)>>2]=b;if(b|0)break;c[2126]=c[2126]&~(1<<d);break h}while(0);c[b+24>>2]=g;d=c[a+16>>2]|0;if(d|0){c[b+16>>2]=d;c[d+24>>2]=b}d=c[a+16+4>>2]|0;if(!d)break;c[b+20>>2]=d;c[d+24>>2]=b}while(0);a=a+(h&-8)|0;f=(h&-8)+i|0}else f=i;d=a+4|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;d=f>>>3;if(f>>>0<256){a=c[2125]|0;if(!(a&1<<d)){c[2125]=a|1<<d;a=8540+(d<<1<<2)+8|0;b=8540+(d<<1<<2)|0}else{a=8540+(d<<1<<2)+8|0;b=c[8540+(d<<1<<2)+8>>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=8540+(d<<1<<2);break}a=f>>>8;do if(!a)e=0;else{if(f>>>0>16777215){e=31;break}e=a<<((a+1048320|0)>>>16&8)<<(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4);e=14-(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4|(a+1048320|0)>>>16&8|(e+245760|0)>>>16&2)+(e<<((e+245760|0)>>>16&2)>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=8804+(e<<2)|0;c[k+28>>2]=e;c[k+16+4>>2]=0;c[k+16>>2]=0;a=c[2126]|0;d=1<<e;if(!(a&d)){c[2126]=a|d;c[b>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}a=c[b>>2]|0;i:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break i}else{e=e<<1;a=b}}c[d>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);t=a+8|0;u=c[t>>2]|0;c[u+12>>2]=k;c[t>>2]=k;c[k+8>>2]=u;c[k+12>>2]=a;c[k+24>>2]=0}while(0);u=l+8|0;H=v;return u|0}b=8948;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(u=a+(c[b+4>>2]|0)|0,u>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=u+-47+((u+-47+8&7|0)==0?0:0-(u+-47+8)&7)|0;f=f>>>0<(j+16|0)>>>0?j:f;a=g+-40|0;s=h+8|0;s=(s&7|0)==0?0:0-s&7;t=h+s|0;c[2131]=t;c[2128]=a-s;c[t+4>>2]=a-s|1;c[h+a+4>>2]=40;c[2132]=c[2247];c[f+4>>2]=27;c[f+8>>2]=c[2237];c[f+8+4>>2]=c[2238];c[f+8+8>>2]=c[2239];c[f+8+12>>2]=c[2240];c[2237]=h;c[2238]=g;c[2240]=0;c[2239]=f+8;a=f+24|0;do{t=a;a=a+4|0;c[a>>2]=7}while((t+8|0)>>>0<u>>>0);if((f|0)!=(j|0)){c[f+4>>2]=c[f+4>>2]&-2;c[j+4>>2]=f-j|1;c[f>>2]=f-j;if((f-j|0)>>>0<256){d=8540+((f-j|0)>>>3<<1<<2)|0;a=c[2125]|0;if(!(a&1<<((f-j|0)>>>3))){c[2125]=a|1<<((f-j|0)>>>3);a=d+8|0;b=d}else{a=d+8|0;b=c[d+8>>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}if((f-j|0)>>>8)if((f-j|0)>>>0>16777215)e=31;else{e=(f-j|0)>>>8<<((((f-j|0)>>>8)+1048320|0)>>>16&8);e=14-((e+520192|0)>>>16&4|(((f-j|0)>>>8)+1048320|0)>>>16&8|((e<<((e+520192|0)>>>16&4))+245760|0)>>>16&2)+(e<<((e+520192|0)>>>16&4)<<(((e<<((e+520192|0)>>>16&4))+245760|0)>>>16&2)>>>15)|0;e=(f-j|0)>>>(e+7|0)&1|e<<1}else e=0;b=8804+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[2126]|0;d=1<<e;if(!(a&d)){c[2126]=a|d;c[b>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break}a=c[b>>2]|0;j:do if((c[a+4>>2]&-8|0)!=(f-j|0)){e=f-j<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f-j|0)){a=b;break j}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);t=a+8|0;u=c[t>>2]|0;c[u+12>>2]=j;c[t>>2]=j;c[j+8>>2]=u;c[j+12>>2]=a;c[j+24>>2]=0}}else{u=c[2129]|0;if((u|0)==0|h>>>0<u>>>0)c[2129]=h;c[2237]=h;c[2238]=g;c[2240]=0;c[2134]=c[2243];c[2133]=-1;c[2138]=8540;c[2137]=8540;c[2140]=8548;c[2139]=8548;c[2142]=8556;c[2141]=8556;c[2144]=8564;c[2143]=8564;c[2146]=8572;c[2145]=8572;c[2148]=8580;c[2147]=8580;c[2150]=8588;c[2149]=8588;c[2152]=8596;c[2151]=8596;c[2154]=8604;c[2153]=8604;c[2156]=8612;c[2155]=8612;c[2158]=8620;c[2157]=8620;c[2160]=8628;c[2159]=8628;c[2162]=8636;c[2161]=8636;c[2164]=8644;c[2163]=8644;c[2166]=8652;c[2165]=8652;c[2168]=8660;c[2167]=8660;c[2170]=8668;c[2169]=8668;c[2172]=8676;c[2171]=8676;c[2174]=8684;c[2173]=8684;c[2176]=8692;c[2175]=8692;c[2178]=8700;c[2177]=8700;c[2180]=8708;c[2179]=8708;c[2182]=8716;c[2181]=8716;c[2184]=8724;c[2183]=8724;c[2186]=8732;c[2185]=8732;c[2188]=8740;c[2187]=8740;c[2190]=8748;c[2189]=8748;c[2192]=8756;c[2191]=8756;c[2194]=8764;c[2193]=8764;c[2196]=8772;c[2195]=8772;c[2198]=8780;c[2197]=8780;c[2200]=8788;c[2199]=8788;u=g+-40|0;s=h+8|0;s=(s&7|0)==0?0:0-s&7;t=h+s|0;c[2131]=t;c[2128]=u-s;c[t+4>>2]=u-s|1;c[h+u+4>>2]=40;c[2132]=c[2247]}while(0);a=c[2128]|0;if(a>>>0>n>>>0){s=a-n|0;c[2128]=s;u=c[2131]|0;t=u+n|0;c[2131]=t;c[t+4>>2]=s|1;c[u+4>>2]=n|3;u=u+8|0;H=v;return u|0}}c[(vc()|0)>>2]=12;u=0;H=v;return u|0}function Gc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;b=c[2129]|0;d=c[a+-4>>2]|0;k=a+-8+(d&-8)|0;do if(!(d&1)){e=c[a+-8>>2]|0;if(!(d&3))return;g=a+-8+(0-e)|0;h=e+(d&-8)|0;if(g>>>0<b>>>0)return;if((c[2130]|0)==(g|0)){a=c[k+4>>2]|0;if((a&3|0)!=3){i=g;j=g;a=h;break}c[2127]=h;c[k+4>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}if(e>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[2125]=c[2125]&~(1<<(e>>>3));i=g;j=g;a=h;break}else{c[a+12>>2]=b;c[b+8>>2]=a;i=g;j=g;a=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){a=c[g+16+4>>2]|0;if(!a){a=c[g+16>>2]|0;if(!a){a=0;break}else b=g+16|0}else b=g+16+4|0;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{j=c[g+8>>2]|0;c[j+12>>2]=a;c[a+8>>2]=j}while(0);if(f){b=c[g+28>>2]|0;if((c[8804+(b<<2)>>2]|0)==(g|0)){c[8804+(b<<2)>>2]=a;if(!a){c[2126]=c[2126]&~(1<<b);i=g;j=g;a=h;break}}else{c[((c[f+16>>2]|0)==(g|0)?f+16|0:f+20|0)>>2]=a;if(!a){i=g;j=g;a=h;break}}c[a+24>>2]=f;b=c[g+16>>2]|0;if(b|0){c[a+16>>2]=b;c[b+24>>2]=a}b=c[g+16+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=g;j=g;a=h}else{i=g;j=g;a=h}}else{i=g;j=g;a=h}}else{i=a+-8|0;j=a+-8|0;a=d&-8}while(0);if(i>>>0>=k>>>0)return;d=c[k+4>>2]|0;if(!(d&1))return;if(!(d&2)){if((c[2131]|0)==(k|0)){k=(c[2128]|0)+a|0;c[2128]=k;c[2131]=j;c[j+4>>2]=k|1;if((j|0)!=(c[2130]|0))return;c[2130]=0;c[2127]=0;return}if((c[2130]|0)==(k|0)){k=(c[2127]|0)+a|0;c[2127]=k;c[2130]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(d&-8)+a|0;do if(d>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[2125]=c[2125]&~(1<<(d>>>3));break}else{c[b+12>>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){a=c[k+16+4>>2]|0;if(!a){a=c[k+16>>2]|0;if(!a){b=0;break}else b=k+16|0}else b=k+16+4|0;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;b=a}else{b=c[k+8>>2]|0;c[b+12>>2]=a;c[a+8>>2]=b;b=a}while(0);if(g|0){a=c[k+28>>2]|0;if((c[8804+(a<<2)>>2]|0)==(k|0)){c[8804+(a<<2)>>2]=b;if(!b){c[2126]=c[2126]&~(1<<a);break}}else{c[((c[g+16>>2]|0)==(k|0)?g+16|0:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[k+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[k+16+4>>2]|0;if(a|0){c[b+20>>2]=a;c[a+24>>2]=b}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[2130]|0)){c[2127]=f;return}}else{c[k+4>>2]=d&-2;c[j+4>>2]=a|1;c[i+a>>2]=a;f=a}d=f>>>3;if(f>>>0<256){a=c[2125]|0;if(!(a&1<<d)){c[2125]=a|1<<d;a=8540+(d<<1<<2)+8|0;b=8540+(d<<1<<2)|0}else{a=8540+(d<<1<<2)+8|0;b=c[8540+(d<<1<<2)+8>>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=8540+(d<<1<<2);return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{e=a<<((a+1048320|0)>>>16&8)<<(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4);e=14-(((a<<((a+1048320|0)>>>16&8))+520192|0)>>>16&4|(a+1048320|0)>>>16&8|(e+245760|0)>>>16&2)+(e<<((e+245760|0)>>>16&2)>>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=8804+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[2126]|0;d=1<<e;a:do if(!(a&d)){c[2126]=a|d;c[b>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[2133]|0)+-1|0;c[2133]=k;if(k|0)return;a=8956;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[2133]=-1;return}function Hc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){y(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function Ic(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=d|d<<8|d<<16|d<<24;while((b|0)<=((f&-4)-64|0)){c[b>>2]=g;c[b+4>>2]=g;c[b+8>>2]=g;c[b+12>>2]=g;c[b+16>>2]=g;c[b+20>>2]=g;c[b+24>>2]=g;c[b+28>>2]=g;c[b+32>>2]=g;c[b+36>>2]=g;c[b+40>>2]=g;c[b+44>>2]=g;c[b+48>>2]=g;c[b+52>>2]=g;c[b+56>>2]=g;c[b+60>>2]=g;b=b+64|0}while((b|0)<(f&-4|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function Jc(a){a=a|0;var b=0,d=0;d=x()|0;b=c[g>>2]|0;if((a|0)>0&(b+a|0)<(b|0)|(b+a|0)<0){B(b+a|0)|0;t(12);return -1}if((b+a|0)>(d|0))if(!(z(b+a|0)|0)){t(12);return -1}c[g>>2]=b+a;return b|0}function Kc(a,b){a=a|0;b=b|0;return K[a&1](b|0)|0}function Lc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return L[a&1](b|0,c|0,d|0)|0}function Mc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return M[a&1](b|0,c|0,d|0,e|0)|0}function Nc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;N[a&3](b|0,c|0,d|0,e|0,f|0)}function Oc(a){a=a|0;q(0);return 0}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;q(1);return 0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;q(2);return 0}function Rc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;q(3)}
69
+ function $a(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=c[e>>2]|0;if((g|0)==16777215)return;h=f>>>0<16?16:8;j=f>>>0<16?f:f&3;b=b+(p(c[3376+(j<<2)>>2]|0,h)|0)+(c[3312+(j<<2)>>2]|0)|0;j=c[e+4>>2]|0;i=d[b+1>>0]|0;a[b>>0]=a[3952+(g+(d[b>>0]|0))>>0]|0;g=c[e+8>>2]|0;f=d[b+2>>0]|0;a[b+1>>0]=a[3952+(j+i)>>0]|0;i=a[3952+((c[e+12>>2]|0)+(d[b+3>>0]|0))>>0]|0;a[b+2>>0]=a[3952+(g+f)>>0]|0;a[b+3>>0]=i;i=c[e+20>>2]|0;f=d[b+h+1>>0]|0;a[b+h>>0]=a[3952+((c[e+16>>2]|0)+(d[b+h>>0]|0))>>0]|0;g=c[e+24>>2]|0;j=d[b+h+2>>0]|0;a[b+h+1>>0]=a[3952+(i+f)>>0]|0;f=a[3952+((c[e+28>>2]|0)+(d[b+h+3>>0]|0))>>0]|0;a[b+h+2>>0]=a[3952+(g+j)>>0]|0;a[b+h+3>>0]=f;b=b+h+h|0;f=c[e+36>>2]|0;j=d[b+1>>0]|0;a[b>>0]=a[3952+((c[e+32>>2]|0)+(d[b>>0]|0))>>0]|0;g=c[e+40>>2]|0;i=d[b+2>>0]|0;a[b+1>>0]=a[3952+(f+j)>>0]|0;j=a[3952+((c[e+44>>2]|0)+(d[b+3>>0]|0))>>0]|0;a[b+2>>0]=a[3952+(g+i)>>0]|0;a[b+3>>0]=j;j=c[e+52>>2]|0;i=d[b+h+1>>0]|0;a[b+h>>0]=a[3952+((c[e+48>>2]|0)+(d[b+h>>0]|0))>>0]|0;g=c[e+56>>2]|0;f=d[b+h+2>>0]|0;a[b+h+1>>0]=a[3952+(j+i)>>0]|0;e=a[3952+((c[e+60>>2]|0)+(d[b+h+3>>0]|0))>>0]|0;a[b+h+2>>0]=a[3952+(g+f)>>0]|0;a[b+h+3>>0]=e;return}function ab(a,f,g,h,i,j){a=a|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0;J=H;H=H+32|0;m=c[i+4>>2]|0;G=((h>>>0)/(m>>>0)|0)<<4;I=h-(p((h>>>0)/(m>>>0)|0,m)|0)<<4;c[J+4>>2]=m;c[J+8>>2]=c[i+8>>2];m=c[a>>2]|0;a:do switch(m|0){case 1:case 0:{y=c[f+144>>2]|0;o=c[a+4>>2]|0;l=c[a+200>>2]|0;if((l|0)!=0?(c[l+4>>2]|0)==(o|0):0)if((c[l>>2]|0)>>>0<6){k=e[l+152>>1]|e[l+152+2>>1]<<16;q=1;w=k&65535;k=k>>>16&65535;s=c[l+104>>2]|0}else{q=1;w=0;k=0;s=-1}else{q=0;w=0;k=0;s=-1}l=c[a+204>>2]|0;if((l|0)!=0?(c[l+4>>2]|0)==(o|0):0)if((c[l>>2]|0)>>>0<6){u=e[l+172>>1]|e[l+172+2>>1]<<16;n=1;r=c[l+108>>2]|0;t=u&65535;u=u>>>16&65535}else{n=1;r=-1;t=0;u=0}else{n=0;r=-1;t=0;u=0}if(!m)if((!((q|0)==0|(n|0)==0)?((k&65535)<<16|w&65535|s|0)!=0:0)?((u&65535)<<16|t&65535|r|0)!=0:0)F=14;else{m=0;l=0}else F=14;if((F|0)==14){v=b[f+160>>1]|0;x=b[f+162>>1]|0;l=c[a+208>>2]|0;if((l|0)!=0?(c[l+4>>2]|0)==(o|0):0)if((c[l>>2]|0)>>>0<6){o=c[l+108>>2]|0;n=e[l+172>>1]|e[l+172+2>>1]<<16;F=23}else{o=-1;n=0;F=23}else F=18;do if((F|0)==18){l=c[a+212>>2]|0;if(l|0?(c[l+4>>2]|0)==(o|0):0){if((c[l>>2]|0)>>>0>=6){o=-1;n=0;F=23;break}o=c[l+112>>2]|0;n=e[l+192>>1]|e[l+192+2>>1]<<16;F=23;break}if((q|0)==0|(n|0)!=0){o=-1;n=0;F=23}else l=w}while(0);do if((F|0)==23){m=(s|0)==(y|0);l=(r|0)==(y|0);if(((l&1)+(m&1)+((o|0)==(y|0)&1)|0)!=1){D=w<<16>>16;B=t<<16>>16;l=n<<16>>16;A=t<<16>>16>w<<16>>16;C=A?t:w;D=A?D:(B|0)<(D|0)?B:D;B=k<<16>>16;A=u<<16>>16;F=n>>16;z=u<<16>>16>k<<16>>16;E=z?u:k;k=z?B:(A|0)<(B|0)?A:B;l=(C<<16>>16<(n&65535)<<16>>16?C&65535:(D|0)>(l|0)?D:l)&65535;k=(E<<16>>16<(n>>>16&65535)<<16>>16?E&65535:(k|0)>(F|0)?k:F)&65535;break}if(m|l){l=m?w:t;k=m?k:u}else{l=n&65535;k=n>>>16&65535}}while(0);l=(l&65535)+(v&65535)|0;k=(k&65535)+(x&65535)|0;if(((l<<16>>16)+8192|0)>>>0>16383){f=1;H=J;return f|0}if(((k<<16>>16)+2048|0)>>>0>4095){f=1;H=J;return f|0}else{m=l&65535;l=k&65535}}k=vb(g,y)|0;if(!k){f=1;H=J;return f|0}else{b[a+192>>1]=m;b[a+194>>1]=l;g=c[a+192>>2]|0;c[a+188>>2]=g;c[a+184>>2]=g;c[a+180>>2]=g;c[a+176>>2]=g;c[a+172>>2]=g;c[a+168>>2]=g;c[a+164>>2]=g;c[a+160>>2]=g;c[a+156>>2]=g;c[a+152>>2]=g;c[a+148>>2]=g;c[a+144>>2]=g;c[a+140>>2]=g;c[a+136>>2]=g;c[a+132>>2]=g;c[a+100>>2]=y;c[a+104>>2]=y;c[a+108>>2]=y;c[a+112>>2]=y;c[a+116>>2]=k;c[a+120>>2]=k;c[a+124>>2]=k;c[a+128>>2]=k;c[J>>2]=k;pb(j,a+132|0,J,I,G,0,0,16,16);break a}}case 2:{u=b[f+160>>1]|0;v=b[f+162>>1]|0;w=c[f+144>>2]|0;o=c[a+4>>2]|0;k=c[a+204>>2]|0;if((k|0)!=0?(c[k+4>>2]|0)==(o|0):0)if((c[k>>2]|0)>>>0<6){t=e[k+172>>1]|e[k+172+2>>1]<<16;r=1;k=c[k+108>>2]|0;s=t&65535;t=t>>>16&65535}else{r=1;k=-1;s=0;t=0}else{r=0;k=-1;s=0;t=0}b:do if((k|0)!=(w|0)){m=c[a+200>>2]|0;if((m|0)!=0?(c[m+4>>2]|0)==(o|0):0)if((c[m>>2]|0)>>>0<6){k=e[m+152>>1]|e[m+152+2>>1]<<16;n=1;l=k&65535;k=k>>>16&65535;q=c[m+104>>2]|0}else{n=1;l=0;k=0;q=-1}else{n=0;l=0;k=0;q=-1}m=c[a+208>>2]|0;if((m|0)!=0?(c[m+4>>2]|0)==(o|0):0)if((c[m>>2]|0)>>>0<6){o=c[m+108>>2]|0;n=e[m+172>>1]|e[m+172+2>>1]<<16}else{o=-1;n=0}else F=44;do if((F|0)==44){m=c[a+212>>2]|0;if(m|0?(c[m+4>>2]|0)==(o|0):0){if((c[m>>2]|0)>>>0>=6){o=-1;n=0;break}o=c[m+112>>2]|0;n=e[m+192>>1]|e[m+192+2>>1]<<16;break}if((r|0)!=0|(n|0)==0){o=-1;n=0}else break b}while(0);m=(q|0)==(w|0);if((((o|0)==(w|0)&1)+(m&1)|0)!=1){B=l<<16>>16;A=s<<16>>16;D=n<<16>>16;F=s<<16>>16>l<<16>>16;C=F?s:l;l=F?B:(A|0)<(B|0)?A:B;B=k<<16>>16;A=t<<16>>16;F=n>>16;z=t<<16>>16>k<<16>>16;E=z?t:k;k=z?B:(A|0)<(B|0)?A:B;l=(C<<16>>16<(n&65535)<<16>>16?C&65535:(l|0)>(D|0)?l:D)&65535;k=(E<<16>>16<(n>>>16&65535)<<16>>16?E&65535:(k|0)>(F|0)?k:F)&65535;break}if(!m){l=n&65535;k=n>>>16&65535}}else{l=s;k=t}while(0);m=(l&65535)+(u&65535)|0;k=(k&65535)+(v&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){f=1;H=J;return f|0}if(((k<<16>>16)+2048|0)>>>0>4095){f=1;H=J;return f|0}l=vb(g,w)|0;if(!l){f=1;H=J;return f|0}b[a+160>>1]=m;b[a+162>>1]=k;q=c[a+160>>2]|0;c[a+156>>2]=q;c[a+152>>2]=q;c[a+148>>2]=q;c[a+144>>2]=q;c[a+140>>2]=q;c[a+136>>2]=q;c[a+132>>2]=q;c[a+100>>2]=w;c[a+104>>2]=w;c[a+116>>2]=l;c[a+120>>2]=l;r=b[f+164>>1]|0;s=b[f+166>>1]|0;t=c[f+148>>2]|0;k=c[a+4>>2]|0;m=c[a+200>>2]|0;if(((m|0)!=0?(c[m+4>>2]|0)==(k|0):0)?(c[m>>2]|0)>>>0<6:0){o=e[m+184>>1]|e[m+184+2>>1]<<16;n=o&65535;o=o>>>16&65535;l=c[m+112>>2]|0}else{n=0;o=0;l=-1}do if((l|0)!=(t|0)){if(((m|0)!=0?(c[m+4>>2]|0)==(k|0):0)?(c[m>>2]|0)>>>0<6:0){k=c[m+104>>2]|0;m=e[m+160>>1]|e[m+160+2>>1]<<16}else{k=-1;m=0}if((((k|0)==(t|0)&1)+((w|0)==(t|0)&1)|0)==1){l=(w|0)==(t|0)?q:m;k=(w|0)==(t|0)?q>>>16:m>>>16;break}else{D=n<<16>>16;l=m<<16>>16;F=n<<16>>16<(q&65535)<<16>>16;C=F?q&65535:n;D=F?D:(q<<16>>16|0)<(D|0)?q<<16>>16:D;F=o<<16>>16;k=m>>16;B=o<<16>>16<(q>>>16&65535)<<16>>16;E=B?q>>>16&65535:o;F=B?F:(q>>16|0)<(F|0)?q>>16:F;l=C<<16>>16<(m&65535)<<16>>16?C&65535:(D|0)>(l|0)?D:l;k=E<<16>>16<(m>>>16&65535)<<16>>16?E&65535:(F|0)>(k|0)?F:k;break}}else{k=o&65535;l=k<<16|n&65535}while(0);m=(l&65535)+(r&65535)|0;l=(k&65535)+(s&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){f=1;H=J;return f|0}if(((l<<16>>16)+2048|0)>>>0>4095){f=1;H=J;return f|0}k=vb(g,t)|0;if(!k){f=1;H=J;return f|0}else{b[a+192>>1]=m;b[a+194>>1]=l;g=c[a+192>>2]|0;c[a+188>>2]=g;c[a+184>>2]=g;c[a+180>>2]=g;c[a+176>>2]=g;c[a+172>>2]=g;c[a+168>>2]=g;c[a+164>>2]=g;c[a+108>>2]=t;c[a+112>>2]=t;c[a+124>>2]=k;c[a+128>>2]=k;c[J>>2]=c[a+116>>2];pb(j,a+132|0,J,I,G,0,0,16,8);c[J>>2]=c[a+124>>2];pb(j,a+164|0,J,I,G,0,8,16,8);break a}}case 3:{t=b[f+160>>1]|0;u=b[f+162>>1]|0;v=c[f+144>>2]|0;n=c[a+4>>2]|0;m=c[a+200>>2]|0;if((m|0)!=0?(c[m+4>>2]|0)==(n|0):0)if((c[m>>2]|0)>>>0<6){k=e[m+152>>1]|e[m+152+2>>1]<<16;o=1;l=k&65535;k=k>>>16&65535;m=c[m+104>>2]|0}else{o=1;l=0;k=0;m=-1}else{o=0;l=0;k=0;m=-1}c:do if((m|0)!=(v|0)){m=c[a+204>>2]|0;if((m|0)!=0?(c[m+4>>2]|0)==(n|0):0)if((c[m>>2]|0)>>>0<6){s=e[m+172>>1]|e[m+172+2>>1]<<16;n=c[m+108>>2]|0;q=s&65535;s=s>>>16&65535;r=c[m+112>>2]|0;o=e[m+188>>1]|e[m+188+2>>1]<<16}else{n=-1;q=0;s=0;r=-1;o=0}else F=82;do if((F|0)==82){m=c[a+212>>2]|0;if(m|0?(c[m+4>>2]|0)==(n|0):0){if((c[m>>2]|0)>>>0>=6){n=-1;q=0;s=0;r=-1;o=0;break}n=-1;q=0;s=0;r=c[m+112>>2]|0;o=e[m+192>>1]|e[m+192+2>>1]<<16;break}if(!o){n=-1;q=0;s=0;r=-1;o=0}else break c}while(0);m=(n|0)==(v|0);if(((m&1)+((r|0)==(v|0)&1)|0)!=1){B=l<<16>>16;A=q<<16>>16;D=o<<16>>16;F=q<<16>>16>l<<16>>16;C=F?q:l;l=F?B:(A|0)<(B|0)?A:B;B=k<<16>>16;A=s<<16>>16;F=o>>16;z=s<<16>>16>k<<16>>16;E=z?s:k;k=z?B:(A|0)<(B|0)?A:B;l=(C<<16>>16<(o&65535)<<16>>16?C&65535:(l|0)>(D|0)?l:D)&65535;k=(E<<16>>16<(o>>>16&65535)<<16>>16?E&65535:(k|0)>(F|0)?k:F)&65535;break}if(m){l=q;k=s}else{l=o&65535;k=o>>>16&65535}}while(0);m=(l&65535)+(t&65535)|0;k=(k&65535)+(u&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){f=1;H=J;return f|0}if(((k<<16>>16)+2048|0)>>>0>4095){f=1;H=J;return f|0}l=vb(g,v)|0;if(!l){f=1;H=J;return f|0}b[a+176>>1]=m;b[a+178>>1]=k;q=c[a+176>>2]|0;c[a+172>>2]=q;c[a+168>>2]=q;c[a+164>>2]=q;c[a+144>>2]=q;c[a+140>>2]=q;c[a+136>>2]=q;c[a+132>>2]=q;c[a+100>>2]=v;c[a+108>>2]=v;c[a+116>>2]=l;c[a+124>>2]=l;r=b[f+164>>1]|0;s=b[f+166>>1]|0;t=c[f+148>>2]|0;m=c[a+4>>2]|0;k=c[a+208>>2]|0;if((k|0)!=0?(c[k+4>>2]|0)==(m|0):0)if((c[k>>2]|0)>>>0<6){n=1;l=c[k+108>>2]|0;o=e[k+172>>1]|e[k+172+2>>1]<<16}else{n=1;l=-1;o=0}else{k=c[a+204>>2]|0;if((k|0)!=0?(c[k+4>>2]|0)==(m|0):0)if((c[k>>2]|0)>>>0<6){n=1;l=c[k+108>>2]|0;o=e[k+176>>1]|e[k+176+2>>1]<<16}else{n=1;l=-1;o=0}else{n=0;l=-1;o=0}}do if((l|0)!=(t|0)){k=c[a+204>>2]|0;if((k|0)!=0?(c[k+4>>2]|0)==(m|0):0)if((c[k>>2]|0)>>>0<6){m=e[k+188>>1]|e[k+188+2>>1]<<16;k=c[k+112>>2]|0;l=m&65535;m=m>>>16&65535}else{k=-1;l=0;m=0}else if(!n){l=q;k=q>>>16;break}else{k=-1;l=0;m=0}k=(k|0)==(t|0);if(((k&1)+((v|0)==(t|0)&1)|0)!=1){F=l<<16>>16;D=o<<16>>16;k=l<<16>>16>(q&65535)<<16>>16;C=k?l:q&65535;l=k?q<<16>>16:(q<<16>>16|0)>(F|0)?F:q<<16>>16;F=m<<16>>16;k=o>>16;B=m<<16>>16>(q>>>16&65535)<<16>>16;E=B?m:q>>>16&65535;F=B?q>>16:(q>>16|0)>(F|0)?F:q>>16;l=C<<16>>16<(o&65535)<<16>>16?C&65535:(l|0)>(D|0)?l:D;k=E<<16>>16<(o>>>16&65535)<<16>>16?E&65535:(F|0)>(k|0)?F:k;break}if((v|0)!=(t|0))if(k){k=m&65535;l=k<<16|l&65535;break}else{l=o;k=o>>>16;break}else{l=q;k=q>>>16}}else{l=o;k=o>>>16}while(0);m=(l&65535)+(r&65535)|0;l=(k&65535)+(s&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){f=1;H=J;return f|0}if(((l<<16>>16)+2048|0)>>>0>4095){f=1;H=J;return f|0}k=vb(g,t)|0;if(!k){f=1;H=J;return f|0}else{b[a+192>>1]=m;b[a+194>>1]=l;g=c[a+192>>2]|0;c[a+188>>2]=g;c[a+184>>2]=g;c[a+180>>2]=g;c[a+160>>2]=g;c[a+156>>2]=g;c[a+152>>2]=g;c[a+148>>2]=g;c[a+104>>2]=t;c[a+112>>2]=t;c[a+120>>2]=k;c[a+128>>2]=k;c[J>>2]=c[a+116>>2];pb(j,a+132|0,J,I,G,0,0,8,16);c[J>>2]=c[a+120>>2];pb(j,a+148|0,J,I,G,8,0,8,16);break a}}default:{C=0;d:while(1){z=f+176+(C<<2)|0;B=qa(c[z>>2]|0)|0;A=f+192+(C<<2)|0;c[a+100+(C<<2)>>2]=c[A>>2];F=vb(g,c[A>>2]|0)|0;c[a+116+(C<<2)>>2]=F;if(!F){k=1;F=165;break}e:do if(B|0){E=C<<2;D=0;while(1){w=b[f+208+(C<<4)+(D<<2)>>1]|0;x=b[f+208+(C<<4)+(D<<2)+2>>1]|0;y=ta(c[z>>2]|0)|0;v=c[A>>2]|0;k=Fa(a,c[4720+(C<<7)+(y<<5)+(D<<3)>>2]|0)|0;l=d[4720+(C<<7)+(y<<5)+(D<<3)+4>>0]|0;if((k|0)!=0?(c[k+4>>2]|0)==(c[a+4>>2]|0):0)if((c[k>>2]|0)>>>0<6){F=e[k+132+(l<<2)>>1]|e[k+132+(l<<2)+2>>1]<<16;q=1;t=c[k+100+(l>>>2<<2)>>2]|0;k=F&65535;l=F>>>16&65535}else{q=1;t=-1;k=0;l=0}else{q=0;t=-1;k=0;l=0}m=Fa(a,c[5232+(C<<7)+(y<<5)+(D<<3)>>2]|0)|0;n=d[5232+(C<<7)+(y<<5)+(D<<3)+4>>0]|0;if((m|0)!=0?(c[m+4>>2]|0)==(c[a+4>>2]|0):0)if((c[m>>2]|0)>>>0<6){u=e[m+132+(n<<2)>>1]|e[m+132+(n<<2)+2>>1]<<16;o=1;r=c[m+100+(n>>>2<<2)>>2]|0;s=u&65535;u=u>>>16&65535}else{o=1;r=-1;s=0;u=0}else{o=0;r=-1;s=0;u=0}m=Fa(a,c[5744+(C<<7)+(y<<5)+(D<<3)>>2]|0)|0;n=d[5744+(C<<7)+(y<<5)+(D<<3)+4>>0]|0;if((m|0)!=0?(c[m+4>>2]|0)==(c[a+4>>2]|0):0)if((c[m>>2]|0)>>>0<6){q=c[m+100+(n>>>2<<2)>>2]|0;o=e[m+132+(n<<2)>>1]|e[m+132+(n<<2)+2>>1]<<16;F=140}else{q=-1;o=0;F=140}else F=135;do if((F|0)==135){F=0;m=Fa(a,c[6256+(C<<7)+(y<<5)+(D<<3)>>2]|0)|0;n=d[6256+(C<<7)+(y<<5)+(D<<3)+4>>0]|0;if(m|0?(c[m+4>>2]|0)==(c[a+4>>2]|0):0){if((c[m>>2]|0)>>>0>=6){q=-1;o=0;F=140;break}q=c[m+100+(n>>>2<<2)>>2]|0;o=e[m+132+(n<<2)>>1]|e[m+132+(n<<2)+2>>1]<<16;F=140;break}if((q|0)==0|(o|0)!=0){q=-1;o=0;F=140}}while(0);do if((F|0)==140){F=0;n=(t|0)==(v|0);m=(r|0)==(v|0);if(((m&1)+(n&1)+((q|0)==(v|0)&1)|0)!=1){r=k<<16>>16;q=s<<16>>16;t=o<<16>>16;v=s<<16>>16>k<<16>>16;s=v?s:k;k=v?r:(q|0)<(r|0)?q:r;r=l<<16>>16;q=u<<16>>16;v=o>>16;n=u<<16>>16>l<<16>>16;u=n?u:l;l=n?r:(q|0)<(r|0)?q:r;k=(s<<16>>16<(o&65535)<<16>>16?s&65535:(k|0)>(t|0)?k:t)&65535;l=(u<<16>>16<(o>>>16&65535)<<16>>16?u&65535:(l|0)>(v|0)?l:v)&65535;break}if(n|m){k=n?k:s;l=n?l:u}else{k=o&65535;l=o>>>16&65535}}while(0);k=(k&65535)+(w&65535)|0;l=(l&65535)+(x&65535)|0;if(((k<<16>>16)+8192|0)>>>0>16383){k=1;F=165;break d}if(((l<<16>>16)+2048|0)>>>0>4095){k=1;F=165;break d}switch(y|0){case 0:{b[a+132+(E<<2)>>1]=k;b[a+132+(E<<2)+2>>1]=l;b[a+132+((E|1)<<2)>>1]=k;b[a+132+((E|1)<<2)+2>>1]=l;b[a+132+((E|2)<<2)>>1]=k;b[a+132+((E|2)<<2)+2>>1]=l;b[a+132+((E|3)<<2)>>1]=k;k=a+132+((E|3)<<2)+2|0;F=151;break}case 1:{F=(D<<1)+E|0;b[a+132+(F<<2)>>1]=k;b[a+132+(F<<2)+2>>1]=l;b[a+132+((F|1)<<2)>>1]=k;k=a+132+((F|1)<<2)+2|0;F=151;break}case 2:{F=D+E|0;b[a+132+(F<<2)>>1]=k;b[a+132+(F<<2)+2>>1]=l;b[a+132+(F+2<<2)>>1]=k;k=a+132+(F+2<<2)+2|0;F=151;break}case 3:{F=D+E|0;b[a+132+(F<<2)>>1]=k;k=a+132+(F<<2)+2|0;F=151;break}default:{}}if((F|0)==151)b[k>>1]=l;D=D+1|0;if(D>>>0>=B>>>0)break e}}while(0);C=C+1|0;if(C>>>0>=4){F=154;break}}if((F|0)==154){m=0;while(1){c[J>>2]=c[a+116+(m<<2)>>2];g=ta(c[f+176+(m<<2)>>2]|0)|0;k=m<<3&8;l=m>>>0<2?0:8;switch(g|0){case 0:{pb(j,a+132+(m<<2<<2)|0,J,I,G,k,l,8,8);break}case 1:{g=a+132+(m<<2<<2)|0;pb(j,g,J,I,G,k,l,8,4);pb(j,g+8|0,J,I,G,k,l|4,8,4);break}case 2:{g=a+132+(m<<2<<2)|0;pb(j,g,J,I,G,k,l,4,8);pb(j,g+4|0,J,I,G,k|4,l,4,8);break}default:{g=a+132+(m<<2<<2)|0;pb(j,g,J,I,G,k,l,4,4);pb(j,g+4|0,J,I,G,k|4,l,4,4);pb(j,g+8|0,J,I,G,k,l|4,4,4);pb(j,g+12|0,J,I,G,k|4,l|4,4,4)}}m=m+1|0;if((m|0)==4)break a}}else if((F|0)==165){H=J;return k|0}}}while(0);if((c[a+196>>2]|0)>>>0>1){f=0;H=J;return f|0}if(!(c[a>>2]|0)){Eb(i,j);f=0;H=J;return f|0}else{Fb(i,h,j,f+328|0);f=0;H=J;return f|0}return 0}function bb(b,c,e,f,g,h,i,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=H;H=H+144|0;if((e|0)>=0?!((k+f|0)>>>0>h>>>0|((f|0)<0|(j+1+e|0)>>>0>g>>>0)):0)s=g;else{cb(b,t,e,f,g,h,j+1|0,k,j+1|0);cb(b+(p(h,g)|0)|0,t+(p(j+1|0,k)|0)|0,e,f,g,h,j+1|0,k,j+1|0);h=k;b=t;s=j+1|0;e=0;f=0}r=(s<<1)-j|0;if((k>>>1|0)==0|(j>>>1|0)==0){H=t;return}m=c;g=b+(p(f,s)|0)+e|0;q=k>>>1;while(1){o=g+(j&-2)|0;n=m;l=j>>>1;while(1){u=g+1|0;v=d[g>>0]|0;w=d[u+s>>0]|0;u=d[u>>0]|0;a[n+8>>0]=(((p(w,i)|0)+(p(8-i|0,d[g+s>>0]|0)|0)<<3)+32|0)>>>6;g=g+2|0;a[n>>0]=(((p(u,i)|0)+(p(8-i|0,v)|0)<<3)+32|0)>>>6;v=d[g>>0]|0;a[n+9>>0]=(((p(d[g+s>>0]|0,i)|0)+(p(8-i|0,w)|0)<<3)+32|0)>>>6;a[n+1>>0]=(((p(v,i)|0)+(p(8-i|0,u)|0)<<3)+32|0)>>>6;l=l+-1|0;if(!l)break;else n=n+2|0}q=q+-1|0;if(!q)break;else{m=m+(j&-2)+(16-j)|0;g=o+r|0}}if((k>>>1|0)==0|(j>>>1|0)==0){H=t;return}l=c+64|0;h=b+(p(h+f|0,s)|0)+e|0;f=k>>>1;while(1){e=h+(j&-2)|0;g=l;b=j>>>1;while(1){w=h+1|0;v=d[h>>0]|0;u=d[w+s>>0]|0;w=d[w>>0]|0;a[g+8>>0]=(((p(u,i)|0)+(p(8-i|0,d[h+s>>0]|0)|0)<<3)+32|0)>>>6;h=h+2|0;a[g>>0]=(((p(w,i)|0)+(p(8-i|0,v)|0)<<3)+32|0)>>>6;v=d[h>>0]|0;a[g+9>>0]=(((p(d[h+s>>0]|0,i)|0)+(p(8-i|0,u)|0)<<3)+32|0)>>>6;a[g+1>>0]=(((p(v,i)|0)+(p(8-i|0,w)|0)<<3)+32|0)>>>6;b=b+-1|0;if(!b)break;else g=g+2|0}f=f+-1|0;if(!f)break;else{l=l+(j&-2)+(16-j)|0;h=e+r|0}}H=t;return}function cb(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0;s=(c|0)<0|(g+c|0)>(e|0)?1:2;o=(h+d|0)<0?0-h|0:d;r=(g+c|0)<0?0-g|0:c;o=(o|0)>(f|0)?f:o;r=(r|0)>(e|0)?e:r;c=(r|0)>0?a+r|0:a;q=c+(p(o,e)|0)|0;c=(o|0)>0?q:c;q=(r|0)<0?0-r|0:0;r=(r+g|0)>(e|0)?r+g-e|0:0;m=(o|0)<0?0-o|0:0;n=(o+h|0)>(f|0)?o+h-f|0:0;if(m){d=p(m,i)|0;a=b;j=0-o|0;while(1){N[s&3](c,a,q,g-q-r|0,r);j=j+-1|0;if(!j)break;else a=a+i|0}b=b+d|0}if(h-m-n|0){l=p(h-m-n|0,e)|0;a=p(h-m-n|0,i)|0;j=b;k=c;d=h-m-n|0;while(1){N[s&3](k,j,q,g-q-r|0,r);d=d+-1|0;if(!d)break;else{j=j+i|0;k=k+e|0}}b=b+a|0;c=c+l|0}d=c+(0-e)|0;if(!n)return;c=o+h-f|0;while(1){N[s&3](d,b,q,g-q-r|0,r);c=c+-1|0;if(!c)break;else b=b+i|0}return}function db(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;if(d){Ic(c|0,a[b>>0]|0,d|0)|0;c=c+d|0}if(e){d=e;g=c;h=b;while(1){a[g>>0]=a[h>>0]|0;d=d+-1|0;if(!d)break;else{g=g+1|0;h=h+1|0}}c=c+e|0;b=b+e|0}if(!f)return;Ic(c|0,a[b+-1>>0]|0,f|0)|0;return}function eb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ec(b,a,d);return}function fb(b,c,e,f,g,h,i,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=H;H=H+144|0;if(((e|0)>=0?!((f|0)<0|(j+e|0)>>>0>g>>>0):0)?(k+1+f|0)>>>0<=h>>>0:0)s=g;else{cb(b,t,e,f,g,h,j,k+1|0,j);cb(b+(p(h,g)|0)|0,t+(p(k+1|0,j)|0)|0,e,f,g,h,j,k+1|0,j);h=k+1|0;b=t;s=j;e=0;f=0}r=s<<1;if((k>>>1|0)==0|(j>>>1|0)==0){H=t;return}m=c;g=b+(p(f,s)|0)+e|0;q=k>>>1;while(1){o=g+(j&-2)|0;n=m;l=j>>>1;while(1){u=d[g+s>>0]|0;w=g+1|0;v=d[g>>0]|0;a[n+8>>0]=(((p(8-i|0,u)|0)+(p(d[g+r>>0]|0,i)|0)<<3)+32|0)>>>6;a[n>>0]=(((p(8-i|0,v)|0)+(p(u,i)|0)<<3)+32|0)>>>6;u=d[w+s>>0]|0;v=d[w>>0]|0;a[n+9>>0]=(((p(8-i|0,u)|0)+(p(d[w+r>>0]|0,i)|0)<<3)+32|0)>>>6;a[n+1>>0]=(((p(8-i|0,v)|0)+(p(u,i)|0)<<3)+32|0)>>>6;l=l+-1|0;if(!l)break;else{n=n+2|0;g=g+2|0}}q=q+-1|0;if(!q)break;else{m=m+(j&-2)+(16-j)|0;g=o+(r-j)|0}}if((k>>>1|0)==0|(j>>>1|0)==0){H=t;return}l=c+64|0;h=b+(p(h+f|0,s)|0)+e|0;f=k>>>1;while(1){e=h+(j&-2)|0;g=l;b=j>>>1;while(1){w=d[h+s>>0]|0;u=h+1|0;v=d[h>>0]|0;a[g+8>>0]=(((p(8-i|0,w)|0)+(p(d[h+r>>0]|0,i)|0)<<3)+32|0)>>>6;a[g>>0]=(((p(8-i|0,v)|0)+(p(w,i)|0)<<3)+32|0)>>>6;w=d[u+s>>0]|0;v=d[u>>0]|0;a[g+9>>0]=(((p(8-i|0,w)|0)+(p(d[u+r>>0]|0,i)|0)<<3)+32|0)>>>6;a[g+1>>0]=(((p(8-i|0,v)|0)+(p(w,i)|0)<<3)+32|0)>>>6;b=b+-1|0;if(!b)break;else{g=g+2|0;h=h+2|0}}f=f+-1|0;if(!f)break;else{l=l+(j&-2)+(16-j)|0;h=e+(r-j)|0}}H=t;return}function gb(b,c,e,f,g,h,i,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=H;H=H+176|0;if(!(((e|0)>=0?!((f|0)<0|(k+1+e|0)>>>0>g>>>0):0)?(l+1+f|0)>>>0<=h>>>0:0)){cb(b,w,e,f,g,h,k+1|0,l+1|0,k+1|0);cb(b+(p(h,g)|0)|0,w+(p(l+1|0,k+1|0)|0)|0,e,f,g,h,k+1|0,l+1|0,k+1|0);h=l+1|0;b=w;g=k+1|0;e=0;f=0}v=g<<1;if((l>>>1|0)==0|(k>>>1|0)==0){H=w;return}o=c;m=b+(p(f,g)|0)+e|0;u=l>>>1;while(1){n=d[m+g>>0]|0;s=m+(k&-2)|0;q=o;r=m;t=(p(n,j)|0)+(p(8-j|0,d[m>>0]|0)|0)|0;m=(p(d[m+v>>0]|0,j)|0)+(p(8-j|0,n)|0)|0;n=k>>>1;while(1){z=r+1|0;y=d[z+g>>0]|0;x=(p(y,j)|0)+(p(8-j|0,d[z>>0]|0)|0)|0;y=(p(d[z+v>>0]|0,j)|0)+(p(8-j|0,y)|0)|0;z=((p(t,8-i|0)|0)+32+(p(x,i)|0)|0)>>>6;a[q+8>>0]=((p(m,8-i|0)|0)+32+(p(y,i)|0)|0)>>>6;a[q>>0]=z;r=r+2|0;z=d[r+g>>0]|0;t=(p(z,j)|0)+(p(8-j|0,d[r>>0]|0)|0)|0;m=(p(d[r+v>>0]|0,j)|0)+(p(8-j|0,z)|0)|0;x=((p(x,8-i|0)|0)+32+(p(t,i)|0)|0)>>>6;a[q+9>>0]=((p(y,8-i|0)|0)+32+(p(m,i)|0)|0)>>>6;a[q+1>>0]=x;n=n+-1|0;if(!n)break;else q=q+2|0}u=u+-1|0;if(!u)break;else{o=o+(k&-2)+(16-k)|0;m=s+(v-k)|0}}if((l>>>1|0)==0|(k>>>1|0)==0){H=w;return}q=c+64|0;h=b+(p(h+f|0,g)|0)+e|0;o=l>>>1;while(1){b=d[h+g>>0]|0;m=h+(k&-2)|0;e=q;f=h;n=(p(b,j)|0)+(p(8-j|0,d[h>>0]|0)|0)|0;h=(p(d[h+v>>0]|0,j)|0)+(p(8-j|0,b)|0)|0;b=k>>>1;while(1){x=f+1|0;y=d[x+g>>0]|0;z=(p(y,j)|0)+(p(8-j|0,d[x>>0]|0)|0)|0;y=(p(d[x+v>>0]|0,j)|0)+(p(8-j|0,y)|0)|0;x=((p(n,8-i|0)|0)+32+(p(z,i)|0)|0)>>>6;a[e+8>>0]=((p(h,8-i|0)|0)+32+(p(y,i)|0)|0)>>>6;a[e>>0]=x;f=f+2|0;x=d[f+g>>0]|0;n=(p(x,j)|0)+(p(8-j|0,d[f>>0]|0)|0)|0;h=(p(d[f+v>>0]|0,j)|0)+(p(8-j|0,x)|0)|0;z=((p(z,8-i|0)|0)+32+(p(n,i)|0)|0)>>>6;a[e+9>>0]=((p(y,8-i|0)|0)+32+(p(h,i)|0)|0)>>>6;a[e+1>>0]=z;b=b+-1|0;if(!b)break;else e=e+2|0}o=o+-1|0;if(!o)break;else{q=q+(k&-2)+(16-k)|0;h=m+(v-k)|0}}H=w;return}function hb(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;q=H;H=H+448|0;if(((e|0)>=0?!((f|0)<0|(i+e|0)>>>0>g>>>0):0)?(j+5+f|0)>>>0<=h>>>0:0)h=e;else{cb(b,q,e,f,g,h,i,j+5|0,i);b=q;g=i;h=0;f=0}f=b+((p(f,g)|0)+h)+g|0;if(!(j>>>2)){H=q;return}m=g<<2;o=0-g|0;n=g<<1;if(!i){H=q;return}l=j>>>2;k=f;e=f+(g*5|0)|0;while(1){f=i;h=c;b=k;j=e;while(1){r=d[j+(o<<1)>>0]|0;v=d[j+o>>0]|0;s=d[j+g>>0]|0;w=d[j>>0]|0;t=d[b+n>>0]|0;a[h+48>>0]=a[3952+((d[j+n>>0]|0)+16-(s+r)-(s+r<<2)+t+((w+v|0)*20|0)>>5)>>0]|0;u=d[b+g>>0]|0;a[h+32>>0]=a[3952+(s+16+((v+r|0)*20|0)-(t+w)-(t+w<<2)+u>>5)>>0]|0;s=d[b>>0]|0;a[h+16>>0]=a[3952+(w+16+((t+r|0)*20|0)-(u+v)-(u+v<<2)+s>>5)>>0]|0;a[h>>0]=a[3952+(v+16+((u+t|0)*20|0)-(s+r)-(s+r<<2)+(d[b+o>>0]|0)>>5)>>0]|0;f=f+-1|0;if(!f)break;else{h=h+1|0;b=b+1|0;j=j+1|0}}l=l+-1|0;if(!l)break;else{c=c+64|0;k=k+m|0;e=e+m|0}}H=q;return}function ib(b,c,e,f,g,h,i,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;s=H;H=H+448|0;if(((e|0)>=0?!((f|0)<0|(i+e|0)>>>0>g>>>0):0)?(j+5+f|0)>>>0<=h>>>0:0)h=e;else{cb(b,s,e,f,g,h,i,j+5|0,i);b=s;g=i;h=0;f=0}f=b+((p(f,g)|0)+h)+g|0;if(!(j>>>2)){H=s;return}o=g<<2;r=0-g|0;q=g<<1;if(!i){H=s;return}n=j>>>2;m=f;l=f+(p(g,k+2|0)|0)|0;j=f+(g*5|0)|0;while(1){f=i;h=c;b=m;e=l;k=j;while(1){t=d[k+(r<<1)>>0]|0;x=d[k+r>>0]|0;u=d[k+g>>0]|0;y=d[k>>0]|0;v=d[b+q>>0]|0;a[h+48>>0]=((d[3952+((d[k+q>>0]|0)+16-(u+t)-(u+t<<2)+v+((y+x|0)*20|0)>>5)>>0]|0)+1+(d[e+q>>0]|0)|0)>>>1;w=d[b+g>>0]|0;a[h+32>>0]=((d[3952+(u+16+((x+t|0)*20|0)-(v+y)-(v+y<<2)+w>>5)>>0]|0)+1+(d[e+g>>0]|0)|0)>>>1;u=d[b>>0]|0;a[h+16>>0]=((d[3952+(y+16+((v+t|0)*20|0)-(w+x)-(w+x<<2)+u>>5)>>0]|0)+1+(d[e>>0]|0)|0)>>>1;a[h>>0]=((d[3952+(x+16+((w+v|0)*20|0)-(u+t)-(u+t<<2)+(d[b+r>>0]|0)>>5)>>0]|0)+1+(d[e+r>>0]|0)|0)>>>1;f=f+-1|0;if(!f)break;else{h=h+1|0;b=b+1|0;e=e+1|0;k=k+1|0}}n=n+-1|0;if(!n)break;else{c=c+64|0;m=m+o|0;l=l+o|0;j=j+o|0}}H=s;return}function jb(b,c,e,f,g,h,i,j){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0;q=H;H=H+448|0;if((e|0)>=0?!((j+f|0)>>>0>h>>>0|((f|0)<0|(i+5+e|0)>>>0>g>>>0)):0)h=e;else{cb(b,q,e,f,g,h,i+5|0,j,i+5|0);b=q;g=i+5|0;h=0;f=0}f=b+((p(f,g)|0)+h)+5|0;if(!j){H=q;return}o=g-i|0;if(!(i>>>2)){H=q;return}while(1){e=f+(i&-4)|0;b=c;g=f;k=d[f+-1>>0]|0;l=d[f+-2>>0]|0;m=d[f+-3>>0]|0;n=d[f+-4>>0]|0;f=d[f+-5>>0]|0;h=i>>>2;while(1){r=n+k|0;s=n;n=d[g>>0]|0;a[b>>0]=a[3952+(f+16-r+((m+l|0)*20|0)-(r<<2)+n>>5)>>0]|0;r=m+n|0;f=m;m=d[g+1>>0]|0;a[b+1>>0]=a[3952+(s+16+((l+k|0)*20|0)-r-(r<<2)+m>>5)>>0]|0;r=l+m|0;s=l;l=d[g+2>>0]|0;a[b+2>>0]=a[3952+(f+16+((k+n|0)*20|0)-r-(r<<2)+l>>5)>>0]|0;r=k+l|0;f=d[g+3>>0]|0;a[b+3>>0]=a[3952+(s+16+((m+n|0)*20|0)-r-(r<<2)+f>>5)>>0]|0;h=h+-1|0;if(!h)break;else{s=k;b=b+4|0;g=g+4|0;k=f;f=s}}j=j+-1|0;if(!j)break;else{c=c+(i&-4)+(16-i)|0;f=e+o|0}}H=q;return}function kb(b,c,e,f,g,h,i,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;r=H;H=H+448|0;if((e|0)>=0?!((j+f|0)>>>0>h>>>0|((f|0)<0|(i+5+e|0)>>>0>g>>>0)):0)h=f;else{cb(b,r,e,f,g,h,i+5|0,j,i+5|0);b=r;g=i+5|0;e=0;h=0}if(!j){H=r;return}q=g-i|0;h=b+((p(h,g)|0)+e)+5|0;while(1){b=d[h+-5>>0]|0;e=d[h+-4>>0]|0;f=d[h+-3>>0]|0;l=d[h+-2>>0]|0;g=d[h+-1>>0]|0;do if(i>>>2){o=h+(i&-4)|0;if(!k){n=c;m=g;g=i>>>2;while(1){s=e+m|0;t=e;e=d[h>>0]|0;a[n>>0]=(f+1+(d[3952+(b+16-s+((f+l|0)*20|0)-(s<<2)+e>>5)>>0]|0)|0)>>>1;s=f+e|0;b=f;f=d[h+1>>0]|0;a[n+1>>0]=(l+1+(d[3952+(t+16+((l+m|0)*20|0)-s-(s<<2)+f>>5)>>0]|0)|0)>>>1;s=l+f|0;t=l;l=d[h+2>>0]|0;a[n+2>>0]=(m+1+(d[3952+(b+16+((m+e|0)*20|0)-s-(s<<2)+l>>5)>>0]|0)|0)>>>1;s=m+l|0;b=d[h+3>>0]|0;a[n+3>>0]=(e+1+(d[3952+(t+16+((f+e|0)*20|0)-s-(s<<2)+b>>5)>>0]|0)|0)>>>1;g=g+-1|0;if(!g)break;else{t=m;n=n+4|0;h=h+4|0;m=b;b=t}}c=c+(i&-4)|0;h=o;break}else{n=c;m=g;g=i>>>2;while(1){t=e+m|0;s=e;e=d[h>>0]|0;a[n>>0]=(l+1+(d[3952+(b+16-t+((f+l|0)*20|0)-(t<<2)+e>>5)>>0]|0)|0)>>>1;t=f+e|0;b=f;f=d[h+1>>0]|0;a[n+1>>0]=(m+1+(d[3952+(s+16+((l+m|0)*20|0)-t-(t<<2)+f>>5)>>0]|0)|0)>>>1;t=l+f|0;s=l;l=d[h+2>>0]|0;a[n+2>>0]=(e+1+(d[3952+(b+16+((m+e|0)*20|0)-t-(t<<2)+l>>5)>>0]|0)|0)>>>1;t=m+l|0;b=d[h+3>>0]|0;a[n+3>>0]=(f+1+(d[3952+(s+16+((f+e|0)*20|0)-t-(t<<2)+b>>5)>>0]|0)|0)>>>1;g=g+-1|0;if(!g)break;else{t=m;n=n+4|0;h=h+4|0;m=b;b=t}}c=c+(i&-4)|0;h=o;break}}while(0);j=j+-1|0;if(!j)break;else{c=c+(16-i)|0;h=h+q|0}}H=r;return}function lb(b,c,e,f,g,h,i,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=H;H=H+448|0;if(((e|0)>=0?!((f|0)<0|(i+5+e|0)>>>0>g>>>0):0)?(j+5+f|0)>>>0<=h>>>0:0)h=e;else{cb(b,v,e,f,g,h,i+5|0,j+5|0,i+5|0);b=v;g=i+5|0;h=0;f=0}u=b+((p(f,g)|0)+h)|0;f=u+(p(g,k>>>1&1|2)|0)+5|0;u=u+g+2+(k&1)|0;do if(j){t=g-i|0;if(!(i>>>2)){c=c+((p(j+-1|0,16-i|0)|0)+16-i)|0;break}r=(p((i&-4)+16-i|0,j+-1|0)|0)+(i&-4)+16-i|0;s=c;q=j;while(1){k=f+(i&-4)|0;b=s;e=f;l=d[f+-1>>0]|0;m=d[f+-2>>0]|0;n=d[f+-3>>0]|0;o=d[f+-4>>0]|0;f=d[f+-5>>0]|0;h=i>>>2;while(1){w=o+l|0;x=o;o=d[e>>0]|0;a[b>>0]=a[3952+(f+16-w+((n+m|0)*20|0)-(w<<2)+o>>5)>>0]|0;w=n+o|0;f=n;n=d[e+1>>0]|0;a[b+1>>0]=a[3952+(x+16+((m+l|0)*20|0)-w-(w<<2)+n>>5)>>0]|0;w=m+n|0;x=m;m=d[e+2>>0]|0;a[b+2>>0]=a[3952+(f+16+((l+o|0)*20|0)-w-(w<<2)+m>>5)>>0]|0;w=l+m|0;f=d[e+3>>0]|0;a[b+3>>0]=a[3952+(x+16+((n+o|0)*20|0)-w-(w<<2)+f>>5)>>0]|0;h=h+-1|0;if(!h)break;else{x=l;b=b+4|0;e=e+4|0;l=f;f=x}}q=q+-1|0;if(!q)break;else{s=s+(i&-4)+(16-i)|0;f=k+t|0}}c=c+r|0}while(0);if(!(j>>>2)){H=v;return}o=g<<2;q=0-g|0;n=g<<1;if(!i){H=v;return}l=c+(0-(j<<4))|0;m=u;k=u+(g*5|0)|0;e=j>>>2;while(1){c=l;f=m;h=k;b=i;while(1){x=d[h+(q<<1)>>0]|0;t=d[h+q>>0]|0;s=d[h+g>>0]|0;r=d[h>>0]|0;j=d[f+n>>0]|0;u=c+48|0;a[u>>0]=((d[3952+((d[h+n>>0]|0)+16-(s+x)-(s+x<<2)+j+((r+t|0)*20|0)>>5)>>0]|0)+1+(d[u>>0]|0)|0)>>>1;u=d[f+g>>0]|0;w=c+32|0;a[w>>0]=((d[3952+(s+16+((t+x|0)*20|0)-(j+r)-(j+r<<2)+u>>5)>>0]|0)+1+(d[w>>0]|0)|0)>>>1;w=d[f>>0]|0;s=c+16|0;a[s>>0]=((d[3952+(r+16+((j+x|0)*20|0)-(u+t)-(u+t<<2)+w>>5)>>0]|0)+1+(d[s>>0]|0)|0)>>>1;a[c>>0]=((d[3952+(t+16+((u+j|0)*20|0)-(w+x)-(w+x<<2)+(d[f+q>>0]|0)>>5)>>0]|0)+1+(d[c>>0]|0)|0)>>>1;b=b+-1|0;if(!b)break;else{c=c+1|0;f=f+1|0;h=h+1|0}}e=e+-1|0;if(!e)break;else{l=l+64|0;m=m+o|0;k=k+o|0}}H=v;return}function mb(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0;t=H;H=H+1792|0;if(((f|0)>=0?!((g|0)<0|(j+5+f|0)>>>0>h>>>0):0)?(k+5+g|0)>>>0<=i>>>0:0){l=k+5|0;i=g}else{cb(b,t+1344|0,f,g,h,i,j+5|0,k+5|0,j+5|0);l=k+5|0;b=t+1344|0;h=j+5|0;f=0;i=0}i=b+((p(i,h)|0)+f)+5|0;if(l|0?(s=h-j|0,j>>>2|0):0){r=t;while(1){g=i+(j&-4)|0;f=r;h=i;m=d[i+-1>>0]|0;n=d[i+-2>>0]|0;o=d[i+-3>>0]|0;q=d[i+-4>>0]|0;i=d[i+-5>>0]|0;b=j>>>2;while(1){u=q+m|0;v=q;q=d[h>>0]|0;c[f>>2]=i-u+((o+n|0)*20|0)-(u<<2)+q;u=o+q|0;i=o;o=d[h+1>>0]|0;c[f+4>>2]=((n+m|0)*20|0)+v-u-(u<<2)+o;u=n+o|0;v=n;n=d[h+2>>0]|0;c[f+8>>2]=((m+q|0)*20|0)+i-u-(u<<2)+n;u=m+n|0;i=d[h+3>>0]|0;c[f+12>>2]=((o+q|0)*20|0)+v-u-(u<<2)+i;b=b+-1|0;if(!b)break;else{v=m;f=f+16|0;h=h+4|0;m=i;i=v}}l=l+-1|0;if(!l)break;else{r=r+((j&-4)<<2)|0;i=g+s|0}}}if(!(k>>>2)){H=t;return}if(!j){H=t;return}l=t+(j<<2)|0;m=t+(j<<2)+(j*5<<2)|0;g=k>>>2;while(1){i=e;b=l;f=m;h=j;while(1){v=c[f+(0-j<<1<<2)>>2]|0;r=c[f+(0-j<<2)>>2]|0;u=c[f+(j<<2)>>2]|0;q=c[f>>2]|0;k=c[b+(j<<1<<2)>>2]|0;a[i+48>>0]=a[3952+((c[f+(j<<1<<2)>>2]|0)+512-(u+v)-(u+v<<2)+k+((q+r|0)*20|0)>>10)>>0]|0;s=c[b+(j<<2)>>2]|0;a[i+32>>0]=a[3952+(u+512+((r+v|0)*20|0)-(k+q)-(k+q<<2)+s>>10)>>0]|0;u=c[b>>2]|0;a[i+16>>0]=a[3952+(q+512+((k+v|0)*20|0)-(s+r)-(s+r<<2)+u>>10)>>0]|0;a[i>>0]=a[3952+(r+512+((s+k|0)*20|0)-(u+v)-(u+v<<2)+(c[b+(0-j<<2)>>2]|0)>>10)>>0]|0;h=h+-1|0;if(!h)break;else{i=i+1|0;b=b+4|0;f=f+4|0}}g=g+-1|0;if(!g)break;else{e=e+64|0;l=l+(j<<2)+(j*3<<2)|0;m=m+(j<<2)+(j*3<<2)|0}}H=t;return}function nb(b,e,f,g,h,i,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=H;H=H+1792|0;if(((f|0)>=0?!((g|0)<0|(j+5+f|0)>>>0>h>>>0):0)?(k+5+g|0)>>>0<=i>>>0:0){m=k+5|0;i=g}else{cb(b,u+1344|0,f,g,h,i,j+5|0,k+5|0,j+5|0);m=k+5|0;b=u+1344|0;h=j+5|0;f=0;i=0}i=b+((p(i,h)|0)+f)+5|0;if(m|0?(t=h-j|0,j>>>2|0):0){s=u;while(1){g=i+(j&-4)|0;f=s;h=i;n=d[i+-1>>0]|0;o=d[i+-2>>0]|0;q=d[i+-3>>0]|0;r=d[i+-4>>0]|0;i=d[i+-5>>0]|0;b=j>>>2;while(1){v=r+n|0;w=r;r=d[h>>0]|0;c[f>>2]=i-v+((q+o|0)*20|0)-(v<<2)+r;v=q+r|0;i=q;q=d[h+1>>0]|0;c[f+4>>2]=((o+n|0)*20|0)+w-v-(v<<2)+q;v=o+q|0;w=o;o=d[h+2>>0]|0;c[f+8>>2]=((n+r|0)*20|0)+i-v-(v<<2)+o;v=n+o|0;i=d[h+3>>0]|0;c[f+12>>2]=((q+r|0)*20|0)+w-v-(v<<2)+i;b=b+-1|0;if(!b)break;else{w=n;f=f+16|0;h=h+4|0;n=i;i=w}}m=m+-1|0;if(!m)break;else{s=s+((j&-4)<<2)|0;i=g+t|0}}}if(!(k>>>2)){H=u;return}b=u+(j<<2)|0;f=u+(j<<2)+((p(l+2|0,j)|0)<<2)|0;i=u+(j<<2)+(j*5<<2)|0;q=k>>>2;while(1){if(j){o=i+(j<<2)|0;n=b+(j<<2)|0;m=e;g=f;h=j;while(1){w=c[i+(0-j<<1<<2)>>2]|0;t=c[i+(0-j<<2)>>2]|0;v=c[i+(j<<2)>>2]|0;s=c[i>>2]|0;k=c[b+(j<<1<<2)>>2]|0;a[m+48>>0]=((d[3952+((c[i+(j<<1<<2)>>2]|0)+512-(v+w)-(v+w<<2)+k+((s+t|0)*20|0)>>10)>>0]|0)+1+(d[3952+((c[g+(j<<1<<2)>>2]|0)+16>>5)>>0]|0)|0)>>>1;l=c[b+(j<<2)>>2]|0;a[m+32>>0]=((d[3952+(v+512+((t+w|0)*20|0)-(k+s)-(k+s<<2)+l>>10)>>0]|0)+1+(d[3952+((c[g+(j<<2)>>2]|0)+16>>5)>>0]|0)|0)>>>1;v=c[b>>2]|0;a[m+16>>0]=((d[3952+(s+512+((k+w|0)*20|0)-(l+t)-(l+t<<2)+v>>10)>>0]|0)+1+(d[3952+((c[g>>2]|0)+16>>5)>>0]|0)|0)>>>1;a[m>>0]=((d[3952+(t+512+((l+k|0)*20|0)-(v+w)-(v+w<<2)+(c[b+(0-j<<2)>>2]|0)>>10)>>0]|0)+1+(d[3952+((c[g+(0-j<<2)>>2]|0)+16>>5)>>0]|0)|0)>>>1;h=h+-1|0;if(!h)break;else{m=m+1|0;b=b+4|0;g=g+4|0;i=i+4|0}}e=e+j|0;b=n;f=f+(j<<2)|0;i=o}q=q+-1|0;if(!q)break;else{e=e+(64-j)|0;b=b+(j*3<<2)|0;f=f+(j*3<<2)|0;i=i+(j*3<<2)|0}}H=u;return}function ob(b,e,f,g,h,i,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;u=H;H=H+1792|0;if(((f|0)>=0?!((g|0)<0|(j+5+f|0)>>>0>h>>>0):0)?(k+5+g|0)>>>0<=i>>>0:0)i=f;else{cb(b,u+1344|0,f,g,h,i,j+5|0,k+5|0,j+5|0);b=u+1344|0;h=j+5|0;i=0;g=0}g=b+((p(g,h)|0)+i)+h|0;if(k>>>2|0?(s=h<<2,t=0-h|0,r=h<<1,j+5|0):0){i=u+(j+5<<2)|0;q=g;m=g+(h*5|0)|0;o=k>>>2;while(1){n=i+(j+5<<2)|0;g=q;b=m;f=j+5|0;while(1){v=d[b+(t<<1)>>0]|0;x=d[b+t>>0]|0;w=d[b+h>>0]|0;A=d[b>>0]|0;y=d[g+r>>0]|0;c[i+(j+5<<1<<2)>>2]=(d[b+r>>0]|0)-(w+v)-(w+v<<2)+y+((A+x|0)*20|0);z=d[g+h>>0]|0;c[i+(j+5<<2)>>2]=((x+v|0)*20|0)+w-(y+A)-(y+A<<2)+z;w=d[g>>0]|0;c[i>>2]=((y+v|0)*20|0)+A-(z+x)-(z+x<<2)+w;c[i+(-5-j<<2)>>2]=((z+y|0)*20|0)+x-(w+v)-(w+v<<2)+(d[g+t>>0]|0);f=f+-1|0;if(!f)break;else{i=i+4|0;g=g+1|0;b=b+1|0}}o=o+-1|0;if(!o)break;else{i=n+((j+5|0)*3<<2)|0;q=q+s|0;m=m+s|0}}}if(!k){H=u;return}g=u+8+(l<<2)|0;i=u+20|0;while(1){if(j>>>2){s=g+((j&-4)<<2)|0;r=e;h=i;f=c[i+-4>>2]|0;m=c[i+-8>>2]|0;n=c[i+-12>>2]|0;o=c[i+-16>>2]|0;b=c[i+-20>>2]|0;q=j>>>2;while(1){A=o+f|0;z=o;o=c[h>>2]|0;a[r>>0]=((d[3952+(b+512-A+((n+m|0)*20|0)-(A<<2)+o>>10)>>0]|0)+1+(d[3952+((c[g>>2]|0)+16>>5)>>0]|0)|0)>>>1;A=o+n|0;b=n;n=c[h+4>>2]|0;a[r+1>>0]=((d[3952+(z+512+((m+f|0)*20|0)-A-(A<<2)+n>>10)>>0]|0)+1+(d[3952+((c[g+4>>2]|0)+16>>5)>>0]|0)|0)>>>1;A=n+m|0;z=m;m=c[h+8>>2]|0;a[r+2>>0]=((d[3952+(b+512+((o+f|0)*20|0)-A-(A<<2)+m>>10)>>0]|0)+1+(d[3952+((c[g+8>>2]|0)+16>>5)>>0]|0)|0)>>>1;A=m+f|0;b=c[h+12>>2]|0;a[r+3>>0]=((d[3952+(z+512+((n+o|0)*20|0)-A-(A<<2)+b>>10)>>0]|0)+1+(d[3952+((c[g+12>>2]|0)+16>>5)>>0]|0)|0)>>>1;q=q+-1|0;if(!q)break;else{A=f;r=r+4|0;g=g+16|0;h=h+16|0;f=b;b=A}}e=e+(j&-4)|0;g=s;i=i+((j&-4)<<2)|0}k=k+-1|0;if(!k)break;else{e=e+(16-j)|0;g=g+20|0;i=i+20|0}}H=u;return}function pb(a,d,e,f,g,h,i,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,q=0,r=0;q=b[d>>1]|0;r=b[d+2>>1]|0;n=c[e+4>>2]<<4;o=c[e+8>>2]<<4;l=(q>>2)+(h+f)|0;m=(r>>2)+(i+g)|0;do switch(c[6768+((q&3)<<4)+((r&3)<<2)>>2]|0){case 0:{cb(c[e>>2]|0,a+(i<<4)+h|0,l,m,n,o,j,k,16);l=e;break}case 1:{ib(c[e>>2]|0,a+(i<<4)+h|0,l,m+-2|0,n,o,j,k,0);l=e;break}case 2:{hb(c[e>>2]|0,a+(i<<4)+h|0,l,m+-2|0,n,o,j,k);l=e;break}case 3:{ib(c[e>>2]|0,a+(i<<4)+h|0,l,m+-2|0,n,o,j,k,1);l=e;break}case 4:{kb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m,n,o,j,k,0);l=e;break}case 5:{lb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,0);l=e;break}case 6:{ob(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,0);l=e;break}case 7:{lb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,2);l=e;break}case 8:{jb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m,n,o,j,k);l=e;break}case 9:{nb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,0);l=e;break}case 10:{mb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k);l=e;break}case 11:{nb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,1);l=e;break}case 12:{kb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m,n,o,j,k,1);l=e;break}case 13:{lb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,1);l=e;break}case 14:{ob(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,1);l=e;break}default:{lb(c[e>>2]|0,a+(i<<4)+h|0,l+-2|0,m+-2|0,n,o,j,k,3);l=e}}while(0);r=c[e+4>>2]|0;q=c[e+8>>2]|0;e=b[d>>1]|0;o=(e>>3)+((h+f|0)>>>1)|0;n=b[d+2>>1]|0;m=(n>>3)+((i+g|0)>>>1)|0;l=(c[l>>2]|0)+(p(r<<8,q)|0)|0;if((e&7|0)!=0&(n&7|0)!=0){gb(l,a+256+(i>>>1<<3)+(h>>>1)|0,o,m,r<<3,q<<3,e&7,n&7,j>>>1,k>>>1);return}if(e&7|0){bb(l,a+256+(i>>>1<<3)+(h>>>1)|0,o,m,r<<3,q<<3,e&7,j>>>1,k>>>1);return}if(n&7|0){fb(l,a+256+(i>>>1<<3)+(h>>>1)|0,o,m,r<<3,q<<3,n&7,j>>>1,k>>>1);return}else{cb(l,a+256+(i>>>1<<3)+(h>>>1)|0,o,m,r<<3,q<<3,j>>>1,k>>>1,8);cb(l+(p(q<<3,r<<3)|0)|0,a+256+(i>>>1<<3)+(h>>>1)+64|0,o,m,r<<3,q<<3,j>>>1,k>>>1,8);return}}function qb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=c[a+40>>2]|0;if(g|0){h=c[a>>2]|0;i=0;do{if(((c[h+(i*40|0)+20>>2]|0)+-1|0)>>>0<2){f=c[h+(i*40|0)+12>>2]|0;if(f>>>0>d>>>0)f=f-(c[a+32>>2]|0)|0;c[h+(i*40|0)+8>>2]=f}i=i+1|0}while((i|0)!=(g|0))}if(!(c[b>>2]|0)){b=0;return b|0}f=c[b+4>>2]|0;if(f>>>0>=3){b=0;return b|0}k=d;l=0;a:while(1){b:do if((f|0)==2){f=c[b+4+(l*12|0)+8>>2]|0;g=c[a+24>>2]|0;if(!g){f=1;g=39;break a}i=c[a>>2]|0;h=0;while(1){if((c[i+(h*40|0)+20>>2]|0)==3?(c[i+(h*40|0)+8>>2]|0)==(f|0):0){j=3;g=i;break b}h=h+1|0;if(h>>>0>=g>>>0){f=1;g=39;break a}}}else{g=c[b+4+(l*12|0)+4>>2]|0;if(!f){f=k-g|0;if((f|0)<0)f=(c[a+32>>2]|0)+f|0}else{k=g+k|0;f=c[a+32>>2]|0;f=k-((k|0)<(f|0)?0:f)|0}if(f>>>0>d>>>0)i=f-(c[a+32>>2]|0)|0;else i=f;g=c[a+24>>2]|0;if(!g){f=1;g=39;break a}k=c[a>>2]|0;h=0;while(1){j=c[k+(h*40|0)+20>>2]|0;if((j+-1|0)>>>0<2?(c[k+(h*40|0)+8>>2]|0)==(i|0):0){g=k;k=f;break b}h=h+1|0;if(h>>>0>=g>>>0){f=1;g=39;break a}}}while(0);if(!((h|0)>-1&j>>>0>1)){f=1;g=39;break}if(l>>>0<e>>>0){f=e;do{i=c[a+4>>2]|0;j=f;f=f+-1|0;c[i+(j<<2)>>2]=c[i+(f<<2)>>2]}while(f>>>0>l>>>0);f=c[a>>2]|0}else f=g;c[(c[a+4>>2]|0)+(l<<2)>>2]=f+(h*40|0);l=l+1|0;if(l>>>0<=e>>>0){j=l;f=l;do{g=c[a+4>>2]|0;i=c[g+(j<<2)>>2]|0;if((i|0)!=((c[a>>2]|0)+(h*40|0)|0)){c[g+(f<<2)>>2]=i;f=f+1|0}j=j+1|0}while(j>>>0<=e>>>0)}f=c[b+4+(l*12|0)>>2]|0;if(f>>>0>=3){f=0;g=39;break}}if((g|0)==39)return f|0;return 0}function rb(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=c[a+8>>2]|0;if((c[d>>2]|0)!=(c[j>>2]|0)){a=1;return a|0}c[a+52>>2]=0;t=(c[a+56>>2]|0)==0;do if(!b){c[j+20>>2]=0;c[j+12>>2]=e;c[j+8>>2]=e;c[j+16>>2]=f;c[j+24>>2]=t&1;if(t){c[a+44>>2]=(c[a+44>>2]|0)+1;e=0}else e=0}else{if(g|0){c[a+20>>2]=0;c[a+16>>2]=0;sb(a);if(!((c[b>>2]|0)==0?!(c[a+56>>2]|0):0)){c[a+16>>2]=0;c[a+20>>2]=0}f=(c[b+4>>2]|0)==0;e=c[a+8>>2]|0;c[e+20>>2]=f?2:3;c[a+36>>2]=f?65535:0;c[e+12>>2]=0;c[e+8>>2]=0;c[e+16>>2]=0;c[e+24>>2]=t&1;c[a+44>>2]=1;c[a+40>>2]=1;e=0;break}if(!(c[b+8>>2]|0)){k=c[a+40>>2]|0;l=c[a+24>>2]|0;if(k>>>0>=l>>>0)if(k){m=c[a>>2]|0;n=0;d=-1;j=0;do{if(((c[m+(n*40|0)+20>>2]|0)+-1|0)>>>0<2){s=c[m+(n*40|0)+8>>2]|0;r=(d|0)==-1|(s|0)<(j|0);d=r?n:d;j=r?s:j}n=n+1|0}while((n|0)!=(k|0));if((d|0)>-1){c[m+(d*40|0)+20>>2]=0;c[a+40>>2]=k+-1;if(!(c[m+(d*40|0)+24>>2]|0)){c[a+44>>2]=(c[a+44>>2]|0)+-1;m=k+-1|0;j=e;k=a+40|0;d=0}else{m=k+-1|0;j=e;k=a+40|0;d=0}}else{m=k;j=e;k=a+40|0;d=1}}else{m=0;j=e;k=a+40|0;d=1}else{m=k;j=e;k=a+40|0;d=0}}else{j=e;p=0;q=0;a:while(1){d=c[b+12+(p*20|0)>>2]|0;b:do switch(d|0){case 0:{s=77;break a}case 1:{n=j-(c[b+12+(p*20|0)+4>>2]|0)|0;l=c[a+24>>2]|0;if(!l){d=1;break a}m=c[a>>2]|0;d=0;while(1){k=m+(d*40|0)+20|0;if(((c[k>>2]|0)+-1|0)>>>0<2?(c[m+(d*40|0)+8>>2]|0)==(n|0):0)break;d=d+1|0;if(d>>>0>=l>>>0){d=1;break a}}if((d|0)<0){d=1;break a}c[k>>2]=0;c[a+40>>2]=(c[a+40>>2]|0)+-1;if(!(c[m+(d*40|0)+24>>2]|0)){c[a+44>>2]=(c[a+44>>2]|0)+-1;d=q}else d=q;break}case 2:{l=c[b+12+(p*20|0)+8>>2]|0;m=c[a+24>>2]|0;if(!m){d=1;break a}n=c[a>>2]|0;d=0;while(1){k=n+(d*40|0)+20|0;if((c[k>>2]|0)==3?(c[n+(d*40|0)+8>>2]|0)==(l|0):0)break;d=d+1|0;if(d>>>0>=m>>>0){d=1;break a}}if((d|0)<0){d=1;break a}c[k>>2]=0;c[a+40>>2]=(c[a+40>>2]|0)+-1;if(!(c[n+(d*40|0)+24>>2]|0)){c[a+44>>2]=(c[a+44>>2]|0)+-1;d=q}else d=q;break}case 3:{d=c[b+12+(p*20|0)+4>>2]|0;n=c[b+12+(p*20|0)+12>>2]|0;o=c[a+36>>2]|0;if((o|0)==65535|o>>>0<n>>>0){d=1;break a}e=c[a+24>>2]|0;if(!e){d=1;break a}o=c[a>>2]|0;k=0;while(1){m=o+(k*40|0)+20|0;if((c[m>>2]|0)==3?(c[o+(k*40|0)+8>>2]|0)==(n|0):0){s=34;break}l=k+1|0;if(l>>>0<e>>>0)k=l;else break}if((s|0)==34?(s=0,c[m>>2]=0,c[a+40>>2]=(c[a+40>>2]|0)+-1,(c[o+(k*40|0)+24>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;m=j-d|0;d=0;while(1){l=o+(d*40|0)+20|0;k=c[l>>2]|0;if((k+-1|0)>>>0<2?(r=o+(d*40|0)+8|0,(c[r>>2]|0)==(m|0)):0)break;d=d+1|0;if(d>>>0>=e>>>0){d=1;break a}}if(!((d|0)>-1&k>>>0>1)){d=1;break a}c[l>>2]=3;c[r>>2]=n;d=q;break}case 4:{d=c[b+12+(p*20|0)+16>>2]|0;c[a+36>>2]=d;m=c[a+24>>2]|0;if(!m)d=q;else{n=c[a>>2]|0;if((d|0)==65535){d=0;while(1){k=n+(d*40|0)+20|0;if((c[k>>2]|0)==3?(c[k>>2]=0,c[a+40>>2]=(c[a+40>>2]|0)+-1,(c[n+(d*40|0)+24>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;d=d+1|0;if((d|0)==(m|0)){d=q;break b}}}k=0;do{l=n+(k*40|0)+20|0;if(((c[l>>2]|0)==3?(c[n+(k*40|0)+8>>2]|0)>>>0>d>>>0:0)?(c[l>>2]=0,c[a+40>>2]=(c[a+40>>2]|0)+-1,(c[n+(k*40|0)+24>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;k=k+1|0}while((k|0)!=(m|0));d=q}break}case 5:{sb(a);c[a+52>>2]=1;j=0;d=q;break}case 6:{n=c[b+12+(p*20|0)+12>>2]|0;o=c[a+36>>2]|0;if((o|0)==65535|o>>>0<n>>>0){d=1;break a}k=c[a+24>>2]|0;c:do if(k){m=c[a>>2]|0;d=0;while(1){l=m+(d*40|0)+20|0;if((c[l>>2]|0)==3?(c[m+(d*40|0)+8>>2]|0)==(n|0):0)break;d=d+1|0;if(d>>>0>=k>>>0)break c}c[l>>2]=0;c[a+40>>2]=(c[a+40>>2]|0)+-1;if(!(c[m+(d*40|0)+24>>2]|0))c[a+44>>2]=(c[a+44>>2]|0)+-1}else k=0;while(0);d=c[a+40>>2]|0;if(d>>>0>=k>>>0){d=1;break a}q=c[a+8>>2]|0;c[q+12>>2]=j;c[q+8>>2]=n;c[q+16>>2]=f;c[q+20>>2]=3;c[q+24>>2]=(c[a+56>>2]|0)==0&1;c[a+40>>2]=d+1;c[a+44>>2]=(c[a+44>>2]|0)+1;d=1;break}default:{d=1;break a}}while(0);p=p+1|0;q=d}if(q|0){e=d;break}m=c[a+40>>2]|0;l=c[a+24>>2]|0;k=a+40|0}if(m>>>0<l>>>0){e=c[a+8>>2]|0;c[e+12>>2]=j;c[e+8>>2]=j;c[e+16>>2]=f;c[e+20>>2]=2;c[e+24>>2]=t&1;c[a+44>>2]=(c[a+44>>2]|0)+1;c[k>>2]=m+1;e=d}else e=1}while(0);d=c[a+8>>2]|0;c[d+36>>2]=g;c[d+28>>2]=h;c[d+32>>2]=i;if(!(c[a+56>>2]|0)){j=c[a+44>>2]|0;d=c[a+28>>2]|0;if(j>>>0>d>>>0){n=c[a>>2]|0;do{m=0;k=2147483647;l=0;do{if(c[n+(m*40|0)+24>>2]|0){g=c[n+(m*40|0)+16>>2]|0;i=(g|0)<(k|0);k=i?g:k;l=i?n+(m*40|0)|0:l}m=m+1|0}while(m>>>0<=d>>>0);if((l|0)!=0?(g=c[a+12>>2]|0,i=c[a+16>>2]|0,c[g+(i<<4)>>2]=c[l>>2],c[g+(i<<4)+12>>2]=c[l+36>>2],c[g+(i<<4)+4>>2]=c[l+28>>2],c[g+(i<<4)+8>>2]=c[l+32>>2],c[a+16>>2]=i+1,c[l+24>>2]=0,(c[l+20>>2]|0)==0):0){j=j+-1|0;c[a+44>>2]=j}}while(j>>>0>d>>>0)}}else{t=c[a+12>>2]|0;f=c[a+16>>2]|0;c[t+(f<<4)>>2]=c[d>>2];c[t+(f<<4)+12>>2]=g;c[t+(f<<4)+4>>2]=h;c[t+(f<<4)+8>>2]=i;c[a+16>>2]=f+1;d=c[a+28>>2]|0}tb(c[a>>2]|0,d+1|0);a=e;return a|0}function sb(a){a=a|0;var b=0;b=c[a>>2]|0;if(c[b+20>>2]|0?(c[b+20>>2]=0,(c[b+24>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+60>>2]|0?(c[b+60>>2]=0,(c[b+64>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+100>>2]|0?(c[b+100>>2]=0,(c[b+104>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+140>>2]|0?(c[b+140>>2]=0,(c[b+144>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+180>>2]|0?(c[b+180>>2]=0,(c[b+184>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+220>>2]|0?(c[b+220>>2]=0,(c[b+224>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+260>>2]|0?(c[b+260>>2]=0,(c[b+264>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+300>>2]|0?(c[b+300>>2]=0,(c[b+304>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+340>>2]|0?(c[b+340>>2]=0,(c[b+344>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+380>>2]|0?(c[b+380>>2]=0,(c[b+384>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+420>>2]|0?(c[b+420>>2]=0,(c[b+424>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+460>>2]|0?(c[b+460>>2]=0,(c[b+464>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+500>>2]|0?(c[b+500>>2]=0,(c[b+504>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+540>>2]|0?(c[b+540>>2]=0,(c[b+544>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+580>>2]|0?(c[b+580>>2]=0,(c[b+584>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;if(c[b+620>>2]|0?(c[b+620>>2]=0,(c[b+624>>2]|0)==0):0)c[a+44>>2]=(c[a+44>>2]|0)+-1;do{}while(!(ub(a)|0));c[a+40>>2]=0;c[a+36>>2]=65535;c[a+48>>2]=0;return}function tb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=H;H=H+32|0;if(b>>>0>7){i=7;do{d=a+(i*40|0)|0;g=c[d>>2]|0;h=c[d+4>>2]|0;j=c[a+(i*40|0)+8>>2]|0;l=a+(i*40|0)+12|0;k=c[l+4>>2]|0;c[n+16>>2]=c[l>>2];c[n+16+4>>2]=k;k=c[a+(i*40|0)+20>>2]|0;l=c[a+(i*40|0)+24>>2]|0;m=a+(i*40|0)+28|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];a:do if(i>>>0<7)e=i;else{if(!k){if(!l){e=i;break}e=i;while(1){d=a+(e*40|0)|0;if(c[d+-280+20>>2]|0)break a;if(c[d+-280+24>>2]|0)break a;e=e+-7|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<7){d=a+(e*40|0)|0;break a}}}if((k+-1|0)>>>0<2){e=i;while(1){d=a+(e*40|0)|0;m=c[d+-280+20>>2]|0;if((m|0)!=0&(m+-1|0)>>>0<2?(c[d+-280+8>>2]|0)>=(j|0):0)break a;e=e+-7|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<7){d=a+(e*40|0)|0;break a}}}e=i;while(1){d=a+(e*40|0)|0;f=c[d+-280+20>>2]|0;if(f|0){if((f+-1|0)>>>0<2)break a;if((c[d+-280+8>>2]|0)<=(j|0))break a}e=e+-7|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<7){d=a+(e*40|0)|0;break}}}while(0);m=d;c[m>>2]=g;c[m+4>>2]=h;c[a+(e*40|0)+8>>2]=j;j=c[n+16+4>>2]|0;m=a+(e*40|0)+12|0;c[m>>2]=c[n+16>>2];c[m+4>>2]=j;c[a+(e*40|0)+20>>2]=k;c[a+(e*40|0)+24>>2]=l;m=a+(e*40|0)+28|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];i=i+1|0}while((i|0)!=(b|0))}if(b>>>0>3){i=3;do{d=a+(i*40|0)|0;g=c[d>>2]|0;h=c[d+4>>2]|0;j=c[a+(i*40|0)+8>>2]|0;l=a+(i*40|0)+12|0;k=c[l+4>>2]|0;c[n+16>>2]=c[l>>2];c[n+16+4>>2]=k;k=c[a+(i*40|0)+20>>2]|0;l=c[a+(i*40|0)+24>>2]|0;m=a+(i*40|0)+28|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];b:do if(i>>>0<3)e=i;else{if(!k){if(!l){e=i;break}e=i;while(1){d=a+(e*40|0)|0;if(c[d+-120+20>>2]|0)break b;if(c[d+-120+24>>2]|0)break b;e=e+-3|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<3){d=a+(e*40|0)|0;break b}}}if((k+-1|0)>>>0<2){e=i;while(1){d=a+(e*40|0)|0;m=c[d+-120+20>>2]|0;if((m|0)!=0&(m+-1|0)>>>0<2?(c[d+-120+8>>2]|0)>=(j|0):0)break b;e=e+-3|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<3){d=a+(e*40|0)|0;break b}}}e=i;while(1){d=a+(e*40|0)|0;f=c[d+-120+20>>2]|0;if(f|0){if((f+-1|0)>>>0<2)break b;if((c[d+-120+8>>2]|0)<=(j|0))break b}e=e+-3|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(e>>>0<3){d=a+(e*40|0)|0;break}}}while(0);m=d;c[m>>2]=g;c[m+4>>2]=h;c[a+(e*40|0)+8>>2]=j;j=c[n+16+4>>2]|0;m=a+(e*40|0)+12|0;c[m>>2]=c[n+16>>2];c[m+4>>2]=j;c[a+(e*40|0)+20>>2]=k;c[a+(e*40|0)+24>>2]=l;m=a+(e*40|0)+28|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];i=i+1|0}while((i|0)!=(b|0))}if(b>>>0<=1){H=n;return}i=1;do{d=a+(i*40|0)|0;g=c[d>>2]|0;h=c[d+4>>2]|0;j=c[a+(i*40|0)+8>>2]|0;l=a+(i*40|0)+12|0;k=c[l+4>>2]|0;c[n+16>>2]=c[l>>2];c[n+16+4>>2]=k;k=c[a+(i*40|0)+20>>2]|0;l=c[a+(i*40|0)+24>>2]|0;m=a+(i*40|0)+28|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c:do if(!k)if(!l)e=i;else{e=i;while(1){d=a+(e*40|0)|0;if(c[d+-40+20>>2]|0)break c;if(c[d+-40+24>>2]|0)break c;e=e+-1|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(!e){d=a+(e*40|0)|0;break}}}else{if((k+-1|0)>>>0<2){e=i;while(1){d=a+(e*40|0)|0;m=c[d+-40+20>>2]|0;if((m|0)!=0&(m+-1|0)>>>0<2?(c[d+-40+8>>2]|0)>=(j|0):0)break c;e=e+-1|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(!e){d=a+(e*40|0)|0;break c}}}e=i;while(1){d=a+(e*40|0)|0;f=c[d+-40+20>>2]|0;if(f|0){if((f+-1|0)>>>0<2)break c;if((c[d+-40+8>>2]|0)<=(j|0))break c}e=e+-1|0;f=a+(e*40|0)|0;m=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(m|0));if(!e){d=a+(e*40|0)|0;break}}}while(0);m=d;c[m>>2]=g;c[m+4>>2]=h;c[a+(e*40|0)+8>>2]=j;j=c[n+16+4>>2]|0;m=a+(e*40|0)+12|0;c[m>>2]=c[n+16>>2];c[m+4>>2]=j;c[a+(e*40|0)+20>>2]=k;c[a+(e*40|0)+24>>2]=l;m=a+(e*40|0)+28|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];i=i+1|0}while((i|0)!=(b|0));H=n;return}function ub(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;if(c[a+56>>2]|0){g=1;return g|0}e=c[a>>2]|0;f=c[a+28>>2]|0;g=0;b=2147483647;d=0;do{if(c[e+(g*40|0)+24>>2]|0){i=c[e+(g*40|0)+16>>2]|0;h=(i|0)<(b|0);b=h?i:b;d=h?e+(g*40|0)|0:d}g=g+1|0}while(g>>>0<=f>>>0);if(!d){i=1;return i|0}h=c[a+12>>2]|0;i=c[a+16>>2]|0;c[h+(i<<4)>>2]=c[d>>2];c[h+(i<<4)+12>>2]=c[d+36>>2];c[h+(i<<4)+4>>2]=c[d+28>>2];c[h+(i<<4)+8>>2]=c[d+32>>2];c[a+16>>2]=i+1;c[d+24>>2]=0;if(c[d+20>>2]|0){i=0;return i|0}c[a+44>>2]=(c[a+44>>2]|0)+-1;i=0;return i|0}function vb(a,b){a=a|0;b=b|0;var d=0;if((b>>>0<=16?(d=c[(c[a+4>>2]|0)+(b<<2)>>2]|0,(d|0)!=0):0)?(c[d+20>>2]|0)>>>0>1:0)d=c[d>>2]|0;else d=0;return d|0}function wb(a){a=a|0;var b=0;b=(c[a>>2]|0)+((c[a+28>>2]|0)*40|0)|0;c[a+8>>2]=b;return c[b>>2]|0}function xb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;c[a+36>>2]=65535;e=e>>>0>1?e:1;c[a+24>>2]=e;c[a+28>>2]=(g|0)==0?d:e;c[a+32>>2]=f;c[a+56>>2]=g;c[a+44>>2]=0;c[a+40>>2]=0;c[a+48>>2]=0;d=cc(680)|0;c[a>>2]=d;if(!d){a=65535;return a|0}fc(d,0,680);a:do if((c[a+28>>2]|0)!=-1){e=0;while(1){f=cc(b*384|47)|0;d=c[a>>2]|0;c[d+(e*40|0)+4>>2]=f;if(!f){d=65535;break}c[d+(e*40|0)>>2]=f+(0-f&15);e=e+1|0;if(e>>>0>=((c[a+28>>2]|0)+1|0)>>>0)break a}return d|0}while(0);c[a+4>>2]=cc(68)|0;b=cc((c[a+28>>2]<<4)+16|0)|0;c[a+12>>2]=b;d=c[a+4>>2]|0;if((b|0)==0|(d|0)==0){a=65535;return a|0}fc(d,0,68);c[a+20>>2]=0;c[a+16>>2]=0;a=0;return a|0}function yb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a>>2]|0;if((h|0)!=0?(c[a+28>>2]|0)!=-1:0){i=0;do{dc(c[h+(i*40|0)+4>>2]|0);h=c[a>>2]|0;c[h+(i*40|0)+4>>2]=0;i=i+1|0}while(i>>>0<((c[a+28>>2]|0)+1|0)>>>0)}dc(h);c[a>>2]=0;dc(c[a+4>>2]|0);c[a+4>>2]=0;dc(c[a+12>>2]|0);c[a+12>>2]=0;return xb(a,b,d,e,f,g)|0}function zb(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if((b|0)!=0?(c[a+28>>2]|0)!=-1:0){d=0;do{dc(c[b+(d*40|0)+4>>2]|0);b=c[a>>2]|0;c[b+(d*40|0)+4>>2]=0;d=d+1|0}while(d>>>0<((c[a+28>>2]|0)+1|0)>>>0)}dc(b);c[a>>2]=0;dc(c[a+4>>2]|0);c[a+4>>2]=0;dc(c[a+12>>2]|0);c[a+12>>2]=0;return}function Ab(a){a=a|0;var b=0,d=0;b=c[a+40>>2]|0;if(!b)return;d=0;do{c[(c[a+4>>2]|0)+(d<<2)>>2]=(c[a>>2]|0)+(d*40|0);d=d+1|0}while(d>>>0<b>>>0);return}function Bb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[a+16>>2]=0;c[a+20>>2]=0;if(!e){b=0;return b|0}e=c[a+48>>2]|0;do if((e|0)!=(b|0)?(f=c[a+32>>2]|0,(((e+1|0)>>>0)%(f>>>0)|0|0)!=(b|0)):0){m=c[(c[a>>2]|0)+((c[a+28>>2]|0)*40|0)>>2]|0;g=f;l=((e+1|0)>>>0)%(f>>>0)|0;while(1){i=c[a+40>>2]|0;if(i|0){e=c[a>>2]|0;f=0;do{if(((c[e+(f*40|0)+20>>2]|0)+-1|0)>>>0<2){k=c[e+(f*40|0)+12>>2]|0;c[e+(f*40|0)+8>>2]=k-(k>>>0>l>>>0?g:0)}f=f+1|0}while((f|0)!=(i|0))}if(i>>>0>=(c[a+24>>2]|0)>>>0){if(!i){e=1;k=49;break}g=c[a>>2]|0;h=0;e=-1;f=0;do{if(((c[g+(h*40|0)+20>>2]|0)+-1|0)>>>0<2){k=c[g+(h*40|0)+8>>2]|0;j=(e|0)==-1|(k|0)<(f|0);e=j?h:e;f=j?k:f}h=h+1|0}while((h|0)!=(i|0));if((e|0)<=-1){e=1;k=49;break}c[g+(e*40|0)+20>>2]=0;c[a+40>>2]=i+-1;if(!(c[g+(e*40|0)+24>>2]|0)){c[a+44>>2]=(c[a+44>>2]|0)+-1;i=i+-1|0}else i=i+-1|0}e=c[a+44>>2]|0;k=c[a+28>>2]|0;if(e>>>0>=k>>>0){if(c[a+56>>2]|0){k=21;break}j=c[a>>2]|0;do{h=0;f=2147483647;g=0;do{if(c[j+(h*40|0)+24>>2]|0){o=c[j+(h*40|0)+16>>2]|0;n=(o|0)<(f|0);f=n?o:f;g=n?j+(h*40|0)|0:g}h=h+1|0}while(h>>>0<=k>>>0);if((g|0)!=0?(n=c[a+12>>2]|0,o=c[a+16>>2]|0,c[n+(o<<4)>>2]=c[g>>2],c[n+(o<<4)+12>>2]=c[g+36>>2],c[n+(o<<4)+4>>2]=c[g+28>>2],c[n+(o<<4)+8>>2]=c[g+32>>2],c[a+16>>2]=o+1,c[g+24>>2]=0,(c[g+20>>2]|0)==0):0){e=e+-1|0;c[a+44>>2]=e}}while(e>>>0>=k>>>0)}g=c[a>>2]|0;c[g+(k*40|0)+20>>2]=1;c[g+(k*40|0)+12>>2]=l;c[g+(k*40|0)+8>>2]=l;c[g+(k*40|0)+16>>2]=0;c[g+(k*40|0)+24>>2]=0;c[a+44>>2]=e+1;c[a+40>>2]=i+1;tb(g,k+1|0);g=c[a+32>>2]|0;l=((l+1|0)>>>0)%(g>>>0)|0;if((l|0)==(b|0)){k=33;break}}if((k|0)==21)while(1){}else if((k|0)==33){e=c[a+16>>2]|0;a:do if(e|0){f=c[a+12>>2]|0;h=c[a>>2]|0;i=c[a+28>>2]|0;j=c[h+(i*40|0)>>2]|0;g=0;while(1){if((c[f+(g<<4)>>2]|0)==(j|0))break;g=g+1|0;if(g>>>0>=e>>>0)break a}if(i|0){f=0;while(1){e=h+(f*40|0)|0;f=f+1|0;if((c[e>>2]|0)==(m|0))break;if(f>>>0>=i>>>0)break a}c[e>>2]=j;c[h+(i*40|0)>>2]=m}}while(0);if(d|0){k=46;break}e=c[a+48>>2]|0;break}else if((k|0)==49)return e|0}else k=42;while(0);if((k|0)==42)if(d)if((e|0)==(b|0)){o=1;return o|0}else k=46;if((k|0)==46){c[a+48>>2]=b;o=0;return o|0}if((e|0)==(b|0)){o=0;return o|0}o=c[a+32>>2]|0;c[a+48>>2]=((b+-1+o|0)>>>0)%(o>>>0)|0;o=0;return o|0}function Cb(a){a=a|0;var b=0,d=0;b=c[a+20>>2]|0;if(b>>>0>=(c[a+16>>2]|0)>>>0){a=0;return a|0}d=c[a+12>>2]|0;c[a+20>>2]=b+1;a=d+(b<<4)|0;return a|0}function Db(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;f=c[a>>2]|0;if(!f)return;c[a+60>>2]=1;if(c[a+56>>2]|0)return;g=c[a+28>>2]|0;b=0;d=2147483647;e=0;while(1){if(c[f+(b*40|0)+24>>2]|0){i=c[f+(b*40|0)+16>>2]|0;h=(i|0)<(d|0);d=h?i:d;e=h?f+(b*40|0)|0:e}b=b+1|0;if(b>>>0>g>>>0){if(!e)break;h=c[a+12>>2]|0;i=c[a+16>>2]|0;c[h+(i<<4)>>2]=c[e>>2];c[h+(i<<4)+12>>2]=c[e+36>>2];c[h+(i<<4)+4>>2]=c[e+28>>2];c[h+(i<<4)+8>>2]=c[e+32>>2];c[a+16>>2]=i+1;c[e+24>>2]=0;if(!(c[e+20>>2]|0)){c[a+44>>2]=(c[a+44>>2]|0)+-1;b=0;d=2147483647;e=0}else{b=0;d=2147483647;e=0}}}return}function Eb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+4>>2]|0;f=c[a+12>>2]|0;e=c[a+16>>2]|0;a=c[a+20>>2]|0;g=c[b+4>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=g;g=c[b+12>>2]|0;c[f+8>>2]=c[b+8>>2];c[f+12>>2]=g;g=c[b+20>>2]|0;c[f+(d<<2<<2)>>2]=c[b+16>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+28>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+24>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+36>>2]|0;c[f>>2]=c[b+32>>2];c[f+4>>2]=g;g=c[b+44>>2]|0;c[f+8>>2]=c[b+40>>2];c[f+12>>2]=g;g=c[b+52>>2]|0;c[f+(d<<2<<2)>>2]=c[b+48>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+60>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+56>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+68>>2]|0;c[f>>2]=c[b+64>>2];c[f+4>>2]=g;g=c[b+76>>2]|0;c[f+8>>2]=c[b+72>>2];c[f+12>>2]=g;g=c[b+84>>2]|0;c[f+(d<<2<<2)>>2]=c[b+80>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+92>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+88>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+100>>2]|0;c[f>>2]=c[b+96>>2];c[f+4>>2]=g;g=c[b+108>>2]|0;c[f+8>>2]=c[b+104>>2];c[f+12>>2]=g;g=c[b+116>>2]|0;c[f+(d<<2<<2)>>2]=c[b+112>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+124>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+120>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+132>>2]|0;c[f>>2]=c[b+128>>2];c[f+4>>2]=g;g=c[b+140>>2]|0;c[f+8>>2]=c[b+136>>2];c[f+12>>2]=g;g=c[b+148>>2]|0;c[f+(d<<2<<2)>>2]=c[b+144>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+156>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+152>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+164>>2]|0;c[f>>2]=c[b+160>>2];c[f+4>>2]=g;g=c[b+172>>2]|0;c[f+8>>2]=c[b+168>>2];c[f+12>>2]=g;g=c[b+180>>2]|0;c[f+(d<<2<<2)>>2]=c[b+176>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+188>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+184>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+196>>2]|0;c[f>>2]=c[b+192>>2];c[f+4>>2]=g;g=c[b+204>>2]|0;c[f+8>>2]=c[b+200>>2];c[f+12>>2]=g;g=c[b+212>>2]|0;c[f+(d<<2<<2)>>2]=c[b+208>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+220>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+216>>2];c[f+(d<<2<<2)+12>>2]=g;f=f+(d<<2<<2)+(d<<2<<2)|0;g=c[b+228>>2]|0;c[f>>2]=c[b+224>>2];c[f+4>>2]=g;g=c[b+236>>2]|0;c[f+8>>2]=c[b+232>>2];c[f+12>>2]=g;g=c[b+244>>2]|0;c[f+(d<<2<<2)>>2]=c[b+240>>2];c[f+(d<<2<<2)+4>>2]=g;g=c[b+252>>2]|0;c[f+(d<<2<<2)+8>>2]=c[b+248>>2];c[f+(d<<2<<2)+12>>2]=g;f=c[b+260>>2]|0;c[e>>2]=c[b+256>>2];c[e+4>>2]=f;f=c[b+268>>2]|0;c[e+((d<<1&2147483646)<<2)>>2]=c[b+264>>2];c[e+((d<<1&2147483646)<<2)+4>>2]=f;e=e+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;f=c[b+276>>2]|0;c[e>>2]=c[b+272>>2];c[e+4>>2]=f;f=c[b+284>>2]|0;c[e+((d<<1&2147483646)<<2)>>2]=c[b+280>>2];c[e+((d<<1&2147483646)<<2)+4>>2]=f;e=e+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;f=c[b+292>>2]|0;c[e>>2]=c[b+288>>2];c[e+4>>2]=f;f=c[b+300>>2]|0;c[e+((d<<1&2147483646)<<2)>>2]=c[b+296>>2];c[e+((d<<1&2147483646)<<2)+4>>2]=f;e=e+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;f=c[b+308>>2]|0;c[e>>2]=c[b+304>>2];c[e+4>>2]=f;f=c[b+316>>2]|0;c[e+((d<<1&2147483646)<<2)>>2]=c[b+312>>2];c[e+((d<<1&2147483646)<<2)+4>>2]=f;e=c[b+324>>2]|0;c[a>>2]=c[b+320>>2];c[a+4>>2]=e;e=c[b+332>>2]|0;c[a+((d<<1&2147483646)<<2)>>2]=c[b+328>>2];c[a+((d<<1&2147483646)<<2)+4>>2]=e;a=a+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;e=c[b+340>>2]|0;c[a>>2]=c[b+336>>2];c[a+4>>2]=e;e=c[b+348>>2]|0;c[a+((d<<1&2147483646)<<2)>>2]=c[b+344>>2];c[a+((d<<1&2147483646)<<2)+4>>2]=e;a=a+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;e=c[b+356>>2]|0;c[a>>2]=c[b+352>>2];c[a+4>>2]=e;e=c[b+364>>2]|0;c[a+((d<<1&2147483646)<<2)>>2]=c[b+360>>2];c[a+((d<<1&2147483646)<<2)+4>>2]=e;a=a+((d<<1&2147483646)<<2)+((d<<1&2147483646)<<2)|0;e=c[b+372>>2]|0;c[a>>2]=c[b+368>>2];c[a+4>>2]=e;e=c[b+380>>2]|0;c[a+((d<<1&2147483646)<<2)>>2]=c[b+376>>2];c[a+((d<<1&2147483646)<<2)+4>>2]=e;return}function Fb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0;m=c[b+4>>2]|0;n=p(c[b+8>>2]|0,m)|0;b=c[b>>2]|0;l=0;do{h=c[3312+(l<<2)>>2]|0;i=c[3376+(l<<2)>>2]|0;k=b+(e-((e>>>0)%(m>>>0)|0)<<8)+(((e>>>0)%(m>>>0)|0)<<4)+(p(i,m<<4)|0)+h|0;j=c[g+(l<<6)>>2]|0;if((j|0)==16777215){j=c[f+(i<<4)+h+16>>2]|0;o=f+(i<<4)+h+16+16|0;c[k>>2]=c[f+(i<<4)+h>>2];c[k+((m<<2&1073741820)<<2)>>2]=j;k=k+((m<<2&1073741820)<<2)+((m<<2&1073741820)<<2)|0;j=c[o+16>>2]|0;c[k>>2]=c[o>>2];c[k+((m<<2&1073741820)<<2)>>2]=j}else{o=d[f+(i<<4)+h+1>>0]|0;q=c[g+(l<<6)+4>>2]|0;a[k>>0]=a[3952+(j+(d[f+(i<<4)+h>>0]|0))>>0]|0;j=d[f+(i<<4)+h+2>>0]|0;r=c[g+(l<<6)+8>>2]|0;a[k+1>>0]=a[3952+(q+o)>>0]|0;o=d[f+(i<<4)+h+3>>0]|0;q=c[g+(l<<6)+12>>2]|0;a[k+2>>0]=a[3952+(r+j)>>0]|0;j=f+(i<<4)+h+16|0;a[k+3>>0]=a[3952+(q+o)>>0]|0;o=d[j+1>>0]|0;q=c[g+(l<<6)+20>>2]|0;a[k+(m<<4)>>0]=a[3952+((c[g+(l<<6)+16>>2]|0)+(d[j>>0]|0))>>0]|0;i=d[j+2>>0]|0;h=c[g+(l<<6)+24>>2]|0;a[k+(m<<4)+1>>0]=a[3952+(q+o)>>0]|0;o=d[j+3>>0]|0;q=c[g+(l<<6)+28>>2]|0;a[k+(m<<4)+2>>0]=a[3952+(h+i)>>0]|0;a[k+(m<<4)+3>>0]=a[3952+(q+o)>>0]|0;o=k+(m<<4)+(m<<4)|0;k=d[j+16+1>>0]|0;q=c[g+(l<<6)+36>>2]|0;a[o>>0]=a[3952+((c[g+(l<<6)+32>>2]|0)+(d[j+16>>0]|0))>>0]|0;i=d[j+16+2>>0]|0;h=c[g+(l<<6)+40>>2]|0;a[o+1>>0]=a[3952+(q+k)>>0]|0;k=d[j+16+3>>0]|0;q=c[g+(l<<6)+44>>2]|0;a[o+2>>0]=a[3952+(h+i)>>0]|0;a[o+3>>0]=a[3952+(q+k)>>0]|0;k=d[j+16+16+1>>0]|0;q=c[g+(l<<6)+52>>2]|0;a[o+(m<<4)>>0]=a[3952+((c[g+(l<<6)+48>>2]|0)+(d[j+16+16>>0]|0))>>0]|0;i=d[j+16+16+2>>0]|0;h=c[g+(l<<6)+56>>2]|0;a[o+(m<<4)+1>>0]=a[3952+(q+k)>>0]|0;k=d[j+16+16+3>>0]|0;j=c[g+(l<<6)+60>>2]|0;a[o+(m<<4)+2>>0]=a[3952+(h+i)>>0]|0;a[o+(m<<4)+3>>0]=a[3952+(j+k)>>0]|0}l=l+1|0}while((l|0)!=16);h=b+(n<<8)+(e-((e>>>0)%(m>>>0)|0)<<6)+(((e>>>0)%(m>>>0)|0)<<3)|0;k=16;do{b=k&3;j=c[3312+(b<<2)>>2]|0;b=c[3376+(b<<2)>>2]|0;r=k>>>0>19;i=f+(r?320:256)+((b<<3)+j)|0;j=(r?h+(n<<6)|0:h)+((p(b,m<<3&2147483640)|0)+j)|0;b=c[g+(k<<6)>>2]|0;if((b|0)==16777215){r=c[i+8>>2]|0;c[j>>2]=c[i>>2];c[j+((m<<3&2147483640)>>>2<<2)>>2]=r;r=j+((m<<3&2147483640)>>>2<<2)+((m<<3&2147483640)>>>2<<2)|0;q=c[i+8+8+8>>2]|0;c[r>>2]=c[i+8+8>>2];c[r+((m<<3&2147483640)>>>2<<2)>>2]=q}else{r=d[i+1>>0]|0;o=c[g+(k<<6)+4>>2]|0;a[j>>0]=a[3952+(b+(d[i>>0]|0))>>0]|0;q=d[i+2>>0]|0;e=c[g+(k<<6)+8>>2]|0;a[j+1>>0]=a[3952+(o+r)>>0]|0;r=d[i+3>>0]|0;o=c[g+(k<<6)+12>>2]|0;a[j+2>>0]=a[3952+(e+q)>>0]|0;a[j+3>>0]=a[3952+(o+r)>>0]|0;r=j+(m<<3&2147483640)|0;o=d[i+8+1>>0]|0;j=c[g+(k<<6)+20>>2]|0;a[r>>0]=a[3952+((c[g+(k<<6)+16>>2]|0)+(d[i+8>>0]|0))>>0]|0;q=d[i+8+2>>0]|0;e=c[g+(k<<6)+24>>2]|0;a[r+1>>0]=a[3952+(j+o)>>0]|0;o=d[i+8+3>>0]|0;j=c[g+(k<<6)+28>>2]|0;a[r+2>>0]=a[3952+(e+q)>>0]|0;q=i+8+8|0;a[r+3>>0]=a[3952+(j+o)>>0]|0;r=r+(m<<3&2147483640)|0;o=d[q+1>>0]|0;j=c[g+(k<<6)+36>>2]|0;a[r>>0]=a[3952+((c[g+(k<<6)+32>>2]|0)+(d[q>>0]|0))>>0]|0;e=d[q+2>>0]|0;l=c[g+(k<<6)+40>>2]|0;a[r+1>>0]=a[3952+(j+o)>>0]|0;o=d[q+3>>0]|0;j=c[g+(k<<6)+44>>2]|0;a[r+2>>0]=a[3952+(l+e)>>0]|0;a[r+3>>0]=a[3952+(j+o)>>0]|0;o=d[q+8+1>>0]|0;j=c[g+(k<<6)+52>>2]|0;a[r+(m<<3&2147483640)>>0]=a[3952+((c[g+(k<<6)+48>>2]|0)+(d[q+8>>0]|0))>>0]|0;e=d[q+8+2>>0]|0;l=c[g+(k<<6)+56>>2]|0;a[r+(m<<3&2147483640)+1>>0]=a[3952+(j+o)>>0]|0;q=d[q+8+3>>0]|0;o=c[g+(k<<6)+60>>2]|0;a[r+(m<<3&2147483640)+2>>0]=a[3952+(l+e)>>0]|0;a[r+(m<<3&2147483640)+3>>0]=a[3952+(o+q)>>0]|0}k=k+1|0}while((k|0)!=24);return}
70
+
71
+ // EMSCRIPTEN_END_FUNCS
72
+ var K=[Oc,sc];var L=[Pc,tc];var M=[Qc,uc];var N=[Rc,db,eb,Rc];return{_broadwayCreateStream:mc,_broadwayExit:pc,_broadwayGetMajorVersion:qc,_broadwayGetMinorVersion:rc,_broadwayInit:oc,_broadwayPlayStream:nc,_free:Gc,_malloc:Fc,_memcpy:Hc,_memset:Ic,_sbrk:Jc,dynCall_ii:Kc,dynCall_iiii:Lc,dynCall_iiiii:Mc,dynCall_viiiii:Nc,establishStackSpace:R,stackAlloc:O,stackRestore:Q,stackSave:P}})
73
+
74
+
75
+ // EMSCRIPTEN_END_ASM
76
+ (asmGlobalArg,asmLibraryArg,buffer);var _broadwayCreateStream=Module["_broadwayCreateStream"]=asm["_broadwayCreateStream"];var _broadwayExit=Module["_broadwayExit"]=asm["_broadwayExit"];var _broadwayGetMajorVersion=Module["_broadwayGetMajorVersion"]=asm["_broadwayGetMajorVersion"];var _broadwayGetMinorVersion=Module["_broadwayGetMinorVersion"]=asm["_broadwayGetMinorVersion"];var _broadwayInit=Module["_broadwayInit"]=asm["_broadwayInit"];var _broadwayPlayStream=Module["_broadwayPlayStream"]=asm["_broadwayPlayStream"];var _free=Module["_free"]=asm["_free"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run();var workerResponded=false,workerCallbackId=-1;(function(){var messageBuffer=null,buffer=0,bufferSize=0;function flushMessages(){if(!messageBuffer)return;if(runtimeInitialized){var temp=messageBuffer;messageBuffer=null;temp.forEach(function(message){onmessage(message)})}}function messageResender(){flushMessages();if(messageBuffer){setTimeout(messageResender,100)}}onmessage=function onmessage(msg){if(!runtimeInitialized){if(!messageBuffer){messageBuffer=[];setTimeout(messageResender,100)}messageBuffer.push(msg);return}flushMessages();var func=Module["_"+msg.data["funcName"]];if(!func)throw"invalid worker function to call: "+msg.data["funcName"];var data=msg.data["data"];if(data){if(!data.byteLength)data=new Uint8Array(data);if(!buffer||bufferSize<data.length){if(buffer)_free(buffer);bufferSize=data.length;buffer=_malloc(data.length)}HEAPU8.set(data,buffer)}workerResponded=false;workerCallbackId=msg.data["callbackId"];if(data){func(buffer,data.length)}else{func(0,0)}}})();
77
+
78
+ return Module;
79
+ })();
80
+
81
+ var resultModule = global.Module || Module;
82
+
83
+ resultModule._broadwayOnHeadersDecoded = par_broadwayOnHeadersDecoded;
84
+ resultModule._broadwayOnPictureDecoded = par_broadwayOnPictureDecoded;
85
+
86
+ return resultModule;
87
+ };
88
+
89
+ return (function(){
90
+ "use strict";
91
+
92
+
93
+ var nowValue = function(){
94
+ return (new Date()).getTime();
95
+ };
96
+
97
+ if (typeof performance != "undefined"){
98
+ if (performance.now){
99
+ nowValue = function(){
100
+ return performance.now();
101
+ };
102
+ };
103
+ };
104
+
105
+
106
+ var Decoder = function(parOptions){
107
+ this.options = parOptions || {};
108
+
109
+ this.now = nowValue;
110
+
111
+ var asmInstance;
112
+
113
+ var fakeWindow = {
114
+ };
115
+
116
+ var onPicFun = function ($buffer, width, height) {
117
+ var buffer = this.pictureBuffers[$buffer];
118
+ if (!buffer) {
119
+ buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2);
120
+ };
121
+
122
+ var infos;
123
+ var doInfo = false;
124
+ if (this.infoAr.length){
125
+ doInfo = true;
126
+ infos = this.infoAr;
127
+ };
128
+ this.infoAr = [];
129
+
130
+ if (this.options.rgb){
131
+ if (!asmInstance){
132
+ asmInstance = getAsm(width, height);
133
+ };
134
+ asmInstance.inp.set(buffer);
135
+ asmInstance.doit();
136
+
137
+ var copyU8 = new Uint8Array(asmInstance.outSize);
138
+ copyU8.set( asmInstance.out );
139
+
140
+ if (doInfo){
141
+ infos[0].finishDecoding = nowValue();
142
+ };
143
+
144
+ this.onPictureDecoded(copyU8, width, height, infos);
145
+ return;
146
+
147
+ };
148
+
149
+ if (doInfo){
150
+ infos[0].finishDecoding = nowValue();
151
+ };
152
+ this.onPictureDecoded(buffer, width, height, infos);
153
+ }.bind(this);
154
+
155
+ var ignore = false;
156
+
157
+ if (this.options.sliceMode){
158
+ onPicFun = function ($buffer, width, height, $sliceInfo) {
159
+ if (ignore){
160
+ return;
161
+ };
162
+ var buffer = this.pictureBuffers[$buffer];
163
+ if (!buffer) {
164
+ buffer = this.pictureBuffers[$buffer] = toU8Array($buffer, (width * height * 3) / 2);
165
+ };
166
+ var sliceInfo = this.pictureBuffers[$sliceInfo];
167
+ if (!sliceInfo) {
168
+ sliceInfo = this.pictureBuffers[$sliceInfo] = toU32Array($sliceInfo, 18);
169
+ };
170
+
171
+ var infos;
172
+ var doInfo = false;
173
+ if (this.infoAr.length){
174
+ doInfo = true;
175
+ infos = this.infoAr;
176
+ };
177
+ this.infoAr = [];
178
+
179
+ /*if (this.options.rgb){
180
+
181
+ no rgb in slice mode
182
+
183
+ };*/
184
+
185
+ infos[0].finishDecoding = nowValue();
186
+ var sliceInfoAr = [];
187
+ for (var i = 0; i < 20; ++i){
188
+ sliceInfoAr.push(sliceInfo[i]);
189
+ };
190
+ infos[0].sliceInfoAr = sliceInfoAr;
191
+
192
+ this.onPictureDecoded(buffer, width, height, infos);
193
+ }.bind(this);
194
+ };
195
+
196
+ var Module = getModule.apply(fakeWindow, [function () {
197
+ }, onPicFun]);
198
+
199
+
200
+ var HEAP8 = Module.HEAP8;
201
+ var HEAPU8 = Module.HEAPU8;
202
+ var HEAP16 = Module.HEAP16;
203
+ var HEAP32 = Module.HEAP32;
204
+
205
+
206
+ var MAX_STREAM_BUFFER_LENGTH = 1024 * 1024 * 8;
207
+
208
+ // from old constructor
209
+ Module._broadwayInit();
210
+
211
+ /**
212
+ * Creates a typed array from a HEAP8 pointer.
213
+ */
214
+ function toU8Array(ptr, length) {
215
+ return HEAPU8.subarray(ptr, ptr + length);
216
+ };
217
+ function toU32Array(ptr, length) {
218
+ //var tmp = HEAPU8.subarray(ptr, ptr + (length * 4));
219
+ return new Uint32Array(HEAPU8.buffer, ptr, length);
220
+ };
221
+ this.streamBuffer = toU8Array(Module._broadwayCreateStream(MAX_STREAM_BUFFER_LENGTH), MAX_STREAM_BUFFER_LENGTH);
222
+ this.pictureBuffers = {};
223
+ // collect extra infos that are provided with the nal units
224
+ this.infoAr = [];
225
+
226
+ this.onPictureDecoded = function (buffer, width, height, infos) {
227
+
228
+ };
229
+
230
+ /**
231
+ * Decodes a stream buffer. This may be one single (unframed) NAL unit without the
232
+ * start code, or a sequence of NAL units with framing start code prefixes. This
233
+ * function overwrites stream buffer allocated by the codec with the supplied buffer.
234
+ */
235
+
236
+ var sliceNum = 0;
237
+ if (this.options.sliceMode){
238
+ sliceNum = this.options.sliceNum;
239
+
240
+ this.decode = function decode(typedAr, parInfo, copyDoneFun) {
241
+ this.infoAr.push(parInfo);
242
+ parInfo.startDecoding = nowValue();
243
+ var nals = parInfo.nals;
244
+ var i;
245
+ if (!nals){
246
+ nals = [];
247
+ parInfo.nals = nals;
248
+ var l = typedAr.length;
249
+ var foundSomething = false;
250
+ var lastFound = 0;
251
+ var lastStart = 0;
252
+ for (i = 0; i < l; ++i){
253
+ if (typedAr[i] === 1){
254
+ if (
255
+ typedAr[i - 1] === 0 &&
256
+ typedAr[i - 2] === 0
257
+ ){
258
+ var startPos = i - 2;
259
+ if (typedAr[i - 3] === 0){
260
+ startPos = i - 3;
261
+ };
262
+ // its a nal;
263
+ if (foundSomething){
264
+ nals.push({
265
+ offset: lastFound,
266
+ end: startPos,
267
+ type: typedAr[lastStart] & 31
268
+ });
269
+ };
270
+ lastFound = startPos;
271
+ lastStart = startPos + 3;
272
+ if (typedAr[i - 3] === 0){
273
+ lastStart = startPos + 4;
274
+ };
275
+ foundSomething = true;
276
+ };
277
+ };
278
+ };
279
+ if (foundSomething){
280
+ nals.push({
281
+ offset: lastFound,
282
+ end: i,
283
+ type: typedAr[lastStart] & 31
284
+ });
285
+ };
286
+ };
287
+
288
+ var currentSlice = 0;
289
+ var playAr;
290
+ var offset = 0;
291
+ for (i = 0; i < nals.length; ++i){
292
+ if (nals[i].type === 1 || nals[i].type === 5){
293
+ if (currentSlice === sliceNum){
294
+ playAr = typedAr.subarray(nals[i].offset, nals[i].end);
295
+ this.streamBuffer[offset] = 0;
296
+ offset += 1;
297
+ this.streamBuffer.set(playAr, offset);
298
+ offset += playAr.length;
299
+ };
300
+ currentSlice += 1;
301
+ }else{
302
+ playAr = typedAr.subarray(nals[i].offset, nals[i].end);
303
+ this.streamBuffer[offset] = 0;
304
+ offset += 1;
305
+ this.streamBuffer.set(playAr, offset);
306
+ offset += playAr.length;
307
+ Module._broadwayPlayStream(offset);
308
+ offset = 0;
309
+ };
310
+ };
311
+ copyDoneFun();
312
+ Module._broadwayPlayStream(offset);
313
+ };
314
+
315
+ }else{
316
+ this.decode = function decode(typedAr, parInfo) {
317
+ // console.info("Decoding: " + buffer.length);
318
+ // collect infos
319
+ if (parInfo){
320
+ this.infoAr.push(parInfo);
321
+ parInfo.startDecoding = nowValue();
322
+ };
323
+
324
+ this.streamBuffer.set(typedAr);
325
+ Module._broadwayPlayStream(typedAr.length);
326
+ };
327
+ };
328
+
329
+ };
330
+
331
+
332
+ Decoder.prototype = {
333
+
334
+ };
335
+
336
+
337
+
338
+
339
+ /*
340
+
341
+ asm.js implementation of a yuv to rgb convertor
342
+ provided by @soliton4
343
+
344
+ based on
345
+ http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/
346
+
347
+ */
348
+
349
+
350
+ // factory to create asm.js yuv -> rgb convertor for a given resolution
351
+ var asmInstances = {};
352
+ var getAsm = function(parWidth, parHeight){
353
+ var idStr = "" + parWidth + "x" + parHeight;
354
+ if (asmInstances[idStr]){
355
+ return asmInstances[idStr];
356
+ };
357
+
358
+ var lumaSize = parWidth * parHeight;
359
+ var chromaSize = (lumaSize|0) >> 2;
360
+
361
+ var inpSize = lumaSize + chromaSize + chromaSize;
362
+ var outSize = parWidth * parHeight * 4;
363
+ var cacheSize = Math.pow(2, 24) * 4;
364
+ var size = inpSize + outSize + cacheSize;
365
+
366
+ var chunkSize = Math.pow(2, 24);
367
+ var heapSize = chunkSize;
368
+ while (heapSize < size){
369
+ heapSize += chunkSize;
370
+ };
371
+ var heap = new ArrayBuffer(heapSize);
372
+
373
+ var res = asmFactory(global, {}, heap);
374
+ res.init(parWidth, parHeight);
375
+ asmInstances[idStr] = res;
376
+
377
+ res.heap = heap;
378
+ res.out = new Uint8Array(heap, 0, outSize);
379
+ res.inp = new Uint8Array(heap, outSize, inpSize);
380
+ res.outSize = outSize;
381
+
382
+ return res;
383
+ };
384
+
385
+
386
+ function asmFactory(stdlib, foreign, heap) {
387
+ "use asm";
388
+
389
+ var imul = stdlib.Math.imul;
390
+ var min = stdlib.Math.min;
391
+ var max = stdlib.Math.max;
392
+ var pow = stdlib.Math.pow;
393
+ var out = new stdlib.Uint8Array(heap);
394
+ var out32 = new stdlib.Uint32Array(heap);
395
+ var inp = new stdlib.Uint8Array(heap);
396
+ var mem = new stdlib.Uint8Array(heap);
397
+ var mem32 = new stdlib.Uint32Array(heap);
398
+
399
+ // for double algo
400
+ /*var vt = 1.370705;
401
+ var gt = 0.698001;
402
+ var gt2 = 0.337633;
403
+ var bt = 1.732446;*/
404
+
405
+ var width = 0;
406
+ var height = 0;
407
+ var lumaSize = 0;
408
+ var chromaSize = 0;
409
+ var inpSize = 0;
410
+ var outSize = 0;
411
+
412
+ var inpStart = 0;
413
+ var outStart = 0;
414
+
415
+ var widthFour = 0;
416
+
417
+ var cacheStart = 0;
418
+
419
+
420
+ function init(parWidth, parHeight){
421
+ parWidth = parWidth|0;
422
+ parHeight = parHeight|0;
423
+
424
+ var i = 0;
425
+ var s = 0;
426
+
427
+ width = parWidth;
428
+ widthFour = imul(parWidth, 4)|0;
429
+ height = parHeight;
430
+ lumaSize = imul(width|0, height|0)|0;
431
+ chromaSize = (lumaSize|0) >> 2;
432
+ outSize = imul(imul(width, height)|0, 4)|0;
433
+ inpSize = ((lumaSize + chromaSize)|0 + chromaSize)|0;
434
+
435
+ outStart = 0;
436
+ inpStart = (outStart + outSize)|0;
437
+ cacheStart = (inpStart + inpSize)|0;
438
+
439
+ // initializing memory (to be on the safe side)
440
+ s = ~~(+pow(+2, +24));
441
+ s = imul(s, 4)|0;
442
+
443
+ for (i = 0|0; ((i|0) < (s|0))|0; i = (i + 4)|0){
444
+ mem32[((cacheStart + i)|0) >> 2] = 0;
445
+ };
446
+ };
447
+
448
+ function doit(){
449
+ var ystart = 0;
450
+ var ustart = 0;
451
+ var vstart = 0;
452
+
453
+ var y = 0;
454
+ var yn = 0;
455
+ var u = 0;
456
+ var v = 0;
457
+
458
+ var o = 0;
459
+
460
+ var line = 0;
461
+ var col = 0;
462
+
463
+ var usave = 0;
464
+ var vsave = 0;
465
+
466
+ var ostart = 0;
467
+ var cacheAdr = 0;
468
+
469
+ ostart = outStart|0;
470
+
471
+ ystart = inpStart|0;
472
+ ustart = (ystart + lumaSize|0)|0;
473
+ vstart = (ustart + chromaSize)|0;
474
+
475
+ for (line = 0; (line|0) < (height|0); line = (line + 2)|0){
476
+ usave = ustart;
477
+ vsave = vstart;
478
+ for (col = 0; (col|0) < (width|0); col = (col + 2)|0){
479
+ y = inp[ystart >> 0]|0;
480
+ yn = inp[((ystart + width)|0) >> 0]|0;
481
+
482
+ u = inp[ustart >> 0]|0;
483
+ v = inp[vstart >> 0]|0;
484
+
485
+ cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0;
486
+ o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0;
487
+ if (o){}else{
488
+ o = yuv2rgbcalc(y,u,v)|0;
489
+ mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0;
490
+ };
491
+ mem32[ostart >> 2] = o;
492
+
493
+ cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0;
494
+ o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0;
495
+ if (o){}else{
496
+ o = yuv2rgbcalc(yn,u,v)|0;
497
+ mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0;
498
+ };
499
+ mem32[((ostart + widthFour)|0) >> 2] = o;
500
+
501
+ //yuv2rgb5(y, u, v, ostart);
502
+ //yuv2rgb5(yn, u, v, (ostart + widthFour)|0);
503
+ ostart = (ostart + 4)|0;
504
+
505
+ // next step only for y. u and v stay the same
506
+ ystart = (ystart + 1)|0;
507
+ y = inp[ystart >> 0]|0;
508
+ yn = inp[((ystart + width)|0) >> 0]|0;
509
+
510
+ //yuv2rgb5(y, u, v, ostart);
511
+ cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0;
512
+ o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0;
513
+ if (o){}else{
514
+ o = yuv2rgbcalc(y,u,v)|0;
515
+ mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0;
516
+ };
517
+ mem32[ostart >> 2] = o;
518
+
519
+ //yuv2rgb5(yn, u, v, (ostart + widthFour)|0);
520
+ cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0;
521
+ o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0;
522
+ if (o){}else{
523
+ o = yuv2rgbcalc(yn,u,v)|0;
524
+ mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0;
525
+ };
526
+ mem32[((ostart + widthFour)|0) >> 2] = o;
527
+ ostart = (ostart + 4)|0;
528
+
529
+ //all positions inc 1
530
+
531
+ ystart = (ystart + 1)|0;
532
+ ustart = (ustart + 1)|0;
533
+ vstart = (vstart + 1)|0;
534
+ };
535
+ ostart = (ostart + widthFour)|0;
536
+ ystart = (ystart + width)|0;
537
+
538
+ };
539
+
540
+ };
541
+
542
+ function yuv2rgbcalc(y, u, v){
543
+ y = y|0;
544
+ u = u|0;
545
+ v = v|0;
546
+
547
+ var r = 0;
548
+ var g = 0;
549
+ var b = 0;
550
+
551
+ var o = 0;
552
+
553
+ var a0 = 0;
554
+ var a1 = 0;
555
+ var a2 = 0;
556
+ var a3 = 0;
557
+ var a4 = 0;
558
+
559
+ a0 = imul(1192, (y - 16)|0)|0;
560
+ a1 = imul(1634, (v - 128)|0)|0;
561
+ a2 = imul(832, (v - 128)|0)|0;
562
+ a3 = imul(400, (u - 128)|0)|0;
563
+ a4 = imul(2066, (u - 128)|0)|0;
564
+
565
+ r = (((a0 + a1)|0) >> 10)|0;
566
+ g = (((((a0 - a2)|0) - a3)|0) >> 10)|0;
567
+ b = (((a0 + a4)|0) >> 10)|0;
568
+
569
+ if ((((r & 255)|0) != (r|0))|0){
570
+ r = min(255, max(0, r|0)|0)|0;
571
+ };
572
+ if ((((g & 255)|0) != (g|0))|0){
573
+ g = min(255, max(0, g|0)|0)|0;
574
+ };
575
+ if ((((b & 255)|0) != (b|0))|0){
576
+ b = min(255, max(0, b|0)|0)|0;
577
+ };
578
+
579
+ o = 255;
580
+ o = (o << 8)|0;
581
+ o = (o + b)|0;
582
+ o = (o << 8)|0;
583
+ o = (o + g)|0;
584
+ o = (o << 8)|0;
585
+ o = (o + r)|0;
586
+
587
+ return o|0;
588
+
589
+ };
590
+
591
+
592
+
593
+ return {
594
+ init: init,
595
+ doit: doit
596
+ };
597
+ };
598
+
599
+
600
+ /*
601
+ potential worker initialization
602
+
603
+ */
604
+
605
+
606
+ if (typeof self != "undefined"){
607
+ var isWorker = false;
608
+ var decoder;
609
+ var reuseMemory = false;
610
+ var sliceMode = false;
611
+ var sliceNum = 0;
612
+ var sliceCnt = 0;
613
+ var lastSliceNum = 0;
614
+ var sliceInfoAr;
615
+ var lastBuf;
616
+ var awaiting = 0;
617
+ var pile = [];
618
+ var startDecoding;
619
+ var finishDecoding;
620
+ var timeDecoding;
621
+
622
+ var memAr = [];
623
+ var getMem = function(length){
624
+ if (memAr.length){
625
+ var u = memAr.shift();
626
+ while (u && u.byteLength !== length){
627
+ u = memAr.shift();
628
+ };
629
+ if (u){
630
+ return u;
631
+ };
632
+ };
633
+ return new ArrayBuffer(length);
634
+ };
635
+
636
+ var copySlice = function(source, target, infoAr, width, height){
637
+
638
+ var length = width * height;
639
+ var length4 = length / 4
640
+ var plane2 = length;
641
+ var plane3 = length + length4;
642
+
643
+ var copy16 = function(parBegin, parEnd){
644
+ var i = 0;
645
+ for (i = 0; i < 16; ++i){
646
+ var begin = parBegin + (width * i);
647
+ var end = parEnd + (width * i)
648
+ target.set(source.subarray(begin, end), begin);
649
+ };
650
+ };
651
+ var copy8 = function(parBegin, parEnd){
652
+ var i = 0;
653
+ for (i = 0; i < 8; ++i){
654
+ var begin = parBegin + ((width / 2) * i);
655
+ var end = parEnd + ((width / 2) * i)
656
+ target.set(source.subarray(begin, end), begin);
657
+ };
658
+ };
659
+ var copyChunk = function(begin, end){
660
+ target.set(source.subarray(begin, end), begin);
661
+ };
662
+
663
+ var begin = infoAr[0];
664
+ var end = infoAr[1];
665
+ if (end > 0){
666
+ copy16(begin, end);
667
+ copy8(infoAr[2], infoAr[3]);
668
+ copy8(infoAr[4], infoAr[5]);
669
+ };
670
+ begin = infoAr[6];
671
+ end = infoAr[7];
672
+ if (end > 0){
673
+ copy16(begin, end);
674
+ copy8(infoAr[8], infoAr[9]);
675
+ copy8(infoAr[10], infoAr[11]);
676
+ };
677
+
678
+ begin = infoAr[12];
679
+ end = infoAr[15];
680
+ if (end > 0){
681
+ copyChunk(begin, end);
682
+ copyChunk(infoAr[13], infoAr[16]);
683
+ copyChunk(infoAr[14], infoAr[17]);
684
+ };
685
+
686
+ };
687
+
688
+ var sliceMsgFun = function(){};
689
+
690
+ var setSliceCnt = function(parSliceCnt){
691
+ sliceCnt = parSliceCnt;
692
+ lastSliceNum = sliceCnt - 1;
693
+ };
694
+
695
+
696
+ self.addEventListener('message', function(e) {
697
+
698
+ if (isWorker){
699
+ if (reuseMemory){
700
+ if (e.data.reuse){
701
+ memAr.push(e.data.reuse);
702
+ };
703
+ };
704
+ if (e.data.buf){
705
+ if (sliceMode && awaiting !== 0){
706
+ pile.push(e.data);
707
+ }else{
708
+ decoder.decode(
709
+ new Uint8Array(e.data.buf, e.data.offset || 0, e.data.length),
710
+ e.data.info,
711
+ function(){
712
+ if (sliceMode && sliceNum !== lastSliceNum){
713
+ postMessage(e.data, [e.data.buf]);
714
+ };
715
+ }
716
+ );
717
+ };
718
+ return;
719
+ };
720
+
721
+ if (e.data.slice){
722
+ // update ref pic
723
+ var copyStart = nowValue();
724
+ copySlice(new Uint8Array(e.data.slice), lastBuf, e.data.infos[0].sliceInfoAr, e.data.width, e.data.height);
725
+ // is it the one? then we need to update it
726
+ if (e.data.theOne){
727
+ copySlice(lastBuf, new Uint8Array(e.data.slice), sliceInfoAr, e.data.width, e.data.height);
728
+ if (timeDecoding > e.data.infos[0].timeDecoding){
729
+ e.data.infos[0].timeDecoding = timeDecoding;
730
+ };
731
+ e.data.infos[0].timeCopy += (nowValue() - copyStart);
732
+ };
733
+ // move on
734
+ postMessage(e.data, [e.data.slice]);
735
+
736
+ // next frame in the pipe?
737
+ awaiting -= 1;
738
+ if (awaiting === 0 && pile.length){
739
+ var data = pile.shift();
740
+ decoder.decode(
741
+ new Uint8Array(data.buf, data.offset || 0, data.length),
742
+ data.info,
743
+ function(){
744
+ if (sliceMode && sliceNum !== lastSliceNum){
745
+ postMessage(data, [data.buf]);
746
+ };
747
+ }
748
+ );
749
+ };
750
+ return;
751
+ };
752
+
753
+ if (e.data.setSliceCnt){
754
+ setSliceCnt(e.data.sliceCnt);
755
+ return;
756
+ };
757
+
758
+ }else{
759
+ if (e.data && e.data.type === "Broadway.js - Worker init"){
760
+ isWorker = true;
761
+ decoder = new Decoder(e.data.options);
762
+
763
+ if (e.data.options.sliceMode){
764
+ reuseMemory = true;
765
+ sliceMode = true;
766
+ sliceNum = e.data.options.sliceNum;
767
+ setSliceCnt(e.data.options.sliceCnt);
768
+
769
+ decoder.onPictureDecoded = function (buffer, width, height, infos) {
770
+
771
+ // buffer needs to be copied because we give up ownership
772
+ var copyU8 = new Uint8Array(getMem(buffer.length));
773
+ copySlice(buffer, copyU8, infos[0].sliceInfoAr, width, height);
774
+
775
+ startDecoding = infos[0].startDecoding;
776
+ finishDecoding = infos[0].finishDecoding;
777
+ timeDecoding = finishDecoding - startDecoding;
778
+ infos[0].timeDecoding = timeDecoding;
779
+ infos[0].timeCopy = 0;
780
+
781
+ postMessage({
782
+ slice: copyU8.buffer,
783
+ sliceNum: sliceNum,
784
+ width: width,
785
+ height: height,
786
+ infos: infos
787
+ }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership
788
+
789
+ awaiting = sliceCnt - 1;
790
+
791
+ lastBuf = buffer;
792
+ sliceInfoAr = infos[0].sliceInfoAr;
793
+
794
+ };
795
+
796
+ }else if (e.data.options.reuseMemory){
797
+ reuseMemory = true;
798
+ decoder.onPictureDecoded = function (buffer, width, height, infos) {
799
+
800
+ // buffer needs to be copied because we give up ownership
801
+ var copyU8 = new Uint8Array(getMem(buffer.length));
802
+ copyU8.set( buffer, 0, buffer.length );
803
+
804
+ postMessage({
805
+ buf: copyU8.buffer,
806
+ length: buffer.length,
807
+ width: width,
808
+ height: height,
809
+ infos: infos
810
+ }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership
811
+
812
+ };
813
+
814
+ }else{
815
+ decoder.onPictureDecoded = function (buffer, width, height, infos) {
816
+ if (buffer) {
817
+ buffer = new Uint8Array(buffer);
818
+ };
819
+
820
+ // buffer needs to be copied because we give up ownership
821
+ var copyU8 = new Uint8Array(buffer.length);
822
+ copyU8.set( buffer, 0, buffer.length );
823
+
824
+ postMessage({
825
+ buf: copyU8.buffer,
826
+ length: buffer.length,
827
+ width: width,
828
+ height: height,
829
+ infos: infos
830
+ }, [copyU8.buffer]); // 2nd parameter is used to indicate transfer of ownership
831
+
832
+ };
833
+ };
834
+ postMessage({ consoleLog: "broadway worker initialized" });
835
+ };
836
+ };
837
+
838
+
839
+ }, false);
840
+ };
841
+
842
+ Decoder.nowValue = nowValue;
843
+
844
+ return Decoder;
845
+
846
+ })();
847
+
848
+
849
+ }));
850
+