dicom-microscopy-viewer-changed
Version:
Interactive web-based viewer for DICOM Microscopy Images
13 lines (11 loc) • 676 kB
JavaScript
var OpenJPEGJS = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(OpenJPEGJS) {
OpenJPEGJS = OpenJPEGJS || {};
var Module=typeof OpenJPEGJS!="undefined"?OpenJPEGJS:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(
// EMSCRIPTEN_START_ASM
function instantiate(Ea){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new ArrayBuffer(16);var g=new Int32Array(f);var h=new Float32Array(f);var i=new Float64Array(f);function j(k){return g[k]}function l(k,m){g[k]=m}function n(){return i[0]}function o(m){i[0]=m}function p(){throw new Error("abort")}function Ca(Da){var q=Da.a;var r=q.a;var s=r.buffer;r.grow=Aa;var t=new Int8Array(s);var u=new Int16Array(s);var v=new Int32Array(s);var w=new Uint8Array(s);var x=new Uint16Array(s);var y=new Uint32Array(s);var z=new Float32Array(s);var A=new Float64Array(s);var B=Math.imul;var C=Math.fround;var D=Math.abs;var E=Math.clz32;var F=Math.min;var G=Math.max;var H=Math.floor;var I=Math.ceil;var J=Math.trunc;var K=Math.sqrt;var L=NaN;var M=Infinity;var N=q.b;var O=q.c;var P=q.d;var Q=q.e;var R=q.f;var S=q.g;var T=q.h;var U=q.i;var V=q.j;var W=q.k;var X=q.l;var Y=q.m;var Z=q.n;var _=q.o;var $=q.p;var aa=q.q;var ba=q.r;var ca=q.s;var da=q.t;var ea=q.u;var fa=q.v;var ga=q.w;var ha=q.x;var ia=q.y;var ja=q.z;var ka=q.A;var la=q.B;var ma=q.C;var na=q.D;var oa=q.E;var pa=q.F;var qa=118304;var ra=0;var sa=0;var ta=0;
// EMSCRIPTEN_START_FUNCS
function $f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,A=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,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=C(0),ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0;X=qa-96|0;qa=X;H=v[a+8>>2];a:{b:{c:{if(!v[a>>2]){e=B(v[H+16>>2]-v[H+8>>2]|0,v[H+20>>2]-v[H+12>>2]|0)<<2;f=Ta(e);v[H+60>>2]=f;if(!f){Fa(v[a+32>>2],1,17900,0);n=a+28|0;break b}Ma(f,0,e);break c}e=v[H+60>>2];if(!e){break c}Ga(e);v[H+60>>2]=0}if(!v[v[a+28>>2]>>2]){break a}la=v[a+16>>2];e=(B(v[la+24>>2],152)+v[la+28>>2]|0)-152|0;sa=v[e>>2];ta=v[e+8>>2];ma=v[a+20>>2];na=v[a+12>>2];ra=v[a+4>>2];n=a+28|0;d:{d=oe(b);if(d){break d}d=Ka(1,156);if(!d){Fa(v[a+32>>2],1,10256,0);break b}v[d+140>>2]=0;if(ne(b,d)){break d}Fa(v[a+32>>2],1,18588,0);b=v[d+116>>2];if(b){Ga(b);v[d+116>>2]=0}b=v[d+120>>2];if(b){Ga(b);v[d+120>>2]=0}Ga(v[d+148>>2]);Ga(d);break b}v[d+144>>2]=v[a+24>>2];J=v[a+40>>2];Z=v[a+36>>2];R=v[a+32>>2];e=v[ma+808>>2];b=v[na+16>>2];e:{S=v[ma+16>>2];f:{if(S&64){k=qa-304|0;qa=k;g:{if(e){if(Z){Fa(R,1,5603,0);break g}Fa(R,1,5603,0);break g}i=v[d+116>>2];e=v[H+20>>2]-v[H+12>>2]|0;b=v[H+16>>2]-v[H+8>>2]|0;f=B(e,b);h:{i:{if(f>>>0>y[d+132>>2]){Ga(i);I=f<<2;i=Ta(I);v[d+116>>2]=i;if(!i){break g}v[d+132>>2]=f;break i}if(!i){break h}I=f<<2}Ma(i,0,I)}i=v[d+120>>2];j:{if(y[d+136>>2]>2639){break j}Ga(i);i=Ta(10560);v[d+120>>2]=i;if(i){break j}break g}v[d+136>>2]=2640;Ma(i,0,10560);v[d+128>>2]=e;v[d+124>>2]=b;j=v[H+24>>2];if(!j){c=1;break g}r=v[H+28>>2];k:{l:{m:{n:{o:{e=v[H+52>>2];if(e){o=v[H+4>>2];I=0;i=0;if(e>>>0>=4){b=e&-4;while(1){f=c<<3;i=v[(o+(f|24)|0)+4>>2]+(v[(o+(f|16)|0)+4>>2]+(v[(o+(f|8)|0)+4>>2]+(v[(f+o|0)+4>>2]+i|0)|0)|0)|0;c=c+4|0;g=g+4|0;if((b|0)!=(g|0)){continue}break}}b=e&3;if(b){while(1){i=v[(o+(c<<3)|0)+4>>2]+i|0;c=c+1|0;I=I+1|0;if((b|0)!=(I|0)){continue}break}}if(!v[d+144>>2]&e>>>0<=1){break n}if(y[d+152>>2]<i>>>0){break o}break m}if(v[d+144>>2]){break m}c=1;break g}I=Pa(v[d+148>>2],i);if(!I){c=0;break g}v[d+152>>2]=i;v[d+148>>2]=I;e=v[H+52>>2];break l}c=1;if((e|0)!=1){break g}I=v[v[H+4>>2]>>2];break k}I=v[d+148>>2]}if(!e){i=0;break k}f=v[H+4>>2];i=0;c=0;while(1){e=c<<3;b=e+f|0;Ja(i+I|0,v[b>>2],v[b+4>>2]);f=v[H+4>>2];i=v[(e+f|0)+4>>2]+i|0;c=c+1|0;if(c>>>0<y[H+52>>2]){continue}break}}c=0;f=0;e=v[H+40>>2];o=0;p:{if(!e){break p}b=v[H>>2];f=v[b+8>>2];o=0;if((e|0)==1){break p}o=v[b+32>>2]}e=j-r|0;f=f+o|0;q:{if(!f){break q}c=1;b=v[H>>2];D=v[b>>2];if((f|0)==1){c=0;break q}p=v[b+24>>2]}Q=e+1|0;ea=v[d+116>>2];Y=v[d+120>>2];O=v[H+12>>2];K=v[H+20>>2];F=v[H+8>>2];pa=v[H+16>>2];r:{s:{t:{u:{v:{w:{x:{y:{if(!(p|!c)){if(!Z){break y}Fa(R,2,21421,0);f=1;break x}if(f>>>0<4){break x}if(Z){v[k+112>>2]=f;Fa(R,1,20056,k+112|0);break r}v[k+96>>2]=f;Fa(R,1,20056,k+96|0);c=0;break g}Fa(R,2,21421,0);c=v[H+24>>2];if(c>>>0>30){break w}s=1;if(c>>>0>=Q>>>0){break u}break s}c=v[H+24>>2];if(c>>>0<=30){break v}if(!Z){break w}v[k+32>>2]=v[H+24>>2];Fa(R,1,23639,k+32|0);break r}v[k>>2]=c;Fa(R,1,23639,k);c=0;break g}if(c>>>0<Q>>>0){break t}if((c|0)!=(Q|0)){s=f;break u}if(f>>>0<2){s=f;break u}s=1;if(w[49816]){break u}if(!Z){t[49816]=1;v[k+64>>2]=f;Fa(R,2,20883,k- -64|0);break u}if(!w[49816]){t[49816]=1;v[k+80>>2]=f;Fa(R,2,20883,k+80|0)}}if(!(!(D>>>0<2|i>>>0<D>>>0)&p+D>>>0<=i>>>0)){if(Z){c=0;Fa(R,1,19604,0);break g}c=0;Fa(R,1,19604,0);break g}g=D+I|0;L=w[g-1|0]<<4|w[g-2|0]&15;if(!(!(L>>>0<2|(D|0)<(L|0))&L>>>0<4080)){if(Z){c=0;Fa(R,1,27282,0);break g}c=0;Fa(R,1,27282,0);break g}M=v[H+28>>2];v[k+272>>2]=0;v[k+280>>2]=0;v[k+264>>2]=0;v[k+268>>2]=0;v[k+296>>2]=0;v[k+300>>2]=0;v[k+284>>2]=0;v[k+288>>2]=0;e=L-1|0;v[k+276>>2]=e;i=(D+I|0)-L|0;v[k+256>>2]=i;o=255;o=L>>>0>=2?w[i|0]:o;b=8;v[k+272>>2]=8;f=L-2|0;v[k+276>>2]=f;o=(e|0)==1?o|15:o;e=0;r=e;v[k+264>>2]=o;v[k+268>>2]=e;j=i+((L|0)>1)|0;v[k+256>>2]=j;v[k+280>>2]=!e&(o|0)==255;m=i&3;z:{A:{if((m|0)==3){break A}e=255;if(!r&(o|0)==255){i=0;if(w[j|0]>143){break z}}e=(L|0)>=3?w[j|0]:e;l=L-3|0;v[k+276>>2]=l;i=!r&(o|0)==255;b=i?15:16;v[k+272>>2]=b;q=j+((L|0)>2)|0;v[k+256>>2]=q;e=(f|0)==1?e|15:e;f=0;v[k+280>>2]=!f&(e|0)==255;f=e;j=o;e=i?7:8;i=e&31;if((e&63)>>>0>=32){J=j<<i;e=0}else{J=(1<<i)-1&j>>>32-i|r<<i;e=j<<i}o=e|f;e=J|U;r=e;v[k+264>>2]=o;v[k+268>>2]=e;if((m|0)==2){break A}if(!U&(f|0)==255){i=0;if(w[q|0]>143){break z}}c=255;c=(L|0)>=4?w[q|0]:c;j=L-4|0;v[k+276>>2]=j;q=q+((L|0)>3)|0;v[k+256>>2]=q;e=(l|0)==1?c|15:c;i=0;c=i;v[k+280>>2]=!c&(e|0)==255;i=!U&(f|0)==255;b=(i?7:8)+b|0;v[k+272>>2]=b;f=e;e=i?7:8;i=e&31;if((e&63)>>>0>=32){l=o<<i;e=0}else{l=(1<<i)-1&o>>>32-i|r<<i;e=o<<i}o=e|f;e=c|l;r=e;v[k+264>>2]=o;v[k+268>>2]=e;if((m|0)==1){break A}e=255;if(!c&(f|0)==255){i=0;if(w[q|0]>143){break z}}e=(L|0)>=5?w[q|0]:e;v[k+276>>2]=L-5;v[k+256>>2]=q+((L|0)>4);i=0;e=(j|0)==1?e|15:e;v[k+280>>2]=!i&(e|0)==255;f=!c&(f|0)==255;b=(f?7:8)+b|0;v[k+272>>2]=b;j=o;f=f?7:8;o=f&31;if((f&63)>>>0>=32){m=j<<o;f=0}else{m=(1<<o)-1&j>>>32-o|r<<o;f=j<<o}o=f|e;e=i|m;r=e;v[k+264>>2]=o;v[k+268>>2]=e}e=o;b=64-b|0;f=b&31;if((b&63)>>>0>=32){l=e<<f;b=0}else{l=(1<<f)-1&e>>>32-f|r<<f;b=e<<f}v[k+264>>2]=b;v[k+268>>2]=l;i=1}if(!i){if(Z){c=0;Fa(R,1,22031,0);break g}c=0;Fa(R,1,22031,0);break g}G=pa-F|0;U=L-2|0;v[k+244>>2]=U;e=D+I|0;b=e-3|0;v[k+224>>2]=b;j=w[e-2|0];q=j>>>0>143;v[k+248>>2]=q;r=0;o=j>>>4|0;v[k+232>>2]=o;v[k+236>>2]=0;e=(o&7)==7?3:4;v[k+240>>2]=e;f=(b&3)+1|0;A=(f|0)<(U|0)?f:U;B:{C:{if((L|0)<=2){f=U-A|0;v[k+244>>2]=f;break C}f=b-1|0;v[k+224>>2]=f;i=w[b|0];q=i>>>0>143;v[k+248>>2]=q;b=e&31;if((e&63)>>>0>=32){m=i<<b;b=0}else{m=(1<<b)-1&i>>>32-b;b=i<<b}o=b|o;v[k+232>>2]=o;r=m;v[k+236>>2]=m;e=(j>>>0<=143?8:(i&127)==127?7:8)+e|0;v[k+240>>2]=e;D:{if((A|0)<2){b=f;break D}b=f-1|0;v[k+224>>2]=b;f=w[f|0];q=f>>>0>143;v[k+248>>2]=q;j=e&31;if((e&63)>>>0>=32){l=f<<j;j=0}else{l=(1<<j)-1&f>>>32-j;j=f<<j}o=j|o;v[k+232>>2]=o;r=l|r;v[k+236>>2]=r;e=(i>>>0<=143?8:(f&127)==127?7:8)+e|0;v[k+240>>2]=e;c=(A|0)<=1?1:A;if((c|0)==2){break D}j=b-1|0;v[k+224>>2]=j;i=w[b|0];q=i>>>0>143;v[k+248>>2]=q;b=e&31;if((e&63)>>>0>=32){l=i<<b;b=0}else{l=(1<<b)-1&i>>>32-b;b=i<<b}o=b|o;b=l|r;r=b;v[k+232>>2]=o;v[k+236>>2]=b;e=(f>>>0<=143?8:(i&127)==127?7:8)+e|0;v[k+240>>2]=e;if((c|0)==3){b=j;break D}b=j-1|0;v[k+224>>2]=b;f=w[j|0];q=f>>>0>143;v[k+248>>2]=q;j=e&31;if((e&63)>>>0>=32){J=f<<j;j=0}else{J=(1<<j)-1&f>>>32-j;j=f<<j}o=j|o;v[k+232>>2]=o;r=r|J;v[k+236>>2]=r;e=(i>>>0<=143?8:(f&127)==127?7:8)+e|0;v[k+240>>2]=e}f=U-A|0;v[k+244>>2]=f;if(e>>>0>32){break B}}E:{if((f|0)>=4){i=v[b-3>>2];v[k+244>>2]=f-4;v[k+224>>2]=b-4;break E}if((f|0)<=0){i=0;break E}A=f&1;F:{if((f|0)==1){c=24;i=0;break F}U=f&-2;c=24;i=0;l=0;while(1){j=b-1|0;v[k+224>>2]=j;m=w[b|0];b=b-2|0;v[k+224>>2]=b;v[k+244>>2]=f-1;j=w[j|0];f=f-2|0;v[k+244>>2]=f;i=m<<c|i|j<<c-8;c=c-16|0;l=l+2|0;if((U|0)!=(l|0)){continue}break}}if(!A){break E}v[k+224>>2]=b-1;b=w[b|0];v[k+244>>2]=f-1;i=b<<c|i}m=i&255;v[k+248>>2]=m>>>0>143;j=q?(i&2130706432)==2130706432?7:8:8;f=j+(i>>>0<=2415919103?8:(i&8323072)==8323072?7:8)|0;c=i>>>16&255;b=f+(c>>>0<=143?8:(i&32512)==32512?7:8)|0;l=i>>>8&255;v[k+240>>2]=b+((l>>>0<=143?8:(i&127)==127?7:8)+e|0);b=c<<j|i>>>24|l<<f|m<<b;f=e&31;if((e&63)>>>0>=32){l=b<<f;b=0}else{l=(1<<f)-1&b>>>32-f;b=b<<f}v[k+232>>2]=b|o;v[k+236>>2]=l|r}pd(k+192|0,I,D-L|0,255);U=0;G:{if(s>>>0<2){break G}pd(k+160|0,g,p,0);U=0;if((s|0)==2){break G}o=0;r=0;c=0;v[k+152>>2]=1;v[k+144>>2]=0;v[k+136>>2]=0;v[k+140>>2]=0;j=p;i=j-1|0;v[k+148>>2]=i;e=(D+I|0)+i|0;v[k+128>>2]=e;U=e&3;H:{if((j|0)<=0){b=e;break H}b=e-1|0;v[k+128>>2]=b;o=w[e|0]}v[k+136>>2]=o;v[k+140>>2]=0;g=o>>>0>143;v[k+152>>2]=g;q=(o&127)==127?7:8;v[k+144>>2]=q;I:{if(!U){break I}D=j-2|0;v[k+148>>2]=D;J:{if((j|0)<2){e=b;break J}e=b-1|0;v[k+128>>2]=e;c=w[b|0]}g=c>>>0>143;v[k+152>>2]=g;b=q&31;if((q&63)>>>0>=32){l=c<<b;b=0}else{l=(1<<b)-1&c>>>32-b;b=c<<b}m=b|o;r=l;v[k+136>>2]=m;v[k+140>>2]=l;q=(o>>>0<=143?8:(c&127)==127?7:8)+q|0;v[k+144>>2]=q;if((U|0)==1){b=e;o=m;j=i;i=D;break I}l=j-3|0;v[k+148>>2]=l;K:{if((j|0)<3){f=e;break K}f=e-1|0;v[k+128>>2]=f;h=w[e|0]}g=h>>>0>143;v[k+152>>2]=g;b=q&31;if((q&63)>>>0>=32){J=h<<b;b=0}else{J=(1<<b)-1&h>>>32-b;b=h<<b}o=b|m;b=r|J;r=b;v[k+136>>2]=o;v[k+140>>2]=b;q=(c>>>0<=143?8:(h&127)==127?7:8)+q|0;v[k+144>>2]=q;if((U|0)==2){b=f;j=D;i=l;break I}i=j-4|0;v[k+148>>2]=i;c=0;L:{if((j|0)<4){b=f;break L}b=f-1|0;v[k+128>>2]=b;c=w[f|0]}g=c>>>0>143;v[k+152>>2]=g;e=q&31;if((q&63)>>>0>=32){m=c<<e;e=0}else{m=(1<<e)-1&c>>>32-e;e=c<<e}o=e|o;e=m|r;r=e;v[k+136>>2]=o;v[k+140>>2]=e;q=(h>>>0<=143?8:(c&127)==127?7:8)+q|0;v[k+144>>2]=q;j=l}if(q>>>0<=32){M:{if((j|0)>=5){e=v[b-3>>2];v[k+148>>2]=j-5;v[k+128>>2]=b-4;break M}e=0;if((j|0)<2){break M}j=24;while(1){c=b-1|0;v[k+128>>2]=c;b=w[b|0];f=i-1|0;v[k+148>>2]=f;e=b<<j|e;l=i>>>0>1;b=c;j=j-8|0;i=f;if(l){continue}break}}l=e&255;v[k+152>>2]=l>>>0>143;i=g?(e&2130706432)==2130706432?7:8:8;f=i+(e>>>0<=2415919103?8:(e&8323072)==8323072?7:8)|0;j=e>>>16&255;b=f+(j>>>0<=143?8:(e&32512)==32512?7:8)|0;c=e>>>8&255;v[k+144>>2]=b+((c>>>0<=143?8:(e&127)==127?7:8)+q|0);b=j<<i|e>>>24|c<<f|l<<b;e=q&31;if((q&63)>>>0>=32){l=b<<e;b=0}else{l=(1<<e)-1&b>>>32-e;b=b<<e}v[k+136>>2]=b|o;v[k+140>>2]=l|r}U=1}_=K-O|0;N=Q+1|0;t[Y+2112|0]=0;h=Y+2112|0;e=ub(k+256|0);N:{if((G|0)<=0){T=M-1|0;break N}T=M-1|0;p=Y;f=h;I=0;j=ea;g=0;while(1){D=g;c=x[(I<<8|(Mb(k+224|0)&127)<<1)+31008>>1];O:{if(I){break O}b=e-2|0;c=(b|0)==-1?c:0;if((e|0)>1){e=b;break O}e=ub(k+256|0)}r=v[k+232>>2];i=v[k+236>>2];b=v[k+240>>2];K=c>>>4|0;q=v[p>>2]|(K&3|c>>>2&48)<<$;v[p>>2]=q;A=c&16;I=c>>>5&7|A>>>4;o=b;b=c&7;g=o-b|0;o=((1<<b)-1&i)<<32-b|r>>>b;r=i>>>b|0;b=o;i=0;if((G|0)>(D|2)){i=x[(I<<8|(b&127)<<1)+31008>>1];P:{if(I){break P}b=e-2|0;i=(b|0)==-1?i:0;if((e|0)>1){e=b;break P}e=ub(k+256|0)}I=i>>>4&1|i>>>5&7;b=i&7;g=g-b|0;o=((1<<b)-1&r)<<32-b|o>>>b;r=r>>>b|0;b=o}v[p>>2]=q|(i<<2&768|i&48)<<$+4;q=i>>>2&2|c>>>3&1;Q:{if((q|0)!=3){break Q}l=e-2|0;q=(l|0)==-1?4:3;if((e|0)>1){e=l;break Q}e=ub(k+256|0)}R:{if(!q){v[k+120>>2]=1;v[k+124>>2]=1;b=0;break R}if(q>>>0<=2){l=w[(b&7)+35156|0];O=l>>>2&7;m=l&3;l=(((-1<<O^-1)&b>>>m)+(l>>>5|0)|0)+1|0;b=(q|0)==1;v[k+124>>2]=b?1:l;v[k+120>>2]=b?l:1;b=m+O|0;break R}l=b;b=w[(b&7)+35156|0];J=b&3;l=l>>>J|0;if((q|0)==3){Q=(b>>>5|0)+1|0;if((J|0)==3){v[k+124>>2]=l&1|2;b=b>>>2&7;v[k+120>>2]=Q+((-1<<b^-1)&l>>>1);b=b+4|0;break R}q=w[(l&7)+35156|0];m=q&3;l=l>>>m|0;O=b>>>2&7;v[k+120>>2]=Q+(l&(-1<<O^-1));b=q>>>2&7;v[k+124>>2]=(((-1<<b^-1)&l>>>O)+(q>>>5|0)|0)+1;b=b+(m+(J+O|0)|0)|0;break R}q=w[(l&7)+35156|0];m=q&3;l=l>>>m|0;O=b>>>2&7;v[k+120>>2]=((l&(-1<<O^-1))+(b>>>5|0)|0)+3;b=q>>>2&7;v[k+124>>2]=(((-1<<b^-1)&l>>>O)+(q>>>5|0)|0)+3;b=b+(O+(m+J|0)|0)|0}S:{Q=v[k+120>>2];if(Q>>>0<=N>>>0){O=v[k+124>>2];if(O>>>0<=N>>>0){break S}}if(Z){c=0;Fa(R,1,28088,0);break g}c=0;Fa(R,1,28088,0);break g}v[k+240>>2]=g-b;m=b&31;if((b&63)>>>0>=32){l=0;b=r>>>m|0}else{l=r>>>m|0;b=((1<<m)-1&r)<<32-m|o>>>m}v[k+232>>2]=b;v[k+236>>2]=l;r=i&240|K&15;g=D+4|0;b=(g|0)<=(G|0)?255:255>>>(g-G<<1)|0;K=(_|0)>1?b:b&85;if(r&(K^-1)){if(Z){c=0;Fa(R,1,23313,0);break g}c=0;Fa(R,1,23313,0);break g}T:{U:{if(A){r=_a(k+192|0);m=Q+(c<<19>>31)|0;v[k+208>>2]=v[k+208>>2]-m;o=v[k+204>>2];b=v[k+200>>2];q=m&31;if((m&63)>>>0>=32){l=0;b=o>>>q|0}else{l=o>>>q|0;b=((1<<q)-1&o)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;q=(r&(-1<<m^-1)|(c>>>8&1)<<m|1)+2<<T|r<<31;break U}q=0;if(!(K&1)){break T}}v[j>>2]=q}V:{if(c&32){r=_a(k+192|0);m=Q+(c<<18>>31)|0;v[k+208>>2]=v[k+208>>2]-m;o=v[k+204>>2];b=v[k+200>>2];q=m&31;if((m&63)>>>0>=32){l=0;b=o>>>q|0}else{l=o>>>q|0;b=((1<<q)-1&o)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;b=r&(-1<<m^-1)|(c>>>9&1)<<m|1;v[(G<<2)+j>>2]=b+2<<T|r<<31;r=32-E(b)|0;b=w[f|0]&127;t[f|0]=(b>>>0<r>>>0?r:b)|128;break V}if(!(K&2)){break V}v[(G<<2)+j>>2]=0}m=j+4|0;W:{X:{if(c&64){r=_a(k+192|0);q=Q+(c<<17>>31)|0;v[k+208>>2]=v[k+208>>2]-q;o=v[k+204>>2];b=v[k+200>>2];A=q&31;if((q&63)>>>0>=32){l=0;b=o>>>A|0}else{l=o>>>A|0;b=((1<<A)-1&o)<<32-A|b>>>A}v[k+200>>2]=b;v[k+204>>2]=l;W=(r&(-1<<q^-1)|(c>>>10&1)<<q|1)+2<<T|r<<31;break X}W=0;if(!(K&4)){break W}}v[m>>2]=W}t[f+1|0]=0;Y:{if(c&128){r=_a(k+192|0);q=Q+(c<<16>>31)|0;v[k+208>>2]=v[k+208>>2]-q;o=v[k+204>>2];b=v[k+200>>2];A=q&31;if((q&63)>>>0>=32){l=0;b=o>>>A|0}else{l=o>>>A|0;b=((1<<A)-1&o)<<32-A|b>>>A}v[k+200>>2]=b;v[k+204>>2]=l;b=r&(-1<<q^-1)|(c>>>11&1)<<q|1;v[m+(G<<2)>>2]=b+2<<T|r<<31;t[f+1|0]=-96-E(b);break Y}if(!(K&8)){break Y}v[m+(G<<2)>>2]=0}c=j+8|0;Z:{_:{if(i&16){r=_a(k+192|0);m=O+(i<<19>>31)|0;v[k+208>>2]=v[k+208>>2]-m;o=v[k+204>>2];b=v[k+200>>2];q=m&31;if((m&63)>>>0>=32){l=0;b=o>>>q|0}else{l=o>>>q|0;b=((1<<q)-1&o)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;q=(r&(-1<<m^-1)|(i>>>8&1)<<m|1)+2<<T|r<<31;break _}q=0;if(!(K&16)){break Z}}v[c>>2]=q}$:{if(i&32){r=_a(k+192|0);m=O+(i<<18>>31)|0;v[k+208>>2]=v[k+208>>2]-m;o=v[k+204>>2];b=v[k+200>>2];q=m&31;if((m&63)>>>0>=32){l=0;b=o>>>q|0}else{l=o>>>q|0;b=((1<<q)-1&o)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;b=r&(-1<<m^-1)|(i>>>9&1)<<m|1;v[c+(G<<2)>>2]=b+2<<T|r<<31;r=32-E(b)|0;b=w[f+1|0]&127;t[f+1|0]=(b>>>0<r>>>0?r:b)|128;break $}if(!(K&32)){break $}v[c+(G<<2)>>2]=0}m=j+12|0;f=f+2|0;aa:{ba:{if(i&64){r=_a(k+192|0);c=O+(i<<17>>31)|0;v[k+208>>2]=v[k+208>>2]-c;o=v[k+204>>2];b=v[k+200>>2];q=c&31;if((c&63)>>>0>=32){l=0;b=o>>>q|0}else{l=o>>>q|0;b=((1<<q)-1&o)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;q=(r&(-1<<c^-1)|(i>>>10&1)<<c|1)+2<<T|r<<31;break ba}q=0;if(!(K&64)){break aa}}v[m>>2]=q}r=D&4;t[f|0]=0;ca:{if(i&128){o=_a(k+192|0);D=O+(i<<16>>31)|0;v[k+208>>2]=v[k+208>>2]-D;c=v[k+204>>2];b=v[k+200>>2];q=D&31;if((D&63)>>>0>=32){l=0;b=c>>>q|0}else{l=c>>>q|0;b=((1<<q)-1&c)<<32-q|b>>>q}v[k+200>>2]=b;v[k+204>>2]=l;b=o&(-1<<D^-1)|(i>>>11&1)<<D|1;v[m+(G<<2)>>2]=b+2<<T|o<<31;t[f|0]=-96-E(b);break ca}if(K>>>0<128){break ca}v[m+(G<<2)>>2]=0}$=$^16;p=p+r|0;j=j+16|0;if((g|0)<(G|0)){continue}break}}oa=S&8;ja=Y+1584|0;ka=Y+1056|0;ca=Y+528|0;P=B(G,3);fa=G<<1;b=M-2|0;ha=3<<b;ia=1<<b;q=2;if((_|0)>2){M=(G+7>>>1&2147483644)+4|0;while(1){A=q;V=w[h|0];t[h|0]=0;$=$&-17^2;da:{if((G|0)<=0){q=A+2|0;break da}I=A&4?ca:Y;q=A+2|0;j=ea+(B(A,G)<<2)|0;K=0;f=h;D=0;while(1){S=D;J=V&255;b=w[f+1|0]>>>5&4|(J>>>7|K);i=x[(b<<8|(Mb(k+224|0)&127)<<1)+33056>>1];ea:{if(b){break ea}b=e-2|0;i=(b|0)==-1?i:0;if((e|0)>1){e=b;break ea}e=ub(k+256|0)}o=v[k+232>>2];r=v[k+236>>2];b=v[k+240>>2];m=v[I>>2]|(i>>>4&3|i>>>2&48)<<$;v[I>>2]=m;Q=i&64;O=i&128;K=Q>>>5|O>>>6;c=b;b=i&7;W=c-b|0;o=((1<<b)-1&r)<<32-b|o>>>b;r=r>>>b|0;D=o;g=0;fa:{if((G|0)<=(S|2)){c=0;break fa}b=w[f+2|0]>>>5&4|w[f+1|0]>>>7|K;c=x[(b<<8|(D&127)<<1)+33056>>1];ga:{if(b){break ga}b=e-2|0;c=(b|0)==-1?c:0;if((e|0)>1){e=b;break ga}e=ub(k+256|0)}K=(c>>>5|c>>>6)&2;b=c&7;W=W-b|0;o=((1<<b)-1&r)<<32-b|o>>>b;r=r>>>b|0;D=o}v[I>>2]=m|(c<<2&768|c&48)<<$+4;b=1;p=1;l=c>>>2&2|i>>>3&1;ha:{if(!l){break ha}L=w[(D&7)+35156|0];g=L&3;p=D>>>g|0;if((l|0)!=3){m=L>>>2&7;D=((p&(-1<<m^-1))+(L>>>5|0)|0)+1|0;l=(l|0)==1;b=l?1:D;p=l?D:1;g=g+m|0;break ha}D=w[(p&7)+35156|0];b=D&3;m=L>>>2&7;l=D>>>2&7;g=(b+(m+g|0)|0)+l|0;b=p>>>b|0;p=((b&(-1<<m^-1))+(L>>>5|0)|0)+1|0;b=(((-1<<l^-1)&b>>>m)+(D>>>5|0)|0)+1|0}v[k+240>>2]=W-g;l=g&31;if((g&63)>>>0>=32){m=0;r=r>>>l|0}else{m=r>>>l|0;r=((1<<l)-1&r)<<32-l|o>>>l}v[k+232>>2]=r;v[k+236>>2]=m;l=i&240;if(l-1&l){o=J&127;r=w[f+1|0]&127;o=o>>>0>r>>>0?o:r;r=o-2|0;p=(o>>>0>=r>>>0?r:0)+p|0}o=c&240;if(o-1&o){D=b;r=w[f+1|0]&127;b=w[f+2|0]&127;b=b>>>0<r>>>0?r:b;b=D+(b>>>0>2?b-2|0:0)|0}if(!(p>>>0<=N>>>0&b>>>0<=N>>>0)){if(Z){c=0;Fa(R,1,28188,0);break g}c=0;Fa(R,1,28188,0);break g}V=w[f+2|0];t[f+1|0]=0;t[f+2|0]=0;D=S+4|0;r=(D|0)<=(G|0)?255:255>>>(D-G<<1)|0;L=(q|0)>(_|0)?r&85:r;if((o|l>>>4)&(L^-1)){if(Z){c=0;Fa(R,1,23313,0);break g}c=0;Fa(R,1,23313,0);break g}ia:{ja:{if(i&16){o=_a(k+192|0);g=(i<<19>>31)+p|0;v[k+208>>2]=v[k+208>>2]-g;l=v[k+204>>2];r=v[k+200>>2];J=g&31;if((g&63)>>>0>=32){m=0;r=l>>>J|0}else{m=l>>>J|0;r=((1<<J)-1&l)<<32-J|r>>>J}v[k+200>>2]=r;v[k+204>>2]=m;W=(o&(-1<<g^-1)|(i>>>8&1)<<g|1)+2<<T|o<<31;break ja}W=0;if(!(L&1)){break ia}}v[j>>2]=W}ka:{if(i&32){o=_a(k+192|0);g=(i<<18>>31)+p|0;v[k+208>>2]=v[k+208>>2]-g;l=v[k+204>>2];r=v[k+200>>2];J=g&31;if((g&63)>>>0>=32){m=0;r=l>>>J|0}else{m=l>>>J|0;r=((1<<J)-1&l)<<32-J|r>>>J}v[k+200>>2]=r;v[k+204>>2]=m;r=o&(-1<<g^-1)|(i>>>9&1)<<g|1;v[(G<<2)+j>>2]=r+2<<T|o<<31;o=32-E(r)|0;r=w[f|0]&127;t[f|0]=(o>>>0>r>>>0?o:r)|128;break ka}if(!(L&2)){break ka}v[(G<<2)+j>>2]=0}g=j+4|0;la:{ma:{if(Q){o=_a(k+192|0);Q=(i<<17>>31)+p|0;v[k+208>>2]=v[k+208>>2]-Q;l=v[k+204>>2];r=v[k+200>>2];J=Q&31;if((Q&63)>>>0>=32){m=0;r=l>>>J|0}else{m=l>>>J|0;r=((1<<J)-1&l)<<32-J|r>>>J}v[k+200>>2]=r;v[k+204>>2]=m;aa=(o&(-1<<Q^-1)|(i>>>10&1)<<Q|1)+2<<T|o<<31;break ma}aa=0;if(!(L&4)){break la}}v[g>>2]=aa}na:{if(O){o=_a(k+192|0);p=(i<<16>>31)+p|0;v[k+208>>2]=v[k+208>>2]-p;l=v[k+204>>2];r=v[k+200>>2];O=p&31;if((p&63)>>>0>=32){m=0;r=l>>>O|0}else{m=l>>>O|0;r=((1<<O)-1&l)<<32-O|r>>>O}v[k+200>>2]=r;v[k+204>>2]=m;i=o&(-1<<p^-1)|(i>>>11&1)<<p|1;v[g+(G<<2)>>2]=i+2<<T|o<<31;t[f+1|0]=-96-E(i);break na}if(!(L&8)){break na}v[g+(G<<2)>>2]=0}l=j+8|0;oa:{pa:{if(c&16){r=_a(k+192|0);p=(c<<19>>31)+b|0;v[k+208>>2]=v[k+208>>2]-p;o=v[k+204>>2];i=v[k+200>>2];g=p&31;if((p&63)>>>0>=32){m=0;i=o>>>g|0}else{m=o>>>g|0;i=((1<<g)-1&o)<<32-g|i>>>g}v[k+200>>2]=i;v[k+204>>2]=m;p=(r&(-1<<p^-1)|(c>>>8&1)<<p|1)+2<<T|r<<31;break pa}p=0;if(!(L&16)){break oa}}v[l>>2]=p}qa:{if(c&32){r=_a(k+192|0);p=(c<<18>>31)+b|0;v[k+208>>2]=v[k+208>>2]-p;o=v[k+204>>2];i=v[k+200>>2];g=p&31;if((p&63)>>>0>=32){m=0;i=o>>>g|0}else{m=o>>>g|0;i=((1<<g)-1&o)<<32-g|i>>>g}v[k+200>>2]=i;v[k+204>>2]=m;i=r&(-1<<p^-1)|(c>>>9&1)<<p|1;v[l+(G<<2)>>2]=i+2<<T|r<<31;r=32-E(i)|0;i=w[f+1|0]&127;t[f+1|0]=(i>>>0<r>>>0?r:i)|128;break qa}if(!(L&32)){break qa}v[l+(G<<2)>>2]=0}l=j+12|0;ra:{sa:{if(c&64){r=_a(k+192|0);p=(c<<17>>31)+b|0;v[k+208>>2]=v[k+208>>2]-p;o=v[k+204>>2];i=v[k+200>>2];g=p&31;if((p&63)>>>0>=32){m=0;i=o>>>g|0}else{m=o>>>g|0;i=((1<<g)-1&o)<<32-g|i>>>g}v[k+200>>2]=i;v[k+204>>2]=m;p=(r&(-1<<p^-1)|(c>>>10&1)<<p|1)+2<<T|r<<31;break sa}p=0;if(!(L&64)){break ra}}v[l>>2]=p}i=S&4;f=f+2|0;ta:{if(c&128){r=_a(k+192|0);p=(c<<16>>31)+b|0;v[k+208>>2]=v[k+208>>2]-p;o=v[k+204>>2];b=v[k+200>>2];S=p&31;if((p&63)>>>0>=32){m=0;b=o>>>S|0}else{m=o>>>S|0;b=((1<<S)-1&o)<<32-S|b>>>S}v[k+200>>2]=b;v[k+204>>2]=m;b=r&(-1<<p^-1)|(c>>>11&1)<<p|1;v[l+(G<<2)>>2]=b+2<<T|r<<31;t[f|0]=-96-E(b);break ta}if(L>>>0<128){break ta}v[l+(G<<2)>>2]=0}$=$^16;I=i+I|0;j=j+16|0;if((D|0)<(G|0)){continue}break}}ua:{if(q&3|s>>>0<2){break ua}S=q&4;va:{wa:{if(U){l=S?Y:ca;g=0;if((G|0)<=0){break wa}j=ea+(B(G,A-2|0)<<2)|0;while(1){i=Mb(k+128|0);c=0;D=v[l>>2];if(D){c=j+(g<<2)|0;b=0;f=15;while(1){xa:{if(!(f&D)){break xa}o=f&286331153;if(o&D){v[c>>2]=ia|v[c>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(D&o<<1){r=(G<<2)+c|0;v[r>>2]=ia|v[r>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(D&o<<2){r=(fa<<2)+c|0;v[r>>2]=ia|v[r>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(!(D&o<<3)){break xa}r=(P<<2)+c|0;v[r>>2]=ia|v[r>>2]^((i^-1)&1)<<T;i=i>>>1|0}c=c+4|0;f=f<<4;b=b+1|0;if((b|0)!=8){continue}break}c=ui(D)}l=l+4|0;v[k+144>>2]=v[k+144>>2]-c;f=v[k+140>>2];b=v[k+136>>2];i=c&31;if((c&63)>>>0>=32){m=0;b=f>>>i|0}else{m=f>>>i|0;b=((1<<i)-1&f)<<32-i|b>>>i}v[k+136>>2]=b;v[k+140>>2]=m;g=g+8|0;if((G|0)>(g|0)){continue}break}}I=!S;p=0;i=0;aa=S?ka:ja;c=aa;l=S?Y:ca;f=l;if((G|0)<=0){break va}while(1){b=i>>>28|0;i=v[f>>2];b=i|(b|i<<4|i>>>4);v[c>>2]=b;b=b|v[f+4>>2]<<28;v[c>>2]=(b>>>1&2004318071|b<<1&-286331154|b)&(i^-1);c=c+4|0;f=f+4|0;p=p+8|0;if((G|0)>(p|0)){continue}break}break va}I=!S;aa=S?ka:ja}if(A>>>0<6){break ua}p=0;b=0;c=l;V=I?ka:ja;i=V;o=I?Y:ca;f=o;D=(G|0)<=0;ya:{if(D){break ya}while(1){r=c+4|0;j=v[c>>2];if(oa){b=v[i>>2]}else{b=v[i>>2]|(j|(j<<4|b>>>28|j>>>4|v[r>>2]<<28))<<3&-2004318072}v[i>>2]=b&(v[f>>2]^-1);f=f+4|0;i=i+4|0;b=j;c=r;p=p+8|0;if((G|0)>(p|0)){continue}break}if(D){break ya}J=ea+(B(G,A-6|0)<<2)|0;W=0;A=o;while(1){p=0;c=v[V>>2];if(c){Q=G-W|0;i=0;K=0;while(1){r=i;i=_a(k+160|0);b=K+4|0;L=(G|0)>(b+W|0)?b:Q;O=(L|0)<=(K|0);za:{if(O){f=0;break za}ga=v[A>>2]^-1;g=((K|W)<<2)+J|0;f=0;b=K;S=b<<2;D=15<<S;j=D;while(1){Aa:{if(!(c&j)){break Aa}da=j&286331153;if(da&c){if(i&1){p=p|da;c=ga&50<<(b<<2)|c}i=i>>>1|0;f=f+1|0}m=da<<1;if(m&c){if(i&1){p=m|p;c=ga&116<<(b<<2)|c}i=i>>>1|0;f=f+1|0}m=da<<2;if(m&c){if(i&1){p=m|p;c=ga&232<<(b<<2)|c}i=i>>>1|0;f=f+1|0}m=da<<3;if(!(m&c)){break Aa}if(i&1){p=m|p;c=ga&192<<(b<<2)|c}f=f+1|0;i=i>>>1|0}j=j<<4;b=b+1|0;if((L|0)>(b|0)){continue}break}if(O|!(p>>>S&65535)){break za}while(1){Ba:{if(!(p&D)){break Ba}j=D&286331153;if(j&p){v[g>>2]=ha|(v[g>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(j<<1&p){b=(G<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(j<<2&p){b=(fa<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(!(j<<3&p)){break Ba}b=(P<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);f=f+1|0;i=i>>>1|0}D=D<<4;g=g+4|0;K=K+1|0;if((L|0)>(K|0)){continue}break}}v[k+176>>2]=v[k+176>>2]-f;i=v[k+172>>2];b=v[k+168>>2];j=f&31;if((f&63)>>>0>=32){m=0;b=i>>>j|0}else{m=i>>>j|0;b=((1<<j)-1&i)<<32-j|b>>>j}v[k+168>>2]=b;v[k+172>>2]=m;i=1;K=4;if(!(r&1)){continue}break}v[V+4>>2]=v[V+4>>2]|(p>>>27&14|p>>>29|p>>>28)&(v[A+4>>2]^-1)}i=v[A>>2]|p;r=i>>>3&286331153;f=r>>>4|r<<4|r;if(W){b=aa-4|0;v[b>>2]=v[b>>2]|(v[l-4>>2]^-1)&r<<28}v[aa>>2]=v[aa>>2]|f&(v[l>>2]^-1);v[aa+4>>2]=v[aa+4>>2]|(v[l+4>>2]^-1)&i>>>31;V=V+4|0;A=A+4|0;aa=aa+4|0;l=l+4|0;W=W+8|0;if((G|0)>(W|0)){continue}break}}Ma(o,0,M)}if((q|0)<(_|0)){continue}break}}Ca:{if(s>>>0<2){break Ca}j=(_&3)-1|0;Da:{if(j>>>0<2&U){if((G|0)<=0){break Da}r=ea+(B(G,_&16777212)<<2)|0;g=_&4?ca:Y;J=0;while(1){i=Mb(k+128|0);c=0;l=v[g>>2];if(l){c=r+(J<<2)|0;f=15;b=0;while(1){Ea:{if(!(f&l)){break Ea}o=f&286331153;if(o&l){v[c>>2]=ia|v[c>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(l&o<<1){e=(G<<2)+c|0;v[e>>2]=ia|v[e>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(l&o<<2){e=(fa<<2)+c|0;v[e>>2]=ia|v[e>>2]^((i^-1)&1)<<T;i=i>>>1|0}if(!(l&o<<3)){break Ea}e=(P<<2)+c|0;v[e>>2]=ia|v[e>>2]^((i^-1)&1)<<T;i=i>>>1|0}c=c+4|0;f=f<<4;b=b+1|0;if((b|0)!=8){continue}break}c=ui(l)}g=g+4|0;v[k+144>>2]=v[k+144>>2]-c;e=v[k+140>>2];b=v[k+136>>2];f=c&31;if((c&63)>>>0>=32){m=0;b=e>>>f|0}else{m=e>>>f|0;b=((1<<f)-1&e)<<32-f|b>>>f}v[k+136>>2]=b;v[k+140>>2]=m;J=J+8|0;if((G|0)>(J|0)){continue}break}}if((G|0)<=0|j>>>0>1){break Da}b=_&4;c=b?ca:Y;f=b?ja:ka;p=0;i=0;while(1){b=i>>>28|0;i=v[c>>2];b=i|(b|i<<4|i>>>4);v[f>>2]=b;b=b|v[c+4>>2]<<28;v[f>>2]=(b>>>1&2004318071|b<<1&-286331154|b)&(i^-1);f=f+4|0;c=c+4|0;p=p+8|0;if((G|0)>(p|0)){continue}break}}s=(_|0)>6?(_-(_+1&3)|0)-3|0:0;if((_|0)<=(s|0)){break Ca}K=(G|0)<=0;while(1){e=_-s|0;b=e-1|0;Fa:{Ga:{if(b>>>0>=3){W=-1;if((e|0)<5){break Ga}if(K){break Fa}b=s&4;c=b?ca:Y;i=b?ja:ka;f=0;if(!oa){f=b?Y:ca;p=0;j=0;while(1){b=j>>>28|0;j=v[f>>2];v[i>>2]=(v[i>>2]|(j|(b|j<<4|j>>>4|v[f+4>>2]<<28))<<3&-2004318072)&(v[c>>2]^-1);c=c+4|0;i=i+4|0;f=f+4|0;p=p+8|0;if((G|0)>(p|0)){continue}break}break Ga}while(1){v[i>>2]=v[i>>2]&(v[c>>2]^-1);c=c+4|0;i=i+4|0;f=f+8|0;if((G|0)>(f|0)){continue}break}break Ga}W=v[(b<<2)+35164>>2]}if(K){break Fa}b=s&4;$=b?ca:Y;q=b?ja:ka;D=b?Y:ca;e=b?ka:ja;U=ea+(B(s,G)<<2)|0;V=0;while(1){p=0;c=v[q>>2]&W;if(c){S=G-V|0;i=0;o=0;while(1){r=i;i=_a(k+160|0);b=o+4|0;A=(G|0)>(b+V|0)?b:S;m=(A|0)<=(o|0);Ha:{if(m){f=0;break Ha}Q=(v[$>>2]^-1)&W;g=U+((o|V)<<2)|0;f=0;b=o;h=b<<2;J=15<<h;j=J;while(1){Ia:{if(!(c&j)){break Ia}O=j&286331153;if(O&c){if(i&1){p=p|O;c=Q&50<<(b<<2)|c}i=i>>>1|0;f=f+1|0}l=O<<1;if(l&c){if(i&1){p=l|p;c=Q&116<<(b<<2)|c}i=i>>>1|0;f=f+1|0}l=O<<2;if(l&c){if(i&1){p=l|p;c=Q&232<<(b<<2)|c}i=i>>>1|0;f=f+1|0}l=O<<3;if(!(l&c)){break Ia}if(i&1){p=l|p;c=Q&192<<(b<<2)|c}f=f+1|0;i=i>>>1|0}j=j<<4;b=b+1|0;if((A|0)>(b|0)){continue}break}if(m|!(p>>>h&65535)){break Ha}while(1){Ja:{if(!(p&J)){break Ja}j=J&286331153;if(j&p){v[g>>2]=ha|(v[g>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(j<<1&p){b=(G<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(j<<2&p){b=(fa<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);i=i>>>1|0;f=f+1|0}if(!(j<<3&p)){break Ja}b=(P<<2)+g|0;v[b>>2]=ha|(v[b>>2]|i<<31);f=f+1|0;i=i>>>1|0}J=J<<4;g=g+4|0;o=o+1|0;if((A|0)>(o|0)){continue}break}}v[k+176>>2]=v[k+176>>2]-f;i=v[k+172>>2];b=v[k+168>>2];j=f&31;if((f&63)>>>0>=32){m=0;b=i>>>j|0}else{m=i>>>j|0;b=((1<<j)-1&i)<<32-j|b>>>j}v[k+168>>2]=b;v[k+172>>2]=m;i=1;o=4;if(!(r&1)){continue}break}v[q+4>>2]=v[q+4>>2]|(p>>>27&14|p>>>29|p>>>28)&(v[$+4>>2]^-1)}i=v[$>>2]|p;r=i>>>3&286331153;f=r>>>4|r<<4|r;if(V){b=e-4|0;v[b>>2]=v[b>>2]|(v[D-4>>2]^-1)&r<<28}v[e>>2]=v[e>>2]|f&(v[D>>2]^-1);v[e+4>>2]=v[e+4>>2]|(v[D+4>>2]^-1)&i>>>31;q=q+4|0;$=$+4|0;e=e+4|0;D=D+4|0;V=V+8|0;if((G|0)>(V|0)){continue}break}}s=s+4|0;if((_|0)>(s|0)){continue}break}}c=1;if((_|0)<=0|(G|0)<=0){break g}r=G&-4;j=G&3;f=(F^-1)+pa>>>0<3;I=0;while(1){i=ea+(B(G,I)<<2)|0;c=0;if(!f){while(1){e=v[i>>2];b=e&2147483647;v[i>>2]=(e|0)<0?0-b|0:b;e=v[i+4>>2];b=e&2147483647;v[i+4>>2]=(e|0)<0?0-b|0:b;e=v[i+8>>2];b=e&2147483647;v[i+8>>2]=(e|0)<0?0-b|0:b;e=v[i+12>>2];b=e&2147483647;v[i+12>>2]=(e|0)<0?0-b|0:b;i=i+16|0;c=c+4|0;if((r|0)!=(c|0)){continue}break}}c=0;if(j){while(1){e=v[i>>2];b=e&2147483647;v[i>>2]=(e|0)<0?0-b|0:b;i=i+4|0;c=c+1|0;if((j|0)!=(c|0)){continue}break}}c=1;I=I+1|0;if((_|0)!=(I|0)){continue}break}break g}if(!Z){break s}v[k+52>>2]=v[H+24>>2];v[k+48>>2]=Q;Fa(R,1,20152,k+48|0);break r}v[k+20>>2]=c;v[k+16>>2]=Q;Fa(R,1,20152,k+16|0);c=0;break g}c=0}qa=k+304|0;if(c){break f}break b}v[d+108>>2]=(b<<9)+36688;if(!nd(d,v[H+16>>2]-v[H+8>>2]|0,v[H+20>>2]-v[H+12>>2]|0)){break b}K=e+v[H+28>>2]|0;if((K|0)>=31){if(!Z){break e}v[X+16>>2]=K;Fa(R,2,18983,X+16|0);break b}fc(d);v[d+100>>2]=36656;v[d+96>>2]=35280;v[d+28>>2]=35312;Ka:{La:{Ma:{Na:{j=v[H+52>>2];if(j>>>0>1){break Na}if(!v[d+144>>2]){break La}if(j){break Na}break Ma}k=v[H+4>>2];if(j-1>>>0>=3){b=j&-4;e=0;while(1){f=s<<3;c=v[(k+(f|24)|0)+4>>2]+(v[(k+(f|16)|0)+4>>2]+(v[(k+(f|8)|0)+4>>2]+(v[(f+k|0)+4>>2]+c|0)|0)|0)|0;s=s+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}}b=j&3;if(!b){break Ma}f=0;while(1){c=v[(k+(s<<3)|0)+4>>2]+c|0;s=s+1|0;f=f+1|0;if((b|0)!=(f|0)){continue}break}}e=c+2|0;if(e>>>0>y[d+152>>2]){b=Pa(v[d+148>>2],e);if(!b){break b}v[d+148>>2]=b;b=b+c|0;t[b|0]=0;t[b+1|0]=0;v[d+152>>2]=e;j=v[H+52>>2]}T=v[d+148>>2];if(!j){break Ka}c=v[H+4>>2];s=0;b=0;while(1){f=b<<3;e=f+c|0;Ja(s+T|0,v[e>>2],v[e+4>>2]);c=v[H+4>>2];s=v[(f+c|0)+4>>2]+s|0;b=b+1|0;if(b>>>0<y[H+52>>2]){continue}break}break Ka}if((j|0)!=1){break f}T=v[v[H+4>>2]>>2]}b=v[H+60>>2];if(b){Q=v[d+116>>2];v[d+116>>2]=b}if(v[H+44>>2]){pa=S&8;O=S&1;Y=!(S&2);fa=2;while(1){k=T+aa|0;ga=v[H>>2]+B(oa,24)|0;e=v[ga>>2];da=O&(fa>>>0<2&(v[H+28>>2]-4|0)>=(K|0));Oa:{if(da){v[d+20>>2]=k;b=e+k|0;v[d+24>>2]=b;u[d+112>>1]=w[b|0]|w[b+1|0]<<8;t[b|0]=255;t[v[d+24>>2]+1|0]=255;v[d+8>>2]=0;v[d>>2]=0;v[d+16>>2]=k;break Oa}v[d+20>>2]=k;b=e+k|0;v[d+24>>2]=b;u[d+112>>1]=w[b|0]|w[b+1|0]<<8;t[b|0]=255;t[v[d+24>>2]+1|0]=255;v[d+104>>2]=d+28;v[d+16>>2]=k;v[d+12>>2]=0;b=e?w[k|0]<<16:16711680;v[d>>2]=b;n=1;e=k+1|0;f=w[k+1|0];Pa:{if(w[k|0]==255){if(f>>>0>=144){v[d+12>>2]=1;b=b|65280;break Pa}v[d+16>>2]=e;n=0;b=b+(f<<9)|0;break Pa}v[d+16>>2]=e;b=b|f<<8}v[d+8>>2]=n;v[d+4>>2]=32768;v[d>>2]=b<<7}ea=v[ga>>2];Qa:{if(!v[ga+8>>2]|(K|0)<=0){break Qa}U=Y|da;L=0;while(1){Ra:{Sa:{Ta:{switch(fa|0){case 0:if(da){b=1<<K;m=b>>>1|b;h=v[d+124>>2];o=h<<2;b=(o+v[d+120>>2]|0)+12|0;f=v[d+116>>2];i=0;e=v[d+128>>2];if(e>>>0>=4){if(!h){break Ra}l=B(h,3);j=h<<1;D=0-m|0;while(1){e=0;while(1){n=b;b=v[b>>2];Ua:{if(!b){break Ua}if(!(!(b&495)|b&2097168)){b=v[d>>2];k=v[d+8>>2];Va:{if(k){k=k-1|0;break Va}k=(b|0)==255;r=v[d+16>>2];b=w[r|0];Wa:{if(!k){v[d>>2]=b;v[d+16>>2]=r+1;break Wa}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=r+1;k=6;break Va}b=255;v[d>>2]=255}k=7}v[d+8>>2]=k;Xa:{if(!(b>>>k&1)){break Xa}r=k-1|0;Ya:{if(k){break Ya}k=(b|0)==255;r=v[d+16>>2];b=w[r|0];Za:{if(!k){v[d>>2]=b;v[d+16>>2]=r+1;break Za}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=r+1;r=6;break Ya}b=255;v[d>>2]=255}r=7}v[d+8>>2]=r;r=b>>>r&1;v[f>>2]=r?D:m;k=v[d+124>>2];b=n-4|0;v[b>>2]=v[b>>2]|32;v[n+4>>2]=v[n+4>>2]|8;v[n>>2]=v[n>>2]|r<<19|16;if(pa){break Xa}b=n+(-2-k<<2)|0;v[b+4>>2]=v[b+4>>2]|32768;v[b>>2]=v[b>>2]|r<<31|65536;b=b-4|0;v[b>>2]=v[b>>2]|131072}b=v[n>>2]|2097152;v[n>>2]=b}if(!(!(b&3960)|b&16777344)){b=v[d>>2];k=v[d+8>>2];_a:{if(k){k=k-1|0;break _a}k=(b|0)==255;r=v[d+16>>2];b=w[r|0];$a:{if(!k){v[d>>2]=b;v[d+16>>2]=r+1;break $a}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=r+1;k=6;break _a}b=255;v[d>>2]=255}k=7}v[d+8>>2]=k;if(b>>>k&1){r=f+o|0;c=k-1|0;ab:{if(k){break ab}k=(b|0)==255;c=v[d+16>>2];b=w[c|0];bb:{if(!k){v[d>>2]=b;v[d+16>>2]=c+1;break bb}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=c+1;c=6;break ab}b=255;v[d>>2]=255}c=7}v[d+8>>2]=c;k=b>>>c&1;v[r>>2]=k?D:m;b=n-4|0;v[b>>2]=v[b>>2]|256;v[n+4>>2]=v[n+4>>2]|64;b=v[n>>2]|k<<22|128}else{b=v[n>>2]}b=b|16777216;v[n>>2]=b}if(!(!(b&31680)|b&134218752)){b=v[d>>2];k=v[d+8>>2];cb:{if(k){k=k-1|0;break cb}k=(b|0)==255;r=v[d+16>>2];b=w[r|0];db:{if(!k){v[d>>2]=b;v[d+16>>2]=r+1;break db}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=r+1;k=6;break cb}b=255;v[d>>2]=255}k=7}v[d+8>>2]=k;if(b>>>k&1){r=(j<<2)+f|0;c=k-1|0;eb:{if(k){break eb}k=(b|0)==255;c=v[d+16>>2];b=w[c|0];fb:{if(!k){v[d>>2]=b;v[d+16>>2]=c+1;break fb}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=c+1;c=6;break eb}b=255;v[d>>2]=255}c=7}v[d+8>>2]=c;k=b>>>c&1;v[r>>2]=k?D:m;b=n-4|0;v[b>>2]=v[b>>2]|2048;v[n+4>>2]=v[n+4>>2]|512;b=v[n>>2]|k<<25|1024}else{b=v[n>>2]}b=b|134217728;v[n>>2]=b}if(!(b&253440)|b&1073750016){break Ua}b=v[d>>2];k=v[d+8>>2];gb:{if(k){k=k-1|0;break gb}k=(b|0)==255;r=v[d+16>>2];b=w[r|0];hb:{if(!k){v[d>>2]=b;v[d+16>>2]=r+1;break hb}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=r+1;k=6;break gb}b=255;v[d>>2]=255}k=7}v[d+8>>2]=k;if(b>>>k&1){r=(l<<2)+f|0;c=k-1|0;ib:{if(k){break ib}k=(b|0)==255;c=v[d+16>>2];b=w[c|0];jb:{if(!k){v[d>>2]=b;v[d+16>>2]=c+1;break jb}if(b>>>0<=143){v[d>>2]=b;v[d+16>>2]=c+1;c=6;break ib}b=255;v[d>>2]=255}c=7}v[d+8>>2]=c;k=r;r=b>>>c&1;v[k>>2]=r?D:m;k=v[d+124>>2];b=n-4|0;v[b>>2]=v[b>>2]|16384;v[n+4>>2]=v[n+4>>2]|4096;v[n>>2]=v[n>>2]|r<<28|8192;b=n+(k<<2)|0;v[b+4>>2]=v[b+4>>2]|4;v[b+12>>2]=v[b+12>>2]|1;v[b+8>>2]=v[b+8>>2]|r<<18|2}v[n>>2]=v[n>>2]|1073741824}f=f+4|0;b=n+4|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}b=n+12|0;f=(l<<2)+f|0;i=i+4|0;e=v[d+128>>2];if(i>>>0<(e&-4)>>>0){continue}break}}if(!h|e>>>0<=i>>>0){break Sa}q=0;r=0-m|0;n=e;while(1){kb:{if((i|0)==(n|0)){n=i;break kb}o=b-4|0;g=v[b>>2];s=0;while(1){c=B(s,3);n=g>>>c|0;if(!(n&2097168|!(n&495))){e=v[d>>2];n=v[d+8>>2];lb:{if(n){n=n-1|0;break lb}n=(e|0)!=255;k=v[d+16>>2];e=w[k|0];mb:{if(!n){if(e>>>0>=144){e=255;v[d>>2]=255;break mb}v[d>>2]=e;v[d+16>>2]=k+1;n=6;break lb}v[d>>2]=e;v[d+16>>2]=k+1}n=7}v[d+8>>2]=n;nb:{if(!(e>>>n&1)){break nb}k=(B(h,s)<<2)+f|0;j=n-1|0;ob:{if(n){break ob}n=(e|0)!=255;j=v[d+16>>2];e=w[j|0];pb:{if(!n){if(e>>>0>=144){e=255;v[d>>2]=255;break pb}v[d>>2]=e;v[d+16>>2]=j+1;j=6;break ob}v[d>>2]=e;v[d+16>>2]=j+1}j=7}v[d+8>>2]=j;n=k;k=e>>>j&1;v[n>>2]=k?r:m;n=v[d+124>>2];v[o>>2]=v[o>>2]|32<<c;v[b>>2]=v[b>>2]|(k<<19|16)<<c;v[b+4>>2]=v[b+4>>2]|8<<c;if(!(s|pa)){e=(-2-n<<2)+b|0;v[e+4>>2]=v[e+4>>2]|32768;v[e>>2]=v[e>>2]|k<<31|65536;e=e-4|0;v[e>>2]=v[e>>2]|131072}if((s|0)!=3){break nb}e=(n+2<<2)+b|0;v[e+4>>2]=v[e+4>>2]|1;v[e>>2]=v[e>>2]|k<<18|2;e=e-4|0;v[e>>2]=v[e>>2]|4}g=v[b>>2]|2097152<<c;v[b>>2]=g;e=v[d+128>>2]}n=e;s=s+1|0;if(s>>>0<e-i>>>0){continue}break}}f=f+4|0;b=b+4|0;q=q+1|0;if((h|0)!=(q|0)){continue}break}break Sa}P=0;qb:{rb:{sb:{N=v[d+124>>2];if(!((N|0)!=64|v[d+128>>2]!=64)){b=1<<K;k=b>>>1|b;n=0-k|0;e=v[d+120>>2]+268|0;p=v[d+8>>2];b=v[d+4>>2];c=v[d>>2];s=v[d+104>>2];f=v[d+116>>2];if(S&8){break sb}while(1){g=0;while(1){i=f;r=e;e=v[e>>2];if(e){tb:{if(e&2097168){break tb}f=e&495;if(!f){break tb}j=(w[f+v[d+108>>2]|0]<<2)+d|0;s=j+28|0;o=v[s>>2];f=v[o>>2];b=b-f|0;ub:{if(c>>>16>>>0<f>>>0){l=v[o+4>>2];D=j;j=b>>>0<f>>>0;v[D+28>>2]=v[o+(j?8:12)>>2];while(1){vb:{if(p){break vb}o=v[d+16>>2];b=o+1|0;D=w[o+1|0];if(w[o|0]==255){if(D>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break vb}v[d+16>>2]=b;c=(D<<9)+c|0;p=7;break vb}v[d+16>>2]=b;p=8;c=(D<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?l:!l;break ub}c=c-(f<<16)|0;if(!(b&32768)){l=v[o+4>>2];f=b>>>0<f>>>0;v[j+28>>2]=v[o+(f?12:8)>>2];while(1){wb:{if(p){break wb}o=v[d+16>>2];j=o+1|0;D=w[o+1|0];if(w[o|0]==255){if(D>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break wb}v[d+16>>2]=j;c=(D<<9)+c|0;p=7;break wb}v[d+16>>2]=j;p=8;c=(D<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!l:l;break ub}f=v[o+4>>2]}if(f){h=r-4|0;j=v[r+4>>2]>>>17&4|(v[h>>2]>>>19&1|(e>>>14&16|(e>>>16&64|e&170)));l=(w[j+38736|0]<<2)+d|0;s=l+28|0;m=v[s>>2];f=v[m>>2];b=b-f|0;o=w[j+38992|0];xb:{if(c>>>16>>>0<f>>>0){D=v[m+4>>2];j=b>>>0<f>>>0;v[l+28>>2]=v[m+(j?8:12)>>2];while(1){yb:{if(p){break yb}l=v[d+16>>2];b=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break yb}v[d+16>>2]=b;c=(m<<9)+c|0;p=7;break yb}v[d+16>>2]=b;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break xb}c=c-(f<<16)|0;if(!(b&32768)){D=v[m+4>>2];f=b>>>0<f>>>0;v[l+28>>2]=v[m+(f?12:8)>>2];while(1){zb:{if(p){break zb}l=v[d+16>>2];j=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break zb}v[d+16>>2]=j;c=(m<<9)+c|0;p=7;break zb}v[d+16>>2]=j;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break xb}f=v[m+4>>2]}j=f^o;v[i>>2]=j?n:k;v[h>>2]=v[h>>2]|32;v[r+4>>2]=v[r+4>>2]|8;f=r-268|0;v[f>>2]=v[f>>2]|131072;f=r-260|0;v[f>>2]=v[f>>2]|32768;f=r-264|0;v[f>>2]=v[f>>2]|j<<31|65536;e=j<<19|e|16}e=e|2097152}if(!(!(e&3960)|e&16777344)){o=e>>>3|0;j=(w[v[d+108>>2]+(o&495)|0]<<2)+d|0;s=j+28|0;l=v[s>>2];f=v[l>>2];b=b-f|0;Ab:{if(c>>>16>>>0<f>>>0){D=v[l+4>>2];h=j;j=b>>>0<f>>>0;v[h+28>>2]=v[l+(j?8:12)>>2];while(1){Bb:{if(p){break Bb}l=v[d+16>>2];b=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Bb}v[d+16>>2]=b;c=(h<<9)+c|0;p=7;break Bb}v[d+16>>2]=b;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Ab}c=c-(f<<16)|0;if(!(b&32768)){D=v[l+4>>2];f=b>>>0<f>>>0;v[j+28>>2]=v[l+(f?12:8)>>2];while(1){Cb:{if(p){break Cb}l=v[d+16>>2];j=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Cb}v[d+16>>2]=j;c=(h<<9)+c|0;p=7;break Cb}v[d+16>>2]=j;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Ab}f=v[l+4>>2]}if(f){h=r-4|0;j=v[r+4>>2]>>>20&4|(v[h>>2]>>>22&1|(e>>>15&16|(e>>>19&64|o&170)));l=(w[j+38736|0]<<2)+d|0;s=l+28|0;m=v[s>>2];f=v[m>>2];b=b-f|0;o=w[j+38992|0];Db:{if(c>>>16>>>0<f>>>0){D=v[m+4>>2];j=b>>>0<f>>>0;v[l+28>>2]=v[m+(j?8:12)>>2];while(1){Eb:{if(p){break Eb}l=v[d+16>>2];b=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Eb}v[d+16>>2]=b;c=(m<<9)+c|0;p=7;break Eb}v[d+16>>2]=b;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Db}c=c-(f<<16)|0;if(!(b&32768)){D=v[m+4>>2];f=b>>>0<f>>>0;v[l+28>>2]=v[m+(f?12:8)>>2];while(1){Fb:{if(p){break Fb}l=v[d+16>>2];j=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Fb}v[d+16>>2]=j;c=(m<<9)+c|0;p=7;break Fb}v[d+16>>2]=j;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Db}f=v[m+4>>2]}f=f^o;v[i+256>>2]=f?n:k;v[h>>2]=v[h>>2]|256;v[r+4>>2]=v[r+4>>2]|64;e=f<<22|e|128}e=e|16777216}if(!(!(e&31680)|e&134218752)){o=e>>>6|0;j=(w[v[d+108>>2]+(o&495)|0]<<2)+d|0;s=j+28|0;l=v[s>>2];f=v[l>>2];b=b-f|0;Gb:{if(c>>>16>>>0<f>>>0){D=v[l+4>>2];h=j;j=b>>>0<f>>>0;v[h+28>>2]=v[l+(j?8:12)>>2];while(1){Hb:{if(p){break Hb}l=v[d+16>>2];b=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Hb}v[d+16>>2]=b;c=(h<<9)+c|0;p=7;break Hb}v[d+16>>2]=b;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Gb}c=c-(f<<16)|0;if(!(b&32768)){D=v[l+4>>2];f=b>>>0<f>>>0;v[j+28>>2]=v[l+(f?12:8)>>2];while(1){Ib:{if(p){break Ib}l=v[d+16>>2];j=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Ib}v[d+16>>2]=j;c=(h<<9)+c|0;p=7;break Ib}v[d+16>>2]=j;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Gb}f=v[l+4>>2]}if(f){h=r-4|0;j=v[r+4>>2]>>>23&4|(v[h>>2]>>>25&1|(e>>>18&16|(e>>>22&64|o&170)));l=(w[j+38736|0]<<2)+d|0;s=l+28|0;m=v[s>>2];f=v[m>>2];b=b-f|0;o=w[j+38992|0];Jb:{if(c>>>16>>>0<f>>>0){D=v[m+4>>2];j=b>>>0<f>>>0;v[l+28>>2]=v[m+(j?8:12)>>2];while(1){Kb:{if(p){break Kb}l=v[d+16>>2];b=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Kb}v[d+16>>2]=b;c=(m<<9)+c|0;p=7;break Kb}v[d+16>>2]=b;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Jb}c=c-(f<<16)|0;if(!(b&32768)){D=v[m+4>>2];f=b>>>0<f>>>0;v[l+28>>2]=v[m+(f?12:8)>>2];while(1){Lb:{if(p){break Lb}l=v[d+16>>2];j=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Lb}v[d+16>>2]=j;c=(m<<9)+c|0;p=7;break Lb}v[d+16>>2]=j;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Jb}f=v[m+4>>2]}f=f^o;v[i+512>>2]=f?n:k;v[h>>2]=v[h>>2]|2048;v[r+4>>2]=v[r+4>>2]|512;e=f<<25|e|1024}e=e|134217728}if(!(!(e&253440)|e&1073750016)){o=e>>>9|0;j=(w[v[d+108>>2]+(o&495)|0]<<2)+d|0;s=j+28|0;l=v[s>>2];f=v[l>>2];b=b-f|0;Mb:{if(c>>>16>>>0<f>>>0){D=v[l+4>>2];h=j;j=b>>>0<f>>>0;v[h+28>>2]=v[l+(j?8:12)>>2];while(1){Nb:{if(p){break Nb}l=v[d+16>>2];b=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Nb}v[d+16>>2]=b;c=(h<<9)+c|0;p=7;break Nb}v[d+16>>2]=b;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Mb}c=c-(f<<16)|0;if(!(b&32768)){D=v[l+4>>2];f=b>>>0<f>>>0;v[j+28>>2]=v[l+(f?12:8)>>2];while(1){Ob:{if(p){break Ob}l=v[d+16>>2];j=l+1|0;h=w[l+1|0];if(w[l|0]==255){if(h>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Ob}v[d+16>>2]=j;c=(h<<9)+c|0;p=7;break Ob}v[d+16>>2]=j;p=8;c=(h<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Mb}f=v[l+4>>2]}if(f){h=r-4|0;j=v[r+4>>2]>>>26&4|(v[h>>2]>>>28&1|(e>>>21&16|(e>>>25&64|o&170)));l=(w[j+38736|0]<<2)+d|0;s=l+28|0;m=v[s>>2];f=v[m>>2];b=b-f|0;o=w[j+38992|0];Pb:{if(c>>>16>>>0<f>>>0){D=v[m+4>>2];j=b>>>0<f>>>0;v[l+28>>2]=v[m+(j?8:12)>>2];while(1){Qb:{if(p){break Qb}l=v[d+16>>2];b=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Qb}v[d+16>>2]=b;c=(m<<9)+c|0;p=7;break Qb}v[d+16>>2]=b;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;f=f<<1;if(f>>>0<32768){continue}break}b=f;f=j?D:!D;break Pb}c=c-(f<<16)|0;if(!(b&32768)){D=v[m+4>>2];f=b>>>0<f>>>0;v[l+28>>2]=v[m+(f?12:8)>>2];while(1){Rb:{if(p){break Rb}l=v[d+16>>2];j=l+1|0;m=w[l+1|0];if(w[l|0]==255){if(m>>>0>=144){v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8;break Rb}v[d+16>>2]=j;c=(m<<9)+c|0;p=7;break Rb}v[d+16>>2]=j;p=8;c=(m<<8)+c|0}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}f=f?!D:D;break Pb}f=v[m+4>>2]}f=f^o;v[i+768>>2]=f?n:k;v[h>>2]=v[h>>2]|16384;v[r+4>>2]=v[r+4>>2]|4096;v[r+260>>2]=v[r+260>>2]|4;v[r+268>>2]=v[r+268>>2]|1;v[r+264>>2]=v[r+264>>2]|f<<18|2;e=f<<28|e|8192}e=e|1073741824}v[r>>2]=e}e=r+4|0;f=i+4|0;g=g+1|0;if((g|0)!=64){continue}break}e=r+12|0;f=i+772|0;i=P>>>0<60;P=P+4|0;if(i){continue}break}break rb}b=1<<K;k=b>>>1|b;r=v[d+120>>2];n=(r+(N<<2)|0)+12|0;e=v[d+128>>2];p=v[d+8>>2];b=v[d+4>>2];c=v[d>>2];s=v[d+104>>2];f=v[d+116>>2];Sb:{if(S&8){Tb:{if(e>>>0<4){i=0;break Tb}if(N){i=0;r=0-k|0;M=B(N,12);m=N<<3;while(1){D=0;while(1){j=n;n=v[j>>2];if(n){Ub:{if(n&2097168){break Ub}e=n&495;if(!e){break Ub}o=(w[e+v[d+108>>2]|0]<<2)+d|0;s=o+28|0;l=v[s>>2];e=v[l>>2];b=b-e|0;Vb:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;h=v[l+4>>2];if(b&32768){break Vb}h=v[l+4>>2];e=b>>>0<e>>>0;v[o+28>>2]=v[l+(e?12:8)>>2];while(1){Wb:{if(p){break Wb}l=v[d+16>>2];o=l+1|0;q=w[l+1|0];if(w[l|0]!=255){v[d+16>>2]=o;p=8;c=(q<<8)+c|0;break Wb}if(q>>>0<=143){v[d+16>>2]=o;c=(q<<9)+c|0;p=7;break Wb}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}h=e?!h:h;break Vb}h=v[l+4>>2];A=o;o=b>>>0<e>>>0;v[A+28>>2]=v[l+(o?8:12)>>2];while(1){Xb:{if(p){break Xb}l=v[d+16>>2];b=l+1|0;q=w[l+1|0];if(w[l|0]!=255){v[d+16>>2]=b;p=8;c=(q<<8)+c|0;break Xb}if(q>>>0<=143){v[d+16>>2]=b;c=(q<<9)+c|0;p=7;break Xb}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;h=o?h:!h}if(h){A=j-4|0;o=v[j+4>>2]>>>17&4|(v[A>>2]>>>19&1|(n>>>14&16|(n>>>16&64|n&170)));h=(w[o+38736|0]<<2)+d|0;s=h+28|0;g=v[s>>2];e=v[g>>2];b=b-e|0;l=w[o+38992|0];Yb:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;o=v[g+4>>2];if(b&32768){break Yb}q=v[g+4>>2];e=b>>>0<e>>>0;v[h+28>>2]=v[g+(e?12:8)>>2];while(1){Zb:{if(p){break Zb}h=v[d+16>>2];o=h+1|0;g=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=o;p=8;c=(g<<8)+c|0;break Zb}if(g>>>0<=143){v[d+16>>2]=o;c=(g<<9)+c|0;p=7;break Zb}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}o=e?!q:q;break Yb}q=v[g+4>>2];o=b>>>0<e>>>0;v[h+28>>2]=v[g+(o?8:12)>>2];while(1){_b:{if(p){break _b}h=v[d+16>>2];b=h+1|0;g=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=b;p=8;c=(g<<8)+c|0;break _b}if(g>>>0<=143){v[d+16>>2]=b;c=(g<<9)+c|0;p=7;break _b}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;o=o?q:!q}e=o^l;v[f>>2]=e?r:k;v[A>>2]=v[A>>2]|32;v[j+4>>2]=v[j+4>>2]|8;n=e<<19|n|16}n=n|2097152}if(!(!(n&3960)|n&16777344)){l=n>>>3|0;o=(w[v[d+108>>2]+(l&495)|0]<<2)+d|0;s=o+28|0;h=v[s>>2];e=v[h>>2];b=b-e|0;$b:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;A=v[h+4>>2];if(b&32768){break $b}q=v[h+4>>2];e=b>>>0<e>>>0;v[o+28>>2]=v[h+(e?12:8)>>2];while(1){ac:{if(p){break ac}h=v[d+16>>2];o=h+1|0;A=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=o;p=8;c=(A<<8)+c|0;break ac}if(A>>>0<=143){v[d+16>>2]=o;c=(A<<9)+c|0;p=7;break ac}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}A=e?!q:q;break $b}q=v[h+4>>2];A=o;o=b>>>0<e>>>0;v[A+28>>2]=v[h+(o?8:12)>>2];while(1){bc:{if(p){break bc}h=v[d+16>>2];b=h+1|0;A=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=b;p=8;c=(A<<8)+c|0;break bc}if(A>>>0<=143){v[d+16>>2]=b;c=(A<<9)+c|0;p=7;break bc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;A=o?q:!q}if(A){g=j-4|0;o=v[j+4>>2]>>>20&4|(v[g>>2]>>>22&1|(n>>>15&16|(n>>>19&64|l&170)));q=(w[o+38736|0]<<2)+d|0;s=q+28|0;F=v[s>>2];e=v[F>>2];b=b-e|0;h=w[o+38992|0];l=(N<<2)+f|0;cc:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;o=v[F+4>>2];if(b&32768){break cc}A=v[F+4>>2];e=b>>>0<e>>>0;v[q+28>>2]=v[F+(e?12:8)>>2];while(1){dc:{if(p){break dc}q=v[d+16>>2];o=q+1|0;F=w[q+1|0];if(w[q|0]!=255){v[d+16>>2]=o;p=8;c=(F<<8)+c|0;break dc}if(F>>>0<=143){v[d+16>>2]=o;c=(F<<9)+c|0;p=7;break dc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}o=e?!A:A;break cc}A=v[F+4>>2];o=b>>>0<e>>>0;v[q+28>>2]=v[F+(o?8:12)>>2];while(1){ec:{if(p){break ec}q=v[d+16>>2];b=q+1|0;F=w[q+1|0];if(w[q|0]!=255){v[d+16>>2]=b;p=8;c=(F<<8)+c|0;break ec}if(F>>>0<=143){v[d+16>>2]=b;c=(F<<9)+c|0;p=7;break ec}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;o=o?A:!A}e=o^h;v[l>>2]=e?r:k;v[g>>2]=v[g>>2]|256;v[j+4>>2]=v[j+4>>2]|64;n=e<<22|n|128}n=n|16777216}if(!(!(n&31680)|n&134218752)){l=n>>>6|0;o=(w[v[d+108>>2]+(l&495)|0]<<2)+d|0;s=o+28|0;h=v[s>>2];e=v[h>>2];b=b-e|0;fc:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;A=v[h+4>>2];if(b&32768){break fc}q=v[h+4>>2];e=b>>>0<e>>>0;v[o+28>>2]=v[h+(e?12:8)>>2];while(1){gc:{if(p){break gc}h=v[d+16>>2];o=h+1|0;A=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=o;p=8;c=(A<<8)+c|0;break gc}if(A>>>0<=143){v[d+16>>2]=o;c=(A<<9)+c|0;p=7;break gc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}A=e?!q:q;break fc}q=v[h+4>>2];A=o;o=b>>>0<e>>>0;v[A+28>>2]=v[h+(o?8:12)>>2];while(1){hc:{if(p){break hc}h=v[d+16>>2];b=h+1|0;A=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=b;p=8;c=(A<<8)+c|0;break hc}if(A>>>0<=143){v[d+16>>2]=b;c=(A<<9)+c|0;p=7;break hc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;A=o?q:!q}if(A){g=j-4|0;o=v[j+4>>2]>>>23&4|(v[g>>2]>>>25&1|(n>>>18&16|(n>>>22&64|l&170)));q=(w[o+38736|0]<<2)+d|0;s=q+28|0;F=v[s>>2];e=v[F>>2];b=b-e|0;h=w[o+38992|0];l=f+m|0;ic:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;o=v[F+4>>2];if(b&32768){break ic}A=v[F+4>>2];e=b>>>0<e>>>0;v[q+28>>2]=v[F+(e?12:8)>>2];while(1){jc:{if(p){break jc}q=v[d+16>>2];o=q+1|0;F=w[q+1|0];if(w[q|0]!=255){v[d+16>>2]=o;p=8;c=(F<<8)+c|0;break jc}if(F>>>0<=143){v[d+16>>2]=o;c=(F<<9)+c|0;p=7;break jc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;b=b<<1;if(b>>>0<32768){continue}break}o=e?!A:A;break ic}A=v[F+4>>2];o=b>>>0<e>>>0;v[q+28>>2]=v[F+(o?8:12)>>2];while(1){kc:{if(p){break kc}q=v[d+16>>2];b=q+1|0;F=w[q+1|0];if(w[q|0]!=255){v[d+16>>2]=b;p=8;c=(F<<8)+c|0;break kc}if(F>>>0<=143){v[d+16>>2]=b;c=(F<<9)+c|0;p=7;break kc}v[d+12>>2]=v[d+12>>2]+1;c=c+65280|0;p=8}p=p-1|0;c=c<<1;e=e<<1;if(e>>>0<32768){continue}break}b=e;o=o?A:!A}e=o^h;v[l>>2]=e?r:k;v[g>>2]=v[g>>2]|2048;v[j+4>>2]=v[j+4>>2]|512;n=e<<25|n|1024}n=n|134217728}if(!(!(n&253440)|n&1073750016)){l=n>>>9|0;o=(w[v[d+108>>2]+(l&495)|0]<<2)+d|0;s=o+28|0;h=v[s>>2];e=v[h>>2];b=b-e|0;lc:{if(c>>>16>>>0>=e>>>0){c=c-(e<<16)|0;A=v[h+4>>2];if(b&32768){break lc}q=v[h+4>>2];e=b>>>0<e>>>0;v[o+28>>2]=v[h+(e?12:8)>>2];while(1){mc:{if(p){break mc}h=v[d+16>>2];o=h+1|0;A=w[h+1|0];if(w[h|0]!=255){v[d+16>>2]=o;p=8;c=(A<<8)+c|0;break mc}if(A>>>0<=1