diff --git a/ChangeLog b/ChangeLog index 09c9b67..c4934a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ +version 0.9.6: + +- Faster encoding (x265 is the default encoder and is built in bpgenc). +- Added monochrome support to x265. +- Fixed metadata handling. + version 0.9.5: - + - Added animation support. - added bpgview utility. - bpgenc: fixed support of some JPEG parameter combinations diff --git a/Makefile b/Makefile index b1a34ec..60e02f9 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,10 @@ # # Enable compilation of Javascript decoder with Emscripten #USE_EMCC=y -# Enable x265 for the encoder (you must install it before) -#USE_X265=y +# Enable x265 for the encoder +USE_X265=y # Enable the JCTVC code (best quality but slow) for the encoder -USE_JCTVC=y +#USE_JCTVC=y # Compile bpgview (SDL and SDL_image libraries needed) USE_BPGVIEW=y # Enable it to use bit depths > 12 (need more tests to validate encoder) @@ -23,8 +23,8 @@ prefix=/usr/local ################################# ifdef CONFIG_WIN32 -#CROSS_PREFIX:=x86_64-w64-mingw32- -CROSS_PREFIX=i686-w64-mingw32- +CROSS_PREFIX:=x86_64-w64-mingw32- +#CROSS_PREFIX=i686-w64-mingw32- EXE:=.exe else CROSS_PREFIX:= @@ -97,9 +97,41 @@ BPGENC_OBJS:=bpgenc.o BPGENC_LIBS:= ifdef USE_X265 -BPGENC_OBJS+=x265_glue.o -BPGENC_LIBS+= -lx265 + +X265_LIBS:=./x265.out/8bit/libx265.a ./x265.out/10bit/libx265.a ./x265.out/12bit/libx265.a +BPGENC_OBJS+=x265_glue.o $(X265_LIBS) + bpgenc.o: CFLAGS+=-DUSE_X265 +x265_glue.o: CFLAGS+=-I./x265/source -I./x265.out/8bit +x265_glue.o: $(X265_LIBS) + +ifdef CONFIG_WIN32 +CMAKE_OPTS:=-DCMAKE_TOOLCHAIN_FILE=../../x265/build/msys/toolchain-x86_64-w64-mingw32.cmake +else +CMAKE_OPTS:= +endif + +x265.out: + mkdir -p x265.out/8bit x265.out/10bit x265.out/12bit + cd x265.out/12bit && cmake ../../x265/source $(CMAKE_OPTS) -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON + cd x265.out/10bit && cmake ../../x265/source $(CMAKE_OPTS) -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN10=ON + cd x265.out/8bit && cmake ../../x265/source $(CMAKE_OPTS) -DLINKED_10BIT=ON -DLINKED_12BIT=ON -DENABLE_SHARED=OFF -DENABLE_CLI=OFF + +# use this target to manually rebuild x265 +x265_make: | x265.out + $(MAKE) -C x265.out/12bit + $(MAKE) -C x265.out/10bit + $(MAKE) -C x265.out/8bit + +x265_clean: + rm -rf x265.out + +$(X265_LIBS): x265_make + +else + +x265_clean: + endif # USE_X265 ifdef USE_JCTVC @@ -133,10 +165,9 @@ endif # USE_JCTVC ifdef CONFIG_WIN32 -LDFLAGS+=-static -BPGDEC_LIBS:=-Wl,-dy -lpng -lz -Wl,-dn -BPGENC_LIBS+=-Wl,-dy -lpng -ljpeg -lz -Wl,-dn -BPGVIEW_LIBS:=-lmingw32 -lSDLmain -Wl,-dy -lSDL_image -lSDL -Wl,-dn -mwindows +BPGDEC_LIBS:=-lpng -lz +BPGENC_LIBS+=-lpng -ljpeg -lz +BPGVIEW_LIBS:=-lmingw32 -lSDLmain -lSDL_image -lSDL -mwindows else @@ -171,10 +202,10 @@ bpgdec.js: $(LIBBPG_JS_OBJS) post.js $(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=33554432 -o $@ $(LIBBPG_JS_OBJS) bpgdec8.js: $(LIBBPG_JS8_OBJS) post.js - $(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=16777216 -o $@ $(LIBBPG_JS8_OBJS) + $(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=33554432 -o $@ $(LIBBPG_JS8_OBJS) bpgdec8a.js: $(LIBBPG_JS8A_OBJS) post.js - $(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=16777216 -o $@ $(LIBBPG_JS8A_OBJS) + $(EMCC) $(EMLDFLAGS) -s TOTAL_MEMORY=33554432 -o $@ $(LIBBPG_JS8A_OBJS) size: strip bpgdec @@ -187,7 +218,7 @@ install: bpgenc bpgdec CLEAN_DIRS=doc html libavcodec libavutil \ jctvc jctvc/TLibEncoder jctvc/TLibVideoIO jctvc/TLibCommon jctvc/libmd5 -clean: +clean: x265_clean rm -f $(PROGS) *.o *.a *.d *~ $(addsuffix /*.o, $(CLEAN_DIRS)) \ $(addsuffix /*.d, $(CLEAN_DIRS)) $(addsuffix /*~, $(CLEAN_DIRS)) \ $(addsuffix /*.a, $(CLEAN_DIRS)) diff --git a/README b/README index 06a1606..2960538 100644 --- a/README +++ b/README @@ -8,12 +8,6 @@ BPG Image library and utilities options should be OK for Linux). Type 'make' to compile and 'make install' to install the compiled binaries. -- x265 usage: for much increased compression speed (but lower - quality), you can compile and install x265 and then enable its use - in the Makefile. x265 supports by default only 8 bits per component - and does not support monochrome encoding yet (hence no alpha nor - grayscale images can be encoded with it). - - bpgview: in order to compile it you need to install the SDL and SDL_image libraries. @@ -27,24 +21,57 @@ BPG Image library and utilities - The BPG file format is specified in doc/bpg_spec.txt. -2) BPG encoder +2) Compilation and Installation Notes +------------------------------------- + +2.1) Linux +---------- + + - Edit the Makefile to change the compile options (the default + compile options should be OK). Type 'make' to compile and 'make + install' to install the compiled binaries. + + - Use 'make -j N' where N is the number of CPU cores to compile faster. + + - The following packages must be installed: SDL-devel + SDL_image-devel yasm. It is recommended to use yasm version >= 1.3.0 + to have a faster compilation. + + - Only a 64 bit target is supported because x265 needs it for bit + depths > 8. + +2.2) Windows +------------ + + - Only cross-compilation from Linux is supported. + + - The following packages need to be installed: mingw64-gcc + mingw64-libpng mingw64-libjpeg-turbo mingw64-SDL mingw64-SDL_image + yasm. It is recommended to use yasm version >= 1.3.0 to have a + faster compilation. + + - Only a 64 bit target is supported because x265 needs it for bit + depths > 8. + +3) BPG encoder -------------- The BPG command line encoder is 'bpgenc'. It takes JPEG or PNG images as input. -- Speed: by default bpgenc uses the JCTVC encoder which has a high - quality but is slow. If you compiled with x265, you can have a much - faster encoding with the '-e x265' option. With x265 you can also - select the encoding speed with the '-m' option (1 = fast, but larger - image, 9 = slower but smaller image). Warning: x265 does not support - monochrome (and alpha) yet, so you must use the JCTVC encoder for - these cases. +- Speed: by default bpgenc uses the x265. You can compile the much + slower but more efficient JCTVC encoder and select it with the '-e + jctvc' option. With x265 you can select the encoding speed with the + '-m' option (1 = fast, but larger image, 9 = slower but smaller + image). - Bit depth: the default bit depth is 8. You can increase it to 10 ('-b 10' option) to slightly increase the compression ratio. For web publishing it is generally not a good idea because the Javascript - decoder uses more memory. + decoder uses more memory. The compiled x265 encoder supports the bit + depth of 8, 10 and 12. The slower JCTVC encoder can be compiled to + support higher bit depths (up to 14) by enabling the Makefile + define: USE_JCTVC_HIGH_BIT_DEPTH. - Lossless compression is supported as a bonus thru the HEVC lossless capabilities. Use a PNG input in this case unless you know what you @@ -60,15 +87,8 @@ as input. - the JCTVC encoder gives smaller images than the x265 encoder with lossless compression. -- There is a difference of interpretation of the quantizer parameter - (-q option) between the x265 and JCTVC encoder. The default value is - optimized for the JCTVC encoder, not for x265. We will try to align - the x265 value to JCTVC in the future. - -- By default, the JCTVC encoder is limited to a precision of 12 - bits. You can enable high bit depths (up to 14) by enabling the - Makefile define: USE_JCTVC_HIGH_BIT_DEPTH. The encoder is sligthly - slower in this case. +- There is a small difference of interpretation of the quantizer + parameter (-q option) between the x265 and JCTVC encoder. - Color space and chroma format: @@ -125,11 +145,11 @@ as input. with the '-keepmetadata' option. For JPEG input, EXIF, ICCP and XMP are copied. For PNG input, ICCP is copied. -- Objective comparisons: the JCTVC encoder is tuned for PSNR only, not - for SSIM, so you should use PSNR when making objective comparison - with other formats. x265 is tuned by default for SSIM. +- Objective comparisons: x265 is tuned by default for SSIM. the JCTVC + encoder is tuned for PSNR only, not for SSIM, so you should use PSNR + when making objective comparison with other formats. -3) BPG decoder +4) BPG decoder -------------- The BPG command line decoder is bpgdec. It outputs a PNG or PPM @@ -141,7 +161,7 @@ no decoded image is output). - The '-b' option selects the bit depth (8 or 16) of the PNG output. It is independent of the internal BPG bit depth. -4) BPG viewer +5) BPG viewer ------------- The BPG image viewer uses the SDL library to display BPG images and @@ -149,7 +169,7 @@ other image formats supported by the SDL_image library. The available keys are displayed by launching bpgview without parameters. bpgview supports BPG animations. -5) BPG decoding library +6) BPG decoding library ----------------------- BPG images can be decoded in any program with the libbpg @@ -161,7 +181,7 @@ provided as a static one. Currently there is no similar library for encoding so you should invoke the bpgenc utility. -6) Javascript decoder +7) Javascript decoder --------------------- The following Javascript decoders are available, sorted by increasing size: @@ -193,7 +213,7 @@ be avoided, as with animated GIFs. asm.js gives an interesting speed boost, so we hope that more browsers will support this Javascript subset. -7) FFmpeg modifications +8) FFmpeg modifications ----------------------- - Completed support of chroma_format_idc = 0 (monochrome mode). @@ -217,16 +237,25 @@ will support this Javascript subset. - Stripped FFmpeg from all codecs except HEVC and the necessary support code. -8) Licensing ------------- +9) x265 modifications +--------------------- + +- Support of monochrome format (some part not used by BPG may be + missing). + +- Support of static build. + +10) Licensing +------------- - libbpg and bpgdec are released under the LGPL license (the FFmpeg part is under the LGPL, the BPG specific part is released under the BSD license). -- bpgenc is released under the BSD license (it includes the JCTVC code - which is released under the BSD license. The BPG specific part is - released under the BSD license). +- bpgenc is released under the GPL version 2 license. The BPG specific + code is released under the BSD license. The JCTVC code is released + under the BSD license. The x265 code is released under the GPL + version 2 license. - BPG relies on the HEVC compression technology which may be protected by patents in some countries. Most devices already include or will diff --git a/VERSION b/VERSION index b0bb878..85b7c69 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.5 +0.9.6 diff --git a/bpgenc.c b/bpgenc.c index c1ccaae..b75f30f 100644 --- a/bpgenc.c +++ b/bpgenc.c @@ -1893,10 +1893,12 @@ static int build_modified_sps(uint8_t **pout_buf, int *pout_buf_len, int vui_hrd_parameters_present_flag, bitstream_restriction_flag; sar_present = get_bits(gb, 1); - sar_idx = get_bits(gb, 8); - if (sar_idx == 255) { - skip_bits(gb, 16); /* sar_num */ - skip_bits(gb, 16); /* sar_den */ + if (sar_present) { + sar_idx = get_bits(gb, 8); + if (sar_idx == 255) { + skip_bits(gb, 16); /* sar_num */ + skip_bits(gb, 16); /* sar_den */ + } } overscan_info_present_flag = get_bits(gb, 1); @@ -2159,38 +2161,38 @@ static int build_modified_hevc(uint8_t **pout_buf, } typedef enum { -#if defined(USE_JCTVC) - HEVC_ENCODER_JCTVC, -#endif #if defined(USE_X265) HEVC_ENCODER_X265, #endif +#if defined(USE_JCTVC) + HEVC_ENCODER_JCTVC, +#endif HEVC_ENCODER_COUNT, } HEVCEncoderEnum; static char *hevc_encoder_name[HEVC_ENCODER_COUNT] = { -#if defined(USE_JCTVC) - "jctvc", -#endif #if defined(USE_X265) "x265", #endif +#if defined(USE_JCTVC) + "jctvc", +#endif }; static HEVCEncoder *hevc_encoder_tab[HEVC_ENCODER_COUNT] = { -#if defined(USE_JCTVC) - &jctvc_encoder, -#endif #if defined(USE_X265) &x265_hevc_encoder, #endif +#if defined(USE_JCTVC) + &jctvc_encoder, +#endif }; #define IMAGE_HEADER_MAGIC 0x425047fb #define DEFAULT_OUTFILENAME "out.bpg" -#define DEFAULT_QP 28 +#define DEFAULT_QP 29 #define DEFAULT_BIT_DEPTH 8 #ifdef RExt__HIGH_BIT_DEPTH_SUPPORT diff --git a/doc/bpg_spec.txt b/doc/bpg_spec.txt index bad78eb..d541212 100644 --- a/doc/bpg_spec.txt +++ b/doc/bpg_spec.txt @@ -79,9 +79,7 @@ heic_file() { picture_data_length ue7(32) if (extension_present_flag) - extension_data_length ue7(32) - - if (extension_present_flag) { + extension_data_length ue7(32) extension_data() } diff --git a/html/bpgdec.js b/html/bpgdec.js index 3bb7304..4aa1186 100644 --- a/html/bpgdec.js +++ b/html/bpgdec.js @@ -16,7 +16,7 @@ z&&(z=g[z+"ToC"],d+="var "+z.arguments+" = "+G+";",d+=z.body+";",d+=G+"="+z.retu function na(a,d,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":J[a>>0]=d;break;case "i8":J[a>>0]=d;break;case "i16":L[a>>1]=d;break;case "i32":M[a>>2]=d;break;case "i64":ha=[d>>>0,(I=d,1<=+oa(I)?0>>0:~~+ra((I-+(~~I>>>0))/4294967296)>>>0:0)];M[a>>2]=ha[0];M[a+4>>2]=ha[1];break;case "float":N[a>>2]=d;break;case "double":O[a>>3]=d;break;default:C("invalid type for setValue: "+c)}}l.setValue=na; l.getValue=function(a,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":return J[a>>0];case "i8":return J[a>>0];case "i16":return L[a>>1];case "i32":return M[a>>2];case "i64":return M[a>>2];case "float":return N[a>>2];case "double":return O[a>>3];default:C("invalid type for setValue: "+d)}return k};var sa=2,ta=4;l.ALLOC_NORMAL=0;l.ALLOC_STACK=1;l.ALLOC_STATIC=sa;l.ALLOC_DYNAMIC=3;l.ALLOC_NONE=ta; function P(a,d,c,e){var f,g;"number"===typeof a?(f=i,g=a):(f=!1,g=a.length);var j="string"===typeof d?d:k,c=c==ta?e:[va,B.d,B.Q,B.b][c===h?sa:c](Math.max(g,j?1:d.length));if(f){e=c;y(0==(c&3));for(a=c+(g&-4);e>2]=0;for(a=c+g;e>0]=0;return c}if("i8"===j)return a.subarray||a.slice?Q.set(a,c):Q.set(new Uint8Array(a),c),c;for(var e=0,m,p;eS?2*S:S+16777216;S!==F&&(l.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),F=S); +l.allocate=P;function wa(){var a=Error();if(!a.stack){try{b(Error(0))}catch(d){a=d}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}l.stackTrace=function(){return wa()};for(var J,Q,L,xa,M,ya,N,O,R=0,D=0,za=0,A=0,Aa=0,Ba=0,E=0,Ca=l.TOTAL_STACK||5242880,F=l.TOTAL_MEMORY||33554432,S=65536;SS?2*S:S+16777216;S!==F&&(l.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),F=S); y("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var T=new ArrayBuffer(F);J=new Int8Array(T);L=new Int16Array(T);M=new Int32Array(T);Q=new Uint8Array(T);xa=new Uint16Array(T);ya=new Uint32Array(T);N=new Float32Array(T);O=new Float64Array(T);M[0]=255;y(255===Q[0]&&0===Q[3],"Typed arrays 2 must be run on a little-endian system");l.HEAP=h;l.buffer=T;l.HEAP8=J; l.HEAP16=L;l.HEAP32=M;l.HEAPU8=Q;l.HEAPU16=xa;l.HEAPU32=ya;l.HEAPF32=N;l.HEAPF64=O;function U(a){for(;0>0]=a[c],c+=1}l.writeStringToMemory=ma;function la(a,d){for(var c=0;c>0]=a[c]}l.writeArrayToMemory=la; @@ -63,11 +63,11 @@ _abort:function(){l.abort()},_emscripten_memcpy_big:function(a,d,c){Q.set(Q.suba var $=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=+env.NaN,t=+env.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=env.abort;var ba=env.assert;var ca=env.min;var da=env.invoke_iiii;var ea=env.invoke_viiiiiiiiii;var fa=env.invoke_viiiiiii;var ga=env.invoke_viiiiiiiiiiiii;var ha=env.invoke_vi;var ia=env.invoke_vii;var ja=env.invoke_iiiiiii;var ka=env.invoke_ii;var la=env.invoke_viii;var ma=env.invoke_iiiii;var na=env.invoke_viiiiii;var oa=env.invoke_iii;var pa=env.invoke_iiiiii;var qa=env.invoke_viiii;var ra=env._sbrk;var sa=env._lrint;var ta=env._abort;var ua=env._emscripten_memcpy_big;var va=env._rint;var wa=0.0; // EMSCRIPTEN_START_FUNCS -function La(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Ma(){return i|0}function Na(a){a=a|0;i=a}function Oa(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Pa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Qa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ra(a){a=a|0;D=a}function Sa(){return D|0}function Ta(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}fe(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function Ua(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Va(b);f=b+1449|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)Wa(b);if(a[b+1448>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){Wa(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}fe(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Xa(c[b+136>>2]|0);else Va(b);Wa(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;Ya((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Xa(c[d>>2]|0);else Va(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Wa(b);i=e;return}else{fe(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function Va(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;ad(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){ad(d,h);f=c[g>>2]|0}Yc((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function Wa(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+1440>>2]|0;e=2-f|0;e=(a[b+2060>>0]|0)==0|(f|0)==2?e:e^3;f=b+2112|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function Xa(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Yc(d,e,a);i=b;return}function Ya(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}yb(a);g=0;i=b;return g|0}function Za(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a)|0;i=b;return a|0}function _a(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[2880+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4032>>0]|0;e=h&1;h=c[j>>2]|0;g=d[2880+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[2880+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function $a(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function ab(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){yb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function bb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function db(a){a=a|0;var b=0;b=i;a=ab((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function eb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function fb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function gb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+5|0)|0;i=b;return a|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(_a(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(ab((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function jb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+176|0)|0;i=b;return a|0}function kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(_a(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function lb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+4336>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+4336>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}function mb(a,b){a=a|0;b=b|0;var d=0;d=i;b=c[a+136>>2]|0;b=(_a(b+224|0,b+13|0)|0)==0;i=d;return(b?3:0)|0}function nb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function ob(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+17|0)|0;i=b;return a|0}function pb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function qb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function rb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)<<1;d=ab((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function sb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function tb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function ub(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(_a(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function wb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function xb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Da=0,Ea=0,Ga=0,Ha=0,Ia=0,Ja=0,La=0,Ma=0,Na=0;o=i;i=i+96|0;v=o+24|0;u=o+8|0;s=o;t=f+136|0;p=c[t>>2]|0;q=c[f+160>>2]|0;m=c[q+(l<<2)+32>>2]|0;n=f+200|0;T=c[n>>2]|0;h=$(h>>c[T+(l<<2)+13180>>2],m)|0;g=(c[q+(l<<2)>>2]|0)+(h+(g>>c[T+(l<<2)+13168>>2]<>2]))|0;T=(l|0)!=0;h=p+320|0;q=T?p+11680|0:h;w=v+0|0;r=w+64|0;do{a[w>>0]=0;w=w+1|0}while((w|0)<(r|0));S=1<>2]|0;r=S<>0]|0)){A=a[p+272>>0]|0;C=f+204|0;Ma=c[C>>2]|0;if((a[Ma+21>>0]|0)!=0?(d[Ma+1629>>0]|0)>=(j|0):0){F=c[t>>2]|0;F=_a(F+224|0,F+(T&1|46)|0)|0}else F=0;if(y){B=c[n>>2]|0;G=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+2072>>2]|0)+(c[B+28>>2]|0)+(a[p+302>>0]|0)|0;else B=(c[f+2076>>2]|0)+(c[B+32>>2]|0)+(a[p+303>>0]|0)|0;E=B+A|0;G=c[n>>2]|0;A=c[G+13192>>2]|0;B=0-A|0;if((E|0)>=(B|0))B=(E|0)>57?57:E;do if((c[G+4>>2]|0)==1){if((B|0)>=30)if((B|0)>43){B=B+ -6|0;break}else{B=c[176+(B+ -30<<2)>>2]|0;break}}else B=(B|0)>51?51:B;while(0);B=A+B|0}A=(c[G+52>>2]|0)+j|0;E=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[G+634>>0]|0)!=0?!((F|0)!=0&(j|0)>2):0){H=c[C>>2]|0;H=(a[H+68>>0]|0)==0?G+635|0:H+69|0;G=((c[p+31244>>2]|0)!=1?3:0)+l|0;C=H+((j+ -2|0)*384|0)+(G<<6)|0;if((j|0)>3)ia=a[H+((j+ -4|0)*6|0)+G+1536>>0]|0;else ia=16}else{ia=16;C=0}}else{A=0;ia=0;B=0;C=0;E=0;F=0}J=(j<<1)+ -1|0;if(y){G=(j*3|0)+ -6+(j+ -1>>2)|0;I=j+1>>2}else{G=15;I=j+ -2|0}if((J|0)>0){K=G+52|0;H=0;while(1){Ma=c[t>>2]|0;L=H+1|0;if(!(_a(Ma+224|0,Ma+(K+(H>>I))|0)|0))break;if((L|0)<(J|0))H=L;else{H=L;break}}L=G+70|0;G=0;while(1){Ma=c[t>>2]|0;K=G+1|0;if(!(_a(Ma+224|0,Ma+(L+(G>>I))|0)|0))break;if((K|0)<(J|0))G=K;else{G=K;break}}if((H|0)>3){I=(H>>1)+ -1|0;K=ab((c[t>>2]|0)+224|0)|0;if((I|0)>1){J=1;do{K=ab((c[t>>2]|0)+224|0)|0|K<<1;J=J+1|0}while((J|0)!=(I|0))}H=K+((H&1|2)<3){J=(G>>1)+ -1|0;K=ab((c[t>>2]|0)+224|0)|0;if((J|0)>1){I=1;do{K=ab((c[t>>2]|0)+224|0)|0|K<<1;I=I+1|0}while((I|0)!=(J|0))}I=H;L=K+((G&1|2)<>2;N=L>>2;if((k|0)==1){G=I;H=L;P=d[536+(L<<3)+I>>0]|0;I=488;L=504;J=496;K=520;break}else if(k){J=I;K=L;x=49;break}P=d[(I&3)+(392+((L&3)<<2))>>0]|0;if((S|0)==8){G=I;H=L;P=(d[416+(N<<1)+M>>0]<<4)+P|0;I=496;L=8;J=488;K=24;break}else if((S|0)==16){G=I;H=L;P=(d[392+(N<<2)+M>>0]<<4)+P|0;I=8;L=8;J=24;K=24;break}else if((S|0)==4){G=I;H=L;I=408;L=8;J=408;K=24;break}else{G=I;H=L;P=(d[424+(N<<3)+M>>0]<<4)+P|0;I=40;L=8;J=104;K=24;break}}else{J=L;K=I;M=L>>2;N=I>>2;x=49}while(0);if((x|0)==49){G=J;H=K;P=d[536+(J<<3)+K>>0]|0;I=496;L=520;J=488;K=504}O=P+1|0;Q=P>>4;if((Q|0)>-1){P=(1<0;R=l?90:88;S=S+ -1>>2;W=T?27:0;U=(j|0)==2;T=W+3|0;V=(j|0)==3;Z=(k|0)==0?9:15;_=y?0:27;da=(F|0)==0;aa=y?42:43;fa=y?40:41;ba=y?2:0;ea=p+31244|0;ca=w&-17;ga=f+204|0;Y=((B|0)<0)<<31>>31;X=((A|0)<0)<<31>>31;ha=(F|0)!=0&(j|0)>2;k=(j|0)<4;ia=ia&255;ma=(y&1)<<1;ja=ma|1;ra=1;ka=Q;oa=0;xa=16;while(1){na=ka<<4;wa=a[I+ka>>0]|0;ta=wa&255;va=a[J+ka>>0]|0;ua=va&255;la=(ka|0)>0;if((ka|0)<(Q|0)&la){if((ta|0)<(P|0))pa=d[v+(ta+1<<3)+ua>>0]|0;else pa=0;if((ua|0)<(P|0))pa=(d[ua+1+(v+(ta<<3))>>0]|0)+pa|0;ya=c[t>>2]|0;ya=(_a(ya+224|0,ya+(((pa|0)>1?1:pa)+R)|0)|0)&255;a[v+(ta<<3)+ua>>0]=ya;qa=1}else{if(!((ta|0)==(M|0)&(ua|0)==(N|0)))if(!(wa<<24>>24))ya=va<<24>>24==0&1;else ya=0;else ya=1;a[v+(ta<<3)+ua>>0]=ya;qa=0}na=O-na|0;pa=(ka|0)==(Q|0);if(pa){a[u>>0]=na+255;sa=na+ -2|0;na=1}else{sa=15;na=0}if((ta|0)<(S|0))za=(a[v+(ta+1<<3)+ua>>0]|0)!=0&1;else za=0;if((ua|0)<(S|0))za=((a[ua+1+(v+(ta<<3))>>0]|0)!=0&1)<<1|za;do if(ya<<24>>24!=0&(sa|0)>-1){if(!(c[(c[n>>2]|0)+13100>>2]|0))if(U){wa=600;va=W}else x=73;else if(da){ya=(a[z>>0]|0)!=0;if(ya|U){wa=ya?664:600;va=ya?fa:W}else x=73}else{wa=664;va=fa}do if((x|0)==73){x=0;ya=(za<<4)+616|0;if(!y){wa=ya;va=W+(V?9:12)|0;break}va=(va|wa)<<24>>24==0?W:T;if(V){wa=ya;va=va+Z|0;break}else{wa=ya;va=va+21|0;break}}while(0);if((sa|0)>0){ya=va+92|0;do{Ma=c[t>>2]|0;if(_a(Ma+224|0,Ma+(ya+(d[wa+((d[K+sa>>0]<<2)+(d[L+sa>>0]|0))>>0]|0))|0)|0){a[u+(na&255)>>0]=sa;qa=0;na=na+1<<24>>24}sa=sa+ -1|0}while((sa|0)>0)}if(qa){a[u+(na&255)>>0]=0;qa=na+1<<24>>24;break}if(c[(c[n>>2]|0)+13100>>2]|0)if(da?(a[z>>0]|0)==0:0)x=87;else qa=aa;else x=87;if((x|0)==87){x=0;qa=(ka|0)==0?_:va+2|0}Ma=c[t>>2]|0;if((_a(Ma+224|0,Ma+(qa+92)|0)|0)==1){a[u+(na&255)>>0]=0;qa=na+1<<24>>24}else qa=na}else qa=na;while(0);na=qa&255;a:do if(qa<<24>>24){qa=la?ba:0;if(!(c[(c[n>>2]|0)+13116>>2]|0))Ea=0;else{if(da?(a[z>>0]|0)==0:0)oa=ma;else oa=ja;Ea=(d[p+oa+199>>0]|0)>>>2}sa=qa|(ra|0)==0&(pa^1)&1;Ba=a[u>>0]|0;va=Ba&255;qa=na>>>0>8?8:na;if(!qa){pa=-1;ra=1}else{ya=sa<<2;pa=-1;ra=1;wa=0;do{Ma=ra+ya|0;La=c[t>>2]|0;Ma=(_a(La+224|0,La+((l?Ma+16|0:Ma)+136)|0)|0)&255;a[s+wa>>0]=Ma;if(!(Ma<<24>>24))ra=((ra+ -1|0)>>>0<2&1)+ra|0;else{pa=(pa|0)==-1?wa:pa;ra=0}wa=wa+1|0}while((wa|0)<(qa|0))}wa=na+ -1|0;qa=a[u+wa>>0]|0;ya=qa&255;do if(!(a[z>>0]|0)){if((c[ea>>2]|0)==1?!((c[(c[n>>2]|0)+13104>>2]|0)==0|da|(ca|0)!=10):0){va=0;break}va=(va-ya|0)>3&1}else va=0;while(0);if((pa|0)!=-1){La=c[t>>2]|0;La=_a(La+224|0,La+((l?sa|4:sa)|160)|0)|0;Ma=s+pa|0;a[Ma>>0]=(d[Ma>>0]|0)+La}sa=(va|0)==0;if((a[(c[ga>>2]|0)+4>>0]|0)==0|sa){wa=0;va=0;do{va=ab((c[t>>2]|0)+224|0)|0|va<<1;wa=wa+1|0}while((wa|0)<(na|0));za=va<<16-na}else{va=wa&255;if(!((wa&255)<<24>>24))ya=0;else{wa=0;ya=0;do{ya=ab((c[t>>2]|0)+224|0)|0|ya<<1;wa=wa+1|0}while((wa|0)<(va|0))}za=ya<<17-na}ta=ta<<2;va=ua<<2;ua=p+oa+199|0;wa=0;Ga=0;Aa=xa;Da=0;while(1){xa=Ba&255;ya=(d[L+xa>>0]|0)+ta|0;xa=(d[K+xa>>0]|0)+va|0;b:do if((wa|0)<8){Ha=(d[s+wa>>0]|0)+1|0;Ma=(wa|0)==(pa|0);if((Ha|0)==((Ma?3:2)|0)&0==((Ma?0:0)|0))Ia=0;else{Ia=0;break}while(1){Ja=Ia+1|0;if(!(ab((c[t>>2]|0)+224|0)|0)){x=120;break}if((Ja|0)<31)Ia=Ja;else{x=124;break}}do if((x|0)==120){x=0;if((Ia|0)>=3){Ja=Ia;x=124;break}if((Ea|0)>0){Ja=0;La=0;do{La=ab((c[t>>2]|0)+224|0)|0|La<<1;Ja=Ja+1|0}while((Ja|0)!=(Ea|0))}else La=0;Ja=La+(Ia<0){La=Ea+ -3+Ja|0;Ja=0;Ma=0;do{Ma=ab((c[t>>2]|0)+224|0)|0|Ma<<1;Ja=Ja+1|0}while((Ja|0)!=(La|0))}else Ma=0;Ja=Ma+((1<>31|0,Ha|0,0)|0;Ia=D;La=3<>31;Ma=c[(c[n>>2]|0)+13116>>2]|0;do if((Ia|0)>(Na|0)|(Ia|0)==(Na|0)&Ha>>>0>La>>>0){La=Ea+1|0;if(Ma){Ea=La;break}Ea=(Ea|0)>3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ga|0)==0))break;Ga=a[ua>>0]|0;La=(Ga&255)>>>2;if((Ja|0)>=(3<>0]=Ga+1<<24>>24;Ga=1;break}if((Ja<<1|0)>=(1<>24==0){Ga=1;break}a[ua>>0]=Ga+ -1<<24>>24;Ga=1}else{Ha=0;while(1){Ia=Ha+1|0;if(!(ab((c[t>>2]|0)+224|0)|0)){x=138;break}if((Ia|0)<31)Ha=Ia;else{x=142;break}}do if((x|0)==138){x=0;if((Ha|0)>=3){Ia=Ha;x=142;break}if((Ea|0)>0){Ia=0;Ja=0;do{Ja=ab((c[t>>2]|0)+224|0)|0|Ja<<1;Ia=Ia+1|0}while((Ia|0)!=(Ea|0))}else Ja=0;Ja=Ja+(Ha<0){Ja=Ea+ -3+Ia|0;Ia=0;La=0;do{La=ab((c[t>>2]|0)+224|0)|0|La<<1;Ia=Ia+1|0}while((Ia|0)!=(Ja|0))}else La=0;Ja=La+((1<>31;Ma=c[(c[n>>2]|0)+13116>>2]|0;do if((Ja|0)>=(3<3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ga|0)==0))break;La=a[ua>>0]|0;Ga=(La&255)>>>2;if((Ja|0)>=(3<>0]=La+1<<24>>24;Ga=1;break}if((Ja<<1|0)>=(1<>24==0){Ga=1;break}a[ua>>0]=La+ -1<<24>>24;Ga=1}while(0);do if(!((a[(c[ga>>2]|0)+4>>0]|0)==0|sa)){Da=ae(Ha|0,Ia|0,Da|0,0)|0;if(Ba<<24>>24!=qa<<24>>24)break;Na=(Da&1|0)==0;Ma=$d(0,0,Ha|0,Ia|0)|0;Ha=Na?Ha:Ma;Ia=Na?Ia:D}while(0);Na=(za&32768|0)==0;Ba=$d(0,0,Ha|0,Ia|0)|0;Ba=Na?Ha:Ba;Ha=Na?Ia:D;za=za<<1&131070;Ia=Ba&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[n>>2]|0)+634>>0]|0)==0|ha)){if(!((xa|ya|0)!=0|k)){Aa=ia;break}if((j|0)==3)Aa=(xa<<3)+ya|0;else if((j|0)==4)Aa=(xa>>>1<<3)+(ya>>>1)|0;else if((j|0)==5)Aa=(xa>>>2<<3)+(ya>>>2)|0;else Aa=(xa<<2)+ya|0;Aa=d[C+Aa>>0]|0}while(0);Ba=ke(Ba|0,Ha|0,B|0,Y|0)|0;Ba=ke(Ba|0,D|0,Aa|0,((Aa|0)<0)<<31>>31|0)|0;Ba=ae(Ba|0,D|0,A|0,X|0)|0;Ba=_d(Ba|0,D|0,E|0)|0;Ha=D;if((Ha|0)<0){Ia=(Ba&-32768|0)==-32768&(Ha&268435455|0)==268435455?Ba&65535:-32768;break}else{Ia=Ha>>>0>0|(Ha|0)==0&Ba>>>0>32767?32767:Ba&65535;break}}while(0);b[q+((xa<>1]=Ia;wa=wa+1|0;if((wa|0)>=(na|0)){xa=Aa;break a}Ba=a[u+wa>>0]|0}}while(0);if(la)ka=ka+ -1|0;else break}}do if(a[z>>0]|0){if((c[(c[n>>2]|0)+13104>>2]|0)!=0?(w&-17|0)==10:0)Fa[c[f+2632>>2]&7](q,j&65535,(w|0)==26&1)}else{if(F){s=c[n>>2]|0;if((c[s+13096>>2]|0)!=0&(j|0)==2?(c[p+31244>>2]|0)==1:0){t=0;do{La=q+(15-t<<1)|0;Ma=b[La>>1]|0;Na=q+(t<<1)|0;b[La>>1]=b[Na>>1]|0;b[Na>>1]=Ma;t=t+1|0}while((t|0)!=8)}t=j&65535;Fa[c[f+2628>>2]&7](q,t,c[s+52>>2]|0);if(!(c[(c[n>>2]|0)+13104>>2]|0))break;if((c[p+31244>>2]|0)!=1)break;if((w&-17|0)!=10)break;Fa[c[f+2632>>2]&7](q,t,(w|0)==26&1);break}if(y&(c[p+31244>>2]|0)==1&(j|0)==2){Ca[c[f+2636>>2]&7](q,c[(c[n>>2]|0)+52>>2]|0);break}s=(G|0)>(H|0)?G:H;if(!s){Ca[c[f+(j+ -2<<2)+2656>>2]&7](q,c[(c[n>>2]|0)+52>>2]|0);break}t=H+4+G|0;do if((s|0)>=4){if((s|0)<8){t=(t|0)<8?t:8;break}if((s|0)<12)t=(t|0)<24?t:24}else t=(t|0)<4?t:4;while(0);Fa[c[f+(j+ -2<<2)+2640>>2]&7](q,t,c[(c[n>>2]|0)+52>>2]|0)}while(0);if(!(a[p+304>>0]|0)){Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}if((r|0)<=0){Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}p=c[p+284>>2]|0;s=0;do{Na=q+(s<<1)|0;b[Na>>1]=(($(b[h+(s<<1)>>1]|0,p)|0)>>>3)+(e[Na>>1]|0);s=s+1|0}while((s|0)!=(r|0));Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}function yb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+2112>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+4316>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+4316>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Ab(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;j=c[b+136>>2]|0;k=b+200|0;do if((e|0)>0&(e&7|0)==0){if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&8|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;h=1<0){l=b+2596|0;m=b+4320|0;n=0;do{o=n+d+($(c[l>>2]|0,e)|0)>>2;a[(c[m>>2]|0)+o>>0]=2;n=n+4|0}while((n|0)<(h|0))}}while(0);if(!((d|0)>0&(d&7|0)==0)){i=g;return}if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&2|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}h=1<>2]|0,k+e|0)|0)+d>>2;a[(c[b>>2]|0)+o>>0]=2;k=k+4|0}while((k|0)<(h|0));i=g;return}function Bb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0;j=i;i=i+32|0;o=j+8|0;x=j;n=j+18|0;s=j+16|0;l=e+200|0;K=c[l>>2]|0;v=c[K+13120>>2]|0;k=(v-h|0)<=(f|0);b[n>>1]=0;b[s>>1]=0;w=c[K+13080>>2]|0;u=1<>w,c[K+13128>>2]|0)|0)+(f>>w)|0;t=c[e+2508>>2]|0;m=c[t+(w<<3)+4>>2]|0;y=c[t+(w<<3)>>2]|0;if((c[K+68>>2]|0)!=0?(a[K+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;r=c[K+52>>2]|0;q=(f|0)!=0;if(q){w=w+ -1|0;z=c[t+(w<<3)>>2]|0;w=c[t+(w<<3)+4>>2]|0}else{z=0;w=0}t=u+f|0;t=(t|0)>(v|0)?v:t;u=u+g|0;A=c[K+13124>>2]|0;u=(u|0)>(A|0)?A:u;A=(t|0)==(v|0)?t:t+ -8|0;v=(u|0)>(g|0);if(v){K=q?f:8;N=(K|0)<(t|0);Q=q?f+ -8|0:0;F=e+2596|0;P=e+4320|0;I=e+4316|0;C=x+4|0;D=e+160|0;E=n+1|0;R=s+1|0;L=e+4300|0;M=e+4284|0;J=e+4324|0;G=e+4304|0;H=e+4288|0;B=(Q|0)>=(A|0);U=y;T=m;O=g;do{if(N){W=O+4|0;X=T+ -2&-2;V=K;do{_=c[F>>2]|0;da=($(_,O)|0)+V>>2;aa=c[J>>2]|0;da=a[aa+da>>0]|0;ca=da&255;_=a[aa+(($(_,W)|0)+V>>2)>>0]|0;aa=_&255;da=da<<24>>24!=0;_=_<<24>>24==0;do if(!(_&(da^1))){S=V+ -1|0;Y=c[l>>2]|0;ba=c[Y+13064>>2]|0;Z=$(O>>ba,c[Y+13140>>2]|0)|0;ea=c[I>>2]|0;ba=(a[ea+(Z+(S>>ba))>>0]|0)+1+(a[ea+(Z+(V>>ba))>>0]|0)>>1;Z=ba+U|0;if((Z|0)<0)Z=0;else Z=(Z|0)>51?51:Z;Z=d[1280+Z>>0]|0;if(da){ca=(ca<<1)+X+ba|0;if((ca|0)<0)ca=0;else ca=(ca|0)>53?53:ca;ca=d[1336+ca>>0]|0}else ca=0;c[x>>2]=ca;if(_)_=0;else{_=(aa<<1)+X+ba|0;if((_|0)<0)_=0;else _=(_|0)>53?53:_;_=d[1336+_>>0]|0}c[C>>2]=_;da=c[D>>2]|0;_=c[da+32>>2]|0;ea=$(_,O)|0;Y=(c[da>>2]|0)+((V<>2])+ea)|0;if(p){a[n>>0]=Gb(e,S,O)|0;a[E>>0]=Gb(e,S,W)|0;a[s>>0]=Gb(e,V,O)|0;a[R>>0]=Gb(e,V,W)|0;za[c[G>>2]&7](Y,_,Z,x,n,s,r);break}else{za[c[H>>2]&7](Y,_,Z,x,n,s,r);break}}while(0);V=V+8|0}while((V|0)<(t|0))}if(!((O|0)==0|B)){S=O+ -1|0;W=T;T=Q;do{Z=$(c[F>>2]|0,O)|0;_=c[P>>2]|0;ba=a[_+(Z+T>>2)>>0]|0;ca=ba&255;V=T+4|0;Z=a[_+(Z+V>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){X=c[l>>2]|0;W=c[X+13064>>2]|0;aa=T>>W;U=c[X+13140>>2]|0;ea=($(S>>W,U)|0)+aa|0;Y=c[I>>2]|0;aa=(a[Y+ea>>0]|0)+1+(a[Y+(($(O>>W,U)|0)+aa)>>0]|0)>>1;U=(T|0)>=(f|0);W=U?m:w;U=U?y:z;Y=aa+U|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+(W+ -2&-2)+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[x>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+(W+ -2&-2)+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[C>>2]=Z;da=c[D>>2]|0;Z=c[da+32>>2]|0;ea=$(Z,O)|0;X=(c[da>>2]|0)+((T<>2])+ea)|0;if(p){a[n>>0]=Gb(e,T,S)|0;a[E>>0]=Gb(e,V,S)|0;a[s>>0]=Gb(e,T,O)|0;a[R>>0]=Gb(e,V,O)|0;za[c[L>>2]&7](X,Z,Y,x,n,s,r);break}else{za[c[M>>2]&7](X,Z,Y,x,n,s,r);break}}while(0);T=T+8|0}while((T|0)<(A|0));T=W}O=O+8|0}while((O|0)<(u|0));K=c[l>>2]|0}else T=m;if(c[K+4>>2]|0){D=q?w:m;G=e+2596|0;F=e+4320|0;w=e+4316|0;y=o+4|0;x=e+160|0;C=n+1|0;B=s+1|0;E=e+4308|0;H=e+4292|0;I=e+4324|0;A=e+4312|0;z=e+4296|0;J=1;do{P=1<>2];Q=1<>2];if(v){O=P<<3;M=q?f:O;L=(M|0)<(t|0);K=Q<<3;N=q?f-O|0:0;P=P<<2;Q=Q<<2;R=g;do{if(L){S=R+Q|0;U=M;do{X=c[G>>2]|0;Z=($(X,R)|0)+U>>2;ea=c[I>>2]|0;Z=(a[ea+Z>>0]|0)==2;X=(a[ea+(($(X,S)|0)+U>>2)>>0]|0)==2;do if(Z|X){V=U+ -1|0;W=c[l>>2]|0;ea=c[W+13064>>2]|0;_=V>>ea;Y=c[W+13140>>2]|0;ba=$(R>>ea,Y)|0;aa=c[w>>2]|0;ca=U>>ea;Y=$(S>>ea,Y)|0;Y=(a[aa+(Y+_)>>0]|0)+1+(a[aa+(Y+ca)>>0]|0)>>1;if(Z)Z=Hb(e,(a[aa+(ba+ca)>>0]|0)+1+(a[aa+(ba+_)>>0]|0)>>1,J,T)|0;else Z=0;c[o>>2]=Z;if(X)X=Hb(e,Y,J,T)|0;else X=0;c[y>>2]=X;da=c[x>>2]|0;X=c[da+(J<<2)+32>>2]|0;ea=$(X,R>>c[W+(J<<2)+13180>>2])|0;W=(c[da+(J<<2)>>2]|0)+((U>>c[W+(J<<2)+13168>>2]<>2])+ea)|0;if(p){a[n>>0]=Gb(e,V,R)|0;a[C>>0]=Gb(e,V,S)|0;a[s>>0]=Gb(e,U,R)|0;a[B>>0]=Gb(e,U,S)|0;Ha[c[A>>2]&3](W,X,o,n,s,r);break}else{Ha[c[z>>2]&3](W,X,o,n,s,r);break}}while(0);U=U+O|0}while((U|0)<(t|0))}if(R){V=t-((t|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:O)|0;if((N|0)<(V|0)){U=R+ -1|0;T=N;do{X=$(c[G>>2]|0,R)|0;ea=c[F>>2]|0;S=T+P|0;Y=(a[ea+(X+T>>2)>>0]|0)==2;X=(a[ea+(X+S>>2)>>0]|0)==2;do if(Y|X){if(Y){ea=c[l>>2]|0;da=c[ea+13064>>2]|0;Z=T>>da;ea=c[ea+13140>>2]|0;ba=($(U>>da,ea)|0)+Z|0;ca=c[w>>2]|0;Z=(a[ca+ba>>0]|0)+1+(a[ca+(($(R>>da,ea)|0)+Z)>>0]|0)>>1}else Z=0;if(X){ea=c[l>>2]|0;da=c[ea+13064>>2]|0;W=S>>da;ea=c[ea+13140>>2]|0;ba=($(U>>da,ea)|0)+W|0;ca=c[w>>2]|0;W=(a[ca+ba>>0]|0)+1+(a[ca+(($(R>>da,ea)|0)+W)>>0]|0)>>1}else W=0;if(Y)Y=Hb(e,Z,J,D)|0;else Y=0;c[o>>2]=Y;if(X)W=Hb(e,W,J,m)|0;else W=0;c[y>>2]=W;ea=c[l>>2]|0;da=c[x>>2]|0;X=c[da+(J<<2)+32>>2]|0;W=$(X,R>>c[ea+13184>>2])|0;W=(c[da+(J<<2)>>2]|0)+((T>>c[ea+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Gb(e,T,U)|0;a[C>>0]=Gb(e,S,U)|0;a[s>>0]=Gb(e,T,R)|0;a[B>>0]=Gb(e,S,R)|0;Ha[c[E>>2]&3](W,X,o,n,s,r);break}else{Ha[c[H>>2]&3](W,X,o,n,s,r);break}}while(0);T=T+O|0}while((T|0)<(V|0));T=D}else T=D}R=R+K|0}while((R|0)<(u|0))}J=J+1|0;K=c[l>>2]|0}while((J|0)!=3)}if(!(a[K+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[K+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Cb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Cb(e,f-h|0,g);k=k^1;!(l|k)?(Cb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Cb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Cb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;h=i;i=i+48|0;l=h+24|0;r=h+42|0;s=h+40|0;p=h+16|0;k=h+8|0;t=h;o=e+200|0;S=c[o>>2]|0;y=c[S+13080>>2]|0;j=f>>y;y=g>>y;G=S+13128|0;n=($(y,c[G>>2]|0)|0)+j|0;M=c[e+204>>2]|0;L=M+1668|0;N=c[(c[L>>2]|0)+(n<<2)>>2]|0;A=e+2504|0;m=c[A>>2]|0;q=m+(n*148|0)|0;b[r>>1]=0;b[s>>1]=0;c[p>>2]=0;F=($(c[G>>2]|0,y)|0)+j|0;F=a[(c[e+4352>>2]|0)+F>>0]|0;if((a[M+42>>0]|0)!=0?(a[M+53>>0]|0)==0:0){R=1;O=1}else{R=F<<24>>24==0&1;O=0}D=(j|0)==0;c[l>>2]=D&1;I=(y|0)==0;u=l+4|0;c[u>>2]=I&1;H=(j|0)==((c[G>>2]|0)+ -1|0);z=l+8|0;c[z>>2]=H&1;E=(y|0)==((c[S+13132>>2]|0)+ -1|0);x=l+12|0;c[x>>2]=E&1;if(R<<24>>24){if(D)J=0;else{if(O){J=c[M+1676>>2]|0;J=(c[J+(N<<2)>>2]|0)!=(c[J+(c[(c[L>>2]|0)+(n+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(F<<24>>24==0?(pa=$(c[G>>2]|0,y)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+j<<2)>>2]|0)!=(c[oa+(j+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[r>>0]=K}if(H)K=0;else{if(O){K=c[M+1676>>2]|0;K=(c[K+(N<<2)>>2]|0)!=(c[K+(c[(c[L>>2]|0)+(n+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(F<<24>>24==0?(pa=$(c[G>>2]|0,y)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+j<<2)>>2]|0)!=(c[oa+(j+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[r+1>>0]=P}if(I)P=0;else{if(O){P=c[M+1676>>2]|0;P=(c[P+(N<<2)>>2]|0)!=(c[P+(c[(c[L>>2]|0)+(n-(c[G>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(F<<24>>24==0?(pa=c[G>>2]|0,na=($(pa,y)|0)+j|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,y+ -1|0)|0)+j<<2)>>2]|0)):0)Q=1;else Q=P;a[s>>0]=Q}if(E)L=0;else{if(O){pa=c[M+1676>>2]|0;L=(c[pa+(N<<2)>>2]|0)!=(c[pa+(c[(c[L>>2]|0)+((c[G>>2]|0)+n<<2)>>2]<<2)>>2]|0)&1}else L=0;if(F<<24>>24==0?(pa=c[G>>2]|0,na=($(pa,y)|0)+j|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,y+1|0)|0)+j<<2)>>2]|0)):0)M=1;else M=L;a[s+1>>0]=M}if(!D)if(I)B=47;else{if(!(F<<24>>24)){pa=c[G>>2]|0;na=($(pa,y)|0)+j|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(j+ -1+($(pa,y+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[p>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(F<<24>>24)){pa=c[G>>2]|0;na=($(pa,y)|0)+j|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(j+1+($(pa,y+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[p+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|E):0){if(!(F<<24>>24)){pa=c[G>>2]|0;na=($(pa,y)|0)+j|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(j+1+($(pa,y+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[p+2>>0]=H}if(!(D|E)){if(!(F<<24>>24)){pa=c[G>>2]|0;na=($(pa,y)|0)+j|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(j+ -1+($(pa,y+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[p+3>>0]=D}}N=(c[S+4>>2]|0)!=0?3:1;E=e+160|0;D=e+168|0;F=e+2672|0;P=y<<1;H=P+ -1|0;G=k+4|0;O=y+ -1|0;J=j+1|0;L=j+ -1|0;P=P+2|0;Q=t+4|0;M=y+1|0;I=j<<1;K=I+ -1|0;I=I+2|0;R=e+((R&255)<<2)+2676|0;na=S;_=0;while(1){ka=c[na+(_<<2)+13168>>2]|0;V=f>>ka;ha=c[na+(_<<2)+13180>>2]|0;aa=g>>ha;ba=c[E>>2]|0;W=c[ba+(_<<2)+32>>2]|0;S=1<>2];Z=S>>ka;Y=S>>ha;ka=c[na+13120>>2]>>ka;ca=ka-V|0;Z=(Z|0)>(ca|0)?ca:Z;ha=c[na+13124>>2]>>ha;ca=ha-aa|0;Y=(Y|0)>(ca|0)?ca:Y;ca=$(W,aa)|0;fa=c[na+56>>2]|0;ca=(V<>2]|0;X=ba+ca|0;S=S+2<>2]|0;ga=1<>0]|0;if((ia|0)==2){ja=c[l>>2]|0;ia=c[z>>2]|0;la=c[x>>2]|0;do if(!(c[u>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-W-oa);c[G>>2]=(c[e+(_<<2)+172>>2]|0)+(($(ka,H)|0)+V-pa<>2]|0,O)|0)|0;pa=c[k+(((a[(c[A>>2]|0)+(pa*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0;if(!fa){a[oa>>0]=a[pa>>0]|0;na=c[o>>2]|0;oa=ga;break}else{b[oa>>1]=b[pa>>1]|0;oa=ga;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,O)|0)+j|0;na=Z<>2]|0)+(pa*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){pa=oa+na|0;oa=J+($(c[(c[o>>2]|0)+13128>>2]|0,O)|0)|0;na=ea+(pa+ma)|0;ma=(c[k+(((a[(c[A>>2]|0)+(oa*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0)+pa|0;if(!fa){a[na>>0]=a[ma>>0]|0;break}else{b[na>>1]=b[ma>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(Y,W)|0)+ca-oa);c[Q>>2]=(c[e+(_<<2)+172>>2]|0)+(($(ka,P)|0)+V-pa<>2]|0)+13128>>2]|0,M)|0)|0;ma=c[t+(((a[(c[A>>2]|0)+(ma*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0;if(!fa){a[ka>>0]=a[ma>>0]|0;ma=ga;break}else{b[ka>>1]=b[ma>>1]|0;ma=ga;break}}else ma=0;while(0);pa=($(c[(c[o>>2]|0)+13128>>2]|0,M)|0)+j|0;ka=Z<>2]|0)+(pa*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0)+ma|0,ka|0)|0;if((ia|0)!=1){pa=ma+ka|0;oa=J+($(c[(c[o>>2]|0)+13128>>2]|0,M)|0)|0;ka=ea+(pa+la)|0;la=(c[t+(((a[(c[A>>2]|0)+(oa*148|0)+_+142>>0]|0)==3&1)<<2)>>2]|0)+pa|0;if(!fa){a[ka>>0]=a[la>>0]|0;break}else{b[ka>>1]=b[la>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[o>>2]|0)+13128>>2]|0,y)|0)|0;if((a[(c[A>>2]|0)+(pa*148|0)+_+142>>0]|0)==3){la=ea+S|0;ja=(c[e+(_<<2)+184>>2]|0)+(($(ha,K)|0)+aa<0;if(!fa){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(Y|0)){ja=0;break}else{la=la+S|0;ja=ja+ga|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(Y|0)){ja=0;break}else{la=la+S|0;ja=ja+ga|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=J+($(c[(c[o>>2]|0)+13128>>2]|0,y)|0)|0;if((a[(c[A>>2]|0)+(pa*148|0)+_+142>>0]|0)==3){ia=ea+((Z<>2]|0)+(($(ha,I)|0)+aa<0;if(!fa){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(Y|0)){C=0;B=96;break}else{ia=ia+S|0;ha=ha+ga|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(Y|0)){C=0;B=96;break}else{ia=ia+S|0;ha=ha+ga|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,v=ja<0):0){da=ea+(da-v)|0;ea=0;ba=ba+(ca-v)|0;while(1){fe(da|0,ba|0,w|0)|0;ea=ea+1|0;if((ea|0)==(Y|0))break;else{da=da+S|0;ba=ba+W|0}}}Eb(e,X,W,V,aa,Z,Y,_,j,y);Aa[c[R>>2]&3](X,U,W,S,q,l,Z,Y,_,r,s,p,c[(c[o>>2]|0)+52>>2]|0);Fb(e,X,U,W,S,f,g,Z,Y,_);a[T>>0]=3}else if((ia|0)==1){ca=Z<0){ba=U;da=0;ea=X;while(1){fe(ba|0,ea|0,ca|0)|0;da=da+1|0;if((da|0)==(Y|0))break;else{ba=ba+S|0;ea=ea+W|0}}}Eb(e,X,W,V,aa,Z,Y,_,j,y);ya[c[F>>2]&1](X,U,W,S,q,l,Z,Y,_,c[(c[o>>2]|0)+52>>2]|0);Fb(e,X,U,W,S,f,g,Z,Y,_);a[T>>0]=3}_=_+1|0;if((_|0)>=(N|0))break;na=c[o>>2]|0}i=h;return}function Db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Bb(a,b-e|0,d-e|0,e);if(!(j|k))Bb(a,b,d-e|0,e);if(g|h){i=f;return}Bb(a,b-e|0,d,e);i=f;return}function Eb(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Fb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+4348|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){fe(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Gb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+4348>>2]|0)+e>>0]|0;i=f;return e|0}function Hb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Ib(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+4376|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}nd(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}fe(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+4384|0;b=b+4380|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ld(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Jb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;f=b+60|0;d=c[f>>2]|0;Zc();ac();f=c[f>>2]|0;c[f+4>>2]=b;g=md(31328)|0;c[f+136>>2]=g;if((((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,g=fd(199)|0,c[f+152>>2]=g,(g|0)!=0):0)?(g=wd()|0,c[f+164>>2]=g,(g|0)!=0):0)?(h=wd()|0,c[f+2524>>2]=h,(h|0)!=0):0){c[f+2528>>2]=h;c[f+2592>>2]=2147483647;a[f+4469>>0]=1;c[f+2584>>2]=0;c[d+4368>>2]=0;c[d+4520>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[d+141>>0]=1;else a[d+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[d+140>>0]=1;h=0;i=e;return h|0}a[d+140>>0]=2;h=0;i=e;return h|0}Lb(b)|0;h=-12;i=e;return h|0}function Kb(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0;k=i;i=i+16|0;q=k+8|0;n=k;m=c[f+60>>2]|0;l=j+28|0;K=c[l>>2]|0;if(!K){g=$b(m,g,1)|0;if((g|0)<0){_a=g;i=k;return _a|0}c[h>>2]=g;_a=0;i=k;return _a|0}r=m+2520|0;c[r>>2]=0;f=m+4524|0;b[f>>1]=1;J=c[j+24>>2]|0;c[r>>2]=0;G=m+2584|0;A=m+2588|0;c[A>>2]=c[G>>2];c[G>>2]=0;w=m+4408|0;c[w>>2]=0;a:do if((K|0)>3){H=m+4470|0;F=m+4412|0;z=m+4404|0;v=m+4388|0;C=m+4396|0;x=m+4392|0;E=m+4384|0;y=m+4380|0;j=m+4376|0;u=m+136|0;t=m+2512|0;I=m+4480|0;while(1){B=(a[H>>0]|0)==0;if(B){while(1){L=J+1|0;if(((a[J>>0]|0)==0?(a[L>>0]|0)==0:0)?(a[J+2>>0]|0)==1:0)break;if((K|0)<5){p=-1094995529;o=180;break a}J=L;K=K+ -1|0}J=J+3|0;M=0;K=K+ -3|0}else{L=c[I>>2]|0;if((L|0)>0){N=0;M=0;do{N=d[J+M>>0]|N<<8;M=M+1|0}while((M|0)!=(L|0));M=N}else M=0;K=K-L|0;if((M|0)>(K|0)){p=-1094995529;o=180;break a}J=J+L|0}B=B?K:M;L=c[F>>2]|0;N=c[w>>2]|0;if((L|0)<(N+1|0)){L=L+1|0;M=kd(c[z>>2]|0,L,16)|0;if(!M){p=-12;o=180;break a}c[z>>2]=M;N=c[F>>2]|0;ce(M+(N<<4)|0,0,L-N<<4|0)|0;ld(v,L,4)|0;ld(C,L,4)|0;ld(x,L,4)|0;N=c[C>>2]|0;c[N+(c[F>>2]<<2)>>2]=1024;N=od(c[N+(c[F>>2]<<2)>>2]|0,4)|0;c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]=N;c[F>>2]=L;N=c[w>>2]|0}c[E>>2]=c[(c[C>>2]|0)+(N<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(N<<2)>>2];M=c[z>>2]|0;L=Ib(m,J,B,M+(N<<4)|0)|0;c[(c[v>>2]|0)+(c[w>>2]<<2)>>2]=c[j>>2];c[(c[C>>2]|0)+(c[w>>2]<<2)>>2]=c[E>>2];Za=c[y>>2]|0;_a=c[w>>2]|0;c[w>>2]=_a+1;c[(c[x>>2]|0)+(_a<<2)>>2]=Za;if((L|0)<0){p=L;o=180;break a}Za=c[u>>2]|0;Xa=c[M+(N<<4)+12>>2]|0;Ya=c[M+(N<<4)+8>>2]|0;Ya=Ya>>>0>268435455?-8:Ya<<3;_a=Ya>>>0>2147483639|(Xa|0)==0;Ya=_a?0:Ya;Xa=_a?0:Xa;B=_a?-1094995529:0;c[Za+204>>2]=Xa;c[Za+216>>2]=Ya;c[Za+220>>2]=Ya+8;c[Za+208>>2]=Xa+(Ya>>3);c[Za+212>>2]=0;if(_a){p=B;o=180;break a}Ob(m)|0;if(((c[t>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;K=K-L|0;if((K|0)<=3)break;else J=J+L|0}if((c[w>>2]|0)>0){la=m+4|0;Ga=m+1448|0;aa=m+2046|0;_=m+1428|0;Fa=m+204|0;wa=m+200|0;Ka=m+1449|0;La=m+1432|0;Pa=m+1436|0;Qa=m+2580|0;Ia=m+156|0;ra=m+1440|0;I=m+1450|0;L=m+1620|0;va=m+2572|0;K=m+2516|0;M=m+2576|0;W=m+2056|0;X=m+2057|0;N=m+2058|0;P=m+2052|0;O=m+2048|0;Na=m+2068|0;S=m+2072|0;Q=m+2076|0;T=m+2080|0;Y=m+2061|0;V=m+2084|0;U=m+2088|0;Z=m+2062|0;J=m+1451|0;Oa=m+2108|0;Ja=m+2112|0;Ma=m+2500|0;na=m+2592|0;oa=m+2604|0;pa=m+4416|0;Ha=q+4|0;xa=m+4320|0;za=m+2596|0;ya=m+2600|0;Aa=m+4324|0;Ba=m+4344|0;Ca=m+4348|0;Ea=m+4328|0;sa=m+160|0;qa=m+140|0;ua=m+164|0;R=m+2096|0;F=m+2100|0;E=m+2104|0;G=m+141|0;H=m+4368|0;ca=m+2504|0;ba=m+2508|0;ea=m+4332|0;da=m+4336|0;fa=m+4340|0;ha=m+4352|0;ga=m+4316|0;ia=m+2608|0;ka=m+196|0;ma=m+4364|0;ja=m+168|0;C=0;b:while(1){c[j>>2]=c[(c[v>>2]|0)+(C<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(C<<2)>>2];Za=c[z>>2]|0;Ya=c[Za+(C<<4)+12>>2]|0;Za=c[Za+(C<<4)+8>>2]|0;_a=c[u>>2]|0;Za=Za>>>0>268435455?-8:Za<<3;Ra=Za>>>0>2147483639|(Ya|0)==0;Za=Ra?0:Za;Ya=Ra?0:Ya;c[_a+204>>2]=Ya;c[_a+216>>2]=Za;c[_a+220>>2]=Za+8;c[_a+208>>2]=Ya+(Za>>3);c[_a+212>>2]=0;c:do if(Ra){s=Ra?-1094995529:0;o=178}else{Ra=Ob(m)|0;d:do if((Ra|0)>=0){if(!Ra)break c;switch(c[t>>2]|0){case 37:case 36:{b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647;break c};case 48:{Ra=Dc(m)|0;if((Ra|0)<0)break d;else break c};case 34:{Ra=Ec(m)|0;if((Ra|0)<0)break d;else break c};case 40:case 39:{Ra=Gc(m)|0;if((Ra|0)<0)break d;else break c};case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{Ra=c[u>>2]|0;Sa=Ra+204|0;_a=(bd(Sa)|0)&255;a[Ga>>0]=_a;Ta=c[t>>2]|0;if(!((Ta+ -16|0)>>>0>4|_a<<24>>24==0)?(b[ma>>1]=(e[ma>>1]|0)+1&255,c[na>>2]=2147483647,(Ta+ -19|0)>>>0<2):0){Yb(m);Ta=c[t>>2]|0}a[aa>>0]=0;if((Ta+ -16|0)>>>0<8)a[aa>>0]=bd(Sa)|0;Ta=dd(Sa)|0;c[_>>2]=Ta;if(Ta>>>0>255){p=B;o=180;break a}Ta=c[m+(Ta<<2)+400>>2]|0;if(!Ta){p=B;o=180;break a}if(!(a[Ga>>0]|0)){Wa=c[Ta+4>>2]|0;if((c[Fa>>2]|0)!=(Wa|0)){p=B;o=180;break a}}else Wa=c[Ta+4>>2]|0;c[Fa>>2]=Wa;Ua=c[t>>2]|0;Va=(Ua|0)==21;if(Va?(c[A>>2]|0)==1:0)a[aa>>0]=1;Ta=c[wa>>2]|0;Wa=c[(c[m+(c[Wa>>2]<<2)+272>>2]|0)+4>>2]|0;if((Ta|0)!=(Wa|0)){c[wa>>2]=Wa;e:do if(Ta){if((Ua+ -16|0)>>>0>7|Va)break;do if((c[Wa+13120>>2]|0)==(c[Ta+13120>>2]|0)){if((c[Wa+13124>>2]|0)!=(c[Ta+13124>>2]|0))break;if((c[Wa+76+(((c[Wa+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[aa>>0]=0}while(0);Yb(m);Ta=c[wa>>2]|0;Nb(m);Va=c[Ta+13064>>2]|0;Wa=Ta+13120|0;ab=c[Wa>>2]|0;Xa=Ta+13124|0;$a=c[Xa>>2]|0;Va=$(($a>>Va)+1|0,(ab>>Va)+1|0)|0;Ua=$(c[Ta+13132>>2]|0,c[Ta+13128>>2]|0)|0;_a=Ta+13156|0;Za=Ta+13160|0;Ya=$(c[Za>>2]|0,c[_a>>2]|0)|0;c[za>>2]=(ab>>2)+1;c[ya>>2]=($a>>2)+1;c[ca>>2]=pd(Ua,148)|0;$a=pd(Ua,8)|0;c[ba>>2]=$a;if((c[ca>>2]|0)==0|($a|0)==0){o=71;break b}$a=Ta+13144|0;ab=Ta+13140|0;c[ea>>2]=fd($(c[ab>>2]|0,c[$a>>2]|0)|0)|0;ab=od(c[$a>>2]|0,c[ab>>2]|0)|0;c[da>>2]=ab;if((c[ea>>2]|0)==0|(ab|0)==0){o=71;break b}c[Ba>>2]=od(c[Ta+13148>>2]|0,c[Ta+13152>>2]|0)|0;c[fa>>2]=md(Ya)|0;Ya=fd($((c[Za>>2]|0)+1|0,(c[_a>>2]|0)+1|0)|0)|0;c[Ca>>2]=Ya;if(!(c[fa>>2]|0)){o=71;break b}if((c[Ba>>2]|0)==0|(Ya|0)==0){o=71;break b}c[ha>>2]=fd(Ua)|0;c[Ea>>2]=od(Va,4)|0;ab=od(Va,1)|0;c[ga>>2]=ab;if(!ab){o=71;break b}if(!(c[ha>>2]|0)){o=71;break b}if(!(c[Ea>>2]|0)){o=71;break b}c[xa>>2]=pd(c[za>>2]|0,c[ya>>2]|0)|0;ab=pd(c[za>>2]|0,c[ya>>2]|0)|0;c[Aa>>2]=ab;if((c[xa>>2]|0)==0|(ab|0)==0){o=71;break b}ab=c[la>>2]|0;c[ab+124>>2]=c[Wa>>2];c[ab+128>>2]=c[Xa>>2];c[ab+116>>2]=c[Ta+12>>2];c[ab+120>>2]=c[Ta+16>>2];c[ab+136>>2]=c[Ta+60>>2];c[ab+172>>2]=c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+80>>2];ab=Ta+160|0;c[q+0>>2]=c[ab+0>>2];c[q+4>>2]=c[ab+4>>2];if(!(c[Ta+176>>2]|0)){Ua=c[la>>2]|0;c[Ua+392>>2]=1}else{Ua=c[la>>2]|0;c[Ua+392>>2]=(c[Ta+184>>2]|0)!=0?2:1}if(!(c[Ta+188>>2]|0)){c[Ua+380>>2]=2;c[Ua+384>>2]=2;c[Ua+388>>2]=2}else{c[Ua+380>>2]=d[Ta+192>>0];c[Ua+384>>2]=d[Ta+193>>0];c[Ua+388>>2]=d[Ta+194>>0]}bc(ia,c[Ta+52>>2]|0);if(a[Ta+12941>>0]|0){Ua=c[wa>>2]|0;Va=(c[Ua+4>>2]|0)!=0?3:1;ab=(1<>2])+2|0;ab=$(ab,ab)|0;c[ja>>2]=fd(ab<>2])|0;Ua=0;do{ab=c[wa>>2]|0;$a=c[ab+13124>>2]>>c[ab+(Ua<<2)+13180>>2];_a=$(c[ab+13120>>2]>>c[ab+(Ua<<2)+13168>>2]<<1,c[ab+13132>>2]|0)|0;c[m+(Ua<<2)+172>>2]=fd(_a<>2])|0;ab=c[wa>>2]|0;$a=$($a<<1,c[ab+13128>>2]|0)|0;c[m+(Ua<<2)+184>>2]=fd($a<>2])|0;Ua=Ua+1|0}while((Ua|0)<(Va|0))}c[wa>>2]=Ta;c[ka>>2]=c[(c[m+(c[Ta>>2]<<2)+208>>2]|0)+4>>2];b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647}ab=c[la>>2]|0;c[ab+832>>2]=d[Ta+302>>0];c[ab+836>>2]=d[Ta+335>>0];a[Ka>>0]=0;do if(!(a[Ga>>0]|0)){if(a[(c[Fa>>2]|0)+41>>0]|0){a[Ka>>0]=bd(Sa)|0;Ta=c[wa>>2]|0}Ta=($(c[Ta+13128>>2]<<1,c[Ta+13132>>2]|0)|0)+ -2|0;Ua=Ta>>>0>65535;Ta=Ua?Ta>>>16:Ta;Ua=Ua?16:0;if(Ta&65280){Ua=Ua|8;Ta=Ta>>>8}Ta=_c(Sa,(d[4680+Ta>>0]|0)+Ua|0)|0;c[La>>2]=Ta;ab=c[wa>>2]|0;if(Ta>>>0>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0)>>>0){p=B;o=180;break a}if(a[Ka>>0]|0)if(!(a[Ia>>0]|0)){p=B;o=180;break a}else break;else{c[Pa>>2]=Ta;c[Qa>>2]=(c[Qa>>2]|0)+1;o=82;break}}else{c[Pa>>2]=0;c[La>>2]=0;c[Qa>>2]=0;a[Ia>>0]=0;o=82}while(0);f:do if((o|0)==82){o=0;a[Ia>>0]=0;if((c[(c[Fa>>2]|0)+1624>>2]|0)>0){Ta=0;do{ad(Sa,1);Ta=Ta+1|0}while((Ta|0)<(c[(c[Fa>>2]|0)+1624>>2]|0))}Ta=dd(Sa)|0;c[ra>>2]=Ta;if(Ta>>>0>=3){p=B;o=180;break a}if(!((Ta|0)==2?1:((c[t>>2]|0)+ -16|0)>>>0>7)){p=B;o=180;break a}a[I>>0]=1;if(a[(c[Fa>>2]|0)+39>>0]|0)a[I>>0]=bd(Sa)|0;if(a[(c[wa>>2]|0)+8>>0]|0)a[J>>0]=_c(Sa,2)|0;if(((c[t>>2]|0)+ -19|0)>>>0>=2){o=91;break b}c[L>>2]=0;c[va>>2]=0;if(!(c[K>>2]|0))c[M>>2]=0;do if(a[(c[wa>>2]|0)+12941>>0]|0){a[W>>0]=bd(Sa)|0;if(!(c[(c[wa>>2]|0)+4>>2]|0)){a[X>>0]=0;a[N>>0]=0;break}else{ab=(bd(Sa)|0)&255;a[N>>0]=ab;a[X>>0]=ab;break}}else{a[W>>0]=0;a[X>>0]=0;a[N>>0]=0}while(0);c[P>>2]=0;c[O>>2]=0;c[Na>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0;if(!(a[Ta+36>>0]|0)){c[S>>2]=0;c[Q>>2]=0}else{c[S>>2]=ed(Sa)|0;c[Q>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0}if(!(a[Ta+1631>>0]|0))a[T>>0]=0;else{a[T>>0]=bd(Sa)|0;Ta=c[Fa>>2]|0}g:do if(!(a[Ta+55>>0]|0)){a[Y>>0]=0;c[V>>2]=0;c[U>>2]=0}else{do if(a[Ta+56>>0]|0){if(!(bd(Sa)|0)){Ta=c[Fa>>2]|0;break}ab=(bd(Sa)|0)&255;a[Y>>0]=ab;if(ab<<24>>24)break g;c[V>>2]=(ed(Sa)|0)<<1;c[U>>2]=(ed(Sa)|0)<<1;break g}while(0);a[Y>>0]=a[Ta+57>>0]|0;c[V>>2]=c[Ta+60>>2];c[U>>2]=c[Ta+64>>2]}while(0);Ta=a[(c[Fa>>2]|0)+54>>0]|0;h:do if(Ta<<24>>24){do if(!(a[W>>0]|0)){if(a[X>>0]|0)break;if(a[Y>>0]|0)break h}while(0);a[Z>>0]=bd(Sa)|0;break f}while(0);a[Z>>0]=Ta}while(0);c[Oa>>2]=0;ab=c[Fa>>2]|0;if(!((a[ab+42>>0]|0)==0?(a[ab+43>>0]|0)==0:0))o=122;i:do if((o|0)==122){o=0;ab=dd(Sa)|0;c[Oa>>2]=ab;if((ab|0)<=0){c[H>>2]=0;break}Ta=(dd(Sa)|0)+1|0;Ua=Ta>>4;Ta=Ta&15;jd(R);jd(F);jd(E);c[R>>2]=od(c[Oa>>2]|0,4)|0;c[F>>2]=od(c[Oa>>2]|0,4)|0;Va=od(c[Oa>>2]|0,4)|0;c[E>>2]=Va;if(!(c[R>>2]|0)){o=127;break b}if((c[F>>2]|0)==0|(Va|0)==0){o=127;break b}if((c[Oa>>2]|0)>0){Xa=(Ua|0)>0;Wa=(Ta|0)==0;Va=0;do{if(Xa){Ya=0;Za=0;do{Za=(_c(Sa,16)|0)+(Za<<16)|0;Ya=Ya+1|0}while((Ya|0)!=(Ua|0))}else Za=0;if(!Wa)Za=(_c(Sa,Ta)|0)+(Za<>2]|0)+(Va<<2)>>2]=Za+1;Va=Va+1|0}while((Va|0)<(c[Oa>>2]|0))}do if((d[G>>0]|0)>1){ab=c[Fa>>2]|0;if((c[ab+48>>2]|0)<=1?(c[ab+44>>2]|0)<=1:0)break;c[H>>2]=0;a[G>>0]=1;break i}while(0);c[H>>2]=0}while(0);Ta=c[Fa>>2]|0;if(a[Ta+1628>>0]|0){Ta=dd(Sa)|0;$a=de(Ta|0,0,3)|0;Za=D;ab=(c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0;_a=((ab|0)<0)<<31>>31;if((Za|0)>(_a|0)|(Za|0)==(_a|0)&$a>>>0>ab>>>0){p=B;o=180;break a}if(Ta){Ua=0;do{ad(Sa,8);Ua=Ua+1|0}while((Ua|0)!=(Ta|0))}Ta=c[Fa>>2]|0}Sa=(c[Ta+16>>2]|0)+26+(c[Na>>2]|0)|0;a[Ja>>0]=Sa;Sa=Sa<<24;if((Sa|0)>855638016){p=B;o=180;break a}if((Sa>>24|0)<(0-(c[(c[wa>>2]|0)+13192>>2]|0)|0)){p=B;o=180;break a}ab=c[La>>2]|0;c[Ma>>2]=ab;if((ab|0)==0?(a[Ka>>0]|0)!=0:0){p=B;o=180;break a}if(((c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0)<0){p=B;o=180;break a}a[(c[u>>2]|0)+203>>0]=(a[Ka>>0]|0)==0&1;if(!(a[(c[Fa>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ja>>0]|0;a[Ia>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;Sa=c[na>>2]|0;Ra=c[t>>2]|0;j:do if((Sa|0)==2147483647)switch(Ra|0){case 18:case 16:case 17:case 21:{Sa=c[va>>2]|0;c[na>>2]=Sa;break j};case 20:case 19:{c[na>>2]=-2147483648;Sa=-2147483648;break j};default:{Sa=2147483647;break j}}while(0);do if((Ra+ -8|0)>>>0<2){if((c[va>>2]|0)<=(Sa|0)){c[oa>>2]=0;break c}if((Ra|0)!=9)break;c[na>>2]=-2147483648}while(0);k:do if(!(a[Ga>>0]|0)){if(!(c[r>>2]|0)){Ra=0;break d}}else{Sa=c[u>>2]|0;$a=c[wa>>2]|0;Ra=c[$a+13064>>2]|0;ab=c[$a+13120>>2]>>Ra;Ra=(c[$a+13124>>2]>>Ra)+1|0;ce(c[xa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;ce(c[Aa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Ba>>2]|0,0,$(c[$a+13152>>2]|0,c[$a+13148>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Ca>>2]|0,0,$((c[$a+13160>>2]|0)+1|0,(c[$a+13156>>2]|0)+1|0)|0)|0;ce(c[Ea>>2]|0,-1,$((ab<<2)+4|0,Ra)|0)|0;c[oa>>2]=0;c[pa>>2]=c[t>>2];Ra=c[Fa>>2]|0;if(a[Ra+42>>0]|0)c[Sa+312>>2]=c[c[Ra+1648>>2]>>2]<>2]|0)+13080>>2];Ra=_b(m,sa,c[va>>2]|0)|0;do if((Ra|0)>=0){c[(c[c[r>>2]>>2]|0)+80>>2]=((c[t>>2]|0)+ -16|0)>>>0<8&1;c[(c[sa>>2]|0)+84>>2]=3-(c[ra>>2]|0);yd(c[ua>>2]|0);Ra=$b(m,c[ua>>2]|0,0)|0;if((Ra|0)<0)break;break k}while(0);if(!(c[r>>2]|0)){o=167;break b}c[r>>2]=0;if((Ra|0)<0){p=B;break a}}while(0);if((c[t>>2]|0)!=(c[pa>>2]|0)){p=B;o=180;break a}c[q>>2]=0;c[Ha>>2]=1;Ra=c[la>>2]|0;Da[c[Ra+816>>2]&1](Ra,1,q,n,1,4)|0;Ra=c[n>>2]|0;ab=c[wa>>2]|0;if((Ra|0)>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0))c[oa>>2]=1;if((Ra|0)<0)break d;else break c};default:break c}}while(0);s=(c[(c[la>>2]|0)+688>>2]&8|0)==0?0:Ra;o=178}while(0);if((o|0)==178?(o=0,(s|0)<0):0){p=B;o=180;break a}C=C+1|0;if((C|0)>=(c[w>>2]|0)){p=B;o=180;break a}}if((o|0)==71){Nb(m);Nb(m);c[wa>>2]=0;p=B;o=180;break}else if((o|0)==91)ta();else if((o|0)==127){c[Oa>>2]=0;p=B;o=180;break}else if((o|0)==167){c[r>>2]=0;p=B;break}}else{p=B;o=180}}else{p=0;o=180}while(0);if((p|0)<0){ab=p;i=k;return ab|0}n=m+2604|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){ab=m+128|0;c[ab>>2]=e[f>>1];c[ab+4>>2]=0;zd(g,m);c[h>>2]=1}ab=c[l>>2]|0;i=k;return ab|0}function Lb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;Nb(e);b=e+4412|0;f=e+4392|0;if((c[b>>2]|0)>0){g=0;do{jd((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}jd(e+4396|0);jd(e+4388|0);jd(f);jd(e+152|0);jd(e+168|0);jd(e+172|0);jd(e+184|0);jd(e+176|0);jd(e+188|0);jd(e+180|0);jd(e+192|0);xd(e+164|0);g=e+2524|0;Xb(e,g,-1);xd(g);g=e+208|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);f=e+400|0;g=0;do{vd(f+(g<<2)|0);g=g+1|0}while((g|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;vd(e+1424|0);jd(e+2096|0);jd(e+2100|0);jd(e+2104|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){jd(k);jd(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;jd(f);f=e+4404|0;if((c[b>>2]|0)<=0){jd(f);c[b>>2]=0;i=d;return 0}e=0;do{jd((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));jd(f);c[b>>2]=0;i=d;return 0}function Mb(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;Zb(a);c[a+2592>>2]=2147483647;i=b;return}function Nb(a){a=a|0;var b=0;b=i;jd(a+2504|0);jd(a+2508|0);jd(a+4332|0);jd(a+4336|0);jd(a+4340|0);jd(a+4344|0);jd(a+4348|0);jd(a+4316|0);jd(a+4328|0);jd(a+4352|0);jd(a+4320|0);jd(a+4324|0);jd(a+2096|0);jd(a+2104|0);jd(a+2100|0);i=b;return}function Ob(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(bd(d)|0){e=-1094995529;i=b;return e|0}c[a+2512>>2]=_c(d,6)|0;e=_c(d,6)|0;d=(_c(d,3)|0)+ -1|0;c[a+2516>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function Pb(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+2500>>2]<<2)>>2]|0;m=(a[h+1449>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+4328|0;r=h+1436|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+4328|0;r=h+1436|0}q=e+ -1|0;s=h+136|0;p=h+2504|0;y=h+2056|0;o=h+2057|0;w=h+2084|0;x=h+2508|0;v=h+2088|0;u=h+2062|0;t=h+4352|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;Ua(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=Za(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(Za(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+2056>>0]|0){T=(P|0)==2;do if(!T){if(S){U=($a(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=cb(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=db(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=bb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=eb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=Qb(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Ta(h,A);Db(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Bb(h,z,n,e);W=A;i=f;return W|0}function Qb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;j=i;i=i+32|0;z=j;B=j+20|0;A=b+136|0;r=c[A>>2]|0;l=1<>2]|0;q=b+204|0;t=c[q>>2]|0;p=(1<<(c[s+13080>>2]|0)-(c[t+24>>2]|0))+ -1|0;c[r+31232>>2]=h;k=l+e|0;if(((k|0)<=(c[s+13120>>2]|0)?(l+f|0)<=(c[s+13124>>2]|0):0)?(c[s+13064>>2]|0)>>>0>>0:0){s=lb(b,h,e,f)|0;t=c[q>>2]|0}else s=(c[s+13064>>2]|0)>>>0>>0&1;if((a[t+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[t+24>>2]|0)|0)>>>0<=g>>>0:0){a[r+300>>0]=0;c[r+280>>2]=0}if((a[b+2080>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[r+301>>0]=0;if(s){n=l>>1;o=n+e|0;q=n+f|0;g=g+ -1|0;h=h+1|0;s=Qb(b,e,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}if(s){if((o|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=Qb(b,o,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){if((q|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=Qb(b,e,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){X=c[m>>2]|0;if((o|0)<(c[X+13120>>2]|0)?(q|0)<(c[X+13124>>2]|0):0){s=Qb(b,o,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}}else s=0}else s=0}else s=0;if((p&k|0)==0?(p&l+f|0)==0:0)c[r+276>>2]=a[r+272>>0];if(!s){X=0;i=j;return X|0}k=c[m>>2]|0;if((o+n|0)<(c[k+13120>>2]|0))k=1;else k=(q+n|0)<(c[k+13124>>2]|0);X=k&1;i=j;return X|0}p=c[A>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;x=p+31252|0;a[x>>0]=1;v=p+31244|0;c[v>>2]=1;E=p+31248|0;c[E>>2]=0;w=p+31254|0;a[w>>0]=0;y=p+31253|0;a[y>>0]=0;t=($(f>>r,h)|0)+(e>>r)|0;H=b+4332|0;a[(c[H>>2]|0)+t>>0]=0;X=p+31268|0;a[X>>0]=1;a[X+1>>0]=1;a[X+2>>0]=1;a[X+3>>0]=1;r=l>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){X=(gb(b)|0)&255;a[p+31256>>0]=X;if(X<<24>>24)Rb(b,e,f,g)}else a[p+31256>>0]=0;u=(r|0)>0;if(u){G=t;F=0;while(1){ce((c[H>>2]|0)+G|0,0,r|0)|0;F=F+1|0;if((F|0)==(r|0))break;else G=G+h|0}}if((c[v>>2]|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0)D=c[E>>2]|0;else{F=mb(b,g)|0;c[E>>2]=F;E=c[v>>2]|0;if((F|0)==3)G=(E|0)==1&1;else G=0;a[w>>0]=G;if((E|0)==1)D=F;else ta()}if((((D|0)==0?(C=c[m>>2]|0,(c[C+68>>2]|0)!=0):0)?(c[C+13048>>2]|0)>>>0<=g>>>0:0)?(c[C+13052>>2]|0)>>>0>=g>>>0:0){C=(nb(b)|0)&255;a[y>>0]=C}else C=a[y>>0]|0;do if(!(C<<24>>24)){C=c[A>>2]|0;E=(c[C+31248>>2]|0)==3;D=E?2:1;H=0;do{F=H<<1;G=0;do{a[B+(G+F)>>0]=ob(b)|0;G=G+1|0}while((G|0)<(D|0));H=H+1|0}while((H|0)<(D|0));Q=l>>(E&1);P=C+31264|0;R=z+4|0;E=z+8|0;F=b+4340|0;O=C+31260|0;N=0;do{J=N<<1;H=($(N,Q)|0)+f|0;I=0;do{L=I+J|0;U=(a[B+L>>0]|0)==0;if(U)c[P>>2]=qb(b)|0;else c[O>>2]=pb(b)|0;V=($(I,Q)|0)+e|0;T=c[A>>2]|0;X=c[m>>2]|0;S=c[X+13084>>2]|0;M=V>>S;K=H>>S;G=c[X+13156>>2]|0;S=Q>>S;X=c[X+13080>>2]|0;W=(1<>0]|0)==0?(W&H|0)==0:0)W=1;else{W=($(K+ -1|0,G)|0)+M|0;W=d[(c[F>>2]|0)+W>>0]|0}if((a[T+308>>0]|0)==0&(V|0)==0)V=1;else{V=M+ -1+($(K,G)|0)|0;V=d[(c[F>>2]|0)+V>>0]|0}X=(H>>X<>>0<2){c[z>>2]=0;c[R>>2]=1;c[E>>2]=26;V=0;X=1;W=26;break}else{c[z>>2]=V;X=(V+29&31)+2|0;c[R>>2]=X;W=(V+31&31)+2|0;c[E>>2]=W;break}else{c[z>>2]=V;c[R>>2]=X;if(!((V|0)==0|(X|0)==0)){c[E>>2]=0;W=0;break}if((V|0)==1|(X|0)==1){c[E>>2]=26;W=26;break}else{c[E>>2]=1;W=1;break}}while(0);if(U){if((V|0)>(X|0)){c[R>>2]=V;U=X&255;c[z>>2]=U}else{U=V;V=X}if((U|0)>(W|0)){c[E>>2]=U;X=W&255;c[z>>2]=X;W=U;U=X}if((V|0)>(W|0)){c[E>>2]=V;X=W&255;c[R>>2]=X}else{X=V;V=W}T=c[T+31264>>2]|0;T=((T|0)>=(U|0)&1)+T|0;T=((T|0)>=(X|0)&1)+T|0;T=((T|0)>=(V|0)&1)+T|0}else T=c[z+(c[T+31260>>2]<<2)>>2]|0;S=(S|0)==0?1:S;T=T&255;if((S|0)>0){U=0;do{X=($(U+K|0,G)|0)+M|0;ce((c[F>>2]|0)+X|0,T|0,S|0)|0;U=U+1|0}while((U|0)<(S|0))}a[C+L+31268>>0]=T;I=I+1|0}while((I|0)<(D|0));N=N+1|0}while((N|0)<(D|0));z=c[(c[m>>2]|0)+4>>2]|0;if((z|0)==3){B=0;do{z=B<<1;E=0;do{G=rb(b)|0;F=E+z|0;a[C+F+31281>>0]=G;A=a[C+F+31268>>0]|0;do if((G|0)!=4){G=a[1528+G>>0]|0;F=C+F+31277|0;if(A<<24>>24==G<<24>>24){a[F>>0]=34;break}else{a[F>>0]=G;break}}else a[C+F+31277>>0]=A;while(0);E=E+1|0}while((E|0)<(D|0));B=B+1|0}while((B|0)<(D|0))}else if((z|0)==2){A=rb(b)|0;a[C+31281>>0]=A;z=a[C+31268>>0]|0;if((A|0)==4)z=z&255;else{X=a[1528+A>>0]|0;z=z<<24>>24==X<<24>>24?34:X&255}a[C+31277>>0]=a[1536+z>>0]|0;break}else if(z){A=rb(b)|0;z=a[C+31268>>0]|0;if((A|0)==4){a[C+31277>>0]=z;break}A=a[1528+A>>0]|0;B=C+31277|0;if(z<<24>>24==A<<24>>24){a[B>>0]=34;break}else{a[B>>0]=A;break}}else break}else{G=c[m>>2]|0;B=c[G+13084>>2]|0;E=l>>B;C=c[G+13156>>2]|0;D=e>>B;B=f>>B;E=(E|0)==0?1:E;if((E|0)>0){F=b+4340|0;G=0;do{X=($(G+B|0,C)|0)+D|0;ce((c[F>>2]|0)+X|0,1,E|0)|0;G=G+1|0}while((G|0)<(E|0));G=c[m>>2]|0}K=c[A>>2]|0;V=c[b+160>>2]|0;A=c[V+32>>2]|0;D=$(A,f)|0;H=c[G+56>>2]|0;D=(c[V>>2]|0)+((e<>2]|0;J=c[G+13184>>2]|0;B=$(f>>J,E)|0;I=c[G+13172>>2]|0;B=(c[V+4>>2]|0)+((e>>I<>2]|0;X=c[G+13188>>2]|0;F=$(f>>X,C)|0;W=c[G+13176>>2]|0;F=(c[V+8>>2]|0)+((e>>W<>0]|0,l<>W,l>>X)|0)+($(l>>I,l>>J)|0)|0;G=($(d[G+13045>>0]|0,J)|0)+H|0;H=K+224|0;J=G+7>>3;I=c[K+240>>2]|0;X=c[H>>2]|0;I=(X&1|0)==0?I:I+ -1|0;I=(X&511|0)==0?I:I+ -1|0;K=(c[K+244>>2]|0)-I|0;if((K|0)<(J|0))I=0;else Yc(H,I+J|0,K-J|0);if(!(a[b+2061>>0]|0))Ab(b,e,f,g);X=G>>>0>2147483639|(I|0)==0;W=X?0:G;V=X?0:I;c[z>>2]=V;c[z+12>>2]=W;c[z+16>>2]=W+8;c[z+4>>2]=V+(W+7>>3);c[z+8>>2]=0;if(X)z=-1094995529;else{W=b+2608|0;X=c[m>>2]|0;za[c[W>>2]&7](D,A,l,l,z,d[X+13044>>0]|0,c[X+52>>2]|0);X=c[m>>2]|0;za[c[W>>2]&7](B,E,l>>c[X+13172>>2],l>>c[X+13184>>2],z,d[X+13045>>0]|0,c[X+52>>2]|0);X=c[m>>2]|0;za[c[W>>2]&7](F,C,l>>c[X+13176>>2],l>>c[X+13188>>2],z,d[X+13045>>0]|0,c[X+52>>2]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)Rb(b,e,f,g);if((z|0)<0){X=z;i=j;return X|0}}while(0);do if(!(a[y>>0]|0)){if(!(a[x>>0]|0)){if(a[b+2061>>0]|0)break;Ab(b,e,f,g);break}x=c[m>>2]|0;if((c[v>>2]|0)==1)v=(d[w>>0]|0)+(c[x+13092>>2]|0)|0;else v=c[x+13088>>2]|0;a[p+31255>>0]=v;v=Sb(b,e,f,e,f,e,f,g,g,0,0,1520,1520)|0;if((v|0)<0){X=v;i=j;return X|0}}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)zb(b,e,f,g);if(u){q=b+4316|0;g=p+272|0;u=0;while(1){ce((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&k|0)==0?(s&l+f|0)==0:0)c[p+276>>2]=a[p+272>>0];q=c[m>>2]|0;X=c[q+13064>>2]|0;g=l>>X;r=e>>X;e=f>>X;if((g|0)>0?(n=b+4336|0,o=c[p+31232>>2]&255,X=($(c[q+13140>>2]|0,e)|0)+r|0,ce((c[n>>2]|0)+X|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{X=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+r|0;ce((c[n>>2]|0)+X|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}e=c[m>>2]|0;m=1<>2];if(((k|0)%(m|0)|0|0)!=0?(k|0)<(c[e+13120>>2]|0):0){X=1;i=j;return X|0}X=l+f|0;if(((X|0)%(m|0)|0|0)!=0?(X|0)<(c[e+13124>>2]|0):0){X=1;i=j;return X|0}X=(fb(b)|0)==0&1;i=j;return X|0}function Rb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+4348|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function Sb(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;A=c[q+4>>2]|0;G=w+4|0;c[G>>2]=A;L=c[r>>2]|0;c[t>>2]=L;q=c[r+4>>2]|0;x=t+4|0;c[x>>2]=q;y=a[v+31254>>0]|0;do if(y<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;I=c[r>>2]|0;B=(c[I+13076>>2]|0)>>>0>>0;if(((!B?(c[I+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(y<<24>>24!=0&(o|0)==0):0)y=(sb(e,n)|0)&255;else{if((c[I+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)I=(o|0)==0&(c[v+31248>>2]|0)!=0;else I=0;if(B)y=1;else y=(y<<24>>24!=0&(o|0)==0|I)&1}B=(n|0)>2;I=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!I){J=q;M=A}else E=20;else if((I|0)==3)E=20;else{J=q;M=A}do if((E|0)==20){I=(o|0)==0;if(!((K|0)==0&(I^1))){K=tb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?y<<24>>24==0|(n|0)==3:0){A=tb(e,o)|0;c[G>>2]=A}if(!I)E=25}else{K=0;E=25}if((E|0)==25)if(!L){L=0;J=q;M=A;break}L=tb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?y<<24>>24==0|(n|0)==3:0){J=tb(e,o)|0;c[x>>2]=J;M=A}else{J=q;M=A}}while(0);if(!(y<<24>>24)){A=c[r>>2]|0;q=c[A+13072>>2]|0;y=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=ub(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;Cc(e,f,g,t,w);Ub(e,f,g,A,1);Ub(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,Cc(e,h,j,H,F),Ub(e,h,j,n,1),Ub(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=hb(e)|0;H=G+280|0;c[H>>2]=M;if(M){M=(ib(e)|0)==1;J=c[H>>2]|0;if(M){J=0-J|0;c[H>>2]=J}}else J=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((J|0)<(-26-M|0)|(J|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{zb(e,k,l,m);break}}while(0);if((!((a[e+2080>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(jb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{k=c[E>>2]|0;if(!(a[k+1633>>0]|0))l=0;else{l=kb(e)|0;k=c[E>>2]|0}a[G+302>>0]=a[k+l+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+l+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){k=c[G+288>>2]|0;if((k+ -6|0)>>>0<9)m=2;else m=(k+ -22|0)>>>0<9&1;k=c[G+292>>2]|0;if((k+ -6|0)>>>0<9)k=2;else k=(k+ -22|0)>>>0<9&1}else{m=0;k=0}l=G+304|0;a[l>>0]=0;if(I)xb(e,f,g,n,m,0);m=c[r>>2]|0;C=c[m+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)xb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)xb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}j=1<<(c[m+13172>>2]|0)+A;h=1<<(c[m+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;Tb(e,0)}while(0);m=e+160|0;C=G+320|0;D=G+11680|0;E=1<0;p=e+(A+ -2<<2)+2612|0;F=G+284|0;J=0;do{if((c[z>>2]|0)==1){M=(J<>2]|0)){if(!(a[l>>0]|0))break;M=c[m>>2]|0;G=c[M+36>>2]|0;H=c[r>>2]|0;I=$(g>>c[H+13184>>2],G)|0;I=(c[M+4>>2]|0)+(I+(f>>c[H+13172>>2]<>2]))|0;if(B){J=0;do{b[D+(J<<1)>>1]=($(b[C+(J<<1)>>1]|0,c[F>>2]|0)|0)>>>3;J=J+1|0}while((J|0)!=(E|0));J=E}else J=0;Ka[c[p>>2]&7](I,D,G,c[H+52>>2]|0)}else xb(e,f,(J<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))I=0;else{Tb(e,1);I=0}do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;M=c[m>>2]|0;G=c[M+40>>2]|0;w=c[r>>2]|0;H=$(g>>c[w+13188>>2],G)|0;H=(c[M+8>>2]|0)+(H+(f>>c[w+13176>>2]<>2]))|0;if(B){I=0;do{b[D+(I<<1)>>1]=($(b[C+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(E|0));I=E}else I=0;Ka[c[p>>2]&7](H,D,G,c[w+52>>2]|0)}else xb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+4344|0;r=0;do{w=$(r+g>>q,x)|0;o=0;do{a[(c[t>>2]|0)+((o+f>>q)+w)>>0]=1;o=o+y|0}while((o|0)<(u|0));r=r+y|0}while((r|0)<(u|0))}if(((a[e+2061>>0]|0)==0?(Ab(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)Rb(e,f,g,n)}else{u=n+ -1|0;n=1<>2]|0;f=vb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((wb(a,b)|0)<<1)<>2]|0;s=c[d+200>>2]|0;q=c[s+52>>2]|0;V=c[s+(j<<2)+13168>>2]|0;U=c[s+(j<<2)+13180>>2]|0;k=1<>2]|0;oa=k<>2]|0;W=f>>X&_;ia=g>>X&_;Y=_+2|0;aa=($(ia,Y)|0)+W|0;ba=c[d+204>>2]|0;ca=c[ba+1684>>2]|0;aa=c[ca+(aa<<2)>>2]|0;n=c[d+160>>2]|0;d=(c[n+(j<<2)+32>>2]|0)>>>1;n=c[n+(j<<2)>>2]|0;m=($(d,g>>U)|0)+(f>>V)|0;o=n+(m<<1)|0;p=(j|0)==0;r=c[(p?t+288|0:t+292|0)>>2]|0;w=v+2|0;B=y+2|0;z=A+2|0;u=x+2|0;if(!(c[t+31288>>2]|0))na=0;else na=(aa|0)>(c[ca+(W+ -1+($(_&ia+(oa>>X),Y)|0)<<2)>>2]|0);la=na&1;da=c[t+31292>>2]|0;M=c[t+31300>>2]|0;Z=c[t+31296>>2]|0;if(!(c[t+31304>>2]|0))ja=0;else ja=(aa|0)>(c[ca+(($(Y,ia+ -1|0)|0)+(_&W+(ma>>X))<<2)>>2]|0);W=ja&1;ca=(oa<<1)+g|0;_=s+13124|0;ia=c[_>>2]|0;X=oa+g|0;ca=((ca|0)>(ia|0)?ia:ca)-X>>U;ia=(ma<<1)+f|0;aa=s+13120|0;ra=c[aa>>2]|0;Y=ma+f|0;ia=((ia|0)>(ra|0)?ra:ia)-Y>>V;ba=ba+20|0;if((a[ba>>0]|0)==1){ka=c[s+13084>>2]|0;pa=oa>>ka;ma=ma>>ka;qa=(1<>2]|0)-(X>>ka)|0;na=(pa|0)>(na|0)?na:pa;if((na|0)>0){la=0;ra=0;do{la=la|1;ra=ra+2|0}while((ra|0)<(na|0))}else la=0}if(!((da|0)!=1|qa)){ra=(c[s+13160>>2]|0)-(g>>ka)|0;pa=(pa|0)>(ra|0)?ra:pa;if((pa|0)>0){da=0;na=0;do{da=da|1;na=na+2|0}while((na|0)<(pa|0))}else da=0}na=(oa|0)!=0;if(!((Z|0)!=1|na)){oa=(c[s+13156>>2]|0)-(f>>ka)|0;oa=(ma|0)>(oa|0)?oa:ma;if((oa|0)>0){Z=0;pa=0;do{Z=Z|1;pa=pa+2|0}while((pa|0)<(oa|0))}else Z=0}if(!(na|ja^1)){ka=(c[s+13156>>2]|0)-(Y>>ka)|0;ka=(ma|0)>(ka|0)?ka:ma;if((ka|0)>0){W=0;ja=0;do{W=W|1;ja=ja+2|0}while((ja|0)<(ka|0))}else W=0}ka=w+0|0;ja=ka+128|0;do{b[ka>>1]=32896;ka=ka+2|0}while((ka|0)<(ja|0));ka=B+0|0;ja=ka+128|0;do{b[ka>>1]=32896;ka=ka+2|0}while((ka|0)<(ja|0));b[y>>1]=128;ma=W}else ma=W;ka=(M|0)!=0;if(ka){ra=b[n+(m+~d<<1)>>1]|0;b[v>>1]=ra;b[y>>1]=ra}ja=(Z|0)!=0;if(ja)fe(B|0,n+(m-d<<1)|0,k<<1|0)|0;W=(ma|0)!=0;if(W?(ha=k+1|0,fe(y+(ha<<1)|0,n+(k-d+m<<1)|0,k<<1|0)|0,fa=ke(e[n+(k+ -1-d+m+ia<<1)>>1]|0,0,65537,65537)|0,ga=D,ea=k-ia|0,(ea|0)>0):0){ia=ia+ha|0;ha=0;do{ra=y+(ia+ha<<1)|0;qa=ra;b[qa>>1]=fa;b[qa+2>>1]=fa>>>16;ra=ra+4|0;b[ra>>1]=ga;b[ra+2>>1]=ga>>>16;ha=ha+4|0}while((ha|0)<(ea|0))}ea=(da|0)!=0;if(ea&(k|0)>0){fa=m+ -1|0;ga=0;do{ra=ga;ga=ga+1|0;b[v+(ga<<1)>>1]=b[n+(fa+($(ra,d)|0)<<1)>>1]|0}while((ga|0)!=(k|0))}fa=(la|0)!=0;if(fa){ia=ca+k|0;ha=m+ -1|0;if((ca|0)>0){ga=k;do{ra=ga;ga=ga+1|0;b[v+(ga<<1)>>1]=b[n+(ha+($(ra,d)|0)<<1)>>1]|0}while((ga|0)<(ia|0))}ia=ke(e[n+(ha+($(ia+ -1|0,d)|0)<<1)>>1]|0,0,65537,65537)|0;ha=D;ga=k-ca|0;if((ga|0)>0){ca=k+1+ca|0;na=0;do{ra=v+(ca+na<<1)|0;qa=ra;b[qa>>1]=ia;b[qa+2>>1]=ia>>>16;ra=ra+4|0;b[ra>>1]=ha;b[ra+2>>1]=ha>>>16;na=na+4|0}while((na|0)<(ga|0))}}do if((a[ba>>0]|0)==1?(ra=la|da,S=(ra|0)==0,ra=ra|M,T=(ra|0)==0,(Z|ma|ra|0)!=0):0){ba=k<<1;ca=c[aa>>2]|0;if(((ba<>V;_=c[_>>2]|0;if(((ba<=(_|0))ba=_-g>>U;if(!W)if((Y|0)<(ca|0))V=k;else V=ca-f>>V;else V=aa;if(!fa)if((X|0)<(_|0))U=k;else U=_-g>>U;else U=ba;X=b[y>>1]|0;if(T)b[v>>1]=X;b[v>>1]=X;if(!S){S=0;while(1)if((S|0)<(U|0))S=S+4|0;else break}if(!ea?(R=ke(X&65535|0,0,65537,65537)|0,Q=D,(k|0)>0):0){S=0;do{ra=v+((S|1)<<1)|0;qa=ra;b[qa>>1]=R;b[qa+2>>1]=R>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;S=S+4|0}while((S|0)<(k|0))}do if(!fa){Q=ke(e[v+(k<<1)>>1]|0,0,65537,65537)|0;S=D;if((k|0)<=0)break;T=k+1|0;R=0;do{ra=v+(T+R<<1)|0;qa=ra;b[qa>>1]=Q;b[qa+2>>1]=Q>>>16;ra=ra+4|0;b[ra>>1]=S;b[ra+2>>1]=S>>>16;R=R+4|0}while((R|0)<(k|0))}while(0);g=(g|0)==0;if((f|0)==0&(U|0)>0){f=0;do{ra=v+((f|1)<<1)|0;qa=ra;b[qa>>1]=0;b[qa+2>>1]=0>>>16;ra=ra+4|0;b[ra>>1]=0;b[ra+2>>1]=0>>>16;f=f+4|0}while((f|0)<(U|0))}b[y>>1]=b[v>>1]|0;if(g)break;else f=0;while(1)if((f|0)<(V|0))f=f+4|0;else break}while(0);a:do if(!fa){if(ea){P=ke(e[v+(k<<1)>>1]|0,0,65537,65537)|0;f=D;if((k|0)<=0){P=84;break}g=k+1|0;Q=0;while(1){ra=v+(g+Q<<1)|0;qa=ra;b[qa>>1]=P;b[qa+2>>1]=P>>>16;ra=ra+4|0;b[ra>>1]=f;b[ra+2>>1]=f>>>16;Q=Q+4|0;if((Q|0)>=(k|0)){P=84;break a}}}if(ka){f=ke(e[v>>1]|0,0,65537,65537)|0;P=D;O=k<<1;if((k|0)>0)N=0;else{P=87;break}while(1){ra=v+((N|1)<<1)|0;qa=ra;b[qa>>1]=f;b[qa+2>>1]=f>>>16;ra=ra+4|0;b[ra>>1]=P;b[ra+2>>1]=P>>>16;N=N+4|0;if((N|0)>=(O|0)){P=87;break a}}}if(ja){N=b[B>>1]|0;b[v>>1]=N;N=ke(N&65535|0,0,65537,65537)|0;O=D;M=k<<1;if((k|0)>0)P=0;else{P=89;break}while(1){ra=v+((P|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=O;b[ra+2>>1]=O>>>16;P=P+4|0;if((P|0)>=(M|0)){P=89;break a}}}if(!W){g=1<>1]=g;R=ke(g&65535|0,0,65537,65537)|0;Q=D;P=k<<1;f=(k|0)>0;if(f)S=0;else{P=84;break}do{ra=y+((S|1)<<1)|0;qa=ra;b[qa>>1]=R;b[qa+2>>1]=R>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;S=S+4|0}while((S|0)<(P|0));g=ke(g&65535|0,0,65537,65537)|0;Q=D;if(f)f=0;else{P=84;break}while(1){ra=v+((f|1)<<1)|0;qa=ra;b[qa>>1]=g;b[qa+2>>1]=g>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;f=f+4|0;if((f|0)>=(P|0)){P=84;break a}}}M=y+(k+1<<1)|0;O=b[M>>1]|0;N=ke(O&65535|0,0,65537,65537)|0;L=D;K=(k|0)>0;if(K)O=0;else{b[v>>1]=O;break}do{ra=y+((O|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;O=O+4|0}while((O|0)<(k|0));M=b[M>>1]|0;b[v>>1]=M;M=ke(M&65535|0,0,65537,65537)|0;L=D;N=k<<1;if(K){K=0;do{ra=v+((K|1)<<1)|0;qa=ra;b[qa>>1]=M;b[qa+2>>1]=M>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;K=K+4|0}while((K|0)<(N|0));P=92}else P=92}else P=84;while(0);if((P|0)==84)if((da|0)==0?(N=ke(e[v+(k+1<<1)>>1]|0,0,65537,65537)|0,O=D,(k|0)>0):0){P=0;do{ra=v+((P|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=O;b[ra+2>>1]=O>>>16;P=P+4|0}while((P|0)<(k|0));P=87}else P=87;if((P|0)==87)if(!M){b[v>>1]=b[w>>1]|0;P=89}else P=89;if((P|0)==89)if((Z|0)==0?(K=ke(e[v>>1]|0,0,65537,65537)|0,L=D,(k|0)>0):0){M=0;do{ra=y+((M|1)<<1)|0;qa=ra;b[qa>>1]=K;b[qa+2>>1]=K>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;M=M+4|0}while((M|0)<(k|0));P=92}else P=92;if(((P|0)==92?!W:0)?(J=ke(e[y+(k<<1)>>1]|0,0,65537,65537)|0,I=D,(k|0)>0):0){K=k+1|0;L=0;do{ra=y+(K+L<<1)|0;qa=ra;b[qa>>1]=J;b[qa+2>>1]=J>>>16;ra=ra+4|0;b[ra>>1]=I;b[ra+2>>1]=I>>>16;L=L+4|0}while((L|0)<(k|0))}I=b[v>>1]|0;b[y>>1]=I;b:do if(!(c[s+13112>>2]|0)){if(p){if((r|0)==1|(k|0)==4){u=B;break}}else if(((r|0)==1?1:(c[s+4>>2]|0)!=3)|(k|0)==4){u=B;break}ra=r+ -26|0;ra=(ra|0)>-1?ra:26-r|0;qa=r+ -10|0;qa=(qa|0)>-1?qa:10-r|0;if((((ra|0)>(qa|0)?qa:ra)|0)>(c[1576+(h+ -3<<2)>>2]|0)){J=1<>0]|0)!=0&(h|0)==5?(G=I&65535,H=b[y+128>>1]|0,F=H&65535,ra=F+G-(e[y+64>>1]<<1)|0,(((ra|0)>-1?ra:0-ra|0)|0)<(J|0)):0)?(C=v+128|0,E=b[C>>1]|0,ra=(E&65535)+G-(e[v+64>>1]<<1)|0,(((ra|0)>-1?ra:0-ra|0)|0)<(J|0)):0){b[x>>1]=I;b[x+128>>1]=H;y=0;do{ra=y;y=y+1|0;b[x+(y<<1)>>1]=(($(G,63-ra|0)|0)+32+($(F,y)|0)|0)>>>6}while((y|0)!=63);y=0;while(1){x=y+1|0;b[v+(x<<1)>>1]=(($(I&65535,63-y|0)|0)+32+($(E&65535,x)|0)|0)>>>6;if((x|0)==63)break b;I=b[v>>1]|0;E=b[C>>1]|0;y=x}}C=k<<1;H=b[v+(C<<1)>>1]|0;b[A+(C<<1)>>1]=H;F=b[y+(C<<1)>>1]|0;b[x+(C<<1)>>1]=F;C=C+ -2|0;E=(C|0)>-1;if(E){G=C;while(1){ra=G+1|0;qa=H;H=b[v+(ra<<1)>>1]|0;b[A+(ra<<1)>>1]=((qa&65535)+2+((H&65535)<<1)+(e[v+(G<<1)>>1]|0)|0)>>>2;if((G|0)<=0)break;else G=G+ -1|0}}ra=((e[w>>1]|0)+2+((I&65535)<<1)+(e[B>>1]|0)|0)>>>2&65535;b[A>>1]=ra;b[x>>1]=ra;if(E)while(1){ra=C+1|0;qa=F;F=b[y+(ra<<1)>>1]|0;b[x+(ra<<1)>>1]=((qa&65535)+2+((F&65535)<<1)+(e[y+(C<<1)>>1]|0)|0)>>>2;if((C|0)<=0){w=z;break}else C=C+ -1|0}else w=z}else u=B}else u=B;while(0);if(!r){Vb(o,u,w,d,h);i=l;return}else if((r|0)==1){if((k|0)>0){j=k;q=0;do{j=(e[w+(q<<1)>>1]|0)+j+(e[u+(q<<1)>>1]|0)|0;q=q+1|0}while((q|0)!=(k|0));r=j>>h+1;s=ke(r|0,((r|0)<0)<<31>>31|0,65537,65537)|0;t=D;q=0;do{j=($(q,d)|0)+m|0;h=0;do{ra=n+(j+h<<1)|0;qa=ra;a[qa>>0]=s;a[qa+1>>0]=s>>8;a[qa+2>>0]=s>>16;a[qa+3>>0]=s>>24;ra=ra+4|0;a[ra>>0]=t;a[ra+1>>0]=t>>8;a[ra+2>>0]=t>>16;a[ra+3>>0]=t>>24;h=h+4|0}while((h|0)<(k|0));q=q+1|0}while((q|0)!=(k|0))}else r=k>>h+1;if(!(p&(k|0)<32)){i=l;return}b[o>>1]=((r<<1)+2+(e[w>>1]|0)+(e[u>>1]|0)|0)>>>2;if((k|0)<=1){i=l;return}o=(r*3|0)+2|0;p=1;do{b[n+(p+m<<1)>>1]=((e[u+(p<<1)>>1]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));p=1;do{b[n+(($(p,d)|0)+m<<1)>>1]=((e[w+(p<<1)>>1]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));i=l;return}else{if(!(c[s+13104>>2]|0))m=0;else m=(a[t+31256>>0]|0)!=0;Wb(o,u,w,d,j,r,k,m&1,q);i=l;return}}function Vb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,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;m=i;j=1<>1]|0,l-r|0)|0;s=r;r=r+1|0;u=$(e[h>>1]|0,r)|0;t=$(e[c+(s<<1)>>1]|0,p)|0;b[a+(s+q<<1)>>1]=v+j+u+t+($(e[k>>1]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function Wb(c,f,g,h,j,k,l,m,n){c=c|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;o=i;i=i+208|0;r=o;p=a[1592+(k+ -2)>>0]|0;q=r+(l<<1)|0;s=($(p,l)|0)>>5;if((k|0)>17){u=f+ -2|0;t=k+ -11|0;if(t>>>0<15&(s|0)<-1){if((l|0)>=0){u=0;do{w=f+(u+ -1<<1)|0;y=w;y=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;x=r+(u+l<<1)|0;v=x;b[v>>1]=y;b[v+2>>1]=y>>>16;x=x+4|0;b[x>>1]=w;b[x+2>>1]=w>>>16;u=u+4|0}while((u|0)<=(l|0))}if((s|0)<0){t=b[1632+(t<<1)>>1]|0;do{b[r+(s+l<<1)>>1]=b[g+((($(t,s)|0)+128>>8)+ -1<<1)>>1]|0;s=s+1|0}while((s|0)!=0)}}else q=u;r=(l|0)>0;if(r){s=0;do{w=s;s=s+1|0;v=$(s,p)|0;t=v>>5;v=v&31;if(!v){t=t+1|0;v=$(w,h)|0;u=0;do{x=q+(t+u<<1)|0;z=x;z=d[z>>0]|d[z+1>>0]<<8|d[z+2>>0]<<16|d[z+3>>0]<<24;x=x+4|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=c+(u+v<<1)|0;w=y;a[w>>0]=z;a[w+1>>0]=z>>8;a[w+2>>0]=z>>16;a[w+3>>0]=z>>24;y=y+4|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;u=u+4|0}while((u|0)<(l|0))}else{u=32-v|0;w=$(w,h)|0;x=0;do{z=x+t|0;y=$(e[q+(z+1<<1)>>1]|0,u)|0;b[c+(x+w<<1)>>1]=(y+16+($(e[q+(z+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|1;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|2;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|3;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;x=x+4|0}while((x|0)<(l|0))}}while((s|0)!=(l|0))}if(!((k|0)==26&(j|0)==0&(l|0)<32&(m|0)==0&r)){i=o;return}j=g+ -2|0;k=1<>1]|0)-(e[j>>1]|0)>>1)+(e[f>>1]|0)|0;if(p&m)p=0-p>>31&k;b[c+(($(n,h)|0)<<1)>>1]=p;n=n+1|0}while((n|0)!=(l|0));i=o;return}u=g+ -2|0;t=k+ -11|0;if(t>>>0<15&(s|0)<-1){if((l|0)>=0){u=0;do{z=g+(u+ -1<<1)|0;x=z;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;z=z+4|0;z=d[z>>0]|d[z+1>>0]<<8|d[z+2>>0]<<16|d[z+3>>0]<<24;A=r+(u+l<<1)|0;y=A;b[y>>1]=x;b[y+2>>1]=x>>>16;A=A+4|0;b[A>>1]=z;b[A+2>>1]=z>>>16;u=u+4|0}while((u|0)<=(l|0))}if((s|0)<0){t=b[1632+(t<<1)>>1]|0;do{b[r+(s+l<<1)>>1]=b[f+((($(t,s)|0)+128>>8)+ -1<<1)>>1]|0;s=s+1|0}while((s|0)!=0)}}else q=u;r=(l|0)>0;if(r){t=0;do{s=t;t=t+1|0;w=$(t,p)|0;x=w>>5;w=w&31;if(!w){v=x+1|0;u=0;do{b[c+(($(u,h)|0)+s<<1)>>1]=b[q+(v+u<<1)>>1]|0;u=u+1|0}while((u|0)!=(l|0))}else{v=32-w|0;u=0;do{A=u+x|0;z=$(e[q+(A+1<<1)>>1]|0,v)|0;b[c+(($(u,h)|0)+s<<1)>>1]=(z+16+($(e[q+(A+2<<1)>>1]|0,w)|0)|0)>>>5;u=u+1|0}while((u|0)!=(l|0))}}while((t|0)!=(l|0))}if(!((k|0)==10&(j|0)==0&(l|0)<32&(m|0)==0&r)){i=o;return}h=f+ -2|0;j=1<>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(m&n)m=0-m>>31&j;b[c+(k<<1)>>1]=m;m=k|1;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;m=k|2;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;m=k|3;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;k=k+4|0}while((k|0)<(l|0));i=o;return}function Xb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+46|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Uc(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0;i=g;return}function Yb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,6);i=b;return}function Zb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,-1);i=b;return}function _b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0){j=-1094995529;i=g;return j|0}j=d+2524|0;if(c[(c[j>>2]|0)+304>>2]|0){j=-12;i=g;return j|0}if((Tc(c[d+4>>2]|0,d+2528|0,1)|0)<0){j=-12;i=g;return j|0}k=d+200|0;m=c[k>>2]|0;c[d+2540>>2]=$(c[m+13132>>2]|0,c[m+13128>>2]|0)|0;m=d+4520|0;l=c[j>>2]|0;c[l+244>>2]=(c[m>>2]|0)==1&1;c[l+240>>2]=((c[m>>2]|0)+ -1|0)>>>0<2&1;c[e>>2]=l;c[d+2520>>2]=j;a[d+2570>>0]=(a[d+1450>>0]|0)==0?2:3;c[d+2544>>2]=f;b[d+2568>>1]=b[h>>1]|0;j=d+2552|0;f=(c[k>>2]|0)+20|0;c[j+0>>2]=c[f+0>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=0;i=g;return j|0}function $b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;l=d+2046|0;k=d+2572|0;h=d+4366|0;n=(f|0)==0;m=d+4364|0;f=d+200|0;while(1){if((a[l>>0]|0)==1){p=d+2524|0;o=d+2570|0;if(((a[o>>0]&8)==0?(c[d+2544>>2]|0)!=(c[k>>2]|0):0)?(b[d+2568>>1]|0)==(b[h>>1]|0):0)Xb(d,p,1)}else o=d+2570|0;if(!(a[o>>0]&1))o=0;else o=(b[d+2568>>1]|0)==(b[h>>1]|0)&1;if(((n?(b[h>>1]|0)==(b[m>>1]|0):0)?(j=c[f>>2]|0,(j|0)!=0):0)?(o|0)<=(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=21;break}if(o){h=15;break}o=b[h>>1]|0;if(o<<16>>16==(b[m>>1]|0)){d=0;h=21;break}b[h>>1]=(o&65535)+1&255}if((h|0)==15){h=d+2524|0;e=Ad(e,c[h>>2]|0)|0;if(!(a[d+2570>>0]&8))Xb(d,h,1);else Xb(d,h,9);p=(e|0)<0?e:1;i=g;return p|0}else if((h|0)==21){i=g;return d|0}return 0}function ac(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1664]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1664+(c<<5)+d>>0]=$(a[2688+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function bc(a,b){a=a|0;b=b|0;c[a>>2]=4;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=2;c[a+28>>2]=1;c[a+32>>2]=3;c[a+36>>2]=4;c[a+40>>2]=5;c[a+44>>2]=6;c[a+48>>2]=2;c[a+52>>2]=3;c[a+56>>2]=4;c[a+60>>2]=5;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=5;c[a+1680>>2]=6;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=5;c[a+1696>>2]=6;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function cc(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;c=c>>>1;if((e|0)<=0){i=j;return}k=(d|0)>0;h=h-g|0;l=0;while(1){if(k){m=0;do{b[a+(m<<1)>>1]=(_c(f,g)|0)<>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==4)break;else l=l+2|0}j=j+1|0;if((j|0)==4)break;else{c=c+8|0;a=a+(d<<1)|0}}i=g;return} +function La(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Ma(){return i|0}function Na(a){a=a|0;i=a}function Oa(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Pa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Qa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ra(a){a=a|0;D=a}function Sa(){return D|0}function Ta(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}fe(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function Ua(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Va(b);f=b+1449|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)Wa(b);if(a[b+1448>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){Wa(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}fe(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Xa(c[b+136>>2]|0);else Va(b);Wa(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;Ya((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Xa(c[d>>2]|0);else Va(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Wa(b);i=e;return}else{fe(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function Va(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;ad(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){ad(d,h);f=c[g>>2]|0}Yc((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function Wa(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+1440>>2]|0;e=2-f|0;e=(a[b+2060>>0]|0)==0|(f|0)==2?e:e^3;f=b+2112|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function Xa(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Yc(d,e,a);i=b;return}function Ya(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}yb(a);g=0;i=b;return g|0}function Za(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a)|0;i=b;return a|0}function _a(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[2880+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4032>>0]|0;e=h&1;h=c[j>>2]|0;g=d[2880+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[2880+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function $a(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function ab(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){yb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function bb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function db(a){a=a|0;var b=0;b=i;a=ab((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function eb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function fb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function gb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+5|0)|0;i=b;return a|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(_a(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(ab((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function jb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+176|0)|0;i=b;return a|0}function kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(_a(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function lb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+4336>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+4336>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}function mb(a,b){a=a|0;b=b|0;var d=0;d=i;b=c[a+136>>2]|0;b=(_a(b+224|0,b+13|0)|0)==0;i=d;return(b?3:0)|0}function nb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function ob(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+17|0)|0;i=b;return a|0}function pb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function qb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function rb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)<<1;d=ab((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function sb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function tb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function ub(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(_a(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function wb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function xb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Da=0,Ea=0,Ga=0,Ha=0,Ia=0,Ja=0,La=0,Ma=0,Na=0;o=i;i=i+96|0;v=o+24|0;u=o+8|0;s=o;t=f+136|0;p=c[t>>2]|0;q=c[f+160>>2]|0;m=c[q+(l<<2)+32>>2]|0;n=f+200|0;T=c[n>>2]|0;h=$(h>>c[T+(l<<2)+13180>>2],m)|0;g=(c[q+(l<<2)>>2]|0)+(h+(g>>c[T+(l<<2)+13168>>2]<>2]))|0;T=(l|0)!=0;h=p+320|0;q=T?p+11680|0:h;w=v+0|0;r=w+64|0;do{a[w>>0]=0;w=w+1|0}while((w|0)<(r|0));S=1<>2]|0;r=S<>0]|0)){A=a[p+272>>0]|0;C=f+204|0;Ma=c[C>>2]|0;if((a[Ma+21>>0]|0)!=0?(d[Ma+1629>>0]|0)>=(j|0):0){F=c[t>>2]|0;F=_a(F+224|0,F+(T&1|46)|0)|0}else F=0;if(y){B=c[n>>2]|0;G=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+2072>>2]|0)+(c[B+28>>2]|0)+(a[p+302>>0]|0)|0;else B=(c[f+2076>>2]|0)+(c[B+32>>2]|0)+(a[p+303>>0]|0)|0;E=B+A|0;G=c[n>>2]|0;A=c[G+13192>>2]|0;B=0-A|0;if((E|0)>=(B|0))B=(E|0)>57?57:E;do if((c[G+4>>2]|0)==1){if((B|0)>=30)if((B|0)>43){B=B+ -6|0;break}else{B=c[176+(B+ -30<<2)>>2]|0;break}}else B=(B|0)>51?51:B;while(0);B=A+B|0}A=(c[G+52>>2]|0)+j|0;E=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[G+634>>0]|0)!=0?!((F|0)!=0&(j|0)>2):0){H=c[C>>2]|0;H=(a[H+68>>0]|0)==0?G+635|0:H+69|0;G=((c[p+31244>>2]|0)!=1?3:0)+l|0;C=H+((j+ -2|0)*384|0)+(G<<6)|0;if((j|0)>3)ia=a[H+((j+ -4|0)*6|0)+G+1536>>0]|0;else ia=16}else{ia=16;C=0}}else{A=0;ia=0;B=0;C=0;E=0;F=0}J=(j<<1)+ -1|0;if(y){G=(j*3|0)+ -6+(j+ -1>>2)|0;I=j+1>>2}else{G=15;I=j+ -2|0}if((J|0)>0){K=G+52|0;H=0;while(1){Ma=c[t>>2]|0;L=H+1|0;if(!(_a(Ma+224|0,Ma+(K+(H>>I))|0)|0))break;if((L|0)<(J|0))H=L;else{H=L;break}}L=G+70|0;G=0;while(1){Ma=c[t>>2]|0;K=G+1|0;if(!(_a(Ma+224|0,Ma+(L+(G>>I))|0)|0))break;if((K|0)<(J|0))G=K;else{G=K;break}}if((H|0)>3){I=(H>>1)+ -1|0;K=ab((c[t>>2]|0)+224|0)|0;if((I|0)>1){J=1;do{K=ab((c[t>>2]|0)+224|0)|0|K<<1;J=J+1|0}while((J|0)!=(I|0))}H=K+((H&1|2)<3){J=(G>>1)+ -1|0;K=ab((c[t>>2]|0)+224|0)|0;if((J|0)>1){I=1;do{K=ab((c[t>>2]|0)+224|0)|0|K<<1;I=I+1|0}while((I|0)!=(J|0))}I=H;L=K+((G&1|2)<>2;N=L>>2;if((k|0)==1){G=I;H=L;P=d[536+(L<<3)+I>>0]|0;I=488;L=504;J=496;K=520;break}else if(k){J=I;K=L;x=49;break}P=d[(I&3)+(392+((L&3)<<2))>>0]|0;if((S|0)==8){G=I;H=L;P=(d[416+(N<<1)+M>>0]<<4)+P|0;I=496;L=8;J=488;K=24;break}else if((S|0)==16){G=I;H=L;P=(d[392+(N<<2)+M>>0]<<4)+P|0;I=8;L=8;J=24;K=24;break}else if((S|0)==4){G=I;H=L;I=408;L=8;J=408;K=24;break}else{G=I;H=L;P=(d[424+(N<<3)+M>>0]<<4)+P|0;I=40;L=8;J=104;K=24;break}}else{J=L;K=I;M=L>>2;N=I>>2;x=49}while(0);if((x|0)==49){G=J;H=K;P=d[536+(J<<3)+K>>0]|0;I=496;L=520;J=488;K=504}O=P+1|0;Q=P>>4;if((Q|0)>-1){P=(1<0;R=l?90:88;S=S+ -1>>2;W=T?27:0;U=(j|0)==2;T=W+3|0;V=(j|0)==3;Z=(k|0)==0?9:15;_=y?0:27;da=(F|0)==0;aa=y?42:43;fa=y?40:41;ba=y?2:0;ea=p+31244|0;ca=w&-17;ga=f+204|0;Y=((B|0)<0)<<31>>31;X=((A|0)<0)<<31>>31;ha=(F|0)!=0&(j|0)>2;k=(j|0)<4;ia=ia&255;ma=(y&1)<<1;ja=ma|1;ra=1;ka=Q;oa=0;xa=16;while(1){na=ka<<4;wa=a[I+ka>>0]|0;ta=wa&255;va=a[J+ka>>0]|0;ua=va&255;la=(ka|0)>0;if((ka|0)<(Q|0)&la){if((ta|0)<(P|0))pa=d[v+(ta+1<<3)+ua>>0]|0;else pa=0;if((ua|0)<(P|0))pa=(d[ua+1+(v+(ta<<3))>>0]|0)+pa|0;ya=c[t>>2]|0;ya=(_a(ya+224|0,ya+(((pa|0)>1?1:pa)+R)|0)|0)&255;a[v+(ta<<3)+ua>>0]=ya;qa=1}else{if(!((ta|0)==(M|0)&(ua|0)==(N|0)))if(!(wa<<24>>24))ya=va<<24>>24==0&1;else ya=0;else ya=1;a[v+(ta<<3)+ua>>0]=ya;qa=0}na=O-na|0;pa=(ka|0)==(Q|0);if(pa){a[u>>0]=na+255;sa=na+ -2|0;na=1}else{sa=15;na=0}if((ta|0)<(S|0))za=(a[v+(ta+1<<3)+ua>>0]|0)!=0&1;else za=0;if((ua|0)<(S|0))za=((a[ua+1+(v+(ta<<3))>>0]|0)!=0&1)<<1|za;do if(ya<<24>>24!=0&(sa|0)>-1){if(!(c[(c[n>>2]|0)+13100>>2]|0))if(U){wa=600;va=W}else x=73;else if(da){ya=(a[z>>0]|0)!=0;if(ya|U){wa=ya?664:600;va=ya?fa:W}else x=73}else{wa=664;va=fa}do if((x|0)==73){x=0;ya=(za<<4)+616|0;if(!y){wa=ya;va=W+(V?9:12)|0;break}va=(va|wa)<<24>>24==0?W:T;if(V){wa=ya;va=va+Z|0;break}else{wa=ya;va=va+21|0;break}}while(0);if((sa|0)>0){ya=va+92|0;do{Ma=c[t>>2]|0;if(_a(Ma+224|0,Ma+(ya+(d[wa+((d[K+sa>>0]<<2)+(d[L+sa>>0]|0))>>0]|0))|0)|0){a[u+(na&255)>>0]=sa;qa=0;na=na+1<<24>>24}sa=sa+ -1|0}while((sa|0)>0)}if(qa){a[u+(na&255)>>0]=0;qa=na+1<<24>>24;break}if(c[(c[n>>2]|0)+13100>>2]|0)if(da?(a[z>>0]|0)==0:0)x=87;else qa=aa;else x=87;if((x|0)==87){x=0;qa=(ka|0)==0?_:va+2|0}Ma=c[t>>2]|0;if((_a(Ma+224|0,Ma+(qa+92)|0)|0)==1){a[u+(na&255)>>0]=0;qa=na+1<<24>>24}else qa=na}else qa=na;while(0);na=qa&255;a:do if(qa<<24>>24){qa=la?ba:0;if(!(c[(c[n>>2]|0)+13116>>2]|0))Ea=0;else{if(da?(a[z>>0]|0)==0:0)oa=ma;else oa=ja;Ea=(d[p+oa+199>>0]|0)>>>2}sa=qa|(ra|0)==0&(pa^1)&1;Ba=a[u>>0]|0;va=Ba&255;qa=na>>>0>8?8:na;if(!qa){pa=-1;ra=1}else{ya=sa<<2;pa=-1;ra=1;wa=0;do{Ma=ra+ya|0;La=c[t>>2]|0;Ma=(_a(La+224|0,La+((l?Ma+16|0:Ma)+136)|0)|0)&255;a[s+wa>>0]=Ma;if(!(Ma<<24>>24))ra=((ra+ -1|0)>>>0<2&1)+ra|0;else{pa=(pa|0)==-1?wa:pa;ra=0}wa=wa+1|0}while((wa|0)<(qa|0))}wa=na+ -1|0;qa=a[u+wa>>0]|0;ya=qa&255;do if(!(a[z>>0]|0)){if((c[ea>>2]|0)==1?!((c[(c[n>>2]|0)+13104>>2]|0)==0|da|(ca|0)!=10):0){va=0;break}va=(va-ya|0)>3&1}else va=0;while(0);if((pa|0)!=-1){La=c[t>>2]|0;La=_a(La+224|0,La+((l?sa|4:sa)|160)|0)|0;Ma=s+pa|0;a[Ma>>0]=(d[Ma>>0]|0)+La}sa=(va|0)==0;if((a[(c[ga>>2]|0)+4>>0]|0)==0|sa){wa=0;va=0;do{va=ab((c[t>>2]|0)+224|0)|0|va<<1;wa=wa+1|0}while((wa|0)<(na|0));za=va<<16-na}else{va=wa&255;if(!((wa&255)<<24>>24))ya=0;else{wa=0;ya=0;do{ya=ab((c[t>>2]|0)+224|0)|0|ya<<1;wa=wa+1|0}while((wa|0)<(va|0))}za=ya<<17-na}ta=ta<<2;va=ua<<2;ua=p+oa+199|0;wa=0;Ga=0;Aa=xa;Da=0;while(1){xa=Ba&255;ya=(d[L+xa>>0]|0)+ta|0;xa=(d[K+xa>>0]|0)+va|0;b:do if((wa|0)<8){Ha=(d[s+wa>>0]|0)+1|0;Ma=(wa|0)==(pa|0);if((Ha|0)==((Ma?3:2)|0)&0==((Ma?0:0)|0))Ia=0;else{Ia=0;break}while(1){Ja=Ia+1|0;if(!(ab((c[t>>2]|0)+224|0)|0)){x=120;break}if((Ja|0)<31)Ia=Ja;else{x=124;break}}do if((x|0)==120){x=0;if((Ia|0)>=3){Ja=Ia;x=124;break}if((Ea|0)>0){Ja=0;La=0;do{La=ab((c[t>>2]|0)+224|0)|0|La<<1;Ja=Ja+1|0}while((Ja|0)!=(Ea|0))}else La=0;Ja=La+(Ia<0){La=Ea+ -3+Ja|0;Ja=0;Ma=0;do{Ma=ab((c[t>>2]|0)+224|0)|0|Ma<<1;Ja=Ja+1|0}while((Ja|0)!=(La|0))}else Ma=0;Ja=Ma+((1<>31|0,Ha|0,0)|0;Ia=D;La=3<>31;Ma=c[(c[n>>2]|0)+13116>>2]|0;do if((Ia|0)>(Na|0)|(Ia|0)==(Na|0)&Ha>>>0>La>>>0){La=Ea+1|0;if(Ma){Ea=La;break}Ea=(Ea|0)>3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ga|0)==0))break;Ga=a[ua>>0]|0;La=(Ga&255)>>>2;if((Ja|0)>=(3<>0]=Ga+1<<24>>24;Ga=1;break}if((Ja<<1|0)>=(1<>24==0){Ga=1;break}a[ua>>0]=Ga+ -1<<24>>24;Ga=1}else{Ha=0;while(1){Ia=Ha+1|0;if(!(ab((c[t>>2]|0)+224|0)|0)){x=138;break}if((Ia|0)<31)Ha=Ia;else{x=142;break}}do if((x|0)==138){x=0;if((Ha|0)>=3){Ia=Ha;x=142;break}if((Ea|0)>0){Ia=0;Ja=0;do{Ja=ab((c[t>>2]|0)+224|0)|0|Ja<<1;Ia=Ia+1|0}while((Ia|0)!=(Ea|0))}else Ja=0;Ja=Ja+(Ha<0){Ja=Ea+ -3+Ia|0;Ia=0;La=0;do{La=ab((c[t>>2]|0)+224|0)|0|La<<1;Ia=Ia+1|0}while((Ia|0)!=(Ja|0))}else La=0;Ja=La+((1<>31;Ma=c[(c[n>>2]|0)+13116>>2]|0;do if((Ja|0)>=(3<3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ga|0)==0))break;La=a[ua>>0]|0;Ga=(La&255)>>>2;if((Ja|0)>=(3<>0]=La+1<<24>>24;Ga=1;break}if((Ja<<1|0)>=(1<>24==0){Ga=1;break}a[ua>>0]=La+ -1<<24>>24;Ga=1}while(0);do if(!((a[(c[ga>>2]|0)+4>>0]|0)==0|sa)){Da=ae(Ha|0,Ia|0,Da|0,0)|0;if(Ba<<24>>24!=qa<<24>>24)break;Na=(Da&1|0)==0;Ma=$d(0,0,Ha|0,Ia|0)|0;Ha=Na?Ha:Ma;Ia=Na?Ia:D}while(0);Na=(za&32768|0)==0;Ba=$d(0,0,Ha|0,Ia|0)|0;Ba=Na?Ha:Ba;Ha=Na?Ia:D;za=za<<1&131070;Ia=Ba&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[n>>2]|0)+634>>0]|0)==0|ha)){if(!((xa|ya|0)!=0|k)){Aa=ia;break}if((j|0)==3)Aa=(xa<<3)+ya|0;else if((j|0)==4)Aa=(xa>>>1<<3)+(ya>>>1)|0;else if((j|0)==5)Aa=(xa>>>2<<3)+(ya>>>2)|0;else Aa=(xa<<2)+ya|0;Aa=d[C+Aa>>0]|0}while(0);Ba=ke(Ba|0,Ha|0,B|0,Y|0)|0;Ba=ke(Ba|0,D|0,Aa|0,((Aa|0)<0)<<31>>31|0)|0;Ba=ae(Ba|0,D|0,A|0,X|0)|0;Ba=_d(Ba|0,D|0,E|0)|0;Ha=D;if((Ha|0)<0){Ia=(Ba&-32768|0)==-32768&(Ha&268435455|0)==268435455?Ba&65535:-32768;break}else{Ia=Ha>>>0>0|(Ha|0)==0&Ba>>>0>32767?32767:Ba&65535;break}}while(0);b[q+((xa<>1]=Ia;wa=wa+1|0;if((wa|0)>=(na|0)){xa=Aa;break a}Ba=a[u+wa>>0]|0}}while(0);if(la)ka=ka+ -1|0;else break}}do if(a[z>>0]|0){if((c[(c[n>>2]|0)+13104>>2]|0)!=0?(w&-17|0)==10:0)Fa[c[f+2632>>2]&7](q,j&65535,(w|0)==26&1)}else{if(F){s=c[n>>2]|0;if((c[s+13096>>2]|0)!=0&(j|0)==2?(c[p+31244>>2]|0)==1:0){t=0;do{La=q+(15-t<<1)|0;Ma=b[La>>1]|0;Na=q+(t<<1)|0;b[La>>1]=b[Na>>1]|0;b[Na>>1]=Ma;t=t+1|0}while((t|0)!=8)}t=j&65535;Fa[c[f+2628>>2]&7](q,t,c[s+52>>2]|0);if(!(c[(c[n>>2]|0)+13104>>2]|0))break;if((c[p+31244>>2]|0)!=1)break;if((w&-17|0)!=10)break;Fa[c[f+2632>>2]&7](q,t,(w|0)==26&1);break}if(y&(c[p+31244>>2]|0)==1&(j|0)==2){Ca[c[f+2636>>2]&7](q,c[(c[n>>2]|0)+52>>2]|0);break}s=(G|0)>(H|0)?G:H;if(!s){Ca[c[f+(j+ -2<<2)+2656>>2]&7](q,c[(c[n>>2]|0)+52>>2]|0);break}t=H+4+G|0;do if((s|0)>=4){if((s|0)<8){t=(t|0)<8?t:8;break}if((s|0)<12)t=(t|0)<24?t:24}else t=(t|0)<4?t:4;while(0);Fa[c[f+(j+ -2<<2)+2640>>2]&7](q,t,c[(c[n>>2]|0)+52>>2]|0)}while(0);if(!(a[p+304>>0]|0)){Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}if((r|0)<=0){Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}p=c[p+284>>2]|0;s=0;do{Na=q+(s<<1)|0;b[Na>>1]=(($(b[h+(s<<1)>>1]|0,p)|0)>>>3)+(e[Na>>1]|0);s=s+1|0}while((s|0)!=(r|0));Ma=j+ -2|0;Ma=f+(Ma<<2)+2612|0;Ma=c[Ma>>2]|0;Na=c[n>>2]|0;Na=Na+52|0;Na=c[Na>>2]|0;Ka[Ma&7](g,q,m,Na);i=o;return}function yb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+2112>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+4316>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+4316>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Ab(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;j=c[b+136>>2]|0;k=b+200|0;do if((e|0)>0&(e&7|0)==0){if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&8|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;h=1<0){l=b+2596|0;m=b+4320|0;n=0;do{o=n+d+($(c[l>>2]|0,e)|0)>>2;a[(c[m>>2]|0)+o>>0]=2;n=n+4|0}while((n|0)<(h|0))}}while(0);if(!((d|0)>0&(d&7|0)==0)){i=g;return}if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&2|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}h=1<>2]|0,k+e|0)|0)+d>>2;a[(c[b>>2]|0)+o>>0]=2;k=k+4|0}while((k|0)<(h|0));i=g;return}function Bb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0;j=i;i=i+32|0;o=j+8|0;x=j;n=j+18|0;s=j+16|0;l=e+200|0;K=c[l>>2]|0;v=c[K+13120>>2]|0;k=(v-h|0)<=(f|0);b[n>>1]=0;b[s>>1]=0;w=c[K+13080>>2]|0;u=1<>w,c[K+13128>>2]|0)|0)+(f>>w)|0;t=c[e+2508>>2]|0;m=c[t+(w<<3)+4>>2]|0;y=c[t+(w<<3)>>2]|0;if((c[K+68>>2]|0)!=0?(a[K+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;r=c[K+52>>2]|0;q=(f|0)!=0;if(q){w=w+ -1|0;z=c[t+(w<<3)>>2]|0;w=c[t+(w<<3)+4>>2]|0}else{z=0;w=0}t=u+f|0;t=(t|0)>(v|0)?v:t;u=u+g|0;A=c[K+13124>>2]|0;u=(u|0)>(A|0)?A:u;A=(t|0)==(v|0)?t:t+ -8|0;v=(u|0)>(g|0);if(v){K=q?f:8;N=(K|0)<(t|0);Q=q?f+ -8|0:0;F=e+2596|0;P=e+4320|0;I=e+4316|0;C=x+4|0;D=e+160|0;E=n+1|0;R=s+1|0;L=e+4300|0;M=e+4284|0;J=e+4324|0;G=e+4304|0;H=e+4288|0;B=(Q|0)>=(A|0);U=y;T=m;O=g;do{if(N){W=O+4|0;X=T+ -2&-2;V=K;do{_=c[F>>2]|0;da=($(_,O)|0)+V>>2;aa=c[J>>2]|0;da=a[aa+da>>0]|0;ca=da&255;_=a[aa+(($(_,W)|0)+V>>2)>>0]|0;aa=_&255;da=da<<24>>24!=0;_=_<<24>>24==0;do if(!(_&(da^1))){S=V+ -1|0;Y=c[l>>2]|0;ba=c[Y+13064>>2]|0;Z=$(O>>ba,c[Y+13140>>2]|0)|0;ea=c[I>>2]|0;ba=(a[ea+(Z+(S>>ba))>>0]|0)+1+(a[ea+(Z+(V>>ba))>>0]|0)>>1;Z=ba+U|0;if((Z|0)<0)Z=0;else Z=(Z|0)>51?51:Z;Z=d[1280+Z>>0]|0;if(da){ca=(ca<<1)+X+ba|0;if((ca|0)<0)ca=0;else ca=(ca|0)>53?53:ca;ca=d[1336+ca>>0]|0}else ca=0;c[x>>2]=ca;if(_)_=0;else{_=(aa<<1)+X+ba|0;if((_|0)<0)_=0;else _=(_|0)>53?53:_;_=d[1336+_>>0]|0}c[C>>2]=_;da=c[D>>2]|0;_=c[da+32>>2]|0;ea=$(_,O)|0;Y=(c[da>>2]|0)+((V<>2])+ea)|0;if(p){a[n>>0]=Gb(e,S,O)|0;a[E>>0]=Gb(e,S,W)|0;a[s>>0]=Gb(e,V,O)|0;a[R>>0]=Gb(e,V,W)|0;za[c[G>>2]&7](Y,_,Z,x,n,s,r);break}else{za[c[H>>2]&7](Y,_,Z,x,n,s,r);break}}while(0);V=V+8|0}while((V|0)<(t|0))}if(!((O|0)==0|B)){S=O+ -1|0;W=T;T=Q;do{Z=$(c[F>>2]|0,O)|0;_=c[P>>2]|0;ba=a[_+(Z+T>>2)>>0]|0;ca=ba&255;V=T+4|0;Z=a[_+(Z+V>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){X=c[l>>2]|0;W=c[X+13064>>2]|0;aa=T>>W;U=c[X+13140>>2]|0;ea=($(S>>W,U)|0)+aa|0;Y=c[I>>2]|0;aa=(a[Y+ea>>0]|0)+1+(a[Y+(($(O>>W,U)|0)+aa)>>0]|0)>>1;U=(T|0)>=(f|0);W=U?m:w;U=U?y:z;Y=aa+U|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+(W+ -2&-2)+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[x>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+(W+ -2&-2)+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[C>>2]=Z;da=c[D>>2]|0;Z=c[da+32>>2]|0;ea=$(Z,O)|0;X=(c[da>>2]|0)+((T<>2])+ea)|0;if(p){a[n>>0]=Gb(e,T,S)|0;a[E>>0]=Gb(e,V,S)|0;a[s>>0]=Gb(e,T,O)|0;a[R>>0]=Gb(e,V,O)|0;za[c[L>>2]&7](X,Z,Y,x,n,s,r);break}else{za[c[M>>2]&7](X,Z,Y,x,n,s,r);break}}while(0);T=T+8|0}while((T|0)<(A|0));T=W}O=O+8|0}while((O|0)<(u|0));K=c[l>>2]|0}else T=m;if(c[K+4>>2]|0){D=q?w:m;G=e+2596|0;F=e+4320|0;w=e+4316|0;y=o+4|0;x=e+160|0;C=n+1|0;B=s+1|0;E=e+4308|0;H=e+4292|0;I=e+4324|0;A=e+4312|0;z=e+4296|0;J=1;do{P=1<>2];Q=1<>2];if(v){O=P<<3;M=q?f:O;L=(M|0)<(t|0);K=Q<<3;N=q?f-O|0:0;P=P<<2;Q=Q<<2;R=g;do{if(L){S=R+Q|0;U=M;do{X=c[G>>2]|0;Z=($(X,R)|0)+U>>2;ea=c[I>>2]|0;Z=(a[ea+Z>>0]|0)==2;X=(a[ea+(($(X,S)|0)+U>>2)>>0]|0)==2;do if(Z|X){V=U+ -1|0;W=c[l>>2]|0;ea=c[W+13064>>2]|0;_=V>>ea;Y=c[W+13140>>2]|0;ba=$(R>>ea,Y)|0;aa=c[w>>2]|0;ca=U>>ea;Y=$(S>>ea,Y)|0;Y=(a[aa+(Y+_)>>0]|0)+1+(a[aa+(Y+ca)>>0]|0)>>1;if(Z)Z=Hb(e,(a[aa+(ba+ca)>>0]|0)+1+(a[aa+(ba+_)>>0]|0)>>1,J,T)|0;else Z=0;c[o>>2]=Z;if(X)X=Hb(e,Y,J,T)|0;else X=0;c[y>>2]=X;da=c[x>>2]|0;X=c[da+(J<<2)+32>>2]|0;ea=$(X,R>>c[W+(J<<2)+13180>>2])|0;W=(c[da+(J<<2)>>2]|0)+((U>>c[W+(J<<2)+13168>>2]<>2])+ea)|0;if(p){a[n>>0]=Gb(e,V,R)|0;a[C>>0]=Gb(e,V,S)|0;a[s>>0]=Gb(e,U,R)|0;a[B>>0]=Gb(e,U,S)|0;Ha[c[A>>2]&3](W,X,o,n,s,r);break}else{Ha[c[z>>2]&3](W,X,o,n,s,r);break}}while(0);U=U+O|0}while((U|0)<(t|0))}if(R){V=t-((t|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:O)|0;if((N|0)<(V|0)){U=R+ -1|0;T=N;do{X=$(c[G>>2]|0,R)|0;ea=c[F>>2]|0;S=T+P|0;Y=(a[ea+(X+T>>2)>>0]|0)==2;X=(a[ea+(X+S>>2)>>0]|0)==2;do if(Y|X){if(Y){ea=c[l>>2]|0;da=c[ea+13064>>2]|0;Z=T>>da;ea=c[ea+13140>>2]|0;ba=($(U>>da,ea)|0)+Z|0;ca=c[w>>2]|0;Z=(a[ca+ba>>0]|0)+1+(a[ca+(($(R>>da,ea)|0)+Z)>>0]|0)>>1}else Z=0;if(X){ea=c[l>>2]|0;da=c[ea+13064>>2]|0;W=S>>da;ea=c[ea+13140>>2]|0;ba=($(U>>da,ea)|0)+W|0;ca=c[w>>2]|0;W=(a[ca+ba>>0]|0)+1+(a[ca+(($(R>>da,ea)|0)+W)>>0]|0)>>1}else W=0;if(Y)Y=Hb(e,Z,J,D)|0;else Y=0;c[o>>2]=Y;if(X)W=Hb(e,W,J,m)|0;else W=0;c[y>>2]=W;ea=c[l>>2]|0;da=c[x>>2]|0;X=c[da+(J<<2)+32>>2]|0;W=$(X,R>>c[ea+13184>>2])|0;W=(c[da+(J<<2)>>2]|0)+((T>>c[ea+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Gb(e,T,U)|0;a[C>>0]=Gb(e,S,U)|0;a[s>>0]=Gb(e,T,R)|0;a[B>>0]=Gb(e,S,R)|0;Ha[c[E>>2]&3](W,X,o,n,s,r);break}else{Ha[c[H>>2]&3](W,X,o,n,s,r);break}}while(0);T=T+O|0}while((T|0)<(V|0));T=D}else T=D}R=R+K|0}while((R|0)<(u|0))}J=J+1|0;K=c[l>>2]|0}while((J|0)!=3)}if(!(a[K+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[K+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Cb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Cb(e,f-h|0,g);k=k^1;!(l|k)?(Cb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Cb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Cb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;v=i;i=i+48|0;j=v+24|0;h=v+42|0;u=v+40|0;r=v+16|0;n=v+8|0;m=v;k=e+200|0;S=c[k>>2]|0;s=c[S+13080>>2]|0;q=f>>s;s=g>>s;D=S+13128|0;p=($(s,c[D>>2]|0)|0)+q|0;L=c[e+204>>2]|0;N=L+1668|0;M=c[(c[N>>2]|0)+(p<<2)>>2]|0;l=e+2504|0;o=c[l>>2]|0;t=o+(p*148|0)|0;b[h>>1]=0;b[u>>1]=0;c[r>>2]=0;E=($(c[D>>2]|0,s)|0)+q|0;E=a[(c[e+4352>>2]|0)+E>>0]|0;if((a[L+42>>0]|0)!=0?(a[L+53>>0]|0)==0:0){R=1;O=1}else{R=E<<24>>24==0&1;O=0}G=(q|0)==0;c[j>>2]=G&1;I=(s|0)==0;A=j+4|0;c[A>>2]=I&1;H=(q|0)==((c[D>>2]|0)+ -1|0);z=j+8|0;c[z>>2]=H&1;F=(s|0)==((c[S+13132>>2]|0)+ -1|0);w=j+12|0;c[w>>2]=F&1;if(R<<24>>24){if(G)J=0;else{if(O){J=c[L+1676>>2]|0;J=(c[J+(M<<2)>>2]|0)!=(c[J+(c[(c[N>>2]|0)+(p+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[h>>0]=K}if(H)K=0;else{if(O){K=c[L+1676>>2]|0;K=(c[K+(M<<2)>>2]|0)!=(c[K+(c[(c[N>>2]|0)+(p+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[h+1>>0]=P}if(I)P=0;else{if(O){P=c[L+1676>>2]|0;P=(c[P+(M<<2)>>2]|0)!=(c[P+(c[(c[N>>2]|0)+(p-(c[D>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+ -1|0)|0)+q<<2)>>2]|0)):0)Q=1;else Q=P;a[u>>0]=Q}if(F)L=0;else{if(O){L=c[L+1676>>2]|0;L=(c[L+(M<<2)>>2]|0)!=(c[L+(c[(c[N>>2]|0)+((c[D>>2]|0)+p<<2)>>2]<<2)>>2]|0)&1}else L=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+1|0)|0)+q<<2)>>2]|0)):0)M=1;else M=L;a[u+1>>0]=M}if(!G)if(I)B=47;else{if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[r>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[r+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|F):0){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[r+2>>0]=H}if(!(G|F)){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[r+3>>0]=D}}O=(c[S+4>>2]|0)!=0?3:1;I=e+160|0;H=e+168|0;P=e+2672|0;J=s<<1;G=J+ -1|0;D=n+4|0;E=s+ -1|0;Q=q+1|0;L=q+ -1|0;J=J+2|0;F=m+4|0;K=s+1|0;N=q<<1;M=N+ -1|0;N=N+2|0;R=e+((R&255)<<2)+2676|0;na=S;Y=0;while(1){ka=c[na+(Y<<2)+13168>>2]|0;_=f>>ka;ha=c[na+(Y<<2)+13180>>2]|0;Z=g>>ha;ba=c[I>>2]|0;S=c[ba+(Y<<2)+32>>2]|0;U=1<>2];X=U>>ka;W=U>>ha;ka=c[na+13120>>2]>>ka;ca=ka-_|0;X=(X|0)>(ca|0)?ca:X;ha=c[na+13124>>2]>>ha;ca=ha-Z|0;W=(W|0)>(ca|0)?ca:W;ca=$(S,Z)|0;ga=c[na+56>>2]|0;ca=(_<>2]|0;aa=ba+ca|0;U=U+2<>2]|0;fa=1<>0]|0;if((ia|0)==1){ea=X<0){da=V;ba=0;ca=aa;while(1){fe(da|0,ca|0,ea|0)|0;ba=ba+1|0;if((ba|0)==(W|0))break;else{da=da+U|0;ca=ca+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);ya[c[P>>2]&1](aa,V,S,U,t,j,X,W,Y,c[(c[k>>2]|0)+52>>2]|0);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}else if((ia|0)==2){ja=c[j>>2]|0;ia=c[z>>2]|0;la=c[w>>2]|0;do if(!(c[A>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-S-oa);c[D>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,G)|0)+_-pa<>2]|0,E)|0)|0;pa=c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[oa>>0]=a[pa>>0]|0;na=c[k>>2]|0;oa=fa;break}else{b[oa>>1]=b[pa>>1]|0;oa=fa;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,E)|0)+q|0;na=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){na=oa+na|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)|0;ma=da+(na+ma)|0;na=(c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+na|0;if(!ga){a[ma>>0]=a[na>>0]|0;break}else{b[ma>>1]=b[na>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(W,S)|0)+ca-oa);c[F>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,J)|0)+_-pa<>2]|0)+13128>>2]|0,K)|0)|0;ma=c[m+(((a[(c[l>>2]|0)+(ma*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[ka>>0]=a[ma>>0]|0;ka=fa;break}else{b[ka>>1]=b[ma>>1]|0;ka=fa;break}}else ka=0;while(0);pa=($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)+q|0;ma=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0,ma|0)|0;if((ia|0)!=1){ka=ka+ma|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)|0;la=da+(ka+la)|0;ka=(c[m+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0;if(!ga){a[la>>0]=a[ka>>0]|0;break}else{b[la>>1]=b[ka>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){la=da+U|0;ja=(c[e+(Y<<2)+184>>2]|0)+(($(ha,M)|0)+Z<0;if(!ga){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){ia=da+((X<>2]|0)+(($(ha,N)|0)+Z<0;if(!ga){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,x=ja<0):0){ea=da+(ea-x)|0;da=0;ba=ba+(ca-x)|0;while(1){fe(ea|0,ba|0,y|0)|0;da=da+1|0;if((da|0)==(W|0))break;else{ea=ea+U|0;ba=ba+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);Aa[c[R>>2]&3](aa,V,S,U,t,j,X,W,Y,h,u,r,c[(c[k>>2]|0)+52>>2]|0);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}Y=Y+1|0;if((Y|0)>=(O|0))break;na=c[k>>2]|0}i=v;return}function Db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Bb(a,b-e|0,d-e|0,e);if(!(j|k))Bb(a,b,d-e|0,e);if(g|h){i=f;return}Bb(a,b-e|0,d,e);i=f;return}function Eb(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Fb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+4348|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){fe(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Gb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+4348>>2]|0)+e>>0]|0;i=f;return e|0}function Hb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Ib(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+4376|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}nd(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}fe(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+4384|0;b=b+4380|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ld(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Jb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;f=b+60|0;d=c[f>>2]|0;Zc();ac();f=c[f>>2]|0;c[f+4>>2]=b;g=md(31328)|0;c[f+136>>2]=g;if((((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,g=fd(199)|0,c[f+152>>2]=g,(g|0)!=0):0)?(g=wd()|0,c[f+164>>2]=g,(g|0)!=0):0)?(h=wd()|0,c[f+2524>>2]=h,(h|0)!=0):0){c[f+2528>>2]=h;c[f+2592>>2]=2147483647;a[f+4469>>0]=1;c[f+2584>>2]=0;c[d+4368>>2]=0;c[d+4520>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[d+141>>0]=1;else a[d+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[d+140>>0]=1;h=0;i=e;return h|0}a[d+140>>0]=2;h=0;i=e;return h|0}Lb(b)|0;h=-12;i=e;return h|0}function Kb(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0;k=i;i=i+16|0;q=k+8|0;n=k;m=c[f+60>>2]|0;l=j+28|0;K=c[l>>2]|0;if(!K){g=$b(m,g,1)|0;if((g|0)<0){_a=g;i=k;return _a|0}c[h>>2]=g;_a=0;i=k;return _a|0}r=m+2520|0;c[r>>2]=0;f=m+4524|0;b[f>>1]=1;J=c[j+24>>2]|0;c[r>>2]=0;G=m+2584|0;A=m+2588|0;c[A>>2]=c[G>>2];c[G>>2]=0;w=m+4408|0;c[w>>2]=0;a:do if((K|0)>3){H=m+4470|0;F=m+4412|0;z=m+4404|0;v=m+4388|0;C=m+4396|0;x=m+4392|0;E=m+4384|0;y=m+4380|0;j=m+4376|0;u=m+136|0;t=m+2512|0;I=m+4480|0;while(1){B=(a[H>>0]|0)==0;if(B){while(1){L=J+1|0;if(((a[J>>0]|0)==0?(a[L>>0]|0)==0:0)?(a[J+2>>0]|0)==1:0)break;if((K|0)<5){p=-1094995529;o=180;break a}J=L;K=K+ -1|0}J=J+3|0;M=0;K=K+ -3|0}else{L=c[I>>2]|0;if((L|0)>0){N=0;M=0;do{N=d[J+M>>0]|N<<8;M=M+1|0}while((M|0)!=(L|0));M=N}else M=0;K=K-L|0;if((M|0)>(K|0)){p=-1094995529;o=180;break a}J=J+L|0}B=B?K:M;L=c[F>>2]|0;N=c[w>>2]|0;if((L|0)<(N+1|0)){L=L+1|0;M=kd(c[z>>2]|0,L,16)|0;if(!M){p=-12;o=180;break a}c[z>>2]=M;N=c[F>>2]|0;ce(M+(N<<4)|0,0,L-N<<4|0)|0;ld(v,L,4)|0;ld(C,L,4)|0;ld(x,L,4)|0;N=c[C>>2]|0;c[N+(c[F>>2]<<2)>>2]=1024;N=od(c[N+(c[F>>2]<<2)>>2]|0,4)|0;c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]=N;c[F>>2]=L;N=c[w>>2]|0}c[E>>2]=c[(c[C>>2]|0)+(N<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(N<<2)>>2];M=c[z>>2]|0;L=Ib(m,J,B,M+(N<<4)|0)|0;c[(c[v>>2]|0)+(c[w>>2]<<2)>>2]=c[j>>2];c[(c[C>>2]|0)+(c[w>>2]<<2)>>2]=c[E>>2];Za=c[y>>2]|0;_a=c[w>>2]|0;c[w>>2]=_a+1;c[(c[x>>2]|0)+(_a<<2)>>2]=Za;if((L|0)<0){p=L;o=180;break a}Za=c[u>>2]|0;Xa=c[M+(N<<4)+12>>2]|0;Ya=c[M+(N<<4)+8>>2]|0;Ya=Ya>>>0>268435455?-8:Ya<<3;_a=Ya>>>0>2147483639|(Xa|0)==0;Ya=_a?0:Ya;Xa=_a?0:Xa;B=_a?-1094995529:0;c[Za+204>>2]=Xa;c[Za+216>>2]=Ya;c[Za+220>>2]=Ya+8;c[Za+208>>2]=Xa+(Ya>>3);c[Za+212>>2]=0;if(_a){p=B;o=180;break a}Ob(m)|0;if(((c[t>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;K=K-L|0;if((K|0)<=3)break;else J=J+L|0}if((c[w>>2]|0)>0){la=m+4|0;Ga=m+1448|0;aa=m+2046|0;_=m+1428|0;Fa=m+204|0;wa=m+200|0;Ka=m+1449|0;La=m+1432|0;Pa=m+1436|0;Qa=m+2580|0;Ia=m+156|0;ra=m+1440|0;I=m+1450|0;L=m+1620|0;va=m+2572|0;K=m+2516|0;M=m+2576|0;W=m+2056|0;X=m+2057|0;N=m+2058|0;P=m+2052|0;O=m+2048|0;Na=m+2068|0;S=m+2072|0;Q=m+2076|0;T=m+2080|0;Y=m+2061|0;V=m+2084|0;U=m+2088|0;Z=m+2062|0;J=m+1451|0;Oa=m+2108|0;Ja=m+2112|0;Ma=m+2500|0;na=m+2592|0;oa=m+2604|0;pa=m+4416|0;Ha=q+4|0;xa=m+4320|0;za=m+2596|0;ya=m+2600|0;Aa=m+4324|0;Ba=m+4344|0;Ca=m+4348|0;Ea=m+4328|0;sa=m+160|0;qa=m+140|0;ua=m+164|0;R=m+2096|0;F=m+2100|0;E=m+2104|0;G=m+141|0;H=m+4368|0;ca=m+2504|0;ba=m+2508|0;ea=m+4332|0;da=m+4336|0;fa=m+4340|0;ha=m+4352|0;ga=m+4316|0;ia=m+2608|0;ka=m+196|0;ma=m+4364|0;ja=m+168|0;C=0;b:while(1){c[j>>2]=c[(c[v>>2]|0)+(C<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(C<<2)>>2];Za=c[z>>2]|0;Ya=c[Za+(C<<4)+12>>2]|0;Za=c[Za+(C<<4)+8>>2]|0;_a=c[u>>2]|0;Za=Za>>>0>268435455?-8:Za<<3;Ra=Za>>>0>2147483639|(Ya|0)==0;Za=Ra?0:Za;Ya=Ra?0:Ya;c[_a+204>>2]=Ya;c[_a+216>>2]=Za;c[_a+220>>2]=Za+8;c[_a+208>>2]=Ya+(Za>>3);c[_a+212>>2]=0;c:do if(Ra){s=Ra?-1094995529:0;o=178}else{Ra=Ob(m)|0;d:do if((Ra|0)>=0){if(!Ra)break c;switch(c[t>>2]|0){case 37:case 36:{b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647;break c};case 40:case 39:{Ra=Gc(m)|0;if((Ra|0)<0)break d;else break c};case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{Ra=c[u>>2]|0;Sa=Ra+204|0;_a=(bd(Sa)|0)&255;a[Ga>>0]=_a;Ta=c[t>>2]|0;if(!((Ta+ -16|0)>>>0>4|_a<<24>>24==0)?(b[ma>>1]=(e[ma>>1]|0)+1&255,c[na>>2]=2147483647,(Ta+ -19|0)>>>0<2):0){Yb(m);Ta=c[t>>2]|0}a[aa>>0]=0;if((Ta+ -16|0)>>>0<8)a[aa>>0]=bd(Sa)|0;Ta=dd(Sa)|0;c[_>>2]=Ta;if(Ta>>>0>255){p=B;o=180;break a}Ta=c[m+(Ta<<2)+400>>2]|0;if(!Ta){p=B;o=180;break a}if(!(a[Ga>>0]|0)){Wa=c[Ta+4>>2]|0;if((c[Fa>>2]|0)!=(Wa|0)){p=B;o=180;break a}}else Wa=c[Ta+4>>2]|0;c[Fa>>2]=Wa;Ua=c[t>>2]|0;Va=(Ua|0)==21;if(Va?(c[A>>2]|0)==1:0)a[aa>>0]=1;Ta=c[wa>>2]|0;Wa=c[(c[m+(c[Wa>>2]<<2)+272>>2]|0)+4>>2]|0;if((Ta|0)!=(Wa|0)){c[wa>>2]=Wa;e:do if(Ta){if((Ua+ -16|0)>>>0>7|Va)break;do if((c[Wa+13120>>2]|0)==(c[Ta+13120>>2]|0)){if((c[Wa+13124>>2]|0)!=(c[Ta+13124>>2]|0))break;if((c[Wa+76+(((c[Wa+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[aa>>0]=0}while(0);Yb(m);Ta=c[wa>>2]|0;Nb(m);Va=c[Ta+13064>>2]|0;Wa=Ta+13120|0;ab=c[Wa>>2]|0;Xa=Ta+13124|0;$a=c[Xa>>2]|0;Va=$(($a>>Va)+1|0,(ab>>Va)+1|0)|0;Ua=$(c[Ta+13132>>2]|0,c[Ta+13128>>2]|0)|0;_a=Ta+13156|0;Za=Ta+13160|0;Ya=$(c[Za>>2]|0,c[_a>>2]|0)|0;c[za>>2]=(ab>>2)+1;c[ya>>2]=($a>>2)+1;c[ca>>2]=pd(Ua,148)|0;$a=pd(Ua,8)|0;c[ba>>2]=$a;if((c[ca>>2]|0)==0|($a|0)==0){o=71;break b}$a=Ta+13144|0;ab=Ta+13140|0;c[ea>>2]=fd($(c[ab>>2]|0,c[$a>>2]|0)|0)|0;ab=od(c[$a>>2]|0,c[ab>>2]|0)|0;c[da>>2]=ab;if((c[ea>>2]|0)==0|(ab|0)==0){o=71;break b}c[Ba>>2]=od(c[Ta+13148>>2]|0,c[Ta+13152>>2]|0)|0;c[fa>>2]=md(Ya)|0;Ya=fd($((c[Za>>2]|0)+1|0,(c[_a>>2]|0)+1|0)|0)|0;c[Ca>>2]=Ya;if(!(c[fa>>2]|0)){o=71;break b}if((c[Ba>>2]|0)==0|(Ya|0)==0){o=71;break b}c[ha>>2]=fd(Ua)|0;c[Ea>>2]=od(Va,4)|0;ab=od(Va,1)|0;c[ga>>2]=ab;if(!ab){o=71;break b}if(!(c[ha>>2]|0)){o=71;break b}if(!(c[Ea>>2]|0)){o=71;break b}c[xa>>2]=pd(c[za>>2]|0,c[ya>>2]|0)|0;ab=pd(c[za>>2]|0,c[ya>>2]|0)|0;c[Aa>>2]=ab;if((c[xa>>2]|0)==0|(ab|0)==0){o=71;break b}ab=c[la>>2]|0;c[ab+124>>2]=c[Wa>>2];c[ab+128>>2]=c[Xa>>2];c[ab+116>>2]=c[Ta+12>>2];c[ab+120>>2]=c[Ta+16>>2];c[ab+136>>2]=c[Ta+60>>2];c[ab+172>>2]=c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+80>>2];ab=Ta+160|0;c[q+0>>2]=c[ab+0>>2];c[q+4>>2]=c[ab+4>>2];if(!(c[Ta+176>>2]|0)){Ua=c[la>>2]|0;c[Ua+392>>2]=1}else{Ua=c[la>>2]|0;c[Ua+392>>2]=(c[Ta+184>>2]|0)!=0?2:1}if(!(c[Ta+188>>2]|0)){c[Ua+380>>2]=2;c[Ua+384>>2]=2;c[Ua+388>>2]=2}else{c[Ua+380>>2]=d[Ta+192>>0];c[Ua+384>>2]=d[Ta+193>>0];c[Ua+388>>2]=d[Ta+194>>0]}bc(ia,c[Ta+52>>2]|0);if(a[Ta+12941>>0]|0){Ua=c[wa>>2]|0;Va=(c[Ua+4>>2]|0)!=0?3:1;ab=(1<>2])+2|0;ab=$(ab,ab)|0;c[ja>>2]=fd(ab<>2])|0;Ua=0;do{ab=c[wa>>2]|0;$a=c[ab+13124>>2]>>c[ab+(Ua<<2)+13180>>2];_a=$(c[ab+13120>>2]>>c[ab+(Ua<<2)+13168>>2]<<1,c[ab+13132>>2]|0)|0;c[m+(Ua<<2)+172>>2]=fd(_a<>2])|0;ab=c[wa>>2]|0;$a=$($a<<1,c[ab+13128>>2]|0)|0;c[m+(Ua<<2)+184>>2]=fd($a<>2])|0;Ua=Ua+1|0}while((Ua|0)<(Va|0))}c[wa>>2]=Ta;c[ka>>2]=c[(c[m+(c[Ta>>2]<<2)+208>>2]|0)+4>>2];b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647}ab=c[la>>2]|0;c[ab+832>>2]=d[Ta+302>>0];c[ab+836>>2]=d[Ta+335>>0];a[Ka>>0]=0;do if(!(a[Ga>>0]|0)){if(a[(c[Fa>>2]|0)+41>>0]|0){a[Ka>>0]=bd(Sa)|0;Ta=c[wa>>2]|0}Ta=($(c[Ta+13128>>2]<<1,c[Ta+13132>>2]|0)|0)+ -2|0;Ua=Ta>>>0>65535;Ta=Ua?Ta>>>16:Ta;Ua=Ua?16:0;if(Ta&65280){Ua=Ua|8;Ta=Ta>>>8}Ta=_c(Sa,(d[4680+Ta>>0]|0)+Ua|0)|0;c[La>>2]=Ta;ab=c[wa>>2]|0;if(Ta>>>0>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0)>>>0){p=B;o=180;break a}if(a[Ka>>0]|0)if(!(a[Ia>>0]|0)){p=B;o=180;break a}else break;else{c[Pa>>2]=Ta;c[Qa>>2]=(c[Qa>>2]|0)+1;o=82;break}}else{c[Pa>>2]=0;c[La>>2]=0;c[Qa>>2]=0;a[Ia>>0]=0;o=82}while(0);f:do if((o|0)==82){o=0;a[Ia>>0]=0;if((c[(c[Fa>>2]|0)+1624>>2]|0)>0){Ta=0;do{ad(Sa,1);Ta=Ta+1|0}while((Ta|0)<(c[(c[Fa>>2]|0)+1624>>2]|0))}Ta=dd(Sa)|0;c[ra>>2]=Ta;if(Ta>>>0>=3){p=B;o=180;break a}if(!((Ta|0)==2?1:((c[t>>2]|0)+ -16|0)>>>0>7)){p=B;o=180;break a}a[I>>0]=1;if(a[(c[Fa>>2]|0)+39>>0]|0)a[I>>0]=bd(Sa)|0;if(a[(c[wa>>2]|0)+8>>0]|0)a[J>>0]=_c(Sa,2)|0;if(((c[t>>2]|0)+ -19|0)>>>0>=2){o=91;break b}c[L>>2]=0;c[va>>2]=0;if(!(c[K>>2]|0))c[M>>2]=0;do if(a[(c[wa>>2]|0)+12941>>0]|0){a[W>>0]=bd(Sa)|0;if(!(c[(c[wa>>2]|0)+4>>2]|0)){a[X>>0]=0;a[N>>0]=0;break}else{ab=(bd(Sa)|0)&255;a[N>>0]=ab;a[X>>0]=ab;break}}else{a[W>>0]=0;a[X>>0]=0;a[N>>0]=0}while(0);c[P>>2]=0;c[O>>2]=0;c[Na>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0;if(!(a[Ta+36>>0]|0)){c[S>>2]=0;c[Q>>2]=0}else{c[S>>2]=ed(Sa)|0;c[Q>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0}if(!(a[Ta+1631>>0]|0))a[T>>0]=0;else{a[T>>0]=bd(Sa)|0;Ta=c[Fa>>2]|0}g:do if(!(a[Ta+55>>0]|0)){a[Y>>0]=0;c[V>>2]=0;c[U>>2]=0}else{do if(a[Ta+56>>0]|0){if(!(bd(Sa)|0)){Ta=c[Fa>>2]|0;break}ab=(bd(Sa)|0)&255;a[Y>>0]=ab;if(ab<<24>>24)break g;c[V>>2]=(ed(Sa)|0)<<1;c[U>>2]=(ed(Sa)|0)<<1;break g}while(0);a[Y>>0]=a[Ta+57>>0]|0;c[V>>2]=c[Ta+60>>2];c[U>>2]=c[Ta+64>>2]}while(0);Ta=a[(c[Fa>>2]|0)+54>>0]|0;h:do if(Ta<<24>>24){do if(!(a[W>>0]|0)){if(a[X>>0]|0)break;if(a[Y>>0]|0)break h}while(0);a[Z>>0]=bd(Sa)|0;break f}while(0);a[Z>>0]=Ta}while(0);c[Oa>>2]=0;ab=c[Fa>>2]|0;if(!((a[ab+42>>0]|0)==0?(a[ab+43>>0]|0)==0:0))o=122;i:do if((o|0)==122){o=0;ab=dd(Sa)|0;c[Oa>>2]=ab;if((ab|0)<=0){c[H>>2]=0;break}Ta=(dd(Sa)|0)+1|0;Ua=Ta>>4;Ta=Ta&15;jd(R);jd(F);jd(E);c[R>>2]=od(c[Oa>>2]|0,4)|0;c[F>>2]=od(c[Oa>>2]|0,4)|0;Va=od(c[Oa>>2]|0,4)|0;c[E>>2]=Va;if(!(c[R>>2]|0)){o=127;break b}if((c[F>>2]|0)==0|(Va|0)==0){o=127;break b}if((c[Oa>>2]|0)>0){Wa=(Ua|0)>0;Xa=(Ta|0)==0;Va=0;do{if(Wa){Ya=0;Za=0;do{Za=(_c(Sa,16)|0)+(Za<<16)|0;Ya=Ya+1|0}while((Ya|0)!=(Ua|0))}else Za=0;if(!Xa)Za=(_c(Sa,Ta)|0)+(Za<>2]|0)+(Va<<2)>>2]=Za+1;Va=Va+1|0}while((Va|0)<(c[Oa>>2]|0))}do if((d[G>>0]|0)>1){ab=c[Fa>>2]|0;if((c[ab+48>>2]|0)<=1?(c[ab+44>>2]|0)<=1:0)break;c[H>>2]=0;a[G>>0]=1;break i}while(0);c[H>>2]=0}while(0);Ta=c[Fa>>2]|0;if(a[Ta+1628>>0]|0){Ta=dd(Sa)|0;$a=de(Ta|0,0,3)|0;Za=D;ab=(c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0;_a=((ab|0)<0)<<31>>31;if((Za|0)>(_a|0)|(Za|0)==(_a|0)&$a>>>0>ab>>>0){p=B;o=180;break a}if(Ta){Ua=0;do{ad(Sa,8);Ua=Ua+1|0}while((Ua|0)!=(Ta|0))}Ta=c[Fa>>2]|0}Sa=(c[Ta+16>>2]|0)+26+(c[Na>>2]|0)|0;a[Ja>>0]=Sa;Sa=Sa<<24;if((Sa|0)>855638016){p=B;o=180;break a}if((Sa>>24|0)<(0-(c[(c[wa>>2]|0)+13192>>2]|0)|0)){p=B;o=180;break a}ab=c[La>>2]|0;c[Ma>>2]=ab;if((ab|0)==0?(a[Ka>>0]|0)!=0:0){p=B;o=180;break a}if(((c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0)<0){p=B;o=180;break a}a[(c[u>>2]|0)+203>>0]=(a[Ka>>0]|0)==0&1;if(!(a[(c[Fa>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ja>>0]|0;a[Ia>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;Sa=c[na>>2]|0;Ra=c[t>>2]|0;j:do if((Sa|0)==2147483647)switch(Ra|0){case 18:case 16:case 17:case 21:{Sa=c[va>>2]|0;c[na>>2]=Sa;break j};case 20:case 19:{c[na>>2]=-2147483648;Sa=-2147483648;break j};default:{Sa=2147483647;break j}}while(0);do if((Ra+ -8|0)>>>0<2){if((c[va>>2]|0)<=(Sa|0)){c[oa>>2]=0;break c}if((Ra|0)!=9)break;c[na>>2]=-2147483648}while(0);k:do if(!(a[Ga>>0]|0)){if(!(c[r>>2]|0)){Ra=0;break d}}else{Sa=c[u>>2]|0;$a=c[wa>>2]|0;Ra=c[$a+13064>>2]|0;ab=c[$a+13120>>2]>>Ra;Ra=(c[$a+13124>>2]>>Ra)+1|0;ce(c[xa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;ce(c[Aa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Ba>>2]|0,0,$(c[$a+13152>>2]|0,c[$a+13148>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Ca>>2]|0,0,$((c[$a+13160>>2]|0)+1|0,(c[$a+13156>>2]|0)+1|0)|0)|0;ce(c[Ea>>2]|0,-1,$((ab<<2)+4|0,Ra)|0)|0;c[oa>>2]=0;c[pa>>2]=c[t>>2];Ra=c[Fa>>2]|0;if(a[Ra+42>>0]|0)c[Sa+312>>2]=c[c[Ra+1648>>2]>>2]<>2]|0)+13080>>2];Ra=_b(m,sa,c[va>>2]|0)|0;do if((Ra|0)>=0){c[(c[c[r>>2]>>2]|0)+80>>2]=((c[t>>2]|0)+ -16|0)>>>0<8&1;c[(c[sa>>2]|0)+84>>2]=3-(c[ra>>2]|0);yd(c[ua>>2]|0);Ra=$b(m,c[ua>>2]|0,0)|0;if((Ra|0)<0)break;break k}while(0);if(!(c[r>>2]|0)){o=167;break b}c[r>>2]=0;if((Ra|0)<0){p=B;break a}}while(0);if((c[t>>2]|0)!=(c[pa>>2]|0)){p=B;o=180;break a}c[q>>2]=0;c[Ha>>2]=1;Ra=c[la>>2]|0;Da[c[Ra+816>>2]&1](Ra,1,q,n,1,4)|0;Ra=c[n>>2]|0;ab=c[wa>>2]|0;if((Ra|0)>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0))c[oa>>2]=1;if((Ra|0)<0)break d;else break c};case 48:{Ra=Dc(m)|0;if((Ra|0)<0)break d;else break c};case 34:{Ra=Ec(m)|0;if((Ra|0)<0)break d;else break c};default:break c}}while(0);s=(c[(c[la>>2]|0)+688>>2]&8|0)==0?0:Ra;o=178}while(0);if((o|0)==178?(o=0,(s|0)<0):0){p=B;o=180;break a}C=C+1|0;if((C|0)>=(c[w>>2]|0)){p=B;o=180;break a}}if((o|0)==71){Nb(m);Nb(m);c[wa>>2]=0;p=B;o=180;break}else if((o|0)==91)ta();else if((o|0)==127){c[Oa>>2]=0;p=B;o=180;break}else if((o|0)==167){c[r>>2]=0;p=B;break}}else{p=B;o=180}}else{p=0;o=180}while(0);if((p|0)<0){ab=p;i=k;return ab|0}n=m+2604|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){ab=m+128|0;c[ab>>2]=e[f>>1];c[ab+4>>2]=0;zd(g,m);c[h>>2]=1}ab=c[l>>2]|0;i=k;return ab|0}function Lb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;Nb(e);b=e+4412|0;f=e+4392|0;if((c[b>>2]|0)>0){g=0;do{jd((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}jd(e+4396|0);jd(e+4388|0);jd(f);jd(e+152|0);jd(e+168|0);jd(e+172|0);jd(e+184|0);jd(e+176|0);jd(e+188|0);jd(e+180|0);jd(e+192|0);xd(e+164|0);g=e+2524|0;Xb(e,g,-1);xd(g);g=e+208|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);f=e+400|0;g=0;do{vd(f+(g<<2)|0);g=g+1|0}while((g|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;vd(e+1424|0);jd(e+2096|0);jd(e+2100|0);jd(e+2104|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){jd(k);jd(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;jd(f);f=e+4404|0;if((c[b>>2]|0)<=0){jd(f);c[b>>2]=0;i=d;return 0}e=0;do{jd((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));jd(f);c[b>>2]=0;i=d;return 0}function Mb(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;Zb(a);c[a+2592>>2]=2147483647;i=b;return}function Nb(a){a=a|0;var b=0;b=i;jd(a+2504|0);jd(a+2508|0);jd(a+4332|0);jd(a+4336|0);jd(a+4340|0);jd(a+4344|0);jd(a+4348|0);jd(a+4316|0);jd(a+4328|0);jd(a+4352|0);jd(a+4320|0);jd(a+4324|0);jd(a+2096|0);jd(a+2104|0);jd(a+2100|0);i=b;return}function Ob(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(bd(d)|0){e=-1094995529;i=b;return e|0}c[a+2512>>2]=_c(d,6)|0;e=_c(d,6)|0;d=(_c(d,3)|0)+ -1|0;c[a+2516>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function Pb(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+2500>>2]<<2)>>2]|0;m=(a[h+1449>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+4328|0;r=h+1436|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+4328|0;r=h+1436|0}q=e+ -1|0;s=h+136|0;p=h+2504|0;y=h+2056|0;o=h+2057|0;w=h+2084|0;x=h+2508|0;v=h+2088|0;u=h+2062|0;t=h+4352|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;Ua(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=Za(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(Za(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+2056>>0]|0){T=(P|0)==2;do if(!T){if(S){U=($a(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=cb(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=db(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=bb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=eb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=Qb(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Ta(h,A);Db(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Bb(h,z,n,e);W=A;i=f;return W|0}function Qb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;j=i;i=i+32|0;z=j;B=j+20|0;A=b+136|0;r=c[A>>2]|0;l=1<>2]|0;q=b+204|0;s=c[q>>2]|0;p=(1<<(c[t+13080>>2]|0)-(c[s+24>>2]|0))+ -1|0;c[r+31232>>2]=h;k=l+e|0;if(((k|0)<=(c[t+13120>>2]|0)?(l+f|0)<=(c[t+13124>>2]|0):0)?(c[t+13064>>2]|0)>>>0>>0:0){t=lb(b,h,e,f)|0;s=c[q>>2]|0}else t=(c[t+13064>>2]|0)>>>0>>0&1;if((a[s+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[s+24>>2]|0)|0)>>>0<=g>>>0:0){a[r+300>>0]=0;c[r+280>>2]=0}if((a[b+2080>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[r+301>>0]=0;if(t){n=l>>1;o=n+e|0;q=n+f|0;g=g+ -1|0;h=h+1|0;s=Qb(b,e,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}if(s){if((o|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=Qb(b,o,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){if((q|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=Qb(b,e,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){X=c[m>>2]|0;if((o|0)<(c[X+13120>>2]|0)?(q|0)<(c[X+13124>>2]|0):0){s=Qb(b,o,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}}else s=0}else s=0}else s=0;if((p&k|0)==0?(p&l+f|0)==0:0)c[r+276>>2]=a[r+272>>0];if(!s){X=0;i=j;return X|0}k=c[m>>2]|0;if((o+n|0)<(c[k+13120>>2]|0))k=1;else k=(q+n|0)<(c[k+13124>>2]|0);X=k&1;i=j;return X|0}p=c[A>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;y=p+31252|0;a[y>>0]=1;v=p+31244|0;c[v>>2]=1;E=p+31248|0;c[E>>2]=0;w=p+31254|0;a[w>>0]=0;x=p+31253|0;a[x>>0]=0;t=($(f>>r,h)|0)+(e>>r)|0;H=b+4332|0;a[(c[H>>2]|0)+t>>0]=0;X=p+31268|0;a[X>>0]=1;a[X+1>>0]=1;a[X+2>>0]=1;a[X+3>>0]=1;r=l>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){X=(gb(b)|0)&255;a[p+31256>>0]=X;if(X<<24>>24)Rb(b,e,f,g)}else a[p+31256>>0]=0;u=(r|0)>0;if(u){G=t;F=0;while(1){ce((c[H>>2]|0)+G|0,0,r|0)|0;F=F+1|0;if((F|0)==(r|0))break;else G=G+h|0}}if((c[v>>2]|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0)C=c[E>>2]|0;else{F=mb(b,g)|0;c[E>>2]=F;E=c[v>>2]|0;if((F|0)==3)G=(E|0)==1&1;else G=0;a[w>>0]=G;if((E|0)==1)C=F;else ta()}if((((C|0)==0?(D=c[m>>2]|0,(c[D+68>>2]|0)!=0):0)?(c[D+13048>>2]|0)>>>0<=g>>>0:0)?(c[D+13052>>2]|0)>>>0>=g>>>0:0){C=(nb(b)|0)&255;a[x>>0]=C}else C=a[x>>0]|0;do if(!(C<<24>>24)){C=c[A>>2]|0;F=(c[C+31248>>2]|0)==3;D=F?2:1;H=0;do{G=H<<1;E=0;do{a[B+(E+G)>>0]=ob(b)|0;E=E+1|0}while((E|0)<(D|0));H=H+1|0}while((H|0)<(D|0));Q=l>>(F&1);P=C+31264|0;R=z+4|0;E=z+8|0;F=b+4340|0;O=C+31260|0;N=0;do{J=N<<1;H=($(N,Q)|0)+f|0;I=0;do{L=I+J|0;U=(a[B+L>>0]|0)==0;if(U)c[P>>2]=qb(b)|0;else c[O>>2]=pb(b)|0;V=($(I,Q)|0)+e|0;T=c[A>>2]|0;X=c[m>>2]|0;S=c[X+13084>>2]|0;M=V>>S;K=H>>S;G=c[X+13156>>2]|0;S=Q>>S;X=c[X+13080>>2]|0;W=(1<>0]|0)==0?(W&H|0)==0:0)W=1;else{W=($(K+ -1|0,G)|0)+M|0;W=d[(c[F>>2]|0)+W>>0]|0}if((a[T+308>>0]|0)==0&(V|0)==0)V=1;else{V=M+ -1+($(K,G)|0)|0;V=d[(c[F>>2]|0)+V>>0]|0}X=(H>>X<>>0<2){c[z>>2]=0;c[R>>2]=1;c[E>>2]=26;V=0;X=1;W=26;break}else{c[z>>2]=V;X=(V+29&31)+2|0;c[R>>2]=X;W=(V+31&31)+2|0;c[E>>2]=W;break}else{c[z>>2]=V;c[R>>2]=X;if(!((V|0)==0|(X|0)==0)){c[E>>2]=0;W=0;break}if((V|0)==1|(X|0)==1){c[E>>2]=26;W=26;break}else{c[E>>2]=1;W=1;break}}while(0);if(U){if((V|0)>(X|0)){c[R>>2]=V;U=X&255;c[z>>2]=U}else{U=V;V=X}if((U|0)>(W|0)){c[E>>2]=U;X=W&255;c[z>>2]=X;W=U;U=X}if((V|0)>(W|0)){c[E>>2]=V;X=W&255;c[R>>2]=X}else{X=V;V=W}T=c[T+31264>>2]|0;T=((T|0)>=(U|0)&1)+T|0;T=((T|0)>=(X|0)&1)+T|0;T=((T|0)>=(V|0)&1)+T|0}else T=c[z+(c[T+31260>>2]<<2)>>2]|0;S=(S|0)==0?1:S;T=T&255;if((S|0)>0){U=0;do{X=($(U+K|0,G)|0)+M|0;ce((c[F>>2]|0)+X|0,T|0,S|0)|0;U=U+1|0}while((U|0)<(S|0))}a[C+L+31268>>0]=T;I=I+1|0}while((I|0)<(D|0));N=N+1|0}while((N|0)<(D|0));z=c[(c[m>>2]|0)+4>>2]|0;if(!z)break;else if((z|0)==2){A=rb(b)|0;a[C+31281>>0]=A;z=a[C+31268>>0]|0;if((A|0)==4)z=z&255;else{X=a[1528+A>>0]|0;z=z<<24>>24==X<<24>>24?34:X&255}a[C+31277>>0]=a[1536+z>>0]|0;break}else if((z|0)!=3){A=rb(b)|0;z=a[C+31268>>0]|0;if((A|0)==4){a[C+31277>>0]=z;break}A=a[1528+A>>0]|0;B=C+31277|0;if(z<<24>>24==A<<24>>24){a[B>>0]=34;break}else{a[B>>0]=A;break}}else{A=0;do{B=A<<1;E=0;do{G=rb(b)|0;F=E+B|0;a[C+F+31281>>0]=G;z=a[C+F+31268>>0]|0;do if((G|0)!=4){G=a[1528+G>>0]|0;F=C+F+31277|0;if(z<<24>>24==G<<24>>24){a[F>>0]=34;break}else{a[F>>0]=G;break}}else a[C+F+31277>>0]=z;while(0);E=E+1|0}while((E|0)<(D|0));A=A+1|0}while((A|0)<(D|0))}}else{G=c[m>>2]|0;E=c[G+13084>>2]|0;B=l>>E;D=c[G+13156>>2]|0;C=e>>E;E=f>>E;B=(B|0)==0?1:B;if((B|0)>0){F=b+4340|0;G=0;do{X=($(G+E|0,D)|0)+C|0;ce((c[F>>2]|0)+X|0,1,B|0)|0;G=G+1|0}while((G|0)<(B|0));G=c[m>>2]|0}I=c[A>>2]|0;V=c[b+160>>2]|0;C=c[V+32>>2]|0;F=$(C,f)|0;H=c[G+56>>2]|0;F=(c[V>>2]|0)+((e<>2]|0;K=c[G+13184>>2]|0;B=$(f>>K,D)|0;J=c[G+13172>>2]|0;B=(c[V+4>>2]|0)+((e>>J<>2]|0;X=c[G+13188>>2]|0;E=$(f>>X,A)|0;W=c[G+13176>>2]|0;E=(c[V+8>>2]|0)+((e>>W<>0]|0,l<>W,l>>X)|0)+($(l>>J,l>>K)|0)|0;G=($(d[G+13045>>0]|0,K)|0)+H|0;H=I+224|0;K=G+7>>3;J=c[I+240>>2]|0;X=c[H>>2]|0;J=(X&1|0)==0?J:J+ -1|0;J=(X&511|0)==0?J:J+ -1|0;I=(c[I+244>>2]|0)-J|0;if((I|0)<(K|0))J=0;else Yc(H,J+K|0,I-K|0);if(!(a[b+2061>>0]|0))Ab(b,e,f,g);X=G>>>0>2147483639|(J|0)==0;W=X?0:G;V=X?0:J;c[z>>2]=V;c[z+12>>2]=W;c[z+16>>2]=W+8;c[z+4>>2]=V+(W+7>>3);c[z+8>>2]=0;if(X)z=-1094995529;else{W=b+2608|0;X=c[m>>2]|0;za[c[W>>2]&7](F,C,l,l,z,d[X+13044>>0]|0,c[X+52>>2]|0);X=c[m>>2]|0;za[c[W>>2]&7](B,D,l>>c[X+13172>>2],l>>c[X+13184>>2],z,d[X+13045>>0]|0,c[X+52>>2]|0);X=c[m>>2]|0;za[c[W>>2]&7](E,A,l>>c[X+13176>>2],l>>c[X+13188>>2],z,d[X+13045>>0]|0,c[X+52>>2]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)Rb(b,e,f,g);if((z|0)<0){X=z;i=j;return X|0}}while(0);do if(!(a[x>>0]|0)){if(!(a[y>>0]|0)){if(a[b+2061>>0]|0)break;Ab(b,e,f,g);break}x=c[m>>2]|0;if((c[v>>2]|0)==1)v=(d[w>>0]|0)+(c[x+13092>>2]|0)|0;else v=c[x+13088>>2]|0;a[p+31255>>0]=v;v=Sb(b,e,f,e,f,e,f,g,g,0,0,1520,1520)|0;if((v|0)<0){X=v;i=j;return X|0}}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)zb(b,e,f,g);if(u){q=b+4316|0;g=p+272|0;u=0;while(1){ce((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&k|0)==0?(s&l+f|0)==0:0)c[p+276>>2]=a[p+272>>0];q=c[m>>2]|0;X=c[q+13064>>2]|0;g=l>>X;r=e>>X;e=f>>X;if((g|0)>0?(n=b+4336|0,o=c[p+31232>>2]&255,X=($(c[q+13140>>2]|0,e)|0)+r|0,ce((c[n>>2]|0)+X|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{X=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+r|0;ce((c[n>>2]|0)+X|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}e=c[m>>2]|0;m=1<>2];if(((k|0)%(m|0)|0|0)!=0?(k|0)<(c[e+13120>>2]|0):0){X=1;i=j;return X|0}X=l+f|0;if(((X|0)%(m|0)|0|0)!=0?(X|0)<(c[e+13124>>2]|0):0){X=1;i=j;return X|0}X=(fb(b)|0)==0&1;i=j;return X|0}function Rb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+4348|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function Sb(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;A=c[q+4>>2]|0;G=w+4|0;c[G>>2]=A;L=c[r>>2]|0;c[t>>2]=L;q=c[r+4>>2]|0;x=t+4|0;c[x>>2]=q;y=a[v+31254>>0]|0;do if(y<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;I=c[r>>2]|0;B=(c[I+13076>>2]|0)>>>0>>0;if(((!B?(c[I+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(y<<24>>24!=0&(o|0)==0):0)y=(sb(e,n)|0)&255;else{if((c[I+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)I=(o|0)==0&(c[v+31248>>2]|0)!=0;else I=0;if(B)y=1;else y=(y<<24>>24!=0&(o|0)==0|I)&1}B=(n|0)>2;I=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!I){J=q;M=A}else E=20;else if((I|0)==3)E=20;else{J=q;M=A}do if((E|0)==20){I=(o|0)==0;if(!((K|0)==0&(I^1))){K=tb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?y<<24>>24==0|(n|0)==3:0){A=tb(e,o)|0;c[G>>2]=A}if(!I)E=25}else{K=0;E=25}if((E|0)==25)if(!L){L=0;J=q;M=A;break}L=tb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?y<<24>>24==0|(n|0)==3:0){J=tb(e,o)|0;c[x>>2]=J;M=A}else{J=q;M=A}}while(0);if(!(y<<24>>24)){A=c[r>>2]|0;q=c[A+13072>>2]|0;y=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=ub(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;Cc(e,f,g,t,w);Ub(e,f,g,A,1);Ub(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,Cc(e,h,j,H,F),Ub(e,h,j,n,1),Ub(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=hb(e)|0;H=G+280|0;c[H>>2]=M;if(M){M=(ib(e)|0)==1;J=c[H>>2]|0;if(M){J=0-J|0;c[H>>2]=J}}else J=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((J|0)<(-26-M|0)|(J|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{zb(e,k,l,m);break}}while(0);if((!((a[e+2080>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(jb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{k=c[E>>2]|0;if(!(a[k+1633>>0]|0))l=0;else{l=kb(e)|0;k=c[E>>2]|0}a[G+302>>0]=a[k+l+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+l+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){k=c[G+288>>2]|0;if((k+ -6|0)>>>0<9)m=2;else m=(k+ -22|0)>>>0<9&1;k=c[G+292>>2]|0;if((k+ -6|0)>>>0<9)k=2;else k=(k+ -22|0)>>>0<9&1}else{m=0;k=0}l=G+304|0;a[l>>0]=0;if(I)xb(e,f,g,n,m,0);m=c[r>>2]|0;C=c[m+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)xb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)xb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}j=1<<(c[m+13172>>2]|0)+A;h=1<<(c[m+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;Tb(e,0)}while(0);m=e+160|0;C=G+320|0;D=G+11680|0;E=1<0;p=e+(A+ -2<<2)+2612|0;F=G+284|0;J=0;do{if((c[z>>2]|0)==1){M=(J<>2]|0)){if(!(a[l>>0]|0))break;M=c[m>>2]|0;G=c[M+36>>2]|0;H=c[r>>2]|0;I=$(g>>c[H+13184>>2],G)|0;I=(c[M+4>>2]|0)+(I+(f>>c[H+13172>>2]<>2]))|0;if(B){J=0;do{b[D+(J<<1)>>1]=($(b[C+(J<<1)>>1]|0,c[F>>2]|0)|0)>>>3;J=J+1|0}while((J|0)!=(E|0));J=E}else J=0;Ka[c[p>>2]&7](I,D,G,c[H+52>>2]|0)}else xb(e,f,(J<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))I=0;else{Tb(e,1);I=0}do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;M=c[m>>2]|0;G=c[M+40>>2]|0;w=c[r>>2]|0;H=$(g>>c[w+13188>>2],G)|0;H=(c[M+8>>2]|0)+(H+(f>>c[w+13176>>2]<>2]))|0;if(B){I=0;do{b[D+(I<<1)>>1]=($(b[C+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(E|0));I=E}else I=0;Ka[c[p>>2]&7](H,D,G,c[w+52>>2]|0)}else xb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+4344|0;r=0;do{w=$(r+g>>q,x)|0;o=0;do{a[(c[t>>2]|0)+((o+f>>q)+w)>>0]=1;o=o+y|0}while((o|0)<(u|0));r=r+y|0}while((r|0)<(u|0))}if(((a[e+2061>>0]|0)==0?(Ab(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)Rb(e,f,g,n)}else{u=n+ -1|0;n=1<>2]|0;f=vb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((wb(a,b)|0)<<1)<>2]|0;s=c[d+200>>2]|0;q=c[s+52>>2]|0;V=c[s+(j<<2)+13168>>2]|0;U=c[s+(j<<2)+13180>>2]|0;k=1<>2]|0;oa=k<>2]|0;W=f>>X&_;ia=g>>X&_;Y=_+2|0;aa=($(ia,Y)|0)+W|0;ba=c[d+204>>2]|0;ca=c[ba+1684>>2]|0;aa=c[ca+(aa<<2)>>2]|0;n=c[d+160>>2]|0;d=(c[n+(j<<2)+32>>2]|0)>>>1;n=c[n+(j<<2)>>2]|0;m=($(d,g>>U)|0)+(f>>V)|0;o=n+(m<<1)|0;p=(j|0)==0;r=c[(p?t+288|0:t+292|0)>>2]|0;w=v+2|0;B=y+2|0;z=A+2|0;u=x+2|0;if(!(c[t+31288>>2]|0))na=0;else na=(aa|0)>(c[ca+(W+ -1+($(_&ia+(oa>>X),Y)|0)<<2)>>2]|0);la=na&1;da=c[t+31292>>2]|0;M=c[t+31300>>2]|0;Z=c[t+31296>>2]|0;if(!(c[t+31304>>2]|0))ja=0;else ja=(aa|0)>(c[ca+(($(Y,ia+ -1|0)|0)+(_&W+(ma>>X))<<2)>>2]|0);W=ja&1;ca=(oa<<1)+g|0;_=s+13124|0;ia=c[_>>2]|0;X=oa+g|0;ca=((ca|0)>(ia|0)?ia:ca)-X>>U;ia=(ma<<1)+f|0;aa=s+13120|0;ra=c[aa>>2]|0;Y=ma+f|0;ia=((ia|0)>(ra|0)?ra:ia)-Y>>V;ba=ba+20|0;if((a[ba>>0]|0)==1){ka=c[s+13084>>2]|0;pa=oa>>ka;ma=ma>>ka;qa=(1<>2]|0)-(X>>ka)|0;na=(pa|0)>(na|0)?na:pa;if((na|0)>0){la=0;ra=0;do{la=la|1;ra=ra+2|0}while((ra|0)<(na|0))}else la=0}if(!((da|0)!=1|qa)){ra=(c[s+13160>>2]|0)-(g>>ka)|0;pa=(pa|0)>(ra|0)?ra:pa;if((pa|0)>0){da=0;na=0;do{da=da|1;na=na+2|0}while((na|0)<(pa|0))}else da=0}na=(oa|0)!=0;if(!((Z|0)!=1|na)){oa=(c[s+13156>>2]|0)-(f>>ka)|0;oa=(ma|0)>(oa|0)?oa:ma;if((oa|0)>0){Z=0;pa=0;do{Z=Z|1;pa=pa+2|0}while((pa|0)<(oa|0))}else Z=0}if(!(na|ja^1)){ka=(c[s+13156>>2]|0)-(Y>>ka)|0;ka=(ma|0)>(ka|0)?ka:ma;if((ka|0)>0){W=0;ja=0;do{W=W|1;ja=ja+2|0}while((ja|0)<(ka|0))}else W=0}ka=w+0|0;ja=ka+128|0;do{b[ka>>1]=32896;ka=ka+2|0}while((ka|0)<(ja|0));ka=B+0|0;ja=ka+128|0;do{b[ka>>1]=32896;ka=ka+2|0}while((ka|0)<(ja|0));b[y>>1]=128;ma=W}else ma=W;ka=(M|0)!=0;if(ka){ra=b[n+(m+~d<<1)>>1]|0;b[v>>1]=ra;b[y>>1]=ra}ja=(Z|0)!=0;if(ja)fe(B|0,n+(m-d<<1)|0,k<<1|0)|0;W=(ma|0)!=0;if(W?(ha=k+1|0,fe(y+(ha<<1)|0,n+(k-d+m<<1)|0,k<<1|0)|0,fa=ke(e[n+(k+ -1-d+m+ia<<1)>>1]|0,0,65537,65537)|0,ga=D,ea=k-ia|0,(ea|0)>0):0){ia=ia+ha|0;ha=0;do{ra=y+(ia+ha<<1)|0;qa=ra;b[qa>>1]=fa;b[qa+2>>1]=fa>>>16;ra=ra+4|0;b[ra>>1]=ga;b[ra+2>>1]=ga>>>16;ha=ha+4|0}while((ha|0)<(ea|0))}ea=(da|0)!=0;if(ea&(k|0)>0){fa=m+ -1|0;ga=0;do{ra=ga;ga=ga+1|0;b[v+(ga<<1)>>1]=b[n+(fa+($(ra,d)|0)<<1)>>1]|0}while((ga|0)!=(k|0))}fa=(la|0)!=0;if(fa){ia=ca+k|0;ha=m+ -1|0;if((ca|0)>0){ga=k;do{ra=ga;ga=ga+1|0;b[v+(ga<<1)>>1]=b[n+(ha+($(ra,d)|0)<<1)>>1]|0}while((ga|0)<(ia|0))}ia=ke(e[n+(ha+($(ia+ -1|0,d)|0)<<1)>>1]|0,0,65537,65537)|0;ha=D;ga=k-ca|0;if((ga|0)>0){ca=k+1+ca|0;na=0;do{ra=v+(ca+na<<1)|0;qa=ra;b[qa>>1]=ia;b[qa+2>>1]=ia>>>16;ra=ra+4|0;b[ra>>1]=ha;b[ra+2>>1]=ha>>>16;na=na+4|0}while((na|0)<(ga|0))}}do if((a[ba>>0]|0)==1?(ra=la|da,S=(ra|0)==0,ra=ra|M,T=(ra|0)==0,(Z|ma|ra|0)!=0):0){ba=k<<1;ca=c[aa>>2]|0;if(((ba<>V;_=c[_>>2]|0;if(((ba<=(_|0))ba=_-g>>U;if(!W)if((Y|0)<(ca|0))V=k;else V=ca-f>>V;else V=aa;if(!fa)if((X|0)<(_|0))U=k;else U=_-g>>U;else U=ba;X=b[y>>1]|0;if(T)b[v>>1]=X;b[v>>1]=X;if(!S){S=0;while(1)if((S|0)<(U|0))S=S+4|0;else break}if(!ea?(R=ke(X&65535|0,0,65537,65537)|0,Q=D,(k|0)>0):0){S=0;do{ra=v+((S|1)<<1)|0;qa=ra;b[qa>>1]=R;b[qa+2>>1]=R>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;S=S+4|0}while((S|0)<(k|0))}do if(!fa){Q=ke(e[v+(k<<1)>>1]|0,0,65537,65537)|0;S=D;if((k|0)<=0)break;T=k+1|0;R=0;do{ra=v+(T+R<<1)|0;qa=ra;b[qa>>1]=Q;b[qa+2>>1]=Q>>>16;ra=ra+4|0;b[ra>>1]=S;b[ra+2>>1]=S>>>16;R=R+4|0}while((R|0)<(k|0))}while(0);g=(g|0)==0;if((f|0)==0&(U|0)>0){f=0;do{ra=v+((f|1)<<1)|0;qa=ra;b[qa>>1]=0;b[qa+2>>1]=0>>>16;ra=ra+4|0;b[ra>>1]=0;b[ra+2>>1]=0>>>16;f=f+4|0}while((f|0)<(U|0))}b[y>>1]=b[v>>1]|0;if(g)break;else f=0;while(1)if((f|0)<(V|0))f=f+4|0;else break}while(0);a:do if(!fa){if(ea){P=ke(e[v+(k<<1)>>1]|0,0,65537,65537)|0;f=D;if((k|0)<=0){P=84;break}g=k+1|0;Q=0;while(1){ra=v+(g+Q<<1)|0;qa=ra;b[qa>>1]=P;b[qa+2>>1]=P>>>16;ra=ra+4|0;b[ra>>1]=f;b[ra+2>>1]=f>>>16;Q=Q+4|0;if((Q|0)>=(k|0)){P=84;break a}}}if(ka){f=ke(e[v>>1]|0,0,65537,65537)|0;P=D;O=k<<1;if((k|0)>0)N=0;else{P=87;break}while(1){ra=v+((N|1)<<1)|0;qa=ra;b[qa>>1]=f;b[qa+2>>1]=f>>>16;ra=ra+4|0;b[ra>>1]=P;b[ra+2>>1]=P>>>16;N=N+4|0;if((N|0)>=(O|0)){P=87;break a}}}if(ja){N=b[B>>1]|0;b[v>>1]=N;N=ke(N&65535|0,0,65537,65537)|0;O=D;M=k<<1;if((k|0)>0)P=0;else{P=89;break}while(1){ra=v+((P|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=O;b[ra+2>>1]=O>>>16;P=P+4|0;if((P|0)>=(M|0)){P=89;break a}}}if(!W){g=1<>1]=g;R=ke(g&65535|0,0,65537,65537)|0;Q=D;P=k<<1;f=(k|0)>0;if(f)S=0;else{P=84;break}do{ra=y+((S|1)<<1)|0;qa=ra;b[qa>>1]=R;b[qa+2>>1]=R>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;S=S+4|0}while((S|0)<(P|0));g=ke(g&65535|0,0,65537,65537)|0;Q=D;if(f)f=0;else{P=84;break}while(1){ra=v+((f|1)<<1)|0;qa=ra;b[qa>>1]=g;b[qa+2>>1]=g>>>16;ra=ra+4|0;b[ra>>1]=Q;b[ra+2>>1]=Q>>>16;f=f+4|0;if((f|0)>=(P|0)){P=84;break a}}}M=y+(k+1<<1)|0;O=b[M>>1]|0;N=ke(O&65535|0,0,65537,65537)|0;L=D;K=(k|0)>0;if(K)O=0;else{b[v>>1]=O;break}do{ra=y+((O|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;O=O+4|0}while((O|0)<(k|0));M=b[M>>1]|0;b[v>>1]=M;M=ke(M&65535|0,0,65537,65537)|0;L=D;N=k<<1;if(K){K=0;do{ra=v+((K|1)<<1)|0;qa=ra;b[qa>>1]=M;b[qa+2>>1]=M>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;K=K+4|0}while((K|0)<(N|0));P=92}else P=92}else P=84;while(0);if((P|0)==84)if((da|0)==0?(N=ke(e[v+(k+1<<1)>>1]|0,0,65537,65537)|0,O=D,(k|0)>0):0){P=0;do{ra=v+((P|1)<<1)|0;qa=ra;b[qa>>1]=N;b[qa+2>>1]=N>>>16;ra=ra+4|0;b[ra>>1]=O;b[ra+2>>1]=O>>>16;P=P+4|0}while((P|0)<(k|0));P=87}else P=87;if((P|0)==87)if(!M){b[v>>1]=b[w>>1]|0;P=89}else P=89;if((P|0)==89)if((Z|0)==0?(K=ke(e[v>>1]|0,0,65537,65537)|0,L=D,(k|0)>0):0){M=0;do{ra=y+((M|1)<<1)|0;qa=ra;b[qa>>1]=K;b[qa+2>>1]=K>>>16;ra=ra+4|0;b[ra>>1]=L;b[ra+2>>1]=L>>>16;M=M+4|0}while((M|0)<(k|0));P=92}else P=92;if(((P|0)==92?!W:0)?(J=ke(e[y+(k<<1)>>1]|0,0,65537,65537)|0,I=D,(k|0)>0):0){K=k+1|0;L=0;do{ra=y+(K+L<<1)|0;qa=ra;b[qa>>1]=J;b[qa+2>>1]=J>>>16;ra=ra+4|0;b[ra>>1]=I;b[ra+2>>1]=I>>>16;L=L+4|0}while((L|0)<(k|0))}I=b[v>>1]|0;b[y>>1]=I;b:do if(!(c[s+13112>>2]|0)){if(p){if((r|0)==1|(k|0)==4){u=B;break}}else if(((r|0)==1?1:(c[s+4>>2]|0)!=3)|(k|0)==4){u=B;break}ra=r+ -26|0;ra=(ra|0)>-1?ra:26-r|0;qa=r+ -10|0;qa=(qa|0)>-1?qa:10-r|0;if((((ra|0)>(qa|0)?qa:ra)|0)>(c[1576+(h+ -3<<2)>>2]|0)){J=1<>0]|0)!=0&(h|0)==5?(G=I&65535,H=b[y+128>>1]|0,F=H&65535,ra=F+G-(e[y+64>>1]<<1)|0,(((ra|0)>-1?ra:0-ra|0)|0)<(J|0)):0)?(C=v+128|0,E=b[C>>1]|0,ra=(E&65535)+G-(e[v+64>>1]<<1)|0,(((ra|0)>-1?ra:0-ra|0)|0)<(J|0)):0){b[x>>1]=I;b[x+128>>1]=H;y=0;do{ra=y;y=y+1|0;b[x+(y<<1)>>1]=(($(G,63-ra|0)|0)+32+($(F,y)|0)|0)>>>6}while((y|0)!=63);y=0;while(1){x=y+1|0;b[v+(x<<1)>>1]=(($(I&65535,63-y|0)|0)+32+($(E&65535,x)|0)|0)>>>6;if((x|0)==63)break b;I=b[v>>1]|0;E=b[C>>1]|0;y=x}}C=k<<1;H=b[v+(C<<1)>>1]|0;b[A+(C<<1)>>1]=H;F=b[y+(C<<1)>>1]|0;b[x+(C<<1)>>1]=F;C=C+ -2|0;E=(C|0)>-1;if(E){G=C;while(1){ra=G+1|0;qa=H;H=b[v+(ra<<1)>>1]|0;b[A+(ra<<1)>>1]=((qa&65535)+2+((H&65535)<<1)+(e[v+(G<<1)>>1]|0)|0)>>>2;if((G|0)<=0)break;else G=G+ -1|0}}ra=((e[w>>1]|0)+2+((I&65535)<<1)+(e[B>>1]|0)|0)>>>2&65535;b[A>>1]=ra;b[x>>1]=ra;if(E)while(1){ra=C+1|0;qa=F;F=b[y+(ra<<1)>>1]|0;b[x+(ra<<1)>>1]=((qa&65535)+2+((F&65535)<<1)+(e[y+(C<<1)>>1]|0)|0)>>>2;if((C|0)<=0){w=z;break}else C=C+ -1|0}else w=z}else u=B}else u=B;while(0);if(!r){Vb(o,u,w,d,h);i=l;return}else if((r|0)==1){if((k|0)>0){j=k;q=0;do{j=(e[w+(q<<1)>>1]|0)+j+(e[u+(q<<1)>>1]|0)|0;q=q+1|0}while((q|0)!=(k|0));r=j>>h+1;s=ke(r|0,((r|0)<0)<<31>>31|0,65537,65537)|0;t=D;q=0;do{j=($(q,d)|0)+m|0;h=0;do{ra=n+(j+h<<1)|0;qa=ra;a[qa>>0]=s;a[qa+1>>0]=s>>8;a[qa+2>>0]=s>>16;a[qa+3>>0]=s>>24;ra=ra+4|0;a[ra>>0]=t;a[ra+1>>0]=t>>8;a[ra+2>>0]=t>>16;a[ra+3>>0]=t>>24;h=h+4|0}while((h|0)<(k|0));q=q+1|0}while((q|0)!=(k|0))}else r=k>>h+1;if(!(p&(k|0)<32)){i=l;return}b[o>>1]=((r<<1)+2+(e[w>>1]|0)+(e[u>>1]|0)|0)>>>2;if((k|0)<=1){i=l;return}o=(r*3|0)+2|0;p=1;do{b[n+(p+m<<1)>>1]=((e[u+(p<<1)>>1]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));p=1;do{b[n+(($(p,d)|0)+m<<1)>>1]=((e[w+(p<<1)>>1]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));i=l;return}else{if(!(c[s+13104>>2]|0))m=0;else m=(a[t+31256>>0]|0)!=0;Wb(o,u,w,d,j,r,k,m&1,q);i=l;return}}function Vb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,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;m=i;j=1<>1]|0,l-r|0)|0;s=r;r=r+1|0;u=$(e[h>>1]|0,r)|0;t=$(e[c+(s<<1)>>1]|0,p)|0;b[a+(s+q<<1)>>1]=v+j+u+t+($(e[k>>1]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function Wb(c,f,g,h,j,k,l,m,n){c=c|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;o=i;i=i+208|0;r=o;p=a[1592+(k+ -2)>>0]|0;q=r+(l<<1)|0;s=($(p,l)|0)>>5;if((k|0)>17){u=f+ -2|0;t=k+ -11|0;if(t>>>0<15&(s|0)<-1){if((l|0)>=0){u=0;do{w=f+(u+ -1<<1)|0;y=w;y=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;w=w+4|0;w=d[w>>0]|d[w+1>>0]<<8|d[w+2>>0]<<16|d[w+3>>0]<<24;x=r+(u+l<<1)|0;v=x;b[v>>1]=y;b[v+2>>1]=y>>>16;x=x+4|0;b[x>>1]=w;b[x+2>>1]=w>>>16;u=u+4|0}while((u|0)<=(l|0))}if((s|0)<0){t=b[1632+(t<<1)>>1]|0;do{b[r+(s+l<<1)>>1]=b[g+((($(t,s)|0)+128>>8)+ -1<<1)>>1]|0;s=s+1|0}while((s|0)!=0)}}else q=u;r=(l|0)>0;if(r){s=0;do{w=s;s=s+1|0;v=$(s,p)|0;t=v>>5;v=v&31;if(!v){t=t+1|0;v=$(w,h)|0;u=0;do{x=q+(t+u<<1)|0;z=x;z=d[z>>0]|d[z+1>>0]<<8|d[z+2>>0]<<16|d[z+3>>0]<<24;x=x+4|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=c+(u+v<<1)|0;w=y;a[w>>0]=z;a[w+1>>0]=z>>8;a[w+2>>0]=z>>16;a[w+3>>0]=z>>24;y=y+4|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;u=u+4|0}while((u|0)<(l|0))}else{u=32-v|0;w=$(w,h)|0;x=0;do{z=x+t|0;y=$(e[q+(z+1<<1)>>1]|0,u)|0;b[c+(x+w<<1)>>1]=(y+16+($(e[q+(z+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|1;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|2;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;z=x|3;y=z+t|0;A=$(e[q+(y+1<<1)>>1]|0,u)|0;b[c+(z+w<<1)>>1]=(A+16+($(e[q+(y+2<<1)>>1]|0,v)|0)|0)>>>5;x=x+4|0}while((x|0)<(l|0))}}while((s|0)!=(l|0))}if(!((k|0)==26&(j|0)==0&(l|0)<32&(m|0)==0&r)){i=o;return}j=g+ -2|0;k=1<>1]|0)-(e[j>>1]|0)>>1)+(e[f>>1]|0)|0;if(p&m)p=0-p>>31&k;b[c+(($(n,h)|0)<<1)>>1]=p;n=n+1|0}while((n|0)!=(l|0));i=o;return}u=g+ -2|0;t=k+ -11|0;if(t>>>0<15&(s|0)<-1){if((l|0)>=0){u=0;do{z=g+(u+ -1<<1)|0;x=z;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;z=z+4|0;z=d[z>>0]|d[z+1>>0]<<8|d[z+2>>0]<<16|d[z+3>>0]<<24;A=r+(u+l<<1)|0;y=A;b[y>>1]=x;b[y+2>>1]=x>>>16;A=A+4|0;b[A>>1]=z;b[A+2>>1]=z>>>16;u=u+4|0}while((u|0)<=(l|0))}if((s|0)<0){t=b[1632+(t<<1)>>1]|0;do{b[r+(s+l<<1)>>1]=b[f+((($(t,s)|0)+128>>8)+ -1<<1)>>1]|0;s=s+1|0}while((s|0)!=0)}}else q=u;r=(l|0)>0;if(r){t=0;do{s=t;t=t+1|0;w=$(t,p)|0;x=w>>5;w=w&31;if(!w){v=x+1|0;u=0;do{b[c+(($(u,h)|0)+s<<1)>>1]=b[q+(v+u<<1)>>1]|0;u=u+1|0}while((u|0)!=(l|0))}else{v=32-w|0;u=0;do{A=u+x|0;z=$(e[q+(A+1<<1)>>1]|0,v)|0;b[c+(($(u,h)|0)+s<<1)>>1]=(z+16+($(e[q+(A+2<<1)>>1]|0,w)|0)|0)>>>5;u=u+1|0}while((u|0)!=(l|0))}}while((t|0)!=(l|0))}if(!((k|0)==10&(j|0)==0&(l|0)<32&(m|0)==0&r)){i=o;return}h=f+ -2|0;j=1<>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(m&n)m=0-m>>31&j;b[c+(k<<1)>>1]=m;m=k|1;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;m=k|2;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;m=k|3;p=((e[f+(m<<1)>>1]|0)-(e[h>>1]|0)>>1)+(e[g>>1]|0)|0;if(p&n)p=0-p>>31&j;b[c+(m<<1)>>1]=p;k=k+4|0}while((k|0)<(l|0));i=o;return}function Xb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+46|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Uc(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0;i=g;return}function Yb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,6);i=b;return}function Zb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,-1);i=b;return}function _b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0){j=-1094995529;i=g;return j|0}j=d+2524|0;if(c[(c[j>>2]|0)+304>>2]|0){j=-12;i=g;return j|0}if((Tc(c[d+4>>2]|0,d+2528|0,1)|0)<0){j=-12;i=g;return j|0}k=d+200|0;m=c[k>>2]|0;c[d+2540>>2]=$(c[m+13132>>2]|0,c[m+13128>>2]|0)|0;m=d+4520|0;l=c[j>>2]|0;c[l+244>>2]=(c[m>>2]|0)==1&1;c[l+240>>2]=((c[m>>2]|0)+ -1|0)>>>0<2&1;c[e>>2]=l;c[d+2520>>2]=j;a[d+2570>>0]=(a[d+1450>>0]|0)==0?2:3;c[d+2544>>2]=f;b[d+2568>>1]=b[h>>1]|0;j=d+2552|0;f=(c[k>>2]|0)+20|0;c[j+0>>2]=c[f+0>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=0;i=g;return j|0}function $b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;l=d+2046|0;k=d+2572|0;h=d+4366|0;n=(f|0)==0;m=d+4364|0;f=d+200|0;while(1){if((a[l>>0]|0)==1){p=d+2524|0;o=d+2570|0;if(((a[o>>0]&8)==0?(c[d+2544>>2]|0)!=(c[k>>2]|0):0)?(b[d+2568>>1]|0)==(b[h>>1]|0):0)Xb(d,p,1)}else o=d+2570|0;if(!(a[o>>0]&1))o=0;else o=(b[d+2568>>1]|0)==(b[h>>1]|0)&1;if(((n?(b[h>>1]|0)==(b[m>>1]|0):0)?(j=c[f>>2]|0,(j|0)!=0):0)?(o|0)<=(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=21;break}if(o){h=15;break}o=b[h>>1]|0;if(o<<16>>16==(b[m>>1]|0)){d=0;h=21;break}b[h>>1]=(o&65535)+1&255}if((h|0)==15){h=d+2524|0;e=Ad(e,c[h>>2]|0)|0;if(!(a[d+2570>>0]&8))Xb(d,h,1);else Xb(d,h,9);p=(e|0)<0?e:1;i=g;return p|0}else if((h|0)==21){i=g;return d|0}return 0}function ac(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1664]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1664+(c<<5)+d>>0]=$(a[2688+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function bc(a,b){a=a|0;b=b|0;c[a>>2]=4;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=2;c[a+28>>2]=1;c[a+32>>2]=3;c[a+36>>2]=4;c[a+40>>2]=5;c[a+44>>2]=6;c[a+48>>2]=2;c[a+52>>2]=3;c[a+56>>2]=4;c[a+60>>2]=5;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=5;c[a+1680>>2]=6;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=5;c[a+1696>>2]=6;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function cc(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;c=c>>>1;if((e|0)<=0){i=j;return}k=(d|0)>0;h=h-g|0;l=0;while(1){if(k){m=0;do{b[a+(m<<1)>>1]=(_c(f,g)|0)<>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==4)break;else l=l+2|0}j=j+1|0;if((j|0)==4)break;else{c=c+8|0;a=a+(d<<1)|0}}i=g;return} -function ec(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==8)break;else l=l+2|0}j=j+1|0;if((j|0)==8)break;else{c=c+16|0;a=a+(d<<1)|0}}i=g;return}function fc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==16)break;else l=l+2|0}j=j+1|0;if((j|0)==16)break;else{c=c+32|0;a=a+(d<<1)|0}}i=g;return}function gc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==32)break;else l=l+2|0}j=j+1|0;if((j|0)==32)break;else{c=c+64|0;a=a+(d<<1)|0}}i=g;return}function hc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;c=c<<16>>16;d=15-d-c|0;c=1<0){f=1<0){h=a;a=0}else{i=e;return}while(1){j=h;g=0;while(1){b[j>>1]=(b[j>>1]|0)+f>>d;g=g+1|0;if((g|0)==(c|0))break;else j=j+2|0}a=a+1|0;if((a|0)==(c|0))break;else h=h+(c<<1)|0}i=e;return}if((c|0)<=0){i=e;return}d=0-d|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function jc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=i;e=0;g=a;while(1){q=b[g>>1]|0;n=g+16|0;o=b[n>>1]|0;h=o+q|0;f=g+24|0;p=b[f>>1]|0;m=p+o|0;j=q-p|0;l=g+8|0;k=(b[l>>1]|0)*74|0;p=((q-o+p|0)*74|0)+64|0;o=p>>7;if((o+32768|0)>>>0>65535)o=p>>31^32767;b[n>>1]=o;o=(h*29|0)+64+(m*55|0)+k|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[g>>1]=n;m=($(m,-29)|0)+64+(j*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[l>>1]=n;j=(h*55|0)+64+(j*29|0)-k|0;h=j>>7;if((h+32768|0)>>>0>65535)h=j>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4)break;else g=g+2|0}e=20-c|0;c=1<>1]|0;n=a+4|0;q=b[n>>1]|0;l=q+p|0;f=a+6|0;o=b[f>>1]|0;m=o+q|0;h=p-o|0;k=a+2|0;j=(b[k>>1]|0)*74|0;o=((p-q+o|0)*74|0)+c>>e;if((o+32768|0)>>>0>65535)o=o>>31^32767;b[n>>1]=o;n=(l*29|0)+c+(m*55|0)+j>>e;if((n+32768|0)>>>0>65535)n=n>>31^32767;b[a>>1]=n;m=($(m,-29)|0)+c+(h*55|0)+j>>e;if((m+32768|0)>>>0>65535)m=m>>31^32767;b[k>>1]=m;h=(l*55|0)+c+(h*29|0)-j>>e;if((h+32768|0)>>>0>65535)h=h>>31^32767;b[f>>1]=h;g=g+1|0;if((g|0)==4)break;else a=a+8|0}i=d;return}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;g=a;while(1){n=b[g>>1]<<6;k=g+16|0;m=b[k>>1]<<6;j=m+n|0;m=n-m|0;n=g+8|0;l=b[n>>1]|0;f=g+24|0;o=b[f>>1]|0;h=(o*36|0)+(l*83|0)|0;l=($(o,-83)|0)+(l*36|0)|0;o=j+64+h|0;p=o>>7;if((p+32768|0)>>>0>65535)p=o>>31^32767;b[g>>1]=p;p=m+64+l|0;o=p>>7;if((o+32768|0)>>>0>65535)o=p>>31^32767;b[n>>1]=o;l=m-l+64|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[k>>1]=m;j=j-h+64|0;h=j>>7;if((h+32768|0)>>>0>65535)h=j>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4)break;else g=g+2|0}e=20-d|0;d=1<>1]<<6;k=a+4|0;o=b[k>>1]<<6;m=a+2|0;l=b[m>>1]|0;f=a+6|0;j=b[f>>1]|0;h=(j*36|0)+(l*83|0)|0;l=($(j,-83)|0)+(l*36|0)|0;j=o+n+d|0;p=j+h>>e;if((p+32768|0)>>>0>65535)p=p>>31^32767;b[a>>1]=p;n=n-o+d|0;o=n+l>>e;if((o+32768|0)>>>0>65535)o=o>>31^32767;b[m>>1]=o;l=n-l>>e;if((l+32768|0)>>>0>65535)l=l>>31^32767;b[k>>1]=l;h=j-h>>e;if((h+32768|0)>>>0>65535)h=h>>31^32767;b[f>>1]=h;g=g+1|0;if((g|0)==4)break;else a=a+8|0}i=c;return}function lc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;i=i+64|0;r=j+48|0;p=j+32|0;g=j+16|0;h=j;q=(e|0)>8;s=e+4|0;k=r+4|0;l=r+8|0;m=r+12|0;o=0;s=(s|0)>8?8:s;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(s|0)>1;t=0;do{if(w){v=p+(t<<2)|0;u=c[v>>2]|0;x=1;do{u=($(b[n+(x<<3<<1)>>1]|0,a[1664+(x<<2<<5)+t>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(s|0));c[v>>2]=u}t=t+1|0}while((t|0)!=4);w=b[n>>1]<<6;v=b[n+64>>1]<<6;x=v+w|0;v=w-v|0;w=b[n+32>>1]|0;u=b[n+96>>1]|0;t=(u*36|0)+(w*83|0)|0;w=($(u,-83)|0)+(w*36|0)|0;u=t+x|0;c[r>>2]=u;c[k>>2]=w+v;c[l>>2]=v-w;c[m>>2]=x-t;t=0;while(1){v=c[p+(t<<2)>>2]|0;w=u+64+v|0;x=w>>7;if((x+32768|0)>>>0>65535)x=w>>31^32767;b[n+(t<<3<<1)>>1]=x;v=u-v+64|0;u=v>>7;if((u+32768|0)>>>0>65535)u=v>>31^32767;b[n+(7-t<<3<<1)>>1]=u;t=t+1|0;if((t|0)==4)break;u=c[r+(t<<2)>>2]|0}if((s|0)<8)s=(o&3|0)==0&(o|0)!=0?s+ -4|0:s;o=o+1|0;if((o|0)==8)break;else n=n+2|0}k=q?8:e;l=20-f|0;m=1<1;n=g+4|0;o=g+8|0;e=g+12|0;p=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;t=0;do{if(f){q=h+(t<<2)|0;s=c[q>>2]|0;r=1;do{s=($(b[d+(r<<1)>>1]|0,a[1664+(r<<2<<5)+t>>0]|0)|0)+s|0;r=r+2|0}while((r|0)<(k|0));c[q>>2]=s}t=t+1|0}while((t|0)!=4);w=b[d>>1]<<6;v=b[d+8>>1]<<6;x=v+w|0;v=w-v|0;w=b[d+4>>1]|0;s=b[d+12>>1]|0;q=(s*36|0)+(w*83|0)|0;w=($(s,-83)|0)+(w*36|0)|0;s=q+x|0;c[g>>2]=s;c[n>>2]=w+v;c[o>>2]=v-w;c[e>>2]=x-q;q=0;while(1){r=c[h+(q<<2)>>2]|0;s=s+m|0;t=s+r>>l;if((t+32768|0)>>>0>65535)t=t>>31^32767;b[d+(q<<1)>>1]=t;r=s-r>>l;if((r+32768|0)>>>0>65535)r=r>>31^32767;b[d+(7-q<<1)>>1]=r;q=q+1|0;if((q|0)==4)break;s=c[g+(q<<2)>>2]|0}p=p+1|0;if((p|0)==8)break;else d=d+16|0}i=j;return}function mc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=i;i=i+192|0;t=g+160|0;u=g+128|0;v=g+112|0;s=g+96|0;j=g+64|0;l=g+32|0;h=g+16|0;k=g;m=(e|0)>16;w=e+4|0;n=v+4|0;o=v+8|0;p=v+12|0;r=0;w=(w|0)>16?16:w;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(w|0)>1;B=0;do{if(A){z=u+(B<<2)|0;x=c[z>>2]|0;y=1;do{x=($(b[q+(y<<4<<1)>>1]|0,a[1664+(y<<1<<5)+B>>0]|0)|0)+x|0;y=y+2|0}while((y|0)<(w|0));c[z>>2]=x}B=B+1|0}while((B|0)!=8);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;y=0;do{x=s+(y<<2)|0;A=c[x>>2]|0;z=1;do{A=($(b[q+(z<<5<<1)>>1]|0,a[1664+(z<<2<<5)+y>>0]|0)|0)+A|0;z=z+2|0}while((z|0)<8);c[x>>2]=A;y=y+1|0}while((y|0)!=4);A=b[q>>1]<<6;z=b[q+256>>1]<<6;B=z+A|0;z=A-z|0;A=b[q+128>>1]|0;x=b[q+384>>1]|0;y=(x*36|0)+(A*83|0)|0;A=($(x,-83)|0)+(A*36|0)|0;x=y+B|0;c[v>>2]=x;c[n>>2]=A+z;c[o>>2]=z-A;c[p>>2]=B-y;y=0;while(1){B=c[s+(y<<2)>>2]|0;c[t+(y<<2)>>2]=B+x;c[t+(7-y<<2)>>2]=x-B;y=y+1|0;if((y|0)==4){x=0;break}x=c[v+(y<<2)>>2]|0}do{z=c[t+(x<<2)>>2]|0;y=c[u+(x<<2)>>2]|0;B=z+64+y|0;A=B>>7;if((A+32768|0)>>>0>65535)A=B>>31^32767;b[q+(x<<4<<1)>>1]=A;y=z-y+64|0;z=y>>7;if((z+32768|0)>>>0>65535)z=y>>31^32767;b[q+(15-x<<4<<1)>>1]=z;x=x+1|0}while((x|0)!=8);if((w|0)<16)w=(r&3|0)==0&(r|0)!=0?w+ -4|0:w;r=r+1|0;if((r|0)==16)break;else q=q+2|0}m=m?16:e;f=20-f|0;n=1<1;o=h+4|0;r=h+8|0;p=h+12|0;s=0;while(1){c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;v=0;do{if(q){e=l+(v<<2)|0;u=c[e>>2]|0;t=1;do{u=($(b[d+(t<<1)>>1]|0,a[1664+(t<<1<<5)+v>>0]|0)|0)+u|0;t=t+2|0}while((t|0)<(m|0));c[e>>2]=u}v=v+1|0}while((v|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=0;do{t=k+(e<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[d+(u<<1<<1)>>1]|0,a[1664+(u<<2<<5)+e>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<8);c[t>>2]=v;e=e+1|0}while((e|0)!=4);A=b[d>>1]<<6;z=b[d+16>>1]<<6;B=z+A|0;z=A-z|0;A=b[d+8>>1]|0;t=b[d+24>>1]|0;u=(t*36|0)+(A*83|0)|0;A=($(t,-83)|0)+(A*36|0)|0;t=u+B|0;c[h>>2]=t;c[o>>2]=A+z;c[r>>2]=z-A;c[p>>2]=B-u;u=0;while(1){B=c[k+(u<<2)>>2]|0;c[j+(u<<2)>>2]=B+t;c[j+(7-u<<2)>>2]=t-B;u=u+1|0;if((u|0)==4){t=0;break}t=c[h+(u<<2)>>2]|0}do{u=c[l+(t<<2)>>2]|0;v=(c[j+(t<<2)>>2]|0)+n|0;e=v+u>>f;if((e+32768|0)>>>0>65535)e=e>>31^32767;b[d+(t<<1)>>1]=e;u=v-u>>f;if((u+32768|0)>>>0>65535)u=u>>31^32767;b[d+(15-t<<1)>>1]=u;t=t+1|0}while((t|0)!=8);s=s+1|0;if((s|0)==16)break;else d=d+32|0}i=g;return}function nc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=i;i=i+320|0;h=g+256|0;n=g+192|0;o=g+160|0;s=g+128|0;u=g+112|0;t=g+96|0;m=g+64|0;k=g+32|0;j=g+16|0;l=g;q=(e|0)>32;y=e+4|0;v=u+4|0;w=u+8|0;x=u+12|0;p=0;y=(y|0)>32?32:y;r=d;while(1){z=n+0|0;A=z+64|0;do{c[z>>2]=0;z=z+4|0}while((z|0)<(A|0));z=(y|0)>1;C=0;do{if(z){B=n+(C<<2)|0;A=c[B>>2]|0;D=1;do{A=($(b[r+(D<<5<<1)>>1]|0,a[1664+(D<<5)+C>>0]|0)|0)+A|0;D=D+2|0}while((D|0)<(y|0));c[B>>2]=A}C=C+1|0}while((C|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;z=(y|0)/2|0;A=(y|0)>3;B=0;do{if(A){C=s+(B<<2)|0;D=c[C>>2]|0;E=1;do{D=($(b[r+(E<<6<<1)>>1]|0,a[1664+(E<<1<<5)+B>>0]|0)|0)+D|0;E=E+2|0}while((E|0)<(z|0));c[C>>2]=D}B=B+1|0}while((B|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;C=0;do{z=t+(C<<2)|0;B=c[z>>2]|0;A=1;do{B=($(b[r+(A<<7<<1)>>1]|0,a[1664+(A<<2<<5)+C>>0]|0)|0)+B|0;A=A+2|0}while((A|0)<8);c[z>>2]=B;C=C+1|0}while((C|0)!=4);D=b[r>>1]<<6;C=b[r+1024>>1]<<6;E=C+D|0;C=D-C|0;D=b[r+512>>1]|0;z=b[r+1536>>1]|0;A=(z*36|0)+(D*83|0)|0;D=($(z,-83)|0)+(D*36|0)|0;z=A+E|0;c[u>>2]=z;c[v>>2]=D+C;c[w>>2]=C-D;c[x>>2]=E-A;A=0;while(1){E=c[t+(A<<2)>>2]|0;c[o+(A<<2)>>2]=E+z;c[o+(7-A<<2)>>2]=z-E;A=A+1|0;if((A|0)==4){z=0;break}z=c[u+(A<<2)>>2]|0}do{D=c[o+(z<<2)>>2]|0;E=c[s+(z<<2)>>2]|0;c[h+(z<<2)>>2]=E+D;c[h+(15-z<<2)>>2]=D-E;z=z+1|0}while((z|0)!=8);z=0;do{A=c[h+(z<<2)>>2]|0;B=c[n+(z<<2)>>2]|0;D=A+64+B|0;C=D>>7;if((C+32768|0)>>>0>65535)C=D>>31^32767;b[r+(z<<5<<1)>>1]=C;A=A-B+64|0;B=A>>7;if((B+32768|0)>>>0>65535)B=A>>31^32767;b[r+(31-z<<5<<1)>>1]=B;z=z+1|0}while((z|0)!=16);if((y|0)<32)y=(p&3|0)==0&(p|0)!=0?y+ -4|0:y;p=p+1|0;if((p|0)==32)break;else r=r+2|0}o=q?32:e;e=20-f|0;s=1<1;r=(o|0)/2|0;q=(o|0)>3;p=j+4|0;t=j+8|0;u=j+12|0;v=0;while(1){z=n+0|0;A=z+64|0;do{c[z>>2]=0;z=z+4|0}while((z|0)<(A|0));z=0;do{if(f){w=n+(z<<2)|0;y=c[w>>2]|0;x=1;do{y=($(b[d+(x<<1)>>1]|0,a[1664+(x<<5)+z>>0]|0)|0)+y|0;x=x+2|0}while((x|0)<(o|0));c[w>>2]=y}z=z+1|0}while((z|0)!=16);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;z=0;do{if(q){w=k+(z<<2)|0;y=c[w>>2]|0;x=1;do{E=x<<1;y=($(b[d+(E<<1)>>1]|0,a[1664+(E<<5)+z>>0]|0)|0)+y|0;x=x+2|0}while((x|0)<(r|0));c[w>>2]=y}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;w=0;do{x=l+(w<<2)|0;z=c[x>>2]|0;y=1;do{E=y<<2;z=($(b[d+(E<<1)>>1]|0,a[1664+(E<<5)+w>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[x>>2]=z;w=w+1|0}while((w|0)!=4);D=b[d>>1]<<6;C=b[d+32>>1]<<6;E=C+D|0;C=D-C|0;D=b[d+16>>1]|0;w=b[d+48>>1]|0;x=(w*36|0)+(D*83|0)|0;D=($(w,-83)|0)+(D*36|0)|0;w=x+E|0;c[j>>2]=w;c[p>>2]=D+C;c[t>>2]=C-D;c[u>>2]=E-x;x=0;while(1){E=c[l+(x<<2)>>2]|0;c[m+(x<<2)>>2]=E+w;c[m+(7-x<<2)>>2]=w-E;x=x+1|0;if((x|0)==4){w=0;break}w=c[j+(x<<2)>>2]|0}do{D=c[m+(w<<2)>>2]|0;E=c[k+(w<<2)>>2]|0;c[h+(w<<2)>>2]=E+D;c[h+(15-w<<2)>>2]=D-E;w=w+1|0}while((w|0)!=8);w=0;do{x=c[n+(w<<2)>>2]|0;y=(c[h+(w<<2)>>2]|0)+s|0;z=y+x>>e;if((z+32768|0)>>>0>65535)z=z>>31^32767;b[d+(w<<1)>>1]=z;x=y-x>>e;if((x+32768|0)>>>0>65535)x=x>>31^32767;b[d+(31-w<<1)>>1]=x;w=w+1|0}while((w|0)!=16);v=v+1|0;if((v|0)==32)break;else d=d+64|0}i=g;return}function oc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=i;c=14-c|0;c=((b[a>>1]|0)+1>>1)+(1<>c&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=c;b[a+((f|1)<<1)>>1]=c;b[a+((f|2)<<1)>>1]=c;b[a+((f|3)<<1)>>1]=c;e=e+1|0}while((e|0)!=4);i=d;return}function pc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=i;c=14-c|0;c=((b[a>>1]|0)+1>>1)+(1<>c&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=c;b[a+((f|1)<<1)>>1]=c;b[a+((f|2)<<1)>>1]=c;b[a+((f|3)<<1)>>1]=c;b[a+((f|4)<<1)>>1]=c;b[a+((f|5)<<1)>>1]=c;b[a+((f|6)<<1)>>1]=c;b[a+((f|7)<<1)>>1]=c;e=e+1|0}while((e|0)!=8);i=d;return}function qc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);c=c+1|0}while((c|0)!=16);i=d;return}function rc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);c=c+1|0}while((c|0)!=32);i=d;return}function sc(a,f,g,h,j,k,l,m,n,o){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0;p=i;i=i+128|0;k=p;r=k+0|0;q=r+128|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(q|0));t=d[j+n+96>>0]|0;g=g>>>1;c[k+((t&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((t+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((t+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((t+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];j=o+ -5|0;h=h>>>1;if((m|0)<=0){i=p;return}n=(l|0)>0;o=1<>1]|0;t=t+(c[k+(t>>>j<<2)>>2]|0)|0;if(t&q)t=0-t>>31&o;b[a+(s<<1)>>1]=t;s=s+1|0}while((s|0)!=(l|0))}r=r+1|0;if((r|0)==(m|0))break;else{a=a+(g<<1)|0;f=f+(h<<1)|0}}i=p;return}function tc(a,d,f,g,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0;n=i;o=h+(m*10|0)+112|0;r=c[h+(m<<2)+100>>2]|0;f=f>>>1;g=g>>>1;if((r|0)!=1){if(c[j>>2]|0){u=b[o>>1]|0;if((l|0)>0){p=1<>1]|0)+u|0;if(v&t)v=0-v>>31&p;b[a+(($(s,f)|0)<<1)>>1]=v;s=s+1|0}while((s|0)!=(l|0));p=1}else p=1}else p=0;if(c[j+8>>2]|0){s=b[o>>1]|0;k=k+ -1|0;if((l|0)>0){v=1<>1]|0)+s|0;if(w&u)w=0-w>>31&v;b[a+(($(t,f)|0)+k<<1)>>1]=w;t=t+1|0}while((t|0)!=(l|0))}}if(!r){u=l;v=p;w=0;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}}else p=0;if(c[j+4>>2]|0){r=b[o>>1]|0;if((p|0)<(k|0)){s=1<>1]|0)+r|0;if(v&t)v=0-v>>31&s;b[a+(u<<1)>>1]=v;u=u+1|0}while((u|0)!=(k|0));r=1}else r=1}else r=0;if(!(c[j+12>>2]|0)){u=l;v=p;w=r;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}j=b[o>>1]|0;t=l+ -1|0;o=$(t,f)|0;u=$(t,g)|0;if((p|0)>=(k|0)){u=t;v=p;w=r;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}s=1<>1]|0)+j|0;if(w&l)w=0-w>>31&s;b[a+(v+o<<1)>>1]=w;v=v+1|0}while((v|0)!=(k|0));Bc(a,d,f,g,h,k,t,m,p,r,q);i=n;return}function uc(d,f,g,h,j,k,l,m,n,o,p,q,r){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;t=i;D=j+(n*10|0)+112|0;C=c[j+(n<<2)+100>>2]|0;g=g>>>1;h=h>>>1;B=(C|0)!=1;if(B){if(c[k>>2]|0){I=b[D>>1]|0;if((m|0)>0){H=1<>1]|0)+I|0;if(J&G)J=0-J>>31&H;b[d+(($(F,g)|0)<<1)>>1]=J;F=F+1|0}while((F|0)!=(m|0));F=1}else F=1}else F=0;if(c[k+8>>2]|0){G=b[D>>1]|0;l=l+ -1|0;if((m|0)>0){J=1<>1]|0)+G|0;if(K&I)K=0-K>>31&J;b[d+(($(H,g)|0)+l<<1)>>1]=K;H=H+1|0}while((H|0)!=(m|0))}}if(!C){D=1;G=0}else E=15}else{F=0;E=15}if((E|0)==15){if(c[k+4>>2]|0){H=b[D>>1]|0;if((F|0)<(l|0)){I=1<>1]|0)+H|0;if(J&G)J=0-J>>31&I;b[d+(E<<1)>>1]=J;E=E+1|0}while((E|0)!=(l|0));G=1}else G=1}else G=0;if(c[k+12>>2]|0){D=b[D>>1]|0;m=m+ -1|0;I=$(m,g)|0;H=$(m,h)|0;if((F|0)<(l|0)){K=1<>1]|0)+D|0;if(L&J)L=0-L>>31&K;b[d+(E+I<<1)>>1]=L;E=E+1|0}while((E|0)!=(l|0));D=0}else D=0}else D=0}Bc(d,f,g,h,j,l,m,n,F,G,r);r=(C|0)==2;if((a[q>>0]|0)==0&r?(c[k>>2]|0)==0:0)j=(c[k+4>>2]|0)==0;else j=0;H=j&1;j=q+1|0;C=(C|0)==3;if((a[j>>0]|0)==0&C?(c[k+4>>2]|0)==0:0)n=(c[k+8>>2]|0)==0;else n=0;I=n&1;n=q+2|0;if((a[n>>0]|0)==0&r?(c[k+8>>2]|0)==0:0)E=(c[k+12>>2]|0)==0;else E=0;J=E&1;E=q+3|0;if((a[E>>0]|0)==0&C?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;B=B^1;if(!((a[o>>0]|0)==0|B)?(A=H+G|0,z=m-k|0,(A|0)<(z|0)):0)do{b[d+(($(A,g)|0)<<1)>>1]=b[f+(($(A,h)|0)<<1)>>1]|0;A=A+1|0}while((A|0)!=(z|0));if(!((a[o+1>>0]|0)==0|B)?(y=I+G|0,x=m-J|0,(y|0)<(x|0)):0){z=l+ -1|0;do{b[d+(z+($(y,g)|0)<<1)>>1]=b[f+(z+($(y,h)|0)<<1)>>1]|0;y=y+1|0}while((y|0)!=(x|0))}if(!((a[p>>0]|0)==0|D)?(w=H+F|0,v=l-I|0,(w|0)<(v|0)):0)do{b[d+(w<<1)>>1]=b[f+(w<<1)>>1]|0;w=w+1|0}while((w|0)!=(v|0));if(!((a[p+1>>0]|0)==0|D)?(u=k+F|0,s=l-J|0,(u|0)<(s|0)):0){v=m+ -1|0;p=$(v,h)|0;v=$(v,g)|0;do{b[d+(u+v<<1)>>1]=b[f+(u+p<<1)>>1]|0;u=u+1|0}while((u|0)!=(s|0))}if((a[q>>0]|0)!=0&r)b[d>>1]=b[f>>1]|0;if((a[j>>0]|0)!=0&C){L=l+ -1|0;b[d+(L<<1)>>1]=b[f+(L<<1)>>1]|0}if((a[n>>0]|0)!=0&r){L=m+ -1|0;K=l+ -1|0;b[d+(K+($(L,g)|0)<<1)>>1]=b[f+(K+($(L,h)|0)<<1)>>1]|0}if(!((a[E>>0]|0)!=0&C)){i=t;return}L=m+ -1|0;b[d+(($(L,g)|0)<<1)>>1]=b[f+(($(L,h)|0)<<1)>>1]|0;i=t;return}function vc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;Ac(a,b,2,c,d,e,f,g);i=h;return}function wc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;Ac(a,2,b,c,d,e,f,g);i=h;return}function xc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;zc(a,b,2,c,d,e,f);i=g;return}function yc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;zc(a,2,b,c,d,e,f);i=g;return}function zc(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;m=i;f=f>>>1;p=g>>>1;o=l+ -8|0;g=$(f,-2)|0;n=0-f|0;r=1<>2]<=1){v=0-s|0;u=(a[j+l>>0]|0)==0;t=(a[k+l>>0]|0)==0;x=0;w=d;while(1){y=w+(n<<1)|0;B=e[y>>1]|0;z=e[w>>1]|0;A=(e[w+(g<<1)>>1]|0)+4-(e[w+(f<<1)>>1]|0)+(z-B<<2)>>3;if((A|0)<(v|0))A=v;else A=(A|0)>(s|0)?s:A;if(u){B=A+B|0;if(B&q)B=0-B>>31&r;b[y>>1]=B}if(t){y=z-A|0;if(y&q)y=0-y>>31&r;b[w>>1]=y}x=x+1|0;if((x|0)==4)break;else w=w+(p<<1)|0}}l=l+1|0;if((l|0)==2)break;else d=d+(p<<2<<1)|0}i=m;return}function Ac(d,f,g,h,j,k,l,m){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;n=i;f=f>>>1;g=g>>>1;o=m+ -8|0;y=h<>3;u=y>>2;q=$(f,-4)|0;p=f*3|0;v=C+q|0;F=(g+f|0)*3|0;t=(y>>1)+y>>3;H=1<>1]|0;X=b[d+(s<<1)>>1]|0;W=b[d+(w<<1)>>1]|0;da=W&65535;R=(Y&65535)-((X&65535)<<1)+da|0;R=(R|0)>-1?R:0-R|0;T=b[d+(h<<1)>>1]|0;U=b[d+(f<<1)>>1]|0;V=b[d>>1]|0;M=V&65535;S=(T&65535)-((U&65535)<<1)+M|0;S=(S|0)>-1?S:0-S|0;ba=e[d+(z<<1)>>1]|0;Q=(e[d+(A<<1)>>1]|0)-((e[d+(B<<1)>>1]|0)<<1)+ba|0;Q=(Q|0)>-1?Q:0-Q|0;ca=e[d+(C<<1)>>1]|0;Z=(e[d+(D<<1)>>1]|0)-((e[d+(E<<1)>>1]|0)<<1)+ca|0;Z=(Z|0)>-1?Z:0-Z|0;L=S+R|0;aa=Z+Q|0;K=c[j+(I<<2)>>2]<>0]|0;P=a[l+I>>0]|0;do if((aa+L|0)<(y|0)){N=(K*5|0)+1>>1;ea=(e[d+(q<<1)>>1]|0)-da|0;O=b[d+(p<<1)>>1]|0;fa=(O&65535)-M|0;if((((((((fa|0)>-1?fa:0-fa|0)+((ea|0)>-1?ea:0-ea|0)|0)<(x|0)?(fa=da-M|0,(((fa|0)>-1?fa:0-fa|0)|0)<(N|0)):0)?(fa=(e[d+(v<<1)>>1]|0)-ba|0,ea=(e[d+(F<<1)>>1]|0)-ca|0,(((ea|0)>-1?ea:0-ea|0)+((fa|0)>-1?fa:0-fa|0)|0)<(x|0)):0)?(fa=ba-ca|0,(((fa|0)>-1?fa:0-fa|0)|0)<(N|0)):0)?(L<<1|0)<(u|0):0)?(aa<<1|0)<(u|0):0){K=K<<1;L=_<<24>>24==0;M=0-K|0;N=P<<24>>24==0;ba=O;P=1;O=d;while(1){Z=O+(r<<1)|0;Y=Y&65535;_=O+(s<<1)|0;X=X&65535;aa=O+(w<<1)|0;R=W&65535;V=V&65535;W=O+(f<<1)|0;U=U&65535;Q=O+(h<<1)|0;S=T&65535;T=ba&65535;if(L){ba=e[O+(q<<1)>>1]|0;ca=(Y+4+U+(R+X+V<<1)>>3)-R|0;if((ca|0)<(M|0))ca=M;else ca=(ca|0)>(K|0)?K:ca;b[aa>>1]=ca+R;aa=((Y+2+X+R+V|0)>>>2)-X|0;if((aa|0)<(M|0))aa=M;else aa=(aa|0)>(K|0)?K:aa;b[_>>1]=aa+X;_=((Y*3|0)+4+X+R+V+(ba<<1)>>3)-Y|0;if((_|0)<(M|0))_=M;else _=(_|0)>(K|0)?K:_;b[Z>>1]=_+Y}if(N){X=(X+4+S+(V+R+U<<1)>>3)-V|0;if((X|0)<(M|0))X=M;else X=(X|0)>(K|0)?K:X;b[O>>1]=X+V;X=((R+2+V+U+S|0)>>>2)-U|0;if((X|0)<(M|0))X=M;else X=(X|0)>(K|0)?K:X;b[W>>1]=X+U;R=(R+4+V+U+(S*3|0)+(T<<1)>>3)-S|0;if((R|0)<(M|0))R=M;else R=(R|0)>(K|0)?K:R;b[Q>>1]=R+S}Q=O+(g<<1)|0;if((P|0)==4)break;Y=b[O+(g+r<<1)>>1]|0;X=b[O+(g+s<<1)>>1]|0;W=b[O+(g-f<<1)>>1]|0;V=b[Q>>1]|0;U=b[O+(g+f<<1)>>1]|0;T=b[O+(g+h<<1)>>1]|0;ba=b[O+(g+p<<1)>>1]|0;P=P+1|0;O=Q}d=d+(J<<1)|0;break}L=K>>1;N=K*10|0;M=0-K|0;O=_<<24>>24!=0;P=P<<24>>24!=0;Q=(Q+R|0)<(t|0)&(O^1);R=0-L|0;S=(Z+S|0)<(t|0)&(P^1);_=V;ba=U;U=1;V=d;while(1){aa=Y&65535;Y=V+(s<<1)|0;Z=X&65535;da=V+(w<<1)|0;ca=W&65535;_=_&65535;W=V+(f<<1)|0;X=ba&65535;T=T&65535;ba=((_-ca|0)*9|0)+8+($(X-Z|0,-3)|0)>>4;if((((ba|0)>-1?ba:0-ba|0)|0)<(N|0)){if((ba|0)<(M|0))ba=M;else ba=(ba|0)>(K|0)?K:ba;if(!O){ea=ba+ca|0;if(ea&G)ea=0-ea>>31&H;b[da>>1]=ea}if(!P){da=_-ba|0;if(da&G)da=0-da>>31&H;b[V>>1]=da}if(Q){aa=((aa+1+ca|0)>>>1)-Z+ba>>1;if((aa|0)<(R|0))aa=R;else aa=(aa|0)>(L|0)?L:aa;Z=aa+Z|0;if(Z&G)Z=0-Z>>31&H;b[Y>>1]=Z}if(S){T=((_+1+T|0)>>>1)-X-ba>>1;if((T|0)<(R|0))T=R;else T=(T|0)>(L|0)?L:T;T=T+X|0;if(T&G)T=0-T>>31&H;b[W>>1]=T}}Z=V+(g<<1)|0;if((U|0)==4)break;Y=b[V+(g+r<<1)>>1]|0;X=b[V+(g+s<<1)>>1]|0;W=b[V+(g-f<<1)>>1]|0;_=b[Z>>1]|0;ba=b[V+(g+f<<1)>>1]|0;T=b[V+(g+h<<1)>>1]|0;U=U+1|0;V=Z}d=d+(J<<1)|0}else d=d+(m<<1)|0;while(0);I=I+1|0}while((I|0)!=2);i=n;return}function Bc(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;t=i;x=c[j+(m<<2)+100>>2]|0;r=a[2728+(x<<2)>>0]|0;q=a[2730+(x<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}s=(n|0)<(k|0);v=1<>0]|0)+o|0,h)|0;y=$((a[2731+(x<<2)>>0]|0)+o|0,h)|0;x=$(o,g)|0;z=$(o,h)|0;while(1){if(s){o=p+r|0;A=y+q|0;B=n;do{C=b[f+(B+z<<1)>>1]|0;D=b[f+(o+B<<1)>>1]|0;if((C&65535)>(D&65535))D=3;else D=((C<<16>>16!=D<<16>>16)<<31>>31)+2|0;E=b[f+(A+B<<1)>>1]|0;if((C&65535)>(E&65535))E=1;else E=(C<<16>>16!=E<<16>>16)<<31>>31;C=(b[j+(m*10|0)+(d[2720+(E+D)>>0]<<1)+112>>1]|0)+(C&65535)|0;if(C&u)C=0-C>>31&v;b[e+(B+x<<1)>>1]=C;B=B+1|0}while((B|0)!=(k|0))}w=w+1|0;if((w|0)==(l|0))break;else{p=p+h|0;y=y+h|0;x=x+g|0;z=z+h|0}}i=t;return}function Cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function Dc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;j=h+204|0;k=td(13196)|0;c[e>>2]=k;if(!k){u=-12;i=f;return u|0}k=c[k+4>>2]|0;m=td(468)|0;if(!m){u=-12;i=f;return u|0}l=c[m+4>>2]|0;c[l+4>>2]=1;o=l+8|0;c[o>>2]=1;a[l>>0]=0;c[l+348>>2]=1;q=l+352|0;n=l+380|0;r=l+408|0;p=0;do{c[q+(p<<2)>>2]=1;c[n+(p<<2)>>2]=0;c[r+(p<<2)>>2]=-1;p=p+1|0}while((p|0)<(c[o>>2]|0));c[l+436>>2]=0;c[l+440>>2]=1;a[l+444>>0]=0;p=b+208|0;vd(p);c[p>>2]=m;c[k>>2]=0;p=k+72|0;c[p>>2]=1;u=_c(j,8)|0;q=k+4|0;c[q>>2]=u;do if((u|0)<=3){a[k+8>>0]=0;o=k+13120|0;c[o>>2]=cd(j,32)|0;m=cd(j,32)|0;n=k+13124|0;c[n>>2]=m;m=Qc(c[o>>2]|0,m,0,c[b+4>>2]|0)|0;if((m|0)>=0){l=k+52|0;c[l>>2]=(_c(j,8)|0)+8;q=c[q>>2]|0;if((q|0)==2){c[k+60>>2]=56;q=56}else if((q|0)==1){c[k+60>>2]=54;q=54}else if(!q){c[k+60>>2]=32;q=32}else{c[k+60>>2]=58;q=58}c[k+56>>2]=1;q=Bd(q)|0;if(q){c[k+13180>>2]=0;c[k+13168>>2]=0;u=d[q+5>>0]|0;c[k+13172>>2]=u;c[k+13176>>2]=u;u=d[q+6>>0]|0;c[k+13184>>2]=u;c[k+13188>>2]=u;c[k+64>>2]=8;if((c[p>>2]|0)>0){q=k+76|0;r=0;do{c[q+(r*12|0)>>2]=1;c[q+(r*12|0)+4>>2]=0;c[q+(r*12|0)+8>>2]=-1;r=r+1|0}while((r|0)<(c[p>>2]|0))}t=(dd(j)|0)+3|0;u=k+13064|0;c[u>>2]=t;t=1<>2]=s+(c[o>>2]|0)&t;c[n>>2]=s+(c[n>>2]|0)&t;t=k+13068|0;c[t>>2]=dd(j)|0;s=k+13072|0;c[s>>2]=(dd(j)|0)+2;p=dd(j)|0;q=c[s>>2]|0;r=k+13076|0;c[r>>2]=q+p;if(q>>>0<(c[u>>2]|0)>>>0){v=dd(j)|0;p=k+13092|0;c[p>>2]=v;q=k+13088|0;c[q>>2]=v;a[k+12940>>0]=1;a[k+12941>>0]=bd(j)|0;v=bd(j)|0;c[k+68>>2]=v;if(v){v=k+13044|0;a[v>>0]=(_c(j,4)|0)+1;a[k+13045>>0]=(_c(j,4)|0)+1;w=(dd(j)|0)+3|0;c[k+13048>>2]=w;c[k+13052>>2]=w+(dd(j)|0);if((d[v>>0]|0|0)>(c[l>>2]|0)){m=-1094995529;break}a[k+13056>>0]=bd(j)|0}c[k+2184>>2]=0;a[k+12942>>0]=0;a[k+13060>>0]=1;a[k+13061>>0]=bd(j)|0;c[k+160>>2]=0;c[k+164>>2]=1;if((bd(j)|0)!=0?(w=bd(j)|0,ad(j,7),(w|0)!=0):0){c[k+13096>>2]=bd(j)|0;c[k+13100>>2]=bd(j)|0;c[k+13104>>2]=bd(j)|0;c[k+13108>>2]=bd(j)|0;bd(j)|0;c[k+13112>>2]=bd(j)|0;bd(j)|0;c[k+13116>>2]=bd(j)|0;bd(j)|0}j=c[o>>2]|0;c[k+12>>2]=j;o=c[n>>2]|0;c[k+16>>2]=o;u=c[u>>2]|0;w=(c[t>>2]|0)+u|0;c[k+13080>>2]=w;t=u+ -1|0;c[k+13084>>2]=t;n=1<>w;c[k+13128>>2]=v;n=o+ -1+n>>w;c[k+13132>>2]=n;c[k+13136>>2]=$(n,v)|0;c[k+13140>>2]=j>>u;c[k+13144>>2]=o>>u;v=c[s>>2]|0;c[k+13148>>2]=j>>v;c[k+13152>>2]=o>>v;c[k+13156>>2]=j>>t;c[k+13160>>2]=o>>t;v=w-v|0;c[k+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;u=(1<>>0>6):0)?(c[q>>2]|0)>>>0<=v>>>0:0)?(c[p>>2]|0)>>>0<=v>>>0:0)?(c[r>>2]|0)>>>0<=(w>>>0>5?5:w)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){h=b+272|0;j=c[h>>2]|0;if((j|0)!=0?(w=c[e>>2]|0,(Yd(c[j+4>>2]|0,c[w+4>>2]|0,c[w+8>>2]|0)|0)==0):0){vd(e);w=0;i=f;return w|0}else j=0;do{k=b+(j<<2)+400|0;l=c[k>>2]|0;do if(l){if(c[c[l+4>>2]>>2]|0)break;vd(k)}while(0);j=j+1|0}while((j|0)!=256);j=c[h>>2]|0;do if((j|0)!=0?(g=b+200|0,(c[g>>2]|0)==(c[j+4>>2]|0)):0){v=b+1424|0;vd(v);w=ud(c[h>>2]|0)|0;c[v>>2]=w;if(w)break;c[g>>2]=0}while(0);vd(h);c[h>>2]=c[e>>2];w=0;i=f;return w|0}}else m=-1094995529}else m=-22}}else m=-1094995529;while(0);vd(e);w=m;i=f;return w|0}function Ec(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=md(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=qd(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){jd(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=dd(n)|0;a:do if((h>>>0<=255?(k=dd(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(bd(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=_c(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=ed(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=dd(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=ed(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=ed(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(dd(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(dd(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=od(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(bd(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(dd(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=ae(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(dd(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=ae(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(bd(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(bd(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(ed(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(ed(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(bd(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((bd(v)|0)&255)<<24>>24)){y=dd(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;fe(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(ed(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(ed(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(bd(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(dd(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((bd(n)|0)!=0?(I=bd(n)|0,_c(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(dd(p)|0)+2;a[n+1630>>0]=bd(p)|0;I=(bd(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=dd(p)|0;I=dd(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=ed(p)|0;a[n+l+1639>>0]=ed(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=dd(p)|0;a[n+1645>>0]=dd(p)|0}while(0);l=od((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=od((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=od(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=od(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=od(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=od($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=od(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;vd(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);vd(e);I=b;i=f;return I|0}function Fc(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;jd(b+1648|0);jd(b+1652|0);jd(b+1656|0);jd(b+1660|0);jd(b+1664|0);jd(b+1668|0);jd(b+1672|0);jd(b+1680|0);jd(b+1676|0);jd(b+1688|0);jd(d);i=a;return}function Gc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+2512|0;f=a+4524|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=_c(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=_c(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==256){Hc(a);break}else if((j|0)==257){b[f>>1]=_c(h,16)|0;break}else{ad(h,k<<3);break}else if((j|0)==132){Hc(a);break}else{ad(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if(($c(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Hc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(_c(e,8)|0)&255;f=b+4468|0;h=0;do{if((g|0)==2)ad(e,32);else if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+4420>>0]=_c(e,8)|0;j=j+1|0}while((j|0)!=16)}else if((g|0)==1)ad(e,16);h=h+1|0}while((h|0)!=3);i=d;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=md(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Ea[c[b+76>>2]&3](a)|0;if((a|0)>=0){h=0;i=d;return h|0}jd(e);c[f>>2]=0;h=a;i=d;return h|0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Ea[d&3](a)|0;c[a+796>>2]=0;jd(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Kc(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Ia[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ga[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Mc(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Bd(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=sd(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;ce(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=md(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Oc(a){a=a|0;var b=0,c=0;b=i;c=fd(976)|0;if(c){if((Nc(c,a)|0)<0){id(c);c=0}}else c=0;i=b;return c|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}yd(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ga[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){yd(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Rc(a,b){a=a|0;b=b|0;return 0}function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=xa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Sc(a,c[b>>2]|0,d)|0;i=e;return a|0}function Uc(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)yd(b);i=a;return}function Vc(a){a=a|0;return}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;return}function Xc(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Yc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Zc(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[718]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[2880+e>>0]=(g?8:0)-(d[4680+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[2880]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4224+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3392>>0]=j;a[h+3392>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4480+e>>0]|0)<<1;a[f+4032>>0]=j;a[f+4033>>0]=j|1;if(e){h=(d[4544+e>>0]|0)<<1;j=128-f|0;a[j+3903>>0]=h;a[j+3902>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+3903>>0]=1;a[e+3902>>0]=0;e=1;continue}}g=4160|0;f=4608|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[718]=1;i=b;return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function $c(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function ad(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function bd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function cd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(ee(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=cd(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4680+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}function ed(a){a=a|0;var b=0;b=i;a=dd(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function fd(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1168]|0;if((d+ -32|0)>>>0>=a>>>0){e=Vd(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=Vd(1)|0}else e=0;i=b;return e|0}function gd(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1168]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=Xd(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){Wd(a);d=0;i=e;return d|0}if(((c[1168]|0)+ -32|0)>>>0>>0)b=0;else b=Xd(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}Wd(a);d=0;i=e;return d|0}function id(a){a=a|0;var b=0;b=i;Wd(a);i=b;return}function jd(a){a=a|0;var b=0;b=i;Wd(c[a>>2]|0);c[a>>2]=0;i=b;return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1168]|0)+ -32|0)>>>0>=f>>>0):0)a=Xd(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ld(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=hd(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function md(a){a=a|0;var b=0,c=0;c=i;b=fd(a)|0;if(b)ce(b|0,0,a|0)|0;i=c;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;Wd(c[a>>2]|0);f=fd(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function od(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=fd($(b,a)|0)|0;else b=0;i=c;return b|0}function pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=fd(e)|0,(d|0)!=0):0)ce(d|0,0,e|0)|0;else d=0;i=c;return d|0}function qd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=md(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=md(12)|0;if(!j){jd(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function rd(a,b){a=a|0;b=b|0;a=i;id(b);i=a;return}function sd(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=fd(a)|0;c[d>>2]=e;if(e){a=qd(e,a,7,0,0)|0;if(!a){jd(d);a=0}}else a=0;i=b;return a|0}function td(a){a=a|0;var b=0,d=0;b=i;d=sd(a)|0;if(!d){d=0;i=b;return d|0}ce(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function ud(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=md(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function vd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;jd(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Ca[c[f+12>>2]&7](c[f+16>>2]|0,c[f>>2]|0);jd(d);i=b;return}function wd(){var a=0,b=0,d=0;a=i;b=md(400)|0;if(!b){b=0;i=a;return b|0}ce(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function xd(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){yd(d);jd(a)}i=b;return}function yd(a){a=a|0;var b=0,d=0;b=i;vd(a+304|0);vd(a+308|0);vd(a+312|0);vd(a+316|0);vd(a+320|0);vd(a+324|0);vd(a+328|0);vd(a+332|0);ce(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function zd(a,b){a=a|0;b=b|0;var d=0;d=i;fe(a|0,b|0,400)|0;ce(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)ta();else{e=f;g=0}while(1){if((e|0)!=0?(j=ud(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){yd(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[4936+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=4940+(e*24|0)|0;i=d;return f|0}function Cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Dd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Ed(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0;f=i;if(!(c[b+8>>2]|0)){t=-1;i=f;return t|0}g=b+68|0;if((a[g>>0]|0)!=0|e>>>0>1){t=-1;i=f;return t|0}a[b+76>>0]=(e|0)==1&1;l=b+77|0;a[l>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(t=b+16|0,p=c[t>>2]|0,j=b+84|0,c[j>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=fd(p<<1)|0,c[b+128>>2]=fd(c[t>>2]<<1)|0,c[b+196>>2]=fd((c[j>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){m=0;do{c[b+(m<<2)+132>>2]=fd(c[j>>2]<<1)|0;c[b+(m<<2)+164>>2]=fd(c[j>>2]<<1)|0;m=m+1|0}while((m|0)!=8)}j=d[b+30>>0]|0;v=(a[l>>0]|0)!=0?16:8;l=b+36|0;t=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=j+ -8|0;r=o/+(224<>2]=sa(+(r*y*2.0))|0;w=1.0-u;x=w-s;c[b+224>>2]=sa(+(r*(u*2.0*w/x)))|0;c[b+228>>2]=sa(+(r*(s*2.0*y/x)))|0;c[b+232>>2]=sa(+(r*w*2.0))|0}k=sa(+q)|0;c[b+208>>2]=k;c[b+200>>2]=p;t=1<>2]=t;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[p>>2]|0)}else{c[b+212>>2]=k;c[b+216>>2]=t}c[b+240>>2]=j;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=7;else c[b+248>>2]=c[6064+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e;c[b+92>>2]=Cd(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=Cd(b,b+112|0,1)|0;c[b+100>>2]=Cd(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=Cd(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Fd(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Gd(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=i;j=f+80|0;n=c[j>>2]|0;if(n>>>0>=(c[f+20>>2]|0)>>>0){w=-1;i=k;return w|0}h=c[f+16>>2]|0;o=(c[f+92>>2]|0)+($(c[f+108>>2]|0,n)|0)|0;l=f+76|0;if(!(a[l>>0]|0))m=(a[f+78>>0]|0)!=0?4:3;else m=4;p=c[f+24>>2]|0;if(!p)za[c[f+248>>2]&7](f+200|0,g,o,0,0,h,m);else if((p|0)==1){if(!n){v=f+96|0;p=f+112|0;q=f+100|0;r=f+116|0;s=f+84|0;t=f+88|0;u=0;do{w=(u|0)>4?u+ -8|0:u;if((w|0)<0)w=0;else{x=c[t>>2]|0;w=(w|0)<(x|0)?w:x+ -1|0}y=(c[v>>2]|0)+($(c[p>>2]|0,w)|0)|0;x=(c[q>>2]|0)+($(c[r>>2]|0,w)|0)|0;fe(c[f+(u<<2)+132>>2]|0,y|0,c[s>>2]<<1|0)|0;fe(c[f+(u<<2)+164>>2]|0,x|0,c[s>>2]<<1|0)|0;u=u+1|0}while((u|0)!=8)}p=n>>1;q=(p|0)%8|0;y=n&1;s=f+124|0;v=f+196|0;w=f+30|0;x=f+28|0;Hd(c[s>>2]|0,f+132|0,h,q,c[v>>2]|0,d[w>>0]|0,y,d[x>>0]|0);r=f+128|0;Hd(c[r>>2]|0,f+164|0,h,q,c[v>>2]|0,d[w>>0]|0,y,d[x>>0]|0);if(y){w=(q+5|0)%8|0;v=p+5|0;x=c[f+88>>2]|0;x=(v|0)<(x|0)?v:x+ -1|0;v=(c[f+96>>2]|0)+($(x,c[f+112>>2]|0)|0)|0;x=(c[f+100>>2]|0)+($(c[f+116>>2]|0,x)|0)|0;y=f+84|0;fe(c[f+(w<<2)+132>>2]|0,v|0,c[y>>2]<<1|0)|0;fe(c[f+(w<<2)+164>>2]|0,x|0,c[y>>2]<<1|0)|0}za[c[f+248>>2]&7](f+200|0,g,o,c[s>>2]|0,c[r>>2]|0,h,m)}else if((p|0)==3){x=(c[f+96>>2]|0)+($(c[f+112>>2]|0,n)|0)|0;y=(c[f+100>>2]|0)+($(c[f+116>>2]|0,n)|0)|0;za[c[f+248>>2]&7](f+200|0,g,o,x,y,h,m)}else if((p|0)==2){y=(c[f+96>>2]|0)+($(c[f+112>>2]|0,n)|0)|0;t=(c[f+100>>2]|0)+($(c[f+116>>2]|0,n)|0)|0;x=f+124|0;u=f+30|0;v=f+28|0;w=f+196|0;Id(c[x>>2]|0,y,h,d[u>>0]|0,d[v>>0]|0,c[w>>2]|0);y=f+128|0;Id(c[y>>2]|0,t,h,d[u>>0]|0,d[v>>0]|0,c[w>>2]|0);za[c[f+248>>2]&7](f+200|0,g,o,c[x>>2]|0,c[y>>2]|0,h,m)}else{y=-1;i=k;return y|0}a:do if(!(a[f+31>>0]|0)){if(a[l>>0]|0){if(!(a[f+29>>0]|0)){if((h|0)<=0)break;f=g+3|0;g=0;while(1){a[f>>0]=-1;g=g+1|0;if((g|0)==(h|0))break a;else f=f+4|0}}l=(c[f+104>>2]|0)+($(c[f+120>>2]|0,n)|0)|0;p=g+3|0;if((c[f+240>>2]|0)==8){if((h|0)>0){m=0;while(1){a[p>>0]=b[l+(m<<1)>>1];m=m+1|0;if((m|0)==(h|0))break;else p=p+4|0}}}else{m=c[f+208>>2]|0;n=c[f+204>>2]|0;o=c[f+200>>2]|0;if((h|0)>0){q=0;while(1){a[p>>0]=($(e[l+(q<<1)>>1]|0,m)|0)+n>>o;q=q+1|0;if((q|0)==(h|0))break;else p=p+4|0}}}if(a[f+33>>0]|0){if(!(c[1258]|0)){c[1258]=1;f=1;do{c[5040+(f<<2)>>2]=(((f|0)/2|0)+16711808|0)/(f|0)|0;f=f+1|0}while((f|0)!=256)}if((h|0)>0){f=0;while(1){l=a[g+3>>0]|0;if(!(l<<24>>24)){a[g>>0]=-1;a[g+1>>0]=-1;a[g+2>>0]=-1}else{m=c[5040+((l&255)<<2)>>2]|0;n=a[g>>0]|0;if((n&255)<(l&255))n=(($(n&255,m)|0)+32768|0)>>>16&255;else n=-1;a[g>>0]=n;n=g+1|0;o=a[n>>0]|0;if((o&255)<(l&255))o=(($(o&255,m)|0)+32768|0)>>>16&255;else o=-1;a[n>>0]=o;n=g+2|0;o=a[n>>0]|0;if((o&255)<(l&255))l=(($(o&255,m)|0)+32768|0)>>>16&255;else l=-1;a[n>>0]=l}f=f+1|0;if((f|0)==(h|0))break;else g=g+4|0}}}}}else{n=(c[f+104>>2]|0)+($(c[f+120>>2]|0,n)|0)|0;q=c[f+240>>2]|0;p=1<0;if(r){o=g;f=0;while(1){x=e[n+(f<<1)>>1]|0;a[o>>0]=($(d[o>>0]|0,x)|0)+p>>q;y=o+1|0;a[y>>0]=($(d[y>>0]|0,x)|0)+p>>q;y=o+2|0;a[y>>0]=($(d[y>>0]|0,x)|0)+p>>q;f=f+1|0;if((f|0)==(h|0))break;else o=o+m|0}}if(!((a[l>>0]|0)==0|r^1)){g=g+3|0;f=0;while(1){a[g>>0]=-1;f=f+1|0;if((f|0)==(h|0))break;else g=g+4|0}}}while(0);c[j>>2]=(c[j>>2]|0)+1;y=0;i=k;return y|0}function Hd(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;m=i;o=c[d+((g+5&7)<<2)>>2]|0;s=c[d+((g+6&7)<<2)>>2]|0;p=c[d+((g+7&7)<<2)>>2]|0;r=c[d+((g&7)<<2)>>2]|0;q=c[d+((g+1&7)<<2)>>2]|0;n=c[d+((g+2&7)<<2)>>2]|0;d=c[d+((g+3&7)<<2)>>2]|0;t=j+ -8|0;u=1<>1;g=(f+1|0)/2|0;v=(f|0)>0;if(!k){if(v){k=0;do{x=$(e[s+(k<<1)>>1]|0,-6)|0;y=$(e[q+(k<<1)>>1]|0,-10)|0;b[h+(k+3<<1)>>1]=(e[o+(k<<1)>>1]<<1)+u+x+((e[p+(k<<1)>>1]|0)*18|0)+((e[r+(k<<1)>>1]|0)*57|0)+y+(e[n+(k<<1)>>1]<<2)-(e[d+(k<<1)>>1]|0)>>t;k=k+1|0}while((k|0)<(g|0))}}else if(v){k=0;do{x=$(e[p+(k<<1)>>1]|0,-10)|0;y=$(e[n+(k<<1)>>1]|0,-6)|0;b[h+(k+3<<1)>>1]=u-(e[o+(k<<1)>>1]|0)+(e[s+(k<<1)>>1]<<2)+x+((e[r+(k<<1)>>1]|0)*57|0)+((e[q+(k<<1)>>1]|0)*18|0)+y+(e[d+(k<<1)>>1]<<1)>>t;k=k+1|0}while((k|0)<(g|0))}n=h+6|0;y=b[n>>1]|0;b[h>>1]=y;p=h+2|0;b[p>>1]=y;o=h+4|0;b[o>>1]=y;y=b[h+(g+2<<1)>>1]|0;b[h+(g+3<<1)>>1]=y;b[h+(g+4<<1)>>1]=y;b[h+(g+5<<1)>>1]=y;b[h+(g+6<<1)>>1]=y;g=(1<>1;s=20-j|0;r=1<1){q=f+ -2|0;j=q>>>1;p=j<<1;d=a;while(1){t=(b[n>>1]|0)+l>>o;if((t|0)<0)t=0;else t=((t|0)>(g|0)?g:t)&65535;b[d>>1]=t;y=$((b[n+4>>1]|0)+(b[n+ -2>>1]|0)|0,-11)|0;t=n;n=n+2|0;t=r-(b[t+ -6>>1]|0)-(b[t+8>>1]|0)+((b[t+6>>1]|0)+(b[t+ -4>>1]|0)<<2)+y+(((b[n>>1]|0)+(b[t>>1]|0)|0)*40|0)>>s;if((t|0)<0)t=0;else t=((t|0)>(g|0)?g:t)&65535;b[d+2>>1]=t;f=f+ -2|0;if((f|0)<=1)break;else d=d+4|0}a=a+(p+2<<1)|0;f=q-p|0;n=h+(j+4<<1)|0}if(!f){i=m;return}h=(b[n>>1]|0)+l>>o;if((h|0)<0)h=0;else h=((h|0)>(g|0)?g:h)&65535;b[a>>1]=h;i=m;return}else{j=20-j|0;l=1<>1]|0;u=b[p>>1]|0;t=b[o>>1]|0;d=b[n>>1]|0;r=b[h+8>>1]|0;s=b[h+10>>1]|0;if((f|0)>1){q=f+ -2|0;o=q>>>1;p=o<<1;w=a;while(1){v=b[n+6>>1]|0;x=d*57|0;y=(s<<2)+l+($(r,-10)|0)+x+(t*18|0)+($(u,-6)|0)+(k<<1)-v>>j;if((y|0)<0)y=0;else y=((y|0)>(g|0)?g:y)&65535;b[w>>1]=y;k=($(s,-6)|0)+l+(r*18|0)+x+($(t,-10)|0)-k+(u<<2)+(v<<1)>>j;if((k|0)<0)k=0;else k=((k|0)>(g|0)?g:k)&65535;b[w+2>>1]=k;f=f+ -2|0;if((f|0)<=1)break;else{A=s;z=r;x=d;y=t;k=u;s=v;w=w+4|0;n=n+2|0;r=A;d=z;t=x;u=y}}k=u;u=t;t=d;d=r;r=s;s=v;a=a+(p+2<<1)|0;f=q-p|0;n=h+(o+4<<1)|0}if(!f){i=m;return}h=(s<<2)+l+($(r,-10)|0)+(d*57|0)+(t*18|0)+($(u,-6)|0)+(k<<1)-(b[n+6>>1]|0)>>j;if((h|0)<0)h=0;else h=((h|0)>(g|0)?g:h)&65535;b[a>>1]=h;i=m;return}}function Id(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(d+1|0)/2|0;k=h+6|0;fe(k|0,c|0,v<<1|0)|0;u=b[c>>1]|0;b[h>>1]=u;m=h+2|0;b[m>>1]=u;l=h+4|0;b[l>>1]=u;c=b[c+(v+ -1<<1)>>1]|0;b[h+(v+3<<1)>>1]=c;b[h+(v+4<<1)>>1]=c;b[h+(v+5<<1)>>1]=c;b[h+(v+6<<1)>>1]=c;c=(1<1){g=d+ -2|0;l=g>>>1;m=l<<1;f=a;while(1){b[f>>1]=b[k>>1]|0;v=$((e[k+4>>1]|0)+(e[k+ -2>>1]|0)|0,-11)|0;n=k;k=k+2|0;n=32-(e[n+ -6>>1]|0)-(e[n+8>>1]|0)+((e[n+6>>1]|0)+(e[n+ -4>>1]|0)<<2)+v+(((e[k>>1]|0)+(e[n>>1]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&65535;b[f+2>>1]=n;d=d+ -2|0;if((d|0)<=1)break;else f=f+4|0}a=a+(m+2<<1)|0;d=g-m|0;k=h+(l+4<<1)|0}if(!d){i=j;return}b[a>>1]=b[k>>1]|0;i=j;return}r=e[h>>1]|0;f=e[m>>1]|0;q=e[l>>1]|0;p=e[k>>1]|0;o=e[h+8>>1]|0;n=e[h+10>>1]|0;if((d|0)>1){m=d+ -2|0;l=m>>>1;g=l<<1;t=a;while(1){s=e[k+6>>1]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(q*18|0)+($(f,-6)|0)+(r<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&65535;b[t>>1]=v;r=($(n,-6)|0)+32+(o*18|0)+u+($(q,-10)|0)-r+(f<<2)+(s<<1)>>6;if((r|0)<0)r=0;else r=((r|0)>(c|0)?c:r)&65535;b[t+2>>1]=r;d=d+ -2|0;if((d|0)<=1)break;else{x=n;w=o;u=p;v=q;r=f;n=s;t=t+4|0;k=k+2|0;o=x;p=w;q=u;f=v}}r=f;f=q;q=p;p=o;o=n;n=s;a=a+(g+2<<1)|0;d=m-g|0;k=h+(l+4<<1)|0}if(!d){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(q*18|0)+($(f,-6)|0)+(r<<1)-(e[k+6>>1]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&65535;b[a>>1]=h;i=j;return}function Jd(){var a=0,b=0;a=i;b=md(252)|0;if(!b)b=0;i=a;return b|0}function Kd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=i;i=i+80|0;n=k+72|0;l=k+60|0;h=k+48|0;u=k+44|0;x=k+40|0;t=k+36|0;p=k;y=a[e+40>>0]|0;a:do if(((((((g|0)>=6?(a[f>>0]|0)==66:0)?(a[f+1>>0]|0)==80:0)?(a[f+2>>0]|0)==71:0)?(a[f+3>>0]|0)==-5:0)?(R=a[f+4>>0]|0,N=R&255,J=N>>>5,c[p+8>>2]=J,(R&255)<=191):0)?(R=(N&15)+8|0,a[p+13>>0]=R,(R&255)>>>0<=14):0){L=a[f+5>>0]|0;v=L&255;M=v>>>4;c[p+24>>2]=M;A=v&8;R=v>>>2&1;a[p+16>>0]=v>>>1&1;r=p+17|0;a[r>>0]=v&1;v=p+18|0;b[v>>1]=0;s=p+20|0;b[s>>1]=0;w=p+22|0;b[w>>1]=0;O=p+12|0;a[O>>0]=0;Q=p+14|0;a[Q>>0]=0;P=p+15|0;a[P>>0]=0;if(!(N&16))if(!R)N=0;else{a[O>>0]=1;a[Q>>0]=1;N=1}else{a[O>>0]=1;a[P>>0]=R;N=0}if((((((((((L&255)<=79?(J|0)!=0|(M|0)==0:0)?!(N<<24>>24!=0&(J|0)==0):0)?(F=Qd(p,f+6|0,g+ -6|0)|0,(F|0)>=0):0)?(C=(c[p>>2]|0)>>>0>1073741823?-1:F,(C|0)>=0):0)?(E=C+6|0,z=p+4|0,I=Qd(z,f+E|0,g-E|0)|0,(I|0)>=0):0)?(H=c[z>>2]|0,D=H>>>0>1073741823?-1:I,(D|0)>=0):0)?(G=D+E|0,!((c[p>>2]|0)==0|(H|0)==0)):0)?(q=p+28|0,K=Qd(q,f+G|0,g-G|0)|0,(K|0)>=0):0)?(B=(c[q>>2]|0)>>>0>1073741823?-1:K,(B|0)>=0):0){z=B+G|0;c[n>>2]=0;do if(!A){c[p+32>>2]=0;m=48}else{A=Qd(n,f+z|0,g-z|0)|0;if((A|0)<0){z=-1;break a}B=c[n>>2]|0;A=B>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}C=A+z|0;A=p+32|0;c[A>>2]=0;z=C+B|0;if((z|0)>(g|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[r>>0]|0)==0:0)break;if((C|0)>=(z|0)){z=C;m=48;break}while(1){B=Qd(l,f+C|0,z-C|0)|0;if((B|0)<0){z=-1;break a}C=B+C|0;D=Qd(h,f+C|0,z-C|0)|0;if((D|0)<0){z=-1;break a}B=c[h>>2]|0;D=B>>>0>1073741823?-1:D;if((D|0)<0){z=-1;break a}D=D+C|0;C=D+B|0;if(C>>>0>z>>>0){z=-1;break a}do if(a[r>>0]|0){if((c[l>>2]|0)!=5)break;F=Qd(u,f+D|0,z-D|0)|0;if((F|0)<0){z=-1;break a}E=c[u>>2]|0;F=E>>>0>1073741823?-1:F;if((F|0)<0){z=-1;break a}G=F+D|0;H=Qd(x,f+G|0,z-G|0)|0;if((H|0)<0){z=-1;break a}F=c[x>>2]|0;H=F>>>0>1073741823?-1:H;if((H|0)<0){z=-1;break a}R=H+G|0;if((Qd(t,f+R|0,z-R|0)|0)<0){z=-1;break a}G=c[t>>2]|0;if(!((F&65535|0)==(F|0)&((G>>>0>1073741823|(F|0)==0|(G|0)==0)^1))){z=-1;break a}if((G&65535|0)!=(G|0)){z=-1;break a}if((E&65535|0)!=(E|0)){z=-1;break a}b[v>>1]=E;b[s>>1]=F;b[w>>1]=G}while(0);if(y){R=fd(16)|0;c[R>>2]=c[l>>2];Q=R+4|0;c[Q>>2]=B;c[A>>2]=R;A=fd(B)|0;c[R+8>>2]=A;fe(A|0,f+D|0,c[Q>>2]|0)|0;A=R+12|0}if((C|0)>=(z|0)){z=C;m=48;break}}}while(0);do if((m|0)==48){if(!(a[r>>0]|0))break;if(!(b[s>>1]|0)){z=-1;break a}}while(0);if(c[q>>2]|0)break;c[q>>2]=g-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=k;return R|0}u=c[p>>2]|0;v=c[p+4>>2]|0;B=c[p+12>>2]|0;y=B&255;A=c[p+24>>2]|0;w=(B&65535)>>>8;t=w&255;w=w&65535;q=e+16|0;c[q>>2]=u;r=e+20|0;c[r>>2]=v;x=c[p+8>>2]|0;C=e+24|0;c[C>>2]=x;s=B>>>24&255;B=B>>>16&255;if((x|0)==5){c[C>>2]=2;a[e+28>>0]=0;x=2}else if((x|0)==4){c[C>>2]=1;a[e+28>>0]=0;x=1}else{c[C>>2]=x;a[e+28>>0]=1}a[e+29>>0]=y;a[e+33>>0]=s;a[e+31>>0]=B;s=c[p+16>>2]|0;a[e+32>>0]=s;c[e+36>>2]=A;a[e+30>>0]=t;a[e+34>>0]=(s&65535)>>>8;b[e+48>>1]=s>>>16;s=c[p+20>>2]|0;b[e+50>>1]=s;b[e+52>>1]=s>>>16;s=e+44|0;c[s>>2]=c[p+32>>2];do if(((c[p+28>>2]|0)+z|0)>>>0<=g>>>0){A=f+z|0;g=g-z|0;c[l>>2]=0;c[l+4>>2]=0;p=l+8|0;c[p>>2]=0;c[h>>2]=0;c[h+4>>2]=0;t=h+8|0;c[t>>2]=0;if(!(y<<24>>24)){z=A;y=g}else{y=Nd(l,e+12|0,e+4|0,A,g,u,v,0,w)|0;if((y|0)<0)break;z=f+(y+z)|0;y=g-y|0}f=e+8|0;A=Nd(h,f,e,z,y,u,v,x,w)|0;if((A|0)>=0){u=y-A|0;v=e+4|0;y=c[v>>2]|0;w=(y|0)!=0;c[n>>2]=0;x=n+4|0;c[x>>2]=0;b:do if((u|0)>0){y=n+((w&1)<<2)|0;D=0;H=0;z=z+A|0;A=u;G=1;c:while(1){B=(G|0)!=0;if((A|0)<((B?5:2)|0)){n=-1;break b}if(B)F=0;else F=(a[z+2>>0]|0)==0?4:3;if((A|0)<(F+3|0)){n=-1;break b}C=z+F|0;B=d[C>>0]|0;E=B<<5&32|(d[z+(F+1)>>0]|0)>>>3;B=B>>>1&63;do if((B+ -32|0)>>>0<4|(B|0)==39|B>>>0>40)if(D)if(!(c[y>>2]|0))B=H;else break c;else{B=H;D=0}else if((B>>>0<10|(B+ -16|0)>>>0<6?(o=F+2|0,(o|0)<(A|0)):0)?(a[z+o>>0]|0)<0:0){if((H|0)!=0?(c[y>>2]|0)!=0:0)break c;if(w&(E|0)==1){c[x>>2]=1;B=H;D=H;break}else{c[n>>2]=1;B=1;D=1;break}}else B=H;while(0);do if((G|0)!=1){if(((((A|0)>3?(a[z>>0]|0)==0:0)?(a[z+1>>0]|0)==0:0)?(a[z+2>>0]|0)==0:0)?(a[z+3>>0]|0)==1:0){G=4;break}if((A|0)<=2){n=-1;break b}if(a[z>>0]|0){n=-1;break b}if(a[z+1>>0]|0){n=-1;break b}if((a[z+2>>0]|0)==1)G=3;else{n=-1;break b}}else G=0;while(0);H=G+2|0;if((H|0)>(A|0)){n=-1;break b}d:do if((H|0)<(A|0))while(1){K=(a[z+G>>0]|0)==0;do if(K){if(a[z+(G+1)>>0]|0)break;if((a[z+H>>0]|0)==1)break d}while(0);J=H;H=G+3|0;if((H|0)>=(A|0)){G=A;break d}I=G+1|0;if(!K){G=I;continue}if(a[z+I>>0]|0){G=I;continue}if(a[z+J>>0]|0){G=I;continue}J=(a[z+H>>0]|0)==1;if(J){G=J?G:A;break}else G=I}else G=A;while(0);if((G|0)<0){n=-1;break b}H=G-F|0;F=H+3|0;E=w&(E|0)==1;J=E?l:h;I=J+8|0;if((Od(J,(c[I>>2]|0)+F|0)|0)<0){n=-1;break b}K=c[J>>2]|0;J=c[I>>2]|0;a[K+J>>0]=0;a[K+(J+1)>>0]=0;a[K+(J+2)>>0]=1;fe(K+(J+3)|0,C|0,H|0)|0;if(E){R=K+(J+4)|0;a[R>>0]=d[R>>0]&7}c[I>>2]=J+F;A=A-G|0;if((A|0)>0){H=B;z=z+G|0;G=0}else break}y=c[v>>2]|0;m=105}else{A=u;m=105}while(0);do if((m|0)==105){if(y){if((Od(l,(c[p>>2]|0)+32|0)|0)<0){n=-1;break}if((Pd(c[v>>2]|0,c[e+12>>2]|0,c[l>>2]|0,c[p>>2]|0)|0)<0){n=-1;break}}if((Od(h,(c[t>>2]|0)+32|0)|0)<0)n=-1;else{n=(Pd(c[e>>2]|0,c[f>>2]|0,c[h>>2]|0,c[t>>2]|0)|0)<0;n=n?-1:u-A|0}}while(0);id(c[l>>2]|0);id(c[h>>2]|0);if((((n|0)>=0?(g-u+n|0)>=0:0)?(Ld(e),j=c[f>>2]|0,(c[j+64>>2]|0)>=(c[q>>2]|0)):0)?(c[j+68>>2]|0)>=(c[r>>2]|0):0){c[e+80>>2]=-1;R=0;i=k;return R|0}}}while(0);xd(e+8|0);xd(e+12|0);c[s>>2]=0;R=-1;i=k;return R|0}function Ld(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Jc(e)|0;id(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Jc(d)|0;id(c[a>>2]|0);c[a>>2]=0;i=b;return}function Md(a){a=a|0;var b=0,d=0;b=i;id(c[a+124>>2]|0);id(c[a+128>>2]|0);d=0;do{id(c[a+(d<<2)+132>>2]|0);id(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);id(c[a+196>>2]|0);id(c[a+56>>2]|0);Ld(a);xd(a+8|0);xd(a+12|0);id(a);i=b;return}function Nd(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=Qd(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=fd(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;fe(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=fd(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}id(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Od(b,(c[g>>2]|0)+f|0)|0)<0){id(k);t=-1;i=n;return t|0}fe((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;id(k);b=Oc(1416)|0;if(!b){t=-1;i=n;return t|0}g=wd()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ic(b,1416,0)|0)<0){xd(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=gd(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Pd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Xc(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Pc(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function Qd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Rd(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;j=i;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((k|0)>0)h=0;else{i=j;return}while(1){o=b[g+(h<<1)>>1]&255;a[f>>0]=o;a[f+1>>0]=o;a[f+2>>0]=o;h=h+1|0;if((h|0)==(k|0))break;else f=f+l|0}i=j;return}m=c[d+12>>2]|0;h=c[d+16>>2]|0;d=c[d>>2]|0;if((k|0)>0)n=0;else{i=j;return}while(1){o=($(e[g+(n<<1)>>1]|0,m)|0)+h>>d;if((o|0)<0)o=0;else o=(o|0)>255?-1:o&255;a[f>>0]=o;a[f+1>>0]=o;a[f+2>>0]=o;n=n+1|0;if((n|0)==(k|0))break;else f=f+l|0}i=j;return}function Sd(b,d,f,g,h,j,k){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(e[f+(t<<1)>>1]|0,p)|0;u=(e[g+(t<<1)>>1]|0)-b|0;w=(e[h+(t<<1)>>1]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[d>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[d+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[d+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else d=d+k|0}i=q;return}function Td(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;m=i;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((k|0)>0)n=0;else{i=m;return}while(1){a[f>>0]=b[j+(n<<1)>>1];a[f+1>>0]=b[g+(n<<1)>>1];a[f+2>>0]=b[h+(n<<1)>>1];n=n+1|0;if((n|0)==(k|0))break;else f=f+l|0}i=m;return}o=c[d+12>>2]|0;n=c[d+16>>2]|0;d=c[d>>2]|0;if((k|0)>0)p=0;else{i=m;return}while(1){q=($(e[j+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f>>0]=q;q=($(e[g+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f+1>>0]=q;q=($(e[h+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f+2>>0]=q;p=p+1|0;if((p|0)==(k|0))break;else f=f+l|0}i=m;return}function Ud(b,d,f,g,h,j,k){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=e[f+(p<<1)>>1]|0;s=(e[g+(p<<1)>>1]|0)-b|0;r=(e[h+(p<<1)>>1]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[d>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[d+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[d+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else d=d+k|0}i=o;return}function Vd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1523]|0)){e=ra(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;c[1523]=6088;c[1522]=6088;c[1527]=6104;c[1526]=6104;k=e+16|0;a[e+15>>0]=-86;j=c[1527]|0;c[1527]=k;c[k>>2]=6104;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1523]|0;c[1523]=j;c[j>>2]=6088;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1524]|0;g=c[1522]|0;k=6092|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6104)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ra(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function Wd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1523]|0;c[1523]=b;c[b>>2]=6088;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6104?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6104){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){Wd(a);e=0;break}e=Vd(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;fe(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;Wd(a)}}else e=Vd(b)|0;while(0);i=d;return e|0}function Yd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function Zd(){}function _d(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function be(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function ce(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function de(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function fe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ge(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function he(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function ie(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=je(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return xa[a&1](b|0,c|0,d|0)|0}function me(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;ya[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function ne(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;za[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function oe(a,b,c,d,e,f,g,h,i,j,k,l,m,n){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;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;Aa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0)}function pe(a,b){a=a|0;b=b|0;Ba[a&1](b|0)}function qe(a,b,c){a=a|0;b=b|0;c=c|0;Ca[a&7](b|0,c|0)}function re(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Da[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function se(a,b){a=a|0;b=b|0;return Ea[a&3](b|0)|0}function te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Fa[a&7](b|0,c|0,d|0)}function ue(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ga[a&1](b|0,c|0,d|0,e|0)|0}function ve(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ha[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function we(a,b,c){a=a|0;b=b|0;c=c|0;return Ia[a&1](b|0,c|0)|0}function xe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ja[a&1](b|0,c|0,d|0,e|0,f|0)|0}function ye(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ka[a&7](b|0,c|0,d|0,e|0)}function ze(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Ae(a,b,c,d,e,f,g,h,i,j){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;j=j|0;aa(1)}function Be(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(2)}function Ce(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;aa(3)}function De(a){a=a|0;aa(4)}function Ee(a,b){a=a|0;b=b|0;aa(5)}function Fe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(6);return 0}function Ge(a){a=a|0;aa(7);return 0}function He(a,b,c){a=a|0;b=b|0;c=c|0;aa(8)}function Ie(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(9);return 0}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function Ke(a,b){a=a|0;b=b|0;aa(11);return 0}function Le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(12);return 0}function Me(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(13)} +function ec(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==8)break;else l=l+2|0}j=j+1|0;if((j|0)==8)break;else{c=c+16|0;a=a+(d<<1)|0}}i=g;return}function fc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==16)break;else l=l+2|0}j=j+1|0;if((j|0)==16)break;else{c=c+32|0;a=a+(d<<1)|0}}i=g;return}function gc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;d=d>>>1;f=1<>1]|0)+(e[k>>1]|0)|0;if(n&h)n=0-n>>31&f;b[k>>1]=n;m=m+1|0;if((m|0)==32)break;else l=l+2|0}j=j+1|0;if((j|0)==32)break;else{c=c+64|0;a=a+(d<<1)|0}}i=g;return}function hc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;c=c<<16>>16;d=15-d-c|0;c=1<0){f=1<0){h=a;a=0}else{i=e;return}while(1){j=h;g=0;while(1){b[j>>1]=(b[j>>1]|0)+f>>d;g=g+1|0;if((g|0)==(c|0))break;else j=j+2|0}a=a+1|0;if((a|0)==(c|0))break;else h=h+(c<<1)|0}i=e;return}if((c|0)<=0){i=e;return}d=0-d|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function jc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=i;e=0;g=a;while(1){q=b[g>>1]|0;n=g+16|0;o=b[n>>1]|0;h=o+q|0;f=g+24|0;p=b[f>>1]|0;m=p+o|0;j=q-p|0;l=g+8|0;k=(b[l>>1]|0)*74|0;p=((q-o+p|0)*74|0)+64|0;o=p>>7;if((o+32768|0)>>>0>65535)o=p>>31^32767;b[n>>1]=o;o=(h*29|0)+64+(m*55|0)+k|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[g>>1]=n;m=($(m,-29)|0)+64+(j*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[l>>1]=n;j=(h*55|0)+64+(j*29|0)-k|0;h=j>>7;if((h+32768|0)>>>0>65535)h=j>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4)break;else g=g+2|0}e=20-c|0;c=1<>1]|0;n=a+4|0;q=b[n>>1]|0;l=q+p|0;f=a+6|0;o=b[f>>1]|0;m=o+q|0;h=p-o|0;k=a+2|0;j=(b[k>>1]|0)*74|0;o=((p-q+o|0)*74|0)+c>>e;if((o+32768|0)>>>0>65535)o=o>>31^32767;b[n>>1]=o;n=(l*29|0)+c+(m*55|0)+j>>e;if((n+32768|0)>>>0>65535)n=n>>31^32767;b[a>>1]=n;m=($(m,-29)|0)+c+(h*55|0)+j>>e;if((m+32768|0)>>>0>65535)m=m>>31^32767;b[k>>1]=m;h=(l*55|0)+c+(h*29|0)-j>>e;if((h+32768|0)>>>0>65535)h=h>>31^32767;b[f>>1]=h;g=g+1|0;if((g|0)==4)break;else a=a+8|0}i=d;return}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;g=a;while(1){n=b[g>>1]<<6;k=g+16|0;m=b[k>>1]<<6;j=m+n|0;m=n-m|0;n=g+8|0;l=b[n>>1]|0;f=g+24|0;o=b[f>>1]|0;h=(o*36|0)+(l*83|0)|0;l=($(o,-83)|0)+(l*36|0)|0;o=j+64+h|0;p=o>>7;if((p+32768|0)>>>0>65535)p=o>>31^32767;b[g>>1]=p;p=m+64+l|0;o=p>>7;if((o+32768|0)>>>0>65535)o=p>>31^32767;b[n>>1]=o;l=m-l+64|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[k>>1]=m;j=j-h+64|0;h=j>>7;if((h+32768|0)>>>0>65535)h=j>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4)break;else g=g+2|0}e=20-d|0;d=1<>1]<<6;k=a+4|0;o=b[k>>1]<<6;m=a+2|0;l=b[m>>1]|0;f=a+6|0;j=b[f>>1]|0;h=(j*36|0)+(l*83|0)|0;l=($(j,-83)|0)+(l*36|0)|0;j=o+n+d|0;p=j+h>>e;if((p+32768|0)>>>0>65535)p=p>>31^32767;b[a>>1]=p;n=n-o+d|0;o=n+l>>e;if((o+32768|0)>>>0>65535)o=o>>31^32767;b[m>>1]=o;l=n-l>>e;if((l+32768|0)>>>0>65535)l=l>>31^32767;b[k>>1]=l;h=j-h>>e;if((h+32768|0)>>>0>65535)h=h>>31^32767;b[f>>1]=h;g=g+1|0;if((g|0)==4)break;else a=a+8|0}i=c;return}function lc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;i=i+64|0;r=j+48|0;p=j+32|0;g=j+16|0;h=j;q=(e|0)>8;s=e+4|0;k=r+4|0;l=r+8|0;m=r+12|0;o=0;s=(s|0)>8?8:s;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(s|0)>1;t=0;do{if(w){v=p+(t<<2)|0;u=c[v>>2]|0;x=1;do{u=($(b[n+(x<<3<<1)>>1]|0,a[1664+(x<<2<<5)+t>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(s|0));c[v>>2]=u}t=t+1|0}while((t|0)!=4);w=b[n>>1]<<6;v=b[n+64>>1]<<6;x=v+w|0;v=w-v|0;w=b[n+32>>1]|0;u=b[n+96>>1]|0;t=(u*36|0)+(w*83|0)|0;w=($(u,-83)|0)+(w*36|0)|0;u=t+x|0;c[r>>2]=u;c[k>>2]=w+v;c[l>>2]=v-w;c[m>>2]=x-t;t=0;while(1){v=c[p+(t<<2)>>2]|0;w=u+64+v|0;x=w>>7;if((x+32768|0)>>>0>65535)x=w>>31^32767;b[n+(t<<3<<1)>>1]=x;v=u-v+64|0;u=v>>7;if((u+32768|0)>>>0>65535)u=v>>31^32767;b[n+(7-t<<3<<1)>>1]=u;t=t+1|0;if((t|0)==4)break;u=c[r+(t<<2)>>2]|0}if((s|0)<8)s=(o&3|0)==0&(o|0)!=0?s+ -4|0:s;o=o+1|0;if((o|0)==8)break;else n=n+2|0}k=q?8:e;l=20-f|0;m=1<1;n=g+4|0;o=g+8|0;e=g+12|0;p=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;t=0;do{if(f){q=h+(t<<2)|0;s=c[q>>2]|0;r=1;do{s=($(b[d+(r<<1)>>1]|0,a[1664+(r<<2<<5)+t>>0]|0)|0)+s|0;r=r+2|0}while((r|0)<(k|0));c[q>>2]=s}t=t+1|0}while((t|0)!=4);w=b[d>>1]<<6;v=b[d+8>>1]<<6;x=v+w|0;v=w-v|0;w=b[d+4>>1]|0;s=b[d+12>>1]|0;q=(s*36|0)+(w*83|0)|0;w=($(s,-83)|0)+(w*36|0)|0;s=q+x|0;c[g>>2]=s;c[n>>2]=w+v;c[o>>2]=v-w;c[e>>2]=x-q;q=0;while(1){r=c[h+(q<<2)>>2]|0;s=s+m|0;t=s+r>>l;if((t+32768|0)>>>0>65535)t=t>>31^32767;b[d+(q<<1)>>1]=t;r=s-r>>l;if((r+32768|0)>>>0>65535)r=r>>31^32767;b[d+(7-q<<1)>>1]=r;q=q+1|0;if((q|0)==4)break;s=c[g+(q<<2)>>2]|0}p=p+1|0;if((p|0)==8)break;else d=d+16|0}i=j;return}function mc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=i;i=i+192|0;t=g+160|0;u=g+128|0;v=g+112|0;s=g+96|0;j=g+64|0;l=g+32|0;h=g+16|0;k=g;m=(e|0)>16;w=e+4|0;n=v+4|0;o=v+8|0;p=v+12|0;r=0;w=(w|0)>16?16:w;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(w|0)>1;B=0;do{if(A){z=u+(B<<2)|0;x=c[z>>2]|0;y=1;do{x=($(b[q+(y<<4<<1)>>1]|0,a[1664+(y<<1<<5)+B>>0]|0)|0)+x|0;y=y+2|0}while((y|0)<(w|0));c[z>>2]=x}B=B+1|0}while((B|0)!=8);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;y=0;do{x=s+(y<<2)|0;A=c[x>>2]|0;z=1;do{A=($(b[q+(z<<5<<1)>>1]|0,a[1664+(z<<2<<5)+y>>0]|0)|0)+A|0;z=z+2|0}while((z|0)<8);c[x>>2]=A;y=y+1|0}while((y|0)!=4);A=b[q>>1]<<6;z=b[q+256>>1]<<6;B=z+A|0;z=A-z|0;A=b[q+128>>1]|0;x=b[q+384>>1]|0;y=(x*36|0)+(A*83|0)|0;A=($(x,-83)|0)+(A*36|0)|0;x=y+B|0;c[v>>2]=x;c[n>>2]=A+z;c[o>>2]=z-A;c[p>>2]=B-y;y=0;while(1){B=c[s+(y<<2)>>2]|0;c[t+(y<<2)>>2]=B+x;c[t+(7-y<<2)>>2]=x-B;y=y+1|0;if((y|0)==4){x=0;break}x=c[v+(y<<2)>>2]|0}do{z=c[t+(x<<2)>>2]|0;y=c[u+(x<<2)>>2]|0;B=z+64+y|0;A=B>>7;if((A+32768|0)>>>0>65535)A=B>>31^32767;b[q+(x<<4<<1)>>1]=A;y=z-y+64|0;z=y>>7;if((z+32768|0)>>>0>65535)z=y>>31^32767;b[q+(15-x<<4<<1)>>1]=z;x=x+1|0}while((x|0)!=8);if((w|0)<16)w=(r&3|0)==0&(r|0)!=0?w+ -4|0:w;r=r+1|0;if((r|0)==16)break;else q=q+2|0}m=m?16:e;f=20-f|0;n=1<1;o=h+4|0;r=h+8|0;p=h+12|0;s=0;while(1){c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;v=0;do{if(q){e=l+(v<<2)|0;u=c[e>>2]|0;t=1;do{u=($(b[d+(t<<1)>>1]|0,a[1664+(t<<1<<5)+v>>0]|0)|0)+u|0;t=t+2|0}while((t|0)<(m|0));c[e>>2]=u}v=v+1|0}while((v|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;e=0;do{t=k+(e<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[d+(u<<1<<1)>>1]|0,a[1664+(u<<2<<5)+e>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<8);c[t>>2]=v;e=e+1|0}while((e|0)!=4);A=b[d>>1]<<6;z=b[d+16>>1]<<6;B=z+A|0;z=A-z|0;A=b[d+8>>1]|0;t=b[d+24>>1]|0;u=(t*36|0)+(A*83|0)|0;A=($(t,-83)|0)+(A*36|0)|0;t=u+B|0;c[h>>2]=t;c[o>>2]=A+z;c[r>>2]=z-A;c[p>>2]=B-u;u=0;while(1){B=c[k+(u<<2)>>2]|0;c[j+(u<<2)>>2]=B+t;c[j+(7-u<<2)>>2]=t-B;u=u+1|0;if((u|0)==4){t=0;break}t=c[h+(u<<2)>>2]|0}do{u=c[l+(t<<2)>>2]|0;v=(c[j+(t<<2)>>2]|0)+n|0;e=v+u>>f;if((e+32768|0)>>>0>65535)e=e>>31^32767;b[d+(t<<1)>>1]=e;u=v-u>>f;if((u+32768|0)>>>0>65535)u=u>>31^32767;b[d+(15-t<<1)>>1]=u;t=t+1|0}while((t|0)!=8);s=s+1|0;if((s|0)==16)break;else d=d+32|0}i=g;return}function nc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=i;i=i+320|0;h=g+256|0;n=g+192|0;o=g+160|0;s=g+128|0;u=g+112|0;t=g+96|0;m=g+64|0;k=g+32|0;j=g+16|0;l=g;q=(e|0)>32;y=e+4|0;v=u+4|0;w=u+8|0;x=u+12|0;p=0;y=(y|0)>32?32:y;r=d;while(1){z=n+0|0;A=z+64|0;do{c[z>>2]=0;z=z+4|0}while((z|0)<(A|0));z=(y|0)>1;C=0;do{if(z){B=n+(C<<2)|0;A=c[B>>2]|0;D=1;do{A=($(b[r+(D<<5<<1)>>1]|0,a[1664+(D<<5)+C>>0]|0)|0)+A|0;D=D+2|0}while((D|0)<(y|0));c[B>>2]=A}C=C+1|0}while((C|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;z=(y|0)/2|0;A=(y|0)>3;B=0;do{if(A){C=s+(B<<2)|0;D=c[C>>2]|0;E=1;do{D=($(b[r+(E<<6<<1)>>1]|0,a[1664+(E<<1<<5)+B>>0]|0)|0)+D|0;E=E+2|0}while((E|0)<(z|0));c[C>>2]=D}B=B+1|0}while((B|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;C=0;do{z=t+(C<<2)|0;B=c[z>>2]|0;A=1;do{B=($(b[r+(A<<7<<1)>>1]|0,a[1664+(A<<2<<5)+C>>0]|0)|0)+B|0;A=A+2|0}while((A|0)<8);c[z>>2]=B;C=C+1|0}while((C|0)!=4);D=b[r>>1]<<6;C=b[r+1024>>1]<<6;E=C+D|0;C=D-C|0;D=b[r+512>>1]|0;z=b[r+1536>>1]|0;A=(z*36|0)+(D*83|0)|0;D=($(z,-83)|0)+(D*36|0)|0;z=A+E|0;c[u>>2]=z;c[v>>2]=D+C;c[w>>2]=C-D;c[x>>2]=E-A;A=0;while(1){E=c[t+(A<<2)>>2]|0;c[o+(A<<2)>>2]=E+z;c[o+(7-A<<2)>>2]=z-E;A=A+1|0;if((A|0)==4){z=0;break}z=c[u+(A<<2)>>2]|0}do{D=c[o+(z<<2)>>2]|0;E=c[s+(z<<2)>>2]|0;c[h+(z<<2)>>2]=E+D;c[h+(15-z<<2)>>2]=D-E;z=z+1|0}while((z|0)!=8);z=0;do{A=c[h+(z<<2)>>2]|0;B=c[n+(z<<2)>>2]|0;D=A+64+B|0;C=D>>7;if((C+32768|0)>>>0>65535)C=D>>31^32767;b[r+(z<<5<<1)>>1]=C;A=A-B+64|0;B=A>>7;if((B+32768|0)>>>0>65535)B=A>>31^32767;b[r+(31-z<<5<<1)>>1]=B;z=z+1|0}while((z|0)!=16);if((y|0)<32)y=(p&3|0)==0&(p|0)!=0?y+ -4|0:y;p=p+1|0;if((p|0)==32)break;else r=r+2|0}o=q?32:e;e=20-f|0;s=1<1;r=(o|0)/2|0;q=(o|0)>3;p=j+4|0;t=j+8|0;u=j+12|0;v=0;while(1){z=n+0|0;A=z+64|0;do{c[z>>2]=0;z=z+4|0}while((z|0)<(A|0));z=0;do{if(f){w=n+(z<<2)|0;y=c[w>>2]|0;x=1;do{y=($(b[d+(x<<1)>>1]|0,a[1664+(x<<5)+z>>0]|0)|0)+y|0;x=x+2|0}while((x|0)<(o|0));c[w>>2]=y}z=z+1|0}while((z|0)!=16);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[k+20>>2]=0;c[k+24>>2]=0;c[k+28>>2]=0;z=0;do{if(q){w=k+(z<<2)|0;y=c[w>>2]|0;x=1;do{E=x<<1;y=($(b[d+(E<<1)>>1]|0,a[1664+(E<<5)+z>>0]|0)|0)+y|0;x=x+2|0}while((x|0)<(r|0));c[w>>2]=y}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;w=0;do{x=l+(w<<2)|0;z=c[x>>2]|0;y=1;do{E=y<<2;z=($(b[d+(E<<1)>>1]|0,a[1664+(E<<5)+w>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[x>>2]=z;w=w+1|0}while((w|0)!=4);D=b[d>>1]<<6;C=b[d+32>>1]<<6;E=C+D|0;C=D-C|0;D=b[d+16>>1]|0;w=b[d+48>>1]|0;x=(w*36|0)+(D*83|0)|0;D=($(w,-83)|0)+(D*36|0)|0;w=x+E|0;c[j>>2]=w;c[p>>2]=D+C;c[t>>2]=C-D;c[u>>2]=E-x;x=0;while(1){E=c[l+(x<<2)>>2]|0;c[m+(x<<2)>>2]=E+w;c[m+(7-x<<2)>>2]=w-E;x=x+1|0;if((x|0)==4){w=0;break}w=c[j+(x<<2)>>2]|0}do{D=c[m+(w<<2)>>2]|0;E=c[k+(w<<2)>>2]|0;c[h+(w<<2)>>2]=E+D;c[h+(15-w<<2)>>2]=D-E;w=w+1|0}while((w|0)!=8);w=0;do{x=c[n+(w<<2)>>2]|0;y=(c[h+(w<<2)>>2]|0)+s|0;z=y+x>>e;if((z+32768|0)>>>0>65535)z=z>>31^32767;b[d+(w<<1)>>1]=z;x=y-x>>e;if((x+32768|0)>>>0>65535)x=x>>31^32767;b[d+(31-w<<1)>>1]=x;w=w+1|0}while((w|0)!=16);v=v+1|0;if((v|0)==32)break;else d=d+64|0}i=g;return}function oc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=i;c=14-c|0;c=((b[a>>1]|0)+1>>1)+(1<>c&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=c;b[a+((f|1)<<1)>>1]=c;b[a+((f|2)<<1)>>1]=c;b[a+((f|3)<<1)>>1]=c;e=e+1|0}while((e|0)!=4);i=d;return}function pc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=i;c=14-c|0;c=((b[a>>1]|0)+1>>1)+(1<>c&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=c;b[a+((f|1)<<1)>>1]=c;b[a+((f|2)<<1)>>1]=c;b[a+((f|3)<<1)>>1]=c;b[a+((f|4)<<1)>>1]=c;b[a+((f|5)<<1)>>1]=c;b[a+((f|6)<<1)>>1]=c;b[a+((f|7)<<1)>>1]=c;e=e+1|0}while((e|0)!=8);i=d;return}function qc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);c=c+1|0}while((c|0)!=16);i=d;return}function rc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=i;e=14-c|0;e=((b[a>>1]|0)+1>>1)+(1<>e&65535;c=0;do{f=c<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);c=c+1|0}while((c|0)!=32);i=d;return}function sc(a,f,g,h,j,k,l,m,n,o){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0;p=i;i=i+128|0;k=p;r=k+0|0;q=r+128|0;do{c[r>>2]=0;r=r+4|0}while((r|0)<(q|0));t=d[j+n+96>>0]|0;g=g>>>1;c[k+((t&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((t+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((t+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((t+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];j=o+ -5|0;h=h>>>1;if((m|0)<=0){i=p;return}n=(l|0)>0;o=1<>1]|0;t=t+(c[k+(t>>>j<<2)>>2]|0)|0;if(t&q)t=0-t>>31&o;b[a+(s<<1)>>1]=t;s=s+1|0}while((s|0)!=(l|0))}r=r+1|0;if((r|0)==(m|0))break;else{a=a+(g<<1)|0;f=f+(h<<1)|0}}i=p;return}function tc(a,d,f,g,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0;n=i;o=h+(m*10|0)+112|0;r=c[h+(m<<2)+100>>2]|0;f=f>>>1;g=g>>>1;if((r|0)!=1){if(c[j>>2]|0){u=b[o>>1]|0;if((l|0)>0){p=1<>1]|0)+u|0;if(v&t)v=0-v>>31&p;b[a+(($(s,f)|0)<<1)>>1]=v;s=s+1|0}while((s|0)!=(l|0));p=1}else p=1}else p=0;if(c[j+8>>2]|0){s=b[o>>1]|0;k=k+ -1|0;if((l|0)>0){v=1<>1]|0)+s|0;if(w&u)w=0-w>>31&v;b[a+(($(t,f)|0)+k<<1)>>1]=w;t=t+1|0}while((t|0)!=(l|0))}}if(!r){u=l;v=p;w=0;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}}else p=0;if(c[j+4>>2]|0){r=b[o>>1]|0;if((p|0)<(k|0)){s=1<>1]|0)+r|0;if(v&t)v=0-v>>31&s;b[a+(u<<1)>>1]=v;u=u+1|0}while((u|0)!=(k|0));r=1}else r=1}else r=0;if(!(c[j+12>>2]|0)){u=l;v=p;w=r;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}j=b[o>>1]|0;t=l+ -1|0;o=$(t,f)|0;u=$(t,g)|0;if((p|0)>=(k|0)){u=t;v=p;w=r;t=k;Bc(a,d,f,g,h,t,u,m,v,w,q);i=n;return}s=1<>1]|0)+j|0;if(w&l)w=0-w>>31&s;b[a+(v+o<<1)>>1]=w;v=v+1|0}while((v|0)!=(k|0));Bc(a,d,f,g,h,k,t,m,p,r,q);i=n;return}function uc(d,f,g,h,j,k,l,m,n,o,p,q,r){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;t=i;D=j+(n*10|0)+112|0;C=c[j+(n<<2)+100>>2]|0;g=g>>>1;h=h>>>1;B=(C|0)!=1;if(B){if(c[k>>2]|0){I=b[D>>1]|0;if((m|0)>0){H=1<>1]|0)+I|0;if(J&G)J=0-J>>31&H;b[d+(($(F,g)|0)<<1)>>1]=J;F=F+1|0}while((F|0)!=(m|0));F=1}else F=1}else F=0;if(c[k+8>>2]|0){G=b[D>>1]|0;l=l+ -1|0;if((m|0)>0){J=1<>1]|0)+G|0;if(K&I)K=0-K>>31&J;b[d+(($(H,g)|0)+l<<1)>>1]=K;H=H+1|0}while((H|0)!=(m|0))}}if(!C){D=1;G=0}else E=15}else{F=0;E=15}if((E|0)==15){if(c[k+4>>2]|0){H=b[D>>1]|0;if((F|0)<(l|0)){I=1<>1]|0)+H|0;if(J&G)J=0-J>>31&I;b[d+(E<<1)>>1]=J;E=E+1|0}while((E|0)!=(l|0));G=1}else G=1}else G=0;if(c[k+12>>2]|0){D=b[D>>1]|0;m=m+ -1|0;I=$(m,g)|0;H=$(m,h)|0;if((F|0)<(l|0)){K=1<>1]|0)+D|0;if(L&J)L=0-L>>31&K;b[d+(E+I<<1)>>1]=L;E=E+1|0}while((E|0)!=(l|0));D=0}else D=0}else D=0}Bc(d,f,g,h,j,l,m,n,F,G,r);r=(C|0)==2;if((a[q>>0]|0)==0&r?(c[k>>2]|0)==0:0)j=(c[k+4>>2]|0)==0;else j=0;H=j&1;j=q+1|0;C=(C|0)==3;if((a[j>>0]|0)==0&C?(c[k+4>>2]|0)==0:0)n=(c[k+8>>2]|0)==0;else n=0;I=n&1;n=q+2|0;if((a[n>>0]|0)==0&r?(c[k+8>>2]|0)==0:0)E=(c[k+12>>2]|0)==0;else E=0;J=E&1;E=q+3|0;if((a[E>>0]|0)==0&C?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;B=B^1;if(!((a[o>>0]|0)==0|B)?(A=H+G|0,z=m-k|0,(A|0)<(z|0)):0)do{b[d+(($(A,g)|0)<<1)>>1]=b[f+(($(A,h)|0)<<1)>>1]|0;A=A+1|0}while((A|0)!=(z|0));if(!((a[o+1>>0]|0)==0|B)?(y=I+G|0,x=m-J|0,(y|0)<(x|0)):0){z=l+ -1|0;do{b[d+(z+($(y,g)|0)<<1)>>1]=b[f+(z+($(y,h)|0)<<1)>>1]|0;y=y+1|0}while((y|0)!=(x|0))}if(!((a[p>>0]|0)==0|D)?(w=H+F|0,v=l-I|0,(w|0)<(v|0)):0)do{b[d+(w<<1)>>1]=b[f+(w<<1)>>1]|0;w=w+1|0}while((w|0)!=(v|0));if(!((a[p+1>>0]|0)==0|D)?(u=k+F|0,s=l-J|0,(u|0)<(s|0)):0){v=m+ -1|0;p=$(v,h)|0;v=$(v,g)|0;do{b[d+(u+v<<1)>>1]=b[f+(u+p<<1)>>1]|0;u=u+1|0}while((u|0)!=(s|0))}if((a[q>>0]|0)!=0&r)b[d>>1]=b[f>>1]|0;if((a[j>>0]|0)!=0&C){L=l+ -1|0;b[d+(L<<1)>>1]=b[f+(L<<1)>>1]|0}if((a[n>>0]|0)!=0&r){L=m+ -1|0;K=l+ -1|0;b[d+(K+($(L,g)|0)<<1)>>1]=b[f+(K+($(L,h)|0)<<1)>>1]|0}if(!((a[E>>0]|0)!=0&C)){i=t;return}L=m+ -1|0;b[d+(($(L,g)|0)<<1)>>1]=b[f+(($(L,h)|0)<<1)>>1]|0;i=t;return}function vc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;Ac(a,b,2,c,d,e,f,g);i=h;return}function wc(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;Ac(a,2,b,c,d,e,f,g);i=h;return}function xc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;zc(a,b,2,c,d,e,f);i=g;return}function yc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;zc(a,2,b,c,d,e,f);i=g;return}function zc(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;m=i;f=f>>>1;p=g>>>1;o=l+ -8|0;g=$(f,-2)|0;n=0-f|0;r=1<>2]<=1){v=0-s|0;u=(a[j+l>>0]|0)==0;t=(a[k+l>>0]|0)==0;x=0;w=d;while(1){y=w+(n<<1)|0;B=e[y>>1]|0;z=e[w>>1]|0;A=(e[w+(g<<1)>>1]|0)+4-(e[w+(f<<1)>>1]|0)+(z-B<<2)>>3;if((A|0)<(v|0))A=v;else A=(A|0)>(s|0)?s:A;if(u){B=A+B|0;if(B&q)B=0-B>>31&r;b[y>>1]=B}if(t){y=z-A|0;if(y&q)y=0-y>>31&r;b[w>>1]=y}x=x+1|0;if((x|0)==4)break;else w=w+(p<<1)|0}}l=l+1|0;if((l|0)==2)break;else d=d+(p<<2<<1)|0}i=m;return}function Ac(d,f,g,h,j,k,l,m){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0;n=i;f=f>>>1;g=g>>>1;o=m+ -8|0;y=h<>3;u=y>>2;q=$(f,-4)|0;p=f*3|0;v=C+q|0;F=(g+f|0)*3|0;t=(y>>1)+y>>3;H=1<>1]|0;X=b[d+(s<<1)>>1]|0;W=b[d+(w<<1)>>1]|0;da=W&65535;R=(Y&65535)-((X&65535)<<1)+da|0;R=(R|0)>-1?R:0-R|0;T=b[d+(h<<1)>>1]|0;U=b[d+(f<<1)>>1]|0;V=b[d>>1]|0;M=V&65535;S=(T&65535)-((U&65535)<<1)+M|0;S=(S|0)>-1?S:0-S|0;ba=e[d+(z<<1)>>1]|0;Q=(e[d+(A<<1)>>1]|0)-((e[d+(B<<1)>>1]|0)<<1)+ba|0;Q=(Q|0)>-1?Q:0-Q|0;ca=e[d+(C<<1)>>1]|0;Z=(e[d+(D<<1)>>1]|0)-((e[d+(E<<1)>>1]|0)<<1)+ca|0;Z=(Z|0)>-1?Z:0-Z|0;L=S+R|0;aa=Z+Q|0;K=c[j+(I<<2)>>2]<>0]|0;P=a[l+I>>0]|0;do if((aa+L|0)<(y|0)){N=(K*5|0)+1>>1;ea=(e[d+(q<<1)>>1]|0)-da|0;O=b[d+(p<<1)>>1]|0;fa=(O&65535)-M|0;if((((((((fa|0)>-1?fa:0-fa|0)+((ea|0)>-1?ea:0-ea|0)|0)<(x|0)?(fa=da-M|0,(((fa|0)>-1?fa:0-fa|0)|0)<(N|0)):0)?(fa=(e[d+(v<<1)>>1]|0)-ba|0,ea=(e[d+(F<<1)>>1]|0)-ca|0,(((ea|0)>-1?ea:0-ea|0)+((fa|0)>-1?fa:0-fa|0)|0)<(x|0)):0)?(fa=ba-ca|0,(((fa|0)>-1?fa:0-fa|0)|0)<(N|0)):0)?(L<<1|0)<(u|0):0)?(aa<<1|0)<(u|0):0){K=K<<1;L=_<<24>>24==0;M=0-K|0;N=P<<24>>24==0;ba=O;P=1;O=d;while(1){Z=O+(r<<1)|0;Y=Y&65535;_=O+(s<<1)|0;X=X&65535;aa=O+(w<<1)|0;R=W&65535;V=V&65535;W=O+(f<<1)|0;U=U&65535;Q=O+(h<<1)|0;S=T&65535;T=ba&65535;if(L){ba=e[O+(q<<1)>>1]|0;ca=(Y+4+U+(R+X+V<<1)>>3)-R|0;if((ca|0)<(M|0))ca=M;else ca=(ca|0)>(K|0)?K:ca;b[aa>>1]=ca+R;aa=((Y+2+X+R+V|0)>>>2)-X|0;if((aa|0)<(M|0))aa=M;else aa=(aa|0)>(K|0)?K:aa;b[_>>1]=aa+X;_=((Y*3|0)+4+X+R+V+(ba<<1)>>3)-Y|0;if((_|0)<(M|0))_=M;else _=(_|0)>(K|0)?K:_;b[Z>>1]=_+Y}if(N){X=(X+4+S+(V+R+U<<1)>>3)-V|0;if((X|0)<(M|0))X=M;else X=(X|0)>(K|0)?K:X;b[O>>1]=X+V;X=((R+2+V+U+S|0)>>>2)-U|0;if((X|0)<(M|0))X=M;else X=(X|0)>(K|0)?K:X;b[W>>1]=X+U;R=(R+4+V+U+(S*3|0)+(T<<1)>>3)-S|0;if((R|0)<(M|0))R=M;else R=(R|0)>(K|0)?K:R;b[Q>>1]=R+S}Q=O+(g<<1)|0;if((P|0)==4)break;Y=b[O+(g+r<<1)>>1]|0;X=b[O+(g+s<<1)>>1]|0;W=b[O+(g-f<<1)>>1]|0;V=b[Q>>1]|0;U=b[O+(g+f<<1)>>1]|0;T=b[O+(g+h<<1)>>1]|0;ba=b[O+(g+p<<1)>>1]|0;P=P+1|0;O=Q}d=d+(J<<1)|0;break}L=K>>1;N=K*10|0;M=0-K|0;O=_<<24>>24!=0;P=P<<24>>24!=0;Q=(Q+R|0)<(t|0)&(O^1);R=0-L|0;S=(Z+S|0)<(t|0)&(P^1);_=V;ba=U;U=1;V=d;while(1){aa=Y&65535;Y=V+(s<<1)|0;Z=X&65535;da=V+(w<<1)|0;ca=W&65535;_=_&65535;W=V+(f<<1)|0;X=ba&65535;T=T&65535;ba=((_-ca|0)*9|0)+8+($(X-Z|0,-3)|0)>>4;if((((ba|0)>-1?ba:0-ba|0)|0)<(N|0)){if((ba|0)<(M|0))ba=M;else ba=(ba|0)>(K|0)?K:ba;if(!O){ea=ba+ca|0;if(ea&G)ea=0-ea>>31&H;b[da>>1]=ea}if(!P){da=_-ba|0;if(da&G)da=0-da>>31&H;b[V>>1]=da}if(Q){aa=((aa+1+ca|0)>>>1)-Z+ba>>1;if((aa|0)<(R|0))aa=R;else aa=(aa|0)>(L|0)?L:aa;Z=aa+Z|0;if(Z&G)Z=0-Z>>31&H;b[Y>>1]=Z}if(S){T=((_+1+T|0)>>>1)-X-ba>>1;if((T|0)<(R|0))T=R;else T=(T|0)>(L|0)?L:T;T=T+X|0;if(T&G)T=0-T>>31&H;b[W>>1]=T}}Z=V+(g<<1)|0;if((U|0)==4)break;Y=b[V+(g+r<<1)>>1]|0;X=b[V+(g+s<<1)>>1]|0;W=b[V+(g-f<<1)>>1]|0;_=b[Z>>1]|0;ba=b[V+(g+f<<1)>>1]|0;T=b[V+(g+h<<1)>>1]|0;U=U+1|0;V=Z}d=d+(J<<1)|0}else d=d+(m<<1)|0;while(0);I=I+1|0}while((I|0)!=2);i=n;return}function Bc(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var 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;t=i;x=c[j+(m<<2)+100>>2]|0;r=a[2728+(x<<2)>>0]|0;q=a[2730+(x<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}s=(n|0)<(k|0);v=1<>0]|0)+o|0,h)|0;y=$((a[2731+(x<<2)>>0]|0)+o|0,h)|0;x=$(o,g)|0;z=$(o,h)|0;while(1){if(s){o=p+r|0;A=y+q|0;B=n;do{C=b[f+(B+z<<1)>>1]|0;D=b[f+(o+B<<1)>>1]|0;if((C&65535)>(D&65535))D=3;else D=((C<<16>>16!=D<<16>>16)<<31>>31)+2|0;E=b[f+(A+B<<1)>>1]|0;if((C&65535)>(E&65535))E=1;else E=(C<<16>>16!=E<<16>>16)<<31>>31;C=(b[j+(m*10|0)+(d[2720+(E+D)>>0]<<1)+112>>1]|0)+(C&65535)|0;if(C&u)C=0-C>>31&v;b[e+(B+x<<1)>>1]=C;B=B+1|0}while((B|0)!=(k|0))}w=w+1|0;if((w|0)==(l|0))break;else{p=p+h|0;y=y+h|0;x=x+g|0;z=z+h|0}}i=t;return}function Cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function Dc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;j=h+204|0;k=td(13196)|0;c[e>>2]=k;if(!k){u=-12;i=f;return u|0}k=c[k+4>>2]|0;m=td(468)|0;if(!m){u=-12;i=f;return u|0}l=c[m+4>>2]|0;c[l+4>>2]=1;o=l+8|0;c[o>>2]=1;a[l>>0]=0;c[l+348>>2]=1;q=l+352|0;n=l+380|0;r=l+408|0;p=0;do{c[q+(p<<2)>>2]=1;c[n+(p<<2)>>2]=0;c[r+(p<<2)>>2]=-1;p=p+1|0}while((p|0)<(c[o>>2]|0));c[l+436>>2]=0;c[l+440>>2]=1;a[l+444>>0]=0;p=b+208|0;vd(p);c[p>>2]=m;c[k>>2]=0;p=k+72|0;c[p>>2]=1;u=_c(j,8)|0;q=k+4|0;c[q>>2]=u;do if((u|0)<=3){a[k+8>>0]=0;o=k+13120|0;c[o>>2]=cd(j,32)|0;m=cd(j,32)|0;n=k+13124|0;c[n>>2]=m;m=Qc(c[o>>2]|0,m,0,c[b+4>>2]|0)|0;if((m|0)>=0){l=k+52|0;c[l>>2]=(_c(j,8)|0)+8;q=c[q>>2]|0;if((q|0)==1){c[k+60>>2]=54;q=54}else if((q|0)==2){c[k+60>>2]=56;q=56}else if(!q){c[k+60>>2]=32;q=32}else{c[k+60>>2]=58;q=58}c[k+56>>2]=1;q=Bd(q)|0;if(q){c[k+13180>>2]=0;c[k+13168>>2]=0;u=d[q+5>>0]|0;c[k+13172>>2]=u;c[k+13176>>2]=u;u=d[q+6>>0]|0;c[k+13184>>2]=u;c[k+13188>>2]=u;c[k+64>>2]=8;if((c[p>>2]|0)>0){q=k+76|0;r=0;do{c[q+(r*12|0)>>2]=1;c[q+(r*12|0)+4>>2]=0;c[q+(r*12|0)+8>>2]=-1;r=r+1|0}while((r|0)<(c[p>>2]|0))}t=(dd(j)|0)+3|0;u=k+13064|0;c[u>>2]=t;t=1<>2]=s+(c[o>>2]|0)&t;c[n>>2]=s+(c[n>>2]|0)&t;t=k+13068|0;c[t>>2]=dd(j)|0;s=k+13072|0;c[s>>2]=(dd(j)|0)+2;p=dd(j)|0;q=c[s>>2]|0;r=k+13076|0;c[r>>2]=q+p;if(q>>>0<(c[u>>2]|0)>>>0){v=dd(j)|0;p=k+13092|0;c[p>>2]=v;q=k+13088|0;c[q>>2]=v;a[k+12940>>0]=1;a[k+12941>>0]=bd(j)|0;v=bd(j)|0;c[k+68>>2]=v;if(v){v=k+13044|0;a[v>>0]=(_c(j,4)|0)+1;a[k+13045>>0]=(_c(j,4)|0)+1;w=(dd(j)|0)+3|0;c[k+13048>>2]=w;c[k+13052>>2]=w+(dd(j)|0);if((d[v>>0]|0|0)>(c[l>>2]|0)){m=-1094995529;break}a[k+13056>>0]=bd(j)|0}c[k+2184>>2]=0;a[k+12942>>0]=0;a[k+13060>>0]=1;a[k+13061>>0]=bd(j)|0;c[k+160>>2]=0;c[k+164>>2]=1;if((bd(j)|0)!=0?(w=bd(j)|0,ad(j,7),(w|0)!=0):0){c[k+13096>>2]=bd(j)|0;c[k+13100>>2]=bd(j)|0;c[k+13104>>2]=bd(j)|0;c[k+13108>>2]=bd(j)|0;bd(j)|0;c[k+13112>>2]=bd(j)|0;bd(j)|0;c[k+13116>>2]=bd(j)|0;bd(j)|0}j=c[o>>2]|0;c[k+12>>2]=j;o=c[n>>2]|0;c[k+16>>2]=o;u=c[u>>2]|0;w=(c[t>>2]|0)+u|0;c[k+13080>>2]=w;t=u+ -1|0;c[k+13084>>2]=t;n=1<>w;c[k+13128>>2]=v;n=o+ -1+n>>w;c[k+13132>>2]=n;c[k+13136>>2]=$(n,v)|0;c[k+13140>>2]=j>>u;c[k+13144>>2]=o>>u;v=c[s>>2]|0;c[k+13148>>2]=j>>v;c[k+13152>>2]=o>>v;c[k+13156>>2]=j>>t;c[k+13160>>2]=o>>t;v=w-v|0;c[k+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;u=(1<>>0>6):0)?(c[q>>2]|0)>>>0<=v>>>0:0)?(c[p>>2]|0)>>>0<=v>>>0:0)?(c[r>>2]|0)>>>0<=(w>>>0>5?5:w)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){h=b+272|0;j=c[h>>2]|0;if((j|0)!=0?(w=c[e>>2]|0,(Yd(c[j+4>>2]|0,c[w+4>>2]|0,c[w+8>>2]|0)|0)==0):0){vd(e);w=0;i=f;return w|0}else j=0;do{k=b+(j<<2)+400|0;l=c[k>>2]|0;do if(l){if(c[c[l+4>>2]>>2]|0)break;vd(k)}while(0);j=j+1|0}while((j|0)!=256);j=c[h>>2]|0;do if((j|0)!=0?(g=b+200|0,(c[g>>2]|0)==(c[j+4>>2]|0)):0){v=b+1424|0;vd(v);w=ud(c[h>>2]|0)|0;c[v>>2]=w;if(w)break;c[g>>2]=0}while(0);vd(h);c[h>>2]=c[e>>2];w=0;i=f;return w|0}}else m=-1094995529}else m=-22}}else m=-1094995529;while(0);vd(e);w=m;i=f;return w|0}function Ec(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=md(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=qd(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){jd(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=dd(n)|0;a:do if((h>>>0<=255?(k=dd(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(bd(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=_c(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=ed(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=dd(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=ed(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=ed(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(dd(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(dd(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=od(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(bd(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(dd(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=ae(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(dd(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=ae(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(bd(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(bd(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(ed(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(ed(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(bd(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((bd(v)|0)&255)<<24>>24)){y=dd(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;fe(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(ed(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(ed(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(bd(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(dd(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((bd(n)|0)!=0?(I=bd(n)|0,_c(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(dd(p)|0)+2;a[n+1630>>0]=bd(p)|0;I=(bd(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=dd(p)|0;I=dd(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=ed(p)|0;a[n+l+1639>>0]=ed(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=dd(p)|0;a[n+1645>>0]=dd(p)|0}while(0);l=od((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=od((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=od(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=od(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=od(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=od($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=od(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;vd(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);vd(e);I=b;i=f;return I|0}function Fc(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;jd(b+1648|0);jd(b+1652|0);jd(b+1656|0);jd(b+1660|0);jd(b+1664|0);jd(b+1668|0);jd(b+1672|0);jd(b+1680|0);jd(b+1676|0);jd(b+1688|0);jd(d);i=a;return}function Gc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+2512|0;f=a+4524|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=_c(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=_c(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==257){b[f>>1]=_c(h,16)|0;break}else if((j|0)==256){Hc(a);break}else{ad(h,k<<3);break}else if((j|0)==132){Hc(a);break}else{ad(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if(($c(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Hc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(_c(e,8)|0)&255;f=b+4468|0;h=0;do{if((g|0)==1)ad(e,16);else if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+4420>>0]=_c(e,8)|0;j=j+1|0}while((j|0)!=16)}else if((g|0)==2)ad(e,32);h=h+1|0}while((h|0)!=3);i=d;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=md(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Ea[c[b+76>>2]&3](a)|0;if((a|0)>=0){h=0;i=d;return h|0}jd(e);c[f>>2]=0;h=a;i=d;return h|0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Ea[d&3](a)|0;c[a+796>>2]=0;jd(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Kc(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Ia[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ga[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Mc(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Bd(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=sd(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;ce(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=md(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Oc(a){a=a|0;var b=0,c=0;b=i;c=fd(976)|0;if(c){if((Nc(c,a)|0)<0){id(c);c=0}}else c=0;i=b;return c|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}yd(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ga[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){yd(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Rc(a,b){a=a|0;b=b|0;return 0}function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=xa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Sc(a,c[b>>2]|0,d)|0;i=e;return a|0}function Uc(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)yd(b);i=a;return}function Vc(a){a=a|0;return}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;return}function Xc(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Yc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Zc(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[718]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[2880+e>>0]=(g?8:0)-(d[4680+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[2880]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4224+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3392>>0]=j;a[h+3392>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4480+e>>0]|0)<<1;a[f+4032>>0]=j;a[f+4033>>0]=j|1;if(e){h=(d[4544+e>>0]|0)<<1;j=128-f|0;a[j+3903>>0]=h;a[j+3902>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+3903>>0]=1;a[e+3902>>0]=0;e=1;continue}}g=4160|0;f=4608|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[718]=1;i=b;return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function $c(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function ad(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function bd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function cd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(ee(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=cd(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4680+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}function ed(a){a=a|0;var b=0;b=i;a=dd(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function fd(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1168]|0;if((d+ -32|0)>>>0>=a>>>0){e=Vd(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=Vd(1)|0}else e=0;i=b;return e|0}function gd(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1168]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=Xd(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){Wd(a);d=0;i=e;return d|0}if(((c[1168]|0)+ -32|0)>>>0>>0)b=0;else b=Xd(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}Wd(a);d=0;i=e;return d|0}function id(a){a=a|0;var b=0;b=i;Wd(a);i=b;return}function jd(a){a=a|0;var b=0;b=i;Wd(c[a>>2]|0);c[a>>2]=0;i=b;return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1168]|0)+ -32|0)>>>0>=f>>>0):0)a=Xd(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ld(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=hd(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function md(a){a=a|0;var b=0,c=0;c=i;b=fd(a)|0;if(b)ce(b|0,0,a|0)|0;i=c;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;Wd(c[a>>2]|0);f=fd(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function od(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=fd($(b,a)|0)|0;else b=0;i=c;return b|0}function pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=fd(e)|0,(d|0)!=0):0)ce(d|0,0,e|0)|0;else d=0;i=c;return d|0}function qd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=md(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=md(12)|0;if(!j){jd(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function rd(a,b){a=a|0;b=b|0;a=i;id(b);i=a;return}function sd(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=fd(a)|0;c[d>>2]=e;if(e){a=qd(e,a,7,0,0)|0;if(!a){jd(d);a=0}}else a=0;i=b;return a|0}function td(a){a=a|0;var b=0,d=0;b=i;d=sd(a)|0;if(!d){d=0;i=b;return d|0}ce(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function ud(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=md(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function vd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;jd(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Ca[c[f+12>>2]&7](c[f+16>>2]|0,c[f>>2]|0);jd(d);i=b;return}function wd(){var a=0,b=0,d=0;a=i;b=md(400)|0;if(!b){b=0;i=a;return b|0}ce(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function xd(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){yd(d);jd(a)}i=b;return}function yd(a){a=a|0;var b=0,d=0;b=i;vd(a+304|0);vd(a+308|0);vd(a+312|0);vd(a+316|0);vd(a+320|0);vd(a+324|0);vd(a+328|0);vd(a+332|0);ce(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function zd(a,b){a=a|0;b=b|0;var d=0;d=i;fe(a|0,b|0,400)|0;ce(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)ta();else{e=f;g=0}while(1){if((e|0)!=0?(j=ud(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){yd(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[4936+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=4940+(e*24|0)|0;i=d;return f|0}function Cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Dd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Ed(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0;f=i;if(!(c[b+8>>2]|0)){t=-1;i=f;return t|0}g=b+68|0;if((a[g>>0]|0)!=0|e>>>0>1){t=-1;i=f;return t|0}a[b+76>>0]=(e|0)==1&1;l=b+77|0;a[l>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(t=b+16|0,p=c[t>>2]|0,j=b+84|0,c[j>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=fd(p<<1)|0,c[b+128>>2]=fd(c[t>>2]<<1)|0,c[b+196>>2]=fd((c[j>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){m=0;do{c[b+(m<<2)+132>>2]=fd(c[j>>2]<<1)|0;c[b+(m<<2)+164>>2]=fd(c[j>>2]<<1)|0;m=m+1|0}while((m|0)!=8)}j=d[b+30>>0]|0;v=(a[l>>0]|0)!=0?16:8;l=b+36|0;t=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=j+ -8|0;r=o/+(224<>2]=sa(+(r*y*2.0))|0;w=1.0-u;x=w-s;c[b+224>>2]=sa(+(r*(u*2.0*w/x)))|0;c[b+228>>2]=sa(+(r*(s*2.0*y/x)))|0;c[b+232>>2]=sa(+(r*w*2.0))|0}k=sa(+q)|0;c[b+208>>2]=k;c[b+200>>2]=p;t=1<>2]=t;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[p>>2]|0)}else{c[b+212>>2]=k;c[b+216>>2]=t}c[b+240>>2]=j;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=7;else c[b+248>>2]=c[6064+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e;c[b+92>>2]=Cd(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=Cd(b,b+112|0,1)|0;c[b+100>>2]=Cd(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=Cd(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Fd(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Gd(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=i;j=f+80|0;n=c[j>>2]|0;if(n>>>0>=(c[f+20>>2]|0)>>>0){w=-1;i=k;return w|0}h=c[f+16>>2]|0;o=(c[f+92>>2]|0)+($(c[f+108>>2]|0,n)|0)|0;l=f+76|0;if(!(a[l>>0]|0))m=(a[f+78>>0]|0)!=0?4:3;else m=4;p=c[f+24>>2]|0;if(!p)za[c[f+248>>2]&7](f+200|0,g,o,0,0,h,m);else if((p|0)==1){if(!n){v=f+96|0;p=f+112|0;q=f+100|0;r=f+116|0;s=f+84|0;t=f+88|0;u=0;do{w=(u|0)>4?u+ -8|0:u;if((w|0)<0)w=0;else{x=c[t>>2]|0;w=(w|0)<(x|0)?w:x+ -1|0}y=(c[v>>2]|0)+($(c[p>>2]|0,w)|0)|0;x=(c[q>>2]|0)+($(c[r>>2]|0,w)|0)|0;fe(c[f+(u<<2)+132>>2]|0,y|0,c[s>>2]<<1|0)|0;fe(c[f+(u<<2)+164>>2]|0,x|0,c[s>>2]<<1|0)|0;u=u+1|0}while((u|0)!=8)}p=n>>1;q=(p|0)%8|0;y=n&1;s=f+124|0;v=f+196|0;w=f+30|0;x=f+28|0;Hd(c[s>>2]|0,f+132|0,h,q,c[v>>2]|0,d[w>>0]|0,y,d[x>>0]|0);r=f+128|0;Hd(c[r>>2]|0,f+164|0,h,q,c[v>>2]|0,d[w>>0]|0,y,d[x>>0]|0);if(y){w=(q+5|0)%8|0;v=p+5|0;x=c[f+88>>2]|0;x=(v|0)<(x|0)?v:x+ -1|0;v=(c[f+96>>2]|0)+($(x,c[f+112>>2]|0)|0)|0;x=(c[f+100>>2]|0)+($(c[f+116>>2]|0,x)|0)|0;y=f+84|0;fe(c[f+(w<<2)+132>>2]|0,v|0,c[y>>2]<<1|0)|0;fe(c[f+(w<<2)+164>>2]|0,x|0,c[y>>2]<<1|0)|0}za[c[f+248>>2]&7](f+200|0,g,o,c[s>>2]|0,c[r>>2]|0,h,m)}else if((p|0)==3){x=(c[f+96>>2]|0)+($(c[f+112>>2]|0,n)|0)|0;y=(c[f+100>>2]|0)+($(c[f+116>>2]|0,n)|0)|0;za[c[f+248>>2]&7](f+200|0,g,o,x,y,h,m)}else if((p|0)==2){y=(c[f+96>>2]|0)+($(c[f+112>>2]|0,n)|0)|0;t=(c[f+100>>2]|0)+($(c[f+116>>2]|0,n)|0)|0;x=f+124|0;u=f+30|0;v=f+28|0;w=f+196|0;Id(c[x>>2]|0,y,h,d[u>>0]|0,d[v>>0]|0,c[w>>2]|0);y=f+128|0;Id(c[y>>2]|0,t,h,d[u>>0]|0,d[v>>0]|0,c[w>>2]|0);za[c[f+248>>2]&7](f+200|0,g,o,c[x>>2]|0,c[y>>2]|0,h,m)}else{y=-1;i=k;return y|0}a:do if(!(a[f+31>>0]|0)){if(a[l>>0]|0){if(!(a[f+29>>0]|0)){if((h|0)<=0)break;f=g+3|0;g=0;while(1){a[f>>0]=-1;g=g+1|0;if((g|0)==(h|0))break a;else f=f+4|0}}l=(c[f+104>>2]|0)+($(c[f+120>>2]|0,n)|0)|0;p=g+3|0;if((c[f+240>>2]|0)==8){if((h|0)>0){m=0;while(1){a[p>>0]=b[l+(m<<1)>>1];m=m+1|0;if((m|0)==(h|0))break;else p=p+4|0}}}else{m=c[f+208>>2]|0;n=c[f+204>>2]|0;o=c[f+200>>2]|0;if((h|0)>0){q=0;while(1){a[p>>0]=($(e[l+(q<<1)>>1]|0,m)|0)+n>>o;q=q+1|0;if((q|0)==(h|0))break;else p=p+4|0}}}if(a[f+33>>0]|0){if(!(c[1258]|0)){c[1258]=1;f=1;do{c[5040+(f<<2)>>2]=(((f|0)/2|0)+16711808|0)/(f|0)|0;f=f+1|0}while((f|0)!=256)}if((h|0)>0){f=0;while(1){l=a[g+3>>0]|0;if(!(l<<24>>24)){a[g>>0]=-1;a[g+1>>0]=-1;a[g+2>>0]=-1}else{m=c[5040+((l&255)<<2)>>2]|0;n=a[g>>0]|0;if((n&255)<(l&255))n=(($(n&255,m)|0)+32768|0)>>>16&255;else n=-1;a[g>>0]=n;n=g+1|0;o=a[n>>0]|0;if((o&255)<(l&255))o=(($(o&255,m)|0)+32768|0)>>>16&255;else o=-1;a[n>>0]=o;n=g+2|0;o=a[n>>0]|0;if((o&255)<(l&255))l=(($(o&255,m)|0)+32768|0)>>>16&255;else l=-1;a[n>>0]=l}f=f+1|0;if((f|0)==(h|0))break;else g=g+4|0}}}}}else{n=(c[f+104>>2]|0)+($(c[f+120>>2]|0,n)|0)|0;q=c[f+240>>2]|0;p=1<0;if(r){o=g;f=0;while(1){x=e[n+(f<<1)>>1]|0;a[o>>0]=($(d[o>>0]|0,x)|0)+p>>q;y=o+1|0;a[y>>0]=($(d[y>>0]|0,x)|0)+p>>q;y=o+2|0;a[y>>0]=($(d[y>>0]|0,x)|0)+p>>q;f=f+1|0;if((f|0)==(h|0))break;else o=o+m|0}}if(!((a[l>>0]|0)==0|r^1)){g=g+3|0;f=0;while(1){a[g>>0]=-1;f=f+1|0;if((f|0)==(h|0))break;else g=g+4|0}}}while(0);c[j>>2]=(c[j>>2]|0)+1;y=0;i=k;return y|0}function Hd(a,d,f,g,h,j,k,l){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;m=i;o=c[d+((g+5&7)<<2)>>2]|0;s=c[d+((g+6&7)<<2)>>2]|0;p=c[d+((g+7&7)<<2)>>2]|0;r=c[d+((g&7)<<2)>>2]|0;q=c[d+((g+1&7)<<2)>>2]|0;n=c[d+((g+2&7)<<2)>>2]|0;d=c[d+((g+3&7)<<2)>>2]|0;t=j+ -8|0;u=1<>1;g=(f+1|0)/2|0;v=(f|0)>0;if(!k){if(v){k=0;do{x=$(e[s+(k<<1)>>1]|0,-6)|0;y=$(e[q+(k<<1)>>1]|0,-10)|0;b[h+(k+3<<1)>>1]=(e[o+(k<<1)>>1]<<1)+u+x+((e[p+(k<<1)>>1]|0)*18|0)+((e[r+(k<<1)>>1]|0)*57|0)+y+(e[n+(k<<1)>>1]<<2)-(e[d+(k<<1)>>1]|0)>>t;k=k+1|0}while((k|0)<(g|0))}}else if(v){k=0;do{x=$(e[p+(k<<1)>>1]|0,-10)|0;y=$(e[n+(k<<1)>>1]|0,-6)|0;b[h+(k+3<<1)>>1]=u-(e[o+(k<<1)>>1]|0)+(e[s+(k<<1)>>1]<<2)+x+((e[r+(k<<1)>>1]|0)*57|0)+((e[q+(k<<1)>>1]|0)*18|0)+y+(e[d+(k<<1)>>1]<<1)>>t;k=k+1|0}while((k|0)<(g|0))}n=h+6|0;y=b[n>>1]|0;b[h>>1]=y;p=h+2|0;b[p>>1]=y;o=h+4|0;b[o>>1]=y;y=b[h+(g+2<<1)>>1]|0;b[h+(g+3<<1)>>1]=y;b[h+(g+4<<1)>>1]=y;b[h+(g+5<<1)>>1]=y;b[h+(g+6<<1)>>1]=y;g=(1<>1;s=20-j|0;r=1<1){q=f+ -2|0;j=q>>>1;p=j<<1;d=a;while(1){t=(b[n>>1]|0)+l>>o;if((t|0)<0)t=0;else t=((t|0)>(g|0)?g:t)&65535;b[d>>1]=t;y=$((b[n+4>>1]|0)+(b[n+ -2>>1]|0)|0,-11)|0;t=n;n=n+2|0;t=r-(b[t+ -6>>1]|0)-(b[t+8>>1]|0)+((b[t+6>>1]|0)+(b[t+ -4>>1]|0)<<2)+y+(((b[n>>1]|0)+(b[t>>1]|0)|0)*40|0)>>s;if((t|0)<0)t=0;else t=((t|0)>(g|0)?g:t)&65535;b[d+2>>1]=t;f=f+ -2|0;if((f|0)<=1)break;else d=d+4|0}a=a+(p+2<<1)|0;f=q-p|0;n=h+(j+4<<1)|0}if(!f){i=m;return}h=(b[n>>1]|0)+l>>o;if((h|0)<0)h=0;else h=((h|0)>(g|0)?g:h)&65535;b[a>>1]=h;i=m;return}else{j=20-j|0;l=1<>1]|0;u=b[p>>1]|0;t=b[o>>1]|0;d=b[n>>1]|0;r=b[h+8>>1]|0;s=b[h+10>>1]|0;if((f|0)>1){q=f+ -2|0;o=q>>>1;p=o<<1;w=a;while(1){v=b[n+6>>1]|0;x=d*57|0;y=(s<<2)+l+($(r,-10)|0)+x+(t*18|0)+($(u,-6)|0)+(k<<1)-v>>j;if((y|0)<0)y=0;else y=((y|0)>(g|0)?g:y)&65535;b[w>>1]=y;k=($(s,-6)|0)+l+(r*18|0)+x+($(t,-10)|0)-k+(u<<2)+(v<<1)>>j;if((k|0)<0)k=0;else k=((k|0)>(g|0)?g:k)&65535;b[w+2>>1]=k;f=f+ -2|0;if((f|0)<=1)break;else{A=s;z=r;x=d;y=t;k=u;s=v;w=w+4|0;n=n+2|0;r=A;d=z;t=x;u=y}}k=u;u=t;t=d;d=r;r=s;s=v;a=a+(p+2<<1)|0;f=q-p|0;n=h+(o+4<<1)|0}if(!f){i=m;return}h=(s<<2)+l+($(r,-10)|0)+(d*57|0)+(t*18|0)+($(u,-6)|0)+(k<<1)-(b[n+6>>1]|0)>>j;if((h|0)<0)h=0;else h=((h|0)>(g|0)?g:h)&65535;b[a>>1]=h;i=m;return}}function Id(a,c,d,f,g,h){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(d+1|0)/2|0;k=h+6|0;fe(k|0,c|0,v<<1|0)|0;u=b[c>>1]|0;b[h>>1]=u;m=h+2|0;b[m>>1]=u;l=h+4|0;b[l>>1]=u;c=b[c+(v+ -1<<1)>>1]|0;b[h+(v+3<<1)>>1]=c;b[h+(v+4<<1)>>1]=c;b[h+(v+5<<1)>>1]=c;b[h+(v+6<<1)>>1]=c;c=(1<1){g=d+ -2|0;l=g>>>1;m=l<<1;f=a;while(1){b[f>>1]=b[k>>1]|0;v=$((e[k+4>>1]|0)+(e[k+ -2>>1]|0)|0,-11)|0;n=k;k=k+2|0;n=32-(e[n+ -6>>1]|0)-(e[n+8>>1]|0)+((e[n+6>>1]|0)+(e[n+ -4>>1]|0)<<2)+v+(((e[k>>1]|0)+(e[n>>1]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&65535;b[f+2>>1]=n;d=d+ -2|0;if((d|0)<=1)break;else f=f+4|0}a=a+(m+2<<1)|0;d=g-m|0;k=h+(l+4<<1)|0}if(!d){i=j;return}b[a>>1]=b[k>>1]|0;i=j;return}r=e[h>>1]|0;f=e[m>>1]|0;q=e[l>>1]|0;p=e[k>>1]|0;o=e[h+8>>1]|0;n=e[h+10>>1]|0;if((d|0)>1){m=d+ -2|0;l=m>>>1;g=l<<1;t=a;while(1){s=e[k+6>>1]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(q*18|0)+($(f,-6)|0)+(r<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&65535;b[t>>1]=v;r=($(n,-6)|0)+32+(o*18|0)+u+($(q,-10)|0)-r+(f<<2)+(s<<1)>>6;if((r|0)<0)r=0;else r=((r|0)>(c|0)?c:r)&65535;b[t+2>>1]=r;d=d+ -2|0;if((d|0)<=1)break;else{x=n;w=o;u=p;v=q;r=f;n=s;t=t+4|0;k=k+2|0;o=x;p=w;q=u;f=v}}r=f;f=q;q=p;p=o;o=n;n=s;a=a+(g+2<<1)|0;d=m-g|0;k=h+(l+4<<1)|0}if(!d){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(q*18|0)+($(f,-6)|0)+(r<<1)-(e[k+6>>1]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&65535;b[a>>1]=h;i=j;return}function Jd(){var a=0,b=0;a=i;b=md(252)|0;if(!b)b=0;i=a;return b|0}function Kd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=i;i=i+80|0;n=k+72|0;l=k+60|0;h=k+48|0;u=k+44|0;x=k+40|0;t=k+36|0;p=k;y=a[e+40>>0]|0;a:do if(((((((g|0)>=6?(a[f>>0]|0)==66:0)?(a[f+1>>0]|0)==80:0)?(a[f+2>>0]|0)==71:0)?(a[f+3>>0]|0)==-5:0)?(R=a[f+4>>0]|0,N=R&255,J=N>>>5,c[p+8>>2]=J,(R&255)<=191):0)?(R=(N&15)+8|0,a[p+13>>0]=R,(R&255)>>>0<=14):0){L=a[f+5>>0]|0;v=L&255;M=v>>>4;c[p+24>>2]=M;A=v&8;R=v>>>2&1;a[p+16>>0]=v>>>1&1;r=p+17|0;a[r>>0]=v&1;v=p+18|0;b[v>>1]=0;s=p+20|0;b[s>>1]=0;w=p+22|0;b[w>>1]=0;O=p+12|0;a[O>>0]=0;Q=p+14|0;a[Q>>0]=0;P=p+15|0;a[P>>0]=0;if(!(N&16))if(!R)N=0;else{a[O>>0]=1;a[Q>>0]=1;N=1}else{a[O>>0]=1;a[P>>0]=R;N=0}if((((((((((L&255)<=79?(J|0)!=0|(M|0)==0:0)?!(N<<24>>24!=0&(J|0)==0):0)?(F=Qd(p,f+6|0,g+ -6|0)|0,(F|0)>=0):0)?(C=(c[p>>2]|0)>>>0>1073741823?-1:F,(C|0)>=0):0)?(E=C+6|0,z=p+4|0,I=Qd(z,f+E|0,g-E|0)|0,(I|0)>=0):0)?(H=c[z>>2]|0,D=H>>>0>1073741823?-1:I,(D|0)>=0):0)?(G=D+E|0,!((c[p>>2]|0)==0|(H|0)==0)):0)?(q=p+28|0,K=Qd(q,f+G|0,g-G|0)|0,(K|0)>=0):0)?(B=(c[q>>2]|0)>>>0>1073741823?-1:K,(B|0)>=0):0){z=B+G|0;c[n>>2]=0;do if(!A){c[p+32>>2]=0;m=48}else{A=Qd(n,f+z|0,g-z|0)|0;if((A|0)<0){z=-1;break a}B=c[n>>2]|0;A=B>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}C=A+z|0;A=p+32|0;c[A>>2]=0;z=C+B|0;if((z|0)>(g|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[r>>0]|0)==0:0)break;if((C|0)>=(z|0)){z=C;m=48;break}while(1){B=Qd(l,f+C|0,z-C|0)|0;if((B|0)<0){z=-1;break a}C=B+C|0;D=Qd(h,f+C|0,z-C|0)|0;if((D|0)<0){z=-1;break a}B=c[h>>2]|0;D=B>>>0>1073741823?-1:D;if((D|0)<0){z=-1;break a}D=D+C|0;C=D+B|0;if(C>>>0>z>>>0){z=-1;break a}do if(a[r>>0]|0){if((c[l>>2]|0)!=5)break;F=Qd(u,f+D|0,z-D|0)|0;if((F|0)<0){z=-1;break a}E=c[u>>2]|0;F=E>>>0>1073741823?-1:F;if((F|0)<0){z=-1;break a}G=F+D|0;H=Qd(x,f+G|0,z-G|0)|0;if((H|0)<0){z=-1;break a}F=c[x>>2]|0;H=F>>>0>1073741823?-1:H;if((H|0)<0){z=-1;break a}R=H+G|0;if((Qd(t,f+R|0,z-R|0)|0)<0){z=-1;break a}G=c[t>>2]|0;if(!((F&65535|0)==(F|0)&((G>>>0>1073741823|(F|0)==0|(G|0)==0)^1))){z=-1;break a}if((G&65535|0)!=(G|0)){z=-1;break a}if((E&65535|0)!=(E|0)){z=-1;break a}b[v>>1]=E;b[s>>1]=F;b[w>>1]=G}while(0);if(y){P=fd(16)|0;c[P>>2]=c[l>>2];Q=P+4|0;c[Q>>2]=B;R=P+12|0;c[R>>2]=0;c[A>>2]=P;A=fd(B)|0;c[P+8>>2]=A;fe(A|0,f+D|0,c[Q>>2]|0)|0;A=R}if((C|0)>=(z|0)){z=C;m=48;break}}}while(0);do if((m|0)==48){if(!(a[r>>0]|0))break;if(!(b[s>>1]|0)){z=-1;break a}}while(0);if(c[q>>2]|0)break;c[q>>2]=g-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=k;return R|0}u=c[p>>2]|0;v=c[p+4>>2]|0;B=c[p+12>>2]|0;y=B&255;A=c[p+24>>2]|0;w=(B&65535)>>>8;t=w&255;w=w&65535;q=e+16|0;c[q>>2]=u;r=e+20|0;c[r>>2]=v;x=c[p+8>>2]|0;C=e+24|0;c[C>>2]=x;s=B>>>24&255;B=B>>>16&255;if((x|0)==5){c[C>>2]=2;a[e+28>>0]=0;x=2}else if((x|0)==4){c[C>>2]=1;a[e+28>>0]=0;x=1}else{c[C>>2]=x;a[e+28>>0]=1}a[e+29>>0]=y;a[e+33>>0]=s;a[e+31>>0]=B;s=c[p+16>>2]|0;a[e+32>>0]=s;c[e+36>>2]=A;a[e+30>>0]=t;a[e+34>>0]=(s&65535)>>>8;b[e+48>>1]=s>>>16;s=c[p+20>>2]|0;b[e+50>>1]=s;b[e+52>>1]=s>>>16;s=e+44|0;c[s>>2]=c[p+32>>2];do if(((c[p+28>>2]|0)+z|0)>>>0<=g>>>0){A=f+z|0;g=g-z|0;c[l>>2]=0;c[l+4>>2]=0;p=l+8|0;c[p>>2]=0;c[h>>2]=0;c[h+4>>2]=0;t=h+8|0;c[t>>2]=0;if(!(y<<24>>24)){z=A;y=g}else{y=Nd(l,e+12|0,e+4|0,A,g,u,v,0,w)|0;if((y|0)<0)break;z=f+(y+z)|0;y=g-y|0}f=e+8|0;A=Nd(h,f,e,z,y,u,v,x,w)|0;if((A|0)>=0){u=y-A|0;v=e+4|0;y=c[v>>2]|0;w=(y|0)!=0;c[n>>2]=0;x=n+4|0;c[x>>2]=0;b:do if((u|0)>0){y=n+((w&1)<<2)|0;D=0;H=0;z=z+A|0;A=u;G=1;c:while(1){B=(G|0)!=0;if((A|0)<((B?5:2)|0)){n=-1;break b}if(B)F=0;else F=(a[z+2>>0]|0)==0?4:3;if((A|0)<(F+3|0)){n=-1;break b}C=z+F|0;B=d[C>>0]|0;E=B<<5&32|(d[z+(F+1)>>0]|0)>>>3;B=B>>>1&63;do if((B+ -32|0)>>>0<4|(B|0)==39|B>>>0>40)if(D)if(!(c[y>>2]|0))B=H;else break c;else{B=H;D=0}else if((B>>>0<10|(B+ -16|0)>>>0<6?(o=F+2|0,(o|0)<(A|0)):0)?(a[z+o>>0]|0)<0:0){if((H|0)!=0?(c[y>>2]|0)!=0:0)break c;if(w&(E|0)==1){c[x>>2]=1;B=H;D=H;break}else{c[n>>2]=1;B=1;D=1;break}}else B=H;while(0);do if((G|0)!=1){if(((((A|0)>3?(a[z>>0]|0)==0:0)?(a[z+1>>0]|0)==0:0)?(a[z+2>>0]|0)==0:0)?(a[z+3>>0]|0)==1:0){G=4;break}if((A|0)<=2){n=-1;break b}if(a[z>>0]|0){n=-1;break b}if(a[z+1>>0]|0){n=-1;break b}if((a[z+2>>0]|0)==1)G=3;else{n=-1;break b}}else G=0;while(0);H=G+2|0;if((H|0)>(A|0)){n=-1;break b}d:do if((H|0)<(A|0))while(1){K=(a[z+G>>0]|0)==0;do if(K){if(a[z+(G+1)>>0]|0)break;if((a[z+H>>0]|0)==1)break d}while(0);J=H;H=G+3|0;if((H|0)>=(A|0)){G=A;break d}I=G+1|0;if(!K){G=I;continue}if(a[z+I>>0]|0){G=I;continue}if(a[z+J>>0]|0){G=I;continue}J=(a[z+H>>0]|0)==1;if(J){G=J?G:A;break}else G=I}else G=A;while(0);if((G|0)<0){n=-1;break b}H=G-F|0;F=H+3|0;E=w&(E|0)==1;J=E?l:h;I=J+8|0;if((Od(J,(c[I>>2]|0)+F|0)|0)<0){n=-1;break b}K=c[J>>2]|0;J=c[I>>2]|0;a[K+J>>0]=0;a[K+(J+1)>>0]=0;a[K+(J+2)>>0]=1;fe(K+(J+3)|0,C|0,H|0)|0;if(E){R=K+(J+4)|0;a[R>>0]=d[R>>0]&7}c[I>>2]=J+F;A=A-G|0;if((A|0)>0){H=B;z=z+G|0;G=0}else break}y=c[v>>2]|0;m=105}else{A=u;m=105}while(0);do if((m|0)==105){if(y){if((Od(l,(c[p>>2]|0)+32|0)|0)<0){n=-1;break}if((Pd(c[v>>2]|0,c[e+12>>2]|0,c[l>>2]|0,c[p>>2]|0)|0)<0){n=-1;break}}if((Od(h,(c[t>>2]|0)+32|0)|0)<0)n=-1;else{n=(Pd(c[e>>2]|0,c[f>>2]|0,c[h>>2]|0,c[t>>2]|0)|0)<0;n=n?-1:u-A|0}}while(0);id(c[l>>2]|0);id(c[h>>2]|0);if((((n|0)>=0?(g-u+n|0)>=0:0)?(Ld(e),j=c[f>>2]|0,(c[j+64>>2]|0)>=(c[q>>2]|0)):0)?(c[j+68>>2]|0)>=(c[r>>2]|0):0){c[e+80>>2]=-1;R=0;i=k;return R|0}}}while(0);xd(e+8|0);xd(e+12|0);c[s>>2]=0;R=-1;i=k;return R|0}function Ld(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Jc(e)|0;id(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Jc(d)|0;id(c[a>>2]|0);c[a>>2]=0;i=b;return}function Md(a){a=a|0;var b=0,d=0;b=i;id(c[a+124>>2]|0);id(c[a+128>>2]|0);d=0;do{id(c[a+(d<<2)+132>>2]|0);id(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);id(c[a+196>>2]|0);id(c[a+56>>2]|0);Ld(a);xd(a+8|0);xd(a+12|0);id(a);i=b;return}function Nd(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=Qd(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=fd(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;fe(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=fd(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}id(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Od(b,(c[g>>2]|0)+f|0)|0)<0){id(k);t=-1;i=n;return t|0}fe((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;id(k);b=Oc(1416)|0;if(!b){t=-1;i=n;return t|0}g=wd()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ic(b,1416,0)|0)<0){xd(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=gd(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Pd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Xc(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Pc(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function Qd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Rd(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;j=i;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((k|0)>0)h=0;else{i=j;return}while(1){o=b[g+(h<<1)>>1]&255;a[f>>0]=o;a[f+1>>0]=o;a[f+2>>0]=o;h=h+1|0;if((h|0)==(k|0))break;else f=f+l|0}i=j;return}m=c[d+12>>2]|0;h=c[d+16>>2]|0;d=c[d>>2]|0;if((k|0)>0)n=0;else{i=j;return}while(1){o=($(e[g+(n<<1)>>1]|0,m)|0)+h>>d;if((o|0)<0)o=0;else o=(o|0)>255?-1:o&255;a[f>>0]=o;a[f+1>>0]=o;a[f+2>>0]=o;n=n+1|0;if((n|0)==(k|0))break;else f=f+l|0}i=j;return}function Sd(b,d,f,g,h,j,k){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(e[f+(t<<1)>>1]|0,p)|0;u=(e[g+(t<<1)>>1]|0)-b|0;w=(e[h+(t<<1)>>1]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[d>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[d+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[d+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else d=d+k|0}i=q;return}function Td(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;m=i;if((c[d+40>>2]|0)==8?(c[d+44>>2]|0)==0:0){if((k|0)>0)n=0;else{i=m;return}while(1){a[f>>0]=b[j+(n<<1)>>1];a[f+1>>0]=b[g+(n<<1)>>1];a[f+2>>0]=b[h+(n<<1)>>1];n=n+1|0;if((n|0)==(k|0))break;else f=f+l|0}i=m;return}o=c[d+12>>2]|0;n=c[d+16>>2]|0;d=c[d>>2]|0;if((k|0)>0)p=0;else{i=m;return}while(1){q=($(e[j+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f>>0]=q;q=($(e[g+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f+1>>0]=q;q=($(e[h+(p<<1)>>1]|0,o)|0)+n>>d;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[f+2>>0]=q;p=p+1|0;if((p|0)==(k|0))break;else f=f+l|0}i=m;return}function Ud(b,d,f,g,h,j,k){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=e[f+(p<<1)>>1]|0;s=(e[g+(p<<1)>>1]|0)-b|0;r=(e[h+(p<<1)>>1]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[d>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[d+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[d+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else d=d+k|0}i=o;return}function Vd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1523]|0)){e=ra(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;c[1523]=6088;c[1522]=6088;c[1527]=6104;c[1526]=6104;k=e+16|0;a[e+15>>0]=-86;j=c[1527]|0;c[1527]=k;c[k>>2]=6104;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1523]|0;c[1523]=j;c[j>>2]=6088;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1524]|0;g=c[1522]|0;k=6092|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6104)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ra(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function Wd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1523]|0;c[1523]=b;c[b>>2]=6088;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6104?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6104){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){Wd(a);e=0;break}e=Vd(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;fe(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;Wd(a)}}else e=Vd(b)|0;while(0);i=d;return e|0}function Yd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function Zd(){}function _d(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function be(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function ce(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function de(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function fe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ge(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function he(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function ie(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=je(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return xa[a&1](b|0,c|0,d|0)|0}function me(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;ya[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function ne(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;za[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function oe(a,b,c,d,e,f,g,h,i,j,k,l,m,n){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;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;Aa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0)}function pe(a,b){a=a|0;b=b|0;Ba[a&1](b|0)}function qe(a,b,c){a=a|0;b=b|0;c=c|0;Ca[a&7](b|0,c|0)}function re(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Da[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function se(a,b){a=a|0;b=b|0;return Ea[a&3](b|0)|0}function te(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Fa[a&7](b|0,c|0,d|0)}function ue(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ga[a&1](b|0,c|0,d|0,e|0)|0}function ve(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ha[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function we(a,b,c){a=a|0;b=b|0;c=c|0;return Ia[a&1](b|0,c|0)|0}function xe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ja[a&1](b|0,c|0,d|0,e|0,f|0)|0}function ye(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Ka[a&7](b|0,c|0,d|0,e|0)}function ze(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Ae(a,b,c,d,e,f,g,h,i,j){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;j=j|0;aa(1)}function Be(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(2)}function Ce(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;aa(3)}function De(a){a=a|0;aa(4)}function Ee(a,b){a=a|0;b=b|0;aa(5)}function Fe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(6);return 0}function Ge(a){a=a|0;aa(7);return 0}function He(a,b,c){a=a|0;b=b|0;c=c|0;aa(8)}function Ie(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(9);return 0}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function Ke(a,b){a=a|0;b=b|0;aa(11);return 0}function Le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(12);return 0}function Me(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(13)} diff --git a/html/bpgdec8.js b/html/bpgdec8.js index dba9be2..94c7645 100644 --- a/html/bpgdec8.js +++ b/html/bpgdec8.js @@ -16,7 +16,7 @@ x&&(x=j[x+"ToC"],d+="var "+x.arguments+" = "+G+";",d+=x.body+";",d+=G+"="+x.retu function na(a,d,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":J[a>>0]=d;break;case "i8":J[a>>0]=d;break;case "i16":L[a>>1]=d;break;case "i32":M[a>>2]=d;break;case "i64":ha=[d>>>0,(I=d,1<=+oa(I)?0>>0:~~+ra((I-+(~~I>>>0))/4294967296)>>>0:0)];M[a>>2]=ha[0];M[a+4>>2]=ha[1];break;case "float":N[a>>2]=d;break;case "double":O[a>>3]=d;break;default:B("invalid type for setValue: "+c)}}l.setValue=na; l.getValue=function(a,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":return J[a>>0];case "i8":return J[a>>0];case "i16":return L[a>>1];case "i32":return M[a>>2];case "i64":return M[a>>2];case "float":return N[a>>2];case "double":return O[a>>3];default:B("invalid type for setValue: "+d)}return k};var sa=2,ta=4;l.ALLOC_NORMAL=0;l.ALLOC_STACK=1;l.ALLOC_STATIC=sa;l.ALLOC_DYNAMIC=3;l.ALLOC_NONE=ta; function P(a,d,c,e){var f,j;"number"===typeof a?(f=i,j=a):(f=!1,j=a.length);var g="string"===typeof d?d:k,c=c==ta?e:[va,z.d,z.Q,z.b][c===h?sa:c](Math.max(j,g?1:d.length));if(f){e=c;w(0==(c&3));for(a=c+(j&-4);e>2]=0;for(a=c+j;e>0]=0;return c}if("i8"===g)return a.subarray||a.slice?Q.set(a,c):Q.set(new Uint8Array(a),c),c;for(var e=0,m,p;eS?2*S:S+16777216;S!==E&&(l.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),E=S); +l.allocate=P;function wa(){var a=Error();if(!a.stack){try{b(Error(0))}catch(d){a=d}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}l.stackTrace=function(){return wa()};for(var J,Q,L,xa,M,ya,N,O,R=0,C=0,za=0,y=0,Aa=0,Ba=0,D=0,Ca=l.TOTAL_STACK||5242880,E=l.TOTAL_MEMORY||33554432,S=65536;SS?2*S:S+16777216;S!==E&&(l.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),E=S); w("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var T=new ArrayBuffer(E);J=new Int8Array(T);L=new Int16Array(T);M=new Int32Array(T);Q=new Uint8Array(T);xa=new Uint16Array(T);ya=new Uint32Array(T);N=new Float32Array(T);O=new Float64Array(T);M[0]=255;w(255===Q[0]&&0===Q[3],"Typed arrays 2 must be run on a little-endian system");l.HEAP=h;l.buffer=T;l.HEAP8=J; l.HEAP16=L;l.HEAP32=M;l.HEAPU8=Q;l.HEAPU16=xa;l.HEAPU32=ya;l.HEAPF32=N;l.HEAPF64=O;function U(a){for(;0>0]=a[c],c+=1}l.writeStringToMemory=ma;function la(a,d){for(var c=0;c>0]=a[c]}l.writeArrayToMemory=la; @@ -63,11 +63,11 @@ arguments)},_abort:function(){l.abort()},_emscripten_memcpy_big:function(a,d,c){ var $=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=+env.NaN,t=+env.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=env.abort;var ba=env.assert;var ca=env.min;var da=env.invoke_iiii;var ea=env.invoke_viiiii;var fa=env.invoke_vi;var ga=env.invoke_vii;var ha=env.invoke_iiiiiii;var ia=env.invoke_viiiiiiiiiiii;var ja=env.invoke_ii;var ka=env.invoke_viii;var la=env.invoke_viiiiiiiii;var ma=env.invoke_iiiii;var na=env.invoke_viiiiii;var oa=env.invoke_iii;var pa=env.invoke_iiiiii;var qa=env.invoke_viiiiiii;var ra=env._sbrk;var sa=env._lrint;var ta=env._abort;var ua=env._emscripten_memcpy_big;var va=env._rint;var wa=0.0; // EMSCRIPTEN_START_FUNCS -function La(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Ma(){return i|0}function Na(a){a=a|0;i=a}function Oa(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Pa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Qa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ra(a){a=a|0;D=a}function Sa(){return D|0}function Ta(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}fe(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function Ua(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Va(b);f=b+1449|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)Wa(b);if(a[b+1448>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){Wa(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}fe(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Xa(c[b+136>>2]|0);else Va(b);Wa(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;Ya((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Xa(c[d>>2]|0);else Va(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Wa(b);i=e;return}else{fe(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function Va(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;ad(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){ad(d,h);f=c[g>>2]|0}Yc((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function Wa(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+1440>>2]|0;e=2-f|0;e=(a[b+2060>>0]|0)==0|(f|0)==2?e:e^3;f=b+2112|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function Xa(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Yc(d,e,a);i=b;return}function Ya(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}yb(a);g=0;i=b;return g|0}function Za(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a)|0;i=b;return a|0}function _a(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[2880+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4032>>0]|0;e=h&1;h=c[j>>2]|0;g=d[2880+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[2880+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function $a(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function ab(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){yb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function bb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function db(a){a=a|0;var b=0;b=i;a=ab((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function eb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function fb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function gb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+5|0)|0;i=b;return a|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(_a(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(ab((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function jb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+176|0)|0;i=b;return a|0}function kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(_a(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function lb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+4336>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+4336>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}function mb(a,b){a=a|0;b=b|0;var d=0;d=i;b=c[a+136>>2]|0;b=(_a(b+224|0,b+13|0)|0)==0;i=d;return(b?3:0)|0}function nb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function ob(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+17|0)|0;i=b;return a|0}function pb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function qb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function rb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)<<1;d=ab((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function sb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function tb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function ub(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(_a(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function wb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function xb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,Ba=0,Ca=0,Da=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;n=i;i=i+96|0;v=n+24|0;s=n+8|0;t=n;u=f+136|0;o=c[u>>2]|0;p=c[f+160>>2]|0;m=c[p+(l<<2)+32>>2]|0;r=f+200|0;T=c[r>>2]|0;h=$(h>>c[T+(l<<2)+13180>>2],m)|0;h=(c[p+(l<<2)>>2]|0)+(h+(g>>c[T+(l<<2)+13168>>2]<>2]))|0;T=(l|0)!=0;g=o+320|0;p=T?o+11680|0:g;x=v+0|0;q=x+64|0;do{a[x>>0]=0;x=x+1|0}while((x|0)<(q|0));S=1<>2]|0;q=S<>0]|0)){A=a[o+272>>0]|0;C=f+204|0;Ma=c[C>>2]|0;if((a[Ma+21>>0]|0)!=0?(d[Ma+1629>>0]|0)>=(j|0):0){F=c[u>>2]|0;F=_a(F+224|0,F+(T&1|46)|0)|0}else F=0;if(y){B=c[r>>2]|0;G=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+2072>>2]|0)+(c[B+28>>2]|0)+(a[o+302>>0]|0)|0;else B=(c[f+2076>>2]|0)+(c[B+32>>2]|0)+(a[o+303>>0]|0)|0;B=B+A|0;G=c[r>>2]|0;A=c[G+13192>>2]|0;E=0-A|0;if((B|0)>=(E|0))E=(B|0)>57?57:B;do if((c[G+4>>2]|0)==1){if((E|0)>=30)if((E|0)>43){E=E+ -6|0;break}else{E=c[176+(E+ -30<<2)>>2]|0;break}}else E=(E|0)>51?51:E;while(0);B=A+E|0}A=(c[G+52>>2]|0)+j|0;E=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[G+634>>0]|0)!=0?!((F|0)!=0&(j|0)>2):0){H=c[C>>2]|0;G=(a[H+68>>0]|0)==0?G+635|0:H+69|0;H=((c[o+31244>>2]|0)!=1?3:0)+l|0;C=G+((j+ -2|0)*384|0)+(H<<6)|0;if((j|0)>3)ia=a[G+((j+ -4|0)*6|0)+H+1536>>0]|0;else ia=16}else{ia=16;C=0}}else{A=0;ia=0;B=0;C=0;E=0;F=0}I=(j<<1)+ -1|0;if(y){G=(j*3|0)+ -6+(j+ -1>>2)|0;J=j+1>>2}else{G=15;J=j+ -2|0}if((I|0)>0){L=G+52|0;H=0;while(1){Ma=c[u>>2]|0;K=H+1|0;if(!(_a(Ma+224|0,Ma+(L+(H>>J))|0)|0))break;if((K|0)<(I|0))H=K;else{H=K;break}}K=G+70|0;G=0;while(1){Ma=c[u>>2]|0;L=G+1|0;if(!(_a(Ma+224|0,Ma+(K+(G>>J))|0)|0))break;if((L|0)<(I|0))G=L;else{G=L;break}}if((H|0)>3){I=(H>>1)+ -1|0;K=ab((c[u>>2]|0)+224|0)|0;if((I|0)>1){J=1;do{K=ab((c[u>>2]|0)+224|0)|0|K<<1;J=J+1|0}while((J|0)!=(I|0))}H=K+((H&1|2)<3){J=(G>>1)+ -1|0;K=ab((c[u>>2]|0)+224|0)|0;if((J|0)>1){I=1;do{K=ab((c[u>>2]|0)+224|0)|0|K<<1;I=I+1|0}while((I|0)!=(J|0))}I=H;L=K+((G&1|2)<>2;N=L>>2;if((k|0)==1){G=I;H=L;P=d[536+(L<<3)+I>>0]|0;J=488;K=504;L=496;I=520;break}else if(k){J=I;K=L;w=49;break}P=d[(I&3)+(392+((L&3)<<2))>>0]|0;if((S|0)==8){G=I;H=L;P=(d[416+(N<<1)+M>>0]<<4)+P|0;J=496;K=8;L=488;I=24;break}else if((S|0)==16){G=I;H=L;P=(d[392+(N<<2)+M>>0]<<4)+P|0;J=8;K=8;L=24;I=24;break}else if((S|0)==4){G=I;H=L;J=408;K=8;L=408;I=24;break}else{G=I;H=L;P=(d[424+(N<<3)+M>>0]<<4)+P|0;J=40;K=8;L=104;I=24;break}}else{J=L;K=I;M=L>>2;N=I>>2;w=49}while(0);if((w|0)==49){G=J;H=K;P=d[536+(J<<3)+K>>0]|0;J=496;K=520;L=488;I=504}O=P+1|0;P=P>>4;if((P|0)>-1){Q=(1<0;l=R?90:88;S=S+ -1>>2;W=T?27:0;U=(j|0)==2;T=W+3|0;V=(j|0)==3;Z=(k|0)==0?9:15;_=y?0:27;da=(F|0)==0;aa=y?42:43;fa=y?40:41;ba=y?2:0;ea=o+31244|0;ca=x&-17;ga=f+204|0;Y=((B|0)<0)<<31>>31;X=((A|0)<0)<<31>>31;ha=(F|0)!=0&(j|0)>2;k=(j|0)<4;ia=ia&255;ma=(y&1)<<1;ja=ma|1;ra=1;ka=P;oa=0;xa=16;while(1){na=ka<<4;wa=a[J+ka>>0]|0;ta=wa&255;va=a[L+ka>>0]|0;ua=va&255;la=(ka|0)>0;if((ka|0)<(P|0)&la){if((ta|0)<(Q|0))pa=d[v+(ta+1<<3)+ua>>0]|0;else pa=0;if((ua|0)<(Q|0))pa=(d[ua+1+(v+(ta<<3))>>0]|0)+pa|0;ya=c[u>>2]|0;ya=(_a(ya+224|0,ya+(((pa|0)>1?1:pa)+l)|0)|0)&255;a[v+(ta<<3)+ua>>0]=ya;qa=1}else{if(!((ta|0)==(M|0)&(ua|0)==(N|0)))if(!(wa<<24>>24))ya=va<<24>>24==0&1;else ya=0;else ya=1;a[v+(ta<<3)+ua>>0]=ya;qa=0}na=O-na|0;pa=(ka|0)==(P|0);if(pa){a[s>>0]=na+255;sa=na+ -2|0;na=1}else{sa=15;na=0}if((ta|0)<(S|0))Ba=(a[v+(ta+1<<3)+ua>>0]|0)!=0&1;else Ba=0;if((ua|0)<(S|0))Ba=((a[ua+1+(v+(ta<<3))>>0]|0)!=0&1)<<1|Ba;do if(ya<<24>>24!=0&(sa|0)>-1){if(!(c[(c[r>>2]|0)+13100>>2]|0))if(U){wa=600;va=W}else w=73;else if(da){ya=(a[z>>0]|0)!=0;if(ya|U){wa=ya?664:600;va=ya?fa:W}else w=73}else{wa=664;va=fa}do if((w|0)==73){w=0;ya=(Ba<<4)+616|0;if(!y){wa=ya;va=W+(V?9:12)|0;break}va=(va|wa)<<24>>24==0?W:T;if(V){wa=ya;va=va+Z|0;break}else{wa=ya;va=va+21|0;break}}while(0);if((sa|0)>0){ya=va+92|0;do{Ma=c[u>>2]|0;if(_a(Ma+224|0,Ma+(ya+(d[wa+((d[I+sa>>0]<<2)+(d[K+sa>>0]|0))>>0]|0))|0)|0){a[s+(na&255)>>0]=sa;qa=0;na=na+1<<24>>24}sa=sa+ -1|0}while((sa|0)>0)}if(qa){a[s+(na&255)>>0]=0;qa=na+1<<24>>24;break}if(c[(c[r>>2]|0)+13100>>2]|0)if(da?(a[z>>0]|0)==0:0)w=87;else qa=aa;else w=87;if((w|0)==87){w=0;qa=(ka|0)==0?_:va+2|0}Ma=c[u>>2]|0;if((_a(Ma+224|0,Ma+(qa+92)|0)|0)==1){a[s+(na&255)>>0]=0;qa=na+1<<24>>24}else qa=na}else qa=na;while(0);na=qa&255;a:do if(qa<<24>>24){qa=la?ba:0;if(!(c[(c[r>>2]|0)+13116>>2]|0))Ga=0;else{if(da?(a[z>>0]|0)==0:0)oa=ma;else oa=ja;Ga=(d[o+oa+199>>0]|0)>>>2}sa=qa|(ra|0)==0&(pa^1)&1;Da=a[s>>0]|0;va=Da&255;qa=na>>>0>8?8:na;if(!qa){pa=-1;ra=1}else{ya=sa<<2;pa=-1;ra=1;wa=0;do{Ma=ra+ya|0;La=c[u>>2]|0;Ma=(_a(La+224|0,La+((R?Ma+16|0:Ma)+136)|0)|0)&255;a[t+wa>>0]=Ma;if(!(Ma<<24>>24))ra=((ra+ -1|0)>>>0<2&1)+ra|0;else{pa=(pa|0)==-1?wa:pa;ra=0}wa=wa+1|0}while((wa|0)<(qa|0))}wa=na+ -1|0;qa=a[s+wa>>0]|0;ya=qa&255;do if(!(a[z>>0]|0)){if((c[ea>>2]|0)==1?!((c[(c[r>>2]|0)+13104>>2]|0)==0|da|(ca|0)!=10):0){va=0;break}va=(va-ya|0)>3&1}else va=0;while(0);if((pa|0)!=-1){La=c[u>>2]|0;La=_a(La+224|0,La+((R?sa|4:sa)|160)|0)|0;Ma=t+pa|0;a[Ma>>0]=(d[Ma>>0]|0)+La}sa=(va|0)==0;if((a[(c[ga>>2]|0)+4>>0]|0)==0|sa){wa=0;va=0;do{va=ab((c[u>>2]|0)+224|0)|0|va<<1;wa=wa+1|0}while((wa|0)<(na|0));Ba=va<<16-na}else{va=wa&255;if(!((wa&255)<<24>>24))ya=0;else{wa=0;ya=0;do{ya=ab((c[u>>2]|0)+224|0)|0|ya<<1;wa=wa+1|0}while((wa|0)<(va|0))}Ba=ya<<17-na}ta=ta<<2;va=ua<<2;ua=o+oa+199|0;wa=0;Ha=0;Ca=xa;Fa=0;while(1){xa=Da&255;ya=(d[K+xa>>0]|0)+ta|0;xa=(d[I+xa>>0]|0)+va|0;b:do if((wa|0)<8){Ia=(d[t+wa>>0]|0)+1|0;Ma=(wa|0)==(pa|0);if((Ia|0)==((Ma?3:2)|0)&0==((Ma?0:0)|0))Ja=0;else{Ja=0;break}while(1){Ka=Ja+1|0;if(!(ab((c[u>>2]|0)+224|0)|0)){w=120;break}if((Ka|0)<31)Ja=Ka;else{w=124;break}}do if((w|0)==120){w=0;if((Ja|0)>=3){Ka=Ja;w=124;break}if((Ga|0)>0){Ka=0;La=0;do{La=ab((c[u>>2]|0)+224|0)|0|La<<1;Ka=Ka+1|0}while((Ka|0)!=(Ga|0))}else La=0;Ka=La+(Ja<0){La=Ga+ -3+Ka|0;Ka=0;Ma=0;do{Ma=ab((c[u>>2]|0)+224|0)|0|Ma<<1;Ka=Ka+1|0}while((Ka|0)!=(La|0))}else Ma=0;Ka=Ma+((1<>31|0,Ia|0,0)|0;Ja=D;La=3<>31;Ma=c[(c[r>>2]|0)+13116>>2]|0;do if((Ja|0)>(Na|0)|(Ja|0)==(Na|0)&Ia>>>0>La>>>0){La=Ga+1|0;if(Ma){Ga=La;break}Ga=(Ga|0)>3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ha|0)==0))break;Ha=a[ua>>0]|0;La=(Ha&255)>>>2;if((Ka|0)>=(3<>0]=Ha+1<<24>>24;Ha=1;break}if((Ka<<1|0)>=(1<>24==0){Ha=1;break}a[ua>>0]=Ha+ -1<<24>>24;Ha=1}else{Ia=0;while(1){Ja=Ia+1|0;if(!(ab((c[u>>2]|0)+224|0)|0)){w=138;break}if((Ja|0)<31)Ia=Ja;else{w=142;break}}do if((w|0)==138){w=0;if((Ia|0)>=3){Ja=Ia;w=142;break}if((Ga|0)>0){Ja=0;Ka=0;do{Ka=ab((c[u>>2]|0)+224|0)|0|Ka<<1;Ja=Ja+1|0}while((Ja|0)!=(Ga|0))}else Ka=0;Ka=Ka+(Ia<0){Ka=Ga+ -3+Ja|0;Ja=0;La=0;do{La=ab((c[u>>2]|0)+224|0)|0|La<<1;Ja=Ja+1|0}while((Ja|0)!=(Ka|0))}else La=0;Ka=La+((1<>31;Ma=c[(c[r>>2]|0)+13116>>2]|0;do if((Ka|0)>=(3<3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ha|0)==0))break;La=a[ua>>0]|0;Ha=(La&255)>>>2;if((Ka|0)>=(3<>0]=La+1<<24>>24;Ha=1;break}if((Ka<<1|0)>=(1<>24==0){Ha=1;break}a[ua>>0]=La+ -1<<24>>24;Ha=1}while(0);do if(!((a[(c[ga>>2]|0)+4>>0]|0)==0|sa)){Fa=ae(Ia|0,Ja|0,Fa|0,0)|0;if(Da<<24>>24!=qa<<24>>24)break;Na=(Fa&1|0)==0;Ma=$d(0,0,Ia|0,Ja|0)|0;Ia=Na?Ia:Ma;Ja=Na?Ja:D}while(0);Na=(Ba&32768|0)==0;Da=$d(0,0,Ia|0,Ja|0)|0;Da=Na?Ia:Da;Ia=Na?Ja:D;Ba=Ba<<1&131070;Ja=Da&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[r>>2]|0)+634>>0]|0)==0|ha)){if(!((xa|ya|0)!=0|k)){Ca=ia;break}if((j|0)==3)Ca=(xa<<3)+ya|0;else if((j|0)==4)Ca=(xa>>>1<<3)+(ya>>>1)|0;else if((j|0)==5)Ca=(xa>>>2<<3)+(ya>>>2)|0;else Ca=(xa<<2)+ya|0;Ca=d[C+Ca>>0]|0}while(0);Da=ke(Da|0,Ia|0,B|0,Y|0)|0;Da=ke(Da|0,D|0,Ca|0,((Ca|0)<0)<<31>>31|0)|0;Da=ae(Da|0,D|0,A|0,X|0)|0;Da=_d(Da|0,D|0,E|0)|0;Ia=D;if((Ia|0)<0){Ja=(Da&-32768|0)==-32768&(Ia&268435455|0)==268435455?Da&65535:-32768;break}else{Ja=Ia>>>0>0|(Ia|0)==0&Da>>>0>32767?32767:Da&65535;break}}while(0);b[p+((xa<>1]=Ja;wa=wa+1|0;if((wa|0)>=(na|0)){xa=Ca;break a}Da=a[s+wa>>0]|0}}while(0);if(la)ka=ka+ -1|0;else break}}do if(a[z>>0]|0){if((c[(c[r>>2]|0)+13104>>2]|0)!=0?(x&-17|0)==10:0)Ea[c[f+2632>>2]&7](p,j&65535,(x|0)==26&1)}else{if(F){if(((j|0)==2?(c[(c[r>>2]|0)+13096>>2]|0)!=0:0)?(c[o+31244>>2]|0)==1:0){s=0;do{La=p+(15-s<<1)|0;Ma=b[La>>1]|0;Na=p+(s<<1)|0;b[La>>1]=b[Na>>1]|0;b[Na>>1]=Ma;s=s+1|0}while((s|0)!=8)}s=j&65535;Aa[c[f+2628>>2]&7](p,s);if(!(c[(c[r>>2]|0)+13104>>2]|0))break;if((c[o+31244>>2]|0)!=1)break;if((x&-17|0)!=10)break;Ea[c[f+2632>>2]&7](p,s,(x|0)==26&1);break}if(y&(c[o+31244>>2]|0)==1&(j|0)==2){za[c[f+2636>>2]&7](p);break}r=(G|0)>(H|0)?G:H;if(!r){za[c[f+(j+ -2<<2)+2656>>2]&7](p);break}s=H+4+G|0;do if((r|0)>=4){if((r|0)<8){s=(s|0)<8?s:8;break}if((r|0)<12)s=(s|0)<24?s:24}else s=(s|0)<4?s:4;while(0);Aa[c[f+(j+ -2<<2)+2640>>2]&7](p,s)}while(0);if(!(a[o+304>>0]|0)){Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}if((q|0)<=0){Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}o=c[o+284>>2]|0;r=0;do{Na=p+(r<<1)|0;b[Na>>1]=(($(b[g+(r<<1)>>1]|0,o)|0)>>>3)+(e[Na>>1]|0);r=r+1|0}while((r|0)!=(q|0));Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}function yb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+2112>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+4316>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+4316>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Ab(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;j=c[b+136>>2]|0;k=b+200|0;do if((e|0)>0&(e&7|0)==0){if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&8|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;h=1<0){l=b+2596|0;m=b+4320|0;n=0;do{o=n+d+($(c[l>>2]|0,e)|0)>>2;a[(c[m>>2]|0)+o>>0]=2;n=n+4|0}while((n|0)<(h|0))}}while(0);if(!((d|0)>0&(d&7|0)==0)){i=g;return}if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&2|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}h=1<>2]|0,k+e|0)|0)+d>>2;a[(c[b>>2]|0)+o>>0]=2;k=k+4|0}while((k|0)<(h|0));i=g;return}function Bb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;j=i;i=i+32|0;o=j+8|0;w=j;n=j+18|0;r=j+16|0;l=e+200|0;J=c[l>>2]|0;u=c[J+13120>>2]|0;k=(u-h|0)<=(f|0);b[n>>1]=0;b[r>>1]=0;v=c[J+13080>>2]|0;t=1<>v,c[J+13128>>2]|0)|0)+(f>>v)|0;s=c[e+2508>>2]|0;m=c[s+(v<<3)+4>>2]|0;x=c[s+(v<<3)>>2]|0;if((c[J+68>>2]|0)!=0?(a[J+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;q=(f|0)!=0;if(q){v=v+ -1|0;y=c[s+(v<<3)>>2]|0;v=c[s+(v<<3)+4>>2]|0}else{y=0;v=0}s=t+f|0;s=(s|0)>(u|0)?u:s;t=t+g|0;z=c[J+13124>>2]|0;t=(t|0)>(z|0)?z:t;z=(s|0)==(u|0)?s:s+ -8|0;u=(t|0)>(g|0);if(u){J=q?f:8;M=(J|0)<(s|0);P=q?f+ -8|0:0;E=e+2596|0;O=e+4320|0;H=e+4316|0;B=w+4|0;C=e+160|0;D=n+1|0;Q=r+1|0;K=e+4300|0;L=e+4284|0;I=e+4324|0;F=e+4304|0;G=e+4288|0;A=(P|0)>=(z|0);T=x;S=m;N=g;do{if(M){R=N+4|0;W=S+ -2&-2;U=J;do{Z=c[E>>2]|0;ba=($(Z,N)|0)+U>>2;_=c[I>>2]|0;ba=a[_+ba>>0]|0;ca=ba&255;Z=a[_+(($(Z,R)|0)+U>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){V=U+ -1|0;X=c[l>>2]|0;aa=c[X+13064>>2]|0;Y=$(N>>aa,c[X+13140>>2]|0)|0;da=c[H>>2]|0;aa=(a[da+(Y+(V>>aa))>>0]|0)+1+(a[da+(Y+(U>>aa))>>0]|0)>>1;Y=aa+T|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+W+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[w>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+W+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[B>>2]=Z;ca=c[C>>2]|0;Z=c[ca+32>>2]|0;da=$(Z,N)|0;X=(c[ca>>2]|0)+((U<>2])+da)|0;if(p){a[n>>0]=Gb(e,V,N)|0;a[D>>0]=Gb(e,V,R)|0;a[r>>0]=Gb(e,U,N)|0;a[Q>>0]=Gb(e,U,R)|0;Ha[c[F>>2]&3](X,Z,Y,w,n,r);break}else{Ha[c[G>>2]&3](X,Z,Y,w,n,r);break}}while(0);U=U+8|0}while((U|0)<(s|0))}if(!((N|0)==0|A)){R=N+ -1|0;V=S;S=P;do{Y=$(c[E>>2]|0,N)|0;Z=c[O>>2]|0;aa=a[Z+(Y+S>>2)>>0]|0;ba=aa&255;U=S+4|0;Y=a[Z+(Y+U>>2)>>0]|0;Z=Y&255;aa=aa<<24>>24!=0;Y=Y<<24>>24==0;do if(!(Y&(aa^1))){W=c[l>>2]|0;V=c[W+13064>>2]|0;_=S>>V;T=c[W+13140>>2]|0;da=($(R>>V,T)|0)+_|0;X=c[H>>2]|0;_=(a[X+da>>0]|0)+1+(a[X+(($(N>>V,T)|0)+_)>>0]|0)>>1;T=(S|0)>=(f|0);V=T?m:v;T=T?x:y;X=_+T|0;if((X|0)<0)X=0;else X=(X|0)>51?51:X;X=d[1280+X>>0]|0;if(aa){aa=(ba<<1)+(V+ -2&-2)+_|0;if((aa|0)<0)aa=0;else aa=(aa|0)>53?53:aa;aa=d[1336+aa>>0]|0}else aa=0;c[w>>2]=aa;if(Y)Y=0;else{Y=(Z<<1)+(V+ -2&-2)+_|0;if((Y|0)<0)Y=0;else Y=(Y|0)>53?53:Y;Y=d[1336+Y>>0]|0}c[B>>2]=Y;ca=c[C>>2]|0;Y=c[ca+32>>2]|0;da=$(Y,N)|0;W=(c[ca>>2]|0)+((S<>2])+da)|0;if(p){a[n>>0]=Gb(e,S,R)|0;a[D>>0]=Gb(e,U,R)|0;a[r>>0]=Gb(e,S,N)|0;a[Q>>0]=Gb(e,U,N)|0;Ha[c[K>>2]&3](W,Y,X,w,n,r);break}else{Ha[c[L>>2]&3](W,Y,X,w,n,r);break}}while(0);S=S+8|0}while((S|0)<(z|0));S=V}N=N+8|0}while((N|0)<(t|0));J=c[l>>2]|0}else S=m;if(c[J+4>>2]|0){C=q?v:m;F=e+2596|0;D=e+4320|0;v=e+4316|0;x=o+4|0;w=e+160|0;B=n+1|0;A=r+1|0;G=e+4308|0;E=e+4292|0;H=e+4324|0;z=e+4312|0;y=e+4296|0;I=1;do{O=1<>2];P=1<>2];if(u){N=O<<3;L=q?f:N;K=(L|0)<(s|0);J=P<<3;M=q?f-N|0:0;O=O<<2;P=P<<2;Q=g;do{if(K){R=Q+P|0;T=L;do{W=c[F>>2]|0;Y=($(W,Q)|0)+T>>2;da=c[H>>2]|0;Y=(a[da+Y>>0]|0)==2;W=(a[da+(($(W,R)|0)+T>>2)>>0]|0)==2;do if(Y|W){U=T+ -1|0;V=c[l>>2]|0;da=c[V+13064>>2]|0;_=U>>da;X=c[V+13140>>2]|0;Z=$(Q>>da,X)|0;aa=c[v>>2]|0;ba=T>>da;X=$(R>>da,X)|0;X=(a[aa+(X+_)>>0]|0)+1+(a[aa+(X+ba)>>0]|0)>>1;if(Y)Y=Hb(e,(a[aa+(Z+ba)>>0]|0)+1+(a[aa+(Z+_)>>0]|0)>>1,I,S)|0;else Y=0;c[o>>2]=Y;if(W)W=Hb(e,X,I,S)|0;else W=0;c[x>>2]=W;ca=c[w>>2]|0;W=c[ca+(I<<2)+32>>2]|0;da=$(W,Q>>c[V+(I<<2)+13180>>2])|0;V=(c[ca+(I<<2)>>2]|0)+((T>>c[V+(I<<2)+13168>>2]<>2])+da)|0;if(p){a[n>>0]=Gb(e,U,Q)|0;a[B>>0]=Gb(e,U,R)|0;a[r>>0]=Gb(e,T,Q)|0;a[A>>0]=Gb(e,T,R)|0;ya[c[z>>2]&3](V,W,o,n,r);break}else{ya[c[y>>2]&3](V,W,o,n,r);break}}while(0);T=T+N|0}while((T|0)<(s|0))}if(Q){U=s-((s|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:N)|0;if((M|0)<(U|0)){T=Q+ -1|0;S=M;do{W=$(c[F>>2]|0,Q)|0;da=c[D>>2]|0;R=S+O|0;X=(a[da+(W+S>>2)>>0]|0)==2;W=(a[da+(W+R>>2)>>0]|0)==2;do if(X|W){if(X){da=c[l>>2]|0;ca=c[da+13064>>2]|0;Y=S>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+Y|0;ba=c[v>>2]|0;Y=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+Y)>>0]|0)>>1}else Y=0;if(W){da=c[l>>2]|0;ca=c[da+13064>>2]|0;V=R>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+V|0;ba=c[v>>2]|0;V=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+V)>>0]|0)>>1}else V=0;if(X)X=Hb(e,Y,I,C)|0;else X=0;c[o>>2]=X;if(W)V=Hb(e,V,I,m)|0;else V=0;c[x>>2]=V;da=c[l>>2]|0;ca=c[w>>2]|0;V=c[ca+(I<<2)+32>>2]|0;W=$(V,Q>>c[da+13184>>2])|0;W=(c[ca+(I<<2)>>2]|0)+((S>>c[da+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Gb(e,S,T)|0;a[B>>0]=Gb(e,R,T)|0;a[r>>0]=Gb(e,S,Q)|0;a[A>>0]=Gb(e,R,Q)|0;ya[c[G>>2]&3](W,V,o,n,r);break}else{ya[c[E>>2]&3](W,V,o,n,r);break}}while(0);S=S+N|0}while((S|0)<(U|0));S=C}else S=C}Q=Q+J|0}while((Q|0)<(t|0))}I=I+1|0;J=c[l>>2]|0}while((I|0)!=3)}if(!(a[J+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[J+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Cb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Cb(e,f-h|0,g);k=k^1;!(l|k)?(Cb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Cb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Cb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;v=i;i=i+48|0;j=v+24|0;h=v+42|0;u=v+40|0;r=v+16|0;n=v+8|0;m=v;k=e+200|0;S=c[k>>2]|0;s=c[S+13080>>2]|0;q=f>>s;s=g>>s;D=S+13128|0;p=($(s,c[D>>2]|0)|0)+q|0;L=c[e+204>>2]|0;N=L+1668|0;M=c[(c[N>>2]|0)+(p<<2)>>2]|0;l=e+2504|0;o=c[l>>2]|0;t=o+(p*148|0)|0;b[h>>1]=0;b[u>>1]=0;c[r>>2]=0;E=($(c[D>>2]|0,s)|0)+q|0;E=a[(c[e+4352>>2]|0)+E>>0]|0;if((a[L+42>>0]|0)!=0?(a[L+53>>0]|0)==0:0){R=1;O=1}else{R=E<<24>>24==0&1;O=0}G=(q|0)==0;c[j>>2]=G&1;I=(s|0)==0;A=j+4|0;c[A>>2]=I&1;H=(q|0)==((c[D>>2]|0)+ -1|0);z=j+8|0;c[z>>2]=H&1;F=(s|0)==((c[S+13132>>2]|0)+ -1|0);w=j+12|0;c[w>>2]=F&1;if(R<<24>>24){if(G)J=0;else{if(O){J=c[L+1676>>2]|0;J=(c[J+(M<<2)>>2]|0)!=(c[J+(c[(c[N>>2]|0)+(p+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[h>>0]=K}if(H)K=0;else{if(O){K=c[L+1676>>2]|0;K=(c[K+(M<<2)>>2]|0)!=(c[K+(c[(c[N>>2]|0)+(p+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[h+1>>0]=P}if(I)P=0;else{if(O){P=c[L+1676>>2]|0;P=(c[P+(M<<2)>>2]|0)!=(c[P+(c[(c[N>>2]|0)+(p-(c[D>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+ -1|0)|0)+q<<2)>>2]|0)):0)Q=1;else Q=P;a[u>>0]=Q}if(F)L=0;else{if(O){L=c[L+1676>>2]|0;L=(c[L+(M<<2)>>2]|0)!=(c[L+(c[(c[N>>2]|0)+((c[D>>2]|0)+p<<2)>>2]<<2)>>2]|0)&1}else L=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+1|0)|0)+q<<2)>>2]|0)):0)M=1;else M=L;a[u+1>>0]=M}if(!G)if(I)B=47;else{if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[r>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[r+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|F):0){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[r+2>>0]=H}if(!(G|F)){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[r+3>>0]=D}}O=(c[S+4>>2]|0)!=0?3:1;I=e+160|0;H=e+168|0;P=e+2672|0;J=s<<1;G=J+ -1|0;D=n+4|0;E=s+ -1|0;Q=q+1|0;L=q+ -1|0;J=J+2|0;F=m+4|0;K=s+1|0;N=q<<1;M=N+ -1|0;N=N+2|0;R=e+((R&255)<<2)+2676|0;na=S;Y=0;while(1){ka=c[na+(Y<<2)+13168>>2]|0;_=f>>ka;ha=c[na+(Y<<2)+13180>>2]|0;Z=g>>ha;ba=c[I>>2]|0;S=c[ba+(Y<<2)+32>>2]|0;U=1<>2];X=U>>ka;W=U>>ha;ka=c[na+13120>>2]>>ka;ca=ka-_|0;X=(X|0)>(ca|0)?ca:X;ha=c[na+13124>>2]>>ha;ca=ha-Z|0;W=(W|0)>(ca|0)?ca:W;ca=$(S,Z)|0;ga=c[na+56>>2]|0;ca=(_<>2]|0;aa=ba+ca|0;U=U+2<>2]|0;fa=1<>0]|0;if((ia|0)==1){ea=X<0){da=V;ba=0;ca=aa;while(1){fe(da|0,ca|0,ea|0)|0;ba=ba+1|0;if((ba|0)==(W|0))break;else{da=da+U|0;ca=ca+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);Fa[c[P>>2]&1](aa,V,S,U,t,j,X,W,Y);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}else if((ia|0)==2){ja=c[j>>2]|0;ia=c[z>>2]|0;la=c[w>>2]|0;do if(!(c[A>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-S-oa);c[D>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,G)|0)+_-pa<>2]|0,E)|0)|0;pa=c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[oa>>0]=a[pa>>0]|0;na=c[k>>2]|0;oa=fa;break}else{b[oa>>1]=b[pa>>1]|0;oa=fa;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,E)|0)+q|0;na=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){na=oa+na|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)|0;ma=da+(na+ma)|0;na=(c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+na|0;if(!ga){a[ma>>0]=a[na>>0]|0;break}else{b[ma>>1]=b[na>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(W,S)|0)+ca-oa);c[F>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,J)|0)+_-pa<>2]|0)+13128>>2]|0,K)|0)|0;ma=c[m+(((a[(c[l>>2]|0)+(ma*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[ka>>0]=a[ma>>0]|0;ka=fa;break}else{b[ka>>1]=b[ma>>1]|0;ka=fa;break}}else ka=0;while(0);pa=($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)+q|0;ma=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0,ma|0)|0;if((ia|0)!=1){ka=ka+ma|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)|0;la=da+(ka+la)|0;ka=(c[m+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0;if(!ga){a[la>>0]=a[ka>>0]|0;break}else{b[la>>1]=b[ka>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){la=da+U|0;ja=(c[e+(Y<<2)+184>>2]|0)+(($(ha,M)|0)+Z<0;if(!ga){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){ia=da+((X<>2]|0)+(($(ha,N)|0)+Z<0;if(!ga){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,x=ja<0):0){ea=da+(ea-x)|0;da=0;ba=ba+(ca-x)|0;while(1){fe(ea|0,ba|0,y|0)|0;da=da+1|0;if((da|0)==(W|0))break;else{ea=ea+U|0;ba=ba+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);Ca[c[R>>2]&3](aa,V,S,U,t,j,X,W,Y,h,u,r);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}Y=Y+1|0;if((Y|0)>=(O|0))break;na=c[k>>2]|0}i=v;return}function Db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Bb(a,b-e|0,d-e|0,e);if(!(j|k))Bb(a,b,d-e|0,e);if(g|h){i=f;return}Bb(a,b-e|0,d,e);i=f;return}function Eb(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Fb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+4348|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){fe(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Gb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+4348>>2]|0)+e>>0]|0;i=f;return e|0}function Hb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Ib(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+4376|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}nd(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}fe(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+4384|0;b=b+4380|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ld(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Jb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;f=b+60|0;d=c[f>>2]|0;Zc();ac();f=c[f>>2]|0;c[f+4>>2]=b;g=md(31328)|0;c[f+136>>2]=g;if((((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,g=fd(199)|0,c[f+152>>2]=g,(g|0)!=0):0)?(g=wd()|0,c[f+164>>2]=g,(g|0)!=0):0)?(h=wd()|0,c[f+2524>>2]=h,(h|0)!=0):0){c[f+2528>>2]=h;c[f+2592>>2]=2147483647;a[f+4469>>0]=1;c[f+2584>>2]=0;c[d+4368>>2]=0;c[d+4520>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[d+141>>0]=1;else a[d+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[d+140>>0]=1;h=0;i=e;return h|0}a[d+140>>0]=2;h=0;i=e;return h|0}Lb(b)|0;h=-12;i=e;return h|0}function Kb(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0;k=i;i=i+16|0;q=k+8|0;n=k;m=c[f+60>>2]|0;l=j+28|0;K=c[l>>2]|0;if(!K){g=$b(m,g,1)|0;if((g|0)<0){_a=g;i=k;return _a|0}c[h>>2]=g;_a=0;i=k;return _a|0}r=m+2520|0;c[r>>2]=0;f=m+4524|0;b[f>>1]=1;J=c[j+24>>2]|0;c[r>>2]=0;G=m+2584|0;A=m+2588|0;c[A>>2]=c[G>>2];c[G>>2]=0;w=m+4408|0;c[w>>2]=0;a:do if((K|0)>3){H=m+4470|0;F=m+4412|0;z=m+4404|0;v=m+4388|0;C=m+4396|0;x=m+4392|0;E=m+4384|0;y=m+4380|0;j=m+4376|0;u=m+136|0;t=m+2512|0;I=m+4480|0;while(1){B=(a[H>>0]|0)==0;if(B){while(1){L=J+1|0;if(((a[J>>0]|0)==0?(a[L>>0]|0)==0:0)?(a[J+2>>0]|0)==1:0)break;if((K|0)<5){p=-1094995529;o=180;break a}J=L;K=K+ -1|0}J=J+3|0;M=0;K=K+ -3|0}else{L=c[I>>2]|0;if((L|0)>0){N=0;M=0;do{N=d[J+M>>0]|N<<8;M=M+1|0}while((M|0)!=(L|0));M=N}else M=0;K=K-L|0;if((M|0)>(K|0)){p=-1094995529;o=180;break a}J=J+L|0}B=B?K:M;L=c[F>>2]|0;N=c[w>>2]|0;if((L|0)<(N+1|0)){L=L+1|0;M=kd(c[z>>2]|0,L,16)|0;if(!M){p=-12;o=180;break a}c[z>>2]=M;N=c[F>>2]|0;ce(M+(N<<4)|0,0,L-N<<4|0)|0;ld(v,L,4)|0;ld(C,L,4)|0;ld(x,L,4)|0;N=c[C>>2]|0;c[N+(c[F>>2]<<2)>>2]=1024;N=od(c[N+(c[F>>2]<<2)>>2]|0,4)|0;c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]=N;c[F>>2]=L;N=c[w>>2]|0}c[E>>2]=c[(c[C>>2]|0)+(N<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(N<<2)>>2];M=c[z>>2]|0;L=Ib(m,J,B,M+(N<<4)|0)|0;c[(c[v>>2]|0)+(c[w>>2]<<2)>>2]=c[j>>2];c[(c[C>>2]|0)+(c[w>>2]<<2)>>2]=c[E>>2];Za=c[y>>2]|0;_a=c[w>>2]|0;c[w>>2]=_a+1;c[(c[x>>2]|0)+(_a<<2)>>2]=Za;if((L|0)<0){p=L;o=180;break a}Za=c[u>>2]|0;Xa=c[M+(N<<4)+12>>2]|0;Ya=c[M+(N<<4)+8>>2]|0;Ya=Ya>>>0>268435455?-8:Ya<<3;_a=Ya>>>0>2147483639|(Xa|0)==0;Ya=_a?0:Ya;Xa=_a?0:Xa;B=_a?-1094995529:0;c[Za+204>>2]=Xa;c[Za+216>>2]=Ya;c[Za+220>>2]=Ya+8;c[Za+208>>2]=Xa+(Ya>>3);c[Za+212>>2]=0;if(_a){p=B;o=180;break a}Ob(m)|0;if(((c[t>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;K=K-L|0;if((K|0)<=3)break;else J=J+L|0}if((c[w>>2]|0)>0){la=m+4|0;Aa=m+1448|0;ba=m+2046|0;_=m+1428|0;za=m+204|0;qa=m+200|0;Ia=m+1449|0;Ja=m+1432|0;Na=m+1436|0;Oa=m+2580|0;Ga=m+156|0;Da=m+1440|0;I=m+1450|0;L=m+1620|0;pa=m+2572|0;K=m+2516|0;M=m+2576|0;W=m+2056|0;X=m+2057|0;N=m+2058|0;P=m+2052|0;O=m+2048|0;La=m+2068|0;S=m+2072|0;Q=m+2076|0;T=m+2080|0;Y=m+2061|0;V=m+2084|0;U=m+2088|0;Z=m+2062|0;J=m+1451|0;Ma=m+2108|0;Ha=m+2112|0;Ka=m+2500|0;Ca=m+2592|0;ma=m+2604|0;na=m+4416|0;aa=q+4|0;ra=m+4320|0;ua=m+2596|0;sa=m+2600|0;va=m+4324|0;wa=m+4344|0;xa=m+4348|0;ya=m+4328|0;oa=m+160|0;Fa=m+140|0;Ea=m+164|0;R=m+2096|0;F=m+2100|0;E=m+2104|0;G=m+141|0;H=m+4368|0;da=m+2504|0;ca=m+2508|0;fa=m+4332|0;ea=m+4336|0;ga=m+4340|0;ia=m+4352|0;ha=m+4316|0;ja=m+2608|0;Pa=m+196|0;Qa=m+4364|0;ka=m+168|0;C=0;b:while(1){c[j>>2]=c[(c[v>>2]|0)+(C<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(C<<2)>>2];Za=c[z>>2]|0;Ya=c[Za+(C<<4)+12>>2]|0;Za=c[Za+(C<<4)+8>>2]|0;_a=c[u>>2]|0;Za=Za>>>0>268435455?-8:Za<<3;Ra=Za>>>0>2147483639|(Ya|0)==0;Za=Ra?0:Za;Ya=Ra?0:Ya;c[_a+204>>2]=Ya;c[_a+216>>2]=Za;c[_a+220>>2]=Za+8;c[_a+208>>2]=Ya+(Za>>3);c[_a+212>>2]=0;c:do if(Ra){s=Ra?-1094995529:0;o=178}else{Ra=Ob(m)|0;d:do if((Ra|0)>=0){if(!Ra)break c;switch(c[t>>2]|0){case 40:case 39:{Ra=Gc(m)|0;if((Ra|0)<0)break d;else break c};case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{Ra=c[u>>2]|0;Sa=Ra+204|0;_a=(bd(Sa)|0)&255;a[Aa>>0]=_a;Ta=c[t>>2]|0;if(!((Ta+ -16|0)>>>0>4|_a<<24>>24==0)?(b[Qa>>1]=(e[Qa>>1]|0)+1&255,c[Ca>>2]=2147483647,(Ta+ -19|0)>>>0<2):0){Yb(m);Ta=c[t>>2]|0}a[ba>>0]=0;if((Ta+ -16|0)>>>0<8)a[ba>>0]=bd(Sa)|0;Ta=dd(Sa)|0;c[_>>2]=Ta;if(Ta>>>0>255){p=B;o=180;break a}Ta=c[m+(Ta<<2)+400>>2]|0;if(!Ta){p=B;o=180;break a}if(!(a[Aa>>0]|0)){Wa=c[Ta+4>>2]|0;if((c[za>>2]|0)!=(Wa|0)){p=B;o=180;break a}}else Wa=c[Ta+4>>2]|0;c[za>>2]=Wa;Ua=c[t>>2]|0;Va=(Ua|0)==21;if(Va?(c[A>>2]|0)==1:0)a[ba>>0]=1;Ta=c[qa>>2]|0;Wa=c[(c[m+(c[Wa>>2]<<2)+272>>2]|0)+4>>2]|0;if((Ta|0)!=(Wa|0)){c[qa>>2]=Wa;e:do if(Ta){if((Ua+ -16|0)>>>0>7|Va)break;do if((c[Wa+13120>>2]|0)==(c[Ta+13120>>2]|0)){if((c[Wa+13124>>2]|0)!=(c[Ta+13124>>2]|0))break;if((c[Wa+76+(((c[Wa+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[ba>>0]=0}while(0);Yb(m);Ta=c[qa>>2]|0;Nb(m);Va=c[Ta+13064>>2]|0;Wa=Ta+13120|0;ab=c[Wa>>2]|0;Xa=Ta+13124|0;$a=c[Xa>>2]|0;Va=$(($a>>Va)+1|0,(ab>>Va)+1|0)|0;Ua=$(c[Ta+13132>>2]|0,c[Ta+13128>>2]|0)|0;_a=Ta+13156|0;Za=Ta+13160|0;Ya=$(c[Za>>2]|0,c[_a>>2]|0)|0;c[ua>>2]=(ab>>2)+1;c[sa>>2]=($a>>2)+1;c[da>>2]=pd(Ua,148)|0;$a=pd(Ua,8)|0;c[ca>>2]=$a;if((c[da>>2]|0)==0|($a|0)==0){o=71;break b}$a=Ta+13144|0;ab=Ta+13140|0;c[fa>>2]=fd($(c[ab>>2]|0,c[$a>>2]|0)|0)|0;ab=od(c[$a>>2]|0,c[ab>>2]|0)|0;c[ea>>2]=ab;if((c[fa>>2]|0)==0|(ab|0)==0){o=71;break b}c[wa>>2]=od(c[Ta+13148>>2]|0,c[Ta+13152>>2]|0)|0;c[ga>>2]=md(Ya)|0;Ya=fd($((c[Za>>2]|0)+1|0,(c[_a>>2]|0)+1|0)|0)|0;c[xa>>2]=Ya;if(!(c[ga>>2]|0)){o=71;break b}if((c[wa>>2]|0)==0|(Ya|0)==0){o=71;break b}c[ia>>2]=fd(Ua)|0;c[ya>>2]=od(Va,4)|0;ab=od(Va,1)|0;c[ha>>2]=ab;if(!ab){o=71;break b}if(!(c[ia>>2]|0)){o=71;break b}if(!(c[ya>>2]|0)){o=71;break b}c[ra>>2]=pd(c[ua>>2]|0,c[sa>>2]|0)|0;ab=pd(c[ua>>2]|0,c[sa>>2]|0)|0;c[va>>2]=ab;if((c[ra>>2]|0)==0|(ab|0)==0){o=71;break b}ab=c[la>>2]|0;c[ab+124>>2]=c[Wa>>2];c[ab+128>>2]=c[Xa>>2];c[ab+116>>2]=c[Ta+12>>2];c[ab+120>>2]=c[Ta+16>>2];c[ab+136>>2]=c[Ta+60>>2];c[ab+172>>2]=c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+80>>2];ab=Ta+160|0;c[q+0>>2]=c[ab+0>>2];c[q+4>>2]=c[ab+4>>2];if(!(c[Ta+176>>2]|0)){Ua=c[la>>2]|0;c[Ua+392>>2]=1}else{Ua=c[la>>2]|0;c[Ua+392>>2]=(c[Ta+184>>2]|0)!=0?2:1}if(!(c[Ta+188>>2]|0)){c[Ua+380>>2]=2;c[Ua+384>>2]=2;c[Ua+388>>2]=2}else{c[Ua+380>>2]=d[Ta+192>>0];c[Ua+384>>2]=d[Ta+193>>0];c[Ua+388>>2]=d[Ta+194>>0]}bc(ja,c[Ta+52>>2]|0);if(a[Ta+12941>>0]|0){Ua=c[qa>>2]|0;Va=(c[Ua+4>>2]|0)!=0?3:1;ab=(1<>2])+2|0;ab=$(ab,ab)|0;c[ka>>2]=fd(ab<>2])|0;Ua=0;do{ab=c[qa>>2]|0;$a=c[ab+13124>>2]>>c[ab+(Ua<<2)+13180>>2];_a=$(c[ab+13120>>2]>>c[ab+(Ua<<2)+13168>>2]<<1,c[ab+13132>>2]|0)|0;c[m+(Ua<<2)+172>>2]=fd(_a<>2])|0;ab=c[qa>>2]|0;$a=$($a<<1,c[ab+13128>>2]|0)|0;c[m+(Ua<<2)+184>>2]=fd($a<>2])|0;Ua=Ua+1|0}while((Ua|0)<(Va|0))}c[qa>>2]=Ta;c[Pa>>2]=c[(c[m+(c[Ta>>2]<<2)+208>>2]|0)+4>>2];b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647}ab=c[la>>2]|0;c[ab+832>>2]=d[Ta+302>>0];c[ab+836>>2]=d[Ta+335>>0];a[Ia>>0]=0;do if(!(a[Aa>>0]|0)){if(a[(c[za>>2]|0)+41>>0]|0){a[Ia>>0]=bd(Sa)|0;Ta=c[qa>>2]|0}Ta=($(c[Ta+13128>>2]<<1,c[Ta+13132>>2]|0)|0)+ -2|0;Ua=Ta>>>0>65535;Ta=Ua?Ta>>>16:Ta;Ua=Ua?16:0;if(Ta&65280){Ua=Ua|8;Ta=Ta>>>8}Ta=_c(Sa,(d[4680+Ta>>0]|0)+Ua|0)|0;c[Ja>>2]=Ta;ab=c[qa>>2]|0;if(Ta>>>0>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0)>>>0){p=B;o=180;break a}if(a[Ia>>0]|0)if(!(a[Ga>>0]|0)){p=B;o=180;break a}else break;else{c[Na>>2]=Ta;c[Oa>>2]=(c[Oa>>2]|0)+1;o=82;break}}else{c[Na>>2]=0;c[Ja>>2]=0;c[Oa>>2]=0;a[Ga>>0]=0;o=82}while(0);f:do if((o|0)==82){o=0;a[Ga>>0]=0;if((c[(c[za>>2]|0)+1624>>2]|0)>0){Ta=0;do{ad(Sa,1);Ta=Ta+1|0}while((Ta|0)<(c[(c[za>>2]|0)+1624>>2]|0))}Ta=dd(Sa)|0;c[Da>>2]=Ta;if(Ta>>>0>=3){p=B;o=180;break a}if(!((Ta|0)==2?1:((c[t>>2]|0)+ -16|0)>>>0>7)){p=B;o=180;break a}a[I>>0]=1;if(a[(c[za>>2]|0)+39>>0]|0)a[I>>0]=bd(Sa)|0;if(a[(c[qa>>2]|0)+8>>0]|0)a[J>>0]=_c(Sa,2)|0;if(((c[t>>2]|0)+ -19|0)>>>0>=2){o=91;break b}c[L>>2]=0;c[pa>>2]=0;if(!(c[K>>2]|0))c[M>>2]=0;do if(a[(c[qa>>2]|0)+12941>>0]|0){a[W>>0]=bd(Sa)|0;if(!(c[(c[qa>>2]|0)+4>>2]|0)){a[X>>0]=0;a[N>>0]=0;break}else{ab=(bd(Sa)|0)&255;a[N>>0]=ab;a[X>>0]=ab;break}}else{a[W>>0]=0;a[X>>0]=0;a[N>>0]=0}while(0);c[P>>2]=0;c[O>>2]=0;c[La>>2]=ed(Sa)|0;Ta=c[za>>2]|0;if(!(a[Ta+36>>0]|0)){c[S>>2]=0;c[Q>>2]=0}else{c[S>>2]=ed(Sa)|0;c[Q>>2]=ed(Sa)|0;Ta=c[za>>2]|0}if(!(a[Ta+1631>>0]|0))a[T>>0]=0;else{a[T>>0]=bd(Sa)|0;Ta=c[za>>2]|0}g:do if(!(a[Ta+55>>0]|0)){a[Y>>0]=0;c[V>>2]=0;c[U>>2]=0}else{do if(a[Ta+56>>0]|0){if(!(bd(Sa)|0)){Ta=c[za>>2]|0;break}ab=(bd(Sa)|0)&255;a[Y>>0]=ab;if(ab<<24>>24)break g;c[V>>2]=(ed(Sa)|0)<<1;c[U>>2]=(ed(Sa)|0)<<1;break g}while(0);a[Y>>0]=a[Ta+57>>0]|0;c[V>>2]=c[Ta+60>>2];c[U>>2]=c[Ta+64>>2]}while(0);Ta=a[(c[za>>2]|0)+54>>0]|0;h:do if(Ta<<24>>24){do if(!(a[W>>0]|0)){if(a[X>>0]|0)break;if(a[Y>>0]|0)break h}while(0);a[Z>>0]=bd(Sa)|0;break f}while(0);a[Z>>0]=Ta}while(0);c[Ma>>2]=0;ab=c[za>>2]|0;if(!((a[ab+42>>0]|0)==0?(a[ab+43>>0]|0)==0:0))o=122;i:do if((o|0)==122){o=0;ab=dd(Sa)|0;c[Ma>>2]=ab;if((ab|0)<=0){c[H>>2]=0;break}Ta=(dd(Sa)|0)+1|0;Ua=Ta>>4;Ta=Ta&15;jd(R);jd(F);jd(E);c[R>>2]=od(c[Ma>>2]|0,4)|0;c[F>>2]=od(c[Ma>>2]|0,4)|0;Va=od(c[Ma>>2]|0,4)|0;c[E>>2]=Va;if(!(c[R>>2]|0)){o=127;break b}if((c[F>>2]|0)==0|(Va|0)==0){o=127;break b}if((c[Ma>>2]|0)>0){Wa=(Ua|0)>0;Xa=(Ta|0)==0;Va=0;do{if(Wa){Ya=0;Za=0;do{Za=(_c(Sa,16)|0)+(Za<<16)|0;Ya=Ya+1|0}while((Ya|0)!=(Ua|0))}else Za=0;if(!Xa)Za=(_c(Sa,Ta)|0)+(Za<>2]|0)+(Va<<2)>>2]=Za+1;Va=Va+1|0}while((Va|0)<(c[Ma>>2]|0))}do if((d[G>>0]|0)>1){ab=c[za>>2]|0;if((c[ab+48>>2]|0)<=1?(c[ab+44>>2]|0)<=1:0)break;c[H>>2]=0;a[G>>0]=1;break i}while(0);c[H>>2]=0}while(0);Ta=c[za>>2]|0;if(a[Ta+1628>>0]|0){Ta=dd(Sa)|0;$a=de(Ta|0,0,3)|0;Za=D;ab=(c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0;_a=((ab|0)<0)<<31>>31;if((Za|0)>(_a|0)|(Za|0)==(_a|0)&$a>>>0>ab>>>0){p=B;o=180;break a}if(Ta){Ua=0;do{ad(Sa,8);Ua=Ua+1|0}while((Ua|0)!=(Ta|0))}Ta=c[za>>2]|0}Sa=(c[Ta+16>>2]|0)+26+(c[La>>2]|0)|0;a[Ha>>0]=Sa;Sa=Sa<<24;if((Sa|0)>855638016){p=B;o=180;break a}if((Sa>>24|0)<(0-(c[(c[qa>>2]|0)+13192>>2]|0)|0)){p=B;o=180;break a}ab=c[Ja>>2]|0;c[Ka>>2]=ab;if((ab|0)==0?(a[Ia>>0]|0)!=0:0){p=B;o=180;break a}if(((c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0)<0){p=B;o=180;break a}a[(c[u>>2]|0)+203>>0]=(a[Ia>>0]|0)==0&1;if(!(a[(c[za>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ha>>0]|0;a[Ga>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;Sa=c[Ca>>2]|0;Ra=c[t>>2]|0;j:do if((Sa|0)==2147483647)switch(Ra|0){case 18:case 16:case 17:case 21:{Sa=c[pa>>2]|0;c[Ca>>2]=Sa;break j};case 20:case 19:{c[Ca>>2]=-2147483648;Sa=-2147483648;break j};default:{Sa=2147483647;break j}}while(0);do if((Ra+ -8|0)>>>0<2){if((c[pa>>2]|0)<=(Sa|0)){c[ma>>2]=0;break c}if((Ra|0)!=9)break;c[Ca>>2]=-2147483648}while(0);k:do if(!(a[Aa>>0]|0)){if(!(c[r>>2]|0)){Ra=0;break d}}else{Sa=c[u>>2]|0;$a=c[qa>>2]|0;Ra=c[$a+13064>>2]|0;ab=c[$a+13120>>2]>>Ra;Ra=(c[$a+13124>>2]>>Ra)+1|0;ce(c[ra>>2]|0,0,$(c[sa>>2]|0,c[ua>>2]|0)|0)|0;ce(c[va>>2]|0,0,$(c[sa>>2]|0,c[ua>>2]|0)|0)|0;$a=c[qa>>2]|0;ce(c[wa>>2]|0,0,$(c[$a+13152>>2]|0,c[$a+13148>>2]|0)|0)|0;$a=c[qa>>2]|0;ce(c[xa>>2]|0,0,$((c[$a+13160>>2]|0)+1|0,(c[$a+13156>>2]|0)+1|0)|0)|0;ce(c[ya>>2]|0,-1,$((ab<<2)+4|0,Ra)|0)|0;c[ma>>2]=0;c[na>>2]=c[t>>2];Ra=c[za>>2]|0;if(a[Ra+42>>0]|0)c[Sa+312>>2]=c[c[Ra+1648>>2]>>2]<>2]|0)+13080>>2];Ra=_b(m,oa,c[pa>>2]|0)|0;do if((Ra|0)>=0){c[(c[c[r>>2]>>2]|0)+80>>2]=((c[t>>2]|0)+ -16|0)>>>0<8&1;c[(c[oa>>2]|0)+84>>2]=3-(c[Da>>2]|0);yd(c[Ea>>2]|0);Ra=$b(m,c[Ea>>2]|0,0)|0;if((Ra|0)<0)break;break k}while(0);if(!(c[r>>2]|0)){o=167;break b}c[r>>2]=0;if((Ra|0)<0){p=B;break a}}while(0);if((c[t>>2]|0)!=(c[na>>2]|0)){p=B;o=180;break a}c[q>>2]=0;c[aa>>2]=1;Ra=c[la>>2]|0;Ba[c[Ra+816>>2]&1](Ra,1,q,n,1,4)|0;Ra=c[n>>2]|0;ab=c[qa>>2]|0;if((Ra|0)>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0))c[ma>>2]=1;if((Ra|0)<0)break d;else break c};case 48:{Ra=Dc(m)|0;if((Ra|0)<0)break d;else break c};case 34:{Ra=Ec(m)|0;if((Ra|0)<0)break d;else break c};case 37:case 36:{b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647;break c};default:break c}}while(0);s=(c[(c[la>>2]|0)+688>>2]&8|0)==0?0:Ra;o=178}while(0);if((o|0)==178?(o=0,(s|0)<0):0){p=B;o=180;break a}C=C+1|0;if((C|0)>=(c[w>>2]|0)){p=B;o=180;break a}}if((o|0)==71){Nb(m);Nb(m);c[qa>>2]=0;p=B;o=180;break}else if((o|0)==91)ta();else if((o|0)==127){c[Ma>>2]=0;p=B;o=180;break}else if((o|0)==167){c[r>>2]=0;p=B;break}}else{p=B;o=180}}else{p=0;o=180}while(0);if((p|0)<0){ab=p;i=k;return ab|0}n=m+2604|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){ab=m+128|0;c[ab>>2]=e[f>>1];c[ab+4>>2]=0;zd(g,m);c[h>>2]=1}ab=c[l>>2]|0;i=k;return ab|0}function Lb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;Nb(e);b=e+4412|0;f=e+4392|0;if((c[b>>2]|0)>0){g=0;do{jd((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}jd(e+4396|0);jd(e+4388|0);jd(f);jd(e+152|0);jd(e+168|0);jd(e+172|0);jd(e+184|0);jd(e+176|0);jd(e+188|0);jd(e+180|0);jd(e+192|0);xd(e+164|0);g=e+2524|0;Xb(e,g,-1);xd(g);g=e+208|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);f=e+400|0;g=0;do{vd(f+(g<<2)|0);g=g+1|0}while((g|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;vd(e+1424|0);jd(e+2096|0);jd(e+2100|0);jd(e+2104|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){jd(k);jd(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;jd(f);f=e+4404|0;if((c[b>>2]|0)<=0){jd(f);c[b>>2]=0;i=d;return 0}e=0;do{jd((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));jd(f);c[b>>2]=0;i=d;return 0}function Mb(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;Zb(a);c[a+2592>>2]=2147483647;i=b;return}function Nb(a){a=a|0;var b=0;b=i;jd(a+2504|0);jd(a+2508|0);jd(a+4332|0);jd(a+4336|0);jd(a+4340|0);jd(a+4344|0);jd(a+4348|0);jd(a+4316|0);jd(a+4328|0);jd(a+4352|0);jd(a+4320|0);jd(a+4324|0);jd(a+2096|0);jd(a+2104|0);jd(a+2100|0);i=b;return}function Ob(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(bd(d)|0){e=-1094995529;i=b;return e|0}c[a+2512>>2]=_c(d,6)|0;e=_c(d,6)|0;d=(_c(d,3)|0)+ -1|0;c[a+2516>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function Pb(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+2500>>2]<<2)>>2]|0;m=(a[h+1449>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+4328|0;r=h+1436|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+4328|0;r=h+1436|0}q=e+ -1|0;s=h+136|0;p=h+2504|0;y=h+2056|0;o=h+2057|0;w=h+2084|0;x=h+2508|0;v=h+2088|0;u=h+2062|0;t=h+4352|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;Ua(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=Za(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(Za(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+2056>>0]|0){T=(P|0)==2;do if(!T){if(S){U=($a(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=cb(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=db(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=bb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=eb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=Qb(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Ta(h,A);Db(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Bb(h,z,n,e);W=A;i=f;return W|0}function Qb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;j=i;i=i+32|0;z=j;B=j+20|0;A=b+136|0;r=c[A>>2]|0;l=1<>2]|0;q=b+204|0;t=c[q>>2]|0;p=(1<<(c[s+13080>>2]|0)-(c[t+24>>2]|0))+ -1|0;c[r+31232>>2]=h;k=l+e|0;if(((k|0)<=(c[s+13120>>2]|0)?(l+f|0)<=(c[s+13124>>2]|0):0)?(c[s+13064>>2]|0)>>>0>>0:0){s=lb(b,h,e,f)|0;t=c[q>>2]|0}else s=(c[s+13064>>2]|0)>>>0>>0&1;if((a[t+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[t+24>>2]|0)|0)>>>0<=g>>>0:0){a[r+300>>0]=0;c[r+280>>2]=0}if((a[b+2080>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[r+301>>0]=0;if(s){o=l>>1;n=o+e|0;q=o+f|0;g=g+ -1|0;h=h+1|0;s=Qb(b,e,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}if(s){if((n|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=Qb(b,n,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){if((q|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=Qb(b,e,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){X=c[m>>2]|0;if((n|0)<(c[X+13120>>2]|0)?(q|0)<(c[X+13124>>2]|0):0){s=Qb(b,n,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}}else s=0}else s=0}else s=0;if((p&k|0)==0?(p&l+f|0)==0:0)c[r+276>>2]=a[r+272>>0];if(!s){X=0;i=j;return X|0}k=c[m>>2]|0;if((n+o|0)<(c[k+13120>>2]|0))k=1;else k=(q+o|0)<(c[k+13124>>2]|0);X=k&1;i=j;return X|0}p=c[A>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;x=p+31252|0;a[x>>0]=1;v=p+31244|0;c[v>>2]=1;E=p+31248|0;c[E>>2]=0;w=p+31254|0;a[w>>0]=0;y=p+31253|0;a[y>>0]=0;t=($(f>>r,h)|0)+(e>>r)|0;H=b+4332|0;a[(c[H>>2]|0)+t>>0]=0;X=p+31268|0;a[X>>0]=1;a[X+1>>0]=1;a[X+2>>0]=1;a[X+3>>0]=1;r=l>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){X=(gb(b)|0)&255;a[p+31256>>0]=X;if(X<<24>>24)Rb(b,e,f,g)}else a[p+31256>>0]=0;u=(r|0)>0;if(u){G=t;F=0;while(1){ce((c[H>>2]|0)+G|0,0,r|0)|0;F=F+1|0;if((F|0)==(r|0))break;else G=G+h|0}}if((c[v>>2]|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0)D=c[E>>2]|0;else{F=mb(b,g)|0;c[E>>2]=F;E=c[v>>2]|0;if((F|0)==3)G=(E|0)==1&1;else G=0;a[w>>0]=G;if((E|0)==1)D=F;else ta()}if((((D|0)==0?(C=c[m>>2]|0,(c[C+68>>2]|0)!=0):0)?(c[C+13048>>2]|0)>>>0<=g>>>0:0)?(c[C+13052>>2]|0)>>>0>=g>>>0:0){C=(nb(b)|0)&255;a[y>>0]=C}else C=a[y>>0]|0;do if(!(C<<24>>24)){C=c[A>>2]|0;E=(c[C+31248>>2]|0)==3;D=E?2:1;H=0;do{F=H<<1;G=0;do{a[B+(G+F)>>0]=ob(b)|0;G=G+1|0}while((G|0)<(D|0));H=H+1|0}while((H|0)<(D|0));Q=l>>(E&1);P=C+31264|0;R=z+4|0;E=z+8|0;F=b+4340|0;O=C+31260|0;N=0;do{J=N<<1;H=($(N,Q)|0)+f|0;I=0;do{L=I+J|0;U=(a[B+L>>0]|0)==0;if(U)c[P>>2]=qb(b)|0;else c[O>>2]=pb(b)|0;V=($(I,Q)|0)+e|0;T=c[A>>2]|0;X=c[m>>2]|0;S=c[X+13084>>2]|0;M=V>>S;K=H>>S;G=c[X+13156>>2]|0;S=Q>>S;X=c[X+13080>>2]|0;W=(1<>0]|0)==0?(W&H|0)==0:0)W=1;else{W=($(K+ -1|0,G)|0)+M|0;W=d[(c[F>>2]|0)+W>>0]|0}if((a[T+308>>0]|0)==0&(V|0)==0)V=1;else{V=M+ -1+($(K,G)|0)|0;V=d[(c[F>>2]|0)+V>>0]|0}X=(H>>X<>>0<2){c[z>>2]=0;c[R>>2]=1;c[E>>2]=26;V=0;X=1;W=26;break}else{c[z>>2]=V;X=(V+29&31)+2|0;c[R>>2]=X;W=(V+31&31)+2|0;c[E>>2]=W;break}else{c[z>>2]=V;c[R>>2]=X;if(!((V|0)==0|(X|0)==0)){c[E>>2]=0;W=0;break}if((V|0)==1|(X|0)==1){c[E>>2]=26;W=26;break}else{c[E>>2]=1;W=1;break}}while(0);if(U){if((V|0)>(X|0)){c[R>>2]=V;U=X&255;c[z>>2]=U}else{U=V;V=X}if((U|0)>(W|0)){c[E>>2]=U;X=W&255;c[z>>2]=X;W=U;U=X}if((V|0)>(W|0)){c[E>>2]=V;X=W&255;c[R>>2]=X}else{X=V;V=W}T=c[T+31264>>2]|0;T=((T|0)>=(U|0)&1)+T|0;T=((T|0)>=(X|0)&1)+T|0;T=((T|0)>=(V|0)&1)+T|0}else T=c[z+(c[T+31260>>2]<<2)>>2]|0;S=(S|0)==0?1:S;T=T&255;if((S|0)>0){U=0;do{X=($(U+K|0,G)|0)+M|0;ce((c[F>>2]|0)+X|0,T|0,S|0)|0;U=U+1|0}while((U|0)<(S|0))}a[C+L+31268>>0]=T;I=I+1|0}while((I|0)<(D|0));N=N+1|0}while((N|0)<(D|0));z=c[(c[m>>2]|0)+4>>2]|0;if((z|0)==3){B=0;do{z=B<<1;E=0;do{G=rb(b)|0;F=E+z|0;a[C+F+31281>>0]=G;A=a[C+F+31268>>0]|0;do if((G|0)!=4){G=a[1528+G>>0]|0;F=C+F+31277|0;if(A<<24>>24==G<<24>>24){a[F>>0]=34;break}else{a[F>>0]=G;break}}else a[C+F+31277>>0]=A;while(0);E=E+1|0}while((E|0)<(D|0));B=B+1|0}while((B|0)<(D|0))}else if(!z)break;else if((z|0)!=2){A=rb(b)|0;z=a[C+31268>>0]|0;if((A|0)==4){a[C+31277>>0]=z;break}A=a[1528+A>>0]|0;B=C+31277|0;if(z<<24>>24==A<<24>>24){a[B>>0]=34;break}else{a[B>>0]=A;break}}else{z=rb(b)|0;a[C+31281>>0]=z;A=a[C+31268>>0]|0;if((z|0)==4)z=A&255;else{z=a[1528+z>>0]|0;z=A<<24>>24==z<<24>>24?34:z&255}a[C+31277>>0]=a[1536+z>>0]|0;break}}else{G=c[m>>2]|0;B=c[G+13084>>2]|0;E=l>>B;C=c[G+13156>>2]|0;D=e>>B;B=f>>B;E=(E|0)==0?1:E;if((E|0)>0){F=b+4340|0;G=0;do{X=($(G+B|0,C)|0)+D|0;ce((c[F>>2]|0)+X|0,1,E|0)|0;G=G+1|0}while((G|0)<(E|0));G=c[m>>2]|0}K=c[A>>2]|0;V=c[b+160>>2]|0;A=c[V+32>>2]|0;D=$(A,f)|0;H=c[G+56>>2]|0;D=(c[V>>2]|0)+((e<>2]|0;J=c[G+13184>>2]|0;B=$(f>>J,E)|0;I=c[G+13172>>2]|0;B=(c[V+4>>2]|0)+((e>>I<>2]|0;X=c[G+13188>>2]|0;F=$(f>>X,C)|0;W=c[G+13176>>2]|0;F=(c[V+8>>2]|0)+((e>>W<>0]|0,l<>W,l>>X)|0)+($(l>>I,l>>J)|0)|0;G=($(d[G+13045>>0]|0,J)|0)+H|0;H=K+224|0;J=G+7>>3;I=c[K+240>>2]|0;X=c[H>>2]|0;I=(X&1|0)==0?I:I+ -1|0;I=(X&511|0)==0?I:I+ -1|0;K=(c[K+244>>2]|0)-I|0;if((K|0)<(J|0))I=0;else Yc(H,I+J|0,K-J|0);if(!(a[b+2061>>0]|0))Ab(b,e,f,g);X=G>>>0>2147483639|(I|0)==0;W=X?0:G;V=X?0:I;c[z>>2]=V;c[z+12>>2]=W;c[z+16>>2]=W+8;c[z+4>>2]=V+(W+7>>3);c[z+8>>2]=0;if(X)z=-1094995529;else{W=b+2608|0;Ha[c[W>>2]&3](D,A,l,l,z,d[(c[m>>2]|0)+13044>>0]|0);X=c[m>>2]|0;Ha[c[W>>2]&3](B,E,l>>c[X+13172>>2],l>>c[X+13184>>2],z,d[X+13045>>0]|0);X=c[m>>2]|0;Ha[c[W>>2]&3](F,C,l>>c[X+13176>>2],l>>c[X+13188>>2],z,d[X+13045>>0]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)Rb(b,e,f,g);if((z|0)<0){X=z;i=j;return X|0}}while(0);do if(!(a[y>>0]|0)){if(!(a[x>>0]|0)){if(a[b+2061>>0]|0)break;Ab(b,e,f,g);break}x=c[m>>2]|0;if((c[v>>2]|0)==1)v=(d[w>>0]|0)+(c[x+13092>>2]|0)|0;else v=c[x+13088>>2]|0;a[p+31255>>0]=v;v=Sb(b,e,f,e,f,e,f,g,g,0,0,1520,1520)|0;if((v|0)<0){X=v;i=j;return X|0}}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)zb(b,e,f,g);if(u){q=b+4316|0;g=p+272|0;u=0;while(1){ce((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&k|0)==0?(s&l+f|0)==0:0)c[p+276>>2]=a[p+272>>0];q=c[m>>2]|0;X=c[q+13064>>2]|0;g=l>>X;r=e>>X;e=f>>X;if((g|0)>0?(n=b+4336|0,o=c[p+31232>>2]&255,X=($(c[q+13140>>2]|0,e)|0)+r|0,ce((c[n>>2]|0)+X|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{X=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+r|0;ce((c[n>>2]|0)+X|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}e=c[m>>2]|0;m=1<>2];if(((k|0)%(m|0)|0|0)!=0?(k|0)<(c[e+13120>>2]|0):0){X=1;i=j;return X|0}X=l+f|0;if(((X|0)%(m|0)|0|0)!=0?(X|0)<(c[e+13124>>2]|0):0){X=1;i=j;return X|0}X=(fb(b)|0)==0&1;i=j;return X|0}function Rb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+4348|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function Sb(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;M=c[q+4>>2]|0;A=w+4|0;c[A>>2]=M;y=c[r>>2]|0;c[t>>2]=y;J=c[r+4>>2]|0;x=t+4|0;c[x>>2]=J;q=a[v+31254>>0]|0;do if(q<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;G=c[r>>2]|0;B=(c[G+13076>>2]|0)>>>0>>0;if(((!B?(c[G+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(q<<24>>24!=0&(o|0)==0):0)q=(sb(e,n)|0)&255;else{if((c[G+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)G=(o|0)==0&(c[v+31248>>2]|0)!=0;else G=0;if(B)q=1;else q=(q<<24>>24!=0&(o|0)==0|G)&1}B=(n|0)>2;G=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!G)L=y;else E=20;else if((G|0)==3)E=20;else L=y;do if((E|0)==20){G=(o|0)==0;if(!((K|0)==0&(G^1))){K=tb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){M=tb(e,o)|0;c[A>>2]=M}if(!G)E=25}else{K=0;E=25}if((E|0)==25)if(!y){L=0;break}L=tb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){J=tb(e,o)|0;c[x>>2]=J}}while(0);if(!(q<<24>>24)){A=c[r>>2]|0;y=c[A+13072>>2]|0;x=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=ub(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;Cc(e,f,g,t,w);Ub(e,f,g,A,1);Ub(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,Cc(e,h,j,F,H),Ub(e,h,j,n,1),Ub(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=hb(e)|0;J=G+280|0;c[J>>2]=M;if(M){M=(ib(e)|0)==1;H=c[J>>2]|0;if(M){H=0-H|0;c[J>>2]=H}}else H=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((H|0)<(-26-M|0)|(H|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{zb(e,k,l,m);break}}while(0);if((!((a[e+2080>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(jb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{l=c[E>>2]|0;if(!(a[l+1633>>0]|0))m=0;else{m=kb(e)|0;l=c[E>>2]|0}a[G+302>>0]=a[l+m+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+m+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){m=c[G+288>>2]|0;if((m+ -6|0)>>>0<9)k=2;else k=(m+ -22|0)>>>0<9&1;m=c[G+292>>2]|0;if((m+ -6|0)>>>0<9)m=2;else m=(m+ -22|0)>>>0<9&1}else{k=0;m=0}l=G+304|0;a[l>>0]=0;if(I)xb(e,f,g,n,k,0);k=c[r>>2]|0;C=c[k+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)xb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)xb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}h=1<<(c[k+13172>>2]|0)+A;j=1<<(c[k+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;Tb(e,0)}while(0);p=e+160|0;E=G+320|0;D=G+11680|0;C=1<0;B=e+(A+ -2<<2)+2612|0;F=G+284|0;I=0;do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;G=c[L+36>>2]|0;H=c[r>>2]|0;M=$(g>>c[H+13184>>2],G)|0;H=(c[L+4>>2]|0)+(M+(f>>c[H+13172>>2]<>2]))|0;if(k){I=0;do{b[D+(I<<1)>>1]=($(b[E+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(C|0));I=C}else I=0;Ea[c[B>>2]&7](H,D,G)}else xb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))H=0;else{Tb(e,1);H=0}do{if((c[z>>2]|0)==1){M=(H<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;w=c[L+40>>2]|0;G=c[r>>2]|0;M=$(g>>c[G+13188>>2],w)|0;G=(c[L+8>>2]|0)+(M+(f>>c[G+13176>>2]<>2]))|0;if(k){H=0;do{b[D+(H<<1)>>1]=($(b[E+(H<<1)>>1]|0,c[F>>2]|0)|0)>>>3;H=H+1|0}while((H|0)!=(C|0));H=C}else H=0;Ea[c[B>>2]&7](G,D,w)}else xb(e,f,(H<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+4344|0;r=0;do{w=$(r+g>>y,q)|0;h=0;do{a[(c[t>>2]|0)+((h+f>>y)+w)>>0]=1;h=h+x|0}while((h|0)<(u|0));r=r+x|0}while((r|0)<(u|0))}if(((a[e+2061>>0]|0)==0?(Ab(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)Rb(e,f,g,n)}else{v=n+ -1|0;u=1<>2]|0;f=vb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((wb(a,b)|0)<<1)<>2]|0;q=c[b+200>>2]|0;O=c[q+(h<<2)+13168>>2]|0;N=c[q+(h<<2)+13180>>2]|0;k=1<>2]|0;ga=k<>2]|0;P=e>>V&T;R=f>>V&T;S=T+2|0;Q=($(R,S)|0)+P|0;U=c[b+204>>2]|0;aa=c[U+1684>>2]|0;Q=c[aa+(Q<<2)>>2]|0;l=c[b+160>>2]|0;b=c[l+(h<<2)+32>>2]|0;l=c[l+(h<<2)>>2]|0;m=($(b,f>>N)|0)+(e>>O)|0;n=l+m|0;o=(h|0)==0;p=c[(o?r+288|0:r+292|0)>>2]|0;u=t+1|0;y=w+1|0;x=z+1|0;s=v+1|0;if(!(c[r+31288>>2]|0))fa=0;else fa=(Q|0)>(c[aa+(P+ -1+($(T&R+(ga>>V),S)|0)<<2)>>2]|0);da=fa&1;_=c[r+31292>>2]|0;H=c[r+31300>>2]|0;Z=c[r+31296>>2]|0;if(!(c[r+31304>>2]|0))ba=0;else ba=(Q|0)>(c[aa+(($(S,R+ -1|0)|0)+(T&P+(ea>>V))<<2)>>2]|0);S=ba&1;V=(ga<<1)+f|0;R=q+13124|0;aa=c[R>>2]|0;P=ga+f|0;V=((V|0)>(aa|0)?aa:V)-P>>N;aa=(ea<<1)+e|0;T=q+13120|0;ja=c[T>>2]|0;Q=ea+e|0;aa=((aa|0)>(ja|0)?ja:aa)-Q>>O;U=U+20|0;if((a[U>>0]|0)==1){ca=c[q+13084>>2]|0;ha=ga>>ca;ea=ea>>ca;ia=(1<>2]|0)-(P>>ca)|0;fa=(ha|0)>(fa|0)?fa:ha;if((fa|0)>0){da=0;ja=0;do{da=da|1;ja=ja+2|0}while((ja|0)<(fa|0))}else da=0}if(!((_|0)!=1|ia)){fa=(c[q+13160>>2]|0)-(f>>ca)|0;fa=(ha|0)>(fa|0)?fa:ha;if((fa|0)>0){_=0;ha=0;do{_=_|1;ha=ha+2|0}while((ha|0)<(fa|0))}else _=0}fa=(ga|0)!=0;if(!((Z|0)!=1|fa)){ga=(c[q+13156>>2]|0)-(e>>ca)|0;ga=(ea|0)>(ga|0)?ga:ea;if((ga|0)>0){Z=0;ha=0;do{Z=Z|1;ha=ha+2|0}while((ha|0)<(ga|0))}else Z=0}if(!(fa|ba^1)){ca=(c[q+13156>>2]|0)-(Q>>ca)|0;ca=(ea|0)>(ca|0)?ca:ea;if((ca|0)>0){S=0;ba=0;do{S=S|1;ba=ba+2|0}while((ba|0)<(ca|0))}else S=0}ba=u+0|0;ca=ba+64|0;do{a[ba>>0]=128;ba=ba+1|0}while((ba|0)<(ca|0));ba=w+0|0;ca=ba+65|0;do{a[ba>>0]=128;ba=ba+1|0}while((ba|0)<(ca|0));ea=S}else ea=S;ba=(H|0)!=0;if(ba){ja=a[l+(m+~b)>>0]|0;a[t>>0]=ja;a[w>>0]=ja}ca=(Z|0)!=0;if(ca)fe(y|0,l+(m-b)|0,k|0)|0;S=(ea|0)!=0;if(S?(Y=k+1|0,fe(w+Y|0,l+(k-b+m)|0,k|0)|0,X=$(d[l+(k+ -1-b+m+aa)>>0]|0,16843009)|0,W=k-aa|0,(W|0)>0):0){Y=aa+Y|0;aa=0;do{ja=w+(Y+aa)|0;a[ja>>0]=X;a[ja+1>>0]=X>>8;a[ja+2>>0]=X>>16;a[ja+3>>0]=X>>24;aa=aa+4|0}while((aa|0)<(W|0))}W=(_|0)!=0;if(W&(k|0)>0){Y=m+ -1|0;X=0;do{ja=X;X=X+1|0;a[t+X>>0]=a[l+(Y+($(ja,b)|0))>>0]|0}while((X|0)!=(k|0))}X=(da|0)!=0;if(X){aa=V+k|0;fa=m+ -1|0;if((V|0)>0){Y=k;do{ja=Y;Y=Y+1|0;a[t+Y>>0]=a[l+(fa+($(ja,b)|0))>>0]|0}while((Y|0)<(aa|0))}Y=$(d[l+(fa+($(aa+ -1|0,b)|0))>>0]|0,16843009)|0;aa=k-V|0;if((aa|0)>0){V=k+1+V|0;fa=0;do{ja=t+(V+fa)|0;a[ja>>0]=Y;a[ja+1>>0]=Y>>8;a[ja+2>>0]=Y>>16;a[ja+3>>0]=Y>>24;fa=fa+4|0}while((fa|0)<(aa|0))}}do if((a[U>>0]|0)==1?(ja=da|_,L=(ja|0)==0,ja=ja|H,M=(ja|0)==0,(Z|ea|ja|0)!=0):0){U=k<<1;V=c[T>>2]|0;if(((U<>O;R=c[R>>2]|0;if(((U<=(R|0))U=R-f>>N;if(!S)if((Q|0)<(V|0))O=k;else O=V-e>>O;else O=T;if(!X)if((P|0)<(R|0))U=k;else U=R-f>>N;N=a[w>>0]|0;if(M)a[t>>0]=N;a[t>>0]=N;if(!L){L=0;while(1)if((L|0)<(U|0))L=L+4|0;else break}if(!W?(K=$(N&255,16843009)|0,(k|0)>0):0){L=0;do{ja=t+(L|1)|0;a[ja>>0]=K;a[ja+1>>0]=K>>8;a[ja+2>>0]=K>>16;a[ja+3>>0]=K>>24;L=L+4|0}while((L|0)<(k|0))}do if(!X){L=$(d[t+k>>0]|0,16843009)|0;if((k|0)<=0)break;K=k+1|0;M=0;do{ja=t+(K+M)|0;a[ja>>0]=L;a[ja+1>>0]=L>>8;a[ja+2>>0]=L>>16;a[ja+3>>0]=L>>24;M=M+4|0}while((M|0)<(k|0))}while(0);f=(f|0)==0;if((e|0)==0&(U|0)>0){e=0;do{ja=t+(e|1)|0;a[ja>>0]=0;a[ja+1>>0]=0;a[ja+2>>0]=0;a[ja+3>>0]=0;e=e+4|0}while((e|0)<(U|0))}a[w>>0]=a[t>>0]|0;if(f)break;else e=0;while(1)if((e|0)<(O|0))e=e+4|0;else break}while(0);a:do if(!X){if(W){f=$(d[t+k>>0]|0,16843009)|0;if((k|0)<=0){J=84;break}J=k+1|0;e=0;while(1){ja=t+(J+e)|0;a[ja>>0]=f;a[ja+1>>0]=f>>8;a[ja+2>>0]=f>>16;a[ja+3>>0]=f>>24;e=e+4|0;if((e|0)>=(k|0)){J=84;break a}}}if(ba){e=$(d[t>>0]|0,16843009)|0;J=k<<1;if((k|0)>0)I=0;else{J=87;break}while(1){ja=t+(I|1)|0;a[ja>>0]=e;a[ja+1>>0]=e>>8;a[ja+2>>0]=e>>16;a[ja+3>>0]=e>>24;I=I+4|0;if((I|0)>=(J|0)){J=87;break a}}}if(ca){I=a[y>>0]|0;a[t>>0]=I;I=$(I&255,16843009)|0;H=k<<1;if((k|0)>0)J=0;else{J=89;break}while(1){ja=t+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0;if((J|0)>=(H|0)){J=89;break a}}}if(!S){a[t>>0]=-128;J=k<<1;f=(k|0)>0;if(f)e=0;else{J=84;break}do{ja=w+(e|1)|0;a[ja>>0]=-2139062144;a[ja+1>>0]=-2139062144>>8;a[ja+2>>0]=-2139062144>>16;a[ja+3>>0]=-2139062144>>24;e=e+4|0}while((e|0)<(J|0));if(f)e=0;else{J=84;break}while(1){ja=t+(e|1)|0;a[ja>>0]=-2139062144;a[ja+1>>0]=-2139062144>>8;a[ja+2>>0]=-2139062144>>16;a[ja+3>>0]=-2139062144>>24;e=e+4|0;if((e|0)>=(J|0)){J=84;break a}}}H=w+(k+1)|0;e=a[H>>0]|0;I=$(e&255,16843009)|0;G=(k|0)>0;if(G)J=0;else{a[t>>0]=e;break}do{ja=w+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0}while((J|0)<(k|0));I=a[H>>0]|0;a[t>>0]=I;I=$(I&255,16843009)|0;H=k<<1;if(G){G=0;do{ja=t+(G|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;G=G+4|0}while((G|0)<(H|0));J=92}else J=92}else J=84;while(0);if((J|0)==84)if((_|0)==0?(I=$(d[t+(k+1)>>0]|0,16843009)|0,(k|0)>0):0){J=0;do{ja=t+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0}while((J|0)<(k|0));J=87}else J=87;if((J|0)==87)if(!H){a[t>>0]=a[u>>0]|0;J=89}else J=89;if((J|0)==89)if((Z|0)==0?(G=$(d[t>>0]|0,16843009)|0,(k|0)>0):0){H=0;do{ja=w+(H|1)|0;a[ja>>0]=G;a[ja+1>>0]=G>>8;a[ja+2>>0]=G>>16;a[ja+3>>0]=G>>24;H=H+4|0}while((H|0)<(k|0));J=92}else J=92;if(((J|0)==92?!S:0)?(F=$(d[w+k>>0]|0,16843009)|0,(k|0)>0):0){H=k+1|0;G=0;do{ja=w+(H+G)|0;a[ja>>0]=F;a[ja+1>>0]=F>>8;a[ja+2>>0]=F>>16;a[ja+3>>0]=F>>24;G=G+4|0}while((G|0)<(k|0))}F=a[t>>0]|0;a[w>>0]=F;b:do if(!(c[q+13112>>2]|0)){if(o){if((p|0)==1|(k|0)==4){s=y;break}}else if(((p|0)==1?1:(c[q+4>>2]|0)!=3)|(k|0)==4){s=y;break}ja=p+ -26|0;ja=(ja|0)>-1?ja:26-p|0;ia=p+ -10|0;ia=(ia|0)>-1?ia:10-p|0;if((((ja|0)>(ia|0)?ia:ja)|0)>(c[1576+(g+ -3<<2)>>2]|0)){if((o&(a[q+13061>>0]|0)!=0&(g|0)==5?(D=F&255,E=a[w+64>>0]|0,C=E&255,ja=C+D-(d[w+32>>0]<<1)|0,(((ja|0)>-1?ja:0-ja|0)|0)<8):0)?(A=t+64|0,B=a[A>>0]|0,ja=(B&255)+D-(d[t+32>>0]<<1)|0,(((ja|0)>-1?ja:0-ja|0)|0)<8):0){a[v>>0]=F;a[v+64>>0]=E;w=0;do{ja=w;w=w+1|0;a[v+w>>0]=(($(D,63-ja|0)|0)+32+($(C,w)|0)|0)>>>6}while((w|0)!=63);w=0;while(1){v=w+1|0;a[t+v>>0]=(($(F&255,63-w|0)|0)+32+($(B&255,v)|0)|0)>>>6;if((v|0)==63)break b;F=a[t>>0]|0;B=a[A>>0]|0;w=v}}A=k<<1;D=a[t+A>>0]|0;a[z+A>>0]=D;B=a[w+A>>0]|0;a[v+A>>0]=B;A=A+ -2|0;C=(A|0)>-1;if(C){E=A;while(1){ja=E+1|0;ia=D;D=a[t+ja>>0]|0;a[z+ja>>0]=((ia&255)+2+((D&255)<<1)+(d[t+E>>0]|0)|0)>>>2;if((E|0)<=0)break;else E=E+ -1|0}}ja=((d[u>>0]|0)+2+((F&255)<<1)+(d[y>>0]|0)|0)>>>2&255;a[z>>0]=ja;a[v>>0]=ja;if(C)while(1){ja=A+1|0;ia=B;B=a[w+ja>>0]|0;a[v+ja>>0]=((ia&255)+2+((B&255)<<1)+(d[w+A>>0]|0)|0)>>>2;if((A|0)<=0){u=x;break}else A=A+ -1|0}else u=x}else s=y}else s=y;while(0);if(!p){Vb(n,s,u,b,g);i=j;return}else if((p|0)==1){if((k|0)>0){p=k;h=0;do{p=(d[u+h>>0]|0)+p+(d[s+h>>0]|0)|0;h=h+1|0}while((h|0)!=(k|0));q=p>>g+1;r=$(q,16843009)|0;g=0;do{p=($(g,b)|0)+m|0;h=0;do{ja=l+(p+h)|0;a[ja>>0]=r;a[ja+1>>0]=r>>8;a[ja+2>>0]=r>>16;a[ja+3>>0]=r>>24;h=h+4|0}while((h|0)<(k|0));g=g+1|0}while((g|0)!=(k|0))}else q=k>>g+1;if(!(o&(k|0)<32)){i=j;return}a[n>>0]=((q<<1)+2+(d[u>>0]|0)+(d[s>>0]|0)|0)>>>2;if((k|0)<=1){i=j;return}n=(q*3|0)+2|0;o=1;do{a[l+(o+m)>>0]=((d[s+o>>0]|0)+n|0)>>>2;o=o+1|0}while((o|0)!=(k|0));o=1;do{a[l+(($(o,b)|0)+m)>>0]=((d[u+o>>0]|0)+n|0)>>>2;o=o+1|0}while((o|0)!=(k|0));i=j;return}else{if(!(c[q+13104>>2]|0))l=0;else l=(a[r+31256>>0]|0)!=0;Wb(n,s,u,b,h,p,k,l&1);i=j;return}}function Vb(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;m=i;j=1<>0]|0,l-r|0)|0;s=r;r=r+1|0;u=$(d[h>>0]|0,r)|0;t=$(d[c+s>>0]|0,p)|0;a[b+(s+q)>>0]=v+j+u+t+($(d[k>>0]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function Wb(c,e,f,g,h,j,k,l){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;i=i+112|0;o=m;n=a[1592+(j+ -2)>>0]|0;p=o+k|0;q=($(n,k)|0)>>5;if((j|0)>17){s=e+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{u=e+(s+ -1)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=o+(s+k)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1632+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[f+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;o=(k|0)>0;if(o){q=0;do{u=q;q=q+1|0;s=$(q,n)|0;r=s>>5;s=s&31;if(!s){r=r+1|0;s=$(u,g)|0;t=0;do{u=p+(r+t)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=c+(t+s)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;t=t+4|0}while((t|0)<(k|0))}else{t=32-s|0;v=$(u,g)|0;u=0;do{w=u+r|0;x=$(d[p+(w+1)>>0]|0,t)|0;a[c+(u+v)>>0]=(x+16+($(d[p+(w+2)>>0]|0,s)|0)|0)>>>5;w=u|1;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|2;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|3;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;u=u+4|0}while((u|0)<(k|0))}}while((q|0)!=(k|0))}if(!((j|0)==26&(h|0)==0&(k|0)<32&(l|0)==0&o)){i=m;return}j=f+ -1|0;n=0;do{h=((d[f+n>>0]|0)-(d[j>>0]|0)>>1)+(d[e>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+($(n,g)|0)>>0]=h;n=n+1|0}while((n|0)!=(k|0));i=m;return}s=f+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{x=f+(s+ -1)|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=o+(s+k)|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1632+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[e+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;q=(k|0)>0;if(q){o=0;do{r=o;o=o+1|0;t=$(o,n)|0;u=t>>5;t=t&31;if(!t){s=u+1|0;t=0;do{a[c+(($(t,g)|0)+r)>>0]=a[p+(s+t)>>0]|0;t=t+1|0}while((t|0)!=(k|0))}else{s=32-t|0;v=0;do{y=v+u|0;x=$(d[p+(y+1)>>0]|0,s)|0;a[c+(($(v,g)|0)+r)>>0]=(x+16+($(d[p+(y+2)>>0]|0,t)|0)|0)>>>5;v=v+1|0}while((v|0)!=(k|0))}}while((o|0)!=(k|0))}if(!((j|0)==10&(h|0)==0&(k|0)<32&(l|0)==0&q)){i=m;return}g=e+ -1|0;n=0;do{j=((d[e+n>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(j>>>0>255)j=0-j>>31;a[c+n>>0]=j;j=n|1;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|2;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|3;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;n=n+4|0}while((n|0)<(k|0));i=m;return}function Xb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+46|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Uc(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0;i=g;return}function Yb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,6);i=b;return}function Zb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,-1);i=b;return}function _b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0){j=-1094995529;i=g;return j|0}j=d+2524|0;if(c[(c[j>>2]|0)+304>>2]|0){j=-12;i=g;return j|0}if((Tc(c[d+4>>2]|0,d+2528|0,1)|0)<0){j=-12;i=g;return j|0}k=d+200|0;m=c[k>>2]|0;c[d+2540>>2]=$(c[m+13132>>2]|0,c[m+13128>>2]|0)|0;m=d+4520|0;l=c[j>>2]|0;c[l+244>>2]=(c[m>>2]|0)==1&1;c[l+240>>2]=((c[m>>2]|0)+ -1|0)>>>0<2&1;c[e>>2]=l;c[d+2520>>2]=j;a[d+2570>>0]=(a[d+1450>>0]|0)==0?2:3;c[d+2544>>2]=f;b[d+2568>>1]=b[h>>1]|0;j=d+2552|0;f=(c[k>>2]|0)+20|0;c[j+0>>2]=c[f+0>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=0;i=g;return j|0}function $b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;l=d+2046|0;k=d+2572|0;h=d+4366|0;n=(f|0)==0;m=d+4364|0;f=d+200|0;while(1){if((a[l>>0]|0)==1){p=d+2524|0;o=d+2570|0;if(((a[o>>0]&8)==0?(c[d+2544>>2]|0)!=(c[k>>2]|0):0)?(b[d+2568>>1]|0)==(b[h>>1]|0):0)Xb(d,p,1)}else o=d+2570|0;if(!(a[o>>0]&1))o=0;else o=(b[d+2568>>1]|0)==(b[h>>1]|0)&1;if(((n?(b[h>>1]|0)==(b[m>>1]|0):0)?(j=c[f>>2]|0,(j|0)!=0):0)?(o|0)<=(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=21;break}if(o){h=15;break}o=b[h>>1]|0;if(o<<16>>16==(b[m>>1]|0)){d=0;h=21;break}b[h>>1]=(o&65535)+1&255}if((h|0)==15){h=d+2524|0;e=Ad(e,c[h>>2]|0)|0;if(!(a[d+2570>>0]&8))Xb(d,h,1);else Xb(d,h,9);p=(e|0)<0?e:1;i=g;return p|0}else if((h|0)==21){i=g;return d|0}return 0}function ac(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1664]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1664+(c<<5)+d>>0]=$(a[2688+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function bc(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function cc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;if((e|0)<=0){i=h;return}k=(d|0)>0;j=8-g|0;m=0;while(1){if(k){l=0;do{a[b+l>>0]=(_c(f,g)|0)<>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==4)break;else j=j+2|0}h=h+1|0;if((h|0)==4)break;else{e=e+8|0;c=c+f|0}}i=g;return}function ec(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==8)break;else j=j+2|0}h=h+1|0;if((h|0)==8)break;else{e=e+16|0;c=c+f|0}}i=g;return}function fc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==16)break;else j=j+2|0}h=h+1|0;if((h|0)==16)break;else{e=e+32|0;c=c+f|0}}i=g;return}function gc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==32)break;else j=j+2|0}h=h+1|0;if((h|0)==32)break;else{e=e+64|0;c=c+f|0}}i=g;return}function hc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c=c<<16>>16;e=7-c|0;c=1<0){f=1<0)g=0;else{i=d;return}while(1){h=a;j=0;while(1){b[h>>1]=(b[h>>1]|0)+f>>e;j=j+1|0;if((j|0)==(c|0))break;else h=h+2|0}g=g+1|0;if((g|0)==(c|0))break;else a=a+(c<<1)|0}i=d;return}if((c|0)<=0){i=d;return}e=0-e|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Qa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ra(a){a=a|0;D=a}function Sa(){return D|0}function Ta(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}fe(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function Ua(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+2500>>2]<<2)>>2]|0)==(d|0)){Va(b);f=b+1449|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)Wa(b);if(a[b+1448>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){Wa(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}fe(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)Xa(c[b+136>>2]|0);else Va(b);Wa(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;Ya((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)Xa(c[d>>2]|0);else Va(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){Wa(b);i=e;return}else{fe(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function Va(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;ad(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){ad(d,h);f=c[g>>2]|0}Yc((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function Wa(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+1440>>2]|0;e=2-f|0;e=(a[b+2060>>0]|0)==0|(f|0)==2?e:e^3;f=b+2112|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function Xa(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Yc(d,e,a);i=b;return}function Ya(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}yb(a);g=0;i=b;return g|0}function Za(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a)|0;i=b;return a|0}function _a(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[2880+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4032>>0]|0;e=h&1;h=c[j>>2]|0;g=d[2880+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[2880+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function $a(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function ab(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){yb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function bb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function db(a){a=a|0;var b=0;b=i;a=ab((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function eb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function fb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function gb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+5|0)|0;i=b;return a|0}function hb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(_a(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(ab((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function jb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+176|0)|0;i=b;return a|0}function kb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(_a(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function lb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+4336>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+4336>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=_a(f,n)|0;i=j;return n|0}function mb(a,b){a=a|0;b=b|0;var d=0;d=i;b=c[a+136>>2]|0;b=(_a(b+224|0,b+13|0)|0)==0;i=d;return(b?3:0)|0}function nb(a){a=a|0;var b=0;b=i;a=Ya((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function ob(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+17|0)|0;i=b;return a|0}function pb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(ab((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function qb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(ab((c[d>>2]|0)+224|0)|0)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=(ab((c[d>>2]|0)+224|0)|0|a)<<1;a=ab((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function rb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(_a(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(ab((c[a>>2]|0)+224|0)|0)<<1;d=ab((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function sb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function tb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function ub(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function vb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(_a(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function wb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=_a(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function xb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,Ba=0,Ca=0,Da=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0;n=i;i=i+96|0;v=n+24|0;s=n+8|0;t=n;u=f+136|0;o=c[u>>2]|0;p=c[f+160>>2]|0;m=c[p+(l<<2)+32>>2]|0;r=f+200|0;T=c[r>>2]|0;h=$(h>>c[T+(l<<2)+13180>>2],m)|0;h=(c[p+(l<<2)>>2]|0)+(h+(g>>c[T+(l<<2)+13168>>2]<>2]))|0;T=(l|0)!=0;g=o+320|0;p=T?o+11680|0:g;x=v+0|0;q=x+64|0;do{a[x>>0]=0;x=x+1|0}while((x|0)<(q|0));S=1<>2]|0;q=S<>0]|0)){A=a[o+272>>0]|0;C=f+204|0;Ma=c[C>>2]|0;if((a[Ma+21>>0]|0)!=0?(d[Ma+1629>>0]|0)>=(j|0):0){F=c[u>>2]|0;F=_a(F+224|0,F+(T&1|46)|0)|0}else F=0;if(y){B=c[r>>2]|0;G=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+2072>>2]|0)+(c[B+28>>2]|0)+(a[o+302>>0]|0)|0;else B=(c[f+2076>>2]|0)+(c[B+32>>2]|0)+(a[o+303>>0]|0)|0;B=B+A|0;G=c[r>>2]|0;A=c[G+13192>>2]|0;E=0-A|0;if((B|0)>=(E|0))E=(B|0)>57?57:B;do if((c[G+4>>2]|0)==1){if((E|0)>=30)if((E|0)>43){E=E+ -6|0;break}else{E=c[176+(E+ -30<<2)>>2]|0;break}}else E=(E|0)>51?51:E;while(0);B=A+E|0}A=(c[G+52>>2]|0)+j|0;E=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[G+634>>0]|0)!=0?!((F|0)!=0&(j|0)>2):0){H=c[C>>2]|0;G=(a[H+68>>0]|0)==0?G+635|0:H+69|0;H=((c[o+31244>>2]|0)!=1?3:0)+l|0;C=G+((j+ -2|0)*384|0)+(H<<6)|0;if((j|0)>3)ia=a[G+((j+ -4|0)*6|0)+H+1536>>0]|0;else ia=16}else{ia=16;C=0}}else{A=0;ia=0;B=0;C=0;E=0;F=0}I=(j<<1)+ -1|0;if(y){G=(j*3|0)+ -6+(j+ -1>>2)|0;J=j+1>>2}else{G=15;J=j+ -2|0}if((I|0)>0){L=G+52|0;H=0;while(1){Ma=c[u>>2]|0;K=H+1|0;if(!(_a(Ma+224|0,Ma+(L+(H>>J))|0)|0))break;if((K|0)<(I|0))H=K;else{H=K;break}}K=G+70|0;G=0;while(1){Ma=c[u>>2]|0;L=G+1|0;if(!(_a(Ma+224|0,Ma+(K+(G>>J))|0)|0))break;if((L|0)<(I|0))G=L;else{G=L;break}}if((H|0)>3){I=(H>>1)+ -1|0;K=ab((c[u>>2]|0)+224|0)|0;if((I|0)>1){J=1;do{K=ab((c[u>>2]|0)+224|0)|0|K<<1;J=J+1|0}while((J|0)!=(I|0))}H=K+((H&1|2)<3){J=(G>>1)+ -1|0;K=ab((c[u>>2]|0)+224|0)|0;if((J|0)>1){I=1;do{K=ab((c[u>>2]|0)+224|0)|0|K<<1;I=I+1|0}while((I|0)!=(J|0))}I=H;L=K+((G&1|2)<>2;N=L>>2;if((k|0)==1){G=I;H=L;P=d[536+(L<<3)+I>>0]|0;J=488;K=504;L=496;I=520;break}else if(k){J=I;K=L;w=49;break}P=d[(I&3)+(392+((L&3)<<2))>>0]|0;if((S|0)==8){G=I;H=L;P=(d[416+(N<<1)+M>>0]<<4)+P|0;J=496;K=8;L=488;I=24;break}else if((S|0)==16){G=I;H=L;P=(d[392+(N<<2)+M>>0]<<4)+P|0;J=8;K=8;L=24;I=24;break}else if((S|0)==4){G=I;H=L;J=408;K=8;L=408;I=24;break}else{G=I;H=L;P=(d[424+(N<<3)+M>>0]<<4)+P|0;J=40;K=8;L=104;I=24;break}}else{J=L;K=I;M=L>>2;N=I>>2;w=49}while(0);if((w|0)==49){G=J;H=K;P=d[536+(J<<3)+K>>0]|0;J=496;K=520;L=488;I=504}O=P+1|0;P=P>>4;if((P|0)>-1){Q=(1<0;l=R?90:88;S=S+ -1>>2;W=T?27:0;U=(j|0)==2;T=W+3|0;V=(j|0)==3;Z=(k|0)==0?9:15;_=y?0:27;da=(F|0)==0;aa=y?42:43;fa=y?40:41;ba=y?2:0;ea=o+31244|0;ca=x&-17;ga=f+204|0;Y=((B|0)<0)<<31>>31;X=((A|0)<0)<<31>>31;ha=(F|0)!=0&(j|0)>2;k=(j|0)<4;ia=ia&255;ma=(y&1)<<1;ja=ma|1;ra=1;ka=P;oa=0;xa=16;while(1){na=ka<<4;wa=a[J+ka>>0]|0;ta=wa&255;va=a[L+ka>>0]|0;ua=va&255;la=(ka|0)>0;if((ka|0)<(P|0)&la){if((ta|0)<(Q|0))pa=d[v+(ta+1<<3)+ua>>0]|0;else pa=0;if((ua|0)<(Q|0))pa=(d[ua+1+(v+(ta<<3))>>0]|0)+pa|0;ya=c[u>>2]|0;ya=(_a(ya+224|0,ya+(((pa|0)>1?1:pa)+l)|0)|0)&255;a[v+(ta<<3)+ua>>0]=ya;qa=1}else{if(!((ta|0)==(M|0)&(ua|0)==(N|0)))if(!(wa<<24>>24))ya=va<<24>>24==0&1;else ya=0;else ya=1;a[v+(ta<<3)+ua>>0]=ya;qa=0}na=O-na|0;pa=(ka|0)==(P|0);if(pa){a[s>>0]=na+255;sa=na+ -2|0;na=1}else{sa=15;na=0}if((ta|0)<(S|0))Ba=(a[v+(ta+1<<3)+ua>>0]|0)!=0&1;else Ba=0;if((ua|0)<(S|0))Ba=((a[ua+1+(v+(ta<<3))>>0]|0)!=0&1)<<1|Ba;do if(ya<<24>>24!=0&(sa|0)>-1){if(!(c[(c[r>>2]|0)+13100>>2]|0))if(U){wa=600;va=W}else w=73;else if(da){ya=(a[z>>0]|0)!=0;if(ya|U){wa=ya?664:600;va=ya?fa:W}else w=73}else{wa=664;va=fa}do if((w|0)==73){w=0;ya=(Ba<<4)+616|0;if(!y){wa=ya;va=W+(V?9:12)|0;break}va=(va|wa)<<24>>24==0?W:T;if(V){wa=ya;va=va+Z|0;break}else{wa=ya;va=va+21|0;break}}while(0);if((sa|0)>0){ya=va+92|0;do{Ma=c[u>>2]|0;if(_a(Ma+224|0,Ma+(ya+(d[wa+((d[I+sa>>0]<<2)+(d[K+sa>>0]|0))>>0]|0))|0)|0){a[s+(na&255)>>0]=sa;qa=0;na=na+1<<24>>24}sa=sa+ -1|0}while((sa|0)>0)}if(qa){a[s+(na&255)>>0]=0;qa=na+1<<24>>24;break}if(c[(c[r>>2]|0)+13100>>2]|0)if(da?(a[z>>0]|0)==0:0)w=87;else qa=aa;else w=87;if((w|0)==87){w=0;qa=(ka|0)==0?_:va+2|0}Ma=c[u>>2]|0;if((_a(Ma+224|0,Ma+(qa+92)|0)|0)==1){a[s+(na&255)>>0]=0;qa=na+1<<24>>24}else qa=na}else qa=na;while(0);na=qa&255;a:do if(qa<<24>>24){qa=la?ba:0;if(!(c[(c[r>>2]|0)+13116>>2]|0))Ga=0;else{if(da?(a[z>>0]|0)==0:0)oa=ma;else oa=ja;Ga=(d[o+oa+199>>0]|0)>>>2}sa=qa|(ra|0)==0&(pa^1)&1;Da=a[s>>0]|0;va=Da&255;qa=na>>>0>8?8:na;if(!qa){pa=-1;ra=1}else{ya=sa<<2;pa=-1;ra=1;wa=0;do{Ma=ra+ya|0;La=c[u>>2]|0;Ma=(_a(La+224|0,La+((R?Ma+16|0:Ma)+136)|0)|0)&255;a[t+wa>>0]=Ma;if(!(Ma<<24>>24))ra=((ra+ -1|0)>>>0<2&1)+ra|0;else{pa=(pa|0)==-1?wa:pa;ra=0}wa=wa+1|0}while((wa|0)<(qa|0))}wa=na+ -1|0;qa=a[s+wa>>0]|0;ya=qa&255;do if(!(a[z>>0]|0)){if((c[ea>>2]|0)==1?!((c[(c[r>>2]|0)+13104>>2]|0)==0|da|(ca|0)!=10):0){va=0;break}va=(va-ya|0)>3&1}else va=0;while(0);if((pa|0)!=-1){La=c[u>>2]|0;La=_a(La+224|0,La+((R?sa|4:sa)|160)|0)|0;Ma=t+pa|0;a[Ma>>0]=(d[Ma>>0]|0)+La}sa=(va|0)==0;if((a[(c[ga>>2]|0)+4>>0]|0)==0|sa){wa=0;va=0;do{va=ab((c[u>>2]|0)+224|0)|0|va<<1;wa=wa+1|0}while((wa|0)<(na|0));Ba=va<<16-na}else{va=wa&255;if(!((wa&255)<<24>>24))ya=0;else{wa=0;ya=0;do{ya=ab((c[u>>2]|0)+224|0)|0|ya<<1;wa=wa+1|0}while((wa|0)<(va|0))}Ba=ya<<17-na}ta=ta<<2;va=ua<<2;ua=o+oa+199|0;wa=0;Ha=0;Ca=xa;Fa=0;while(1){xa=Da&255;ya=(d[K+xa>>0]|0)+ta|0;xa=(d[I+xa>>0]|0)+va|0;b:do if((wa|0)<8){Ia=(d[t+wa>>0]|0)+1|0;Ma=(wa|0)==(pa|0);if((Ia|0)==((Ma?3:2)|0)&0==((Ma?0:0)|0))Ja=0;else{Ja=0;break}while(1){Ka=Ja+1|0;if(!(ab((c[u>>2]|0)+224|0)|0)){w=120;break}if((Ka|0)<31)Ja=Ka;else{w=124;break}}do if((w|0)==120){w=0;if((Ja|0)>=3){Ka=Ja;w=124;break}if((Ga|0)>0){Ka=0;La=0;do{La=ab((c[u>>2]|0)+224|0)|0|La<<1;Ka=Ka+1|0}while((Ka|0)!=(Ga|0))}else La=0;Ka=La+(Ja<0){La=Ga+ -3+Ka|0;Ka=0;Ma=0;do{Ma=ab((c[u>>2]|0)+224|0)|0|Ma<<1;Ka=Ka+1|0}while((Ka|0)!=(La|0))}else Ma=0;Ka=Ma+((1<>31|0,Ia|0,0)|0;Ja=D;La=3<>31;Ma=c[(c[r>>2]|0)+13116>>2]|0;do if((Ja|0)>(Na|0)|(Ja|0)==(Na|0)&Ia>>>0>La>>>0){La=Ga+1|0;if(Ma){Ga=La;break}Ga=(Ga|0)>3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ha|0)==0))break;Ha=a[ua>>0]|0;La=(Ha&255)>>>2;if((Ka|0)>=(3<>0]=Ha+1<<24>>24;Ha=1;break}if((Ka<<1|0)>=(1<>24==0){Ha=1;break}a[ua>>0]=Ha+ -1<<24>>24;Ha=1}else{Ia=0;while(1){Ja=Ia+1|0;if(!(ab((c[u>>2]|0)+224|0)|0)){w=138;break}if((Ja|0)<31)Ia=Ja;else{w=142;break}}do if((w|0)==138){w=0;if((Ia|0)>=3){Ja=Ia;w=142;break}if((Ga|0)>0){Ja=0;Ka=0;do{Ka=ab((c[u>>2]|0)+224|0)|0|Ka<<1;Ja=Ja+1|0}while((Ja|0)!=(Ga|0))}else Ka=0;Ka=Ka+(Ia<0){Ka=Ga+ -3+Ja|0;Ja=0;La=0;do{La=ab((c[u>>2]|0)+224|0)|0|La<<1;Ja=Ja+1|0}while((Ja|0)!=(Ka|0))}else La=0;Ka=La+((1<>31;Ma=c[(c[r>>2]|0)+13116>>2]|0;do if((Ka|0)>=(3<3?4:La;break b}while(0);if(!((Ma|0)!=0&(Ha|0)==0))break;La=a[ua>>0]|0;Ha=(La&255)>>>2;if((Ka|0)>=(3<>0]=La+1<<24>>24;Ha=1;break}if((Ka<<1|0)>=(1<>24==0){Ha=1;break}a[ua>>0]=La+ -1<<24>>24;Ha=1}while(0);do if(!((a[(c[ga>>2]|0)+4>>0]|0)==0|sa)){Fa=ae(Ia|0,Ja|0,Fa|0,0)|0;if(Da<<24>>24!=qa<<24>>24)break;Na=(Fa&1|0)==0;Ma=$d(0,0,Ia|0,Ja|0)|0;Ia=Na?Ia:Ma;Ja=Na?Ja:D}while(0);Na=(Ba&32768|0)==0;Da=$d(0,0,Ia|0,Ja|0)|0;Da=Na?Ia:Da;Ia=Na?Ja:D;Ba=Ba<<1&131070;Ja=Da&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[r>>2]|0)+634>>0]|0)==0|ha)){if(!((xa|ya|0)!=0|k)){Ca=ia;break}if((j|0)==3)Ca=(xa<<3)+ya|0;else if((j|0)==4)Ca=(xa>>>1<<3)+(ya>>>1)|0;else if((j|0)==5)Ca=(xa>>>2<<3)+(ya>>>2)|0;else Ca=(xa<<2)+ya|0;Ca=d[C+Ca>>0]|0}while(0);Da=ke(Da|0,Ia|0,B|0,Y|0)|0;Da=ke(Da|0,D|0,Ca|0,((Ca|0)<0)<<31>>31|0)|0;Da=ae(Da|0,D|0,A|0,X|0)|0;Da=_d(Da|0,D|0,E|0)|0;Ia=D;if((Ia|0)<0){Ja=(Da&-32768|0)==-32768&(Ia&268435455|0)==268435455?Da&65535:-32768;break}else{Ja=Ia>>>0>0|(Ia|0)==0&Da>>>0>32767?32767:Da&65535;break}}while(0);b[p+((xa<>1]=Ja;wa=wa+1|0;if((wa|0)>=(na|0)){xa=Ca;break a}Da=a[s+wa>>0]|0}}while(0);if(la)ka=ka+ -1|0;else break}}do if(a[z>>0]|0){if((c[(c[r>>2]|0)+13104>>2]|0)!=0?(x&-17|0)==10:0)Ea[c[f+2632>>2]&7](p,j&65535,(x|0)==26&1)}else{if(F){if(((j|0)==2?(c[(c[r>>2]|0)+13096>>2]|0)!=0:0)?(c[o+31244>>2]|0)==1:0){s=0;do{La=p+(15-s<<1)|0;Ma=b[La>>1]|0;Na=p+(s<<1)|0;b[La>>1]=b[Na>>1]|0;b[Na>>1]=Ma;s=s+1|0}while((s|0)!=8)}s=j&65535;Aa[c[f+2628>>2]&7](p,s);if(!(c[(c[r>>2]|0)+13104>>2]|0))break;if((c[o+31244>>2]|0)!=1)break;if((x&-17|0)!=10)break;Ea[c[f+2632>>2]&7](p,s,(x|0)==26&1);break}if(y&(c[o+31244>>2]|0)==1&(j|0)==2){za[c[f+2636>>2]&7](p);break}r=(G|0)>(H|0)?G:H;if(!r){za[c[f+(j+ -2<<2)+2656>>2]&7](p);break}s=H+4+G|0;do if((r|0)>=4){if((r|0)<8){s=(s|0)<8?s:8;break}if((r|0)<12)s=(s|0)<24?s:24}else s=(s|0)<4?s:4;while(0);Aa[c[f+(j+ -2<<2)+2640>>2]&7](p,s)}while(0);if(!(a[o+304>>0]|0)){Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}if((q|0)<=0){Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}o=c[o+284>>2]|0;r=0;do{Na=p+(r<<1)|0;b[Na>>1]=(($(b[g+(r<<1)>>1]|0,o)|0)>>>3)+(e[Na>>1]|0);r=r+1|0}while((r|0)!=(q|0));Na=j+ -2|0;Na=f+(Na<<2)+2612|0;Na=c[Na>>2]|0;Ea[Na&7](h,p,m);i=n;return}function yb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function zb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+2112>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+4316>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+4316>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Ab(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;j=c[b+136>>2]|0;k=b+200|0;do if((e|0)>0&(e&7|0)==0){if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&8|0)!=0:0)?((e|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;h=1<0){l=b+2596|0;m=b+4320|0;n=0;do{o=n+d+($(c[l>>2]|0,e)|0)>>2;a[(c[m>>2]|0)+o>>0]=2;n=n+4|0}while((n|0)<(h|0))}}while(0);if(!((d|0)>0&(d&7|0)==0)){i=g;return}if(((a[b+2062>>0]|0)==0?(c[j+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}if(((a[(c[b+204>>2]|0)+53>>0]|0)==0?(c[j+31312>>2]&2|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0){i=g;return}h=1<>2]|0,k+e|0)|0)+d>>2;a[(c[b>>2]|0)+o>>0]=2;k=k+4|0}while((k|0)<(h|0));i=g;return}function Bb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;j=i;i=i+32|0;o=j+8|0;w=j;n=j+18|0;r=j+16|0;l=e+200|0;J=c[l>>2]|0;u=c[J+13120>>2]|0;k=(u-h|0)<=(f|0);b[n>>1]=0;b[r>>1]=0;v=c[J+13080>>2]|0;t=1<>v,c[J+13128>>2]|0)|0)+(f>>v)|0;s=c[e+2508>>2]|0;m=c[s+(v<<3)+4>>2]|0;x=c[s+(v<<3)>>2]|0;if((c[J+68>>2]|0)!=0?(a[J+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;q=(f|0)!=0;if(q){v=v+ -1|0;y=c[s+(v<<3)>>2]|0;v=c[s+(v<<3)+4>>2]|0}else{y=0;v=0}s=t+f|0;s=(s|0)>(u|0)?u:s;t=t+g|0;z=c[J+13124>>2]|0;t=(t|0)>(z|0)?z:t;z=(s|0)==(u|0)?s:s+ -8|0;u=(t|0)>(g|0);if(u){J=q?f:8;M=(J|0)<(s|0);P=q?f+ -8|0:0;E=e+2596|0;O=e+4320|0;H=e+4316|0;B=w+4|0;C=e+160|0;D=n+1|0;Q=r+1|0;K=e+4300|0;L=e+4284|0;I=e+4324|0;F=e+4304|0;G=e+4288|0;A=(P|0)>=(z|0);T=x;S=m;N=g;do{if(M){R=N+4|0;W=S+ -2&-2;U=J;do{Z=c[E>>2]|0;ba=($(Z,N)|0)+U>>2;_=c[I>>2]|0;ba=a[_+ba>>0]|0;ca=ba&255;Z=a[_+(($(Z,R)|0)+U>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){V=U+ -1|0;X=c[l>>2]|0;aa=c[X+13064>>2]|0;Y=$(N>>aa,c[X+13140>>2]|0)|0;da=c[H>>2]|0;aa=(a[da+(Y+(V>>aa))>>0]|0)+1+(a[da+(Y+(U>>aa))>>0]|0)>>1;Y=aa+T|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+W+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[w>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+W+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[B>>2]=Z;ca=c[C>>2]|0;Z=c[ca+32>>2]|0;da=$(Z,N)|0;X=(c[ca>>2]|0)+((U<>2])+da)|0;if(p){a[n>>0]=Gb(e,V,N)|0;a[D>>0]=Gb(e,V,R)|0;a[r>>0]=Gb(e,U,N)|0;a[Q>>0]=Gb(e,U,R)|0;Ha[c[F>>2]&3](X,Z,Y,w,n,r);break}else{Ha[c[G>>2]&3](X,Z,Y,w,n,r);break}}while(0);U=U+8|0}while((U|0)<(s|0))}if(!((N|0)==0|A)){R=N+ -1|0;V=S;S=P;do{Y=$(c[E>>2]|0,N)|0;Z=c[O>>2]|0;aa=a[Z+(Y+S>>2)>>0]|0;ba=aa&255;U=S+4|0;Y=a[Z+(Y+U>>2)>>0]|0;Z=Y&255;aa=aa<<24>>24!=0;Y=Y<<24>>24==0;do if(!(Y&(aa^1))){W=c[l>>2]|0;V=c[W+13064>>2]|0;_=S>>V;T=c[W+13140>>2]|0;da=($(R>>V,T)|0)+_|0;X=c[H>>2]|0;_=(a[X+da>>0]|0)+1+(a[X+(($(N>>V,T)|0)+_)>>0]|0)>>1;T=(S|0)>=(f|0);V=T?m:v;T=T?x:y;X=_+T|0;if((X|0)<0)X=0;else X=(X|0)>51?51:X;X=d[1280+X>>0]|0;if(aa){aa=(ba<<1)+(V+ -2&-2)+_|0;if((aa|0)<0)aa=0;else aa=(aa|0)>53?53:aa;aa=d[1336+aa>>0]|0}else aa=0;c[w>>2]=aa;if(Y)Y=0;else{Y=(Z<<1)+(V+ -2&-2)+_|0;if((Y|0)<0)Y=0;else Y=(Y|0)>53?53:Y;Y=d[1336+Y>>0]|0}c[B>>2]=Y;ca=c[C>>2]|0;Y=c[ca+32>>2]|0;da=$(Y,N)|0;W=(c[ca>>2]|0)+((S<>2])+da)|0;if(p){a[n>>0]=Gb(e,S,R)|0;a[D>>0]=Gb(e,U,R)|0;a[r>>0]=Gb(e,S,N)|0;a[Q>>0]=Gb(e,U,N)|0;Ha[c[K>>2]&3](W,Y,X,w,n,r);break}else{Ha[c[L>>2]&3](W,Y,X,w,n,r);break}}while(0);S=S+8|0}while((S|0)<(z|0));S=V}N=N+8|0}while((N|0)<(t|0));J=c[l>>2]|0}else S=m;if(c[J+4>>2]|0){C=q?v:m;F=e+2596|0;D=e+4320|0;v=e+4316|0;x=o+4|0;w=e+160|0;B=n+1|0;A=r+1|0;G=e+4308|0;E=e+4292|0;H=e+4324|0;z=e+4312|0;y=e+4296|0;I=1;do{O=1<>2];P=1<>2];if(u){N=O<<3;L=q?f:N;K=(L|0)<(s|0);J=P<<3;M=q?f-N|0:0;O=O<<2;P=P<<2;Q=g;do{if(K){R=Q+P|0;T=L;do{W=c[F>>2]|0;Y=($(W,Q)|0)+T>>2;da=c[H>>2]|0;Y=(a[da+Y>>0]|0)==2;W=(a[da+(($(W,R)|0)+T>>2)>>0]|0)==2;do if(Y|W){U=T+ -1|0;V=c[l>>2]|0;da=c[V+13064>>2]|0;_=U>>da;X=c[V+13140>>2]|0;Z=$(Q>>da,X)|0;aa=c[v>>2]|0;ba=T>>da;X=$(R>>da,X)|0;X=(a[aa+(X+_)>>0]|0)+1+(a[aa+(X+ba)>>0]|0)>>1;if(Y)Y=Hb(e,(a[aa+(Z+ba)>>0]|0)+1+(a[aa+(Z+_)>>0]|0)>>1,I,S)|0;else Y=0;c[o>>2]=Y;if(W)W=Hb(e,X,I,S)|0;else W=0;c[x>>2]=W;ca=c[w>>2]|0;W=c[ca+(I<<2)+32>>2]|0;da=$(W,Q>>c[V+(I<<2)+13180>>2])|0;V=(c[ca+(I<<2)>>2]|0)+((T>>c[V+(I<<2)+13168>>2]<>2])+da)|0;if(p){a[n>>0]=Gb(e,U,Q)|0;a[B>>0]=Gb(e,U,R)|0;a[r>>0]=Gb(e,T,Q)|0;a[A>>0]=Gb(e,T,R)|0;ya[c[z>>2]&3](V,W,o,n,r);break}else{ya[c[y>>2]&3](V,W,o,n,r);break}}while(0);T=T+N|0}while((T|0)<(s|0))}if(Q){U=s-((s|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:N)|0;if((M|0)<(U|0)){T=Q+ -1|0;S=M;do{W=$(c[F>>2]|0,Q)|0;da=c[D>>2]|0;R=S+O|0;X=(a[da+(W+S>>2)>>0]|0)==2;W=(a[da+(W+R>>2)>>0]|0)==2;do if(X|W){if(X){da=c[l>>2]|0;ca=c[da+13064>>2]|0;Y=S>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+Y|0;ba=c[v>>2]|0;Y=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+Y)>>0]|0)>>1}else Y=0;if(W){da=c[l>>2]|0;ca=c[da+13064>>2]|0;V=R>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+V|0;ba=c[v>>2]|0;V=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+V)>>0]|0)>>1}else V=0;if(X)X=Hb(e,Y,I,C)|0;else X=0;c[o>>2]=X;if(W)V=Hb(e,V,I,m)|0;else V=0;c[x>>2]=V;da=c[l>>2]|0;ca=c[w>>2]|0;V=c[ca+(I<<2)+32>>2]|0;W=$(V,Q>>c[da+13184>>2])|0;W=(c[ca+(I<<2)>>2]|0)+((S>>c[da+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Gb(e,S,T)|0;a[B>>0]=Gb(e,R,T)|0;a[r>>0]=Gb(e,S,Q)|0;a[A>>0]=Gb(e,R,Q)|0;ya[c[G>>2]&3](W,V,o,n,r);break}else{ya[c[E>>2]&3](W,V,o,n,r);break}}while(0);S=S+N|0}while((S|0)<(U|0));S=C}else S=C}Q=Q+J|0}while((Q|0)<(t|0))}I=I+1|0;J=c[l>>2]|0}while((I|0)!=3)}if(!(a[J+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[J+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Cb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Cb(e,f-h|0,g);k=k^1;!(l|k)?(Cb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Cb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Cb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;v=i;i=i+48|0;j=v+24|0;h=v+42|0;u=v+40|0;r=v+16|0;n=v+8|0;m=v;k=e+200|0;S=c[k>>2]|0;s=c[S+13080>>2]|0;q=f>>s;s=g>>s;D=S+13128|0;p=($(s,c[D>>2]|0)|0)+q|0;L=c[e+204>>2]|0;N=L+1668|0;M=c[(c[N>>2]|0)+(p<<2)>>2]|0;l=e+2504|0;o=c[l>>2]|0;t=o+(p*148|0)|0;b[h>>1]=0;b[u>>1]=0;c[r>>2]=0;E=($(c[D>>2]|0,s)|0)+q|0;E=a[(c[e+4352>>2]|0)+E>>0]|0;if((a[L+42>>0]|0)!=0?(a[L+53>>0]|0)==0:0){R=1;O=1}else{R=E<<24>>24==0&1;O=0}G=(q|0)==0;c[j>>2]=G&1;I=(s|0)==0;A=j+4|0;c[A>>2]=I&1;H=(q|0)==((c[D>>2]|0)+ -1|0);z=j+8|0;c[z>>2]=H&1;F=(s|0)==((c[S+13132>>2]|0)+ -1|0);w=j+12|0;c[w>>2]=F&1;if(R<<24>>24){if(G)J=0;else{if(O){J=c[L+1676>>2]|0;J=(c[J+(M<<2)>>2]|0)!=(c[J+(c[(c[N>>2]|0)+(p+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[h>>0]=K}if(H)K=0;else{if(O){K=c[L+1676>>2]|0;K=(c[K+(M<<2)>>2]|0)!=(c[K+(c[(c[N>>2]|0)+(p+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+4328>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[h+1>>0]=P}if(I)P=0;else{if(O){P=c[L+1676>>2]|0;P=(c[P+(M<<2)>>2]|0)!=(c[P+(c[(c[N>>2]|0)+(p-(c[D>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+ -1|0)|0)+q<<2)>>2]|0)):0)Q=1;else Q=P;a[u>>0]=Q}if(F)L=0;else{if(O){L=c[L+1676>>2]|0;L=(c[L+(M<<2)>>2]|0)!=(c[L+(c[(c[N>>2]|0)+((c[D>>2]|0)+p<<2)>>2]<<2)>>2]|0)&1}else L=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+4328>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+1|0)|0)+q<<2)>>2]|0)):0)M=1;else M=L;a[u+1>>0]=M}if(!G)if(I)B=47;else{if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[r>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[r+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|F):0){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[r+2>>0]=H}if(!(G|F)){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+4328>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[r+3>>0]=D}}O=(c[S+4>>2]|0)!=0?3:1;I=e+160|0;H=e+168|0;P=e+2672|0;J=s<<1;G=J+ -1|0;D=n+4|0;E=s+ -1|0;Q=q+1|0;L=q+ -1|0;J=J+2|0;F=m+4|0;K=s+1|0;N=q<<1;M=N+ -1|0;N=N+2|0;R=e+((R&255)<<2)+2676|0;na=S;Y=0;while(1){ka=c[na+(Y<<2)+13168>>2]|0;_=f>>ka;ha=c[na+(Y<<2)+13180>>2]|0;Z=g>>ha;ba=c[I>>2]|0;S=c[ba+(Y<<2)+32>>2]|0;U=1<>2];X=U>>ka;W=U>>ha;ka=c[na+13120>>2]>>ka;ca=ka-_|0;X=(X|0)>(ca|0)?ca:X;ha=c[na+13124>>2]>>ha;ca=ha-Z|0;W=(W|0)>(ca|0)?ca:W;ca=$(S,Z)|0;ga=c[na+56>>2]|0;ca=(_<>2]|0;aa=ba+ca|0;U=U+2<>2]|0;fa=1<>0]|0;if((ia|0)==1){ea=X<0){da=V;ba=0;ca=aa;while(1){fe(da|0,ca|0,ea|0)|0;ba=ba+1|0;if((ba|0)==(W|0))break;else{da=da+U|0;ca=ca+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);Fa[c[P>>2]&1](aa,V,S,U,t,j,X,W,Y);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}else if((ia|0)==2){ja=c[j>>2]|0;ia=c[z>>2]|0;la=c[w>>2]|0;do if(!(c[A>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-S-oa);c[D>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,G)|0)+_-pa<>2]|0,E)|0)|0;pa=c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[oa>>0]=a[pa>>0]|0;na=c[k>>2]|0;oa=fa;break}else{b[oa>>1]=b[pa>>1]|0;oa=fa;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,E)|0)+q|0;na=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){na=oa+na|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)|0;ma=da+(na+ma)|0;na=(c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+na|0;if(!ga){a[ma>>0]=a[na>>0]|0;break}else{b[ma>>1]=b[na>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(W,S)|0)+ca-oa);c[F>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,J)|0)+_-pa<>2]|0)+13128>>2]|0,K)|0)|0;ma=c[m+(((a[(c[l>>2]|0)+(ma*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[ka>>0]=a[ma>>0]|0;ka=fa;break}else{b[ka>>1]=b[ma>>1]|0;ka=fa;break}}else ka=0;while(0);pa=($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)+q|0;ma=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0,ma|0)|0;if((ia|0)!=1){ka=ka+ma|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)|0;la=da+(ka+la)|0;ka=(c[m+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0;if(!ga){a[la>>0]=a[ka>>0]|0;break}else{b[la>>1]=b[ka>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){la=da+U|0;ja=(c[e+(Y<<2)+184>>2]|0)+(($(ha,M)|0)+Z<0;if(!ga){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){ia=da+((X<>2]|0)+(($(ha,N)|0)+Z<0;if(!ga){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,x=ja<0):0){ea=da+(ea-x)|0;da=0;ba=ba+(ca-x)|0;while(1){fe(ea|0,ba|0,y|0)|0;da=da+1|0;if((da|0)==(W|0))break;else{ea=ea+U|0;ba=ba+S|0}}}Eb(e,aa,S,_,Z,X,W,Y,q,s);Ca[c[R>>2]&3](aa,V,S,U,t,j,X,W,Y,h,u,r);Fb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}Y=Y+1|0;if((Y|0)>=(O|0))break;na=c[k>>2]|0}i=v;return}function Db(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Bb(a,b-e|0,d-e|0,e);if(!(j|k))Bb(a,b,d-e|0,e);if(g|h){i=f;return}Bb(a,b-e|0,d,e);i=f;return}function Eb(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Fb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+4348|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){fe(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Gb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+4348>>2]|0)+e>>0]|0;i=f;return e|0}function Hb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Ib(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+4376|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}nd(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}fe(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+4384|0;b=b+4380|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ld(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Jb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;f=b+60|0;d=c[f>>2]|0;Zc();ac();f=c[f>>2]|0;c[f+4>>2]=b;g=md(31328)|0;c[f+136>>2]=g;if((((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,g=fd(199)|0,c[f+152>>2]=g,(g|0)!=0):0)?(g=wd()|0,c[f+164>>2]=g,(g|0)!=0):0)?(h=wd()|0,c[f+2524>>2]=h,(h|0)!=0):0){c[f+2528>>2]=h;c[f+2592>>2]=2147483647;a[f+4469>>0]=1;c[f+2584>>2]=0;c[d+4368>>2]=0;c[d+4520>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[d+141>>0]=1;else a[d+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[d+140>>0]=1;h=0;i=e;return h|0}a[d+140>>0]=2;h=0;i=e;return h|0}Lb(b)|0;h=-12;i=e;return h|0}function Kb(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0;k=i;i=i+16|0;q=k+8|0;n=k;m=c[f+60>>2]|0;l=j+28|0;K=c[l>>2]|0;if(!K){g=$b(m,g,1)|0;if((g|0)<0){_a=g;i=k;return _a|0}c[h>>2]=g;_a=0;i=k;return _a|0}r=m+2520|0;c[r>>2]=0;f=m+4524|0;b[f>>1]=1;J=c[j+24>>2]|0;c[r>>2]=0;G=m+2584|0;A=m+2588|0;c[A>>2]=c[G>>2];c[G>>2]=0;w=m+4408|0;c[w>>2]=0;a:do if((K|0)>3){H=m+4470|0;F=m+4412|0;z=m+4404|0;v=m+4388|0;C=m+4396|0;x=m+4392|0;E=m+4384|0;y=m+4380|0;j=m+4376|0;u=m+136|0;t=m+2512|0;I=m+4480|0;while(1){B=(a[H>>0]|0)==0;if(B){while(1){L=J+1|0;if(((a[J>>0]|0)==0?(a[L>>0]|0)==0:0)?(a[J+2>>0]|0)==1:0)break;if((K|0)<5){p=-1094995529;o=180;break a}J=L;K=K+ -1|0}J=J+3|0;M=0;K=K+ -3|0}else{L=c[I>>2]|0;if((L|0)>0){N=0;M=0;do{N=d[J+M>>0]|N<<8;M=M+1|0}while((M|0)!=(L|0));M=N}else M=0;K=K-L|0;if((M|0)>(K|0)){p=-1094995529;o=180;break a}J=J+L|0}B=B?K:M;L=c[F>>2]|0;N=c[w>>2]|0;if((L|0)<(N+1|0)){L=L+1|0;M=kd(c[z>>2]|0,L,16)|0;if(!M){p=-12;o=180;break a}c[z>>2]=M;N=c[F>>2]|0;ce(M+(N<<4)|0,0,L-N<<4|0)|0;ld(v,L,4)|0;ld(C,L,4)|0;ld(x,L,4)|0;N=c[C>>2]|0;c[N+(c[F>>2]<<2)>>2]=1024;N=od(c[N+(c[F>>2]<<2)>>2]|0,4)|0;c[(c[x>>2]|0)+(c[F>>2]<<2)>>2]=N;c[F>>2]=L;N=c[w>>2]|0}c[E>>2]=c[(c[C>>2]|0)+(N<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(N<<2)>>2];M=c[z>>2]|0;L=Ib(m,J,B,M+(N<<4)|0)|0;c[(c[v>>2]|0)+(c[w>>2]<<2)>>2]=c[j>>2];c[(c[C>>2]|0)+(c[w>>2]<<2)>>2]=c[E>>2];Za=c[y>>2]|0;_a=c[w>>2]|0;c[w>>2]=_a+1;c[(c[x>>2]|0)+(_a<<2)>>2]=Za;if((L|0)<0){p=L;o=180;break a}Za=c[u>>2]|0;Xa=c[M+(N<<4)+12>>2]|0;Ya=c[M+(N<<4)+8>>2]|0;Ya=Ya>>>0>268435455?-8:Ya<<3;_a=Ya>>>0>2147483639|(Xa|0)==0;Ya=_a?0:Ya;Xa=_a?0:Xa;B=_a?-1094995529:0;c[Za+204>>2]=Xa;c[Za+216>>2]=Ya;c[Za+220>>2]=Ya+8;c[Za+208>>2]=Xa+(Ya>>3);c[Za+212>>2]=0;if(_a){p=B;o=180;break a}Ob(m)|0;if(((c[t>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;K=K-L|0;if((K|0)<=3)break;else J=J+L|0}if((c[w>>2]|0)>0){la=m+4|0;Ga=m+1448|0;aa=m+2046|0;_=m+1428|0;Fa=m+204|0;wa=m+200|0;Ka=m+1449|0;La=m+1432|0;Pa=m+1436|0;Qa=m+2580|0;Ia=m+156|0;ra=m+1440|0;I=m+1450|0;L=m+1620|0;va=m+2572|0;K=m+2516|0;M=m+2576|0;W=m+2056|0;X=m+2057|0;N=m+2058|0;P=m+2052|0;O=m+2048|0;Na=m+2068|0;S=m+2072|0;Q=m+2076|0;T=m+2080|0;Y=m+2061|0;V=m+2084|0;U=m+2088|0;Z=m+2062|0;J=m+1451|0;Oa=m+2108|0;Ja=m+2112|0;Ma=m+2500|0;na=m+2592|0;oa=m+2604|0;pa=m+4416|0;Ha=q+4|0;xa=m+4320|0;za=m+2596|0;ya=m+2600|0;Aa=m+4324|0;Ca=m+4344|0;Da=m+4348|0;Ea=m+4328|0;sa=m+160|0;qa=m+140|0;ua=m+164|0;R=m+2096|0;F=m+2100|0;E=m+2104|0;G=m+141|0;H=m+4368|0;ca=m+2504|0;ba=m+2508|0;ea=m+4332|0;da=m+4336|0;fa=m+4340|0;ha=m+4352|0;ga=m+4316|0;ia=m+2608|0;ka=m+196|0;ma=m+4364|0;ja=m+168|0;C=0;b:while(1){c[j>>2]=c[(c[v>>2]|0)+(C<<2)>>2];c[y>>2]=c[(c[x>>2]|0)+(C<<2)>>2];Za=c[z>>2]|0;Ya=c[Za+(C<<4)+12>>2]|0;Za=c[Za+(C<<4)+8>>2]|0;_a=c[u>>2]|0;Za=Za>>>0>268435455?-8:Za<<3;Ra=Za>>>0>2147483639|(Ya|0)==0;Za=Ra?0:Za;Ya=Ra?0:Ya;c[_a+204>>2]=Ya;c[_a+216>>2]=Za;c[_a+220>>2]=Za+8;c[_a+208>>2]=Ya+(Za>>3);c[_a+212>>2]=0;c:do if(Ra){s=Ra?-1094995529:0;o=178}else{Ra=Ob(m)|0;d:do if((Ra|0)>=0){if(!Ra)break c;switch(c[t>>2]|0){case 48:{Ra=Dc(m)|0;if((Ra|0)<0)break d;else break c};case 34:{Ra=Ec(m)|0;if((Ra|0)<0)break d;else break c};case 40:case 39:{Ra=Gc(m)|0;if((Ra|0)<0)break d;else break c};case 37:case 36:{b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647;break c};case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{Ra=c[u>>2]|0;Sa=Ra+204|0;_a=(bd(Sa)|0)&255;a[Ga>>0]=_a;Ta=c[t>>2]|0;if(!((Ta+ -16|0)>>>0>4|_a<<24>>24==0)?(b[ma>>1]=(e[ma>>1]|0)+1&255,c[na>>2]=2147483647,(Ta+ -19|0)>>>0<2):0){Yb(m);Ta=c[t>>2]|0}a[aa>>0]=0;if((Ta+ -16|0)>>>0<8)a[aa>>0]=bd(Sa)|0;Ta=dd(Sa)|0;c[_>>2]=Ta;if(Ta>>>0>255){p=B;o=180;break a}Ta=c[m+(Ta<<2)+400>>2]|0;if(!Ta){p=B;o=180;break a}if(!(a[Ga>>0]|0)){Wa=c[Ta+4>>2]|0;if((c[Fa>>2]|0)!=(Wa|0)){p=B;o=180;break a}}else Wa=c[Ta+4>>2]|0;c[Fa>>2]=Wa;Ua=c[t>>2]|0;Va=(Ua|0)==21;if(Va?(c[A>>2]|0)==1:0)a[aa>>0]=1;Ta=c[wa>>2]|0;Wa=c[(c[m+(c[Wa>>2]<<2)+272>>2]|0)+4>>2]|0;if((Ta|0)!=(Wa|0)){c[wa>>2]=Wa;e:do if(Ta){if((Ua+ -16|0)>>>0>7|Va)break;do if((c[Wa+13120>>2]|0)==(c[Ta+13120>>2]|0)){if((c[Wa+13124>>2]|0)!=(c[Ta+13124>>2]|0))break;if((c[Wa+76+(((c[Wa+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[aa>>0]=0}while(0);Yb(m);Ta=c[wa>>2]|0;Nb(m);Va=c[Ta+13064>>2]|0;Wa=Ta+13120|0;ab=c[Wa>>2]|0;Xa=Ta+13124|0;$a=c[Xa>>2]|0;Va=$(($a>>Va)+1|0,(ab>>Va)+1|0)|0;Ua=$(c[Ta+13132>>2]|0,c[Ta+13128>>2]|0)|0;_a=Ta+13156|0;Za=Ta+13160|0;Ya=$(c[Za>>2]|0,c[_a>>2]|0)|0;c[za>>2]=(ab>>2)+1;c[ya>>2]=($a>>2)+1;c[ca>>2]=pd(Ua,148)|0;$a=pd(Ua,8)|0;c[ba>>2]=$a;if((c[ca>>2]|0)==0|($a|0)==0){o=71;break b}$a=Ta+13144|0;ab=Ta+13140|0;c[ea>>2]=fd($(c[ab>>2]|0,c[$a>>2]|0)|0)|0;ab=od(c[$a>>2]|0,c[ab>>2]|0)|0;c[da>>2]=ab;if((c[ea>>2]|0)==0|(ab|0)==0){o=71;break b}c[Ca>>2]=od(c[Ta+13148>>2]|0,c[Ta+13152>>2]|0)|0;c[fa>>2]=md(Ya)|0;Ya=fd($((c[Za>>2]|0)+1|0,(c[_a>>2]|0)+1|0)|0)|0;c[Da>>2]=Ya;if(!(c[fa>>2]|0)){o=71;break b}if((c[Ca>>2]|0)==0|(Ya|0)==0){o=71;break b}c[ha>>2]=fd(Ua)|0;c[Ea>>2]=od(Va,4)|0;ab=od(Va,1)|0;c[ga>>2]=ab;if(!ab){o=71;break b}if(!(c[ha>>2]|0)){o=71;break b}if(!(c[Ea>>2]|0)){o=71;break b}c[xa>>2]=pd(c[za>>2]|0,c[ya>>2]|0)|0;ab=pd(c[za>>2]|0,c[ya>>2]|0)|0;c[Aa>>2]=ab;if((c[xa>>2]|0)==0|(ab|0)==0){o=71;break b}ab=c[la>>2]|0;c[ab+124>>2]=c[Wa>>2];c[ab+128>>2]=c[Xa>>2];c[ab+116>>2]=c[Ta+12>>2];c[ab+120>>2]=c[Ta+16>>2];c[ab+136>>2]=c[Ta+60>>2];c[ab+172>>2]=c[Ta+(((c[Ta+72>>2]|0)+ -1|0)*12|0)+80>>2];ab=Ta+160|0;c[q+0>>2]=c[ab+0>>2];c[q+4>>2]=c[ab+4>>2];if(!(c[Ta+176>>2]|0)){Ua=c[la>>2]|0;c[Ua+392>>2]=1}else{Ua=c[la>>2]|0;c[Ua+392>>2]=(c[Ta+184>>2]|0)!=0?2:1}if(!(c[Ta+188>>2]|0)){c[Ua+380>>2]=2;c[Ua+384>>2]=2;c[Ua+388>>2]=2}else{c[Ua+380>>2]=d[Ta+192>>0];c[Ua+384>>2]=d[Ta+193>>0];c[Ua+388>>2]=d[Ta+194>>0]}bc(ia,c[Ta+52>>2]|0);if(a[Ta+12941>>0]|0){Ua=c[wa>>2]|0;Va=(c[Ua+4>>2]|0)!=0?3:1;ab=(1<>2])+2|0;ab=$(ab,ab)|0;c[ja>>2]=fd(ab<>2])|0;Ua=0;do{ab=c[wa>>2]|0;$a=c[ab+13124>>2]>>c[ab+(Ua<<2)+13180>>2];_a=$(c[ab+13120>>2]>>c[ab+(Ua<<2)+13168>>2]<<1,c[ab+13132>>2]|0)|0;c[m+(Ua<<2)+172>>2]=fd(_a<>2])|0;ab=c[wa>>2]|0;$a=$($a<<1,c[ab+13128>>2]|0)|0;c[m+(Ua<<2)+184>>2]=fd($a<>2])|0;Ua=Ua+1|0}while((Ua|0)<(Va|0))}c[wa>>2]=Ta;c[ka>>2]=c[(c[m+(c[Ta>>2]<<2)+208>>2]|0)+4>>2];b[ma>>1]=(e[ma>>1]|0)+1&255;c[na>>2]=2147483647}ab=c[la>>2]|0;c[ab+832>>2]=d[Ta+302>>0];c[ab+836>>2]=d[Ta+335>>0];a[Ka>>0]=0;do if(!(a[Ga>>0]|0)){if(a[(c[Fa>>2]|0)+41>>0]|0){a[Ka>>0]=bd(Sa)|0;Ta=c[wa>>2]|0}Ta=($(c[Ta+13128>>2]<<1,c[Ta+13132>>2]|0)|0)+ -2|0;Ua=Ta>>>0>65535;Ta=Ua?Ta>>>16:Ta;Ua=Ua?16:0;if(Ta&65280){Ua=Ua|8;Ta=Ta>>>8}Ta=_c(Sa,(d[4680+Ta>>0]|0)+Ua|0)|0;c[La>>2]=Ta;ab=c[wa>>2]|0;if(Ta>>>0>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0)>>>0){p=B;o=180;break a}if(a[Ka>>0]|0)if(!(a[Ia>>0]|0)){p=B;o=180;break a}else break;else{c[Pa>>2]=Ta;c[Qa>>2]=(c[Qa>>2]|0)+1;o=82;break}}else{c[Pa>>2]=0;c[La>>2]=0;c[Qa>>2]=0;a[Ia>>0]=0;o=82}while(0);f:do if((o|0)==82){o=0;a[Ia>>0]=0;if((c[(c[Fa>>2]|0)+1624>>2]|0)>0){Ta=0;do{ad(Sa,1);Ta=Ta+1|0}while((Ta|0)<(c[(c[Fa>>2]|0)+1624>>2]|0))}Ta=dd(Sa)|0;c[ra>>2]=Ta;if(Ta>>>0>=3){p=B;o=180;break a}if(!((Ta|0)==2?1:((c[t>>2]|0)+ -16|0)>>>0>7)){p=B;o=180;break a}a[I>>0]=1;if(a[(c[Fa>>2]|0)+39>>0]|0)a[I>>0]=bd(Sa)|0;if(a[(c[wa>>2]|0)+8>>0]|0)a[J>>0]=_c(Sa,2)|0;if(((c[t>>2]|0)+ -19|0)>>>0>=2){o=91;break b}c[L>>2]=0;c[va>>2]=0;if(!(c[K>>2]|0))c[M>>2]=0;do if(a[(c[wa>>2]|0)+12941>>0]|0){a[W>>0]=bd(Sa)|0;if(!(c[(c[wa>>2]|0)+4>>2]|0)){a[X>>0]=0;a[N>>0]=0;break}else{ab=(bd(Sa)|0)&255;a[N>>0]=ab;a[X>>0]=ab;break}}else{a[W>>0]=0;a[X>>0]=0;a[N>>0]=0}while(0);c[P>>2]=0;c[O>>2]=0;c[Na>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0;if(!(a[Ta+36>>0]|0)){c[S>>2]=0;c[Q>>2]=0}else{c[S>>2]=ed(Sa)|0;c[Q>>2]=ed(Sa)|0;Ta=c[Fa>>2]|0}if(!(a[Ta+1631>>0]|0))a[T>>0]=0;else{a[T>>0]=bd(Sa)|0;Ta=c[Fa>>2]|0}g:do if(!(a[Ta+55>>0]|0)){a[Y>>0]=0;c[V>>2]=0;c[U>>2]=0}else{do if(a[Ta+56>>0]|0){if(!(bd(Sa)|0)){Ta=c[Fa>>2]|0;break}ab=(bd(Sa)|0)&255;a[Y>>0]=ab;if(ab<<24>>24)break g;c[V>>2]=(ed(Sa)|0)<<1;c[U>>2]=(ed(Sa)|0)<<1;break g}while(0);a[Y>>0]=a[Ta+57>>0]|0;c[V>>2]=c[Ta+60>>2];c[U>>2]=c[Ta+64>>2]}while(0);Ta=a[(c[Fa>>2]|0)+54>>0]|0;h:do if(Ta<<24>>24){do if(!(a[W>>0]|0)){if(a[X>>0]|0)break;if(a[Y>>0]|0)break h}while(0);a[Z>>0]=bd(Sa)|0;break f}while(0);a[Z>>0]=Ta}while(0);c[Oa>>2]=0;ab=c[Fa>>2]|0;if(!((a[ab+42>>0]|0)==0?(a[ab+43>>0]|0)==0:0))o=122;i:do if((o|0)==122){o=0;ab=dd(Sa)|0;c[Oa>>2]=ab;if((ab|0)<=0){c[H>>2]=0;break}Ta=(dd(Sa)|0)+1|0;Ua=Ta>>4;Ta=Ta&15;jd(R);jd(F);jd(E);c[R>>2]=od(c[Oa>>2]|0,4)|0;c[F>>2]=od(c[Oa>>2]|0,4)|0;Va=od(c[Oa>>2]|0,4)|0;c[E>>2]=Va;if(!(c[R>>2]|0)){o=127;break b}if((c[F>>2]|0)==0|(Va|0)==0){o=127;break b}if((c[Oa>>2]|0)>0){Xa=(Ua|0)>0;Wa=(Ta|0)==0;Va=0;do{if(Xa){Ya=0;Za=0;do{Za=(_c(Sa,16)|0)+(Za<<16)|0;Ya=Ya+1|0}while((Ya|0)!=(Ua|0))}else Za=0;if(!Wa)Za=(_c(Sa,Ta)|0)+(Za<>2]|0)+(Va<<2)>>2]=Za+1;Va=Va+1|0}while((Va|0)<(c[Oa>>2]|0))}do if((d[G>>0]|0)>1){ab=c[Fa>>2]|0;if((c[ab+48>>2]|0)<=1?(c[ab+44>>2]|0)<=1:0)break;c[H>>2]=0;a[G>>0]=1;break i}while(0);c[H>>2]=0}while(0);Ta=c[Fa>>2]|0;if(a[Ta+1628>>0]|0){Ta=dd(Sa)|0;$a=de(Ta|0,0,3)|0;Za=D;ab=(c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0;_a=((ab|0)<0)<<31>>31;if((Za|0)>(_a|0)|(Za|0)==(_a|0)&$a>>>0>ab>>>0){p=B;o=180;break a}if(Ta){Ua=0;do{ad(Sa,8);Ua=Ua+1|0}while((Ua|0)!=(Ta|0))}Ta=c[Fa>>2]|0}Sa=(c[Ta+16>>2]|0)+26+(c[Na>>2]|0)|0;a[Ja>>0]=Sa;Sa=Sa<<24;if((Sa|0)>855638016){p=B;o=180;break a}if((Sa>>24|0)<(0-(c[(c[wa>>2]|0)+13192>>2]|0)|0)){p=B;o=180;break a}ab=c[La>>2]|0;c[Ma>>2]=ab;if((ab|0)==0?(a[Ka>>0]|0)!=0:0){p=B;o=180;break a}if(((c[Ra+216>>2]|0)-(c[Ra+212>>2]|0)|0)<0){p=B;o=180;break a}a[(c[u>>2]|0)+203>>0]=(a[Ka>>0]|0)==0&1;if(!(a[(c[Fa>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ja>>0]|0;a[Ia>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;Sa=c[na>>2]|0;Ra=c[t>>2]|0;j:do if((Sa|0)==2147483647)switch(Ra|0){case 18:case 16:case 17:case 21:{Sa=c[va>>2]|0;c[na>>2]=Sa;break j};case 20:case 19:{c[na>>2]=-2147483648;Sa=-2147483648;break j};default:{Sa=2147483647;break j}}while(0);do if((Ra+ -8|0)>>>0<2){if((c[va>>2]|0)<=(Sa|0)){c[oa>>2]=0;break c}if((Ra|0)!=9)break;c[na>>2]=-2147483648}while(0);k:do if(!(a[Ga>>0]|0)){if(!(c[r>>2]|0)){Ra=0;break d}}else{Sa=c[u>>2]|0;$a=c[wa>>2]|0;Ra=c[$a+13064>>2]|0;ab=c[$a+13120>>2]>>Ra;Ra=(c[$a+13124>>2]>>Ra)+1|0;ce(c[xa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;ce(c[Aa>>2]|0,0,$(c[ya>>2]|0,c[za>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Ca>>2]|0,0,$(c[$a+13152>>2]|0,c[$a+13148>>2]|0)|0)|0;$a=c[wa>>2]|0;ce(c[Da>>2]|0,0,$((c[$a+13160>>2]|0)+1|0,(c[$a+13156>>2]|0)+1|0)|0)|0;ce(c[Ea>>2]|0,-1,$((ab<<2)+4|0,Ra)|0)|0;c[oa>>2]=0;c[pa>>2]=c[t>>2];Ra=c[Fa>>2]|0;if(a[Ra+42>>0]|0)c[Sa+312>>2]=c[c[Ra+1648>>2]>>2]<>2]|0)+13080>>2];Ra=_b(m,sa,c[va>>2]|0)|0;do if((Ra|0)>=0){c[(c[c[r>>2]>>2]|0)+80>>2]=((c[t>>2]|0)+ -16|0)>>>0<8&1;c[(c[sa>>2]|0)+84>>2]=3-(c[ra>>2]|0);yd(c[ua>>2]|0);Ra=$b(m,c[ua>>2]|0,0)|0;if((Ra|0)<0)break;break k}while(0);if(!(c[r>>2]|0)){o=167;break b}c[r>>2]=0;if((Ra|0)<0){p=B;break a}}while(0);if((c[t>>2]|0)!=(c[pa>>2]|0)){p=B;o=180;break a}c[q>>2]=0;c[Ha>>2]=1;Ra=c[la>>2]|0;Ba[c[Ra+816>>2]&1](Ra,1,q,n,1,4)|0;Ra=c[n>>2]|0;ab=c[wa>>2]|0;if((Ra|0)>=($(c[ab+13132>>2]|0,c[ab+13128>>2]|0)|0))c[oa>>2]=1;if((Ra|0)<0)break d;else break c};default:break c}}while(0);s=(c[(c[la>>2]|0)+688>>2]&8|0)==0?0:Ra;o=178}while(0);if((o|0)==178?(o=0,(s|0)<0):0){p=B;o=180;break a}C=C+1|0;if((C|0)>=(c[w>>2]|0)){p=B;o=180;break a}}if((o|0)==71){Nb(m);Nb(m);c[wa>>2]=0;p=B;o=180;break}else if((o|0)==91)ta();else if((o|0)==127){c[Oa>>2]=0;p=B;o=180;break}else if((o|0)==167){c[r>>2]=0;p=B;break}}else{p=B;o=180}}else{p=0;o=180}while(0);if((p|0)<0){ab=p;i=k;return ab|0}n=m+2604|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){ab=m+128|0;c[ab>>2]=e[f>>1];c[ab+4>>2]=0;zd(g,m);c[h>>2]=1}ab=c[l>>2]|0;i=k;return ab|0}function Lb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;Nb(e);b=e+4412|0;f=e+4392|0;if((c[b>>2]|0)>0){g=0;do{jd((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}jd(e+4396|0);jd(e+4388|0);jd(f);jd(e+152|0);jd(e+168|0);jd(e+172|0);jd(e+184|0);jd(e+176|0);jd(e+188|0);jd(e+180|0);jd(e+192|0);xd(e+164|0);g=e+2524|0;Xb(e,g,-1);xd(g);g=e+208|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{vd(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);f=e+400|0;g=0;do{vd(f+(g<<2)|0);g=g+1|0}while((g|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;vd(e+1424|0);jd(e+2096|0);jd(e+2100|0);jd(e+2104|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){jd(k);jd(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;jd(f);f=e+4404|0;if((c[b>>2]|0)<=0){jd(f);c[b>>2]=0;i=d;return 0}e=0;do{jd((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));jd(f);c[b>>2]=0;i=d;return 0}function Mb(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;Zb(a);c[a+2592>>2]=2147483647;i=b;return}function Nb(a){a=a|0;var b=0;b=i;jd(a+2504|0);jd(a+2508|0);jd(a+4332|0);jd(a+4336|0);jd(a+4340|0);jd(a+4344|0);jd(a+4348|0);jd(a+4316|0);jd(a+4328|0);jd(a+4352|0);jd(a+4320|0);jd(a+4324|0);jd(a+2096|0);jd(a+2104|0);jd(a+2100|0);i=b;return}function Ob(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(bd(d)|0){e=-1094995529;i=b;return e|0}c[a+2512>>2]=_c(d,6)|0;e=_c(d,6)|0;d=(_c(d,3)|0)+ -1|0;c[a+2516>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function Pb(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+2500>>2]<<2)>>2]|0;m=(a[h+1449>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+4328|0;r=h+1436|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+4328|0;r=h+1436|0}q=e+ -1|0;s=h+136|0;p=h+2504|0;y=h+2056|0;o=h+2057|0;w=h+2084|0;x=h+2508|0;v=h+2088|0;u=h+2062|0;t=h+4352|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;Ua(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=Za(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(Za(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+2056>>0]|0){T=(P|0)==2;do if(!T){if(S){U=($a(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=cb(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=db(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=bb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=eb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=Qb(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Ta(h,A);Db(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Bb(h,z,n,e);W=A;i=f;return W|0}function Qb(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;j=i;i=i+32|0;z=j;B=j+20|0;A=b+136|0;r=c[A>>2]|0;l=1<>2]|0;q=b+204|0;t=c[q>>2]|0;p=(1<<(c[s+13080>>2]|0)-(c[t+24>>2]|0))+ -1|0;c[r+31232>>2]=h;k=l+e|0;if(((k|0)<=(c[s+13120>>2]|0)?(l+f|0)<=(c[s+13124>>2]|0):0)?(c[s+13064>>2]|0)>>>0>>0:0){s=lb(b,h,e,f)|0;t=c[q>>2]|0}else s=(c[s+13064>>2]|0)>>>0>>0&1;if((a[t+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[t+24>>2]|0)|0)>>>0<=g>>>0:0){a[r+300>>0]=0;c[r+280>>2]=0}if((a[b+2080>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[r+301>>0]=0;if(s){o=l>>1;n=o+e|0;q=o+f|0;g=g+ -1|0;h=h+1|0;s=Qb(b,e,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}if(s){if((n|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=Qb(b,n,f,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){if((q|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=Qb(b,e,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}if(s){X=c[m>>2]|0;if((n|0)<(c[X+13120>>2]|0)?(q|0)<(c[X+13124>>2]|0):0){s=Qb(b,n,q,g,h)|0;if((s|0)<0){X=s;i=j;return X|0}}}else s=0}else s=0}else s=0;if((p&k|0)==0?(p&l+f|0)==0:0)c[r+276>>2]=a[r+272>>0];if(!s){X=0;i=j;return X|0}k=c[m>>2]|0;if((n+o|0)<(c[k+13120>>2]|0))k=1;else k=(q+o|0)<(c[k+13124>>2]|0);X=k&1;i=j;return X|0}p=c[A>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;x=p+31252|0;a[x>>0]=1;v=p+31244|0;c[v>>2]=1;E=p+31248|0;c[E>>2]=0;w=p+31254|0;a[w>>0]=0;y=p+31253|0;a[y>>0]=0;t=($(f>>r,h)|0)+(e>>r)|0;H=b+4332|0;a[(c[H>>2]|0)+t>>0]=0;X=p+31268|0;a[X>>0]=1;a[X+1>>0]=1;a[X+2>>0]=1;a[X+3>>0]=1;r=l>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){X=(gb(b)|0)&255;a[p+31256>>0]=X;if(X<<24>>24)Rb(b,e,f,g)}else a[p+31256>>0]=0;u=(r|0)>0;if(u){G=t;F=0;while(1){ce((c[H>>2]|0)+G|0,0,r|0)|0;F=F+1|0;if((F|0)==(r|0))break;else G=G+h|0}}if((c[v>>2]|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0)D=c[E>>2]|0;else{F=mb(b,g)|0;c[E>>2]=F;E=c[v>>2]|0;if((F|0)==3)G=(E|0)==1&1;else G=0;a[w>>0]=G;if((E|0)==1)D=F;else ta()}if((((D|0)==0?(C=c[m>>2]|0,(c[C+68>>2]|0)!=0):0)?(c[C+13048>>2]|0)>>>0<=g>>>0:0)?(c[C+13052>>2]|0)>>>0>=g>>>0:0){C=(nb(b)|0)&255;a[y>>0]=C}else C=a[y>>0]|0;do if(!(C<<24>>24)){C=c[A>>2]|0;E=(c[C+31248>>2]|0)==3;D=E?2:1;H=0;do{F=H<<1;G=0;do{a[B+(G+F)>>0]=ob(b)|0;G=G+1|0}while((G|0)<(D|0));H=H+1|0}while((H|0)<(D|0));Q=l>>(E&1);P=C+31264|0;R=z+4|0;E=z+8|0;F=b+4340|0;O=C+31260|0;N=0;do{J=N<<1;H=($(N,Q)|0)+f|0;I=0;do{L=I+J|0;U=(a[B+L>>0]|0)==0;if(U)c[P>>2]=qb(b)|0;else c[O>>2]=pb(b)|0;V=($(I,Q)|0)+e|0;T=c[A>>2]|0;X=c[m>>2]|0;S=c[X+13084>>2]|0;M=V>>S;K=H>>S;G=c[X+13156>>2]|0;S=Q>>S;X=c[X+13080>>2]|0;W=(1<>0]|0)==0?(W&H|0)==0:0)W=1;else{W=($(K+ -1|0,G)|0)+M|0;W=d[(c[F>>2]|0)+W>>0]|0}if((a[T+308>>0]|0)==0&(V|0)==0)V=1;else{V=M+ -1+($(K,G)|0)|0;V=d[(c[F>>2]|0)+V>>0]|0}X=(H>>X<>>0<2){c[z>>2]=0;c[R>>2]=1;c[E>>2]=26;V=0;X=1;W=26;break}else{c[z>>2]=V;X=(V+29&31)+2|0;c[R>>2]=X;W=(V+31&31)+2|0;c[E>>2]=W;break}else{c[z>>2]=V;c[R>>2]=X;if(!((V|0)==0|(X|0)==0)){c[E>>2]=0;W=0;break}if((V|0)==1|(X|0)==1){c[E>>2]=26;W=26;break}else{c[E>>2]=1;W=1;break}}while(0);if(U){if((V|0)>(X|0)){c[R>>2]=V;U=X&255;c[z>>2]=U}else{U=V;V=X}if((U|0)>(W|0)){c[E>>2]=U;X=W&255;c[z>>2]=X;W=U;U=X}if((V|0)>(W|0)){c[E>>2]=V;X=W&255;c[R>>2]=X}else{X=V;V=W}T=c[T+31264>>2]|0;T=((T|0)>=(U|0)&1)+T|0;T=((T|0)>=(X|0)&1)+T|0;T=((T|0)>=(V|0)&1)+T|0}else T=c[z+(c[T+31260>>2]<<2)>>2]|0;S=(S|0)==0?1:S;T=T&255;if((S|0)>0){U=0;do{X=($(U+K|0,G)|0)+M|0;ce((c[F>>2]|0)+X|0,T|0,S|0)|0;U=U+1|0}while((U|0)<(S|0))}a[C+L+31268>>0]=T;I=I+1|0}while((I|0)<(D|0));N=N+1|0}while((N|0)<(D|0));z=c[(c[m>>2]|0)+4>>2]|0;if((z|0)==3){B=0;do{z=B<<1;E=0;do{G=rb(b)|0;F=E+z|0;a[C+F+31281>>0]=G;A=a[C+F+31268>>0]|0;do if((G|0)!=4){G=a[1528+G>>0]|0;F=C+F+31277|0;if(A<<24>>24==G<<24>>24){a[F>>0]=34;break}else{a[F>>0]=G;break}}else a[C+F+31277>>0]=A;while(0);E=E+1|0}while((E|0)<(D|0));B=B+1|0}while((B|0)<(D|0))}else if(!z)break;else if((z|0)!=2){A=rb(b)|0;z=a[C+31268>>0]|0;if((A|0)==4){a[C+31277>>0]=z;break}A=a[1528+A>>0]|0;B=C+31277|0;if(z<<24>>24==A<<24>>24){a[B>>0]=34;break}else{a[B>>0]=A;break}}else{z=rb(b)|0;a[C+31281>>0]=z;A=a[C+31268>>0]|0;if((z|0)==4)z=A&255;else{z=a[1528+z>>0]|0;z=A<<24>>24==z<<24>>24?34:z&255}a[C+31277>>0]=a[1536+z>>0]|0;break}}else{G=c[m>>2]|0;B=c[G+13084>>2]|0;E=l>>B;C=c[G+13156>>2]|0;D=e>>B;B=f>>B;E=(E|0)==0?1:E;if((E|0)>0){F=b+4340|0;G=0;do{X=($(G+B|0,C)|0)+D|0;ce((c[F>>2]|0)+X|0,1,E|0)|0;G=G+1|0}while((G|0)<(E|0));G=c[m>>2]|0}K=c[A>>2]|0;V=c[b+160>>2]|0;A=c[V+32>>2]|0;D=$(A,f)|0;H=c[G+56>>2]|0;D=(c[V>>2]|0)+((e<>2]|0;J=c[G+13184>>2]|0;B=$(f>>J,E)|0;I=c[G+13172>>2]|0;B=(c[V+4>>2]|0)+((e>>I<>2]|0;X=c[G+13188>>2]|0;F=$(f>>X,C)|0;W=c[G+13176>>2]|0;F=(c[V+8>>2]|0)+((e>>W<>0]|0,l<>W,l>>X)|0)+($(l>>I,l>>J)|0)|0;G=($(d[G+13045>>0]|0,J)|0)+H|0;H=K+224|0;J=G+7>>3;I=c[K+240>>2]|0;X=c[H>>2]|0;I=(X&1|0)==0?I:I+ -1|0;I=(X&511|0)==0?I:I+ -1|0;K=(c[K+244>>2]|0)-I|0;if((K|0)<(J|0))I=0;else Yc(H,I+J|0,K-J|0);if(!(a[b+2061>>0]|0))Ab(b,e,f,g);X=G>>>0>2147483639|(I|0)==0;W=X?0:G;V=X?0:I;c[z>>2]=V;c[z+12>>2]=W;c[z+16>>2]=W+8;c[z+4>>2]=V+(W+7>>3);c[z+8>>2]=0;if(X)z=-1094995529;else{W=b+2608|0;Ha[c[W>>2]&3](D,A,l,l,z,d[(c[m>>2]|0)+13044>>0]|0);X=c[m>>2]|0;Ha[c[W>>2]&3](B,E,l>>c[X+13172>>2],l>>c[X+13184>>2],z,d[X+13045>>0]|0);X=c[m>>2]|0;Ha[c[W>>2]&3](F,C,l>>c[X+13176>>2],l>>c[X+13188>>2],z,d[X+13045>>0]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)Rb(b,e,f,g);if((z|0)<0){X=z;i=j;return X|0}}while(0);do if(!(a[y>>0]|0)){if(!(a[x>>0]|0)){if(a[b+2061>>0]|0)break;Ab(b,e,f,g);break}x=c[m>>2]|0;if((c[v>>2]|0)==1)v=(d[w>>0]|0)+(c[x+13092>>2]|0)|0;else v=c[x+13088>>2]|0;a[p+31255>>0]=v;v=Sb(b,e,f,e,f,e,f,g,g,0,0,1520,1520)|0;if((v|0)<0){X=v;i=j;return X|0}}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)zb(b,e,f,g);if(u){q=b+4316|0;g=p+272|0;u=0;while(1){ce((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&k|0)==0?(s&l+f|0)==0:0)c[p+276>>2]=a[p+272>>0];q=c[m>>2]|0;X=c[q+13064>>2]|0;g=l>>X;r=e>>X;e=f>>X;if((g|0)>0?(n=b+4336|0,o=c[p+31232>>2]&255,X=($(c[q+13140>>2]|0,e)|0)+r|0,ce((c[n>>2]|0)+X|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{X=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+r|0;ce((c[n>>2]|0)+X|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}e=c[m>>2]|0;m=1<>2];if(((k|0)%(m|0)|0|0)!=0?(k|0)<(c[e+13120>>2]|0):0){X=1;i=j;return X|0}X=l+f|0;if(((X|0)%(m|0)|0|0)!=0?(X|0)<(c[e+13124>>2]|0):0){X=1;i=j;return X|0}X=(fb(b)|0)==0&1;i=j;return X|0}function Rb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+4348|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function Sb(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;M=c[q+4>>2]|0;A=w+4|0;c[A>>2]=M;y=c[r>>2]|0;c[t>>2]=y;J=c[r+4>>2]|0;x=t+4|0;c[x>>2]=J;q=a[v+31254>>0]|0;do if(q<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;G=c[r>>2]|0;B=(c[G+13076>>2]|0)>>>0>>0;if(((!B?(c[G+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(q<<24>>24!=0&(o|0)==0):0)q=(sb(e,n)|0)&255;else{if((c[G+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)G=(o|0)==0&(c[v+31248>>2]|0)!=0;else G=0;if(B)q=1;else q=(q<<24>>24!=0&(o|0)==0|G)&1}B=(n|0)>2;G=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!G)L=y;else E=20;else if((G|0)==3)E=20;else L=y;do if((E|0)==20){G=(o|0)==0;if(!((K|0)==0&(G^1))){K=tb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){M=tb(e,o)|0;c[A>>2]=M}if(!G)E=25}else{K=0;E=25}if((E|0)==25)if(!y){L=0;break}L=tb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){J=tb(e,o)|0;c[x>>2]=J}}while(0);if(!(q<<24>>24)){A=c[r>>2]|0;y=c[A+13072>>2]|0;x=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=ub(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;Cc(e,f,g,t,w);Ub(e,f,g,A,1);Ub(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,Cc(e,h,j,F,H),Ub(e,h,j,n,1),Ub(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=hb(e)|0;J=G+280|0;c[J>>2]=M;if(M){M=(ib(e)|0)==1;H=c[J>>2]|0;if(M){H=0-H|0;c[J>>2]=H}}else H=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((H|0)<(-26-M|0)|(H|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{zb(e,k,l,m);break}}while(0);if((!((a[e+2080>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(jb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{l=c[E>>2]|0;if(!(a[l+1633>>0]|0))m=0;else{m=kb(e)|0;l=c[E>>2]|0}a[G+302>>0]=a[l+m+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+m+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){m=c[G+288>>2]|0;if((m+ -6|0)>>>0<9)k=2;else k=(m+ -22|0)>>>0<9&1;m=c[G+292>>2]|0;if((m+ -6|0)>>>0<9)m=2;else m=(m+ -22|0)>>>0<9&1}else{k=0;m=0}l=G+304|0;a[l>>0]=0;if(I)xb(e,f,g,n,k,0);k=c[r>>2]|0;C=c[k+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)xb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)xb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}h=1<<(c[k+13172>>2]|0)+A;j=1<<(c[k+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;Tb(e,0)}while(0);p=e+160|0;E=G+320|0;D=G+11680|0;C=1<0;B=e+(A+ -2<<2)+2612|0;F=G+284|0;I=0;do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;G=c[L+36>>2]|0;H=c[r>>2]|0;M=$(g>>c[H+13184>>2],G)|0;H=(c[L+4>>2]|0)+(M+(f>>c[H+13172>>2]<>2]))|0;if(k){I=0;do{b[D+(I<<1)>>1]=($(b[E+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(C|0));I=C}else I=0;Ea[c[B>>2]&7](H,D,G)}else xb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))H=0;else{Tb(e,1);H=0}do{if((c[z>>2]|0)==1){M=(H<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;w=c[L+40>>2]|0;G=c[r>>2]|0;M=$(g>>c[G+13188>>2],w)|0;G=(c[L+8>>2]|0)+(M+(f>>c[G+13176>>2]<>2]))|0;if(k){H=0;do{b[D+(H<<1)>>1]=($(b[E+(H<<1)>>1]|0,c[F>>2]|0)|0)>>>3;H=H+1|0}while((H|0)!=(C|0));H=C}else H=0;Ea[c[B>>2]&7](G,D,w)}else xb(e,f,(H<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+4344|0;r=0;do{w=$(r+g>>y,q)|0;h=0;do{a[(c[t>>2]|0)+((h+f>>y)+w)>>0]=1;h=h+x|0}while((h|0)<(u|0));r=r+x|0}while((r|0)<(u|0))}if(((a[e+2061>>0]|0)==0?(Ab(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)Rb(e,f,g,n)}else{v=n+ -1|0;u=1<>2]|0;f=vb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((wb(a,b)|0)<<1)<>2]|0;q=c[b+200>>2]|0;O=c[q+(h<<2)+13168>>2]|0;N=c[q+(h<<2)+13180>>2]|0;k=1<>2]|0;ga=k<>2]|0;P=e>>V&T;R=f>>V&T;S=T+2|0;Q=($(R,S)|0)+P|0;U=c[b+204>>2]|0;aa=c[U+1684>>2]|0;Q=c[aa+(Q<<2)>>2]|0;l=c[b+160>>2]|0;b=c[l+(h<<2)+32>>2]|0;l=c[l+(h<<2)>>2]|0;m=($(b,f>>N)|0)+(e>>O)|0;n=l+m|0;o=(h|0)==0;p=c[(o?r+288|0:r+292|0)>>2]|0;u=t+1|0;y=w+1|0;x=z+1|0;s=v+1|0;if(!(c[r+31288>>2]|0))fa=0;else fa=(Q|0)>(c[aa+(P+ -1+($(T&R+(ga>>V),S)|0)<<2)>>2]|0);da=fa&1;_=c[r+31292>>2]|0;H=c[r+31300>>2]|0;Z=c[r+31296>>2]|0;if(!(c[r+31304>>2]|0))ba=0;else ba=(Q|0)>(c[aa+(($(S,R+ -1|0)|0)+(T&P+(ea>>V))<<2)>>2]|0);S=ba&1;V=(ga<<1)+f|0;R=q+13124|0;aa=c[R>>2]|0;P=ga+f|0;V=((V|0)>(aa|0)?aa:V)-P>>N;aa=(ea<<1)+e|0;T=q+13120|0;ja=c[T>>2]|0;Q=ea+e|0;aa=((aa|0)>(ja|0)?ja:aa)-Q>>O;U=U+20|0;if((a[U>>0]|0)==1){ca=c[q+13084>>2]|0;ha=ga>>ca;ea=ea>>ca;ia=(1<>2]|0)-(P>>ca)|0;fa=(ha|0)>(fa|0)?fa:ha;if((fa|0)>0){da=0;ja=0;do{da=da|1;ja=ja+2|0}while((ja|0)<(fa|0))}else da=0}if(!((_|0)!=1|ia)){fa=(c[q+13160>>2]|0)-(f>>ca)|0;fa=(ha|0)>(fa|0)?fa:ha;if((fa|0)>0){_=0;ha=0;do{_=_|1;ha=ha+2|0}while((ha|0)<(fa|0))}else _=0}fa=(ga|0)!=0;if(!((Z|0)!=1|fa)){ga=(c[q+13156>>2]|0)-(e>>ca)|0;ga=(ea|0)>(ga|0)?ga:ea;if((ga|0)>0){Z=0;ha=0;do{Z=Z|1;ha=ha+2|0}while((ha|0)<(ga|0))}else Z=0}if(!(fa|ba^1)){ca=(c[q+13156>>2]|0)-(Q>>ca)|0;ca=(ea|0)>(ca|0)?ca:ea;if((ca|0)>0){S=0;ba=0;do{S=S|1;ba=ba+2|0}while((ba|0)<(ca|0))}else S=0}ba=u+0|0;ca=ba+64|0;do{a[ba>>0]=128;ba=ba+1|0}while((ba|0)<(ca|0));ba=w+0|0;ca=ba+65|0;do{a[ba>>0]=128;ba=ba+1|0}while((ba|0)<(ca|0));ea=S}else ea=S;ba=(H|0)!=0;if(ba){ja=a[l+(m+~b)>>0]|0;a[t>>0]=ja;a[w>>0]=ja}ca=(Z|0)!=0;if(ca)fe(y|0,l+(m-b)|0,k|0)|0;S=(ea|0)!=0;if(S?(Y=k+1|0,fe(w+Y|0,l+(k-b+m)|0,k|0)|0,X=$(d[l+(k+ -1-b+m+aa)>>0]|0,16843009)|0,W=k-aa|0,(W|0)>0):0){Y=aa+Y|0;aa=0;do{ja=w+(Y+aa)|0;a[ja>>0]=X;a[ja+1>>0]=X>>8;a[ja+2>>0]=X>>16;a[ja+3>>0]=X>>24;aa=aa+4|0}while((aa|0)<(W|0))}W=(_|0)!=0;if(W&(k|0)>0){Y=m+ -1|0;X=0;do{ja=X;X=X+1|0;a[t+X>>0]=a[l+(Y+($(ja,b)|0))>>0]|0}while((X|0)!=(k|0))}X=(da|0)!=0;if(X){aa=V+k|0;fa=m+ -1|0;if((V|0)>0){Y=k;do{ja=Y;Y=Y+1|0;a[t+Y>>0]=a[l+(fa+($(ja,b)|0))>>0]|0}while((Y|0)<(aa|0))}Y=$(d[l+(fa+($(aa+ -1|0,b)|0))>>0]|0,16843009)|0;aa=k-V|0;if((aa|0)>0){V=k+1+V|0;fa=0;do{ja=t+(V+fa)|0;a[ja>>0]=Y;a[ja+1>>0]=Y>>8;a[ja+2>>0]=Y>>16;a[ja+3>>0]=Y>>24;fa=fa+4|0}while((fa|0)<(aa|0))}}do if((a[U>>0]|0)==1?(ja=da|_,L=(ja|0)==0,ja=ja|H,M=(ja|0)==0,(Z|ea|ja|0)!=0):0){U=k<<1;V=c[T>>2]|0;if(((U<>O;R=c[R>>2]|0;if(((U<=(R|0))U=R-f>>N;if(!S)if((Q|0)<(V|0))O=k;else O=V-e>>O;else O=T;if(!X)if((P|0)<(R|0))U=k;else U=R-f>>N;N=a[w>>0]|0;if(M)a[t>>0]=N;a[t>>0]=N;if(!L){L=0;while(1)if((L|0)<(U|0))L=L+4|0;else break}if(!W?(K=$(N&255,16843009)|0,(k|0)>0):0){L=0;do{ja=t+(L|1)|0;a[ja>>0]=K;a[ja+1>>0]=K>>8;a[ja+2>>0]=K>>16;a[ja+3>>0]=K>>24;L=L+4|0}while((L|0)<(k|0))}do if(!X){L=$(d[t+k>>0]|0,16843009)|0;if((k|0)<=0)break;K=k+1|0;M=0;do{ja=t+(K+M)|0;a[ja>>0]=L;a[ja+1>>0]=L>>8;a[ja+2>>0]=L>>16;a[ja+3>>0]=L>>24;M=M+4|0}while((M|0)<(k|0))}while(0);f=(f|0)==0;if((e|0)==0&(U|0)>0){e=0;do{ja=t+(e|1)|0;a[ja>>0]=0;a[ja+1>>0]=0;a[ja+2>>0]=0;a[ja+3>>0]=0;e=e+4|0}while((e|0)<(U|0))}a[w>>0]=a[t>>0]|0;if(f)break;else e=0;while(1)if((e|0)<(O|0))e=e+4|0;else break}while(0);a:do if(!X){if(W){f=$(d[t+k>>0]|0,16843009)|0;if((k|0)<=0){J=84;break}J=k+1|0;e=0;while(1){ja=t+(J+e)|0;a[ja>>0]=f;a[ja+1>>0]=f>>8;a[ja+2>>0]=f>>16;a[ja+3>>0]=f>>24;e=e+4|0;if((e|0)>=(k|0)){J=84;break a}}}if(ba){e=$(d[t>>0]|0,16843009)|0;J=k<<1;if((k|0)>0)I=0;else{J=87;break}while(1){ja=t+(I|1)|0;a[ja>>0]=e;a[ja+1>>0]=e>>8;a[ja+2>>0]=e>>16;a[ja+3>>0]=e>>24;I=I+4|0;if((I|0)>=(J|0)){J=87;break a}}}if(ca){I=a[y>>0]|0;a[t>>0]=I;I=$(I&255,16843009)|0;H=k<<1;if((k|0)>0)J=0;else{J=89;break}while(1){ja=t+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0;if((J|0)>=(H|0)){J=89;break a}}}if(!S){a[t>>0]=-128;J=k<<1;f=(k|0)>0;if(f)e=0;else{J=84;break}do{ja=w+(e|1)|0;a[ja>>0]=-2139062144;a[ja+1>>0]=-2139062144>>8;a[ja+2>>0]=-2139062144>>16;a[ja+3>>0]=-2139062144>>24;e=e+4|0}while((e|0)<(J|0));if(f)e=0;else{J=84;break}while(1){ja=t+(e|1)|0;a[ja>>0]=-2139062144;a[ja+1>>0]=-2139062144>>8;a[ja+2>>0]=-2139062144>>16;a[ja+3>>0]=-2139062144>>24;e=e+4|0;if((e|0)>=(J|0)){J=84;break a}}}H=w+(k+1)|0;e=a[H>>0]|0;I=$(e&255,16843009)|0;G=(k|0)>0;if(G)J=0;else{a[t>>0]=e;break}do{ja=w+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0}while((J|0)<(k|0));I=a[H>>0]|0;a[t>>0]=I;I=$(I&255,16843009)|0;H=k<<1;if(G){G=0;do{ja=t+(G|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;G=G+4|0}while((G|0)<(H|0));J=92}else J=92}else J=84;while(0);if((J|0)==84)if((_|0)==0?(I=$(d[t+(k+1)>>0]|0,16843009)|0,(k|0)>0):0){J=0;do{ja=t+(J|1)|0;a[ja>>0]=I;a[ja+1>>0]=I>>8;a[ja+2>>0]=I>>16;a[ja+3>>0]=I>>24;J=J+4|0}while((J|0)<(k|0));J=87}else J=87;if((J|0)==87)if(!H){a[t>>0]=a[u>>0]|0;J=89}else J=89;if((J|0)==89)if((Z|0)==0?(G=$(d[t>>0]|0,16843009)|0,(k|0)>0):0){H=0;do{ja=w+(H|1)|0;a[ja>>0]=G;a[ja+1>>0]=G>>8;a[ja+2>>0]=G>>16;a[ja+3>>0]=G>>24;H=H+4|0}while((H|0)<(k|0));J=92}else J=92;if(((J|0)==92?!S:0)?(F=$(d[w+k>>0]|0,16843009)|0,(k|0)>0):0){H=k+1|0;G=0;do{ja=w+(H+G)|0;a[ja>>0]=F;a[ja+1>>0]=F>>8;a[ja+2>>0]=F>>16;a[ja+3>>0]=F>>24;G=G+4|0}while((G|0)<(k|0))}F=a[t>>0]|0;a[w>>0]=F;b:do if(!(c[q+13112>>2]|0)){if(o){if((p|0)==1|(k|0)==4){s=y;break}}else if(((p|0)==1?1:(c[q+4>>2]|0)!=3)|(k|0)==4){s=y;break}ja=p+ -26|0;ja=(ja|0)>-1?ja:26-p|0;ia=p+ -10|0;ia=(ia|0)>-1?ia:10-p|0;if((((ja|0)>(ia|0)?ia:ja)|0)>(c[1576+(g+ -3<<2)>>2]|0)){if((o&(a[q+13061>>0]|0)!=0&(g|0)==5?(D=F&255,E=a[w+64>>0]|0,C=E&255,ja=C+D-(d[w+32>>0]<<1)|0,(((ja|0)>-1?ja:0-ja|0)|0)<8):0)?(A=t+64|0,B=a[A>>0]|0,ja=(B&255)+D-(d[t+32>>0]<<1)|0,(((ja|0)>-1?ja:0-ja|0)|0)<8):0){a[v>>0]=F;a[v+64>>0]=E;w=0;do{ja=w;w=w+1|0;a[v+w>>0]=(($(D,63-ja|0)|0)+32+($(C,w)|0)|0)>>>6}while((w|0)!=63);w=0;while(1){v=w+1|0;a[t+v>>0]=(($(F&255,63-w|0)|0)+32+($(B&255,v)|0)|0)>>>6;if((v|0)==63)break b;F=a[t>>0]|0;B=a[A>>0]|0;w=v}}A=k<<1;D=a[t+A>>0]|0;a[z+A>>0]=D;B=a[w+A>>0]|0;a[v+A>>0]=B;A=A+ -2|0;C=(A|0)>-1;if(C){E=A;while(1){ja=E+1|0;ia=D;D=a[t+ja>>0]|0;a[z+ja>>0]=((ia&255)+2+((D&255)<<1)+(d[t+E>>0]|0)|0)>>>2;if((E|0)<=0)break;else E=E+ -1|0}}ja=((d[u>>0]|0)+2+((F&255)<<1)+(d[y>>0]|0)|0)>>>2&255;a[z>>0]=ja;a[v>>0]=ja;if(C)while(1){ja=A+1|0;ia=B;B=a[w+ja>>0]|0;a[v+ja>>0]=((ia&255)+2+((B&255)<<1)+(d[w+A>>0]|0)|0)>>>2;if((A|0)<=0){u=x;break}else A=A+ -1|0}else u=x}else s=y}else s=y;while(0);if(!p){Vb(n,s,u,b,g);i=j;return}else if((p|0)==1){if((k|0)>0){p=k;h=0;do{p=(d[u+h>>0]|0)+p+(d[s+h>>0]|0)|0;h=h+1|0}while((h|0)!=(k|0));q=p>>g+1;r=$(q,16843009)|0;g=0;do{p=($(g,b)|0)+m|0;h=0;do{ja=l+(p+h)|0;a[ja>>0]=r;a[ja+1>>0]=r>>8;a[ja+2>>0]=r>>16;a[ja+3>>0]=r>>24;h=h+4|0}while((h|0)<(k|0));g=g+1|0}while((g|0)!=(k|0))}else q=k>>g+1;if(!(o&(k|0)<32)){i=j;return}a[n>>0]=((q<<1)+2+(d[u>>0]|0)+(d[s>>0]|0)|0)>>>2;if((k|0)<=1){i=j;return}n=(q*3|0)+2|0;o=1;do{a[l+(o+m)>>0]=((d[s+o>>0]|0)+n|0)>>>2;o=o+1|0}while((o|0)!=(k|0));o=1;do{a[l+(($(o,b)|0)+m)>>0]=((d[u+o>>0]|0)+n|0)>>>2;o=o+1|0}while((o|0)!=(k|0));i=j;return}else{if(!(c[q+13104>>2]|0))l=0;else l=(a[r+31256>>0]|0)!=0;Wb(n,s,u,b,h,p,k,l&1);i=j;return}}function Vb(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;m=i;j=1<>0]|0,l-r|0)|0;s=r;r=r+1|0;u=$(d[h>>0]|0,r)|0;t=$(d[c+s>>0]|0,p)|0;a[b+(s+q)>>0]=v+j+u+t+($(d[k>>0]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function Wb(c,e,f,g,h,j,k,l){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;i=i+112|0;o=m;n=a[1592+(j+ -2)>>0]|0;p=o+k|0;q=($(n,k)|0)>>5;if((j|0)>17){s=e+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{u=e+(s+ -1)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=o+(s+k)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1632+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[f+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;o=(k|0)>0;if(o){q=0;do{u=q;q=q+1|0;s=$(q,n)|0;r=s>>5;s=s&31;if(!s){r=r+1|0;s=$(u,g)|0;t=0;do{u=p+(r+t)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=c+(t+s)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;t=t+4|0}while((t|0)<(k|0))}else{t=32-s|0;v=$(u,g)|0;u=0;do{w=u+r|0;x=$(d[p+(w+1)>>0]|0,t)|0;a[c+(u+v)>>0]=(x+16+($(d[p+(w+2)>>0]|0,s)|0)|0)>>>5;w=u|1;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|2;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|3;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;u=u+4|0}while((u|0)<(k|0))}}while((q|0)!=(k|0))}if(!((j|0)==26&(h|0)==0&(k|0)<32&(l|0)==0&o)){i=m;return}j=f+ -1|0;n=0;do{h=((d[f+n>>0]|0)-(d[j>>0]|0)>>1)+(d[e>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+($(n,g)|0)>>0]=h;n=n+1|0}while((n|0)!=(k|0));i=m;return}s=f+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{x=f+(s+ -1)|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=o+(s+k)|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1632+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[e+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;q=(k|0)>0;if(q){o=0;do{r=o;o=o+1|0;t=$(o,n)|0;u=t>>5;t=t&31;if(!t){s=u+1|0;t=0;do{a[c+(($(t,g)|0)+r)>>0]=a[p+(s+t)>>0]|0;t=t+1|0}while((t|0)!=(k|0))}else{s=32-t|0;v=0;do{y=v+u|0;x=$(d[p+(y+1)>>0]|0,s)|0;a[c+(($(v,g)|0)+r)>>0]=(x+16+($(d[p+(y+2)>>0]|0,t)|0)|0)>>>5;v=v+1|0}while((v|0)!=(k|0))}}while((o|0)!=(k|0))}if(!((j|0)==10&(h|0)==0&(k|0)<32&(l|0)==0&q)){i=m;return}g=e+ -1|0;n=0;do{j=((d[e+n>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(j>>>0>255)j=0-j>>31;a[c+n>>0]=j;j=n|1;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|2;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|3;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;n=n+4|0}while((n|0)<(k|0));i=m;return}function Xb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+46|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Uc(c[b+4>>2]|0,e+4|0);c[e+24>>2]=0;i=g;return}function Yb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,6);i=b;return}function Zb(a){a=a|0;var b=0;b=i;Xb(a,a+2524|0,-1);i=b;return}function _b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=d+4364|0;if(((c[(c[d+2524>>2]|0)+304>>2]|0)!=0?(b[d+2568>>1]|0)==(b[h>>1]|0):0)?(c[d+2544>>2]|0)==(f|0):0){j=-1094995529;i=g;return j|0}j=d+2524|0;if(c[(c[j>>2]|0)+304>>2]|0){j=-12;i=g;return j|0}if((Tc(c[d+4>>2]|0,d+2528|0,1)|0)<0){j=-12;i=g;return j|0}k=d+200|0;m=c[k>>2]|0;c[d+2540>>2]=$(c[m+13132>>2]|0,c[m+13128>>2]|0)|0;m=d+4520|0;l=c[j>>2]|0;c[l+244>>2]=(c[m>>2]|0)==1&1;c[l+240>>2]=((c[m>>2]|0)+ -1|0)>>>0<2&1;c[e>>2]=l;c[d+2520>>2]=j;a[d+2570>>0]=(a[d+1450>>0]|0)==0?2:3;c[d+2544>>2]=f;b[d+2568>>1]=b[h>>1]|0;j=d+2552|0;f=(c[k>>2]|0)+20|0;c[j+0>>2]=c[f+0>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];j=0;i=g;return j|0}function $b(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;l=d+2046|0;k=d+2572|0;h=d+4366|0;n=(f|0)==0;m=d+4364|0;f=d+200|0;while(1){if((a[l>>0]|0)==1){p=d+2524|0;o=d+2570|0;if(((a[o>>0]&8)==0?(c[d+2544>>2]|0)!=(c[k>>2]|0):0)?(b[d+2568>>1]|0)==(b[h>>1]|0):0)Xb(d,p,1)}else o=d+2570|0;if(!(a[o>>0]&1))o=0;else o=(b[d+2568>>1]|0)==(b[h>>1]|0)&1;if(((n?(b[h>>1]|0)==(b[m>>1]|0):0)?(j=c[f>>2]|0,(j|0)!=0):0)?(o|0)<=(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=21;break}if(o){h=15;break}o=b[h>>1]|0;if(o<<16>>16==(b[m>>1]|0)){d=0;h=21;break}b[h>>1]=(o&65535)+1&255}if((h|0)==15){h=d+2524|0;e=Ad(e,c[h>>2]|0)|0;if(!(a[d+2570>>0]&8))Xb(d,h,1);else Xb(d,h,9);p=(e|0)<0?e:1;i=g;return p|0}else if((h|0)==21){i=g;return d|0}return 0}function ac(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1664]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1664+(c<<5)+d>>0]=$(a[2688+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function bc(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function cc(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;if((e|0)<=0){i=h;return}k=(d|0)>0;j=8-g|0;m=0;while(1){if(k){l=0;do{a[b+l>>0]=(_c(f,g)|0)<>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==4)break;else j=j+2|0}h=h+1|0;if((h|0)==4)break;else{e=e+8|0;c=c+f|0}}i=g;return}function ec(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==8)break;else j=j+2|0}h=h+1|0;if((h|0)==8)break;else{e=e+16|0;c=c+f|0}}i=g;return}function fc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==16)break;else j=j+2|0}h=h+1|0;if((h|0)==16)break;else{e=e+32|0;c=c+f|0}}i=g;return}function gc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==32)break;else j=j+2|0}h=h+1|0;if((h|0)==32)break;else{e=e+64|0;c=c+f|0}}i=g;return}function hc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c=c<<16>>16;e=7-c|0;c=1<0){f=1<0)g=0;else{i=d;return}while(1){h=a;j=0;while(1){b[h>>1]=(b[h>>1]|0)+f>>e;j=j+1|0;if((j|0)==(c|0))break;else h=h+2|0}g=g+1|0;if((g|0)==(c|0))break;else a=a+(c<<1)|0}i=d;return}if((c|0)<=0){i=d;return}e=0-e|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function jc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;d=a;while(1){p=b[d>>1]|0;m=d+16|0;n=b[m>>1]|0;g=n+p|0;f=d+24|0;o=b[f>>1]|0;l=o+n|0;j=p-o|0;h=d+8|0;k=(b[h>>1]|0)*74|0;o=((p-n+o|0)*74|0)+64|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[m>>1]=n;m=(g*29|0)+64+(l*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[d>>1]=n;l=($(l,-29)|0)+64+(j*55|0)+k|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[h>>1]=m;g=(g*55|0)+64+(j*29|0)-k|0;h=g>>7;if((h+32768|0)>>>0>65535)h=g>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4){d=0;break}else d=d+2|0}while(1){p=b[a>>1]|0;l=a+4|0;m=b[l>>1]|0;g=m+p|0;e=a+6|0;n=b[e>>1]|0;k=n+m|0;h=p-n|0;f=a+2|0;j=(b[f>>1]|0)*74|0;n=((p-m+n|0)*74|0)+2048|0;m=n>>12;if((m+32768|0)>>>0>65535)m=n>>31^32767;b[l>>1]=m;l=(g*29|0)+2048+(k*55|0)+j|0;m=l>>12;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[a>>1]=m;k=($(k,-29)|0)+2048+(h*55|0)+j|0;l=k>>12;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[f>>1]=l;f=(g*55|0)+2048+(h*29|0)-j|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[e>>1]=g;d=d+1|0;if((d|0)==4)break;else a=a+8|0}i=c;return}function kc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;f=0;e=a;while(1){l=b[e>>1]<<6;j=e+16|0;k=b[j>>1]<<6;g=k+l|0;k=l-k|0;l=e+8|0;m=b[l>>1]|0;d=e+24|0;n=b[d>>1]|0;h=(n*36|0)+(m*83|0)|0;m=($(n,-83)|0)+(m*36|0)|0;n=g+64+h|0;o=n>>7;if((o+32768|0)>>>0>65535)o=n>>31^32767;b[e>>1]=o;o=k+64+m|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[l>>1]=n;l=k-m+64|0;k=l>>7;if((k+32768|0)>>>0>65535)k=l>>31^32767;b[j>>1]=k;h=g-h+64|0;g=h>>7;if((g+32768|0)>>>0>65535)g=h>>31^32767;b[d>>1]=g;f=f+1|0;if((f|0)==4){e=0;break}else e=e+2|0}while(1){k=b[a>>1]<<6;h=a+4|0;l=b[h>>1]<<6;g=l+k|0;l=k-l|0;k=a+2|0;j=b[k>>1]|0;d=a+6|0;m=b[d>>1]|0;f=(m*36|0)+(j*83|0)|0;j=($(m,-83)|0)+(j*36|0)|0;m=g+2048+f|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[a>>1]=n;m=l+2048+j|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[k>>1]=n;k=l-j+2048|0;j=k>>12;if((j+32768|0)>>>0>65535)j=k>>31^32767;b[h>>1]=j;f=g-f+2048|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[d>>1]=g;e=e+1|0;if((e|0)==4)break;else a=a+8|0}i=c;return}function lc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;i=i+64|0;j=h+48|0;p=h+32|0;f=h+16|0;g=h;q=(e|0)>8;r=e+4|0;k=j+4|0;l=j+8|0;m=j+12|0;o=0;r=(r|0)>8?8:r;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(r|0)>1;s=0;do{if(w){t=p+(s<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[n+(u<<3<<1)>>1]|0,a[1664+(u<<2<<5)+s>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<(r|0));c[t>>2]=v}s=s+1|0}while((s|0)!=4);v=b[n>>1]<<6;u=b[n+64>>1]<<6;w=u+v|0;u=v-u|0;v=b[n+32>>1]|0;t=b[n+96>>1]|0;s=(t*36|0)+(v*83|0)|0;v=($(t,-83)|0)+(v*36|0)|0;t=s+w|0;c[j>>2]=t;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-s;s=0;while(1){u=c[p+(s<<2)>>2]|0;v=t+64+u|0;w=v>>7;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[n+(s<<3<<1)>>1]=w;t=t-u+64|0;u=t>>7;if((u+32768|0)>>>0>65535)u=t>>31^32767;b[n+(7-s<<3<<1)>>1]=u;s=s+1|0;if((s|0)==4)break;t=c[j+(s<<2)>>2]|0}if((r|0)<8)r=(o&3|0)==0&(o|0)!=0?r+ -4|0:r;o=o+1|0;if((o|0)==8)break;else n=n+2|0}j=q?8:e;n=(j|0)>1;k=f+4|0;l=f+8|0;m=f+12|0;o=0;while(1){c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;e=0;do{if(n){r=g+(e<<2)|0;p=c[r>>2]|0;q=1;do{p=($(b[d+(q<<1)>>1]|0,a[1664+(q<<2<<5)+e>>0]|0)|0)+p|0;q=q+2|0}while((q|0)<(j|0));c[r>>2]=p}e=e+1|0}while((e|0)!=4);v=b[d>>1]<<6;u=b[d+8>>1]<<6;w=u+v|0;u=v-u|0;v=b[d+4>>1]|0;p=b[d+12>>1]|0;e=(p*36|0)+(v*83|0)|0;v=($(p,-83)|0)+(v*36|0)|0;p=e+w|0;c[f>>2]=p;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-e;e=0;while(1){q=c[g+(e<<2)>>2]|0;r=p+2048+q|0;s=r>>12;if((s+32768|0)>>>0>65535)s=r>>31^32767;b[d+(e<<1)>>1]=s;p=p-q+2048|0;q=p>>12;if((q+32768|0)>>>0>65535)q=p>>31^32767;b[d+(7-e<<1)>>1]=q;e=e+1|0;if((e|0)==4)break;p=c[f+(e<<2)>>2]|0}o=o+1|0;if((o|0)==8)break;else d=d+16|0}i=h;return}function mc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=i;i=i+192|0;t=j+160|0;u=j+128|0;m=j+112|0;l=j+96|0;g=j+64|0;h=j+32|0;f=j+16|0;k=j;s=(e|0)>16;v=e+4|0;n=m+4|0;o=m+8|0;p=m+12|0;r=0;v=(v|0)>16?16:v;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(v|0)>1;z=0;do{if(A){y=u+(z<<2)|0;w=c[y>>2]|0;x=1;do{w=($(b[q+(x<<4<<1)>>1]|0,a[1664+(x<<1<<5)+z>>0]|0)|0)+w|0;x=x+2|0}while((x|0)<(v|0));c[y>>2]=w}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;z=0;do{x=l+(z<<2)|0;w=c[x>>2]|0;y=1;do{w=($(b[q+(y<<5<<1)>>1]|0,a[1664+(y<<2<<5)+z>>0]|0)|0)+w|0;y=y+2|0}while((y|0)<8);c[x>>2]=w;z=z+1|0}while((z|0)!=4);z=b[q>>1]<<6;y=b[q+256>>1]<<6;A=y+z|0;y=z-y|0;z=b[q+128>>1]|0;w=b[q+384>>1]|0;x=(w*36|0)+(z*83|0)|0;z=($(w,-83)|0)+(z*36|0)|0;w=x+A|0;c[m>>2]=w;c[n>>2]=z+y;c[o>>2]=y-z;c[p>>2]=A-x;x=0;while(1){A=c[l+(x<<2)>>2]|0;c[t+(x<<2)>>2]=A+w;c[t+(7-x<<2)>>2]=w-A;x=x+1|0;if((x|0)==4){w=0;break}w=c[m+(x<<2)>>2]|0}do{x=c[t+(w<<2)>>2]|0;y=c[u+(w<<2)>>2]|0;A=x+64+y|0;z=A>>7;if((z+32768|0)>>>0>65535)z=A>>31^32767;b[q+(w<<4<<1)>>1]=z;x=x-y+64|0;y=x>>7;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[q+(15-w<<4<<1)>>1]=y;w=w+1|0}while((w|0)!=8);if((v|0)<16)v=(r&3|0)==0&(r|0)!=0?v+ -4|0:v;r=r+1|0;if((r|0)==16)break;else q=q+2|0}o=s?16:e;p=(o|0)>1;l=f+4|0;m=f+8|0;n=f+12|0;q=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;r=0;do{if(p){e=h+(r<<2)|0;t=c[e>>2]|0;s=1;do{t=($(b[d+(s<<1)>>1]|0,a[1664+(s<<1<<5)+r>>0]|0)|0)+t|0;s=s+2|0}while((s|0)<(o|0));c[e>>2]=t}r=r+1|0}while((r|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;t=0;do{r=k+(t<<2)|0;s=c[r>>2]|0;e=1;do{s=($(b[d+(e<<1<<1)>>1]|0,a[1664+(e<<2<<5)+t>>0]|0)|0)+s|0;e=e+2|0}while((e|0)<8);c[r>>2]=s;t=t+1|0}while((t|0)!=4);z=b[d>>1]<<6;y=b[d+16>>1]<<6;A=y+z|0;y=z-y|0;z=b[d+8>>1]|0;r=b[d+24>>1]|0;e=(r*36|0)+(z*83|0)|0;z=($(r,-83)|0)+(z*36|0)|0;r=e+A|0;c[f>>2]=r;c[l>>2]=z+y;c[m>>2]=y-z;c[n>>2]=A-e;e=0;while(1){A=c[k+(e<<2)>>2]|0;c[g+(e<<2)>>2]=A+r;c[g+(7-e<<2)>>2]=r-A;e=e+1|0;if((e|0)==4){r=0;break}r=c[f+(e<<2)>>2]|0}do{e=c[g+(r<<2)>>2]|0;s=c[h+(r<<2)>>2]|0;u=e+2048+s|0;t=u>>12;if((t+32768|0)>>>0>65535)t=u>>31^32767;b[d+(r<<1)>>1]=t;e=e-s+2048|0;s=e>>12;if((s+32768|0)>>>0>65535)s=e>>31^32767;b[d+(15-r<<1)>>1]=s;r=r+1|0}while((r|0)!=8);q=q+1|0;if((q|0)==16)break;else d=d+32|0}i=j;return}function nc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;m=i;i=i+320|0;g=m+256|0;l=m+192|0;o=m+160|0;s=m+128|0;u=m+112|0;t=m+96|0;f=m+64|0;j=m+32|0;h=m+16|0;k=m;q=(e|0)>32;x=e+4|0;v=u+4|0;w=u+8|0;n=u+12|0;p=0;x=(x|0)>32?32:x;r=d;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));B=(x|0)>1;A=0;do{if(B){z=l+(A<<2)|0;y=c[z>>2]|0;C=1;do{y=($(b[r+(C<<5<<1)>>1]|0,a[1664+(C<<5)+A>>0]|0)|0)+y|0;C=C+2|0}while((C|0)<(x|0));c[z>>2]=y}A=A+1|0}while((A|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;y=(x|0)/2|0;z=(x|0)>3;A=0;do{if(z){D=s+(A<<2)|0;B=c[D>>2]|0;C=1;do{B=($(b[r+(C<<6<<1)>>1]|0,a[1664+(C<<1<<5)+A>>0]|0)|0)+B|0;C=C+2|0}while((C|0)<(y|0));c[D>>2]=B}A=A+1|0}while((A|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;A=0;do{B=t+(A<<2)|0;z=c[B>>2]|0;y=1;do{z=($(b[r+(y<<7<<1)>>1]|0,a[1664+(y<<2<<5)+A>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[B>>2]=z;A=A+1|0}while((A|0)!=4);C=b[r>>1]<<6;B=b[r+1024>>1]<<6;D=B+C|0;B=C-B|0;C=b[r+512>>1]|0;y=b[r+1536>>1]|0;z=(y*36|0)+(C*83|0)|0;C=($(y,-83)|0)+(C*36|0)|0;y=z+D|0;c[u>>2]=y;c[v>>2]=C+B;c[w>>2]=B-C;c[n>>2]=D-z;z=0;while(1){D=c[t+(z<<2)>>2]|0;c[o+(z<<2)>>2]=D+y;c[o+(7-z<<2)>>2]=y-D;z=z+1|0;if((z|0)==4){y=0;break}y=c[u+(z<<2)>>2]|0}do{C=c[o+(y<<2)>>2]|0;D=c[s+(y<<2)>>2]|0;c[g+(y<<2)>>2]=D+C;c[g+(15-y<<2)>>2]=C-D;y=y+1|0}while((y|0)!=8);y=0;do{z=c[g+(y<<2)>>2]|0;A=c[l+(y<<2)>>2]|0;B=z+64+A|0;C=B>>7;if((C+32768|0)>>>0>65535)C=B>>31^32767;b[r+(y<<5<<1)>>1]=C;z=z-A+64|0;A=z>>7;if((A+32768|0)>>>0>65535)A=z>>31^32767;b[r+(31-y<<5<<1)>>1]=A;y=y+1|0}while((y|0)!=16);if((x|0)<32)x=(p&3|0)==0&(p|0)!=0?x+ -4|0:x;p=p+1|0;if((p|0)==32)break;else r=r+2|0}p=q?32:e;o=(p|0)>1;n=(p|0)/2|0;q=(p|0)>3;s=h+4|0;r=h+8|0;e=h+12|0;t=0;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));v=0;do{if(o){w=l+(v<<2)|0;u=c[w>>2]|0;x=1;do{u=($(b[d+(x<<1)>>1]|0,a[1664+(x<<5)+v>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(p|0));c[w>>2]=u}v=v+1|0}while((v|0)!=16);c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;x=0;do{if(q){u=j+(x<<2)|0;w=c[u>>2]|0;v=1;do{D=v<<1;w=($(b[d+(D<<1)>>1]|0,a[1664+(D<<5)+x>>0]|0)|0)+w|0;v=v+2|0}while((v|0)<(n|0));c[u>>2]=w}x=x+1|0}while((x|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;u=0;do{v=k+(u<<2)|0;x=c[v>>2]|0;w=1;do{D=w<<2;x=($(b[d+(D<<1)>>1]|0,a[1664+(D<<5)+u>>0]|0)|0)+x|0;w=w+2|0}while((w|0)<8);c[v>>2]=x;u=u+1|0}while((u|0)!=4);C=b[d>>1]<<6;B=b[d+32>>1]<<6;D=B+C|0;B=C-B|0;C=b[d+16>>1]|0;u=b[d+48>>1]|0;v=(u*36|0)+(C*83|0)|0;C=($(u,-83)|0)+(C*36|0)|0;u=v+D|0;c[h>>2]=u;c[s>>2]=C+B;c[r>>2]=B-C;c[e>>2]=D-v;v=0;while(1){D=c[k+(v<<2)>>2]|0;c[f+(v<<2)>>2]=D+u;c[f+(7-v<<2)>>2]=u-D;v=v+1|0;if((v|0)==4){u=0;break}u=c[h+(v<<2)>>2]|0}do{C=c[f+(u<<2)>>2]|0;D=c[j+(u<<2)>>2]|0;c[g+(u<<2)>>2]=D+C;c[g+(15-u<<2)>>2]=C-D;u=u+1|0}while((u|0)!=8);u=0;do{v=c[g+(u<<2)>>2]|0;w=c[l+(u<<2)>>2]|0;x=v+2048+w|0;y=x>>12;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[d+(u<<1)>>1]=y;v=v-w+2048|0;w=v>>12;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[d+(31-u<<1)>>1]=w;u=u+1|0}while((u|0)!=16);t=t+1|0;if((t|0)==32)break;else d=d+64|0}i=m;return}function oc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;e=e+1|0}while((e|0)!=4);i=c;return}function pc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;b[a+((f|4)<<1)>>1]=d;b[a+((f|5)<<1)>>1]=d;b[a+((f|6)<<1)>>1]=d;b[a+((f|7)<<1)>>1]=d;e=e+1|0}while((e|0)!=8);i=c;return}function qc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);d=d+1|0}while((d|0)!=16);i=c;return}function rc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);d=d+1|0}while((d|0)!=32);i=c;return}function sc(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0;o=i;i=i+128|0;k=o;q=k+0|0;p=q+128|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(p|0));q=d[j+n+96>>0]|0;c[k+((q&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((q+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((q+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((q+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];if((m|0)<=0){i=o;return}n=(l|0)>0;j=0;while(1){if(n){p=0;do{q=d[f+p>>0]|0;q=q+(c[k+(q>>>3<<2)>>2]|0)|0;if(q>>>0>255)q=0-q>>31;a[e+p>>0]=q;p=p+1|0}while((p|0)!=(l|0))}j=j+1|0;if((j|0)==(m|0))break;else{e=e+g|0;f=f+h|0}}i=o;return}function tc(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0;p=i;o=j+(n*10|0)+112|0;r=c[j+(n<<2)+100>>2]|0;if((r|0)!=1){if(c[k>>2]|0){q=b[o>>1]|0;if((m|0)>0){s=0;do{t=(d[f+($(s,h)|0)>>0]|0)+q|0;if(t>>>0>255)t=0-t>>31;a[e+($(s,g)|0)>>0]=t;s=s+1|0}while((s|0)!=(m|0));q=1}else q=1}else q=0;if(c[k+8>>2]|0){s=b[o>>1]|0;l=l+ -1|0;if((m|0)>0){t=0;do{u=(d[f+(($(t,h)|0)+l)>>0]|0)+s|0;if(u>>>0>255)u=0-u>>31;a[e+(($(t,g)|0)+l)>>0]=u;t=t+1|0}while((t|0)!=(m|0))}}if(!r){s=m;t=q;u=0;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}}else q=0;if(c[k+4>>2]|0){r=b[o>>1]|0;if((q|0)<(l|0)){s=q;do{t=(d[f+s>>0]|0)+r|0;if(t>>>0>255)t=0-t>>31;a[e+s>>0]=t;s=s+1|0}while((s|0)!=(l|0));r=1}else r=1}else r=0;if(!(c[k+12>>2]|0)){s=m;t=q;u=r;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}k=b[o>>1]|0;o=m+ -1|0;t=$(o,g)|0;m=$(o,h)|0;if((q|0)<(l|0))s=q;else{s=o;t=q;u=r;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}do{u=(d[f+(s+m)>>0]|0)+k|0;if(u>>>0>255)u=0-u>>31;a[e+(s+t)>>0]=u;s=s+1|0}while((s|0)!=(l|0));Bc(e,f,g,h,j,l,o,n,q,r);i=p;return}function uc(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;s=i;C=j+(n*10|0)+112|0;B=c[j+(n<<2)+100>>2]|0;A=(B|0)!=1;if(A){if(c[k>>2]|0){D=b[C>>1]|0;if((m|0)>0){E=0;do{G=(d[f+($(E,h)|0)>>0]|0)+D|0;if(G>>>0>255)G=0-G>>31;a[e+($(E,g)|0)>>0]=G;E=E+1|0}while((E|0)!=(m|0));D=1}else D=1}else D=0;if(c[k+8>>2]|0){E=b[C>>1]|0;l=l+ -1|0;if((m|0)>0){G=0;do{H=(d[f+(($(G,h)|0)+l)>>0]|0)+E|0;if(H>>>0>255)H=0-H>>31;a[e+(($(G,g)|0)+l)>>0]=H;G=G+1|0}while((G|0)!=(m|0))}}if(!B){C=1;E=0}else F=13}else{D=0;F=13}if((F|0)==13){if(c[k+4>>2]|0){F=b[C>>1]|0;if((D|0)<(l|0)){E=D;do{G=(d[f+E>>0]|0)+F|0;if(G>>>0>255)G=0-G>>31;a[e+E>>0]=G;E=E+1|0}while((E|0)!=(l|0));E=1}else E=1}else E=0;if(c[k+12>>2]|0){C=b[C>>1]|0;m=m+ -1|0;G=$(m,g)|0;H=$(m,h)|0;if((D|0)<(l|0)){F=D;do{I=(d[f+(F+H)>>0]|0)+C|0;if(I>>>0>255)I=0-I>>31;a[e+(F+G)>>0]=I;F=F+1|0}while((F|0)!=(l|0));C=0}else C=0}else C=0}Bc(e,f,g,h,j,l,m,n,D,E);j=(B|0)==2;if((a[q>>0]|0)==0&j?(c[k>>2]|0)==0:0)n=(c[k+4>>2]|0)==0;else n=0;H=n&1;n=q+1|0;B=(B|0)==3;if((a[n>>0]|0)==0&B?(c[k+4>>2]|0)==0:0)F=(c[k+8>>2]|0)==0;else F=0;J=F&1;F=q+2|0;if((a[F>>0]|0)==0&j?(c[k+8>>2]|0)==0:0)G=(c[k+12>>2]|0)==0;else G=0;I=G&1;G=q+3|0;if((a[G>>0]|0)==0&B?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;A=A^1;if(!((a[o>>0]|0)==0|A)?(z=H+E|0,y=m-k|0,(z|0)<(y|0)):0)do{a[e+($(z,g)|0)>>0]=a[f+($(z,h)|0)>>0]|0;z=z+1|0}while((z|0)!=(y|0));if(!((a[o+1>>0]|0)==0|A)?(x=J+E|0,w=m-I|0,(x|0)<(w|0)):0){o=l+ -1|0;do{a[e+(o+($(x,g)|0))>>0]=a[f+(o+($(x,h)|0))>>0]|0;x=x+1|0}while((x|0)!=(w|0))}if(!((a[p>>0]|0)==0|C)?(v=H+D|0,u=l-J|0,(v|0)<(u|0)):0)do{a[e+v>>0]=a[f+v>>0]|0;v=v+1|0}while((v|0)!=(u|0));if(!((a[p+1>>0]|0)==0|C)?(t=k+D|0,r=l-I|0,(t|0)<(r|0)):0){u=m+ -1|0;p=$(u,h)|0;u=$(u,g)|0;do{a[e+(t+u)>>0]=a[f+(t+p)>>0]|0;t=t+1|0}while((t|0)!=(r|0))}if((a[q>>0]|0)!=0&j)a[e>>0]=a[f>>0]|0;if((a[n>>0]|0)!=0&B){J=l+ -1|0;a[e+J>>0]=a[f+J>>0]|0}if((a[F>>0]|0)!=0&j){J=m+ -1|0;I=l+ -1|0;a[e+(I+($(J,g)|0))>>0]=a[f+(I+($(J,h)|0))>>0]|0}if(!((a[G>>0]|0)!=0&B)){i=s;return}J=m+ -1|0;a[e+($(J,g)|0)>>0]=a[f+($(J,h)|0)>>0]|0;i=s;return}function vc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;Ac(a,b,1,c,d,e,f);i=g;return}function wc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;Ac(a,1,b,c,d,e,f);i=g;return}function xc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;zc(a,b,1,c,d,e);i=f;return}function yc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;zc(a,1,b,c,d,e);i=f;return}function zc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;l=$(e,-2)|0;k=0-e|0;n=0;while(1){p=c[g+(n<<2)>>2]|0;if((p|0)>=1){s=0-p|0;r=(a[h+n>>0]|0)==0;q=(a[j+n>>0]|0)==0;o=0;t=b;while(1){v=t+k|0;x=d[v>>0]|0;u=d[t>>0]|0;w=(d[t+l>>0]|0)+4-(d[t+e>>0]|0)+(u-x<<2)>>3;if((w|0)<(s|0))w=s;else w=(w|0)>(p|0)?p:w;if(r){x=w+x|0;if(x>>>0>255)x=0-x>>31;a[v>>0]=x}if(q){u=u-w|0;if(u>>>0>255)u=0-u>>31;a[t>>0]=u}o=o+1|0;if((o|0)==4)break;else t=t+f|0}}n=n+1|0;if((n|0)==2)break;else b=b+(f<<2)|0}i=m;return}function Ac(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;t=i;o=$(e,-3)|0;p=$(e,-2)|0;q=0-e|0;r=e<<1;D=f*3|0;B=D+o|0;C=D+p|0;A=D-e|0;E=D+r|0;l=D+e|0;y=g>>3;v=g>>2;n=$(e,-4)|0;s=e*3|0;w=D+n|0;x=(f+e|0)*3|0;u=(g>>1)+g>>3;z=f<<2;m=f<<2;F=0;do{U=a[b+o>>0]|0;T=a[b+p>>0]|0;S=a[b+q>>0]|0;J=S&255;N=(U&255)-((T&255)<<1)+J|0;N=(N|0)>-1?N:0-N|0;P=a[b+r>>0]|0;Q=a[b+e>>0]|0;R=a[b>>0]|0;X=R&255;V=(P&255)-((Q&255)<<1)+X|0;V=(V|0)>-1?V:0-V|0;_=d[b+A>>0]|0;M=(d[b+B>>0]|0)-((d[b+C>>0]|0)<<1)+_|0;M=(M|0)>-1?M:0-M|0;Y=d[b+D>>0]|0;O=(d[b+E>>0]|0)-((d[b+l>>0]|0)<<1)+Y|0;O=(O|0)>-1?O:0-O|0;H=V+N|0;I=O+M|0;G=c[h+(F<<2)>>2]|0;W=a[j+F>>0]|0;L=a[k+F>>0]|0;do if((I+H|0)<(g|0)){Z=(G*5|0)+1>>1;aa=(d[b+n>>0]|0)-J|0;K=a[b+s>>0]|0;ba=(K&255)-X|0;if((((((((ba|0)>-1?ba:0-ba|0)+((aa|0)>-1?aa:0-aa|0)|0)<(y|0)?(ba=J-X|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(ba=(d[b+w>>0]|0)-_|0,aa=(d[b+x>>0]|0)-Y|0,(((aa|0)>-1?aa:0-aa|0)+((ba|0)>-1?ba:0-ba|0)|0)<(y|0)):0)?(ba=_-Y|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(H<<1|0)<(v|0):0)?(I<<1|0)<(v|0):0){G=G<<1;H=W<<24>>24==0;I=0-G|0;J=L<<24>>24==0;Y=K;K=1;L=b;while(1){V=L+o|0;U=U&255;W=L+p|0;T=T&255;X=L+q|0;N=S&255;R=R&255;S=L+e|0;Q=Q&255;M=L+r|0;O=P&255;P=Y&255;if(H){Y=d[L+n>>0]|0;Z=(U+4+Q+(N+T+R<<1)>>3)-N|0;if((Z|0)<(I|0))Z=I;else Z=(Z|0)>(G|0)?G:Z;a[X>>0]=Z+N;X=((U+2+T+N+R|0)>>>2)-T|0;if((X|0)<(I|0))X=I;else X=(X|0)>(G|0)?G:X;a[W>>0]=X+T;W=((U*3|0)+4+T+N+R+(Y<<1)>>3)-U|0;if((W|0)<(I|0))W=I;else W=(W|0)>(G|0)?G:W;a[V>>0]=W+U}if(J){T=(T+4+O+(R+N+Q<<1)>>3)-R|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[L>>0]=T+R;T=((N+2+R+Q+O|0)>>>2)-Q|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[S>>0]=T+Q;N=(N+4+R+Q+(O*3|0)+(P<<1)>>3)-O|0;if((N|0)<(I|0))N=I;else N=(N|0)>(G|0)?G:N;a[M>>0]=N+O}M=L+f|0;if((K|0)==4)break;U=a[L+(o+f)>>0]|0;T=a[L+(p+f)>>0]|0;S=a[L+(f-e)>>0]|0;R=a[M>>0]|0;Q=a[L+(f+e)>>0]|0;P=a[L+(r+f)>>0]|0;Y=a[L+(s+f)>>0]|0;K=K+1|0;L=M}b=b+m|0;break}H=G>>1;I=G*10|0;J=0-G|0;K=W<<24>>24!=0;L=L<<24>>24!=0;M=(M+N|0)<(u|0)&(K^1);N=0-H|0;O=(O+V|0)<(u|0)&(L^1);V=T;W=R;Y=Q;Q=1;R=b;while(1){X=U&255;T=R+p|0;V=V&255;_=R+q|0;Z=S&255;W=W&255;S=R+e|0;U=Y&255;P=P&255;Y=((W-Z|0)*9|0)+8+($(U-V|0,-3)|0)>>4;if((((Y|0)>-1?Y:0-Y|0)|0)<(I|0)){if((Y|0)<(J|0))Y=J;else Y=(Y|0)>(G|0)?G:Y;if(!K){aa=Y+Z|0;if(aa>>>0>255)aa=0-aa>>31;a[_>>0]=aa}if(!L){_=W-Y|0;if(_>>>0>255)_=0-_>>31;a[R>>0]=_}if(M){X=((X+1+Z|0)>>>1)-V+Y>>1;if((X|0)<(N|0))X=N;else X=(X|0)>(H|0)?H:X;V=X+V|0;if(V>>>0>255)V=0-V>>31;a[T>>0]=V}if(O){P=((W+1+P|0)>>>1)-U-Y>>1;if((P|0)<(N|0))P=N;else P=(P|0)>(H|0)?H:P;P=P+U|0;if(P>>>0>255)P=0-P>>31;a[S>>0]=P}}T=R+f|0;if((Q|0)==4)break;U=a[R+(o+f)>>0]|0;V=a[R+(p+f)>>0]|0;S=a[R+(f-e)>>0]|0;W=a[T>>0]|0;Y=a[R+(f+e)>>0]|0;P=a[R+(r+f)>>0]|0;Q=Q+1|0;R=T}b=b+m|0}else b=b+z|0;while(0);F=F+1|0}while((F|0)!=2);i=t;return}function Bc(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;t=i;v=c[j+(m<<2)+100>>2]|0;q=a[2728+(v<<2)>>0]|0;r=a[2730+(v<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}u=(n|0)<(k|0);s=o;p=$((a[2729+(v<<2)>>0]|0)+o|0,h)|0;v=$((a[2731+(v<<2)>>0]|0)+o|0,h)|0;w=$(o,g)|0;o=$(o,h)|0;while(1){if(u){y=p+q|0;x=v+r|0;z=n;do{A=a[f+(z+o)>>0]|0;B=a[f+(y+z)>>0]|0;if((A&255)>(B&255))B=3;else B=((A<<24>>24!=B<<24>>24)<<31>>31)+2|0;C=a[f+(x+z)>>0]|0;if((A&255)>(C&255))C=1;else C=(A<<24>>24!=C<<24>>24)<<31>>31;A=(b[j+(m*10|0)+(d[2720+(C+B)>>0]<<1)+112>>1]|0)+(A&255)|0;if(A>>>0>255)A=0-A>>31;a[e+(z+w)>>0]=A;z=z+1|0}while((z|0)!=(k|0))}s=s+1|0;if((s|0)==(l|0))break;else{p=p+h|0;v=v+h|0;w=w+g|0;o=o+h|0}}i=t;return}function Cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function Dc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;g=h+204|0;j=td(13196)|0;c[e>>2]=j;if(!j){t=-12;i=f;return t|0}j=c[j+4>>2]|0;l=td(468)|0;if(!l){t=-12;i=f;return t|0}k=c[l+4>>2]|0;c[k+4>>2]=1;n=k+8|0;c[n>>2]=1;a[k>>0]=0;c[k+348>>2]=1;p=k+352|0;m=k+380|0;q=k+408|0;o=0;do{c[p+(o<<2)>>2]=1;c[m+(o<<2)>>2]=0;c[q+(o<<2)>>2]=-1;o=o+1|0}while((o|0)<(c[n>>2]|0));c[k+436>>2]=0;c[k+440>>2]=1;a[k+444>>0]=0;o=b+208|0;vd(o);c[o>>2]=l;c[j>>2]=0;o=j+72|0;c[o>>2]=1;t=_c(g,8)|0;p=j+4|0;c[p>>2]=t;do if((t|0)<=3){a[j+8>>0]=0;n=j+13120|0;c[n>>2]=cd(g,32)|0;k=cd(g,32)|0;m=j+13124|0;c[m>>2]=k;k=Qc(c[n>>2]|0,k,0,c[b+4>>2]|0)|0;if((k|0)>=0){t=_c(g,8)|0;l=j+52|0;c[l>>2]=t+8;if(!t){p=c[p>>2]|0;if((p|0)==1){c[j+60>>2]=0;p=0}else if(!p){c[j+60>>2]=8;p=8}else if((p|0)==2){c[j+60>>2]=4;p=4}else{c[j+60>>2]=5;p=5}c[j+56>>2]=0;p=Bd(p)|0;if(p){c[j+13180>>2]=0;c[j+13168>>2]=0;t=d[p+5>>0]|0;c[j+13172>>2]=t;c[j+13176>>2]=t;t=d[p+6>>0]|0;c[j+13184>>2]=t;c[j+13188>>2]=t;c[j+64>>2]=8;if((c[o>>2]|0)>0){p=j+76|0;q=0;do{c[p+(q*12|0)>>2]=1;c[p+(q*12|0)+4>>2]=0;c[p+(q*12|0)+8>>2]=-1;q=q+1|0}while((q|0)<(c[o>>2]|0))}s=(dd(g)|0)+3|0;t=j+13064|0;c[t>>2]=s;s=1<>2]=r+(c[n>>2]|0)&s;c[m>>2]=r+(c[m>>2]|0)&s;s=j+13068|0;c[s>>2]=dd(g)|0;r=j+13072|0;c[r>>2]=(dd(g)|0)+2;o=dd(g)|0;p=c[r>>2]|0;q=j+13076|0;c[q>>2]=p+o;if(p>>>0<(c[t>>2]|0)>>>0){u=dd(g)|0;o=j+13092|0;c[o>>2]=u;p=j+13088|0;c[p>>2]=u;a[j+12940>>0]=1;a[j+12941>>0]=bd(g)|0;u=bd(g)|0;c[j+68>>2]=u;if(u){u=j+13044|0;a[u>>0]=(_c(g,4)|0)+1;a[j+13045>>0]=(_c(g,4)|0)+1;v=(dd(g)|0)+3|0;c[j+13048>>2]=v;c[j+13052>>2]=v+(dd(g)|0);if((d[u>>0]|0|0)>(c[l>>2]|0)){k=-1094995529;break}a[j+13056>>0]=bd(g)|0}c[j+2184>>2]=0;a[j+12942>>0]=0;a[j+13060>>0]=1;a[j+13061>>0]=bd(g)|0;c[j+160>>2]=0;c[j+164>>2]=1;if((bd(g)|0)!=0?(v=bd(g)|0,ad(g,7),(v|0)!=0):0){c[j+13096>>2]=bd(g)|0;c[j+13100>>2]=bd(g)|0;c[j+13104>>2]=bd(g)|0;c[j+13108>>2]=bd(g)|0;bd(g)|0;c[j+13112>>2]=bd(g)|0;bd(g)|0;c[j+13116>>2]=bd(g)|0;bd(g)|0}g=c[n>>2]|0;c[j+12>>2]=g;n=c[m>>2]|0;c[j+16>>2]=n;t=c[t>>2]|0;v=(c[s>>2]|0)+t|0;c[j+13080>>2]=v;s=t+ -1|0;c[j+13084>>2]=s;m=1<>v;c[j+13128>>2]=u;m=n+ -1+m>>v;c[j+13132>>2]=m;c[j+13136>>2]=$(m,u)|0;c[j+13140>>2]=g>>t;c[j+13144>>2]=n>>t;u=c[r>>2]|0;c[j+13148>>2]=g>>u;c[j+13152>>2]=n>>u;c[j+13156>>2]=g>>s;c[j+13160>>2]=n>>s;u=v-u|0;c[j+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;t=(1<>>0>6):0)?(c[p>>2]|0)>>>0<=u>>>0:0)?(c[o>>2]|0)>>>0<=u>>>0:0)?(c[q>>2]|0)>>>0<=(v>>>0>5?5:v)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){g=b+272|0;h=c[g>>2]|0;if((h|0)!=0?(v=c[e>>2]|0,(Yd(c[h+4>>2]|0,c[v+4>>2]|0,c[v+8>>2]|0)|0)==0):0){vd(e);v=0;i=f;return v|0}else h=0;do{j=b+(h<<2)+400|0;k=c[j>>2]|0;do if(k){if(c[c[k+4>>2]>>2]|0)break;vd(j)}while(0);h=h+1|0}while((h|0)!=256);h=c[g>>2]|0;do if(h){j=b+200|0;if((c[j>>2]|0)!=(c[h+4>>2]|0))break;u=b+1424|0;vd(u);v=ud(c[g>>2]|0)|0;c[u>>2]=v;if(v)break;c[j>>2]=0}while(0);vd(g);c[g>>2]=c[e>>2];v=0;i=f;return v|0}}else k=-1094995529}else k=-22}else k=-1094995529}}else k=-1094995529;while(0);vd(e);v=k;i=f;return v|0}function Ec(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=md(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=qd(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){jd(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=dd(n)|0;a:do if((h>>>0<=255?(k=dd(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(bd(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=_c(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=ed(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=dd(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=ed(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=ed(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(dd(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(dd(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=od(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(bd(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(dd(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=ae(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(dd(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=ae(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(bd(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(bd(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(ed(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(ed(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(bd(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((bd(v)|0)&255)<<24>>24)){y=dd(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;fe(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(ed(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(ed(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(bd(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(dd(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((bd(n)|0)!=0?(I=bd(n)|0,_c(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(dd(p)|0)+2;a[n+1630>>0]=bd(p)|0;I=(bd(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=dd(p)|0;I=dd(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=ed(p)|0;a[n+l+1639>>0]=ed(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=dd(p)|0;a[n+1645>>0]=dd(p)|0}while(0);l=od((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=od((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=od(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=od(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=od(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=od($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=od(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;vd(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);vd(e);I=b;i=f;return I|0}function Fc(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;jd(b+1648|0);jd(b+1652|0);jd(b+1656|0);jd(b+1660|0);jd(b+1664|0);jd(b+1668|0);jd(b+1672|0);jd(b+1680|0);jd(b+1676|0);jd(b+1688|0);jd(d);i=a;return}function Gc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+2512|0;f=a+4524|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=_c(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=_c(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==257){b[f>>1]=_c(h,16)|0;break}else if((j|0)==256){Hc(a);break}else{ad(h,k<<3);break}else if((j|0)==132){Hc(a);break}else{ad(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if(($c(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Hc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(_c(e,8)|0)&255;f=b+4468|0;h=0;do{if((g|0)==2)ad(e,32);else if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+4420>>0]=_c(e,8)|0;j=j+1|0}while((j|0)!=16)}else if((g|0)==1)ad(e,16);h=h+1|0}while((h|0)!=3);i=d;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=md(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Da[c[b+76>>2]&3](a)|0;if((a|0)>=0){h=0;i=d;return h|0}jd(e);c[f>>2]=0;h=a;i=d;return h|0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Da[d&3](a)|0;c[a+796>>2]=0;jd(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Kc(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Ia[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ga[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Mc(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Bd(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=sd(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;ce(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=md(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Oc(a){a=a|0;var b=0,c=0;b=i;c=fd(976)|0;if(c){if((Nc(c,a)|0)<0){id(c);c=0}}else c=0;i=b;return c|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}yd(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ga[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){yd(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Rc(a,b){a=a|0;b=b|0;return 0}function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=xa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Sc(a,c[b>>2]|0,d)|0;i=e;return a|0}function Uc(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)yd(b);i=a;return}function Vc(a){a=a|0;return}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;return}function Xc(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Yc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Zc(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[718]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[2880+e>>0]=(g?8:0)-(d[4680+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[2880]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4224+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3392>>0]=j;a[h+3392>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4480+e>>0]|0)<<1;a[f+4032>>0]=j;a[f+4033>>0]=j|1;if(e){h=(d[4544+e>>0]|0)<<1;j=128-f|0;a[j+3903>>0]=h;a[j+3902>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+3903>>0]=1;a[e+3902>>0]=0;e=1;continue}}g=4160|0;f=4608|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[718]=1;i=b;return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function $c(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function ad(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function bd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function cd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(ee(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=cd(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4680+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}function ed(a){a=a|0;var b=0;b=i;a=dd(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function fd(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1168]|0;if((d+ -32|0)>>>0>=a>>>0){e=Vd(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=Vd(1)|0}else e=0;i=b;return e|0}function gd(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1168]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=Xd(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){Wd(a);d=0;i=e;return d|0}if(((c[1168]|0)+ -32|0)>>>0>>0)b=0;else b=Xd(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}Wd(a);d=0;i=e;return d|0}function id(a){a=a|0;var b=0;b=i;Wd(a);i=b;return}function jd(a){a=a|0;var b=0;b=i;Wd(c[a>>2]|0);c[a>>2]=0;i=b;return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1168]|0)+ -32|0)>>>0>=f>>>0):0)a=Xd(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ld(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=hd(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function md(a){a=a|0;var b=0,c=0;c=i;b=fd(a)|0;if(b)ce(b|0,0,a|0)|0;i=c;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;Wd(c[a>>2]|0);f=fd(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function od(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=fd($(b,a)|0)|0;else b=0;i=c;return b|0}function pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=fd(e)|0,(d|0)!=0):0)ce(d|0,0,e|0)|0;else d=0;i=c;return d|0}function qd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=md(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=md(12)|0;if(!j){jd(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function rd(a,b){a=a|0;b=b|0;a=i;id(b);i=a;return}function sd(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=fd(a)|0;c[d>>2]=e;if(e){a=qd(e,a,7,0,0)|0;if(!a){jd(d);a=0}}else a=0;i=b;return a|0}function td(a){a=a|0;var b=0,d=0;b=i;d=sd(a)|0;if(!d){d=0;i=b;return d|0}ce(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function ud(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=md(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function vd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;jd(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Aa[c[f+12>>2]&7](c[f+16>>2]|0,c[f>>2]|0);jd(d);i=b;return}function wd(){var a=0,b=0,d=0;a=i;b=md(400)|0;if(!b){b=0;i=a;return b|0}ce(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function xd(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){yd(d);jd(a)}i=b;return}function yd(a){a=a|0;var b=0,d=0;b=i;vd(a+304|0);vd(a+308|0);vd(a+312|0);vd(a+316|0);vd(a+320|0);vd(a+324|0);vd(a+328|0);vd(a+332|0);ce(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function zd(a,b){a=a|0;b=b|0;var d=0;d=i;fe(a|0,b|0,400)|0;ce(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)ta();else{e=f;g=0}while(1){if((e|0)!=0?(j=ud(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){yd(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[4936+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=4940+(e*24|0)|0;i=d;return f|0}function Cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Dd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Ed(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0;f=i;if(!(c[b+8>>2]|0)){t=-1;i=f;return t|0}g=b+68|0;if((a[g>>0]|0)!=0|e>>>0>1){t=-1;i=f;return t|0}a[b+76>>0]=(e|0)==1&1;l=b+77|0;a[l>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(t=b+16|0,p=c[t>>2]|0,j=b+84|0,c[j>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=fd(p)|0,c[b+128>>2]=fd(c[t>>2]|0)|0,c[b+196>>2]=fd((c[j>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){m=0;do{c[b+(m<<2)+132>>2]=fd(c[j>>2]|0)|0;c[b+(m<<2)+164>>2]=fd(c[j>>2]|0)|0;m=m+1|0}while((m|0)!=8)}j=d[b+30>>0]|0;v=(a[l>>0]|0)!=0?16:8;l=b+36|0;t=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=j+ -8|0;r=o/+(224<>2]=sa(+(r*y*2.0))|0;w=1.0-u;x=w-s;c[b+224>>2]=sa(+(r*(u*2.0*w/x)))|0;c[b+228>>2]=sa(+(r*(s*2.0*y/x)))|0;c[b+232>>2]=sa(+(r*w*2.0))|0}k=sa(+q)|0;c[b+208>>2]=k;c[b+200>>2]=p;t=1<>2]=t;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[p>>2]|0)}else{c[b+212>>2]=k;c[b+216>>2]=t}c[b+240>>2]=j;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=4;else c[b+248>>2]=c[6064+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e;c[b+92>>2]=Cd(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=Cd(b,b+112|0,1)|0;c[b+100>>2]=Cd(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=Cd(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Fd(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Gd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=i;h=b+80|0;l=c[h>>2]|0;if(l>>>0>=(c[b+20>>2]|0)>>>0){u=-1;i=g;return u|0}f=c[b+16>>2]|0;m=(c[b+92>>2]|0)+($(c[b+108>>2]|0,l)|0)|0;j=b+76|0;if(!(a[j>>0]|0))k=(a[b+78>>0]|0)!=0?4:3;else k=4;n=c[b+24>>2]|0;if((n|0)==3){t=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;u=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;Ka[c[b+248>>2]&7](b+200|0,e,m,t,u,f,k)}else if((n|0)==2){u=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;p=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;t=b+124|0;q=b+30|0;r=b+28|0;s=b+196|0;Id(c[t>>2]|0,u,f,d[q>>0]|0,d[r>>0]|0,c[s>>2]|0);u=b+128|0;Id(c[u>>2]|0,p,f,d[q>>0]|0,d[r>>0]|0,c[s>>2]|0);Ka[c[b+248>>2]&7](b+200|0,e,m,c[t>>2]|0,c[u>>2]|0,f,k)}else if((n|0)==1){if(!l){n=b+96|0;o=b+112|0;p=b+100|0;q=b+116|0;r=b+84|0;s=b+88|0;t=0;do{u=(t|0)>4?t+ -8|0:t;if((u|0)<0)u=0;else{v=c[s>>2]|0;u=(u|0)<(v|0)?u:v+ -1|0}w=(c[n>>2]|0)+($(c[o>>2]|0,u)|0)|0;v=(c[p>>2]|0)+($(c[q>>2]|0,u)|0)|0;fe(c[b+(t<<2)+132>>2]|0,w|0,c[r>>2]|0)|0;fe(c[b+(t<<2)+164>>2]|0,v|0,c[r>>2]|0)|0;t=t+1|0}while((t|0)!=8)}o=l>>1;q=(o|0)%8|0;w=l&1;n=b+124|0;t=b+196|0;u=b+30|0;v=b+28|0;Hd(c[n>>2]|0,b+132|0,f,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);p=b+128|0;Hd(c[p>>2]|0,b+164|0,f,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);if(w){u=(q+5|0)%8|0;t=o+5|0;v=c[b+88>>2]|0;v=(t|0)<(v|0)?t:v+ -1|0;t=(c[b+96>>2]|0)+($(v,c[b+112>>2]|0)|0)|0;v=(c[b+100>>2]|0)+($(c[b+116>>2]|0,v)|0)|0;w=b+84|0;fe(c[b+(u<<2)+132>>2]|0,t|0,c[w>>2]|0)|0;fe(c[b+(u<<2)+164>>2]|0,v|0,c[w>>2]|0)|0}Ka[c[b+248>>2]&7](b+200|0,e,m,c[n>>2]|0,c[p>>2]|0,f,k)}else if(!n)Ka[c[b+248>>2]&7](b+200|0,e,m,0,0,f,k);else{w=-1;i=g;return w|0}a:do if(!(a[b+31>>0]|0)){if(a[j>>0]|0){if(!(a[b+29>>0]|0)){if((f|0)<=0)break;b=e+3|0;e=0;while(1){a[b>>0]=-1;e=e+1|0;if((e|0)==(f|0))break a;else b=b+4|0}}j=c[b+104>>2]|0;k=$(c[b+120>>2]|0,l)|0;o=e+3|0;if((c[b+240>>2]|0)==8){if((f|0)>0){l=0;while(1){a[o>>0]=a[j+(l+k)>>0]|0;l=l+1|0;if((l|0)==(f|0))break;else o=o+4|0}}}else{l=c[b+208>>2]|0;m=c[b+204>>2]|0;n=c[b+200>>2]|0;if((f|0)>0){p=0;while(1){a[o>>0]=($(d[j+(p+k)>>0]|0,l)|0)+m>>n;p=p+1|0;if((p|0)==(f|0))break;else o=o+4|0}}}if(a[b+33>>0]|0){if(!(c[1258]|0)){c[1258]=1;b=1;do{c[5040+(b<<2)>>2]=(((b|0)/2|0)+16711808|0)/(b|0)|0;b=b+1|0}while((b|0)!=256)}if((f|0)>0){b=0;while(1){k=a[e+3>>0]|0;if(!(k<<24>>24)){a[e>>0]=-1;a[e+1>>0]=-1;a[e+2>>0]=-1}else{j=c[5040+((k&255)<<2)>>2]|0;l=a[e>>0]|0;if((l&255)<(k&255))l=(($(l&255,j)|0)+32768|0)>>>16&255;else l=-1;a[e>>0]=l;l=e+1|0;m=a[l>>0]|0;if((m&255)<(k&255))m=(($(m&255,j)|0)+32768|0)>>>16&255;else m=-1;a[l>>0]=m;l=e+2|0;m=a[l>>0]|0;if((m&255)<(k&255))j=(($(m&255,j)|0)+32768|0)>>>16&255;else j=-1;a[l>>0]=j}b=b+1|0;if((b|0)==(f|0))break;else e=e+4|0}}}}}else{m=c[b+104>>2]|0;l=$(c[b+120>>2]|0,l)|0;b=c[b+240>>2]|0;q=1<0;if(p){o=e;n=0;while(1){v=d[m+(n+l)>>0]|0;a[o>>0]=($(d[o>>0]|0,v)|0)+q>>b;w=o+1|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;w=o+2|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;n=n+1|0;if((n|0)==(f|0))break;else o=o+k|0}}if(!((a[j>>0]|0)==0|p^1)){e=e+3|0;b=0;while(1){a[e>>0]=-1;b=b+1|0;if((b|0)==(f|0))break;else e=e+4|0}}}while(0);c[h>>2]=(c[h>>2]|0)+1;w=0;i=g;return w|0}function Hd(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;n=i;p=c[f+((h+5&7)<<2)>>2]|0;t=c[f+((h+6&7)<<2)>>2]|0;q=c[f+((h+7&7)<<2)>>2]|0;s=c[f+((h&7)<<2)>>2]|0;r=c[f+((h+1&7)<<2)>>2]|0;o=c[f+((h+2&7)<<2)>>2]|0;f=c[f+((h+3&7)<<2)>>2]|0;u=k+ -8|0;v=1<>1;h=(g+1|0)/2|0;w=(g|0)>0;if(!l){if(w){l=0;do{y=$(d[t+l>>0]|0,-6)|0;z=$(d[r+l>>0]|0,-10)|0;b[j+(l+3<<1)>>1]=(d[p+l>>0]<<1)+v+y+((d[q+l>>0]|0)*18|0)+((d[s+l>>0]|0)*57|0)+z+(d[o+l>>0]<<2)-(d[f+l>>0]|0)>>u;l=l+1|0}while((l|0)<(h|0))}}else if(w){l=0;do{y=$(d[q+l>>0]|0,-10)|0;z=$(d[o+l>>0]|0,-6)|0;b[j+(l+3<<1)>>1]=v-(d[p+l>>0]|0)+(d[t+l>>0]<<2)+y+((d[s+l>>0]|0)*57|0)+((d[r+l>>0]|0)*18|0)+z+(d[f+l>>0]<<1)>>u;l=l+1|0}while((l|0)<(h|0))}o=j+6|0;z=b[o>>1]|0;b[j>>1]=z;q=j+2|0;b[q>>1]=z;p=j+4|0;b[p>>1]=z;z=b[j+(h+2<<1)>>1]|0;b[j+(h+3<<1)>>1]=z;b[j+(h+4<<1)>>1]=z;b[j+(h+5<<1)>>1]=z;b[j+(h+6<<1)>>1]=z;h=(1<>1;t=20-k|0;s=1<1){r=g+ -2|0;k=r>>>1;q=k<<1;f=e;while(1){u=(b[o>>1]|0)+m>>p;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f>>0]=u;z=$((b[o+4>>1]|0)+(b[o+ -2>>1]|0)|0,-11)|0;u=o;o=o+2|0;u=s-(b[u+ -6>>1]|0)-(b[u+8>>1]|0)+((b[u+6>>1]|0)+(b[u+ -4>>1]|0)<<2)+z+(((b[o>>1]|0)+(b[u>>1]|0)|0)*40|0)>>t;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f+1>>0]=u;g=g+ -2|0;if((g|0)<=1)break;else f=f+2|0}e=e+(q+2)|0;g=r-q|0;o=j+(k+4<<1)|0}if(!g){i=n;return}j=(b[o>>1]|0)+m>>p;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}else{k=20-k|0;m=1<>1]|0;v=b[q>>1]|0;u=b[p>>1]|0;f=b[o>>1]|0;s=b[j+8>>1]|0;t=b[j+10>>1]|0;if((g|0)>1){r=g+ -2|0;p=r>>>1;q=p<<1;x=e;while(1){w=b[o+6>>1]|0;y=f*57|0;z=(t<<2)+m+($(s,-10)|0)+y+(u*18|0)+($(v,-6)|0)+(l<<1)-w>>k;if((z|0)<0)z=0;else z=((z|0)>(h|0)?h:z)&255;a[x>>0]=z;l=($(t,-6)|0)+m+(s*18|0)+y+($(u,-10)|0)-l+(v<<2)+(w<<1)>>k;if((l|0)<0)l=0;else l=((l|0)>(h|0)?h:l)&255;a[x+1>>0]=l;g=g+ -2|0;if((g|0)<=1)break;else{B=t;A=s;y=f;z=u;l=v;t=w;x=x+2|0;o=o+2|0;s=B;f=A;u=y;v=z}}l=v;v=u;u=f;f=s;s=t;t=w;e=e+(q+2)|0;g=r-q|0;o=j+(p+4<<1)|0}if(!g){i=n;return}j=(t<<2)+m+($(s,-10)|0)+(f*57|0)+(u*18|0)+($(v,-6)|0)+(l<<1)-(b[o+6>>1]|0)>>k;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}}function Id(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(e+1|0)/2|0;k=h+3|0;fe(k|0,c|0,v|0)|0;ce(h|0,a[c>>0]|0,3)|0;ce(h+(v+3)|0,a[c+(v+ -1)>>0]|0,4)|0;c=(1<1){f=e+ -2|0;g=f>>>1;l=g<<1;m=b;while(1){a[m>>0]=a[k>>0]|0;v=$((d[k+2>>0]|0)+(d[k+ -1>>0]|0)|0,-11)|0;n=k;k=k+1|0;n=32-(d[n+ -3>>0]|0)-(d[n+4>>0]|0)+((d[n+3>>0]|0)+(d[n+ -2>>0]|0)<<2)+v+(((d[k>>0]|0)+(d[n>>0]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&255;a[m+1>>0]=n;e=e+ -2|0;if((e|0)<=1)break;else m=m+2|0}b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}a[b>>0]=a[k>>0]|0;i=j;return}q=d[h>>0]|0;r=d[h+1>>0]|0;m=d[h+2>>0]|0;p=d[k>>0]|0;o=d[h+4>>0]|0;n=d[h+5>>0]|0;if((e|0)>1){f=e+ -2|0;g=f>>>1;l=g<<1;t=b;while(1){s=d[k+3>>0]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(m*18|0)+($(r,-6)|0)+(q<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&255;a[t>>0]=v;q=($(n,-6)|0)+32+(o*18|0)+u+($(m,-10)|0)-q+(r<<2)+(s<<1)>>6;if((q|0)<0)q=0;else q=((q|0)>(c|0)?c:q)&255;a[t+1>>0]=q;e=e+ -2|0;if((e|0)<=1)break;else{x=n;w=o;u=p;v=m;q=r;n=s;t=t+2|0;k=k+1|0;o=x;p=w;m=u;r=v}}q=r;r=m;m=p;p=o;o=n;n=s;b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(m*18|0)+($(r,-6)|0)+(q<<1)-(d[k+3>>0]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&255;a[b>>0]=h;i=j;return}function Jd(){var a=0,b=0;a=i;b=md(252)|0;if(!b)b=0;i=a;return b|0}function Kd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=i;i=i+80|0;n=k+72|0;l=k+60|0;h=k+48|0;u=k+44|0;x=k+40|0;t=k+36|0;p=k;y=a[e+40>>0]|0;a:do if(((((((g|0)>=6?(a[f>>0]|0)==66:0)?(a[f+1>>0]|0)==80:0)?(a[f+2>>0]|0)==71:0)?(a[f+3>>0]|0)==-5:0)?(R=a[f+4>>0]|0,N=R&255,J=N>>>5,c[p+8>>2]=J,(R&255)<=191):0)?(R=(N&15)+8|0,a[p+13>>0]=R,(R&255)>>>0<=14):0){L=a[f+5>>0]|0;v=L&255;M=v>>>4;c[p+24>>2]=M;A=v&8;R=v>>>2&1;a[p+16>>0]=v>>>1&1;r=p+17|0;a[r>>0]=v&1;v=p+18|0;b[v>>1]=0;s=p+20|0;b[s>>1]=0;w=p+22|0;b[w>>1]=0;O=p+12|0;a[O>>0]=0;Q=p+14|0;a[Q>>0]=0;P=p+15|0;a[P>>0]=0;if(!(N&16))if(!R)N=0;else{a[O>>0]=1;a[Q>>0]=1;N=1}else{a[O>>0]=1;a[P>>0]=R;N=0}if((((((((((L&255)<=79?(J|0)!=0|(M|0)==0:0)?!(N<<24>>24!=0&(J|0)==0):0)?(F=Qd(p,f+6|0,g+ -6|0)|0,(F|0)>=0):0)?(C=(c[p>>2]|0)>>>0>1073741823?-1:F,(C|0)>=0):0)?(E=C+6|0,z=p+4|0,I=Qd(z,f+E|0,g-E|0)|0,(I|0)>=0):0)?(H=c[z>>2]|0,D=H>>>0>1073741823?-1:I,(D|0)>=0):0)?(G=D+E|0,!((c[p>>2]|0)==0|(H|0)==0)):0)?(q=p+28|0,K=Qd(q,f+G|0,g-G|0)|0,(K|0)>=0):0)?(B=(c[q>>2]|0)>>>0>1073741823?-1:K,(B|0)>=0):0){z=B+G|0;c[n>>2]=0;do if(!A){c[p+32>>2]=0;m=48}else{A=Qd(n,f+z|0,g-z|0)|0;if((A|0)<0){z=-1;break a}B=c[n>>2]|0;A=B>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}C=A+z|0;A=p+32|0;c[A>>2]=0;z=C+B|0;if((z|0)>(g|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[r>>0]|0)==0:0)break;if((C|0)>=(z|0)){z=C;m=48;break}while(1){B=Qd(l,f+C|0,z-C|0)|0;if((B|0)<0){z=-1;break a}C=B+C|0;D=Qd(h,f+C|0,z-C|0)|0;if((D|0)<0){z=-1;break a}B=c[h>>2]|0;D=B>>>0>1073741823?-1:D;if((D|0)<0){z=-1;break a}D=D+C|0;C=D+B|0;if(C>>>0>z>>>0){z=-1;break a}do if(a[r>>0]|0){if((c[l>>2]|0)!=5)break;F=Qd(u,f+D|0,z-D|0)|0;if((F|0)<0){z=-1;break a}E=c[u>>2]|0;F=E>>>0>1073741823?-1:F;if((F|0)<0){z=-1;break a}G=F+D|0;H=Qd(x,f+G|0,z-G|0)|0;if((H|0)<0){z=-1;break a}F=c[x>>2]|0;H=F>>>0>1073741823?-1:H;if((H|0)<0){z=-1;break a}R=H+G|0;if((Qd(t,f+R|0,z-R|0)|0)<0){z=-1;break a}G=c[t>>2]|0;if(!((F&65535|0)==(F|0)&((G>>>0>1073741823|(F|0)==0|(G|0)==0)^1))){z=-1;break a}if((G&65535|0)!=(G|0)){z=-1;break a}if((E&65535|0)!=(E|0)){z=-1;break a}b[v>>1]=E;b[s>>1]=F;b[w>>1]=G}while(0);if(y){R=fd(16)|0;c[R>>2]=c[l>>2];Q=R+4|0;c[Q>>2]=B;c[A>>2]=R;A=fd(B)|0;c[R+8>>2]=A;fe(A|0,f+D|0,c[Q>>2]|0)|0;A=R+12|0}if((C|0)>=(z|0)){z=C;m=48;break}}}while(0);do if((m|0)==48){if(!(a[r>>0]|0))break;if(!(b[s>>1]|0)){z=-1;break a}}while(0);if(c[q>>2]|0)break;c[q>>2]=g-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=k;return R|0}u=c[p>>2]|0;v=c[p+4>>2]|0;B=c[p+12>>2]|0;y=B&255;A=c[p+24>>2]|0;w=(B&65535)>>>8;t=w&255;w=w&65535;q=e+16|0;c[q>>2]=u;r=e+20|0;c[r>>2]=v;x=c[p+8>>2]|0;C=e+24|0;c[C>>2]=x;s=B>>>24&255;B=B>>>16&255;if((x|0)==5){c[C>>2]=2;a[e+28>>0]=0;x=2}else if((x|0)==4){c[C>>2]=1;a[e+28>>0]=0;x=1}else{c[C>>2]=x;a[e+28>>0]=1}a[e+29>>0]=y;a[e+33>>0]=s;a[e+31>>0]=B;s=c[p+16>>2]|0;a[e+32>>0]=s;c[e+36>>2]=A;a[e+30>>0]=t;a[e+34>>0]=(s&65535)>>>8;b[e+48>>1]=s>>>16;s=c[p+20>>2]|0;b[e+50>>1]=s;b[e+52>>1]=s>>>16;s=e+44|0;c[s>>2]=c[p+32>>2];do if(((c[p+28>>2]|0)+z|0)>>>0<=g>>>0){A=f+z|0;g=g-z|0;c[l>>2]=0;c[l+4>>2]=0;p=l+8|0;c[p>>2]=0;c[h>>2]=0;c[h+4>>2]=0;t=h+8|0;c[t>>2]=0;if(!(y<<24>>24)){z=A;y=g}else{y=Nd(l,e+12|0,e+4|0,A,g,u,v,0,w)|0;if((y|0)<0)break;z=f+(y+z)|0;y=g-y|0}f=e+8|0;A=Nd(h,f,e,z,y,u,v,x,w)|0;if((A|0)>=0){u=y-A|0;v=e+4|0;y=c[v>>2]|0;w=(y|0)!=0;c[n>>2]=0;x=n+4|0;c[x>>2]=0;b:do if((u|0)>0){y=n+((w&1)<<2)|0;D=0;H=0;z=z+A|0;A=u;G=1;c:while(1){B=(G|0)!=0;if((A|0)<((B?5:2)|0)){n=-1;break b}if(B)F=0;else F=(a[z+2>>0]|0)==0?4:3;if((A|0)<(F+3|0)){n=-1;break b}C=z+F|0;B=d[C>>0]|0;E=B<<5&32|(d[z+(F+1)>>0]|0)>>>3;B=B>>>1&63;do if((B+ -32|0)>>>0<4|(B|0)==39|B>>>0>40)if(D)if(!(c[y>>2]|0))B=H;else break c;else{B=H;D=0}else if((B>>>0<10|(B+ -16|0)>>>0<6?(o=F+2|0,(o|0)<(A|0)):0)?(a[z+o>>0]|0)<0:0){if((H|0)!=0?(c[y>>2]|0)!=0:0)break c;if(w&(E|0)==1){c[x>>2]=1;B=H;D=H;break}else{c[n>>2]=1;B=1;D=1;break}}else B=H;while(0);do if((G|0)!=1){if(((((A|0)>3?(a[z>>0]|0)==0:0)?(a[z+1>>0]|0)==0:0)?(a[z+2>>0]|0)==0:0)?(a[z+3>>0]|0)==1:0){G=4;break}if((A|0)<=2){n=-1;break b}if(a[z>>0]|0){n=-1;break b}if(a[z+1>>0]|0){n=-1;break b}if((a[z+2>>0]|0)==1)G=3;else{n=-1;break b}}else G=0;while(0);H=G+2|0;if((H|0)>(A|0)){n=-1;break b}d:do if((H|0)<(A|0))while(1){K=(a[z+G>>0]|0)==0;do if(K){if(a[z+(G+1)>>0]|0)break;if((a[z+H>>0]|0)==1)break d}while(0);J=H;H=G+3|0;if((H|0)>=(A|0)){G=A;break d}I=G+1|0;if(!K){G=I;continue}if(a[z+I>>0]|0){G=I;continue}if(a[z+J>>0]|0){G=I;continue}J=(a[z+H>>0]|0)==1;if(J){G=J?G:A;break}else G=I}else G=A;while(0);if((G|0)<0){n=-1;break b}H=G-F|0;F=H+3|0;E=w&(E|0)==1;J=E?l:h;I=J+8|0;if((Od(J,(c[I>>2]|0)+F|0)|0)<0){n=-1;break b}K=c[J>>2]|0;J=c[I>>2]|0;a[K+J>>0]=0;a[K+(J+1)>>0]=0;a[K+(J+2)>>0]=1;fe(K+(J+3)|0,C|0,H|0)|0;if(E){R=K+(J+4)|0;a[R>>0]=d[R>>0]&7}c[I>>2]=J+F;A=A-G|0;if((A|0)>0){H=B;z=z+G|0;G=0}else break}y=c[v>>2]|0;m=105}else{A=u;m=105}while(0);do if((m|0)==105){if(y){if((Od(l,(c[p>>2]|0)+32|0)|0)<0){n=-1;break}if((Pd(c[v>>2]|0,c[e+12>>2]|0,c[l>>2]|0,c[p>>2]|0)|0)<0){n=-1;break}}if((Od(h,(c[t>>2]|0)+32|0)|0)<0)n=-1;else{n=(Pd(c[e>>2]|0,c[f>>2]|0,c[h>>2]|0,c[t>>2]|0)|0)<0;n=n?-1:u-A|0}}while(0);id(c[l>>2]|0);id(c[h>>2]|0);if((((n|0)>=0?(g-u+n|0)>=0:0)?(Ld(e),j=c[f>>2]|0,(c[j+64>>2]|0)>=(c[q>>2]|0)):0)?(c[j+68>>2]|0)>=(c[r>>2]|0):0){c[e+80>>2]=-1;R=0;i=k;return R|0}}}while(0);xd(e+8|0);xd(e+12|0);c[s>>2]=0;R=-1;i=k;return R|0}function Ld(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Jc(e)|0;id(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Jc(d)|0;id(c[a>>2]|0);c[a>>2]=0;i=b;return}function Md(a){a=a|0;var b=0,d=0;b=i;id(c[a+124>>2]|0);id(c[a+128>>2]|0);d=0;do{id(c[a+(d<<2)+132>>2]|0);id(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);id(c[a+196>>2]|0);id(c[a+56>>2]|0);Ld(a);xd(a+8|0);xd(a+12|0);id(a);i=b;return}function Nd(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=Qd(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=fd(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;fe(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=fd(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}id(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Od(b,(c[g>>2]|0)+f|0)|0)<0){id(k);t=-1;i=n;return t|0}fe((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;id(k);b=Oc(1416)|0;if(!b){t=-1;i=n;return t|0}g=wd()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ic(b,1416,0)|0)<0){xd(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=gd(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Pd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Xc(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Pc(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function Qd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Rd(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0;h=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)g=0;else{i=h;return}while(1){n=a[f+g>>0]|0;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;g=g+1|0;if((g|0)==(j|0))break;else e=e+k|0}i=h;return}l=c[b+12>>2]|0;g=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)m=0;else{i=h;return}while(1){n=($(d[f+m>>0]|0,l)|0)+g>>b;if((n|0)<0)n=0;else n=(n|0)>255?-1:n&255;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=h;return}function Sd(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(d[f+t>>0]|0,p)|0;u=(d[g+t>>0]|0)-b|0;w=(d[h+t>>0]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[e>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[e+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else e=e+k|0}i=q;return}function Td(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;l=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)m=0;else{i=l;return}while(1){a[e>>0]=a[h+m>>0]|0;a[e+1>>0]=a[f+m>>0]|0;a[e+2>>0]=a[g+m>>0]|0;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=l;return}n=c[b+12>>2]|0;m=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)o=0;else{i=l;return}while(1){p=($(d[h+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e>>0]=p;p=($(d[f+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+1>>0]=p;p=($(d[g+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+2>>0]=p;o=o+1|0;if((o|0)==(j|0))break;else e=e+k|0}i=l;return}function Ud(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=d[f+p>>0]|0;s=(d[g+p>>0]|0)-b|0;r=(d[h+p>>0]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[e+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[e+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else e=e+k|0}i=o;return}function Vd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1523]|0)){e=ra(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;c[1523]=6088;c[1522]=6088;c[1527]=6104;c[1526]=6104;k=e+16|0;a[e+15>>0]=-86;j=c[1527]|0;c[1527]=k;c[k>>2]=6104;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1523]|0;c[1523]=j;c[j>>2]=6088;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1524]|0;g=c[1522]|0;k=6092|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6104)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ra(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function Wd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1523]|0;c[1523]=b;c[b>>2]=6088;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6104?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6104){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){Wd(a);e=0;break}e=Vd(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;fe(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;Wd(a)}}else e=Vd(b)|0;while(0);i=d;return e|0}function Yd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function Zd(){}function _d(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function be(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function ce(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function de(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function fe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ge(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function he(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function ie(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=je(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return xa[a&1](b|0,c|0,d|0)|0}function me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ya[a&3](b|0,c|0,d|0,e|0,f|0)}function ne(a,b){a=a|0;b=b|0;za[a&7](b|0)}function oe(a,b,c){a=a|0;b=b|0;c=c|0;Aa[a&7](b|0,c|0)}function pe(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ba[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function qe(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;Ca[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function re(a,b){a=a|0;b=b|0;return Da[a&3](b|0)|0}function se(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ea[a&7](b|0,c|0,d|0)}function te(a,b,c,d,e,f,g,h,i,j){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;j=j|0;Fa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function ue(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ga[a&1](b|0,c|0,d|0,e|0)|0}function ve(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ha[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function we(a,b,c){a=a|0;b=b|0;c=c|0;return Ia[a&1](b|0,c|0)|0}function xe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ja[a&1](b|0,c|0,d|0,e|0,f|0)|0}function ye(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Ka[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function ze(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Ae(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function Be(a){a=a|0;aa(2)}function Ce(a,b){a=a|0;b=b|0;aa(3)}function De(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(4);return 0}function Ee(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;aa(5)}function Fe(a){a=a|0;aa(6);return 0}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;aa(7)}function He(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;aa(8)}function Ie(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(9);return 0}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function Ke(a,b){a=a|0;b=b|0;aa(11);return 0}function Le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(12);return 0}function Me(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(13)} +function ic(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;f=i;c=1<<(c<<16>>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function jc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;d=a;while(1){p=b[d>>1]|0;m=d+16|0;n=b[m>>1]|0;g=n+p|0;f=d+24|0;o=b[f>>1]|0;l=o+n|0;j=p-o|0;h=d+8|0;k=(b[h>>1]|0)*74|0;o=((p-n+o|0)*74|0)+64|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[m>>1]=n;m=(g*29|0)+64+(l*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[d>>1]=n;l=($(l,-29)|0)+64+(j*55|0)+k|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[h>>1]=m;g=(g*55|0)+64+(j*29|0)-k|0;h=g>>7;if((h+32768|0)>>>0>65535)h=g>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4){d=0;break}else d=d+2|0}while(1){p=b[a>>1]|0;l=a+4|0;m=b[l>>1]|0;g=m+p|0;e=a+6|0;n=b[e>>1]|0;k=n+m|0;h=p-n|0;f=a+2|0;j=(b[f>>1]|0)*74|0;n=((p-m+n|0)*74|0)+2048|0;m=n>>12;if((m+32768|0)>>>0>65535)m=n>>31^32767;b[l>>1]=m;l=(g*29|0)+2048+(k*55|0)+j|0;m=l>>12;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[a>>1]=m;k=($(k,-29)|0)+2048+(h*55|0)+j|0;l=k>>12;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[f>>1]=l;f=(g*55|0)+2048+(h*29|0)-j|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[e>>1]=g;d=d+1|0;if((d|0)==4)break;else a=a+8|0}i=c;return}function kc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;f=0;e=a;while(1){l=b[e>>1]<<6;j=e+16|0;k=b[j>>1]<<6;g=k+l|0;k=l-k|0;l=e+8|0;m=b[l>>1]|0;d=e+24|0;n=b[d>>1]|0;h=(n*36|0)+(m*83|0)|0;m=($(n,-83)|0)+(m*36|0)|0;n=g+64+h|0;o=n>>7;if((o+32768|0)>>>0>65535)o=n>>31^32767;b[e>>1]=o;o=k+64+m|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[l>>1]=n;l=k-m+64|0;k=l>>7;if((k+32768|0)>>>0>65535)k=l>>31^32767;b[j>>1]=k;h=g-h+64|0;g=h>>7;if((g+32768|0)>>>0>65535)g=h>>31^32767;b[d>>1]=g;f=f+1|0;if((f|0)==4){e=0;break}else e=e+2|0}while(1){k=b[a>>1]<<6;h=a+4|0;l=b[h>>1]<<6;g=l+k|0;l=k-l|0;k=a+2|0;j=b[k>>1]|0;d=a+6|0;m=b[d>>1]|0;f=(m*36|0)+(j*83|0)|0;j=($(m,-83)|0)+(j*36|0)|0;m=g+2048+f|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[a>>1]=n;m=l+2048+j|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[k>>1]=n;k=l-j+2048|0;j=k>>12;if((j+32768|0)>>>0>65535)j=k>>31^32767;b[h>>1]=j;f=g-f+2048|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[d>>1]=g;e=e+1|0;if((e|0)==4)break;else a=a+8|0}i=c;return}function lc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;i=i+64|0;j=h+48|0;p=h+32|0;f=h+16|0;g=h;q=(e|0)>8;r=e+4|0;k=j+4|0;l=j+8|0;m=j+12|0;o=0;r=(r|0)>8?8:r;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(r|0)>1;s=0;do{if(w){t=p+(s<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[n+(u<<3<<1)>>1]|0,a[1664+(u<<2<<5)+s>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<(r|0));c[t>>2]=v}s=s+1|0}while((s|0)!=4);v=b[n>>1]<<6;u=b[n+64>>1]<<6;w=u+v|0;u=v-u|0;v=b[n+32>>1]|0;t=b[n+96>>1]|0;s=(t*36|0)+(v*83|0)|0;v=($(t,-83)|0)+(v*36|0)|0;t=s+w|0;c[j>>2]=t;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-s;s=0;while(1){u=c[p+(s<<2)>>2]|0;v=t+64+u|0;w=v>>7;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[n+(s<<3<<1)>>1]=w;t=t-u+64|0;u=t>>7;if((u+32768|0)>>>0>65535)u=t>>31^32767;b[n+(7-s<<3<<1)>>1]=u;s=s+1|0;if((s|0)==4)break;t=c[j+(s<<2)>>2]|0}if((r|0)<8)r=(o&3|0)==0&(o|0)!=0?r+ -4|0:r;o=o+1|0;if((o|0)==8)break;else n=n+2|0}j=q?8:e;n=(j|0)>1;k=f+4|0;l=f+8|0;m=f+12|0;o=0;while(1){c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;e=0;do{if(n){r=g+(e<<2)|0;p=c[r>>2]|0;q=1;do{p=($(b[d+(q<<1)>>1]|0,a[1664+(q<<2<<5)+e>>0]|0)|0)+p|0;q=q+2|0}while((q|0)<(j|0));c[r>>2]=p}e=e+1|0}while((e|0)!=4);v=b[d>>1]<<6;u=b[d+8>>1]<<6;w=u+v|0;u=v-u|0;v=b[d+4>>1]|0;p=b[d+12>>1]|0;e=(p*36|0)+(v*83|0)|0;v=($(p,-83)|0)+(v*36|0)|0;p=e+w|0;c[f>>2]=p;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-e;e=0;while(1){q=c[g+(e<<2)>>2]|0;r=p+2048+q|0;s=r>>12;if((s+32768|0)>>>0>65535)s=r>>31^32767;b[d+(e<<1)>>1]=s;p=p-q+2048|0;q=p>>12;if((q+32768|0)>>>0>65535)q=p>>31^32767;b[d+(7-e<<1)>>1]=q;e=e+1|0;if((e|0)==4)break;p=c[f+(e<<2)>>2]|0}o=o+1|0;if((o|0)==8)break;else d=d+16|0}i=h;return}function mc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=i;i=i+192|0;t=j+160|0;u=j+128|0;m=j+112|0;l=j+96|0;g=j+64|0;h=j+32|0;f=j+16|0;k=j;s=(e|0)>16;v=e+4|0;n=m+4|0;o=m+8|0;p=m+12|0;r=0;v=(v|0)>16?16:v;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(v|0)>1;z=0;do{if(A){y=u+(z<<2)|0;w=c[y>>2]|0;x=1;do{w=($(b[q+(x<<4<<1)>>1]|0,a[1664+(x<<1<<5)+z>>0]|0)|0)+w|0;x=x+2|0}while((x|0)<(v|0));c[y>>2]=w}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;z=0;do{x=l+(z<<2)|0;w=c[x>>2]|0;y=1;do{w=($(b[q+(y<<5<<1)>>1]|0,a[1664+(y<<2<<5)+z>>0]|0)|0)+w|0;y=y+2|0}while((y|0)<8);c[x>>2]=w;z=z+1|0}while((z|0)!=4);z=b[q>>1]<<6;y=b[q+256>>1]<<6;A=y+z|0;y=z-y|0;z=b[q+128>>1]|0;w=b[q+384>>1]|0;x=(w*36|0)+(z*83|0)|0;z=($(w,-83)|0)+(z*36|0)|0;w=x+A|0;c[m>>2]=w;c[n>>2]=z+y;c[o>>2]=y-z;c[p>>2]=A-x;x=0;while(1){A=c[l+(x<<2)>>2]|0;c[t+(x<<2)>>2]=A+w;c[t+(7-x<<2)>>2]=w-A;x=x+1|0;if((x|0)==4){w=0;break}w=c[m+(x<<2)>>2]|0}do{x=c[t+(w<<2)>>2]|0;y=c[u+(w<<2)>>2]|0;A=x+64+y|0;z=A>>7;if((z+32768|0)>>>0>65535)z=A>>31^32767;b[q+(w<<4<<1)>>1]=z;x=x-y+64|0;y=x>>7;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[q+(15-w<<4<<1)>>1]=y;w=w+1|0}while((w|0)!=8);if((v|0)<16)v=(r&3|0)==0&(r|0)!=0?v+ -4|0:v;r=r+1|0;if((r|0)==16)break;else q=q+2|0}o=s?16:e;p=(o|0)>1;l=f+4|0;m=f+8|0;n=f+12|0;q=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;r=0;do{if(p){e=h+(r<<2)|0;t=c[e>>2]|0;s=1;do{t=($(b[d+(s<<1)>>1]|0,a[1664+(s<<1<<5)+r>>0]|0)|0)+t|0;s=s+2|0}while((s|0)<(o|0));c[e>>2]=t}r=r+1|0}while((r|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;t=0;do{r=k+(t<<2)|0;s=c[r>>2]|0;e=1;do{s=($(b[d+(e<<1<<1)>>1]|0,a[1664+(e<<2<<5)+t>>0]|0)|0)+s|0;e=e+2|0}while((e|0)<8);c[r>>2]=s;t=t+1|0}while((t|0)!=4);z=b[d>>1]<<6;y=b[d+16>>1]<<6;A=y+z|0;y=z-y|0;z=b[d+8>>1]|0;r=b[d+24>>1]|0;e=(r*36|0)+(z*83|0)|0;z=($(r,-83)|0)+(z*36|0)|0;r=e+A|0;c[f>>2]=r;c[l>>2]=z+y;c[m>>2]=y-z;c[n>>2]=A-e;e=0;while(1){A=c[k+(e<<2)>>2]|0;c[g+(e<<2)>>2]=A+r;c[g+(7-e<<2)>>2]=r-A;e=e+1|0;if((e|0)==4){r=0;break}r=c[f+(e<<2)>>2]|0}do{e=c[g+(r<<2)>>2]|0;s=c[h+(r<<2)>>2]|0;u=e+2048+s|0;t=u>>12;if((t+32768|0)>>>0>65535)t=u>>31^32767;b[d+(r<<1)>>1]=t;e=e-s+2048|0;s=e>>12;if((s+32768|0)>>>0>65535)s=e>>31^32767;b[d+(15-r<<1)>>1]=s;r=r+1|0}while((r|0)!=8);q=q+1|0;if((q|0)==16)break;else d=d+32|0}i=j;return}function nc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;m=i;i=i+320|0;g=m+256|0;l=m+192|0;o=m+160|0;s=m+128|0;u=m+112|0;t=m+96|0;f=m+64|0;j=m+32|0;h=m+16|0;k=m;q=(e|0)>32;x=e+4|0;v=u+4|0;w=u+8|0;n=u+12|0;p=0;x=(x|0)>32?32:x;r=d;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));B=(x|0)>1;A=0;do{if(B){z=l+(A<<2)|0;y=c[z>>2]|0;C=1;do{y=($(b[r+(C<<5<<1)>>1]|0,a[1664+(C<<5)+A>>0]|0)|0)+y|0;C=C+2|0}while((C|0)<(x|0));c[z>>2]=y}A=A+1|0}while((A|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;y=(x|0)/2|0;z=(x|0)>3;A=0;do{if(z){D=s+(A<<2)|0;B=c[D>>2]|0;C=1;do{B=($(b[r+(C<<6<<1)>>1]|0,a[1664+(C<<1<<5)+A>>0]|0)|0)+B|0;C=C+2|0}while((C|0)<(y|0));c[D>>2]=B}A=A+1|0}while((A|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;A=0;do{B=t+(A<<2)|0;z=c[B>>2]|0;y=1;do{z=($(b[r+(y<<7<<1)>>1]|0,a[1664+(y<<2<<5)+A>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[B>>2]=z;A=A+1|0}while((A|0)!=4);C=b[r>>1]<<6;B=b[r+1024>>1]<<6;D=B+C|0;B=C-B|0;C=b[r+512>>1]|0;y=b[r+1536>>1]|0;z=(y*36|0)+(C*83|0)|0;C=($(y,-83)|0)+(C*36|0)|0;y=z+D|0;c[u>>2]=y;c[v>>2]=C+B;c[w>>2]=B-C;c[n>>2]=D-z;z=0;while(1){D=c[t+(z<<2)>>2]|0;c[o+(z<<2)>>2]=D+y;c[o+(7-z<<2)>>2]=y-D;z=z+1|0;if((z|0)==4){y=0;break}y=c[u+(z<<2)>>2]|0}do{C=c[o+(y<<2)>>2]|0;D=c[s+(y<<2)>>2]|0;c[g+(y<<2)>>2]=D+C;c[g+(15-y<<2)>>2]=C-D;y=y+1|0}while((y|0)!=8);y=0;do{z=c[g+(y<<2)>>2]|0;A=c[l+(y<<2)>>2]|0;B=z+64+A|0;C=B>>7;if((C+32768|0)>>>0>65535)C=B>>31^32767;b[r+(y<<5<<1)>>1]=C;z=z-A+64|0;A=z>>7;if((A+32768|0)>>>0>65535)A=z>>31^32767;b[r+(31-y<<5<<1)>>1]=A;y=y+1|0}while((y|0)!=16);if((x|0)<32)x=(p&3|0)==0&(p|0)!=0?x+ -4|0:x;p=p+1|0;if((p|0)==32)break;else r=r+2|0}p=q?32:e;o=(p|0)>1;n=(p|0)/2|0;q=(p|0)>3;s=h+4|0;r=h+8|0;e=h+12|0;t=0;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));v=0;do{if(o){w=l+(v<<2)|0;u=c[w>>2]|0;x=1;do{u=($(b[d+(x<<1)>>1]|0,a[1664+(x<<5)+v>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(p|0));c[w>>2]=u}v=v+1|0}while((v|0)!=16);c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;x=0;do{if(q){u=j+(x<<2)|0;w=c[u>>2]|0;v=1;do{D=v<<1;w=($(b[d+(D<<1)>>1]|0,a[1664+(D<<5)+x>>0]|0)|0)+w|0;v=v+2|0}while((v|0)<(n|0));c[u>>2]=w}x=x+1|0}while((x|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;u=0;do{v=k+(u<<2)|0;x=c[v>>2]|0;w=1;do{D=w<<2;x=($(b[d+(D<<1)>>1]|0,a[1664+(D<<5)+u>>0]|0)|0)+x|0;w=w+2|0}while((w|0)<8);c[v>>2]=x;u=u+1|0}while((u|0)!=4);C=b[d>>1]<<6;B=b[d+32>>1]<<6;D=B+C|0;B=C-B|0;C=b[d+16>>1]|0;u=b[d+48>>1]|0;v=(u*36|0)+(C*83|0)|0;C=($(u,-83)|0)+(C*36|0)|0;u=v+D|0;c[h>>2]=u;c[s>>2]=C+B;c[r>>2]=B-C;c[e>>2]=D-v;v=0;while(1){D=c[k+(v<<2)>>2]|0;c[f+(v<<2)>>2]=D+u;c[f+(7-v<<2)>>2]=u-D;v=v+1|0;if((v|0)==4){u=0;break}u=c[h+(v<<2)>>2]|0}do{C=c[f+(u<<2)>>2]|0;D=c[j+(u<<2)>>2]|0;c[g+(u<<2)>>2]=D+C;c[g+(15-u<<2)>>2]=C-D;u=u+1|0}while((u|0)!=8);u=0;do{v=c[g+(u<<2)>>2]|0;w=c[l+(u<<2)>>2]|0;x=v+2048+w|0;y=x>>12;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[d+(u<<1)>>1]=y;v=v-w+2048|0;w=v>>12;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[d+(31-u<<1)>>1]=w;u=u+1|0}while((u|0)!=16);t=t+1|0;if((t|0)==32)break;else d=d+64|0}i=m;return}function oc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;e=e+1|0}while((e|0)!=4);i=c;return}function pc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;b[a+((f|4)<<1)>>1]=d;b[a+((f|5)<<1)>>1]=d;b[a+((f|6)<<1)>>1]=d;b[a+((f|7)<<1)>>1]=d;e=e+1|0}while((e|0)!=8);i=c;return}function qc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);d=d+1|0}while((d|0)!=16);i=c;return}function rc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);d=d+1|0}while((d|0)!=32);i=c;return}function sc(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0;o=i;i=i+128|0;k=o;q=k+0|0;p=q+128|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(p|0));q=d[j+n+96>>0]|0;c[k+((q&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((q+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((q+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((q+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];if((m|0)<=0){i=o;return}n=(l|0)>0;j=0;while(1){if(n){p=0;do{q=d[f+p>>0]|0;q=q+(c[k+(q>>>3<<2)>>2]|0)|0;if(q>>>0>255)q=0-q>>31;a[e+p>>0]=q;p=p+1|0}while((p|0)!=(l|0))}j=j+1|0;if((j|0)==(m|0))break;else{e=e+g|0;f=f+h|0}}i=o;return}function tc(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0;p=i;o=j+(n*10|0)+112|0;r=c[j+(n<<2)+100>>2]|0;if((r|0)!=1){if(c[k>>2]|0){q=b[o>>1]|0;if((m|0)>0){s=0;do{t=(d[f+($(s,h)|0)>>0]|0)+q|0;if(t>>>0>255)t=0-t>>31;a[e+($(s,g)|0)>>0]=t;s=s+1|0}while((s|0)!=(m|0));q=1}else q=1}else q=0;if(c[k+8>>2]|0){s=b[o>>1]|0;l=l+ -1|0;if((m|0)>0){t=0;do{u=(d[f+(($(t,h)|0)+l)>>0]|0)+s|0;if(u>>>0>255)u=0-u>>31;a[e+(($(t,g)|0)+l)>>0]=u;t=t+1|0}while((t|0)!=(m|0))}}if(!r){s=m;t=q;u=0;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}}else q=0;if(c[k+4>>2]|0){r=b[o>>1]|0;if((q|0)<(l|0)){s=q;do{t=(d[f+s>>0]|0)+r|0;if(t>>>0>255)t=0-t>>31;a[e+s>>0]=t;s=s+1|0}while((s|0)!=(l|0));r=1}else r=1}else r=0;if(!(c[k+12>>2]|0)){s=m;t=q;u=r;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}k=b[o>>1]|0;o=m+ -1|0;t=$(o,g)|0;m=$(o,h)|0;if((q|0)<(l|0))s=q;else{s=o;t=q;u=r;r=l;Bc(e,f,g,h,j,r,s,n,t,u);i=p;return}do{u=(d[f+(s+m)>>0]|0)+k|0;if(u>>>0>255)u=0-u>>31;a[e+(s+t)>>0]=u;s=s+1|0}while((s|0)!=(l|0));Bc(e,f,g,h,j,l,o,n,q,r);i=p;return}function uc(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;s=i;C=j+(n*10|0)+112|0;B=c[j+(n<<2)+100>>2]|0;A=(B|0)!=1;if(A){if(c[k>>2]|0){D=b[C>>1]|0;if((m|0)>0){E=0;do{G=(d[f+($(E,h)|0)>>0]|0)+D|0;if(G>>>0>255)G=0-G>>31;a[e+($(E,g)|0)>>0]=G;E=E+1|0}while((E|0)!=(m|0));D=1}else D=1}else D=0;if(c[k+8>>2]|0){E=b[C>>1]|0;l=l+ -1|0;if((m|0)>0){G=0;do{H=(d[f+(($(G,h)|0)+l)>>0]|0)+E|0;if(H>>>0>255)H=0-H>>31;a[e+(($(G,g)|0)+l)>>0]=H;G=G+1|0}while((G|0)!=(m|0))}}if(!B){C=1;E=0}else F=13}else{D=0;F=13}if((F|0)==13){if(c[k+4>>2]|0){F=b[C>>1]|0;if((D|0)<(l|0)){E=D;do{G=(d[f+E>>0]|0)+F|0;if(G>>>0>255)G=0-G>>31;a[e+E>>0]=G;E=E+1|0}while((E|0)!=(l|0));E=1}else E=1}else E=0;if(c[k+12>>2]|0){C=b[C>>1]|0;m=m+ -1|0;G=$(m,g)|0;H=$(m,h)|0;if((D|0)<(l|0)){F=D;do{I=(d[f+(F+H)>>0]|0)+C|0;if(I>>>0>255)I=0-I>>31;a[e+(F+G)>>0]=I;F=F+1|0}while((F|0)!=(l|0));C=0}else C=0}else C=0}Bc(e,f,g,h,j,l,m,n,D,E);j=(B|0)==2;if((a[q>>0]|0)==0&j?(c[k>>2]|0)==0:0)n=(c[k+4>>2]|0)==0;else n=0;H=n&1;n=q+1|0;B=(B|0)==3;if((a[n>>0]|0)==0&B?(c[k+4>>2]|0)==0:0)F=(c[k+8>>2]|0)==0;else F=0;J=F&1;F=q+2|0;if((a[F>>0]|0)==0&j?(c[k+8>>2]|0)==0:0)G=(c[k+12>>2]|0)==0;else G=0;I=G&1;G=q+3|0;if((a[G>>0]|0)==0&B?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;A=A^1;if(!((a[o>>0]|0)==0|A)?(z=H+E|0,y=m-k|0,(z|0)<(y|0)):0)do{a[e+($(z,g)|0)>>0]=a[f+($(z,h)|0)>>0]|0;z=z+1|0}while((z|0)!=(y|0));if(!((a[o+1>>0]|0)==0|A)?(x=J+E|0,w=m-I|0,(x|0)<(w|0)):0){o=l+ -1|0;do{a[e+(o+($(x,g)|0))>>0]=a[f+(o+($(x,h)|0))>>0]|0;x=x+1|0}while((x|0)!=(w|0))}if(!((a[p>>0]|0)==0|C)?(v=H+D|0,u=l-J|0,(v|0)<(u|0)):0)do{a[e+v>>0]=a[f+v>>0]|0;v=v+1|0}while((v|0)!=(u|0));if(!((a[p+1>>0]|0)==0|C)?(t=k+D|0,r=l-I|0,(t|0)<(r|0)):0){u=m+ -1|0;p=$(u,h)|0;u=$(u,g)|0;do{a[e+(t+u)>>0]=a[f+(t+p)>>0]|0;t=t+1|0}while((t|0)!=(r|0))}if((a[q>>0]|0)!=0&j)a[e>>0]=a[f>>0]|0;if((a[n>>0]|0)!=0&B){J=l+ -1|0;a[e+J>>0]=a[f+J>>0]|0}if((a[F>>0]|0)!=0&j){J=m+ -1|0;I=l+ -1|0;a[e+(I+($(J,g)|0))>>0]=a[f+(I+($(J,h)|0))>>0]|0}if(!((a[G>>0]|0)!=0&B)){i=s;return}J=m+ -1|0;a[e+($(J,g)|0)>>0]=a[f+($(J,h)|0)>>0]|0;i=s;return}function vc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;Ac(a,b,1,c,d,e,f);i=g;return}function wc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;Ac(a,1,b,c,d,e,f);i=g;return}function xc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;zc(a,b,1,c,d,e);i=f;return}function yc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;zc(a,1,b,c,d,e);i=f;return}function zc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;l=$(e,-2)|0;k=0-e|0;n=0;while(1){p=c[g+(n<<2)>>2]|0;if((p|0)>=1){s=0-p|0;r=(a[h+n>>0]|0)==0;q=(a[j+n>>0]|0)==0;o=0;t=b;while(1){v=t+k|0;x=d[v>>0]|0;u=d[t>>0]|0;w=(d[t+l>>0]|0)+4-(d[t+e>>0]|0)+(u-x<<2)>>3;if((w|0)<(s|0))w=s;else w=(w|0)>(p|0)?p:w;if(r){x=w+x|0;if(x>>>0>255)x=0-x>>31;a[v>>0]=x}if(q){u=u-w|0;if(u>>>0>255)u=0-u>>31;a[t>>0]=u}o=o+1|0;if((o|0)==4)break;else t=t+f|0}}n=n+1|0;if((n|0)==2)break;else b=b+(f<<2)|0}i=m;return}function Ac(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;t=i;o=$(e,-3)|0;p=$(e,-2)|0;q=0-e|0;r=e<<1;D=f*3|0;B=D+o|0;C=D+p|0;A=D-e|0;E=D+r|0;l=D+e|0;y=g>>3;v=g>>2;n=$(e,-4)|0;s=e*3|0;w=D+n|0;x=(f+e|0)*3|0;u=(g>>1)+g>>3;z=f<<2;m=f<<2;F=0;do{U=a[b+o>>0]|0;T=a[b+p>>0]|0;S=a[b+q>>0]|0;J=S&255;N=(U&255)-((T&255)<<1)+J|0;N=(N|0)>-1?N:0-N|0;P=a[b+r>>0]|0;Q=a[b+e>>0]|0;R=a[b>>0]|0;X=R&255;V=(P&255)-((Q&255)<<1)+X|0;V=(V|0)>-1?V:0-V|0;_=d[b+A>>0]|0;M=(d[b+B>>0]|0)-((d[b+C>>0]|0)<<1)+_|0;M=(M|0)>-1?M:0-M|0;Y=d[b+D>>0]|0;O=(d[b+E>>0]|0)-((d[b+l>>0]|0)<<1)+Y|0;O=(O|0)>-1?O:0-O|0;H=V+N|0;I=O+M|0;G=c[h+(F<<2)>>2]|0;W=a[j+F>>0]|0;L=a[k+F>>0]|0;do if((I+H|0)<(g|0)){Z=(G*5|0)+1>>1;aa=(d[b+n>>0]|0)-J|0;K=a[b+s>>0]|0;ba=(K&255)-X|0;if((((((((ba|0)>-1?ba:0-ba|0)+((aa|0)>-1?aa:0-aa|0)|0)<(y|0)?(ba=J-X|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(ba=(d[b+w>>0]|0)-_|0,aa=(d[b+x>>0]|0)-Y|0,(((aa|0)>-1?aa:0-aa|0)+((ba|0)>-1?ba:0-ba|0)|0)<(y|0)):0)?(ba=_-Y|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(H<<1|0)<(v|0):0)?(I<<1|0)<(v|0):0){G=G<<1;H=W<<24>>24==0;I=0-G|0;J=L<<24>>24==0;Y=K;K=1;L=b;while(1){V=L+o|0;U=U&255;W=L+p|0;T=T&255;X=L+q|0;N=S&255;R=R&255;S=L+e|0;Q=Q&255;M=L+r|0;O=P&255;P=Y&255;if(H){Y=d[L+n>>0]|0;Z=(U+4+Q+(N+T+R<<1)>>3)-N|0;if((Z|0)<(I|0))Z=I;else Z=(Z|0)>(G|0)?G:Z;a[X>>0]=Z+N;X=((U+2+T+N+R|0)>>>2)-T|0;if((X|0)<(I|0))X=I;else X=(X|0)>(G|0)?G:X;a[W>>0]=X+T;W=((U*3|0)+4+T+N+R+(Y<<1)>>3)-U|0;if((W|0)<(I|0))W=I;else W=(W|0)>(G|0)?G:W;a[V>>0]=W+U}if(J){T=(T+4+O+(R+N+Q<<1)>>3)-R|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[L>>0]=T+R;T=((N+2+R+Q+O|0)>>>2)-Q|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[S>>0]=T+Q;N=(N+4+R+Q+(O*3|0)+(P<<1)>>3)-O|0;if((N|0)<(I|0))N=I;else N=(N|0)>(G|0)?G:N;a[M>>0]=N+O}M=L+f|0;if((K|0)==4)break;U=a[L+(o+f)>>0]|0;T=a[L+(p+f)>>0]|0;S=a[L+(f-e)>>0]|0;R=a[M>>0]|0;Q=a[L+(f+e)>>0]|0;P=a[L+(r+f)>>0]|0;Y=a[L+(s+f)>>0]|0;K=K+1|0;L=M}b=b+m|0;break}H=G>>1;I=G*10|0;J=0-G|0;K=W<<24>>24!=0;L=L<<24>>24!=0;M=(M+N|0)<(u|0)&(K^1);N=0-H|0;O=(O+V|0)<(u|0)&(L^1);V=T;W=R;Y=Q;Q=1;R=b;while(1){X=U&255;T=R+p|0;V=V&255;_=R+q|0;Z=S&255;W=W&255;S=R+e|0;U=Y&255;P=P&255;Y=((W-Z|0)*9|0)+8+($(U-V|0,-3)|0)>>4;if((((Y|0)>-1?Y:0-Y|0)|0)<(I|0)){if((Y|0)<(J|0))Y=J;else Y=(Y|0)>(G|0)?G:Y;if(!K){aa=Y+Z|0;if(aa>>>0>255)aa=0-aa>>31;a[_>>0]=aa}if(!L){_=W-Y|0;if(_>>>0>255)_=0-_>>31;a[R>>0]=_}if(M){X=((X+1+Z|0)>>>1)-V+Y>>1;if((X|0)<(N|0))X=N;else X=(X|0)>(H|0)?H:X;V=X+V|0;if(V>>>0>255)V=0-V>>31;a[T>>0]=V}if(O){P=((W+1+P|0)>>>1)-U-Y>>1;if((P|0)<(N|0))P=N;else P=(P|0)>(H|0)?H:P;P=P+U|0;if(P>>>0>255)P=0-P>>31;a[S>>0]=P}}T=R+f|0;if((Q|0)==4)break;U=a[R+(o+f)>>0]|0;V=a[R+(p+f)>>0]|0;S=a[R+(f-e)>>0]|0;W=a[T>>0]|0;Y=a[R+(f+e)>>0]|0;P=a[R+(r+f)>>0]|0;Q=Q+1|0;R=T}b=b+m|0}else b=b+z|0;while(0);F=F+1|0}while((F|0)!=2);i=t;return}function Bc(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;t=i;v=c[j+(m<<2)+100>>2]|0;q=a[2728+(v<<2)>>0]|0;r=a[2730+(v<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}u=(n|0)<(k|0);s=o;p=$((a[2729+(v<<2)>>0]|0)+o|0,h)|0;v=$((a[2731+(v<<2)>>0]|0)+o|0,h)|0;w=$(o,g)|0;o=$(o,h)|0;while(1){if(u){y=p+q|0;x=v+r|0;z=n;do{A=a[f+(z+o)>>0]|0;B=a[f+(y+z)>>0]|0;if((A&255)>(B&255))B=3;else B=((A<<24>>24!=B<<24>>24)<<31>>31)+2|0;C=a[f+(x+z)>>0]|0;if((A&255)>(C&255))C=1;else C=(A<<24>>24!=C<<24>>24)<<31>>31;A=(b[j+(m*10|0)+(d[2720+(C+B)>>0]<<1)+112>>1]|0)+(A&255)|0;if(A>>>0>255)A=0-A>>31;a[e+(z+w)>>0]=A;z=z+1|0}while((z|0)!=(k|0))}s=s+1|0;if((s|0)==(l|0))break;else{p=p+h|0;v=v+h|0;w=w+g|0;o=o+h|0}}i=t;return}function Cc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function Dc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;g=h+204|0;j=td(13196)|0;c[e>>2]=j;if(!j){t=-12;i=f;return t|0}j=c[j+4>>2]|0;l=td(468)|0;if(!l){t=-12;i=f;return t|0}k=c[l+4>>2]|0;c[k+4>>2]=1;n=k+8|0;c[n>>2]=1;a[k>>0]=0;c[k+348>>2]=1;p=k+352|0;m=k+380|0;q=k+408|0;o=0;do{c[p+(o<<2)>>2]=1;c[m+(o<<2)>>2]=0;c[q+(o<<2)>>2]=-1;o=o+1|0}while((o|0)<(c[n>>2]|0));c[k+436>>2]=0;c[k+440>>2]=1;a[k+444>>0]=0;o=b+208|0;vd(o);c[o>>2]=l;c[j>>2]=0;o=j+72|0;c[o>>2]=1;t=_c(g,8)|0;p=j+4|0;c[p>>2]=t;do if((t|0)<=3){a[j+8>>0]=0;n=j+13120|0;c[n>>2]=cd(g,32)|0;k=cd(g,32)|0;m=j+13124|0;c[m>>2]=k;k=Qc(c[n>>2]|0,k,0,c[b+4>>2]|0)|0;if((k|0)>=0){t=_c(g,8)|0;l=j+52|0;c[l>>2]=t+8;if(!t){p=c[p>>2]|0;if(!p){c[j+60>>2]=8;p=8}else if((p|0)==2){c[j+60>>2]=4;p=4}else if((p|0)==1){c[j+60>>2]=0;p=0}else{c[j+60>>2]=5;p=5}c[j+56>>2]=0;p=Bd(p)|0;if(p){c[j+13180>>2]=0;c[j+13168>>2]=0;t=d[p+5>>0]|0;c[j+13172>>2]=t;c[j+13176>>2]=t;t=d[p+6>>0]|0;c[j+13184>>2]=t;c[j+13188>>2]=t;c[j+64>>2]=8;if((c[o>>2]|0)>0){p=j+76|0;q=0;do{c[p+(q*12|0)>>2]=1;c[p+(q*12|0)+4>>2]=0;c[p+(q*12|0)+8>>2]=-1;q=q+1|0}while((q|0)<(c[o>>2]|0))}s=(dd(g)|0)+3|0;t=j+13064|0;c[t>>2]=s;s=1<>2]=r+(c[n>>2]|0)&s;c[m>>2]=r+(c[m>>2]|0)&s;s=j+13068|0;c[s>>2]=dd(g)|0;r=j+13072|0;c[r>>2]=(dd(g)|0)+2;o=dd(g)|0;p=c[r>>2]|0;q=j+13076|0;c[q>>2]=p+o;if(p>>>0<(c[t>>2]|0)>>>0){u=dd(g)|0;o=j+13092|0;c[o>>2]=u;p=j+13088|0;c[p>>2]=u;a[j+12940>>0]=1;a[j+12941>>0]=bd(g)|0;u=bd(g)|0;c[j+68>>2]=u;if(u){u=j+13044|0;a[u>>0]=(_c(g,4)|0)+1;a[j+13045>>0]=(_c(g,4)|0)+1;v=(dd(g)|0)+3|0;c[j+13048>>2]=v;c[j+13052>>2]=v+(dd(g)|0);if((d[u>>0]|0|0)>(c[l>>2]|0)){k=-1094995529;break}a[j+13056>>0]=bd(g)|0}c[j+2184>>2]=0;a[j+12942>>0]=0;a[j+13060>>0]=1;a[j+13061>>0]=bd(g)|0;c[j+160>>2]=0;c[j+164>>2]=1;if((bd(g)|0)!=0?(v=bd(g)|0,ad(g,7),(v|0)!=0):0){c[j+13096>>2]=bd(g)|0;c[j+13100>>2]=bd(g)|0;c[j+13104>>2]=bd(g)|0;c[j+13108>>2]=bd(g)|0;bd(g)|0;c[j+13112>>2]=bd(g)|0;bd(g)|0;c[j+13116>>2]=bd(g)|0;bd(g)|0}g=c[n>>2]|0;c[j+12>>2]=g;n=c[m>>2]|0;c[j+16>>2]=n;t=c[t>>2]|0;v=(c[s>>2]|0)+t|0;c[j+13080>>2]=v;s=t+ -1|0;c[j+13084>>2]=s;m=1<>v;c[j+13128>>2]=u;m=n+ -1+m>>v;c[j+13132>>2]=m;c[j+13136>>2]=$(m,u)|0;c[j+13140>>2]=g>>t;c[j+13144>>2]=n>>t;u=c[r>>2]|0;c[j+13148>>2]=g>>u;c[j+13152>>2]=n>>u;c[j+13156>>2]=g>>s;c[j+13160>>2]=n>>s;u=v-u|0;c[j+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;t=(1<>>0>6):0)?(c[p>>2]|0)>>>0<=u>>>0:0)?(c[o>>2]|0)>>>0<=u>>>0:0)?(c[q>>2]|0)>>>0<=(v>>>0>5?5:v)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){g=b+272|0;h=c[g>>2]|0;if((h|0)!=0?(v=c[e>>2]|0,(Yd(c[h+4>>2]|0,c[v+4>>2]|0,c[v+8>>2]|0)|0)==0):0){vd(e);v=0;i=f;return v|0}else h=0;do{j=b+(h<<2)+400|0;k=c[j>>2]|0;do if(k){if(c[c[k+4>>2]>>2]|0)break;vd(j)}while(0);h=h+1|0}while((h|0)!=256);h=c[g>>2]|0;do if(h){j=b+200|0;if((c[j>>2]|0)!=(c[h+4>>2]|0))break;u=b+1424|0;vd(u);v=ud(c[g>>2]|0)|0;c[u>>2]=v;if(v)break;c[j>>2]=0}while(0);vd(g);c[g>>2]=c[e>>2];v=0;i=f;return v|0}}else k=-1094995529}else k=-22}else k=-1094995529}}else k=-1094995529;while(0);vd(e);v=k;i=f;return v|0}function Ec(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=md(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=qd(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){jd(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=dd(n)|0;a:do if((h>>>0<=255?(k=dd(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(bd(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=_c(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(dd(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=ed(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=dd(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=ed(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=ed(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(dd(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(dd(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=od(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(bd(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(dd(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=ae(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(dd(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=ae(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=$d(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(bd(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(bd(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(bd(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(bd(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(ed(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(ed(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(bd(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2744;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=2808;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((bd(v)|0)&255)<<24>>24)){y=dd(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;fe(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(ed(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(ed(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(bd(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(dd(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(bd(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((bd(n)|0)!=0?(I=bd(n)|0,_c(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(dd(p)|0)+2;a[n+1630>>0]=bd(p)|0;I=(bd(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=dd(p)|0;I=dd(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=ed(p)|0;a[n+l+1639>>0]=ed(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=dd(p)|0;a[n+1645>>0]=dd(p)|0}while(0);l=od((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=od((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=od(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=od(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=od(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=od(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=od(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=od($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=od(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;vd(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);vd(e);I=b;i=f;return I|0}function Fc(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;jd(b+1648|0);jd(b+1652|0);jd(b+1656|0);jd(b+1660|0);jd(b+1664|0);jd(b+1668|0);jd(b+1672|0);jd(b+1680|0);jd(b+1676|0);jd(b+1688|0);jd(d);i=a;return}function Gc(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+2512|0;f=a+4524|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=_c(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=_c(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==256){Hc(a);break}else if((j|0)==257){b[f>>1]=_c(h,16)|0;break}else{ad(h,k<<3);break}else if((j|0)==132){Hc(a);break}else{ad(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if(($c(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Hc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(_c(e,8)|0)&255;f=b+4468|0;h=0;do{if((g|0)==2)ad(e,32);else if((g|0)==1)ad(e,16);else if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+4420>>0]=_c(e,8)|0;j=j+1|0}while((j|0)!=16)}h=h+1|0}while((h|0)!=3);i=d;return}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=md(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Da[c[b+76>>2]&3](a)|0;if((a|0)>=0){h=0;i=d;return h|0}jd(e);c[f>>2]=0;h=a;i=d;return h|0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Da[d&3](a)|0;c[a+796>>2]=0;jd(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Kc(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Ia[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ga[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Mc(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Bd(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=sd(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;ce(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=md(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Oc(a){a=a|0;var b=0,c=0;b=i;c=fd(976)|0;if(c){if((Nc(c,a)|0)<0){id(c);c=0}}else c=0;i=b;return c|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}yd(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ga[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){yd(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Rc(a,b){a=a|0;b=b|0;return 0}function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=xa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Sc(a,c[b>>2]|0,d)|0;i=e;return a|0}function Uc(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)yd(b);i=a;return}function Vc(a){a=a|0;return}function Wc(a,b,c){a=a|0;b=b|0;c=c|0;return}function Xc(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Yc(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Zc(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[718]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[2880+e>>0]=(g?8:0)-(d[4680+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[2880]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4224+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3392>>0]=j;a[h+3392>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4480+e>>0]|0)<<1;a[f+4032>>0]=j;a[f+4033>>0]=j|1;if(e){h=(d[4544+e>>0]|0)<<1;j=128-f|0;a[j+3903>>0]=h;a[j+3902>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+3903>>0]=1;a[e+3902>>0]=0;e=1;continue}}g=4160|0;f=4608|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[718]=1;i=b;return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function $c(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function ad(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function bd(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function cd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(ee(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(ee(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=cd(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4680+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=cd(a,j)|0;j=j+ -1|0;i=b;return j|0}function ed(a){a=a|0;var b=0;b=i;a=dd(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function fd(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1168]|0;if((d+ -32|0)>>>0>=a>>>0){e=Vd(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=Vd(1)|0}else e=0;i=b;return e|0}function gd(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1168]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=Xd(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){Wd(a);d=0;i=e;return d|0}if(((c[1168]|0)+ -32|0)>>>0>>0)b=0;else b=Xd(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}Wd(a);d=0;i=e;return d|0}function id(a){a=a|0;var b=0;b=i;Wd(a);i=b;return}function jd(a){a=a|0;var b=0;b=i;Wd(c[a>>2]|0);c[a>>2]=0;i=b;return}function kd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1168]|0)+ -32|0)>>>0>=f>>>0):0)a=Xd(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ld(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=hd(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function md(a){a=a|0;var b=0,c=0;c=i;b=fd(a)|0;if(b)ce(b|0,0,a|0)|0;i=c;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;Wd(c[a>>2]|0);f=fd(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function od(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=fd($(b,a)|0)|0;else b=0;i=c;return b|0}function pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=fd(e)|0,(d|0)!=0):0)ce(d|0,0,e|0)|0;else d=0;i=c;return d|0}function qd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=md(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=md(12)|0;if(!j){jd(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function rd(a,b){a=a|0;b=b|0;a=i;id(b);i=a;return}function sd(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=fd(a)|0;c[d>>2]=e;if(e){a=qd(e,a,7,0,0)|0;if(!a){jd(d);a=0}}else a=0;i=b;return a|0}function td(a){a=a|0;var b=0,d=0;b=i;d=sd(a)|0;if(!d){d=0;i=b;return d|0}ce(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function ud(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=md(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function vd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;jd(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Aa[c[f+12>>2]&7](c[f+16>>2]|0,c[f>>2]|0);jd(d);i=b;return}function wd(){var a=0,b=0,d=0;a=i;b=md(400)|0;if(!b){b=0;i=a;return b|0}ce(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function xd(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){yd(d);jd(a)}i=b;return}function yd(a){a=a|0;var b=0,d=0;b=i;vd(a+304|0);vd(a+308|0);vd(a+312|0);vd(a+316|0);vd(a+320|0);vd(a+324|0);vd(a+328|0);vd(a+332|0);ce(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function zd(a,b){a=a|0;b=b|0;var d=0;d=i;fe(a|0,b|0,400)|0;ce(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)ta();else{e=f;g=0}while(1){if((e|0)!=0?(j=ud(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){yd(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Bd(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[4936+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=4940+(e*24|0)|0;i=d;return f|0}function Cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Dd(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Ed(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0;f=i;if(!(c[b+8>>2]|0)){t=-1;i=f;return t|0}g=b+68|0;if((a[g>>0]|0)!=0|e>>>0>1){t=-1;i=f;return t|0}a[b+76>>0]=(e|0)==1&1;l=b+77|0;a[l>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(t=b+16|0,p=c[t>>2]|0,j=b+84|0,c[j>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=fd(p)|0,c[b+128>>2]=fd(c[t>>2]|0)|0,c[b+196>>2]=fd((c[j>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){m=0;do{c[b+(m<<2)+132>>2]=fd(c[j>>2]|0)|0;c[b+(m<<2)+164>>2]=fd(c[j>>2]|0)|0;m=m+1|0}while((m|0)!=8)}j=d[b+30>>0]|0;v=(a[l>>0]|0)!=0?16:8;l=b+36|0;t=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=j+ -8|0;r=o/+(224<>2]=sa(+(r*y*2.0))|0;w=1.0-u;x=w-s;c[b+224>>2]=sa(+(r*(u*2.0*w/x)))|0;c[b+228>>2]=sa(+(r*(s*2.0*y/x)))|0;c[b+232>>2]=sa(+(r*w*2.0))|0}k=sa(+q)|0;c[b+208>>2]=k;c[b+200>>2]=p;t=1<>2]=t;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[p>>2]|0)}else{c[b+212>>2]=k;c[b+216>>2]=t}c[b+240>>2]=j;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=4;else c[b+248>>2]=c[6064+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e;c[b+92>>2]=Cd(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=Cd(b,b+112|0,1)|0;c[b+100>>2]=Cd(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=Cd(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Fd(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=0;c[d>>2]=1;return}function Gd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;f=b+80|0;l=c[f>>2]|0;if(l>>>0>=(c[b+20>>2]|0)>>>0){u=-1;i=h;return u|0}g=c[b+16>>2]|0;m=(c[b+92>>2]|0)+($(c[b+108>>2]|0,l)|0)|0;j=b+76|0;if(!(a[j>>0]|0))k=(a[b+78>>0]|0)!=0?4:3;else k=4;n=c[b+24>>2]|0;if((n|0)==1){if(!l){n=b+96|0;o=b+112|0;p=b+100|0;q=b+116|0;r=b+84|0;s=b+88|0;t=0;do{u=(t|0)>4?t+ -8|0:t;if((u|0)<0)u=0;else{v=c[s>>2]|0;u=(u|0)<(v|0)?u:v+ -1|0}w=(c[n>>2]|0)+($(c[o>>2]|0,u)|0)|0;v=(c[p>>2]|0)+($(c[q>>2]|0,u)|0)|0;fe(c[b+(t<<2)+132>>2]|0,w|0,c[r>>2]|0)|0;fe(c[b+(t<<2)+164>>2]|0,v|0,c[r>>2]|0)|0;t=t+1|0}while((t|0)!=8)}o=l>>1;q=(o|0)%8|0;w=l&1;n=b+124|0;t=b+196|0;u=b+30|0;v=b+28|0;Hd(c[n>>2]|0,b+132|0,g,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);p=b+128|0;Hd(c[p>>2]|0,b+164|0,g,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);if(w){u=(q+5|0)%8|0;t=o+5|0;v=c[b+88>>2]|0;v=(t|0)<(v|0)?t:v+ -1|0;t=(c[b+96>>2]|0)+($(v,c[b+112>>2]|0)|0)|0;v=(c[b+100>>2]|0)+($(c[b+116>>2]|0,v)|0)|0;w=b+84|0;fe(c[b+(u<<2)+132>>2]|0,t|0,c[w>>2]|0)|0;fe(c[b+(u<<2)+164>>2]|0,v|0,c[w>>2]|0)|0}Ka[c[b+248>>2]&7](b+200|0,e,m,c[n>>2]|0,c[p>>2]|0,g,k)}else if((n|0)==2){w=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;r=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;v=b+124|0;s=b+30|0;t=b+28|0;u=b+196|0;Id(c[v>>2]|0,w,g,d[s>>0]|0,d[t>>0]|0,c[u>>2]|0);w=b+128|0;Id(c[w>>2]|0,r,g,d[s>>0]|0,d[t>>0]|0,c[u>>2]|0);Ka[c[b+248>>2]&7](b+200|0,e,m,c[v>>2]|0,c[w>>2]|0,g,k)}else if((n|0)==3){v=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;w=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;Ka[c[b+248>>2]&7](b+200|0,e,m,v,w,g,k)}else if(!n)Ka[c[b+248>>2]&7](b+200|0,e,m,0,0,g,k);else{w=-1;i=h;return w|0}a:do if(!(a[b+31>>0]|0)){if(a[j>>0]|0){if(!(a[b+29>>0]|0)){if((g|0)<=0)break;b=e+3|0;e=0;while(1){a[b>>0]=-1;e=e+1|0;if((e|0)==(g|0))break a;else b=b+4|0}}j=c[b+104>>2]|0;k=$(c[b+120>>2]|0,l)|0;o=e+3|0;if((c[b+240>>2]|0)==8){if((g|0)>0){l=0;while(1){a[o>>0]=a[j+(l+k)>>0]|0;l=l+1|0;if((l|0)==(g|0))break;else o=o+4|0}}}else{l=c[b+208>>2]|0;m=c[b+204>>2]|0;n=c[b+200>>2]|0;if((g|0)>0){p=0;while(1){a[o>>0]=($(d[j+(p+k)>>0]|0,l)|0)+m>>n;p=p+1|0;if((p|0)==(g|0))break;else o=o+4|0}}}if(a[b+33>>0]|0){if(!(c[1258]|0)){c[1258]=1;b=1;do{c[5040+(b<<2)>>2]=(((b|0)/2|0)+16711808|0)/(b|0)|0;b=b+1|0}while((b|0)!=256)}if((g|0)>0){b=0;while(1){k=a[e+3>>0]|0;if(!(k<<24>>24)){a[e>>0]=-1;a[e+1>>0]=-1;a[e+2>>0]=-1}else{j=c[5040+((k&255)<<2)>>2]|0;l=a[e>>0]|0;if((l&255)<(k&255))l=(($(l&255,j)|0)+32768|0)>>>16&255;else l=-1;a[e>>0]=l;l=e+1|0;m=a[l>>0]|0;if((m&255)<(k&255))m=(($(m&255,j)|0)+32768|0)>>>16&255;else m=-1;a[l>>0]=m;l=e+2|0;m=a[l>>0]|0;if((m&255)<(k&255))j=(($(m&255,j)|0)+32768|0)>>>16&255;else j=-1;a[l>>0]=j}b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}}}else{m=c[b+104>>2]|0;l=$(c[b+120>>2]|0,l)|0;b=c[b+240>>2]|0;q=1<0;if(p){o=e;n=0;while(1){v=d[m+(n+l)>>0]|0;a[o>>0]=($(d[o>>0]|0,v)|0)+q>>b;w=o+1|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;w=o+2|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;n=n+1|0;if((n|0)==(g|0))break;else o=o+k|0}}if(!((a[j>>0]|0)==0|p^1)){e=e+3|0;b=0;while(1){a[e>>0]=-1;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}while(0);c[f>>2]=(c[f>>2]|0)+1;w=0;i=h;return w|0}function Hd(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;n=i;p=c[f+((h+5&7)<<2)>>2]|0;t=c[f+((h+6&7)<<2)>>2]|0;q=c[f+((h+7&7)<<2)>>2]|0;s=c[f+((h&7)<<2)>>2]|0;r=c[f+((h+1&7)<<2)>>2]|0;o=c[f+((h+2&7)<<2)>>2]|0;f=c[f+((h+3&7)<<2)>>2]|0;u=k+ -8|0;v=1<>1;h=(g+1|0)/2|0;w=(g|0)>0;if(!l){if(w){l=0;do{y=$(d[t+l>>0]|0,-6)|0;z=$(d[r+l>>0]|0,-10)|0;b[j+(l+3<<1)>>1]=(d[p+l>>0]<<1)+v+y+((d[q+l>>0]|0)*18|0)+((d[s+l>>0]|0)*57|0)+z+(d[o+l>>0]<<2)-(d[f+l>>0]|0)>>u;l=l+1|0}while((l|0)<(h|0))}}else if(w){l=0;do{y=$(d[q+l>>0]|0,-10)|0;z=$(d[o+l>>0]|0,-6)|0;b[j+(l+3<<1)>>1]=v-(d[p+l>>0]|0)+(d[t+l>>0]<<2)+y+((d[s+l>>0]|0)*57|0)+((d[r+l>>0]|0)*18|0)+z+(d[f+l>>0]<<1)>>u;l=l+1|0}while((l|0)<(h|0))}o=j+6|0;z=b[o>>1]|0;b[j>>1]=z;q=j+2|0;b[q>>1]=z;p=j+4|0;b[p>>1]=z;z=b[j+(h+2<<1)>>1]|0;b[j+(h+3<<1)>>1]=z;b[j+(h+4<<1)>>1]=z;b[j+(h+5<<1)>>1]=z;b[j+(h+6<<1)>>1]=z;h=(1<>1;t=20-k|0;s=1<1){r=g+ -2|0;k=r>>>1;q=k<<1;f=e;while(1){u=(b[o>>1]|0)+m>>p;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f>>0]=u;z=$((b[o+4>>1]|0)+(b[o+ -2>>1]|0)|0,-11)|0;u=o;o=o+2|0;u=s-(b[u+ -6>>1]|0)-(b[u+8>>1]|0)+((b[u+6>>1]|0)+(b[u+ -4>>1]|0)<<2)+z+(((b[o>>1]|0)+(b[u>>1]|0)|0)*40|0)>>t;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f+1>>0]=u;g=g+ -2|0;if((g|0)<=1)break;else f=f+2|0}e=e+(q+2)|0;g=r-q|0;o=j+(k+4<<1)|0}if(!g){i=n;return}j=(b[o>>1]|0)+m>>p;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}else{k=20-k|0;m=1<>1]|0;v=b[q>>1]|0;u=b[p>>1]|0;f=b[o>>1]|0;s=b[j+8>>1]|0;t=b[j+10>>1]|0;if((g|0)>1){r=g+ -2|0;p=r>>>1;q=p<<1;x=e;while(1){w=b[o+6>>1]|0;y=f*57|0;z=(t<<2)+m+($(s,-10)|0)+y+(u*18|0)+($(v,-6)|0)+(l<<1)-w>>k;if((z|0)<0)z=0;else z=((z|0)>(h|0)?h:z)&255;a[x>>0]=z;l=($(t,-6)|0)+m+(s*18|0)+y+($(u,-10)|0)-l+(v<<2)+(w<<1)>>k;if((l|0)<0)l=0;else l=((l|0)>(h|0)?h:l)&255;a[x+1>>0]=l;g=g+ -2|0;if((g|0)<=1)break;else{B=t;A=s;y=f;z=u;l=v;t=w;x=x+2|0;o=o+2|0;s=B;f=A;u=y;v=z}}l=v;v=u;u=f;f=s;s=t;t=w;e=e+(q+2)|0;g=r-q|0;o=j+(p+4<<1)|0}if(!g){i=n;return}j=(t<<2)+m+($(s,-10)|0)+(f*57|0)+(u*18|0)+($(v,-6)|0)+(l<<1)-(b[o+6>>1]|0)>>k;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}}function Id(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(e+1|0)/2|0;k=h+3|0;fe(k|0,c|0,v|0)|0;ce(h|0,a[c>>0]|0,3)|0;ce(h+(v+3)|0,a[c+(v+ -1)>>0]|0,4)|0;c=(1<1){f=e+ -2|0;g=f>>>1;l=g<<1;m=b;while(1){a[m>>0]=a[k>>0]|0;v=$((d[k+2>>0]|0)+(d[k+ -1>>0]|0)|0,-11)|0;n=k;k=k+1|0;n=32-(d[n+ -3>>0]|0)-(d[n+4>>0]|0)+((d[n+3>>0]|0)+(d[n+ -2>>0]|0)<<2)+v+(((d[k>>0]|0)+(d[n>>0]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&255;a[m+1>>0]=n;e=e+ -2|0;if((e|0)<=1)break;else m=m+2|0}b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}a[b>>0]=a[k>>0]|0;i=j;return}q=d[h>>0]|0;r=d[h+1>>0]|0;m=d[h+2>>0]|0;p=d[k>>0]|0;o=d[h+4>>0]|0;n=d[h+5>>0]|0;if((e|0)>1){f=e+ -2|0;g=f>>>1;l=g<<1;t=b;while(1){s=d[k+3>>0]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(m*18|0)+($(r,-6)|0)+(q<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&255;a[t>>0]=v;q=($(n,-6)|0)+32+(o*18|0)+u+($(m,-10)|0)-q+(r<<2)+(s<<1)>>6;if((q|0)<0)q=0;else q=((q|0)>(c|0)?c:q)&255;a[t+1>>0]=q;e=e+ -2|0;if((e|0)<=1)break;else{x=n;w=o;u=p;v=m;q=r;n=s;t=t+2|0;k=k+1|0;o=x;p=w;m=u;r=v}}q=r;r=m;m=p;p=o;o=n;n=s;b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(m*18|0)+($(r,-6)|0)+(q<<1)-(d[k+3>>0]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&255;a[b>>0]=h;i=j;return}function Jd(){var a=0,b=0;a=i;b=md(252)|0;if(!b)b=0;i=a;return b|0}function Kd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;k=i;i=i+80|0;n=k+72|0;l=k+60|0;h=k+48|0;u=k+44|0;x=k+40|0;t=k+36|0;p=k;y=a[e+40>>0]|0;a:do if(((((((g|0)>=6?(a[f>>0]|0)==66:0)?(a[f+1>>0]|0)==80:0)?(a[f+2>>0]|0)==71:0)?(a[f+3>>0]|0)==-5:0)?(R=a[f+4>>0]|0,N=R&255,J=N>>>5,c[p+8>>2]=J,(R&255)<=191):0)?(R=(N&15)+8|0,a[p+13>>0]=R,(R&255)>>>0<=14):0){L=a[f+5>>0]|0;v=L&255;M=v>>>4;c[p+24>>2]=M;A=v&8;R=v>>>2&1;a[p+16>>0]=v>>>1&1;r=p+17|0;a[r>>0]=v&1;v=p+18|0;b[v>>1]=0;s=p+20|0;b[s>>1]=0;w=p+22|0;b[w>>1]=0;O=p+12|0;a[O>>0]=0;Q=p+14|0;a[Q>>0]=0;P=p+15|0;a[P>>0]=0;if(!(N&16))if(!R)N=0;else{a[O>>0]=1;a[Q>>0]=1;N=1}else{a[O>>0]=1;a[P>>0]=R;N=0}if((((((((((L&255)<=79?(J|0)!=0|(M|0)==0:0)?!(N<<24>>24!=0&(J|0)==0):0)?(F=Qd(p,f+6|0,g+ -6|0)|0,(F|0)>=0):0)?(C=(c[p>>2]|0)>>>0>1073741823?-1:F,(C|0)>=0):0)?(E=C+6|0,z=p+4|0,I=Qd(z,f+E|0,g-E|0)|0,(I|0)>=0):0)?(H=c[z>>2]|0,D=H>>>0>1073741823?-1:I,(D|0)>=0):0)?(G=D+E|0,!((c[p>>2]|0)==0|(H|0)==0)):0)?(q=p+28|0,K=Qd(q,f+G|0,g-G|0)|0,(K|0)>=0):0)?(B=(c[q>>2]|0)>>>0>1073741823?-1:K,(B|0)>=0):0){z=B+G|0;c[n>>2]=0;do if(!A){c[p+32>>2]=0;m=48}else{A=Qd(n,f+z|0,g-z|0)|0;if((A|0)<0){z=-1;break a}B=c[n>>2]|0;A=B>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}C=A+z|0;A=p+32|0;c[A>>2]=0;z=C+B|0;if((z|0)>(g|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[r>>0]|0)==0:0)break;if((C|0)>=(z|0)){z=C;m=48;break}while(1){B=Qd(l,f+C|0,z-C|0)|0;if((B|0)<0){z=-1;break a}C=B+C|0;D=Qd(h,f+C|0,z-C|0)|0;if((D|0)<0){z=-1;break a}B=c[h>>2]|0;D=B>>>0>1073741823?-1:D;if((D|0)<0){z=-1;break a}D=D+C|0;C=D+B|0;if(C>>>0>z>>>0){z=-1;break a}do if(a[r>>0]|0){if((c[l>>2]|0)!=5)break;F=Qd(u,f+D|0,z-D|0)|0;if((F|0)<0){z=-1;break a}E=c[u>>2]|0;F=E>>>0>1073741823?-1:F;if((F|0)<0){z=-1;break a}G=F+D|0;H=Qd(x,f+G|0,z-G|0)|0;if((H|0)<0){z=-1;break a}F=c[x>>2]|0;H=F>>>0>1073741823?-1:H;if((H|0)<0){z=-1;break a}R=H+G|0;if((Qd(t,f+R|0,z-R|0)|0)<0){z=-1;break a}G=c[t>>2]|0;if(!((F&65535|0)==(F|0)&((G>>>0>1073741823|(F|0)==0|(G|0)==0)^1))){z=-1;break a}if((G&65535|0)!=(G|0)){z=-1;break a}if((E&65535|0)!=(E|0)){z=-1;break a}b[v>>1]=E;b[s>>1]=F;b[w>>1]=G}while(0);if(y){P=fd(16)|0;c[P>>2]=c[l>>2];Q=P+4|0;c[Q>>2]=B;R=P+12|0;c[R>>2]=0;c[A>>2]=P;A=fd(B)|0;c[P+8>>2]=A;fe(A|0,f+D|0,c[Q>>2]|0)|0;A=R}if((C|0)>=(z|0)){z=C;m=48;break}}}while(0);do if((m|0)==48){if(!(a[r>>0]|0))break;if(!(b[s>>1]|0)){z=-1;break a}}while(0);if(c[q>>2]|0)break;c[q>>2]=g-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=k;return R|0}u=c[p>>2]|0;v=c[p+4>>2]|0;B=c[p+12>>2]|0;y=B&255;A=c[p+24>>2]|0;w=(B&65535)>>>8;t=w&255;w=w&65535;q=e+16|0;c[q>>2]=u;r=e+20|0;c[r>>2]=v;x=c[p+8>>2]|0;C=e+24|0;c[C>>2]=x;s=B>>>24&255;B=B>>>16&255;if((x|0)==5){c[C>>2]=2;a[e+28>>0]=0;x=2}else if((x|0)==4){c[C>>2]=1;a[e+28>>0]=0;x=1}else{c[C>>2]=x;a[e+28>>0]=1}a[e+29>>0]=y;a[e+33>>0]=s;a[e+31>>0]=B;s=c[p+16>>2]|0;a[e+32>>0]=s;c[e+36>>2]=A;a[e+30>>0]=t;a[e+34>>0]=(s&65535)>>>8;b[e+48>>1]=s>>>16;s=c[p+20>>2]|0;b[e+50>>1]=s;b[e+52>>1]=s>>>16;s=e+44|0;c[s>>2]=c[p+32>>2];do if(((c[p+28>>2]|0)+z|0)>>>0<=g>>>0){A=f+z|0;g=g-z|0;c[l>>2]=0;c[l+4>>2]=0;p=l+8|0;c[p>>2]=0;c[h>>2]=0;c[h+4>>2]=0;t=h+8|0;c[t>>2]=0;if(!(y<<24>>24)){z=A;y=g}else{y=Nd(l,e+12|0,e+4|0,A,g,u,v,0,w)|0;if((y|0)<0)break;z=f+(y+z)|0;y=g-y|0}f=e+8|0;A=Nd(h,f,e,z,y,u,v,x,w)|0;if((A|0)>=0){u=y-A|0;v=e+4|0;y=c[v>>2]|0;w=(y|0)!=0;c[n>>2]=0;x=n+4|0;c[x>>2]=0;b:do if((u|0)>0){y=n+((w&1)<<2)|0;D=0;H=0;z=z+A|0;A=u;G=1;c:while(1){B=(G|0)!=0;if((A|0)<((B?5:2)|0)){n=-1;break b}if(B)F=0;else F=(a[z+2>>0]|0)==0?4:3;if((A|0)<(F+3|0)){n=-1;break b}C=z+F|0;B=d[C>>0]|0;E=B<<5&32|(d[z+(F+1)>>0]|0)>>>3;B=B>>>1&63;do if((B+ -32|0)>>>0<4|(B|0)==39|B>>>0>40)if(D)if(!(c[y>>2]|0))B=H;else break c;else{B=H;D=0}else if((B>>>0<10|(B+ -16|0)>>>0<6?(o=F+2|0,(o|0)<(A|0)):0)?(a[z+o>>0]|0)<0:0){if((H|0)!=0?(c[y>>2]|0)!=0:0)break c;if(w&(E|0)==1){c[x>>2]=1;B=H;D=H;break}else{c[n>>2]=1;B=1;D=1;break}}else B=H;while(0);do if((G|0)!=1){if(((((A|0)>3?(a[z>>0]|0)==0:0)?(a[z+1>>0]|0)==0:0)?(a[z+2>>0]|0)==0:0)?(a[z+3>>0]|0)==1:0){G=4;break}if((A|0)<=2){n=-1;break b}if(a[z>>0]|0){n=-1;break b}if(a[z+1>>0]|0){n=-1;break b}if((a[z+2>>0]|0)==1)G=3;else{n=-1;break b}}else G=0;while(0);H=G+2|0;if((H|0)>(A|0)){n=-1;break b}d:do if((H|0)<(A|0))while(1){K=(a[z+G>>0]|0)==0;do if(K){if(a[z+(G+1)>>0]|0)break;if((a[z+H>>0]|0)==1)break d}while(0);J=H;H=G+3|0;if((H|0)>=(A|0)){G=A;break d}I=G+1|0;if(!K){G=I;continue}if(a[z+I>>0]|0){G=I;continue}if(a[z+J>>0]|0){G=I;continue}J=(a[z+H>>0]|0)==1;if(J){G=J?G:A;break}else G=I}else G=A;while(0);if((G|0)<0){n=-1;break b}H=G-F|0;F=H+3|0;E=w&(E|0)==1;J=E?l:h;I=J+8|0;if((Od(J,(c[I>>2]|0)+F|0)|0)<0){n=-1;break b}K=c[J>>2]|0;J=c[I>>2]|0;a[K+J>>0]=0;a[K+(J+1)>>0]=0;a[K+(J+2)>>0]=1;fe(K+(J+3)|0,C|0,H|0)|0;if(E){R=K+(J+4)|0;a[R>>0]=d[R>>0]&7}c[I>>2]=J+F;A=A-G|0;if((A|0)>0){H=B;z=z+G|0;G=0}else break}y=c[v>>2]|0;m=105}else{A=u;m=105}while(0);do if((m|0)==105){if(y){if((Od(l,(c[p>>2]|0)+32|0)|0)<0){n=-1;break}if((Pd(c[v>>2]|0,c[e+12>>2]|0,c[l>>2]|0,c[p>>2]|0)|0)<0){n=-1;break}}if((Od(h,(c[t>>2]|0)+32|0)|0)<0)n=-1;else{n=(Pd(c[e>>2]|0,c[f>>2]|0,c[h>>2]|0,c[t>>2]|0)|0)<0;n=n?-1:u-A|0}}while(0);id(c[l>>2]|0);id(c[h>>2]|0);if((((n|0)>=0?(g-u+n|0)>=0:0)?(Ld(e),j=c[f>>2]|0,(c[j+64>>2]|0)>=(c[q>>2]|0)):0)?(c[j+68>>2]|0)>=(c[r>>2]|0):0){c[e+80>>2]=-1;R=0;i=k;return R|0}}}while(0);xd(e+8|0);xd(e+12|0);c[s>>2]=0;R=-1;i=k;return R|0}function Ld(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Jc(e)|0;id(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Jc(d)|0;id(c[a>>2]|0);c[a>>2]=0;i=b;return}function Md(a){a=a|0;var b=0,d=0;b=i;id(c[a+124>>2]|0);id(c[a+128>>2]|0);d=0;do{id(c[a+(d<<2)+132>>2]|0);id(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);id(c[a+196>>2]|0);id(c[a+56>>2]|0);Ld(a);xd(a+8|0);xd(a+12|0);id(a);i=b;return}function Nd(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=Qd(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=fd(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;fe(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=fd(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}id(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Od(b,(c[g>>2]|0)+f|0)|0)<0){id(k);t=-1;i=n;return t|0}fe((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;id(k);b=Oc(1416)|0;if(!b){t=-1;i=n;return t|0}g=wd()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ic(b,1416,0)|0)<0){xd(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=gd(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Pd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Xc(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Pc(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function Qd(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Rd(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0;h=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)g=0;else{i=h;return}while(1){n=a[f+g>>0]|0;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;g=g+1|0;if((g|0)==(j|0))break;else e=e+k|0}i=h;return}l=c[b+12>>2]|0;g=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)m=0;else{i=h;return}while(1){n=($(d[f+m>>0]|0,l)|0)+g>>b;if((n|0)<0)n=0;else n=(n|0)>255?-1:n&255;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=h;return}function Sd(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(d[f+t>>0]|0,p)|0;u=(d[g+t>>0]|0)-b|0;w=(d[h+t>>0]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[e>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[e+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else e=e+k|0}i=q;return}function Td(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;l=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)m=0;else{i=l;return}while(1){a[e>>0]=a[h+m>>0]|0;a[e+1>>0]=a[f+m>>0]|0;a[e+2>>0]=a[g+m>>0]|0;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=l;return}n=c[b+12>>2]|0;m=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)o=0;else{i=l;return}while(1){p=($(d[h+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e>>0]=p;p=($(d[f+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+1>>0]=p;p=($(d[g+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+2>>0]=p;o=o+1|0;if((o|0)==(j|0))break;else e=e+k|0}i=l;return}function Ud(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=d[f+p>>0]|0;s=(d[g+p>>0]|0)-b|0;r=(d[h+p>>0]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[e+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[e+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else e=e+k|0}i=o;return}function Vd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1523]|0)){e=ra(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;c[1523]=6088;c[1522]=6088;c[1527]=6104;c[1526]=6104;k=e+16|0;a[e+15>>0]=-86;j=c[1527]|0;c[1527]=k;c[k>>2]=6104;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1523]|0;c[1523]=j;c[j>>2]=6088;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1524]|0;g=c[1522]|0;k=6092|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6104)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ra(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1524]=ra(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function Wd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1523]|0;c[1523]=b;c[b>>2]=6088;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6104?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6104){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){Wd(a);e=0;break}e=Vd(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;fe(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;Wd(a)}}else e=Vd(b)|0;while(0);i=d;return e|0}function Yd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function Zd(){}function _d(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function $d(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function be(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function ce(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function de(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function fe(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function ge(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function he(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function ie(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=je(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return xa[a&1](b|0,c|0,d|0)|0}function me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ya[a&3](b|0,c|0,d|0,e|0,f|0)}function ne(a,b){a=a|0;b=b|0;za[a&7](b|0)}function oe(a,b,c){a=a|0;b=b|0;c=c|0;Aa[a&7](b|0,c|0)}function pe(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ba[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function qe(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;Ca[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function re(a,b){a=a|0;b=b|0;return Da[a&3](b|0)|0}function se(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ea[a&7](b|0,c|0,d|0)}function te(a,b,c,d,e,f,g,h,i,j){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;j=j|0;Fa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function ue(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ga[a&1](b|0,c|0,d|0,e|0)|0}function ve(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ha[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function we(a,b,c){a=a|0;b=b|0;c=c|0;return Ia[a&1](b|0,c|0)|0}function xe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ja[a&1](b|0,c|0,d|0,e|0,f|0)|0}function ye(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Ka[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function ze(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Ae(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(1)}function Be(a){a=a|0;aa(2)}function Ce(a,b){a=a|0;b=b|0;aa(3)}function De(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(4);return 0}function Ee(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;aa(5)}function Fe(a){a=a|0;aa(6);return 0}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;aa(7)}function He(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;aa(8)}function Ie(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(9);return 0}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(10)}function Ke(a,b){a=a|0;b=b|0;aa(11);return 0}function Le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(12);return 0}function Me(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(13)} diff --git a/html/bpgdec8a.js b/html/bpgdec8a.js index 3f785ab..adb3800 100644 --- a/html/bpgdec8a.js +++ b/html/bpgdec8a.js @@ -16,7 +16,7 @@ z&&(z=i[z+"ToC"],d+="var "+z.arguments+" = "+G+";",d+=z.body+";",d+=G+"="+z.retu function na(a,d,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":J[a>>0]=d;break;case "i8":J[a>>0]=d;break;case "i16":L[a>>1]=d;break;case "i32":M[a>>2]=d;break;case "i64":ha=[d>>>0,(I=d,1<=+oa(I)?0>>0:~~+ra((I-+(~~I>>>0))/4294967296)>>>0:0)];M[a>>2]=ha[0];M[a+4>>2]=ha[1];break;case "float":N[a>>2]=d;break;case "double":O[a>>3]=d;break;default:C("invalid type for setValue: "+c)}}m.setValue=na; m.getValue=function(a,d){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":return J[a>>0];case "i8":return J[a>>0];case "i16":return L[a>>1];case "i32":return M[a>>2];case "i64":return M[a>>2];case "float":return N[a>>2];case "double":return O[a>>3];default:C("invalid type for setValue: "+d)}return l};var sa=2,ta=4;m.ALLOC_NORMAL=0;m.ALLOC_STACK=1;m.ALLOC_STATIC=sa;m.ALLOC_DYNAMIC=3;m.ALLOC_NONE=ta; function P(a,d,c,e){var f,i;"number"===typeof a?(f=j,i=a):(f=!1,i=a.length);var g="string"===typeof d?d:l,c=c==ta?e:[va,B.d,B.Q,B.b][c===h?sa:c](Math.max(i,g?1:d.length));if(f){e=c;y(0==(c&3));for(a=c+(i&-4);e>2]=0;for(a=c+i;e>0]=0;return c}if("i8"===g)return a.subarray||a.slice?Q.set(a,c):Q.set(new Uint8Array(a),c),c;for(var e=0,k,n;eS?2*S:S+16777216;S!==F&&(m.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),F=S); +m.allocate=P;function wa(){var a=Error();if(!a.stack){try{b(Error(0))}catch(d){a=d}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}m.stackTrace=function(){return wa()};for(var J,Q,L,xa,M,ya,N,O,R=0,D=0,za=0,A=0,Aa=0,Ba=0,E=0,Ca=m.TOTAL_STACK||5242880,F=m.TOTAL_MEMORY||33554432,S=65536;SS?2*S:S+16777216;S!==F&&(m.a("increasing TOTAL_MEMORY to "+S+" to be compliant with the asm.js spec"),F=S); y("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var T=new ArrayBuffer(F);J=new Int8Array(T);L=new Int16Array(T);M=new Int32Array(T);Q=new Uint8Array(T);xa=new Uint16Array(T);ya=new Uint32Array(T);N=new Float32Array(T);O=new Float64Array(T);M[0]=255;y(255===Q[0]&&0===Q[3],"Typed arrays 2 must be run on a little-endian system");m.HEAP=h;m.buffer=T;m.HEAP8=J; m.HEAP16=L;m.HEAP32=M;m.HEAPU8=Q;m.HEAPU16=xa;m.HEAPU32=ya;m.HEAPF32=N;m.HEAPF64=O;function U(a){for(;0>0]=a[c],c+=1}m.writeStringToMemory=ma;function la(a,d){for(var c=0;c>0]=a[c]}m.writeArrayToMemory=la; @@ -65,15 +65,15 @@ arguments)},_abort:function(){m.abort()},_emscripten_memcpy_big:function(a,d,c){ var $=(function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=0;var p=0;var q=0;var r=0;var s=+env.NaN,t=+env.Infinity;var u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=0;var N=global.Math.floor;var O=global.Math.abs;var P=global.Math.sqrt;var Q=global.Math.pow;var R=global.Math.cos;var S=global.Math.sin;var T=global.Math.tan;var U=global.Math.acos;var V=global.Math.asin;var W=global.Math.atan;var X=global.Math.atan2;var Y=global.Math.exp;var Z=global.Math.log;var _=global.Math.ceil;var $=global.Math.imul;var aa=env.abort;var ba=env.assert;var ca=env.min;var da=env.invoke_iiii;var ea=env.invoke_viiiiiiiiiii;var fa=env.invoke_viiiiiiiiii;var ga=env.invoke_viiiii;var ha=env.invoke_vi;var ia=env.invoke_vii;var ja=env.invoke_iiiiiii;var ka=env.invoke_viiiiiiiii;var la=env.invoke_viiiiiiiiiiii;var ma=env.invoke_ii;var na=env.invoke_viii;var oa=env.invoke_viiiiiiii;var pa=env.invoke_iiiii;var qa=env.invoke_viiiiii;var ra=env.invoke_iii;var sa=env.invoke_iiiiii;var ta=env.invoke_viiiiiii;var ua=env._sbrk;var va=env._lrint;var wa=env._abort;var xa=env._emscripten_memcpy_big;var ya=env._rint;var za=0.0; // EMSCRIPTEN_START_FUNCS -function ic(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;M=c[q+4>>2]|0;A=w+4|0;c[A>>2]=M;y=c[r>>2]|0;c[t>>2]=y;J=c[r+4>>2]|0;x=t+4|0;c[x>>2]=J;q=a[v+31254>>0]|0;do if(q<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;G=c[r>>2]|0;B=(c[G+13076>>2]|0)>>>0>>0;if(((!B?(c[G+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(q<<24>>24!=0&(o|0)==0):0)q=(Gb(e,n)|0)&255;else{if((c[G+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)G=(o|0)==0&(c[v+31248>>2]|0)!=0;else G=0;if(B)q=1;else q=(q<<24>>24!=0&(o|0)==0|G)&1}B=(n|0)>2;G=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!G)L=y;else E=20;else if((G|0)==3)E=20;else L=y;do if((E|0)==20){G=(o|0)==0;if(!((K|0)==0&(G^1))){K=Hb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){M=Hb(e,o)|0;c[A>>2]=M}if(!G)E=25}else{K=0;E=25}if((E|0)==25)if(!y){L=0;break}L=Hb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){J=Hb(e,o)|0;c[x>>2]=J}}while(0);if(!(q<<24>>24)){A=c[r>>2]|0;y=c[A+13072>>2]|0;x=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=Ib(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;qd(e,f,g,t,w);mc(e,f,g,A,1);mc(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,qd(e,h,j,F,H),mc(e,h,j,n,1),mc(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=ob(e)|0;J=G+280|0;c[J>>2]=M;if(M){M=(pb(e)|0)==1;H=c[J>>2]|0;if(M){H=0-H|0;c[J>>2]=H}}else H=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((H|0)<(-26-M|0)|(H|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{Ob(e,k,l,m);break}}while(0);if((!((a[e+3068>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(qb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{l=c[E>>2]|0;if(!(a[l+1633>>0]|0))m=0;else{m=rb(e)|0;l=c[E>>2]|0}a[G+302>>0]=a[l+m+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+m+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){m=c[G+288>>2]|0;if((m+ -6|0)>>>0<9)k=2;else k=(m+ -22|0)>>>0<9&1;m=c[G+292>>2]|0;if((m+ -6|0)>>>0<9)m=2;else m=(m+ -22|0)>>>0<9&1}else{k=0;m=0}l=G+304|0;a[l>>0]=0;if(I)Lb(e,f,g,n,k,0);k=c[r>>2]|0;C=c[k+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)Lb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)Lb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}h=1<<(c[k+13172>>2]|0)+A;j=1<<(c[k+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;jc(e,0)}while(0);p=e+160|0;E=G+320|0;D=G+11680|0;C=1<0;B=e+(A+ -2<<2)+5856|0;F=G+284|0;I=0;do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;G=c[L+36>>2]|0;H=c[r>>2]|0;M=$(g>>c[H+13184>>2],G)|0;H=(c[L+4>>2]|0)+(M+(f>>c[H+13172>>2]<>2]))|0;if(k){I=0;do{b[D+(I<<1)>>1]=($(b[E+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(C|0));I=C}else I=0;Ka[c[B>>2]&7](H,D,G)}else Lb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))H=0;else{jc(e,1);H=0}do{if((c[z>>2]|0)==1){M=(H<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;w=c[L+40>>2]|0;G=c[r>>2]|0;M=$(g>>c[G+13188>>2],w)|0;G=(c[L+8>>2]|0)+(M+(f>>c[G+13176>>2]<>2]))|0;if(k){H=0;do{b[D+(H<<1)>>1]=($(b[E+(H<<1)>>1]|0,c[F>>2]|0)|0)>>>3;H=H+1|0}while((H|0)!=(C|0));H=C}else H=0;Ka[c[B>>2]&7](G,D,w)}else Lb(e,f,(H<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+7596|0;r=0;do{w=$(r+g>>y,q)|0;h=0;do{a[(c[t>>2]|0)+((h+f>>y)+w)>>0]=1;h=h+x|0}while((h|0)<(u|0));r=r+x|0}while((r|0)<(u|0))}if(((a[e+3049>>0]|0)==0?(Pb(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)fc(e,f,g,n)}else{v=n+ -1|0;u=1<>2]|0;f=Jb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((Kb(a,b)|0)<<1)<>2]|0;t=c[h>>2]|0;u=c[h+32>>2]|0;y=c[e+200>>2]|0;w=c[y+13120>>2]|0;x=c[y+13124>>2]|0;z=b[j>>1]|0;h=z&3;A=b[j+2>>1]|0;j=A&3;r=c[e+2428>>2]|0;if(!r)r=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;else if((r|0)==1)r=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;else r=0;s=d[1408+m>>0]|0;k=(z<<16>>16>>2)+k|0;l=(A<<16>>16>>2)+l|0;A=$(l,u)|0;y=c[y+56>>2]|0;A=A+(k<>2]&1](v+320|0,A,B,u,m+7|0,n+7|0,k+ -3|0,l+ -3|0,w,x);z=v+((B*3|0)+z)+320|0;u=B}t=(h|0)!=0&1;v=(j|0)!=0&1;if(r){Ba[c[e+(s<<4)+(v<<3)+(t<<2)+6248>>2]&7](f,g,z,u,n,d[e+3101>>0]|0,o,p,h,j,m);i=q;return}else{La[c[e+(s<<4)+(v<<3)+(t<<2)+6088>>2]&7](f,g,z,u,n,h,j,m);i=q;return}}function lc(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;s=i;z=c[e+136>>2]|0;B=c[e+200>>2]|0;y=c[B+13172>>2]|0;x=c[B+13120>>2]>>y;A=c[B+13184>>2]|0;w=c[B+13124>>2]>>A;t=c[e+2428>>2]|0;if(!t)u=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;else if((t|0)==1)u=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;else u=0;t=d[1408+n>>0]|0;E=b[p+(k<<2)>>1]|0;D=y+2|0;v=E&(1<>1]|0;C=A+2|0;p=k&(1<>D)+l|0;m=(k>>C)+m|0;C=$(m,j)|0;k=c[B+56>>2]|0;C=C+(l<>2]&1](z+320|0,h+(C-j-B)|0,E,j,n+3|0,o+3|0,l+ -1|0,m+ -1|0,x,w);B=z+(E+B)+320|0;j=E}v=(v|0)!=0&1;w=(p|0)!=0&1;if(u){Ba[c[e+(t<<4)+(w<<3)+(v<<2)+7048>>2]&7](f,g,B,j,o,b[e+3102>>1]|0,q,r,y,A,n);i=s;return}else{La[c[e+(t<<4)+(w<<3)+(v<<2)+6888>>2]&7](f,g,B,j,o,y,A,n);i=s;return}}function mc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,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;l=i;i=i+272|0;u=l+195|0;A=l+130|0;y=l+65|0;w=l;r=c[b+136>>2]|0;s=c[b+200>>2]|0;L=c[s+(h<<2)+13168>>2]|0;M=c[s+(h<<2)+13180>>2]|0;k=1<>2]|0;ha=k<>2]|0;N=e>>Z&ba;aa=f>>Z&ba;_=ba+2|0;Y=($(aa,_)|0)+N|0;T=c[b+204>>2]|0;U=c[T+1684>>2]|0;Y=c[U+(Y<<2)>>2]|0;n=c[b+160>>2]|0;j=c[n+(h<<2)+32>>2]|0;n=c[n+(h<<2)>>2]|0;m=($(j,f>>M)|0)+(e>>L)|0;o=n+m|0;K=c[s+13156>>2]|0;p=(h|0)==0;q=c[(p?r+288|0:r+292|0)>>2]|0;v=u+1|0;z=y+1|0;x=A+1|0;t=w+1|0;if(!(c[r+31288>>2]|0))ja=0;else ja=(Y|0)>(c[U+(N+ -1+($(ba&aa+(ha>>Z),_)|0)<<2)>>2]|0);ga=ja&1;R=c[r+31292>>2]|0;S=c[r+31300>>2]|0;P=c[r+31296>>2]|0;if(!(c[r+31304>>2]|0))U=0;else U=(Y|0)>(c[U+(($(_,aa+ -1|0)|0)+(ba&N+(fa>>Z))<<2)>>2]|0);N=U&1;aa=(ha<<1)+f|0;ba=s+13124|0;ea=c[ba>>2]|0;Z=ha+f|0;aa=((aa|0)>(ea|0)?ea:aa)-Z>>M;ea=(fa<<1)+e|0;Y=s+13120|0;ca=c[Y>>2]|0;_=fa+e|0;ea=((ea|0)>(ca|0)?ca:ea)-_>>L;ca=T+20|0;if((a[ca>>0]|0)==1){T=c[s+13084>>2]|0;ia=ha>>T;fa=fa>>T;ka=(1<>T;la=Z>>T;na=(c[s+13160>>2]|0)-la|0;na=(ia|0)>(na|0)?na:ia;if((na|0)>0){oa=c[(c[b+3508>>2]|0)+16>>2]|0;ga=0;ja=0;do{ga=(a[oa+((($(ja+la|0,K)|0)+ma|0)*12|0)+10>>0]|0)==0|ga;ja=ja+2|0}while((ja|0)<(na|0))}else ga=0}if(!((R|0)!=1|ka)){ja=e+ -1>>T;ka=f>>T;ma=(c[s+13160>>2]|0)-ka|0;ma=(ia|0)>(ma|0)?ma:ia;if((ma|0)>0){ia=c[(c[b+3508>>2]|0)+16>>2]|0;R=0;la=0;do{R=(a[ia+((($(la+ka|0,K)|0)+ja|0)*12|0)+10>>0]|0)==0|R;la=la+2|0}while((la|0)<(ma|0))}else R=0}if((S|0)==1){S=($(f+ -1>>T,K)|0)+(e+ -1>>T)|0;S=(a[(c[(c[b+3508>>2]|0)+16>>2]|0)+(S*12|0)+10>>0]|0)==0&1}ha=(ha|0)!=0;if(!((P|0)!=1|ha)){P=e>>T;ia=K-P|0;ia=(fa|0)>(ia|0)?ia:fa;if((ia|0)>0){ja=($(f+ -1>>T,K)|0)+P|0;la=c[(c[b+3508>>2]|0)+16>>2]|0;P=0;ka=0;do{P=(a[la+((ja+ka|0)*12|0)+10>>0]|0)==0|P;ka=ka+2|0}while((ka|0)<(ia|0))}else P=0}if(!(ha|U^1)){N=_>>T;U=K-N|0;U=(fa|0)>(U|0)?U:fa;if((U|0)>0){ha=($(f+ -1>>T,K)|0)+N|0;fa=c[(c[b+3508>>2]|0)+16>>2]|0;N=0;T=0;do{N=(a[fa+((ha+T|0)*12|0)+10>>0]|0)==0|N;T=T+2|0}while((T|0)<(U|0))}else N=0}U=v+0|0;T=U+64|0;do{a[U>>0]=128;U=U+1|0}while((U|0)<(T|0));U=y+0|0;T=U+65|0;do{a[U>>0]=128;U=U+1|0}while((U|0)<(T|0));fa=N}else fa=N;T=(S|0)!=0;if(T){oa=a[n+(m+~j)>>0]|0;a[u>>0]=oa;a[y>>0]=oa}U=(P|0)!=0;if(U)mf(z|0,n+(m-j)|0,k|0)|0;N=(fa|0)!=0;if(N?(da=k+1|0,mf(y+da|0,n+(k-j+m)|0,k|0)|0,W=$(d[n+(k+ -1-j+m+ea)>>0]|0,16843009)|0,V=k-ea|0,(V|0)>0):0){ea=ea+da|0;da=0;do{oa=y+(ea+da)|0;a[oa>>0]=W;a[oa+1>>0]=W>>8;a[oa+2>>0]=W>>16;a[oa+3>>0]=W>>24;da=da+4|0}while((da|0)<(V|0))}V=(R|0)!=0;if(V&(k|0)>0){da=m+ -1|0;W=0;do{oa=W;W=W+1|0;a[u+W>>0]=a[n+(da+($(oa,j)|0))>>0]|0}while((W|0)!=(k|0))}W=(ga|0)!=0;if(W){ea=aa+k|0;da=m+ -1|0;if((aa|0)>0){ha=k;do{oa=ha;ha=ha+1|0;a[u+ha>>0]=a[n+(da+($(oa,j)|0))>>0]|0}while((ha|0)<(ea|0))}ia=$(d[n+(da+($(ea+ -1|0,j)|0))>>0]|0,16843009)|0;ha=k-aa|0;if((ha|0)>0){ea=k+1+aa|0;da=0;do{oa=u+(ea+da)|0;a[oa>>0]=ia;a[oa+1>>0]=ia>>8;a[oa+2>>0]=ia>>16;a[oa+3>>0]=ia>>24;da=da+4|0}while((da|0)<(ha|0))}}do if((a[ca>>0]|0)==1?(oa=ga|R,Q=(oa|0)!=0,oa=oa|S,X=(oa|0)==0,(P|fa|oa|0)!=0):0){da=k<<1;ca=c[Y>>2]|0;if(((da<>L;ba=c[ba>>2]|0;if(((da<=(ba|0))da=ba-f>>M;aa=(W?aa:0)+k|0;if(!N)if((_|0)<(ca|0))Y=k;else Y=ca-e>>L;if(!W)if((Z|0)<(ba|0))Z=k;else Z=ba-f>>M;else Z=da;do if(X){do if((Y|0)>0){ba=c[s+13084>>2]|0;aa=$((-1<>ba,K)|0;_=c[(c[b+3508>>2]|0)+16>>2]|0;X=0;while(1){ca=X+1|0;if(!(a[_+((aa+((X<>ba)|0)*12|0)+10>>0]|0))break;if((ca|0)<(Y|0))X=ca;else{X=ca;break}}if((X|0)>0)if((e|0)>0){if((X|0)<=-1)break;aa=(-1<>2]|0;do{ba=X;X=X+ -1|0;oa=c[s+13084>>2]|0;oa=($(aa>>oa,K)|0)+((X<>oa)|0;if(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0)a[y+ba>>0]=a[y+(ba+1)>>0]|0}while((ba|0)>0)}else{aa=(-1<>2]|0;do{ba=X;X=X+ -1|0;oa=c[s+13084>>2]|0;oa=($(aa>>oa,K)|0)+((X<>oa)|0;if(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0)a[y+ba>>0]=a[y+(ba+1)>>0]|0}while((X|0)>0);a[y>>0]=a[z>>0]|0;break}}while(0);X=a[y>>0]|0;a[u>>0]=X}else{ca=(-1<>2]|0;if((oa|0)<=0){J=59;break}_=(aa<>X,K)|0)+(ca>>X)|0;da=c[ea>>2]|0;ba=c[da+16>>2]|0;if(!(a[ba+(oa*12|0)+10>>0]|0)){ea=_;break}}if((J|0)==59){ba=c[ea>>2]|0;da=ba;ba=c[ba+16>>2]|0;ea=(aa<>X,K)|0)+(ca>>X)|0)*12|0)+10>>0]|0)){X=a[y>>0]|0;break}if((Y|0)>0){ca=$((-1<>X,K)|0;da=0;while(1){ea=da+1|0;if(!(a[ba+((ca+((da<>X)|0)*12|0)+10>>0]|0))break;if((ea|0)<(Y|0))da=ea;else{da=ea;break}}if((da|0)>-1)J=68}else{da=0;J=68}a:do if((J|0)==68){ca=(-1<>X,K)|0)+((ea<>X)|0)*12|0)+10>>0]|0)a[y+da>>0]=a[y+(da+1)>>0]|0;if((da|0)<=0)break a;X=c[_>>2]|0;ba=c[aa>>2]|0;da=ea}}while(0);X=a[y>>0]|0;a[u>>0]=X}while(0);a[u>>0]=X;if(Q&(Z|0)>0){aa=$(X&255,16843009)|0;Q=(-1<>2]|0;_=0;do{oa=c[s+13084>>2]|0;oa=($((_<>oa,K)|0)+(Q>>oa)|0;if(!(a[(c[X+16>>2]|0)+(oa*12|0)+10>>0]|0))aa=$(d[u+((_|3)+1)>>0]|0,16843009)|0;else{oa=u+(_|1)|0;a[oa>>0]=aa;a[oa+1>>0]=aa>>8;a[oa+2>>0]=aa>>16;a[oa+3>>0]=aa>>24}_=_+4|0}while((_|0)<(Z|0))}if(!V?(O=$(d[u>>0]|0,16843009)|0,(k|0)>0):0){Q=0;do{oa=u+(Q|1)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24;Q=Q+4|0}while((Q|0)<(k|0))}do if(!W){O=$(d[u+k>>0]|0,16843009)|0;if((k|0)<=0)break;Q=k+1|0;X=0;do{oa=u+(Q+X)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24;X=X+4|0}while((X|0)<(k|0))}while(0);Q=(e|0)==0;O=(f|0)==0;_=(Z|0)>0;b:do if(Q|O){if(Q){if(_)Q=0;else break;while(1){oa=u+(Q|1)|0;a[oa>>0]=0;a[oa+1>>0]=0;a[oa+2>>0]=0;a[oa+3>>0]=0;Q=Q+4|0;if((Q|0)>=(Z|0))break b}}if(!_)break;_=$(d[u+Z>>0]|0,16843009)|0;X=(-1<>2]|0;Z=Z+ -1|0;do{oa=c[s+13084>>2]|0;oa=($((Z+ -3<>oa,K)|0)+(X>>oa)|0;aa=u+(Z+ -2)|0;if(!(a[(c[Q+16>>2]|0)+(oa*12|0)+10>>0]|0))_=$(d[aa>>0]|0,16843009)|0;else{a[aa>>0]=_;a[aa+1>>0]=_>>8;a[aa+2>>0]=_>>16;a[aa+3>>0]=_>>24}Z=Z+ -4|0}while((Z|0)>-1)}else{Q=(-1<>2]|0;ca=Q>>ba;if(_){aa=$(d[u+Z>>0]|0,16843009)|0;_=c[b+3508>>2]|0;Z=Z+ -1|0;do{oa=($((Z+ -3<>ba,K)|0)+ca|0;ca=u+(Z+ -2)|0;if(!(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0))aa=$(d[ca>>0]|0,16843009)|0;else{a[ca>>0]=aa;a[ca+1>>0]=aa>>8;a[ca+2>>0]=aa>>16;a[ca+3>>0]=aa>>24;ba=c[X>>2]|0}Z=Z+ -4|0;ca=Q>>ba}while((Z|0)>-1)}else _=c[b+3508>>2]|0;oa=($((-1<>ba,K)|0)+ca|0;if(!(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0))break;a[u>>0]=a[v>>0]|0}while(0);Q=a[u>>0]|0;a[y>>0]=Q;if(!((Y|0)>0&(O^1)))break;O=$(Q&255,16843009)|0;M=(-1<>2]|0;f=0;do{oa=c[s+13084>>2]|0;oa=($(M>>oa,K)|0)+((f<>oa)|0;if(!(a[(c[b+16>>2]|0)+(oa*12|0)+10>>0]|0))O=$(d[y+((f|3)+1)>>0]|0,16843009)|0;else{oa=y+(f|1)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24}f=f+4|0}while((f|0)<(Y|0))}while(0);c:do if(!W){if(V){J=$(d[u+k>>0]|0,16843009)|0;if((k|0)<=0){J=148;break}K=k+1|0;L=0;while(1){oa=u+(K+L)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;L=L+4|0;if((L|0)>=(k|0)){J=148;break c}}}if(T){J=$(d[u>>0]|0,16843009)|0;K=k<<1;if((k|0)>0)I=0;else{J=151;break}while(1){oa=u+(I|1)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;I=I+4|0;if((I|0)>=(K|0)){J=151;break c}}}if(U){J=a[z>>0]|0;a[u>>0]=J;J=$(J&255,16843009)|0;I=k<<1;if((k|0)>0)K=0;else{J=153;break}while(1){oa=u+(K|1)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;K=K+4|0;if((K|0)>=(I|0)){J=153;break c}}}if(!N){a[u>>0]=-128;J=k<<1;L=(k|0)>0;if(L)K=0;else{J=148;break}do{oa=y+(K|1)|0;a[oa>>0]=-2139062144;a[oa+1>>0]=-2139062144>>8;a[oa+2>>0]=-2139062144>>16;a[oa+3>>0]=-2139062144>>24;K=K+4|0}while((K|0)<(J|0));if(L)K=0;else{J=148;break}while(1){oa=u+(K|1)|0;a[oa>>0]=-2139062144;a[oa+1>>0]=-2139062144>>8;a[oa+2>>0]=-2139062144>>16;a[oa+3>>0]=-2139062144>>24;K=K+4|0;if((K|0)>=(J|0)){J=148;break c}}}I=y+(k+1)|0;L=a[I>>0]|0;K=$(L&255,16843009)|0;H=(k|0)>0;if(H)J=0;else{a[u>>0]=L;break}do{oa=y+(J|1)|0;a[oa>>0]=K;a[oa+1>>0]=K>>8;a[oa+2>>0]=K>>16;a[oa+3>>0]=K>>24;J=J+4|0}while((J|0)<(k|0));I=a[I>>0]|0;a[u>>0]=I;I=$(I&255,16843009)|0;J=k<<1;if(H){H=0;do{oa=u+(H|1)|0;a[oa>>0]=I;a[oa+1>>0]=I>>8;a[oa+2>>0]=I>>16;a[oa+3>>0]=I>>24;H=H+4|0}while((H|0)<(J|0));J=156}else J=156}else J=148;while(0);if((J|0)==148)if((R|0)==0?(I=$(d[u+(k+1)>>0]|0,16843009)|0,(k|0)>0):0){J=0;do{oa=u+(J|1)|0;a[oa>>0]=I;a[oa+1>>0]=I>>8;a[oa+2>>0]=I>>16;a[oa+3>>0]=I>>24;J=J+4|0}while((J|0)<(k|0));J=151}else J=151;if((J|0)==151)if(!S){a[u>>0]=a[v>>0]|0;J=153}else J=153;if((J|0)==153)if((P|0)==0?(H=$(d[u>>0]|0,16843009)|0,(k|0)>0):0){I=0;do{oa=y+(I|1)|0;a[oa>>0]=H;a[oa+1>>0]=H>>8;a[oa+2>>0]=H>>16;a[oa+3>>0]=H>>24;I=I+4|0}while((I|0)<(k|0));J=156}else J=156;if(((J|0)==156?!N:0)?(G=$(d[y+k>>0]|0,16843009)|0,(k|0)>0):0){I=k+1|0;H=0;do{oa=y+(I+H)|0;a[oa>>0]=G;a[oa+1>>0]=G>>8;a[oa+2>>0]=G>>16;a[oa+3>>0]=G>>24;H=H+4|0}while((H|0)<(k|0))}G=a[u>>0]|0;a[y>>0]=G;d:do if(!(c[s+13112>>2]|0)){if(p){if((q|0)==1|(k|0)==4){t=z;break}}else if(((q|0)==1?1:(c[s+4>>2]|0)!=3)|(k|0)==4){t=z;break}oa=q+ -26|0;oa=(oa|0)>-1?oa:26-q|0;na=q+ -10|0;na=(na|0)>-1?na:10-q|0;if((((oa|0)>(na|0)?na:oa)|0)>(c[1664+(g+ -3<<2)>>2]|0)){if((p&(a[s+13061>>0]|0)!=0&(g|0)==5?(E=G&255,F=a[y+64>>0]|0,D=F&255,oa=D+E-(d[y+32>>0]<<1)|0,(((oa|0)>-1?oa:0-oa|0)|0)<8):0)?(B=u+64|0,C=a[B>>0]|0,oa=(C&255)+E-(d[u+32>>0]<<1)|0,(((oa|0)>-1?oa:0-oa|0)|0)<8):0){a[w>>0]=G;a[w+64>>0]=F;x=0;do{oa=x;x=x+1|0;a[w+x>>0]=(($(E,63-oa|0)|0)+32+($(D,x)|0)|0)>>>6}while((x|0)!=63);x=0;while(1){w=x+1|0;a[u+w>>0]=(($(G&255,63-x|0)|0)+32+($(C&255,w)|0)|0)>>>6;if((w|0)==63)break d;G=a[u>>0]|0;C=a[B>>0]|0;x=w}}B=k<<1;F=a[u+B>>0]|0;a[A+B>>0]=F;C=a[y+B>>0]|0;a[w+B>>0]=C;B=B+ -2|0;D=(B|0)>-1;if(D){E=B;while(1){oa=E+1|0;na=F;F=a[u+oa>>0]|0;a[A+oa>>0]=((na&255)+2+((F&255)<<1)+(d[u+E>>0]|0)|0)>>>2;if((E|0)<=0)break;else E=E+ -1|0}}oa=((d[v>>0]|0)+2+((G&255)<<1)+(d[z>>0]|0)|0)>>>2&255;a[A>>0]=oa;a[w>>0]=oa;if(D)while(1){oa=B+1|0;na=C;C=a[y+oa>>0]|0;a[w+oa>>0]=((na&255)+2+((C&255)<<1)+(d[y+B>>0]|0)|0)>>>2;if((B|0)<=0){v=x;break}else B=B+ -1|0}else v=x}else t=z}else t=z;while(0);if((q|0)==1){if((k|0)>0){q=k;h=0;do{q=(d[v+h>>0]|0)+q+(d[t+h>>0]|0)|0;h=h+1|0}while((h|0)!=(k|0));q=q>>g+1;h=$(q,16843009)|0;r=0;do{s=($(r,j)|0)+m|0;g=0;do{oa=n+(s+g)|0;a[oa>>0]=h;a[oa+1>>0]=h>>8;a[oa+2>>0]=h>>16;a[oa+3>>0]=h>>24;g=g+4|0}while((g|0)<(k|0));r=r+1|0}while((r|0)!=(k|0))}else q=k>>g+1;if(!(p&(k|0)<32)){i=l;return}a[o>>0]=((q<<1)+2+(d[v>>0]|0)+(d[t>>0]|0)|0)>>>2;if((k|0)<=1){i=l;return}o=(q*3|0)+2|0;p=1;do{a[n+(p+m)>>0]=((d[t+p>>0]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));p=1;do{a[n+(($(p,j)|0)+m)>>0]=((d[v+p>>0]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(k|0));i=l;return}else if(!q){nc(o,t,v,j,g);i=l;return}else{if(!(c[s+13104>>2]|0))m=0;else m=(a[r+31256>>0]|0)!=0;oc(o,t,v,j,h,q,k,m&1);i=l;return}}function nc(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;m=i;j=1<>0]|0,l-r|0)|0;s=r;r=r+1|0;u=$(d[h>>0]|0,r)|0;t=$(d[c+s>>0]|0,p)|0;a[b+(s+q)>>0]=v+j+u+t+($(d[k>>0]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function oc(c,e,f,g,h,j,k,l){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;i=i+112|0;o=m;n=a[1680+(j+ -2)>>0]|0;p=o+k|0;q=($(n,k)|0)>>5;if((j|0)>17){s=e+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{u=e+(s+ -1)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=o+(s+k)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1720+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[f+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;o=(k|0)>0;if(o){q=0;do{u=q;q=q+1|0;s=$(q,n)|0;r=s>>5;s=s&31;if(!s){r=r+1|0;s=$(u,g)|0;t=0;do{u=p+(r+t)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=c+(t+s)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;t=t+4|0}while((t|0)<(k|0))}else{t=32-s|0;v=$(u,g)|0;u=0;do{w=u+r|0;x=$(d[p+(w+1)>>0]|0,t)|0;a[c+(u+v)>>0]=(x+16+($(d[p+(w+2)>>0]|0,s)|0)|0)>>>5;w=u|1;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|2;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|3;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;u=u+4|0}while((u|0)<(k|0))}}while((q|0)!=(k|0))}if(!((j|0)==26&(h|0)==0&(k|0)<32&(l|0)==0&o)){i=m;return}j=f+ -1|0;n=0;do{h=((d[f+n>>0]|0)-(d[j>>0]|0)>>1)+(d[e>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+($(n,g)|0)>>0]=h;n=n+1|0}while((n|0)!=(k|0));i=m;return}s=f+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{x=f+(s+ -1)|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=o+(s+k)|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1720+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[e+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;q=(k|0)>0;if(q){o=0;do{r=o;o=o+1|0;t=$(o,n)|0;u=t>>5;t=t&31;if(!t){s=u+1|0;t=0;do{a[c+(($(t,g)|0)+r)>>0]=a[p+(s+t)>>0]|0;t=t+1|0}while((t|0)!=(k|0))}else{s=32-t|0;v=0;do{y=v+u|0;x=$(d[p+(y+1)>>0]|0,s)|0;a[c+(($(v,g)|0)+r)>>0]=(x+16+($(d[p+(y+2)>>0]|0,t)|0)|0)>>>5;v=v+1|0}while((v|0)!=(k|0))}}while((o|0)!=(k|0))}if(!((j|0)==10&(h|0)==0&(k|0)<32&(l|0)==0&q)){i=m;return}g=e+ -1|0;n=0;do{j=((d[e+n>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(j>>>0>255)j=0-j>>31;a[c+n>>0]=j;j=n|1;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|2;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|3;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;n=n+4|0}while((n|0)<(k|0));i=m;return}function pc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+70|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Qd(c[b+4>>2]|0,e+4|0);ue(e+56|0);c[e+16>>2]=0;ue(e+64|0);ue(e+60|0);c[e+24>>2]=0;c[e+20>>2]=0;c[e+36>>2]=0;i=g;return}function qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+200>>2]|0;f=c[g+13080>>2]|0;e=($(e>>f,c[g+13128>>2]|0)|0)+(d>>f)|0;return c[(c[b+24>>2]|0)+(c[(c[(c[a+204>>2]|0)+1668>>2]|0)+(e<<2)>>2]<<2)>>2]|0}function rc(a){a=a|0;var b=0,c=0;b=i;c=0;do{pc(a,a+(c*72|0)+3512|0,6);c=c+1|0}while((c|0)!=32);i=b;return}function sc(a){a=a|0;var b=0,c=0;b=i;c=0;do{pc(a,a+(c*72|0)+3512|0,-1);c=c+1|0}while((c|0)!=32);i=b;return}function tc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=d+7616|0;k=0;do{if(((c[(c[d+(k*72|0)+3512>>2]|0)+304>>2]|0)!=0?(b[d+(k*72|0)+3580>>1]|0)==(b[h>>1]|0):0)?(c[d+(k*72|0)+3544>>2]|0)==(f|0):0){e=-1094995529;j=8;break}k=k+1|0}while(k>>>0<32);if((j|0)==8){i=g;return e|0}j=uc(d)|0;if(!j){k=-12;i=g;return k|0}c[e>>2]=c[j>>2];c[d+3508>>2]=j;a[j+70>>0]=(a[d+2438>>0]|0)==0?2:3;c[j+32>>2]=f;b[j+68>>1]=b[h>>1]|0;k=j+40|0;j=(c[d+200>>2]|0)+20|0;c[k+0>>2]=c[j+0>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];k=0;i=g;return k|0}function uc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;f=0;while(1){d=a+(f*72|0)+3512|0;j=f+1|0;if(!(c[(c[d>>2]|0)+304>>2]|0))break;if(j>>>0<32)f=j;else{a=0;e=13;break}}if((e|0)==13){i=b;return a|0}if((Pd(c[a+4>>2]|0,a+(f*72|0)+3516|0,1)|0)<0){j=0;i=b;return j|0}k=c[a+200>>2]|0;j=a+(f*72|0)+3540|0;c[j>>2]=$(c[k+13132>>2]|0,c[k+13128>>2]|0)|0;k=se((c[a+7660>>2]|0)*392|0)|0;e=a+(f*72|0)+3576|0;c[e>>2]=k;if(((k|0)!=0?(g=ye(c[a+1428>>2]|0)|0,c[a+(f*72|0)+3568>>2]=g,(g|0)!=0):0)?(c[a+(f*72|0)+3528>>2]=c[g+4>>2],h=ye(c[a+1432>>2]|0)|0,c[a+(f*72|0)+3572>>2]=h,(h|0)!=0):0){h=c[h+4>>2]|0;f=a+(f*72|0)+3536|0;c[f>>2]=h;g=c[j>>2]|0;a:do if((g|0)>0){j=0;while(1){c[h+(j<<2)>>2]=c[(c[e>>2]|0)+4>>2];j=j+1|0;if((j|0)>=(g|0))break a;h=c[f>>2]|0}}while(0);j=a+7772|0;k=c[d>>2]|0;c[k+244>>2]=(c[j>>2]|0)==1&1;c[k+240>>2]=((c[j>>2]|0)+ -1|0)>>>0<2&1;k=d;i=b;return k|0}pc(a,d,-1);k=0;i=b;return k|0}function vc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;k=d+3034|0;j=d+5816|0;h=d+7618|0;f=(f|0)==0;n=d+7616|0;m=d+200|0;o=0;while(1){if((a[k>>0]|0)==1){q=0;do{p=d+(q*72|0)+3512|0;if(((a[d+(q*72|0)+3582>>0]&8)==0?(c[d+(q*72|0)+3544>>2]|0)!=(c[j>>2]|0):0)?(b[d+(q*72|0)+3580>>1]|0)==(b[h>>1]|0):0)pc(d,p,1);q=q+1|0}while((q|0)!=32);p=0;r=2147483647;q=0}else{p=0;r=2147483647;q=0}do{if((a[d+(p*72|0)+3582>>0]&1)!=0?(b[d+(p*72|0)+3580>>1]|0)==(b[h>>1]|0):0){s=c[d+(p*72|0)+3544>>2]|0;t=(s|0)<(r|0);o=t?p:o;r=t?s:r;q=q+1|0}p=p+1|0}while((p|0)!=32);if(((f?(b[h>>1]|0)==(b[n>>1]|0):0)?(l=c[m>>2]|0,(l|0)!=0):0)?(q|0)<=(c[l+(((c[l+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=23;break}if(q){h=17;break}p=b[h>>1]|0;if(p<<16>>16==(b[n>>1]|0)){d=0;h=23;break}b[h>>1]=(p&65535)+1&255}if((h|0)==17){h=d+(o*72|0)+3512|0;e=Fe(e,c[h>>2]|0)|0;if(!(a[d+(o*72|0)+3582>>0]&8))pc(d,h,1);else pc(d,h,9);t=(e|0)<0?e:1;i=g;return t|0}else if((h|0)==23){i=g;return d|0}return 0}function wc(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;f=e+7618|0;h=e+5816|0;k=0;j=0;do{if((a[e+(j*72|0)+3582>>0]|0)!=0?(b[e+(j*72|0)+3580>>1]|0)==(b[f>>1]|0):0)k=((c[e+(j*72|0)+3544>>2]|0)!=(c[h>>2]|0)&1)+k|0;j=j+1|0}while((j|0)!=32);j=c[e+200>>2]|0;if(!j){i=g;return}if((k|0)<(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+76>>2]|0)){i=g;return}else{k=0;j=2147483647}do{l=a[e+(k*72|0)+3582>>0]|0;if(l<<24>>24!=0?(b[e+(k*72|0)+3580>>1]|0)==(b[f>>1]|0):0){m=c[e+(k*72|0)+3544>>2]|0;j=(l<<24>>24==1?(m|0)!=(c[h>>2]|0):0)&(m|0)<(j|0)?m:j}k=k+1|0}while((k|0)!=32);l=0;do{k=e+(l*72|0)+3582|0;h=d[k>>0]|0;if(((h&1|0)!=0?(b[e+(l*72|0)+3580>>1]|0)==(b[f>>1]|0):0)?(c[e+(l*72|0)+3544>>2]|0)<=(j|0):0)a[k>>0]=h|8;l=l+1|0}while((l|0)!=32);i=g;return}function xc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=i;i=i+208|0;e=d+12|0;g=d;l=(c[b+2428>>2]|0)==0;f=b+3508|0;k=c[f>>2]|0;o=c[k+28>>2]|0;j=c[(c[(c[b+204>>2]|0)+1668>>2]|0)+(c[b+2420>>2]<<2)>>2]|0;n=c[b+5824>>2]|0;m=k+64|0;r=c[m>>2]|0;if(n>>>0>=(((c[r+8>>2]|0)>>>0)/392|0)>>>0){A=-1094995529;i=d;return A|0}p=k+24|0;if((j|0)<(o|0)?(c[(c[p>>2]|0)+(j<<2)>>2]=(c[r+4>>2]|0)+(n*392|0),q=j+1|0,(q|0)!=(o|0)):0)do{c[(c[p>>2]|0)+(q<<2)>>2]=(c[(c[m>>2]|0)+4>>2]|0)+(n*392|0);q=q+1|0}while((q|0)!=(o|0));c[k+20>>2]=c[(c[p>>2]|0)+(j<<2)>>2];if(((c[b+1824>>2]|0)+(c[b+1628>>2]|0)|0)==(0-(c[b+2216>>2]|0)|0)){A=-1094995529;i=d;return A|0}q=l?2:1;n=g+4|0;m=g+8|0;o=e+192|0;r=b+3051|0;s=b+3052|0;k=0;l=0;a:while(1){jf(e|0,0,196)|0;j=c[(c[f>>2]|0)+20>>2]|0;u=j+(k*196|0)|0;p=l<<24>>24!=0&1;c[g>>2]=p;c[n>>2]=p^1;c[m>>2]=3;p=b+(k<<2)+3036|0;t=c[p>>2]|0;if(!t)A=0;else{A=0;v=0;while(1){y=c[g+(v<<2)>>2]|0;x=c[b+(y*196|0)+1628>>2]|0;b:do if((x|0)>0){w=(v|0)==2&1;z=0;do{if((A|0)>=16)break b;c[e+(A<<2)+64>>2]=c[b+(y*196|0)+(z<<2)+1500>>2];c[e+(c[o>>2]<<2)>>2]=c[b+(y*196|0)+(z<<2)+1436>>2];c[e+(c[o>>2]<<2)+128>>2]=w;A=(c[o>>2]|0)+1|0;c[o>>2]=A;z=z+1|0}while((z|0)<(x|0))}while(0);v=v+1|0;if((v|0)!=3)continue;if(A>>>0>>0)v=0;else break}}if(a[b+k+3032>>0]|0){if(t){t=j+(k*196|0)+192|0;v=0;do{u=c[b+(k<<7)+(v<<2)+2776>>2]|0;if((u|0)>=(A|0)){e=-1094995529;b=24;break a}c[j+(k*196|0)+(v<<2)+64>>2]=c[e+(u<<2)+64>>2];c[j+(k*196|0)+(v<<2)>>2]=c[e+(u<<2)>>2];c[j+(k*196|0)+(v<<2)+128>>2]=c[e+(u<<2)+128>>2];c[t>>2]=(c[t>>2]|0)+1;v=v+1|0}while(v>>>0<(c[p>>2]|0)>>>0)}}else{mf(u|0,e|0,196)|0;A=j+(k*196|0)+192|0;z=c[A>>2]|0;y=c[p>>2]|0;c[A>>2]=z>>>0>y>>>0?y:z}if((a[r>>0]|0)==l<<24>>24?(h=c[s>>2]|0,h>>>0<(c[j+(k*196|0)+192>>2]|0)>>>0):0)c[(c[f>>2]|0)+36>>2]=c[j+(k*196|0)+(h<<2)>>2];l=l+1<<24>>24;k=l&255;if(k>>>0>=q>>>0){e=0;b=24;break}}if((b|0)==24){i=d;return e|0}return 0}function yc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[b+2608>>2]|0;if(!f){c[b+1824>>2]=0;c[b+1628>>2]=0;k=0;i=e;return k|0}h=b+3508|0;g=0;do{if((b+(g*72|0)+3512|0)!=(c[h>>2]|0)){k=b+(g*72|0)+3582|0;a[k>>0]=d[k>>0]&249}g=g+1|0}while((g|0)!=32);c[b+1628>>2]=0;c[b+1824>>2]=0;c[b+2020>>2]=0;c[b+2216>>2]=0;c[b+2412>>2]=0;j=f+4|0;a:do if((c[j>>2]|0)>0){g=b+5816|0;h=0;while(1){if(!(a[f+h+136>>0]|0))k=2;else k=h>>>0>=(c[f>>2]|0)>>>0&1;k=zc(b,b+(k*196|0)+1436|0,(c[f+(h<<2)+8>>2]|0)+(c[g>>2]|0)|0,2)|0;h=h+1|0;if((k|0)<0)break;if((h|0)>=(c[j>>2]|0))break a}i=e;return k|0}while(0);f=b+2772|0;b:do if(!(a[f>>0]|0))f=0;else{g=0;while(1){k=zc(b,b+(((a[b+g+2740>>0]|0)!=0?3:4)*196|0)+1436|0,c[b+(g<<2)+2612>>2]|0,4)|0;g=g+1|0;if((k|0)<0)break;if((g|0)>=(d[f>>0]|0)){f=0;break b}}i=e;return k|0}while(0);do{pc(b,b+(f*72|0)+3512|0,0);f=f+1|0}while((f|0)!=32);k=0;i=e;return k|0}function zc(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=e+200|0;o=(1<>2]|0)+64>>2])+ -1|0;l=e+7616|0;q=0;while(1){m=e+(q*72|0)+3512|0;if(((c[(c[m>>2]|0)+304>>2]|0)!=0?(b[e+(q*72|0)+3580>>1]|0)==(b[l>>1]|0):0)?(c[e+(q*72|0)+3544>>2]&o|0)==(g|0):0)break;q=q+1|0;if(q>>>0>=32){q=0;p=6;break}}a:do if((p|0)==6)while(1){m=e+(q*72|0)+3512|0;if((c[(c[m>>2]|0)+304>>2]|0)!=0?(b[e+(q*72|0)+3580>>1]|0)==(b[l>>1]|0):0){p=c[e+(q*72|0)+3544>>2]|0;if((p|0)==(g|0))break a;if((p&o|0)==(g|0))break a}q=q+1|0;if(q>>>0>=32){m=0;break}else p=6}while(0);if((m|0)==(c[e+3508>>2]|0)){q=-1094995529;i=j;return q|0}if(!m){m=uc(e)|0;if(!m){q=-12;i=j;return q|0}p=c[k>>2]|0;o=c[m>>2]|0;if(!(c[p+56>>2]|0)){o=c[o+304>>2]|0;if((o|0)!=0?(jf(c[o+4>>2]|0,1<<(c[p+52>>2]|0)+ -1&255|0,c[o+8>>2]|0)|0,n=c[(c[m>>2]|0)+308>>2]|0,(n|0)!=0):0){o=1;do{o=o+1|0;jf(c[n+4>>2]|0,1<<(c[(c[k>>2]|0)+52>>2]|0)+ -1&255|0,c[n+8>>2]|0)|0;n=c[(c[m>>2]|0)+(o<<2)+304>>2]|0}while((n|0)!=0)}}else if(c[o>>2]|0){n=0;do{if((c[p+13124>>2]>>c[p+(n<<2)+13180>>2]|0)>0){o=0;do{if((c[p+13120>>2]>>c[p+(n<<2)+13168>>2]|0)>0){q=p;p=0;do{r=1<<(c[q+52>>2]|0)+ -1&65535;q=c[m>>2]|0;q=(c[q+(n<<2)>>2]|0)+(($(c[q+(n<<2)+32>>2]|0,o)|0)+(p<<1))|0;a[q>>0]=r;a[q+1>>0]=r>>8;p=p+1|0;q=c[k>>2]|0}while((p|0)<(c[q+13120>>2]>>c[q+(n<<2)+13168>>2]|0));p=q}o=o+1|0}while((o|0)<(c[p+13124>>2]>>c[p+(n<<2)+13180>>2]|0));o=c[m>>2]|0}n=n+1|0}while((c[o+(n<<2)>>2]|0)!=0)}c[m+32>>2]=g;b[m+68>>1]=b[l>>1]|0;a[m+70>>0]=0}r=f+192|0;c[f+(c[r>>2]<<2)+64>>2]=c[m+32>>2];c[f+(c[r>>2]<<2)>>2]=m;c[r>>2]=(c[r>>2]|0)+1;r=m+70|0;a[r>>0]=d[r>>0]&249|h;r=0;i=j;return r|0}function Ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=1<>2]|0)+64>>2];f=c[a+5820>>2]|0;g=(f|0)%(e|0)|0;f=f-g|0;if((g|0)>(b|0)?(g-b|0)>=((e|0)/2|0|0):0)f=f+e|0;else if((g|0)<(b|0))f=f-((b-g|0)>((e|0)/2|0|0)?e:0)|0;i=d;return(((c[a+3500>>2]|0)+ -16|0)>>>0<3?0:f)+b|0}function Bc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=c[b+2608>>2]|0;if(e){j=c[e>>2]|0;if(!j){g=0;h=0}else{g=j>>>0>1;h=0;f=0;do{f=((a[e+h+136>>0]|0)!=0&1)+f|0;h=h+1|0}while(h>>>0>>0);g=g?j:1;h=f}f=c[e+4>>2]|0;if((g|0)<(f|0))do{h=((a[e+g+136>>0]|0)!=0&1)+h|0;g=g+1|0}while((g|0)<(f|0))}else h=0;e=a[b+2772>>0]|0;if(!(e<<24>>24)){j=h;i=d;return j|0}f=e&255;e=0;do{h=((a[b+e+2740>>0]|0)!=0&1)+h|0;e=e+1|0}while((e|0)<(f|0));i=d;return h|0}function Cc(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1752]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1752+(c<<5)+d>>0]=$(a[2776+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function Dc(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;c[a+236>>2]=1;c[a+252>>2]=1;c[a+268>>2]=1;c[a+284>>2]=1;c[a+300>>2]=1;c[a+316>>2]=1;c[a+332>>2]=1;c[a+348>>2]=1;c[a+364>>2]=1;c[a+380>>2]=1;c[a+240>>2]=2;c[a+256>>2]=2;c[a+272>>2]=2;c[a+288>>2]=2;c[a+304>>2]=2;c[a+320>>2]=2;c[a+336>>2]=2;c[a+352>>2]=2;c[a+368>>2]=2;c[a+384>>2]=2;c[a+244>>2]=3;c[a+260>>2]=3;c[a+276>>2]=3;c[a+292>>2]=3;c[a+308>>2]=3;c[a+324>>2]=3;c[a+340>>2]=3;c[a+356>>2]=3;c[a+372>>2]=3;c[a+388>>2]=3;c[a+248>>2]=4;c[a+264>>2]=4;c[a+280>>2]=4;c[a+296>>2]=4;c[a+312>>2]=4;c[a+328>>2]=4;c[a+344>>2]=4;c[a+360>>2]=4;c[a+376>>2]=4;c[a+392>>2]=4;c[a+396>>2]=1;c[a+412>>2]=1;c[a+428>>2]=1;c[a+444>>2]=1;c[a+460>>2]=1;c[a+476>>2]=1;c[a+492>>2]=1;c[a+508>>2]=1;c[a+524>>2]=1;c[a+540>>2]=1;c[a+400>>2]=2;c[a+416>>2]=2;c[a+432>>2]=2;c[a+448>>2]=2;c[a+464>>2]=2;c[a+480>>2]=2;c[a+496>>2]=2;c[a+512>>2]=2;c[a+528>>2]=2;c[a+544>>2]=2;c[a+404>>2]=3;c[a+420>>2]=3;c[a+436>>2]=3;c[a+452>>2]=3;c[a+468>>2]=3;c[a+484>>2]=3;c[a+500>>2]=3;c[a+516>>2]=3;c[a+532>>2]=3;c[a+548>>2]=3;c[a+408>>2]=4;c[a+424>>2]=4;c[a+440>>2]=4;c[a+456>>2]=4;c[a+472>>2]=4;c[a+488>>2]=4;c[a+504>>2]=4;c[a+520>>2]=4;c[a+536>>2]=4;c[a+552>>2]=4;c[a+1036>>2]=1;c[a+1052>>2]=1;c[a+1068>>2]=1;c[a+1084>>2]=1;c[a+1100>>2]=1;c[a+1116>>2]=1;c[a+1132>>2]=1;c[a+1148>>2]=1;c[a+1164>>2]=1;c[a+1180>>2]=1;c[a+1040>>2]=5;c[a+1056>>2]=5;c[a+1072>>2]=5;c[a+1088>>2]=5;c[a+1104>>2]=5;c[a+1120>>2]=5;c[a+1136>>2]=5;c[a+1152>>2]=5;c[a+1168>>2]=5;c[a+1184>>2]=5;c[a+1044>>2]=6;c[a+1060>>2]=6;c[a+1076>>2]=6;c[a+1092>>2]=6;c[a+1108>>2]=6;c[a+1124>>2]=6;c[a+1140>>2]=6;c[a+1156>>2]=6;c[a+1172>>2]=6;c[a+1188>>2]=6;c[a+1048>>2]=7;c[a+1064>>2]=7;c[a+1080>>2]=7;c[a+1096>>2]=7;c[a+1112>>2]=7;c[a+1128>>2]=7;c[a+1144>>2]=7;c[a+1160>>2]=7;c[a+1176>>2]=7;c[a+1192>>2]=7;c[a+1196>>2]=1;c[a+1212>>2]=1;c[a+1228>>2]=1;c[a+1244>>2]=1;c[a+1260>>2]=1;c[a+1276>>2]=1;c[a+1292>>2]=1;c[a+1308>>2]=1;c[a+1324>>2]=1;c[a+1340>>2]=1;c[a+1200>>2]=5;c[a+1216>>2]=5;c[a+1232>>2]=5;c[a+1248>>2]=5;c[a+1264>>2]=5;c[a+1280>>2]=5;c[a+1296>>2]=5;c[a+1312>>2]=5;c[a+1328>>2]=5;c[a+1344>>2]=5;c[a+1204>>2]=6;c[a+1220>>2]=6;c[a+1236>>2]=6;c[a+1252>>2]=6;c[a+1268>>2]=6;c[a+1284>>2]=6;c[a+1300>>2]=6;c[a+1316>>2]=6;c[a+1332>>2]=6;c[a+1348>>2]=6;c[a+1208>>2]=7;c[a+1224>>2]=7;c[a+1240>>2]=7;c[a+1256>>2]=7;c[a+1272>>2]=7;c[a+1288>>2]=7;c[a+1304>>2]=7;c[a+1320>>2]=7;c[a+1336>>2]=7;c[a+1352>>2]=7;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function Ec(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;if((e|0)<=0){i=h;return}k=(d|0)>0;j=8-g|0;m=0;while(1){if(k){l=0;do{a[b+l>>0]=(Xd(f,g)|0)<>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==4)break;else j=j+2|0}h=h+1|0;if((h|0)==4)break;else{e=e+8|0;c=c+f|0}}i=g;return}function Gc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==8)break;else j=j+2|0}h=h+1|0;if((h|0)==8)break;else{e=e+16|0;c=c+f|0}}i=g;return}function Hc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==16)break;else j=j+2|0}h=h+1|0;if((h|0)==16)break;else{e=e+32|0;c=c+f|0}}i=g;return}function Ic(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==32)break;else j=j+2|0}h=h+1|0;if((h|0)==32)break;else{e=e+64|0;c=c+f|0}}i=g;return}function Jc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c=c<<16>>16;e=7-c|0;c=1<0){f=1<0)g=0;else{i=d;return}while(1){h=a;j=0;while(1){b[h>>1]=(b[h>>1]|0)+f>>e;j=j+1|0;if((j|0)==(c|0))break;else h=h+2|0}g=g+1|0;if((g|0)==(c|0))break;else a=a+(c<<1)|0}i=d;return}if((c|0)<=0){i=d;return}e=0-e|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function Lc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;d=a;while(1){p=b[d>>1]|0;m=d+16|0;n=b[m>>1]|0;g=n+p|0;f=d+24|0;o=b[f>>1]|0;l=o+n|0;j=p-o|0;h=d+8|0;k=(b[h>>1]|0)*74|0;o=((p-n+o|0)*74|0)+64|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[m>>1]=n;m=(g*29|0)+64+(l*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[d>>1]=n;l=($(l,-29)|0)+64+(j*55|0)+k|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[h>>1]=m;g=(g*55|0)+64+(j*29|0)-k|0;h=g>>7;if((h+32768|0)>>>0>65535)h=g>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4){d=0;break}else d=d+2|0}while(1){p=b[a>>1]|0;l=a+4|0;m=b[l>>1]|0;g=m+p|0;e=a+6|0;n=b[e>>1]|0;k=n+m|0;h=p-n|0;f=a+2|0;j=(b[f>>1]|0)*74|0;n=((p-m+n|0)*74|0)+2048|0;m=n>>12;if((m+32768|0)>>>0>65535)m=n>>31^32767;b[l>>1]=m;l=(g*29|0)+2048+(k*55|0)+j|0;m=l>>12;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[a>>1]=m;k=($(k,-29)|0)+2048+(h*55|0)+j|0;l=k>>12;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[f>>1]=l;f=(g*55|0)+2048+(h*29|0)-j|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[e>>1]=g;d=d+1|0;if((d|0)==4)break;else a=a+8|0}i=c;return}function Mc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;f=0;e=a;while(1){l=b[e>>1]<<6;j=e+16|0;k=b[j>>1]<<6;g=k+l|0;k=l-k|0;l=e+8|0;m=b[l>>1]|0;d=e+24|0;n=b[d>>1]|0;h=(n*36|0)+(m*83|0)|0;m=($(n,-83)|0)+(m*36|0)|0;n=g+64+h|0;o=n>>7;if((o+32768|0)>>>0>65535)o=n>>31^32767;b[e>>1]=o;o=k+64+m|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[l>>1]=n;l=k-m+64|0;k=l>>7;if((k+32768|0)>>>0>65535)k=l>>31^32767;b[j>>1]=k;h=g-h+64|0;g=h>>7;if((g+32768|0)>>>0>65535)g=h>>31^32767;b[d>>1]=g;f=f+1|0;if((f|0)==4){e=0;break}else e=e+2|0}while(1){k=b[a>>1]<<6;h=a+4|0;l=b[h>>1]<<6;g=l+k|0;l=k-l|0;k=a+2|0;j=b[k>>1]|0;d=a+6|0;m=b[d>>1]|0;f=(m*36|0)+(j*83|0)|0;j=($(m,-83)|0)+(j*36|0)|0;m=g+2048+f|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[a>>1]=n;m=l+2048+j|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[k>>1]=n;k=l-j+2048|0;j=k>>12;if((j+32768|0)>>>0>65535)j=k>>31^32767;b[h>>1]=j;f=g-f+2048|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[d>>1]=g;e=e+1|0;if((e|0)==4)break;else a=a+8|0}i=c;return}function Nc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;i=i+64|0;j=h+48|0;p=h+32|0;f=h+16|0;g=h;q=(e|0)>8;r=e+4|0;k=j+4|0;l=j+8|0;m=j+12|0;o=0;r=(r|0)>8?8:r;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(r|0)>1;s=0;do{if(w){t=p+(s<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[n+(u<<3<<1)>>1]|0,a[1752+(u<<2<<5)+s>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<(r|0));c[t>>2]=v}s=s+1|0}while((s|0)!=4);v=b[n>>1]<<6;u=b[n+64>>1]<<6;w=u+v|0;u=v-u|0;v=b[n+32>>1]|0;t=b[n+96>>1]|0;s=(t*36|0)+(v*83|0)|0;v=($(t,-83)|0)+(v*36|0)|0;t=s+w|0;c[j>>2]=t;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-s;s=0;while(1){u=c[p+(s<<2)>>2]|0;v=t+64+u|0;w=v>>7;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[n+(s<<3<<1)>>1]=w;t=t-u+64|0;u=t>>7;if((u+32768|0)>>>0>65535)u=t>>31^32767;b[n+(7-s<<3<<1)>>1]=u;s=s+1|0;if((s|0)==4)break;t=c[j+(s<<2)>>2]|0}if((r|0)<8)r=(o&3|0)==0&(o|0)!=0?r+ -4|0:r;o=o+1|0;if((o|0)==8)break;else n=n+2|0}j=q?8:e;n=(j|0)>1;k=f+4|0;l=f+8|0;m=f+12|0;o=0;while(1){c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;e=0;do{if(n){r=g+(e<<2)|0;p=c[r>>2]|0;q=1;do{p=($(b[d+(q<<1)>>1]|0,a[1752+(q<<2<<5)+e>>0]|0)|0)+p|0;q=q+2|0}while((q|0)<(j|0));c[r>>2]=p}e=e+1|0}while((e|0)!=4);v=b[d>>1]<<6;u=b[d+8>>1]<<6;w=u+v|0;u=v-u|0;v=b[d+4>>1]|0;p=b[d+12>>1]|0;e=(p*36|0)+(v*83|0)|0;v=($(p,-83)|0)+(v*36|0)|0;p=e+w|0;c[f>>2]=p;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-e;e=0;while(1){q=c[g+(e<<2)>>2]|0;r=p+2048+q|0;s=r>>12;if((s+32768|0)>>>0>65535)s=r>>31^32767;b[d+(e<<1)>>1]=s;p=p-q+2048|0;q=p>>12;if((q+32768|0)>>>0>65535)q=p>>31^32767;b[d+(7-e<<1)>>1]=q;e=e+1|0;if((e|0)==4)break;p=c[f+(e<<2)>>2]|0}o=o+1|0;if((o|0)==8)break;else d=d+16|0}i=h;return}function Oc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=i;i=i+192|0;t=j+160|0;u=j+128|0;m=j+112|0;l=j+96|0;g=j+64|0;h=j+32|0;f=j+16|0;k=j;s=(e|0)>16;v=e+4|0;n=m+4|0;o=m+8|0;p=m+12|0;r=0;v=(v|0)>16?16:v;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(v|0)>1;z=0;do{if(A){y=u+(z<<2)|0;w=c[y>>2]|0;x=1;do{w=($(b[q+(x<<4<<1)>>1]|0,a[1752+(x<<1<<5)+z>>0]|0)|0)+w|0;x=x+2|0}while((x|0)<(v|0));c[y>>2]=w}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;z=0;do{x=l+(z<<2)|0;w=c[x>>2]|0;y=1;do{w=($(b[q+(y<<5<<1)>>1]|0,a[1752+(y<<2<<5)+z>>0]|0)|0)+w|0;y=y+2|0}while((y|0)<8);c[x>>2]=w;z=z+1|0}while((z|0)!=4);z=b[q>>1]<<6;y=b[q+256>>1]<<6;A=y+z|0;y=z-y|0;z=b[q+128>>1]|0;w=b[q+384>>1]|0;x=(w*36|0)+(z*83|0)|0;z=($(w,-83)|0)+(z*36|0)|0;w=x+A|0;c[m>>2]=w;c[n>>2]=z+y;c[o>>2]=y-z;c[p>>2]=A-x;x=0;while(1){A=c[l+(x<<2)>>2]|0;c[t+(x<<2)>>2]=A+w;c[t+(7-x<<2)>>2]=w-A;x=x+1|0;if((x|0)==4){w=0;break}w=c[m+(x<<2)>>2]|0}do{x=c[t+(w<<2)>>2]|0;y=c[u+(w<<2)>>2]|0;A=x+64+y|0;z=A>>7;if((z+32768|0)>>>0>65535)z=A>>31^32767;b[q+(w<<4<<1)>>1]=z;x=x-y+64|0;y=x>>7;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[q+(15-w<<4<<1)>>1]=y;w=w+1|0}while((w|0)!=8);if((v|0)<16)v=(r&3|0)==0&(r|0)!=0?v+ -4|0:v;r=r+1|0;if((r|0)==16)break;else q=q+2|0}o=s?16:e;p=(o|0)>1;l=f+4|0;m=f+8|0;n=f+12|0;q=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;r=0;do{if(p){e=h+(r<<2)|0;t=c[e>>2]|0;s=1;do{t=($(b[d+(s<<1)>>1]|0,a[1752+(s<<1<<5)+r>>0]|0)|0)+t|0;s=s+2|0}while((s|0)<(o|0));c[e>>2]=t}r=r+1|0}while((r|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;t=0;do{r=k+(t<<2)|0;s=c[r>>2]|0;e=1;do{s=($(b[d+(e<<1<<1)>>1]|0,a[1752+(e<<2<<5)+t>>0]|0)|0)+s|0;e=e+2|0}while((e|0)<8);c[r>>2]=s;t=t+1|0}while((t|0)!=4);z=b[d>>1]<<6;y=b[d+16>>1]<<6;A=y+z|0;y=z-y|0;z=b[d+8>>1]|0;r=b[d+24>>1]|0;e=(r*36|0)+(z*83|0)|0;z=($(r,-83)|0)+(z*36|0)|0;r=e+A|0;c[f>>2]=r;c[l>>2]=z+y;c[m>>2]=y-z;c[n>>2]=A-e;e=0;while(1){A=c[k+(e<<2)>>2]|0;c[g+(e<<2)>>2]=A+r;c[g+(7-e<<2)>>2]=r-A;e=e+1|0;if((e|0)==4){r=0;break}r=c[f+(e<<2)>>2]|0}do{e=c[g+(r<<2)>>2]|0;s=c[h+(r<<2)>>2]|0;u=e+2048+s|0;t=u>>12;if((t+32768|0)>>>0>65535)t=u>>31^32767;b[d+(r<<1)>>1]=t;e=e-s+2048|0;s=e>>12;if((s+32768|0)>>>0>65535)s=e>>31^32767;b[d+(15-r<<1)>>1]=s;r=r+1|0}while((r|0)!=8);q=q+1|0;if((q|0)==16)break;else d=d+32|0}i=j;return}function Pc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;m=i;i=i+320|0;g=m+256|0;l=m+192|0;o=m+160|0;s=m+128|0;u=m+112|0;t=m+96|0;f=m+64|0;j=m+32|0;h=m+16|0;k=m;q=(e|0)>32;x=e+4|0;v=u+4|0;w=u+8|0;n=u+12|0;p=0;x=(x|0)>32?32:x;r=d;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));B=(x|0)>1;A=0;do{if(B){z=l+(A<<2)|0;y=c[z>>2]|0;C=1;do{y=($(b[r+(C<<5<<1)>>1]|0,a[1752+(C<<5)+A>>0]|0)|0)+y|0;C=C+2|0}while((C|0)<(x|0));c[z>>2]=y}A=A+1|0}while((A|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;y=(x|0)/2|0;z=(x|0)>3;A=0;do{if(z){D=s+(A<<2)|0;B=c[D>>2]|0;C=1;do{B=($(b[r+(C<<6<<1)>>1]|0,a[1752+(C<<1<<5)+A>>0]|0)|0)+B|0;C=C+2|0}while((C|0)<(y|0));c[D>>2]=B}A=A+1|0}while((A|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;A=0;do{B=t+(A<<2)|0;z=c[B>>2]|0;y=1;do{z=($(b[r+(y<<7<<1)>>1]|0,a[1752+(y<<2<<5)+A>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[B>>2]=z;A=A+1|0}while((A|0)!=4);C=b[r>>1]<<6;B=b[r+1024>>1]<<6;D=B+C|0;B=C-B|0;C=b[r+512>>1]|0;y=b[r+1536>>1]|0;z=(y*36|0)+(C*83|0)|0;C=($(y,-83)|0)+(C*36|0)|0;y=z+D|0;c[u>>2]=y;c[v>>2]=C+B;c[w>>2]=B-C;c[n>>2]=D-z;z=0;while(1){D=c[t+(z<<2)>>2]|0;c[o+(z<<2)>>2]=D+y;c[o+(7-z<<2)>>2]=y-D;z=z+1|0;if((z|0)==4){y=0;break}y=c[u+(z<<2)>>2]|0}do{C=c[o+(y<<2)>>2]|0;D=c[s+(y<<2)>>2]|0;c[g+(y<<2)>>2]=D+C;c[g+(15-y<<2)>>2]=C-D;y=y+1|0}while((y|0)!=8);y=0;do{z=c[g+(y<<2)>>2]|0;A=c[l+(y<<2)>>2]|0;B=z+64+A|0;C=B>>7;if((C+32768|0)>>>0>65535)C=B>>31^32767;b[r+(y<<5<<1)>>1]=C;z=z-A+64|0;A=z>>7;if((A+32768|0)>>>0>65535)A=z>>31^32767;b[r+(31-y<<5<<1)>>1]=A;y=y+1|0}while((y|0)!=16);if((x|0)<32)x=(p&3|0)==0&(p|0)!=0?x+ -4|0:x;p=p+1|0;if((p|0)==32)break;else r=r+2|0}p=q?32:e;o=(p|0)>1;n=(p|0)/2|0;q=(p|0)>3;s=h+4|0;r=h+8|0;e=h+12|0;t=0;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));v=0;do{if(o){w=l+(v<<2)|0;u=c[w>>2]|0;x=1;do{u=($(b[d+(x<<1)>>1]|0,a[1752+(x<<5)+v>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(p|0));c[w>>2]=u}v=v+1|0}while((v|0)!=16);c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;x=0;do{if(q){u=j+(x<<2)|0;w=c[u>>2]|0;v=1;do{D=v<<1;w=($(b[d+(D<<1)>>1]|0,a[1752+(D<<5)+x>>0]|0)|0)+w|0;v=v+2|0}while((v|0)<(n|0));c[u>>2]=w}x=x+1|0}while((x|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;u=0;do{v=k+(u<<2)|0;x=c[v>>2]|0;w=1;do{D=w<<2;x=($(b[d+(D<<1)>>1]|0,a[1752+(D<<5)+u>>0]|0)|0)+x|0;w=w+2|0}while((w|0)<8);c[v>>2]=x;u=u+1|0}while((u|0)!=4);C=b[d>>1]<<6;B=b[d+32>>1]<<6;D=B+C|0;B=C-B|0;C=b[d+16>>1]|0;u=b[d+48>>1]|0;v=(u*36|0)+(C*83|0)|0;C=($(u,-83)|0)+(C*36|0)|0;u=v+D|0;c[h>>2]=u;c[s>>2]=C+B;c[r>>2]=B-C;c[e>>2]=D-v;v=0;while(1){D=c[k+(v<<2)>>2]|0;c[f+(v<<2)>>2]=D+u;c[f+(7-v<<2)>>2]=u-D;v=v+1|0;if((v|0)==4){u=0;break}u=c[h+(v<<2)>>2]|0}do{C=c[f+(u<<2)>>2]|0;D=c[j+(u<<2)>>2]|0;c[g+(u<<2)>>2]=D+C;c[g+(15-u<<2)>>2]=C-D;u=u+1|0}while((u|0)!=8);u=0;do{v=c[g+(u<<2)>>2]|0;w=c[l+(u<<2)>>2]|0;x=v+2048+w|0;y=x>>12;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[d+(u<<1)>>1]=y;v=v-w+2048|0;w=v>>12;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[d+(31-u<<1)>>1]=w;u=u+1|0}while((u|0)!=16);t=t+1|0;if((t|0)==32)break;else d=d+64|0}i=m;return}function Qc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;e=e+1|0}while((e|0)!=4);i=c;return}function Rc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;b[a+((f|4)<<1)>>1]=d;b[a+((f|5)<<1)>>1]=d;b[a+((f|6)<<1)>>1]=d;b[a+((f|7)<<1)>>1]=d;e=e+1|0}while((e|0)!=8);i=c;return}function Sc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);d=d+1|0}while((d|0)!=16);i=c;return}function Tc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);d=d+1|0}while((d|0)!=32);i=c;return}function Uc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;f=i;if((e|0)>0)g=0;else{i=f;return}while(1){mf(a|0,c|0,h|0)|0;g=g+1|0;if((g|0)==(e|0))break;else{a=a+b|0;c=c+d|0}}i=f;return}function Vc(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;j=i;s=h+ -1|0;l=2840+(s<<4)|0;if((g|0)<=0){i=j;return}h=(k|0)>0;p=2841+(s<<4)|0;q=2842+(s<<4)|0;r=2843+(s<<4)|0;o=2844+(s<<4)|0;n=2845+(s<<4)|0;m=2846+(s<<4)|0;s=2847+(s<<4)|0;w=0;while(1){if(h){t=a[l>>0]|0;y=a[p>>0]|0;v=a[q>>0]|0;A=a[r>>0]|0;B=a[o>>0]|0;C=a[n>>0]|0;D=a[m>>0]|0;z=a[s>>0]|0;u=0;do{K=$(d[e+(u+ -3)>>0]|0,t)|0;J=$(d[e+(u+ -2)>>0]|0,y)|0;I=$(d[e+(u+ -1)>>0]|0,v)|0;H=$(d[e+u>>0]|0,A)|0;x=u;u=u+1|0;G=$(d[e+u>>0]|0,B)|0;F=$(d[e+(x+2)>>0]|0,C)|0;E=$(d[e+(x+3)>>0]|0,D)|0;E=K+32+J+I+H+G+F+E+($(d[e+(x+4)>>0]|0,z)|0)>>6;if(E>>>0>255)E=0-E>>31;a[b+x>>0]=E}while((u|0)!=(k|0))}w=w+1|0;if((w|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=j;return}function Wc(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;h=i;u=j+ -1|0;j=2840+(u<<4)|0;if((g|0)<=0){i=h;return}l=(k|0)>0;q=f*3|0;t=2841+(u<<4)|0;r=f<<1;s=2842+(u<<4)|0;p=2843+(u<<4)|0;o=2844+(u<<4)|0;n=2845+(u<<4)|0;m=2846+(u<<4)|0;v=2847+(u<<4)|0;u=f<<2;B=0;while(1){if(l){y=a[j>>0]|0;D=a[t>>0]|0;E=a[s>>0]|0;F=a[p>>0]|0;C=a[o>>0]|0;z=a[n>>0]|0;x=a[m>>0]|0;w=a[v>>0]|0;A=0;do{M=$(d[e+(A-q)>>0]|0,y)|0;L=$(d[e+(A-r)>>0]|0,D)|0;K=$(d[e+(A-f)>>0]|0,E)|0;J=$(d[e+A>>0]|0,F)|0;I=$(d[e+(A+f)>>0]|0,C)|0;H=$(d[e+(A+r)>>0]|0,z)|0;G=$(d[e+(A+q)>>0]|0,x)|0;G=M+32+L+K+J+I+H+G+($(d[e+(A+u)>>0]|0,w)|0)>>6;if(G>>>0>255)G=0-G>>31;a[b+A>>0]=G;A=A+1|0}while((A|0)!=(k|0))}B=B+1|0;if((B|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=h;return}function Xc(c,d,e,f,g,h,j,k){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;l=i;i=i+9088|0;m=l;v=h+ -1|0;n=2840+(v<<4)|0;h=g+7|0;if((h|0)>0){t=(k|0)>0;p=2841+(v<<4)|0;o=2842+(v<<4)|0;u=2843+(v<<4)|0;q=2844+(v<<4)|0;r=2845+(v<<4)|0;s=2846+(v<<4)|0;v=2847+(v<<4)|0;y=e+($(f,-3)|0)|0;z=m;A=0;while(1){if(t){E=a[n>>0]|0;D=a[p>>0]|0;F=a[o>>0]|0;G=a[u>>0]|0;H=a[q>>0]|0;I=a[r>>0]|0;e=a[s>>0]|0;K=a[v>>0]|0;w=a[y+ -2>>0]|0;x=a[y+ -1>>0]|0;B=a[y>>0]|0;C=a[y+1>>0]|0;M=a[y+2>>0]|0;L=a[y+3>>0]|0;N=a[y+ -3>>0]|0;J=0;while(1){O=($(w&255,D)|0)+($(N&255,E)|0)+($(x&255,F)|0)+($(B&255,G)|0)+($(C&255,H)|0)+($(M&255,I)|0)+($(L&255,e)|0)|0;N=a[y+(J+4)>>0]|0;b[z+(J<<1)>>1]=O+($(N&255,K)|0);J=J+1|0;if((J|0)==(k|0))break;else{S=L;R=M;Q=C;P=B;O=x;L=N;N=w;M=S;C=R;B=Q;x=P;w=O}}}A=A+1|0;if((A|0)==(h|0))break;else{y=y+f|0;z=z+128|0}}}s=j+ -1|0;j=2840+(s<<4)|0;if((g|0)<=0){i=l;return}f=(k|0)>0;h=2841+(s<<4)|0;n=2842+(s<<4)|0;o=2843+(s<<4)|0;p=2844+(s<<4)|0;q=2845+(s<<4)|0;r=2846+(s<<4)|0;s=2847+(s<<4)|0;u=m+384|0;v=0;while(1){if(f){e=a[j>>0]|0;m=a[h>>0]|0;x=a[n>>0]|0;y=a[o>>0]|0;z=a[p>>0]|0;A=a[q>>0]|0;B=a[r>>0]|0;w=a[s>>0]|0;t=0;do{C=$(b[u+(t+ -192<<1)>>1]|0,e)|0;C=($(b[u+(t+ -128<<1)>>1]|0,m)|0)+C|0;C=C+($(b[u+(t+ -64<<1)>>1]|0,x)|0)|0;C=C+($(b[u+(t<<1)>>1]|0,y)|0)|0;C=C+($(b[u+(t+64<<1)>>1]|0,z)|0)|0;C=C+($(b[u+(t+128<<1)>>1]|0,A)|0)|0;C=C+($(b[u+(t+192<<1)>>1]|0,B)|0)|0;C=(C+($(b[u+(t+256<<1)>>1]|0,w)|0)>>6)+32>>6;if(C>>>0>255)C=0-C>>31;a[c+t>>0]=C;t=t+1|0}while((t|0)!=(k|0))}v=v+1|0;if((v|0)==(g|0))break;else{c=c+d|0;u=u+128|0}}i=l;return}function Yc(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0;m=i;h=h+6|0;l=1<>1;if((g|0)<=0){i=m;return}o=(n|0)>0;j=j<<6;q=0;while(1){if(o){p=0;do{r=(($(j,d[e+p>>0]|0)|0)+l>>h)+k|0;if(r>>>0>255)r=0-r>>31;a[b+p>>0]=r;p=p+1|0}while((p|0)!=(n|0))}q=q+1|0;if((q|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function Zc(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;m=i;w=l+ -1|0;l=2840+(w<<4)|0;s=h+6|0;p=1<>1;if((g|0)<=0){i=m;return}o=(n|0)>0;v=2841+(w<<4)|0;u=2842+(w<<4)|0;t=2843+(w<<4)|0;h=2844+(w<<4)|0;r=2845+(w<<4)|0;q=2846+(w<<4)|0;w=2847+(w<<4)|0;x=0;while(1){if(o){C=a[l>>0]|0;y=a[v>>0]|0;E=a[u>>0]|0;F=a[t>>0]|0;G=a[h>>0]|0;H=a[r>>0]|0;D=a[q>>0]|0;z=a[w>>0]|0;A=0;do{I=$(d[e+(A+ -3)>>0]|0,C)|0;I=($(d[e+(A+ -2)>>0]|0,y)|0)+I|0;I=I+($(d[e+(A+ -1)>>0]|0,E)|0)|0;I=I+($(d[e+A>>0]|0,F)|0)|0;B=A;A=A+1|0;I=I+($(d[e+A>>0]|0,G)|0)|0;I=I+($(d[e+(B+2)>>0]|0,H)|0)|0;I=I+($(d[e+(B+3)>>0]|0,D)|0)|0;I=(($(I+($(d[e+(B+4)>>0]|0,z)|0)|0,j)|0)+p>>s)+k|0;if(I>>>0>255)I=0-I>>31;a[b+B>>0]=I}while((A|0)!=(n|0))}x=x+1|0;if((x|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function _c(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;l=i;y=m+ -1|0;m=2840+(y<<4)|0;u=h+6|0;p=1<>1;if((g|0)<=0){i=l;return}o=(n|0)>0;v=f*3|0;x=2841+(y<<4)|0;w=f<<1;h=2842+(y<<4)|0;t=2843+(y<<4)|0;s=2844+(y<<4)|0;r=2845+(y<<4)|0;q=2846+(y<<4)|0;z=2847+(y<<4)|0;y=f<<2;G=0;while(1){if(o){D=a[m>>0]|0;I=a[x>>0]|0;J=a[h>>0]|0;H=a[t>>0]|0;E=a[s>>0]|0;C=a[r>>0]|0;B=a[q>>0]|0;A=a[z>>0]|0;F=0;do{K=$(d[e+(F-v)>>0]|0,D)|0;K=($(d[e+(F-w)>>0]|0,I)|0)+K|0;K=K+($(d[e+(F-f)>>0]|0,J)|0)|0;K=K+($(d[e+F>>0]|0,H)|0)|0;K=K+($(d[e+(F+f)>>0]|0,E)|0)|0;K=K+($(d[e+(F+w)>>0]|0,C)|0)|0;K=K+($(d[e+(F+v)>>0]|0,B)|0)|0;K=(($(K+($(d[e+(F+y)>>0]|0,A)|0)|0,j)|0)+p>>u)+k|0;if(K>>>0>255)K=0-K>>31;a[b+F>>0]=K;F=F+1|0}while((F|0)!=(n|0))}G=G+1|0;if((G|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=l;return}function $c(c,d,e,f,g,h,j,k,l,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;o=i;i=i+9088|0;q=o;p=h+6|0;h=1<

>1;z=l+ -1|0;l=2840+(z<<4)|0;s=g+7|0;if((s|0)>0){x=(n|0)>0;r=2841+(z<<4)|0;y=2842+(z<<4)|0;t=2843+(z<<4)|0;u=2844+(z<<4)|0;v=2845+(z<<4)|0;w=2846+(z<<4)|0;z=2847+(z<<4)|0;D=e+($(f,-3)|0)|0;E=q;F=0;while(1){if(x){J=a[l>>0]|0;I=a[r>>0]|0;K=a[y>>0]|0;L=a[t>>0]|0;B=a[u>>0]|0;N=a[v>>0]|0;O=a[w>>0]|0;P=a[z>>0]|0;C=a[D+ -2>>0]|0;M=a[D+ -1>>0]|0;e=a[D>>0]|0;G=a[D+1>>0]|0;H=a[D+2>>0]|0;Q=a[D+3>>0]|0;R=a[D+ -3>>0]|0;A=0;while(1){S=($(C&255,I)|0)+($(R&255,J)|0)+($(M&255,K)|0)+($(e&255,L)|0)+($(G&255,B)|0)+($(H&255,N)|0)+($(Q&255,O)|0)|0;R=a[D+(A+4)>>0]|0;b[E+(A<<1)>>1]=S+($(R&255,P)|0);A=A+1|0;if((A|0)==(n|0))break;else{W=Q;V=H;U=G;T=e;S=M;Q=R;R=C;H=W;G=V;e=U;M=T;C=S}}}F=F+1|0;if((F|0)==(s|0))break;else{D=D+f|0;E=E+128|0}}}w=m+ -1|0;r=2840+(w<<4)|0;if((g|0)<=0){i=o;return}l=(n|0)>0;s=2841+(w<<4)|0;t=2842+(w<<4)|0;u=2843+(w<<4)|0;v=2844+(w<<4)|0;m=2845+(w<<4)|0;f=2846+(w<<4)|0;w=2847+(w<<4)|0;z=q+384|0;q=0;while(1){if(l){A=a[r>>0]|0;B=a[s>>0]|0;C=a[t>>0]|0;D=a[u>>0]|0;E=a[v>>0]|0;F=a[m>>0]|0;y=a[f>>0]|0;x=a[w>>0]|0;e=0;do{G=$(b[z+(e+ -192<<1)>>1]|0,A)|0;G=($(b[z+(e+ -128<<1)>>1]|0,B)|0)+G|0;G=G+($(b[z+(e+ -64<<1)>>1]|0,C)|0)|0;G=G+($(b[z+(e<<1)>>1]|0,D)|0)|0;G=G+($(b[z+(e+64<<1)>>1]|0,E)|0)|0;G=G+($(b[z+(e+128<<1)>>1]|0,F)|0)|0;G=G+($(b[z+(e+192<<1)>>1]|0,y)|0)|0;G=(($(G+($(b[z+(e+256<<1)>>1]|0,x)|0)>>6,j)|0)+h>>p)+k|0;if(G>>>0>255)G=0-G>>31;a[c+e>>0]=G;e=e+1|0}while((e|0)!=(n|0))}q=q+1|0;if((q|0)==(g|0))break;else{c=c+d|0;z=z+128|0}}i=o;return}function ad(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;j=i;o=h+ -1|0;h=2808+(o<<2)|0;if((g|0)<=0){i=j;return}l=(k|0)>0;n=2809+(o<<2)|0;m=2810+(o<<2)|0;o=2811+(o<<2)|0;s=0;while(1){if(l){p=a[h>>0]|0;u=a[n>>0]|0;v=a[m>>0]|0;t=a[o>>0]|0;r=0;do{y=$(d[e+(r+ -1)>>0]|0,p)|0;x=$(d[e+r>>0]|0,u)|0;q=r;r=r+1|0;w=$(d[e+r>>0]|0,v)|0;w=y+32+x+w+($(d[e+(q+2)>>0]|0,t)|0)>>6;if(w>>>0>255)w=0-w>>31;a[b+q>>0]=w}while((r|0)!=(k|0))}s=s+1|0;if((s|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=j;return}function bd(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=i;o=j+ -1|0;j=2808+(o<<2)|0;if((g|0)<=0){i=h;return}l=(k|0)>0;n=2809+(o<<2)|0;m=2810+(o<<2)|0;p=2811+(o<<2)|0;o=f<<1;t=0;while(1){if(l){u=a[j>>0]|0;v=a[n>>0]|0;s=a[m>>0]|0;r=a[p>>0]|0;q=0;do{y=$(d[e+(q-f)>>0]|0,u)|0;x=$(d[e+q>>0]|0,v)|0;w=$(d[e+(q+f)>>0]|0,s)|0;w=y+32+x+w+($(d[e+(q+o)>>0]|0,r)|0)>>6;if(w>>>0>255)w=0-w>>31;a[b+q>>0]=w;q=q+1|0}while((q|0)!=(k|0))}t=t+1|0;if((t|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=h;return}function cd(c,d,e,f,g,h,j,k){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;l=i;i=i+8576|0;m=l;r=h+ -1|0;h=2808+(r<<2)|0;n=g+3|0;if((n|0)>0){q=(k|0)>0;o=2809+(r<<2)|0;p=2810+(r<<2)|0;r=2811+(r<<2)|0;u=e+(0-f)|0;v=m;w=0;while(1){if(q){A=a[h>>0]|0;e=a[o>>0]|0;y=a[p>>0]|0;x=a[r>>0]|0;B=a[u+ -1>>0]|0;s=a[u>>0]|0;t=a[u+1>>0]|0;z=0;while(1){C=($(s&255,e)|0)+($(B&255,A)|0)+($(t&255,y)|0)|0;B=a[u+(z+2)>>0]|0;b[v+(z<<1)>>1]=C+($(B&255,x)|0);z=z+1|0;if((z|0)==(k|0))break;else{D=t;C=s;t=B;s=D;B=C}}}w=w+1|0;if((w|0)==(n|0))break;else{u=u+f|0;v=v+128|0}}}o=j+ -1|0;f=2808+(o<<2)|0;if((g|0)<=0){i=l;return}j=(k|0)>0;h=2809+(o<<2)|0;n=2810+(o<<2)|0;o=2811+(o<<2)|0;q=m+128|0;r=0;while(1){if(j){e=a[f>>0]|0;s=a[h>>0]|0;t=a[n>>0]|0;p=a[o>>0]|0;m=0;do{u=$(b[q+(m+ -64<<1)>>1]|0,e)|0;u=($(b[q+(m<<1)>>1]|0,s)|0)+u|0;u=u+($(b[q+(m+64<<1)>>1]|0,t)|0)|0;u=(u+($(b[q+(m+128<<1)>>1]|0,p)|0)>>6)+32>>6;if(u>>>0>255)u=0-u>>31;a[c+m>>0]=u;m=m+1|0}while((m|0)!=(k|0))}r=r+1|0;if((r|0)==(g|0))break;else{c=c+d|0;q=q+128|0}}i=l;return}function dd(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;m=i;s=l+ -1|0;l=2808+(s<<2)|0;h=h+6|0;o=1<>1;if((g|0)<=0){i=m;return}r=(n|0)>0;p=2809+(s<<2)|0;q=2810+(s<<2)|0;s=2811+(s<<2)|0;x=0;while(1){if(r){y=a[l>>0]|0;t=a[p>>0]|0;u=a[q>>0]|0;z=a[s>>0]|0;w=0;do{A=$(d[e+(w+ -1)>>0]|0,y)|0;A=($(d[e+w>>0]|0,t)|0)+A|0;v=w;w=w+1|0;A=A+($(d[e+w>>0]|0,u)|0)|0;A=(($(A+($(d[e+(v+2)>>0]|0,z)|0)|0,j)|0)+o>>h)+k|0;if(A>>>0>255)A=0-A>>31;a[b+v>>0]=A}while((w|0)!=(n|0))}x=x+1|0;if((x|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function ed(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;l=i;s=m+ -1|0;m=2808+(s<<2)|0;h=h+6|0;o=1<>1;if((g|0)<=0){i=l;return}p=(n|0)>0;q=2809+(s<<2)|0;r=2810+(s<<2)|0;s=2811+(s<<2)|0;t=f<<1;y=0;while(1){if(p){x=a[m>>0]|0;u=a[q>>0]|0;z=a[r>>0]|0;w=a[s>>0]|0;v=0;do{A=$(d[e+(v-f)>>0]|0,x)|0;A=($(d[e+v>>0]|0,u)|0)+A|0;A=A+($(d[e+(v+f)>>0]|0,z)|0)|0;A=(($(A+($(d[e+(v+t)>>0]|0,w)|0)|0,j)|0)+o>>h)+k|0;if(A>>>0>255)A=0-A>>31;a[b+v>>0]=A;v=v+1|0}while((v|0)!=(n|0))}y=y+1|0;if((y|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=l;return}function fd(c,d,e,f,g,h,j,k,l,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;o=i;i=i+8576|0;p=o;v=l+ -1|0;q=2808+(v<<2)|0;h=h+6|0;l=1<>1;t=g+3|0;if((t|0)>0){u=(n|0)>0;s=2809+(v<<2)|0;r=2810+(v<<2)|0;v=2811+(v<<2)|0;A=e+(0-f)|0;w=p;x=0;while(1){if(u){B=a[q>>0]|0;E=a[s>>0]|0;C=a[r>>0]|0;D=a[v>>0]|0;F=a[A+ -1>>0]|0;y=a[A>>0]|0;z=a[A+1>>0]|0;e=0;while(1){G=($(y&255,E)|0)+($(F&255,B)|0)+($(z&255,C)|0)|0;F=a[A+(e+2)>>0]|0;b[w+(e<<1)>>1]=G+($(F&255,D)|0);e=e+1|0;if((e|0)==(n|0))break;else{H=z;G=y;z=F;y=H;F=G}}}x=x+1|0;if((x|0)==(t|0))break;else{A=A+f|0;w=w+128|0}}}s=m+ -1|0;m=2808+(s<<2)|0;if((g|0)<=0){i=o;return}r=(n|0)>0;q=2809+(s<<2)|0;f=2810+(s<<2)|0;s=2811+(s<<2)|0;u=p+128|0;p=0;while(1){if(r){e=a[m>>0]|0;w=a[q>>0]|0;x=a[f>>0]|0;v=a[s>>0]|0;t=0;do{y=$(b[u+(t+ -64<<1)>>1]|0,e)|0;y=($(b[u+(t<<1)>>1]|0,w)|0)+y|0;y=y+($(b[u+(t+64<<1)>>1]|0,x)|0)|0;y=(($(y+($(b[u+(t+128<<1)>>1]|0,v)|0)>>6,j)|0)+l>>h)+k|0;if(y>>>0>255)y=0-y>>31;a[c+t>>0]=y;t=t+1|0}while((t|0)!=(n|0))}p=p+1|0;if((p|0)==(g|0))break;else{c=c+d|0;u=u+128|0}}i=o;return}function gd(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0;o=i;i=i+128|0;k=o;q=k+0|0;p=q+128|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(p|0));q=d[j+n+96>>0]|0;c[k+((q&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((q+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((q+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((q+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];if((m|0)<=0){i=o;return}n=(l|0)>0;j=0;while(1){if(n){p=0;do{q=d[f+p>>0]|0;q=q+(c[k+(q>>>3<<2)>>2]|0)|0;if(q>>>0>255)q=0-q>>31;a[e+p>>0]=q;p=p+1|0}while((p|0)!=(l|0))}j=j+1|0;if((j|0)==(m|0))break;else{e=e+g|0;f=f+h|0}}i=o;return}function hd(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0;p=i;o=j+(n*10|0)+112|0;r=c[j+(n<<2)+100>>2]|0;if((r|0)!=1){if(c[k>>2]|0){q=b[o>>1]|0;if((m|0)>0){s=0;do{t=(d[f+($(s,h)|0)>>0]|0)+q|0;if(t>>>0>255)t=0-t>>31;a[e+($(s,g)|0)>>0]=t;s=s+1|0}while((s|0)!=(m|0));q=1}else q=1}else q=0;if(c[k+8>>2]|0){s=b[o>>1]|0;l=l+ -1|0;if((m|0)>0){t=0;do{u=(d[f+(($(t,h)|0)+l)>>0]|0)+s|0;if(u>>>0>255)u=0-u>>31;a[e+(($(t,g)|0)+l)>>0]=u;t=t+1|0}while((t|0)!=(m|0))}}if(!r){s=m;t=q;u=0;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}}else q=0;if(c[k+4>>2]|0){r=b[o>>1]|0;if((q|0)<(l|0)){s=q;do{t=(d[f+s>>0]|0)+r|0;if(t>>>0>255)t=0-t>>31;a[e+s>>0]=t;s=s+1|0}while((s|0)!=(l|0));r=1}else r=1}else r=0;if(!(c[k+12>>2]|0)){s=m;t=q;u=r;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}k=b[o>>1]|0;o=m+ -1|0;t=$(o,g)|0;m=$(o,h)|0;if((q|0)<(l|0))s=q;else{s=o;t=q;u=r;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}do{u=(d[f+(s+m)>>0]|0)+k|0;if(u>>>0>255)u=0-u>>31;a[e+(s+t)>>0]=u;s=s+1|0}while((s|0)!=(l|0));pd(e,f,g,h,j,l,o,n,q,r);i=p;return}function id(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;s=i;C=j+(n*10|0)+112|0;B=c[j+(n<<2)+100>>2]|0;A=(B|0)!=1;if(A){if(c[k>>2]|0){D=b[C>>1]|0;if((m|0)>0){E=0;do{G=(d[f+($(E,h)|0)>>0]|0)+D|0;if(G>>>0>255)G=0-G>>31;a[e+($(E,g)|0)>>0]=G;E=E+1|0}while((E|0)!=(m|0));D=1}else D=1}else D=0;if(c[k+8>>2]|0){E=b[C>>1]|0;l=l+ -1|0;if((m|0)>0){G=0;do{H=(d[f+(($(G,h)|0)+l)>>0]|0)+E|0;if(H>>>0>255)H=0-H>>31;a[e+(($(G,g)|0)+l)>>0]=H;G=G+1|0}while((G|0)!=(m|0))}}if(!B){C=1;E=0}else F=13}else{D=0;F=13}if((F|0)==13){if(c[k+4>>2]|0){F=b[C>>1]|0;if((D|0)<(l|0)){E=D;do{G=(d[f+E>>0]|0)+F|0;if(G>>>0>255)G=0-G>>31;a[e+E>>0]=G;E=E+1|0}while((E|0)!=(l|0));E=1}else E=1}else E=0;if(c[k+12>>2]|0){C=b[C>>1]|0;m=m+ -1|0;G=$(m,g)|0;H=$(m,h)|0;if((D|0)<(l|0)){F=D;do{I=(d[f+(F+H)>>0]|0)+C|0;if(I>>>0>255)I=0-I>>31;a[e+(F+G)>>0]=I;F=F+1|0}while((F|0)!=(l|0));C=0}else C=0}else C=0}pd(e,f,g,h,j,l,m,n,D,E);j=(B|0)==2;if((a[q>>0]|0)==0&j?(c[k>>2]|0)==0:0)n=(c[k+4>>2]|0)==0;else n=0;H=n&1;n=q+1|0;B=(B|0)==3;if((a[n>>0]|0)==0&B?(c[k+4>>2]|0)==0:0)F=(c[k+8>>2]|0)==0;else F=0;J=F&1;F=q+2|0;if((a[F>>0]|0)==0&j?(c[k+8>>2]|0)==0:0)G=(c[k+12>>2]|0)==0;else G=0;I=G&1;G=q+3|0;if((a[G>>0]|0)==0&B?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;A=A^1;if(!((a[o>>0]|0)==0|A)?(z=H+E|0,y=m-k|0,(z|0)<(y|0)):0)do{a[e+($(z,g)|0)>>0]=a[f+($(z,h)|0)>>0]|0;z=z+1|0}while((z|0)!=(y|0));if(!((a[o+1>>0]|0)==0|A)?(x=J+E|0,w=m-I|0,(x|0)<(w|0)):0){o=l+ -1|0;do{a[e+(o+($(x,g)|0))>>0]=a[f+(o+($(x,h)|0))>>0]|0;x=x+1|0}while((x|0)!=(w|0))}if(!((a[p>>0]|0)==0|C)?(v=H+D|0,u=l-J|0,(v|0)<(u|0)):0)do{a[e+v>>0]=a[f+v>>0]|0;v=v+1|0}while((v|0)!=(u|0));if(!((a[p+1>>0]|0)==0|C)?(t=k+D|0,r=l-I|0,(t|0)<(r|0)):0){u=m+ -1|0;p=$(u,h)|0;u=$(u,g)|0;do{a[e+(t+u)>>0]=a[f+(t+p)>>0]|0;t=t+1|0}while((t|0)!=(r|0))}if((a[q>>0]|0)!=0&j)a[e>>0]=a[f>>0]|0;if((a[n>>0]|0)!=0&B){J=l+ -1|0;a[e+J>>0]=a[f+J>>0]|0}if((a[F>>0]|0)!=0&j){J=m+ -1|0;I=l+ -1|0;a[e+(I+($(J,g)|0))>>0]=a[f+(I+($(J,h)|0))>>0]|0}if(!((a[G>>0]|0)!=0&B)){i=s;return}J=m+ -1|0;a[e+($(J,g)|0)>>0]=a[f+($(J,h)|0)>>0]|0;i=s;return}function jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;od(a,b,1,c,d,e,f);i=g;return}function kd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;od(a,1,b,c,d,e,f);i=g;return}function ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;nd(a,b,1,c,d,e);i=f;return}function md(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;nd(a,1,b,c,d,e);i=f;return}function nd(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;l=$(e,-2)|0;k=0-e|0;n=0;while(1){p=c[g+(n<<2)>>2]|0;if((p|0)>=1){s=0-p|0;r=(a[h+n>>0]|0)==0;q=(a[j+n>>0]|0)==0;o=0;t=b;while(1){v=t+k|0;x=d[v>>0]|0;u=d[t>>0]|0;w=(d[t+l>>0]|0)+4-(d[t+e>>0]|0)+(u-x<<2)>>3;if((w|0)<(s|0))w=s;else w=(w|0)>(p|0)?p:w;if(r){x=w+x|0;if(x>>>0>255)x=0-x>>31;a[v>>0]=x}if(q){u=u-w|0;if(u>>>0>255)u=0-u>>31;a[t>>0]=u}o=o+1|0;if((o|0)==4)break;else t=t+f|0}}n=n+1|0;if((n|0)==2)break;else b=b+(f<<2)|0}i=m;return}function od(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;t=i;o=$(e,-3)|0;p=$(e,-2)|0;q=0-e|0;r=e<<1;D=f*3|0;B=D+o|0;C=D+p|0;A=D-e|0;E=D+r|0;l=D+e|0;y=g>>3;v=g>>2;n=$(e,-4)|0;s=e*3|0;w=D+n|0;x=(f+e|0)*3|0;u=(g>>1)+g>>3;z=f<<2;m=f<<2;F=0;do{U=a[b+o>>0]|0;T=a[b+p>>0]|0;S=a[b+q>>0]|0;J=S&255;N=(U&255)-((T&255)<<1)+J|0;N=(N|0)>-1?N:0-N|0;P=a[b+r>>0]|0;Q=a[b+e>>0]|0;R=a[b>>0]|0;X=R&255;V=(P&255)-((Q&255)<<1)+X|0;V=(V|0)>-1?V:0-V|0;_=d[b+A>>0]|0;M=(d[b+B>>0]|0)-((d[b+C>>0]|0)<<1)+_|0;M=(M|0)>-1?M:0-M|0;Y=d[b+D>>0]|0;O=(d[b+E>>0]|0)-((d[b+l>>0]|0)<<1)+Y|0;O=(O|0)>-1?O:0-O|0;H=V+N|0;I=O+M|0;G=c[h+(F<<2)>>2]|0;W=a[j+F>>0]|0;L=a[k+F>>0]|0;do if((I+H|0)<(g|0)){Z=(G*5|0)+1>>1;aa=(d[b+n>>0]|0)-J|0;K=a[b+s>>0]|0;ba=(K&255)-X|0;if((((((((ba|0)>-1?ba:0-ba|0)+((aa|0)>-1?aa:0-aa|0)|0)<(y|0)?(ba=J-X|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(ba=(d[b+w>>0]|0)-_|0,aa=(d[b+x>>0]|0)-Y|0,(((aa|0)>-1?aa:0-aa|0)+((ba|0)>-1?ba:0-ba|0)|0)<(y|0)):0)?(ba=_-Y|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(H<<1|0)<(v|0):0)?(I<<1|0)<(v|0):0){G=G<<1;H=W<<24>>24==0;I=0-G|0;J=L<<24>>24==0;Y=K;K=1;L=b;while(1){V=L+o|0;U=U&255;W=L+p|0;T=T&255;X=L+q|0;N=S&255;R=R&255;S=L+e|0;Q=Q&255;M=L+r|0;O=P&255;P=Y&255;if(H){Y=d[L+n>>0]|0;Z=(U+4+Q+(N+T+R<<1)>>3)-N|0;if((Z|0)<(I|0))Z=I;else Z=(Z|0)>(G|0)?G:Z;a[X>>0]=Z+N;X=((U+2+T+N+R|0)>>>2)-T|0;if((X|0)<(I|0))X=I;else X=(X|0)>(G|0)?G:X;a[W>>0]=X+T;W=((U*3|0)+4+T+N+R+(Y<<1)>>3)-U|0;if((W|0)<(I|0))W=I;else W=(W|0)>(G|0)?G:W;a[V>>0]=W+U}if(J){T=(T+4+O+(R+N+Q<<1)>>3)-R|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[L>>0]=T+R;T=((N+2+R+Q+O|0)>>>2)-Q|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[S>>0]=T+Q;N=(N+4+R+Q+(O*3|0)+(P<<1)>>3)-O|0;if((N|0)<(I|0))N=I;else N=(N|0)>(G|0)?G:N;a[M>>0]=N+O}M=L+f|0;if((K|0)==4)break;U=a[L+(o+f)>>0]|0;T=a[L+(p+f)>>0]|0;S=a[L+(f-e)>>0]|0;R=a[M>>0]|0;Q=a[L+(f+e)>>0]|0;P=a[L+(r+f)>>0]|0;Y=a[L+(s+f)>>0]|0;K=K+1|0;L=M}b=b+m|0;break}H=G>>1;I=G*10|0;J=0-G|0;K=W<<24>>24!=0;L=L<<24>>24!=0;M=(M+N|0)<(u|0)&(K^1);N=0-H|0;O=(O+V|0)<(u|0)&(L^1);V=T;W=R;Y=Q;Q=1;R=b;while(1){X=U&255;T=R+p|0;V=V&255;_=R+q|0;Z=S&255;W=W&255;S=R+e|0;U=Y&255;P=P&255;Y=((W-Z|0)*9|0)+8+($(U-V|0,-3)|0)>>4;if((((Y|0)>-1?Y:0-Y|0)|0)<(I|0)){if((Y|0)<(J|0))Y=J;else Y=(Y|0)>(G|0)?G:Y;if(!K){aa=Y+Z|0;if(aa>>>0>255)aa=0-aa>>31;a[_>>0]=aa}if(!L){_=W-Y|0;if(_>>>0>255)_=0-_>>31;a[R>>0]=_}if(M){X=((X+1+Z|0)>>>1)-V+Y>>1;if((X|0)<(N|0))X=N;else X=(X|0)>(H|0)?H:X;V=X+V|0;if(V>>>0>255)V=0-V>>31;a[T>>0]=V}if(O){P=((W+1+P|0)>>>1)-U-Y>>1;if((P|0)<(N|0))P=N;else P=(P|0)>(H|0)?H:P;P=P+U|0;if(P>>>0>255)P=0-P>>31;a[S>>0]=P}}T=R+f|0;if((Q|0)==4)break;U=a[R+(o+f)>>0]|0;V=a[R+(p+f)>>0]|0;S=a[R+(f-e)>>0]|0;W=a[T>>0]|0;Y=a[R+(f+e)>>0]|0;P=a[R+(r+f)>>0]|0;Q=Q+1|0;R=T}b=b+m|0}else b=b+z|0;while(0);F=F+1|0}while((F|0)!=2);i=t;return}function pd(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;t=i;v=c[j+(m<<2)+100>>2]|0;q=a[2896+(v<<2)>>0]|0;r=a[2898+(v<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}u=(n|0)<(k|0);s=o;p=$((a[2897+(v<<2)>>0]|0)+o|0,h)|0;v=$((a[2899+(v<<2)>>0]|0)+o|0,h)|0;w=$(o,g)|0;o=$(o,h)|0;while(1){if(u){y=p+q|0;x=v+r|0;z=n;do{A=a[f+(z+o)>>0]|0;B=a[f+(y+z)>>0]|0;if((A&255)>(B&255))B=3;else B=((A<<24>>24!=B<<24>>24)<<31>>31)+2|0;C=a[f+(x+z)>>0]|0;if((A&255)>(C&255))C=1;else C=(A<<24>>24!=C<<24>>24)<<31>>31;A=(b[j+(m*10|0)+(d[2888+(C+B)>>0]<<1)+112>>1]|0)+(A&255)|0;if(A>>>0>255)A=0-A>>31;a[e+(z+w)>>0]=A;z=z+1|0}while((z|0)!=(k|0))}s=s+1|0;if((s|0)==(l|0))break;else{p=p+h|0;v=v+h|0;w=w+g|0;o=o+h|0}}i=t;return}function qd(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function rd(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0;o=i;i=i+80|0;t=o+4|0;s=o;xa=o+11&-4;p=xa;q=e+136|0;r=c[q>>2]|0;G=e+204|0;if((1<>2]|0)+1620>>2]|0)>2:0){v=8;u=8;l=0;Aa=1;f=c[r+31236>>2]|0;g=c[r+31240>>2]|0}else{v=j;u=h;Aa=0}qd(e,f,g,u,v);ya=c[q>>2]|0;A=c[e+3508>>2]|0;k=c[A+20>>2]|0;A=c[A+16>>2]|0;Z=e+200|0;Ba=c[Z>>2]|0;V=c[Ba+13156>>2]|0;la=c[ya+31288>>2]|0;za=c[ya+31292>>2]|0;_=c[ya+31300>>2]|0;wa=c[ya+31296>>2]|0;ta=c[ya+31308>>2]|0;X=f+ -1|0;ma=g+v|0;W=ma+ -1|0;ua=f+u|0;S=ua+ -1|0;Y=g+ -1|0;q=e+2428|0;r=c[e+3036>>2]|0;if((c[q>>2]|0)!=1){Ca=c[e+3040>>2]|0;r=r>>>0>Ca>>>0?Ca:r}l=(Aa|0)==0&(l|0)==1;if(l?(va=c[ya+31248>>2]|0,(va|0)==7|(va|0)==6|(va|0)==2):0){l=va;xa=0;ya=0;va=14}else va=7;do if((va|0)==7){Aa=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Aa|0)==(f>>Aa|0))Aa=(W>>Aa|0)==(g>>Aa|0);else Aa=0;if(!(Aa|(za|0)==0)){za=c[Ba+13084>>2]|0;za=($(W>>za,V)|0)+(X>>za)|0;Ca=(a[A+(za*12|0)+10>>0]|0)!=0;Aa=Ca&1;if(Ca){Ba=A+(za*12|0)|0;Ca=xa;c[Ca+0>>2]=c[Ba+0>>2];c[Ca+4>>2]=c[Ba+4>>2];c[Ca+8>>2]=c[Ba+8>>2];if(!m)break;else{xa=Aa;va=1}}else{xa=Aa;va=0}}else{xa=0;va=0}if(l){l=c[ya+31248>>2]|0;ya=va;va=14}else{ya=va;va=15}}while(0);if((va|0)==14)if((l|0)==5|(l|0)==4|(l|0)==1){wa=0;va=30}else va=15;a:do if((va|0)==15){l=c[(c[G>>2]|0)+1620>>2]&255;if((S>>l|0)==(f>>l|0))l=(Y>>l|0)==(g>>l|0);else l=0;if(!(l|(wa|0)==0)){za=c[(c[Z>>2]|0)+13084>>2]|0;Aa=($(Y>>za,V)|0)+(S>>za)|0;Ba=a[A+(Aa*12|0)+10>>0]|0;Ca=Ba<<24>>24!=0;wa=Ca&1;if(Ca){l=A+(Aa*12|0)|0;do if((xa|0)!=0?(Ca=($(W>>za,V)|0)+(X>>za)|0,oa=A+(Ca*12|0)|0,na=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24,qa=A+(Aa*12|0)+4|0,qa=d[qa>>0]|d[qa+1>>0]<<8|d[qa+2>>0]<<16|d[qa+3>>0]<<24,sa=A+(Aa*12|0)+8|0,sa=d[sa>>0]|d[sa+1>>0]<<8,oa=d[oa>>0]|d[oa+1>>0]<<8|d[oa+2>>0]<<16|d[oa+3>>0]<<24,pa=A+(Ca*12|0)+4|0,pa=d[pa>>0]|d[pa+1>>0]<<8|d[pa+2>>0]<<16|d[pa+3>>0]<<24,ra=A+(Ca*12|0)+8|0,ra=d[ra>>0]|d[ra+1>>0]<<8,Ba<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(Ba<<24>>24==3){if((sa&255)<<24>>24==(ra&255)<<24>>24)na=((na|0)==(oa|0)?((sa&65535)>>>8&255)<<24>>24==((ra&65535)>>>8&255)<<24>>24:0)&(qa|0)==(pa|0);else na=0;na=na&1}else if(Ba<<24>>24==2)na=((qa|0)==(pa|0)?((sa&65535)>>>8&255)<<24>>24==((ra&65535)>>>8&255)<<24>>24:0)&1;else if(Ba<<24>>24==1)na=((na|0)==(oa|0)?(sa&255)<<24>>24==(ra&255)<<24>>24:0)&1;else break;if(na){va=30;break a}}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[l+0>>2];c[Ca+4>>2]=c[l+4>>2];c[Ca+8>>2]=c[l+8>>2];if((ya|0)!=(m|0)){ya=ya+1|0;va=30}}else va=30}else{wa=0;va=30}}while(0);b:do if((va|0)==30){c:do if(((ta|0)!=0?(ka=c[Z>>2]|0,da=c[ka+13084>>2]|0,ba=$(Y>>da,V)|0,ca=ba+(ua>>da)|0,aa=a[A+(ca*12|0)+10>>0]|0,aa<<24>>24!=0):0)?(ua|0)<(c[ka+13120>>2]|0):0){Ca=c[ka+13080>>2]|0;if(((Y>>Ca|0)>=(g>>Ca|0)?(ua>>Ca|0)>=(f>>Ca|0):0)?(za=c[ka+13072>>2]|0,Aa=c[ka+13164>>2]|0,l=Aa+2|0,Ca=($(g>>za&Aa,l)|0)+(f>>za&Aa)|0,Ba=c[(c[G>>2]|0)+1684>>2]|0,(c[Ba+(($(Y>>za&Aa,l)|0)+(ua>>za&Aa)<<2)>>2]|0)>(c[Ba+(Ca<<2)>>2]|0)):0)break;Ca=c[(c[G>>2]|0)+1620>>2]&255;if((ua>>Ca|0)==(f>>Ca|0)?(Y>>Ca|0)==(g>>Ca|0):0)break;ka=A+(ca*12|0)|0;do if((wa|0)!=0?(Ca=ba+(S>>da)|0,fa=A+(Ca*12|0)|0,ea=d[ka>>0]|d[ka+1>>0]<<8|d[ka+2>>0]<<16|d[ka+3>>0]<<24,ia=A+(ca*12|0)+4|0,ia=d[ia>>0]|d[ia+1>>0]<<8|d[ia+2>>0]<<16|d[ia+3>>0]<<24,ga=A+(ca*12|0)+8|0,ga=d[ga>>0]|d[ga+1>>0]<<8,fa=d[fa>>0]|d[fa+1>>0]<<8|d[fa+2>>0]<<16|d[fa+3>>0]<<24,ja=A+(Ca*12|0)+4|0,ja=d[ja>>0]|d[ja+1>>0]<<8|d[ja+2>>0]<<16|d[ja+3>>0]<<24,ha=A+(Ca*12|0)+8|0,ha=d[ha>>0]|d[ha+1>>0]<<8,aa<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(aa<<24>>24==3){if((ga&255)<<24>>24==(ha&255)<<24>>24)aa=((ea|0)==(fa|0)?((ga&65535)>>>8&255)<<24>>24==((ha&65535)>>>8&255)<<24>>24:0)&(ia|0)==(ja|0);else aa=0;aa=aa&1}else if(aa<<24>>24==1)aa=((ea|0)==(fa|0)?(ga&255)<<24>>24==(ha&255)<<24>>24:0)&1;else if(aa<<24>>24==2)aa=((ia|0)==(ja|0)?((ga&65535)>>>8&255)<<24>>24==((ha&65535)>>>8&255)<<24>>24:0)&1;else break;if(aa)break c}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[ka+0>>2];c[Ca+4>>2]=c[ka+4>>2];c[Ca+8>>2]=c[ka+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);d:do if(((la|0)!=0?(U=c[Z>>2]|0,N=c[U+13084>>2]|0,O=X>>N,J=($(ma>>N,V)|0)+O|0,M=a[A+(J*12|0)+10>>0]|0,M<<24>>24!=0):0)?(ma|0)<(c[U+13124>>2]|0):0){Ca=c[U+13080>>2]|0;if(((ma>>Ca|0)>=(g>>Ca|0)?(X>>Ca|0)>=(f>>Ca|0):0)?(za=c[U+13072>>2]|0,Aa=c[U+13164>>2]|0,l=Aa+2|0,Ca=($(g>>za&Aa,l)|0)+(f>>za&Aa)|0,Ba=c[(c[G>>2]|0)+1684>>2]|0,(c[Ba+(($(ma>>za&Aa,l)|0)+(X>>za&Aa)<<2)>>2]|0)>(c[Ba+(Ca<<2)>>2]|0)):0)break;Ca=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Ca|0)==(f>>Ca|0)?(ma>>Ca|0)==(g>>Ca|0):0)break;U=A+(J*12|0)|0;do if((xa|0)!=0?(Ca=($(W>>N,V)|0)+O|0,R=A+(Ca*12|0)|0,Q=d[U>>0]|d[U+1>>0]<<8|d[U+2>>0]<<16|d[U+3>>0]<<24,P=A+(J*12|0)+4|0,P=d[P>>0]|d[P+1>>0]<<8|d[P+2>>0]<<16|d[P+3>>0]<<24,T=A+(J*12|0)+8|0,T=d[T>>0]|d[T+1>>0]<<8,R=d[R>>0]|d[R+1>>0]<<8|d[R+2>>0]<<16|d[R+3>>0]<<24,L=A+(Ca*12|0)+4|0,L=d[L>>0]|d[L+1>>0]<<8|d[L+2>>0]<<16|d[L+3>>0]<<24,K=A+(Ca*12|0)+8|0,K=d[K>>0]|d[K+1>>0]<<8,M<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(M<<24>>24==3){if((T&255)<<24>>24==(K&255)<<24>>24)J=((Q|0)==(R|0)?((T&65535)>>>8&255)<<24>>24==((K&65535)>>>8&255)<<24>>24:0)&(P|0)==(L|0);else J=0;J=J&1}else if(M<<24>>24==1)J=((Q|0)==(R|0)?(T&255)<<24>>24==(K&255)<<24>>24:0)&1;else if(M<<24>>24==2)J=((P|0)==(L|0)?((T&65535)>>>8&255)<<24>>24==((K&65535)>>>8&255)<<24>>24:0)&1;else break;if(J)break d}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[U+0>>2];c[Ca+4>>2]=c[U+4>>2];c[Ca+8>>2]=c[U+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);e:do if((_|0)!=0?(z=c[(c[Z>>2]|0)+13084>>2]|0,y=$(Y>>z,V)|0,F=X>>z,x=y+F|0,w=a[A+(x*12|0)+10>>0]|0,w<<24>>24!=0):0){Ca=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Ca|0)==(f>>Ca|0)?(Y>>Ca|0)==(g>>Ca|0):0)break;do if((xa|0)!=0?(E=A+(x*12|0)|0,Ca=($(W>>z,V)|0)+F|0,B=A+(Ca*12|0)|0,E=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24,D=A+(x*12|0)+4|0,D=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24,I=A+(x*12|0)+8|0,I=d[I>>0]|d[I+1>>0]<<8,B=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24,H=A+(Ca*12|0)+4|0,H=d[H>>0]|d[H+1>>0]<<8|d[H+2>>0]<<16|d[H+3>>0]<<24,C=A+(Ca*12|0)+8|0,C=d[C>>0]|d[C+1>>0]<<8,w<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(w<<24>>24==1)B=((E|0)==(B|0)?(I&255)<<24>>24==(C&255)<<24>>24:0)&1;else if(w<<24>>24==2)B=((D|0)==(H|0)?((I&65535)>>>8&255)<<24>>24==((C&65535)>>>8&255)<<24>>24:0)&1;else if(w<<24>>24==3){if((I&255)<<24>>24==(C&255)<<24>>24)B=((E|0)==(B|0)?((I&65535)>>>8&255)<<24>>24==((C&65535)>>>8&255)<<24>>24:0)&(D|0)==(H|0);else B=0;B=B&1}else break;if(B)break e}while(0);if(wa){B=A+(x*12|0)|0;Ca=y+(S>>z)|0;C=A+(Ca*12|0)|0;z=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24;y=A+(x*12|0)+4|0;y=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;x=A+(x*12|0)+8|0;x=d[x>>0]|d[x+1>>0]<<8;C=d[C>>0]|d[C+1>>0]<<8|d[C+2>>0]<<16|d[C+3>>0]<<24;D=A+(Ca*12|0)+4|0;D=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24;E=A+(Ca*12|0)+8|0;E=d[E>>0]|d[E+1>>0]<<8;do if(w<<24>>24==(a[A+(Ca*12|0)+10>>0]|0))if(w<<24>>24==1){w=((z|0)==(C|0)?(x&255)<<24>>24==(E&255)<<24>>24:0)&1;break}else if(w<<24>>24==3){if((x&255)<<24>>24==(E&255)<<24>>24)w=((z|0)==(C|0)?((x&65535)>>>8&255)<<24>>24==((E&65535)>>>8&255)<<24>>24:0)&(y|0)==(D|0);else w=0;w=w&1;break}else if(w<<24>>24==2){w=((y|0)==(D|0)?((x&65535)>>>8&255)<<24>>24==((E&65535)>>>8&255)<<24>>24:0)&1;break}else{w=0;break}else w=0;while(0);if((w|0)!=0|(ya|0)==4)break}else{if((ya|0)==4){ya=4;break}B=A+(x*12|0)|0}Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[B+0>>2];c[Ca+4>>2]=c[B+4>>2];c[Ca+8>>2]=c[B+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);w=e+3080|0;if((a[e+3035>>0]|0)!=0?ya>>>0<(c[w>>2]|0)>>>0:0){c[t>>2]=0;c[s>>2]=0;x=vd(e,f,g,u,v,0,t,0)|0;if(!(c[q>>2]|0))e=vd(e,f,g,u,v,0,s,1)|0;else e=0;if(e|x){a[p+(ya*12|0)+10>>0]=(e<<1)+x;b[p+(ya*12|0)+8>>1]=0;c[p+(ya*12|0)>>2]=c[t>>2];c[p+(ya*12|0)+4>>2]=c[s>>2];if((ya|0)==(m|0))break;ya=ya+1|0}}e=c[w>>2]|0;f:do if((c[q>>2]|0)==0&(ya|0)>1&ya>>>0>>0){s=$(ya+ -1|0,ya)|0;t=0;while(1){if((t|0)>=(s|0))break f;Ba=d[2912+(t<<1)>>0]|0;Ca=d[2913+(t<<1)>>0]|0;f=c[p+(Ba*12|0)>>2]|0;g=a[p+(Ba*12|0)+8>>0]|0;v=c[p+(Ca*12|0)+4>>2]|0;u=a[p+(Ca*12|0)+9>>0]|0;if(((a[p+(Ba*12|0)+10>>0]&1)!=0?(a[p+(Ca*12|0)+10>>0]&2)!=0:0)?!((f|0)==(v|0)?(c[k+(g<<24>>24<<2)+64>>2]|0)==(c[k+(u<<24>>24<<2)+260>>2]|0):0):0){a[p+(ya*12|0)+8>>0]=g;a[p+(ya*12|0)+9>>0]=u;a[p+(ya*12|0)+10>>0]=3;c[p+(ya*12|0)>>2]=f;c[p+(ya*12|0)+4>>2]=v;if((ya|0)==(m|0))break b;e=c[w>>2]|0;ya=ya+1|0}if(ya>>>0>>0)t=t+1|0;else break}}while(0);if(ya>>>0>>0){k=0;while(1){a[p+(ya*12|0)+10>>0]=((c[q>>2]|0)==0&1)<<1|1;c[p+(ya*12|0)>>2]=0;c[p+(ya*12|0)+4>>2]=0;Ca=(k|0)<(r|0)?k&255:0;a[p+(ya*12|0)+8>>0]=Ca;a[p+(ya*12|0)+9>>0]=Ca;if((ya|0)==(m|0))break b;ya=ya+1|0;if(ya>>>0>=(c[w>>2]|0)>>>0)break b;k=k+1|0}}}while(0);q=p+(m*12|0)|0;p=p+(m*12|0)+10|0;if((a[p>>0]|0)!=3){c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}if((j+h|0)!=12){c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}a[p>>0]=1;c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}function sd(d,e,f,g,h,j,k,l,m,n,o){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;k=i;i=i+32|0;j=k;r=k+16|0;q=k+12|0;l=k+8|0;H=c[d+136>>2]|0;z=c[(c[d+3508>>2]|0)+16>>2]|0;u=d+200|0;F=c[u>>2]|0;A=c[F+13156>>2]|0;x=j;c[x>>2]=0;c[x+4>>2]=0;x=c[H+31292>>2]|0;B=c[H+31300>>2]|0;C=c[H+31296>>2]|0;E=c[H+31308>>2]|0;p=a[m+o+8>>0]|0;s=(o|0)==0&1;t=e+ -1|0;w=h+f|0;if(((c[H+31288>>2]|0)!=0?(H=c[F+13084>>2]|0,(a[z+((($(w>>H,A)|0)+(t>>H)|0)*12|0)+10>>0]|0)!=0):0)?(w|0)<(c[F+13124>>2]|0):0){H=c[F+13080>>2]|0;if((w>>H|0)>=(f>>H|0)?(t>>H|0)>=(e>>H|0):0){I=c[F+13072>>2]|0;D=c[F+13164>>2]|0;J=D+2|0;G=($(f>>I&D,J)|0)+(e>>I&D)|0;H=c[(c[d+204>>2]|0)+1684>>2]|0;G=(c[H+(($(w>>I&D,J)|0)+(t>>I&D)<<2)>>2]|0)<=(c[H+(G<<2)>>2]|0)}else G=1}else G=0;D=w+ -1|0;if(!x)H=0;else{H=c[F+13084>>2]|0;H=(a[z+((($(D>>H,A)|0)+(t>>H)|0)*12|0)+10>>0]|0)!=0}x=G|H;if(G){J=c[F+13084>>2]|0;if((td(d,t>>J,w>>J,o,r,o,p)|0)==0?(J=c[(c[u>>2]|0)+13084>>2]|0,(td(d,t>>J,w>>J,s,r,o,p)|0)==0):0)v=12;else F=1}else v=12;do if((v|0)==12){if(H){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,D>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,D>>J,s,r,o,p)|0){F=1;break}}if(G){J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,w>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,w>>J,s,r,o,p)|0){F=1;break}}if(H){J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,D>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,D>>J,s,r,o,p)|0){F=1;break}}F=0}while(0);D=g+e|0;w=f+ -1|0;if(((E|0)!=0?(y=c[u>>2]|0,J=c[y+13084>>2]|0,(a[z+((($(w>>J,A)|0)+(D>>J)|0)*12|0)+10>>0]|0)!=0):0)?(D|0)<(c[y+13120>>2]|0):0){J=c[y+13080>>2]|0;if((w>>J|0)>=(f>>J|0)?(D>>J|0)>=(e>>J|0):0){H=c[y+13072>>2]|0;I=c[y+13164>>2]|0;G=I+2|0;E=($(f>>H&I,G)|0)+(e>>H&I)|0;J=c[(c[d+204>>2]|0)+1684>>2]|0;E=(c[J+(($(w>>H&I,G)|0)+(D>>H&I)<<2)>>2]|0)<=(c[J+(E<<2)>>2]|0)}else E=1}else E=0;y=D+ -1|0;if(!C)C=0;else{C=c[(c[u>>2]|0)+13084>>2]|0;C=(a[z+((($(w>>C,A)|0)+(y>>C)|0)*12|0)+10>>0]|0)!=0}if(!B)z=0;else{J=c[(c[u>>2]|0)+13084>>2]|0;z=(a[z+((($(w>>J,A)|0)+(t>>J)|0)*12|0)+10>>0]|0)!=0}if(E){J=c[(c[u>>2]|0)+13084>>2]|0;if((td(d,D>>J,w>>J,o,q,o,p)|0)==0?(J=c[(c[u>>2]|0)+13084>>2]|0,(td(d,D>>J,w>>J,s,q,o,p)|0)==0):0)v=35;else A=1}else v=35;do if((v|0)==35){if(C){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,y>>J,w>>J,o,q,o,p)|0){A=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,y>>J,w>>J,s,q,o,p)|0){A=1;break}}if(z){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,w>>J,o,q,o,p)|0){A=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,w>>J,s,q,o,p)|0){A=1;break}}A=0}while(0);do if(!x){if(A){c[r>>2]=c[q>>2];F=1}if(E){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,D>>A,w>>A,o,q,o,p)|0;if(A)break;A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,D>>A,w>>A,s,q,o,p)|0}else A=0;if(C&(A|0)==0){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,y>>A,w>>A,o,q,o,p)|0;if(A)break;A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,y>>A,w>>A,s,q,o,p)|0}if(z&(A|0)==0){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,t>>A,w>>A,o,q,o,p)|0;if(!A){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,t>>A,w>>A,s,q,o,p)|0}}}while(0);t=(F|0)!=0;if(t){c[j>>2]=c[r>>2];s=1}else s=0;do if(A){if(t){J=c[r>>2]|0;q=c[q>>2]|0;if((J&65535)<<16>>16==(q&65535)<<16>>16?(J>>>16&65535)<<16>>16==(q>>>16&65535)<<16>>16:0)break}else q=c[q>>2]|0;r=s+1|0;c[j+(s<<2)>>2]=q;if(r>>>0<2)s=r;else{J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}}while(0);if(!((a[d+3035>>0]|0)!=0&(s|0)==(n|0))){J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}if(!(vd(d,e,f,g,h,p,l,o)|0)){J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}c[j+(n<<2)>>2]=c[l>>2];J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}function td(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;o=i;n=c[d+3508>>2]|0;m=c[n+16>>2]|0;n=c[n+20>>2]|0;f=($(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if(!(a[m+(f*12|0)+10>>0]&1<>0]<<2)+64>>2]|0)!=(c[n+(k*196|0)+(l<<2)+64>>2]|0)){d=0;i=o;return d|0}d=m+(f*12|0)+(h<<2)|0;d=e[d>>1]|e[d+2>>1]<<16;b[j>>1]=d;b[j+2>>1]=d>>>16;d=1;i=o;return d|0}function ud(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;m=i;o=d+3508|0;n=c[o>>2]|0;p=c[n+16>>2]|0;n=c[n+20>>2]|0;g=($(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if(!(a[p+(g*12|0)+10>>0]&1<>2]|0;if((c[n+(h*196|0)+(a[p+(g*12|0)+h+8>>0]<<2)+128>>2]|0)!=(f|0)){g=0;i=m;return g|0}n=p+(g*12|0)+(h<<2)|0;n=e[n>>1]|e[n+2>>1]<<16;b[j>>1]=n;b[j+2>>1]=n>>>16;if(f){g=1;i=m;return g|0}p=c[o>>2]|0;f=c[p+20>>2]|0;h=c[f+(h*196|0)+(a[(c[p+16>>2]|0)+(g*12|0)+h+8>>0]<<2)+64>>2]|0;k=c[f+(k*196|0)+(l<<2)+64>>2]|0;if((h|0)==(k|0)){g=1;i=m;return g|0}d=c[d+5816>>2]|0;l=(d|0)!=(h|0)?d-h|0:1;d=d-k|0;if((l+128|0)>>>0>255)k=l>>31^127;else k=l;l=k<<24>>24;if((d+128|0)>>>0>255)d=d>>31^127;g=(l|0)/2|0;d=($(d<<24>>24,(((k&255)<<24>>24>-2?g:0-g|0)+16384|0)/(l|0)|0)|0)+32>>6;if((d|0)<-4096)d=-4096;else d=(d|0)>4095?4095:d;k=$(n<<16>>16,d)|0;k=k+127+(k>>>31)|0;l=k>>8;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[j>>1]=l;n=$(n>>16,d)|0;n=n+127+(n>>>31)|0;d=n>>8;if((d+32768|0)>>>0>65535)d=n>>31^32767;b[j+2>>1]=d;g=1;i=m;return g|0}function vd(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;s=i;i=i+32|0;o=s+12|0;m=s;p=d+200|0;u=c[p>>2]|0;r=c[u+13156>>2]|0;n=c[(c[d+3508>>2]|0)+36>>2]|0;if(!n){b[k>>1]=0;b[k+2>>1]=0>>>16;w=0;i=s;return w|0}t=c[n+16>>2]|0;q=c[n+32>>2]|0;v=g+e|0;w=h+f|0;if(!t){w=0;i=s;return w|0}x=c[u+13080>>2]|0;if(((f>>x|0)==(w>>x|0)?(w|0)<(c[u+13124>>2]|0):0)?(v|0)<(c[u+13120>>2]|0):0){v=v&-16;w=w&-16;if((a[d+140>>0]|0)==1)u=c[p>>2]|0;u=c[u+13084>>2]|0;u=t+((($(w>>u,r)|0)+(v>>u)|0)*12|0)|0;c[m+0>>2]=c[u+0>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];u=qc(d,n,v,w)|0;c[o+0>>2]=c[m+0>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];u=wd(d,o,j,k,l,q,u)|0;if(u){x=u;i=s;return x|0}}e=(g>>1)+e&-16;h=(h>>1)+f&-16;x=c[(c[p>>2]|0)+13084>>2]|0;x=t+((($(h>>x,r)|0)+(e>>x)|0)*12|0)|0;c[m+0>>2]=c[x+0>>2];c[m+4>>2]=c[x+4>>2];c[m+8>>2]=c[x+8>>2];x=qc(d,n,e,h)|0;c[o+0>>2]=c[m+0>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];x=wd(d,o,j,k,l,q,x)|0;i=s;return x|0}function wd(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=i;k=c[(c[b+3508>>2]|0)+20>>2]|0;n=a[d+10>>0]|0;if(!(n<<24>>24)){r=0;i=m;return r|0}if(!(n&1)){r=xd(f,d+4|0,h,c[b+5816>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}if(n<<24>>24==3){n=b+5816|0;o=c[k+192>>2]|0;a:do if((o|0)>0){p=c[n>>2]|0;q=0;while(1){if((c[k+(q<<2)+64>>2]|0)>(p|0)){p=1;break a}q=q+1|0;if((q|0)>=(o|0)){p=0;break}}}else p=0;while(0);o=c[k+388>>2]|0;b:do if((o|0)>0){q=c[n>>2]|0;r=0;while(1){if((c[k+(r<<2)+260>>2]|0)>(q|0))break b;r=r+1|0;if((r|0)>=(o|0)){l=21;break}}}else l=21;while(0);if((l|0)==21?(p|0)==0:0)if(!g){r=xd(f,d,h,c[n>>2]|0,k,0,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=xd(f,d+4|0,h,c[n>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}if((a[b+3051>>0]|0)==1){r=xd(f,d,h,c[n>>2]|0,k,g,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=xd(f,d+4|0,h,c[n>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}}else if(n<<24>>24==1){r=xd(f,d,h,c[b+5816>>2]|0,k,g,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=0;i=m;return r|0}return 0} +function ic(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;s=i;i=i+16|0;w=s+8|0;t=s;z=e+136|0;v=c[z>>2]|0;K=c[q>>2]|0;c[w>>2]=K;M=c[q+4>>2]|0;A=w+4|0;c[A>>2]=M;y=c[r>>2]|0;c[t>>2]=y;J=c[r+4>>2]|0;x=t+4|0;c[x>>2]=J;q=a[v+31254>>0]|0;do if(q<<24>>24){if((o|0)==1){c[v+288>>2]=d[v+p+31268>>0];if((c[(c[e+200>>2]|0)+4>>2]|0)==3){c[v+292>>2]=d[v+p+31277>>0];c[v+296>>2]=d[v+p+31281>>0];break}else{c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0];break}}}else{c[v+288>>2]=d[v+31268>>0];c[v+292>>2]=d[v+31277>>0];c[v+296>>2]=d[v+31281>>0]}while(0);r=e+200|0;G=c[r>>2]|0;B=(c[G+13076>>2]|0)>>>0>>0;if(((!B?(c[G+13072>>2]|0)>>>0>>0:0)?(d[v+31255>>0]|0)>(o|0):0)?!(q<<24>>24!=0&(o|0)==0):0)q=(Gb(e,n)|0)&255;else{if((c[G+13088>>2]|0)==0?(c[v+31244>>2]|0)==0:0)G=(o|0)==0&(c[v+31248>>2]|0)!=0;else G=0;if(B)q=1;else q=(q<<24>>24!=0&(o|0)==0|G)&1}B=(n|0)>2;G=c[(c[r>>2]|0)+4>>2]|0;if(B)if(!G)L=y;else E=20;else if((G|0)==3)E=20;else L=y;do if((E|0)==20){G=(o|0)==0;if(!((K|0)==0&(G^1))){K=Hb(e,o)|0;c[w>>2]=K;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){M=Hb(e,o)|0;c[A>>2]=M}if(!G)E=25}else{K=0;E=25}if((E|0)==25)if(!y){L=0;break}L=Hb(e,o)|0;c[t>>2]=L;if((c[(c[r>>2]|0)+4>>2]|0)==2?q<<24>>24==0|(n|0)==3:0){J=Hb(e,o)|0;c[x>>2]=J}}while(0);if(!(q<<24>>24)){A=c[r>>2]|0;y=c[A+13072>>2]|0;x=1<>2]|0;if(((o|0)==0?(c[v+31244>>2]|0)!=1:0)&(K|0)==0&(L|0)==0)if((c[A+4>>2]|0)==2?(M|J|0)!=0:0)E=37;else o=1;else E=37;if((E|0)==37){o=Ib(e,o)|0;A=c[r>>2]|0}G=c[z>>2]|0;A=n-(c[A+13172>>2]|0)|0;z=G+31244|0;if((c[z>>2]|0)==1){I=1<>2]|0;L=c[K+4>>2]|0;if((L|0)==2){if(M){E=46;break}if(J){M=0;E=46;break}}if(!((c[z>>2]|0)!=1|(L|0)==0)){if(B|(L|0)==3){t=1<<(c[K+13172>>2]|0)+A;w=1<<(c[K+13184>>2]|0)+A;qd(e,f,g,t,w);mc(e,f,g,A,1);mc(e,f,g,A,2);if((c[(c[r>>2]|0)+4>>2]|0)!=2)break;M=(1<>2]|0)+n,qd(e,h,j,F,H),mc(e,h,j,n,1),mc(e,h,j,n,2),(c[(c[r>>2]|0)+4>>2]|0)==2):0){M=(1<>2]|0)+4>>2]|0)==2){F=(M|J|0)==0;E=48}else{F=1;E=48}a:do if((E|0)==48){E=e+204|0;do if((a[(c[E>>2]|0)+22>>0]|0)!=0?(D=G+300|0,(a[D>>0]|0)==0):0){M=ob(e)|0;J=G+280|0;c[J>>2]=M;if(M){M=(pb(e)|0)==1;H=c[J>>2]|0;if(M){H=0-H|0;c[J>>2]=H}}else H=0;a[D>>0]=1;M=(c[(c[r>>2]|0)+13192>>2]|0)/2|0;if((H|0)<(-26-M|0)|(H|0)>(M+25|0)){M=-1094995529;i=s;return M|0}else{Ob(e,k,l,m);break}}while(0);if((!((a[e+3068>>0]|0)==0|F)?(a[G+31256>>0]|0)==0:0)?(C=G+301|0,(a[C>>0]|0)==0):0){if(!(qb(e)|0)){a[G+302>>0]=0;a[G+303>>0]=0}else{l=c[E>>2]|0;if(!(a[l+1633>>0]|0))m=0;else{m=rb(e)|0;l=c[E>>2]|0}a[G+302>>0]=a[l+m+1634>>0]|0;a[G+303>>0]=a[(c[E>>2]|0)+m+1639>>0]|0}a[C>>0]=1}if((c[z>>2]|0)==1&(n|0)<4){m=c[G+288>>2]|0;if((m+ -6|0)>>>0<9)k=2;else k=(m+ -22|0)>>>0<9&1;m=c[G+292>>2]|0;if((m+ -6|0)>>>0<9)m=2;else m=(m+ -22|0)>>>0<9&1}else{k=0;m=0}l=G+304|0;a[l>>0]=0;if(I)Lb(e,f,g,n,k,0);k=c[r>>2]|0;C=c[k+4>>2]|0;if(C){if(!(B|(C|0)==3)){if((p|0)!=3)break;p=1<>2]|0)+n;l=0;do{if((c[z>>2]|0)==1){M=(l<>2]|0)Lb(e,h,(l<>2]|0)+4>>2]|0)==2?2:1)|0));w=0;while(1){if((c[z>>2]|0)==1){M=(w<>2]|0)Lb(e,h,(w<=(((c[(c[r>>2]|0)+4>>2]|0)==2?2:1)|0))break a}}h=1<<(c[k+13172>>2]|0)+A;j=1<<(c[k+13184>>2]|0)+A;do if((a[(c[E>>2]|0)+1630>>0]|0)==0|I^1)a[l>>0]=0;else{if(c[z>>2]|0){M=(c[G+296>>2]|0)==4;a[l>>0]=M&1;if(!M)break}else a[l>>0]=1;jc(e,0)}while(0);p=e+160|0;E=G+320|0;D=G+11680|0;C=1<0;B=e+(A+ -2<<2)+5856|0;F=G+284|0;I=0;do{if((c[z>>2]|0)==1){M=(I<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;G=c[L+36>>2]|0;H=c[r>>2]|0;M=$(g>>c[H+13184>>2],G)|0;H=(c[L+4>>2]|0)+(M+(f>>c[H+13172>>2]<>2]))|0;if(k){I=0;do{b[D+(I<<1)>>1]=($(b[E+(I<<1)>>1]|0,c[F>>2]|0)|0)>>>3;I=I+1|0}while((I|0)!=(C|0));I=C}else I=0;Ka[c[B>>2]&7](H,D,G)}else Lb(e,f,(I<>2]|0)+4>>2]|0)==2?2:1)|0));if(!(a[l>>0]|0))H=0;else{jc(e,1);H=0}do{if((c[z>>2]|0)==1){M=(H<>2]|0)){if(!(a[l>>0]|0))break;L=c[p>>2]|0;w=c[L+40>>2]|0;G=c[r>>2]|0;M=$(g>>c[G+13188>>2],w)|0;G=(c[L+8>>2]|0)+(M+(f>>c[G+13176>>2]<>2]))|0;if(k){H=0;do{b[D+(H<<1)>>1]=($(b[E+(H<<1)>>1]|0,c[F>>2]|0)|0)>>>3;H=H+1|0}while((H|0)!=(C|0));H=C}else H=0;Ka[c[B>>2]&7](G,D,w)}else Lb(e,f,(H<>2]|0)+4>>2]|0)==2?2:1)|0))}}while(0);if((o|0)!=0?(u=1<0):0){t=e+7596|0;r=0;do{w=$(r+g>>y,q)|0;h=0;do{a[(c[t>>2]|0)+((h+f>>y)+w)>>0]=1;h=h+x|0}while((h|0)<(u|0));r=r+x|0}while((r|0)<(u|0))}if(((a[e+3049>>0]|0)==0?(Pb(e,f,g,n),(a[(c[e+204>>2]|0)+40>>0]|0)!=0):0)?(a[v+31256>>0]|0)!=0:0)fc(e,f,g,n)}else{v=n+ -1|0;u=1<>2]|0;f=Jb(a,b)|0;if(!f){c[e+284>>2]=0;i=d;return}else{c[e+284>>2]=1-((Kb(a,b)|0)<<1)<>2]|0;t=c[h>>2]|0;u=c[h+32>>2]|0;y=c[e+200>>2]|0;w=c[y+13120>>2]|0;x=c[y+13124>>2]|0;z=b[j>>1]|0;h=z&3;A=b[j+2>>1]|0;j=A&3;r=c[e+2428>>2]|0;if((r|0)==1)r=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;else if(!r)r=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;else r=0;s=d[1408+m>>0]|0;k=(z<<16>>16>>2)+k|0;l=(A<<16>>16>>2)+l|0;A=$(l,u)|0;y=c[y+56>>2]|0;A=A+(k<>2]&1](v+320|0,A,B,u,m+7|0,n+7|0,k+ -3|0,l+ -3|0,w,x);z=v+((B*3|0)+z)+320|0;u=B}t=(h|0)!=0&1;v=(j|0)!=0&1;if(r){Ba[c[e+(s<<4)+(v<<3)+(t<<2)+6248>>2]&7](f,g,z,u,n,d[e+3101>>0]|0,o,p,h,j,m);i=q;return}else{La[c[e+(s<<4)+(v<<3)+(t<<2)+6088>>2]&7](f,g,z,u,n,h,j,m);i=q;return}}function lc(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;s=i;z=c[e+136>>2]|0;B=c[e+200>>2]|0;y=c[B+13172>>2]|0;x=c[B+13120>>2]>>y;A=c[B+13184>>2]|0;w=c[B+13124>>2]>>A;t=c[e+2428>>2]|0;if((t|0)==1)u=(a[(c[e+204>>2]|0)+37>>0]|0)!=0;else if(!t)u=(a[(c[e+204>>2]|0)+38>>0]|0)!=0;else u=0;t=d[1408+n>>0]|0;E=b[p+(k<<2)>>1]|0;D=y+2|0;v=E&(1<>1]|0;C=A+2|0;p=k&(1<>D)+l|0;m=(k>>C)+m|0;C=$(m,j)|0;k=c[B+56>>2]|0;C=C+(l<>2]&1](z+320|0,h+(C-j-B)|0,E,j,n+3|0,o+3|0,l+ -1|0,m+ -1|0,x,w);B=z+(E+B)+320|0;j=E}v=(v|0)!=0&1;w=(p|0)!=0&1;if(u){Ba[c[e+(t<<4)+(w<<3)+(v<<2)+7048>>2]&7](f,g,B,j,o,b[e+3102>>1]|0,q,r,y,A,n);i=s;return}else{La[c[e+(t<<4)+(w<<3)+(v<<2)+6888>>2]&7](f,g,B,j,o,y,A,n);i=s;return}}function mc(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,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;j=i;i=i+272|0;u=j+195|0;A=j+130|0;y=j+65|0;w=j;s=c[b+136>>2]|0;r=c[b+200>>2]|0;L=c[r+(h<<2)+13168>>2]|0;M=c[r+(h<<2)+13180>>2]|0;l=1<>2]|0;ha=l<>2]|0;N=e>>Z&ba;aa=f>>Z&ba;_=ba+2|0;Y=($(aa,_)|0)+N|0;T=c[b+204>>2]|0;U=c[T+1684>>2]|0;Y=c[U+(Y<<2)>>2]|0;n=c[b+160>>2]|0;k=c[n+(h<<2)+32>>2]|0;n=c[n+(h<<2)>>2]|0;m=($(k,f>>M)|0)+(e>>L)|0;o=n+m|0;K=c[r+13156>>2]|0;p=(h|0)==0;q=c[(p?s+288|0:s+292|0)>>2]|0;v=u+1|0;z=y+1|0;x=A+1|0;t=w+1|0;if(!(c[s+31288>>2]|0))ja=0;else ja=(Y|0)>(c[U+(N+ -1+($(ba&aa+(ha>>Z),_)|0)<<2)>>2]|0);ga=ja&1;R=c[s+31292>>2]|0;S=c[s+31300>>2]|0;P=c[s+31296>>2]|0;if(!(c[s+31304>>2]|0))U=0;else U=(Y|0)>(c[U+(($(_,aa+ -1|0)|0)+(ba&N+(fa>>Z))<<2)>>2]|0);N=U&1;aa=(ha<<1)+f|0;ba=r+13124|0;ea=c[ba>>2]|0;Z=ha+f|0;aa=((aa|0)>(ea|0)?ea:aa)-Z>>M;ea=(fa<<1)+e|0;Y=r+13120|0;ca=c[Y>>2]|0;_=fa+e|0;ea=((ea|0)>(ca|0)?ca:ea)-_>>L;ca=T+20|0;if((a[ca>>0]|0)==1){T=c[r+13084>>2]|0;ia=ha>>T;fa=fa>>T;ka=(1<>T;la=Z>>T;na=(c[r+13160>>2]|0)-la|0;na=(ia|0)>(na|0)?na:ia;if((na|0)>0){oa=c[(c[b+3508>>2]|0)+16>>2]|0;ga=0;ja=0;do{ga=(a[oa+((($(ja+la|0,K)|0)+ma|0)*12|0)+10>>0]|0)==0|ga;ja=ja+2|0}while((ja|0)<(na|0))}else ga=0}if(!((R|0)!=1|ka)){ja=e+ -1>>T;ka=f>>T;ma=(c[r+13160>>2]|0)-ka|0;ma=(ia|0)>(ma|0)?ma:ia;if((ma|0)>0){ia=c[(c[b+3508>>2]|0)+16>>2]|0;R=0;la=0;do{R=(a[ia+((($(la+ka|0,K)|0)+ja|0)*12|0)+10>>0]|0)==0|R;la=la+2|0}while((la|0)<(ma|0))}else R=0}if((S|0)==1){S=($(f+ -1>>T,K)|0)+(e+ -1>>T)|0;S=(a[(c[(c[b+3508>>2]|0)+16>>2]|0)+(S*12|0)+10>>0]|0)==0&1}ha=(ha|0)!=0;if(!((P|0)!=1|ha)){P=e>>T;ia=K-P|0;ia=(fa|0)>(ia|0)?ia:fa;if((ia|0)>0){ja=($(f+ -1>>T,K)|0)+P|0;la=c[(c[b+3508>>2]|0)+16>>2]|0;P=0;ka=0;do{P=(a[la+((ja+ka|0)*12|0)+10>>0]|0)==0|P;ka=ka+2|0}while((ka|0)<(ia|0))}else P=0}if(!(ha|U^1)){N=_>>T;U=K-N|0;U=(fa|0)>(U|0)?U:fa;if((U|0)>0){ha=($(f+ -1>>T,K)|0)+N|0;fa=c[(c[b+3508>>2]|0)+16>>2]|0;N=0;T=0;do{N=(a[fa+((ha+T|0)*12|0)+10>>0]|0)==0|N;T=T+2|0}while((T|0)<(U|0))}else N=0}U=v+0|0;T=U+64|0;do{a[U>>0]=128;U=U+1|0}while((U|0)<(T|0));U=y+0|0;T=U+65|0;do{a[U>>0]=128;U=U+1|0}while((U|0)<(T|0));fa=N}else fa=N;T=(S|0)!=0;if(T){oa=a[n+(m+~k)>>0]|0;a[u>>0]=oa;a[y>>0]=oa}U=(P|0)!=0;if(U)mf(z|0,n+(m-k)|0,l|0)|0;N=(fa|0)!=0;if(N?(da=l+1|0,mf(y+da|0,n+(l-k+m)|0,l|0)|0,W=$(d[n+(l+ -1-k+m+ea)>>0]|0,16843009)|0,V=l-ea|0,(V|0)>0):0){ea=ea+da|0;da=0;do{oa=y+(ea+da)|0;a[oa>>0]=W;a[oa+1>>0]=W>>8;a[oa+2>>0]=W>>16;a[oa+3>>0]=W>>24;da=da+4|0}while((da|0)<(V|0))}V=(R|0)!=0;if(V&(l|0)>0){da=m+ -1|0;W=0;do{oa=W;W=W+1|0;a[u+W>>0]=a[n+(da+($(oa,k)|0))>>0]|0}while((W|0)!=(l|0))}W=(ga|0)!=0;if(W){ea=aa+l|0;da=m+ -1|0;if((aa|0)>0){ha=l;do{oa=ha;ha=ha+1|0;a[u+ha>>0]=a[n+(da+($(oa,k)|0))>>0]|0}while((ha|0)<(ea|0))}ia=$(d[n+(da+($(ea+ -1|0,k)|0))>>0]|0,16843009)|0;ha=l-aa|0;if((ha|0)>0){ea=l+1+aa|0;da=0;do{oa=u+(ea+da)|0;a[oa>>0]=ia;a[oa+1>>0]=ia>>8;a[oa+2>>0]=ia>>16;a[oa+3>>0]=ia>>24;da=da+4|0}while((da|0)<(ha|0))}}do if((a[ca>>0]|0)==1?(oa=ga|R,Q=(oa|0)!=0,oa=oa|S,X=(oa|0)==0,(P|fa|oa|0)!=0):0){da=l<<1;ca=c[Y>>2]|0;if(((da<>L;ba=c[ba>>2]|0;if(((da<=(ba|0))da=ba-f>>M;aa=(W?aa:0)+l|0;if(!N)if((_|0)<(ca|0))Y=l;else Y=ca-e>>L;if(!W)if((Z|0)<(ba|0))Z=l;else Z=ba-f>>M;else Z=da;do if(X){do if((Y|0)>0){ba=c[r+13084>>2]|0;aa=$((-1<>ba,K)|0;_=c[(c[b+3508>>2]|0)+16>>2]|0;X=0;while(1){ca=X+1|0;if(!(a[_+((aa+((X<>ba)|0)*12|0)+10>>0]|0))break;if((ca|0)<(Y|0))X=ca;else{X=ca;break}}if((X|0)>0)if((e|0)>0){if((X|0)<=-1)break;aa=(-1<>2]|0;do{ba=X;X=X+ -1|0;oa=c[r+13084>>2]|0;oa=($(aa>>oa,K)|0)+((X<>oa)|0;if(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0)a[y+ba>>0]=a[y+(ba+1)>>0]|0}while((ba|0)>0)}else{aa=(-1<>2]|0;do{ba=X;X=X+ -1|0;oa=c[r+13084>>2]|0;oa=($(aa>>oa,K)|0)+((X<>oa)|0;if(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0)a[y+ba>>0]=a[y+(ba+1)>>0]|0}while((X|0)>0);a[y>>0]=a[z>>0]|0;break}}while(0);X=a[y>>0]|0;a[u>>0]=X}else{ca=(-1<>2]|0;if((oa|0)<=0){J=59;break}_=(aa<>X,K)|0)+(ca>>X)|0;da=c[ea>>2]|0;ba=c[da+16>>2]|0;if(!(a[ba+(oa*12|0)+10>>0]|0)){ea=_;break}}if((J|0)==59){ba=c[ea>>2]|0;da=ba;ba=c[ba+16>>2]|0;ea=(aa<>X,K)|0)+(ca>>X)|0)*12|0)+10>>0]|0)){X=a[y>>0]|0;break}if((Y|0)>0){ca=$((-1<>X,K)|0;da=0;while(1){ea=da+1|0;if(!(a[ba+((ca+((da<>X)|0)*12|0)+10>>0]|0))break;if((ea|0)<(Y|0))da=ea;else{da=ea;break}}if((da|0)>-1)J=68}else{da=0;J=68}a:do if((J|0)==68){ca=(-1<>X,K)|0)+((ea<>X)|0)*12|0)+10>>0]|0)a[y+da>>0]=a[y+(da+1)>>0]|0;if((da|0)<=0)break a;X=c[_>>2]|0;ba=c[aa>>2]|0;da=ea}}while(0);X=a[y>>0]|0;a[u>>0]=X}while(0);a[u>>0]=X;if(Q&(Z|0)>0){aa=$(X&255,16843009)|0;Q=(-1<>2]|0;_=0;do{oa=c[r+13084>>2]|0;oa=($((_<>oa,K)|0)+(Q>>oa)|0;if(!(a[(c[X+16>>2]|0)+(oa*12|0)+10>>0]|0))aa=$(d[u+((_|3)+1)>>0]|0,16843009)|0;else{oa=u+(_|1)|0;a[oa>>0]=aa;a[oa+1>>0]=aa>>8;a[oa+2>>0]=aa>>16;a[oa+3>>0]=aa>>24}_=_+4|0}while((_|0)<(Z|0))}if(!V?(O=$(d[u>>0]|0,16843009)|0,(l|0)>0):0){Q=0;do{oa=u+(Q|1)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24;Q=Q+4|0}while((Q|0)<(l|0))}do if(!W){O=$(d[u+l>>0]|0,16843009)|0;if((l|0)<=0)break;Q=l+1|0;X=0;do{oa=u+(Q+X)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24;X=X+4|0}while((X|0)<(l|0))}while(0);Q=(e|0)==0;O=(f|0)==0;_=(Z|0)>0;b:do if(Q|O){if(Q){if(_)Q=0;else break;while(1){oa=u+(Q|1)|0;a[oa>>0]=0;a[oa+1>>0]=0;a[oa+2>>0]=0;a[oa+3>>0]=0;Q=Q+4|0;if((Q|0)>=(Z|0))break b}}if(!_)break;_=$(d[u+Z>>0]|0,16843009)|0;X=(-1<>2]|0;Z=Z+ -1|0;do{oa=c[r+13084>>2]|0;oa=($((Z+ -3<>oa,K)|0)+(X>>oa)|0;aa=u+(Z+ -2)|0;if(!(a[(c[Q+16>>2]|0)+(oa*12|0)+10>>0]|0))_=$(d[aa>>0]|0,16843009)|0;else{a[aa>>0]=_;a[aa+1>>0]=_>>8;a[aa+2>>0]=_>>16;a[aa+3>>0]=_>>24}Z=Z+ -4|0}while((Z|0)>-1)}else{Q=(-1<>2]|0;ca=Q>>ba;if(_){aa=$(d[u+Z>>0]|0,16843009)|0;_=c[b+3508>>2]|0;Z=Z+ -1|0;do{oa=($((Z+ -3<>ba,K)|0)+ca|0;ca=u+(Z+ -2)|0;if(!(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0))aa=$(d[ca>>0]|0,16843009)|0;else{a[ca>>0]=aa;a[ca+1>>0]=aa>>8;a[ca+2>>0]=aa>>16;a[ca+3>>0]=aa>>24;ba=c[X>>2]|0}Z=Z+ -4|0;ca=Q>>ba}while((Z|0)>-1)}else _=c[b+3508>>2]|0;oa=($((-1<>ba,K)|0)+ca|0;if(!(a[(c[_+16>>2]|0)+(oa*12|0)+10>>0]|0))break;a[u>>0]=a[v>>0]|0}while(0);Q=a[u>>0]|0;a[y>>0]=Q;if(!((Y|0)>0&(O^1)))break;O=$(Q&255,16843009)|0;M=(-1<>2]|0;f=0;do{oa=c[r+13084>>2]|0;oa=($(M>>oa,K)|0)+((f<>oa)|0;if(!(a[(c[b+16>>2]|0)+(oa*12|0)+10>>0]|0))O=$(d[y+((f|3)+1)>>0]|0,16843009)|0;else{oa=y+(f|1)|0;a[oa>>0]=O;a[oa+1>>0]=O>>8;a[oa+2>>0]=O>>16;a[oa+3>>0]=O>>24}f=f+4|0}while((f|0)<(Y|0))}while(0);c:do if(!W){if(V){J=$(d[u+l>>0]|0,16843009)|0;if((l|0)<=0){J=148;break}K=l+1|0;L=0;while(1){oa=u+(K+L)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;L=L+4|0;if((L|0)>=(l|0)){J=148;break c}}}if(T){J=$(d[u>>0]|0,16843009)|0;K=l<<1;if((l|0)>0)I=0;else{J=151;break}while(1){oa=u+(I|1)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;I=I+4|0;if((I|0)>=(K|0)){J=151;break c}}}if(U){J=a[z>>0]|0;a[u>>0]=J;J=$(J&255,16843009)|0;I=l<<1;if((l|0)>0)K=0;else{J=153;break}while(1){oa=u+(K|1)|0;a[oa>>0]=J;a[oa+1>>0]=J>>8;a[oa+2>>0]=J>>16;a[oa+3>>0]=J>>24;K=K+4|0;if((K|0)>=(I|0)){J=153;break c}}}if(!N){a[u>>0]=-128;J=l<<1;L=(l|0)>0;if(L)K=0;else{J=148;break}do{oa=y+(K|1)|0;a[oa>>0]=-2139062144;a[oa+1>>0]=-2139062144>>8;a[oa+2>>0]=-2139062144>>16;a[oa+3>>0]=-2139062144>>24;K=K+4|0}while((K|0)<(J|0));if(L)K=0;else{J=148;break}while(1){oa=u+(K|1)|0;a[oa>>0]=-2139062144;a[oa+1>>0]=-2139062144>>8;a[oa+2>>0]=-2139062144>>16;a[oa+3>>0]=-2139062144>>24;K=K+4|0;if((K|0)>=(J|0)){J=148;break c}}}I=y+(l+1)|0;L=a[I>>0]|0;K=$(L&255,16843009)|0;H=(l|0)>0;if(H)J=0;else{a[u>>0]=L;break}do{oa=y+(J|1)|0;a[oa>>0]=K;a[oa+1>>0]=K>>8;a[oa+2>>0]=K>>16;a[oa+3>>0]=K>>24;J=J+4|0}while((J|0)<(l|0));I=a[I>>0]|0;a[u>>0]=I;I=$(I&255,16843009)|0;J=l<<1;if(H){H=0;do{oa=u+(H|1)|0;a[oa>>0]=I;a[oa+1>>0]=I>>8;a[oa+2>>0]=I>>16;a[oa+3>>0]=I>>24;H=H+4|0}while((H|0)<(J|0));J=156}else J=156}else J=148;while(0);if((J|0)==148)if((R|0)==0?(I=$(d[u+(l+1)>>0]|0,16843009)|0,(l|0)>0):0){J=0;do{oa=u+(J|1)|0;a[oa>>0]=I;a[oa+1>>0]=I>>8;a[oa+2>>0]=I>>16;a[oa+3>>0]=I>>24;J=J+4|0}while((J|0)<(l|0));J=151}else J=151;if((J|0)==151)if(!S){a[u>>0]=a[v>>0]|0;J=153}else J=153;if((J|0)==153)if((P|0)==0?(H=$(d[u>>0]|0,16843009)|0,(l|0)>0):0){I=0;do{oa=y+(I|1)|0;a[oa>>0]=H;a[oa+1>>0]=H>>8;a[oa+2>>0]=H>>16;a[oa+3>>0]=H>>24;I=I+4|0}while((I|0)<(l|0));J=156}else J=156;if(((J|0)==156?!N:0)?(G=$(d[y+l>>0]|0,16843009)|0,(l|0)>0):0){I=l+1|0;H=0;do{oa=y+(I+H)|0;a[oa>>0]=G;a[oa+1>>0]=G>>8;a[oa+2>>0]=G>>16;a[oa+3>>0]=G>>24;H=H+4|0}while((H|0)<(l|0))}G=a[u>>0]|0;a[y>>0]=G;d:do if(!(c[r+13112>>2]|0)){if(p){if((q|0)==1|(l|0)==4){t=z;break}}else if(((q|0)==1?1:(c[r+4>>2]|0)!=3)|(l|0)==4){t=z;break}oa=q+ -26|0;oa=(oa|0)>-1?oa:26-q|0;na=q+ -10|0;na=(na|0)>-1?na:10-q|0;if((((oa|0)>(na|0)?na:oa)|0)>(c[1664+(g+ -3<<2)>>2]|0)){if((p&(a[r+13061>>0]|0)!=0&(g|0)==5?(E=G&255,F=a[y+64>>0]|0,D=F&255,oa=D+E-(d[y+32>>0]<<1)|0,(((oa|0)>-1?oa:0-oa|0)|0)<8):0)?(B=u+64|0,C=a[B>>0]|0,oa=(C&255)+E-(d[u+32>>0]<<1)|0,(((oa|0)>-1?oa:0-oa|0)|0)<8):0){a[w>>0]=G;a[w+64>>0]=F;x=0;do{oa=x;x=x+1|0;a[w+x>>0]=(($(E,63-oa|0)|0)+32+($(D,x)|0)|0)>>>6}while((x|0)!=63);x=0;while(1){w=x+1|0;a[u+w>>0]=(($(G&255,63-x|0)|0)+32+($(C&255,w)|0)|0)>>>6;if((w|0)==63)break d;G=a[u>>0]|0;C=a[B>>0]|0;x=w}}B=l<<1;F=a[u+B>>0]|0;a[A+B>>0]=F;C=a[y+B>>0]|0;a[w+B>>0]=C;B=B+ -2|0;D=(B|0)>-1;if(D){E=B;while(1){oa=E+1|0;na=F;F=a[u+oa>>0]|0;a[A+oa>>0]=((na&255)+2+((F&255)<<1)+(d[u+E>>0]|0)|0)>>>2;if((E|0)<=0)break;else E=E+ -1|0}}oa=((d[v>>0]|0)+2+((G&255)<<1)+(d[z>>0]|0)|0)>>>2&255;a[A>>0]=oa;a[w>>0]=oa;if(D)while(1){oa=B+1|0;na=C;C=a[y+oa>>0]|0;a[w+oa>>0]=((na&255)+2+((C&255)<<1)+(d[y+B>>0]|0)|0)>>>2;if((B|0)<=0){v=x;break}else B=B+ -1|0}else v=x}else t=z}else t=z;while(0);if(!q){nc(o,t,v,k,g);i=j;return}else if((q|0)==1){if((l|0)>0){q=l;h=0;do{q=(d[v+h>>0]|0)+q+(d[t+h>>0]|0)|0;h=h+1|0}while((h|0)!=(l|0));q=q>>g+1;h=$(q,16843009)|0;r=0;do{s=($(r,k)|0)+m|0;g=0;do{oa=n+(s+g)|0;a[oa>>0]=h;a[oa+1>>0]=h>>8;a[oa+2>>0]=h>>16;a[oa+3>>0]=h>>24;g=g+4|0}while((g|0)<(l|0));r=r+1|0}while((r|0)!=(l|0))}else q=l>>g+1;if(!(p&(l|0)<32)){i=j;return}a[o>>0]=((q<<1)+2+(d[v>>0]|0)+(d[t>>0]|0)|0)>>>2;if((l|0)<=1){i=j;return}o=(q*3|0)+2|0;p=1;do{a[n+(p+m)>>0]=((d[t+p>>0]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(l|0));p=1;do{a[n+(($(p,k)|0)+m)>>0]=((d[v+p>>0]|0)+o|0)>>>2;p=p+1|0}while((p|0)!=(l|0));i=j;return}else{if(!(c[r+13104>>2]|0))m=0;else m=(a[s+31256>>0]|0)!=0;oc(o,t,v,k,h,q,l,m&1);i=j;return}}function nc(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;m=i;j=1<>0]|0,l-r|0)|0;s=r;r=r+1|0;u=$(d[h>>0]|0,r)|0;t=$(d[c+s>>0]|0,p)|0;a[b+(s+q)>>0]=v+j+u+t+($(d[k>>0]|0,n)|0)>>g}while((r|0)!=(j|0))}while((n|0)!=(j|0));i=m;return}function oc(c,e,f,g,h,j,k,l){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;i=i+112|0;o=m;n=a[1680+(j+ -2)>>0]|0;p=o+k|0;q=($(n,k)|0)>>5;if((j|0)>17){s=e+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{u=e+(s+ -1)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=o+(s+k)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1720+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[f+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;o=(k|0)>0;if(o){q=0;do{u=q;q=q+1|0;s=$(q,n)|0;r=s>>5;s=s&31;if(!s){r=r+1|0;s=$(u,g)|0;t=0;do{u=p+(r+t)|0;u=d[u>>0]|d[u+1>>0]<<8|d[u+2>>0]<<16|d[u+3>>0]<<24;v=c+(t+s)|0;a[v>>0]=u;a[v+1>>0]=u>>8;a[v+2>>0]=u>>16;a[v+3>>0]=u>>24;t=t+4|0}while((t|0)<(k|0))}else{t=32-s|0;v=$(u,g)|0;u=0;do{w=u+r|0;x=$(d[p+(w+1)>>0]|0,t)|0;a[c+(u+v)>>0]=(x+16+($(d[p+(w+2)>>0]|0,s)|0)|0)>>>5;w=u|1;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|2;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;w=u|3;x=w+r|0;y=$(d[p+(x+1)>>0]|0,t)|0;a[c+(w+v)>>0]=(y+16+($(d[p+(x+2)>>0]|0,s)|0)|0)>>>5;u=u+4|0}while((u|0)<(k|0))}}while((q|0)!=(k|0))}if(!((j|0)==26&(h|0)==0&(k|0)<32&(l|0)==0&o)){i=m;return}j=f+ -1|0;n=0;do{h=((d[f+n>>0]|0)-(d[j>>0]|0)>>1)+(d[e>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+($(n,g)|0)>>0]=h;n=n+1|0}while((n|0)!=(k|0));i=m;return}s=f+ -1|0;r=j+ -11|0;if(r>>>0<15&(q|0)<-1){if((k|0)>=0){s=0;do{x=f+(s+ -1)|0;x=d[x>>0]|d[x+1>>0]<<8|d[x+2>>0]<<16|d[x+3>>0]<<24;y=o+(s+k)|0;a[y>>0]=x;a[y+1>>0]=x>>8;a[y+2>>0]=x>>16;a[y+3>>0]=x>>24;s=s+4|0}while((s|0)<=(k|0))}if((q|0)<0){r=b[1720+(r<<1)>>1]|0;do{a[o+(q+k)>>0]=a[e+((($(r,q)|0)+128>>8)+ -1)>>0]|0;q=q+1|0}while((q|0)!=0)}}else p=s;q=(k|0)>0;if(q){o=0;do{r=o;o=o+1|0;t=$(o,n)|0;u=t>>5;t=t&31;if(!t){s=u+1|0;t=0;do{a[c+(($(t,g)|0)+r)>>0]=a[p+(s+t)>>0]|0;t=t+1|0}while((t|0)!=(k|0))}else{s=32-t|0;v=0;do{y=v+u|0;x=$(d[p+(y+1)>>0]|0,s)|0;a[c+(($(v,g)|0)+r)>>0]=(x+16+($(d[p+(y+2)>>0]|0,t)|0)|0)>>>5;v=v+1|0}while((v|0)!=(k|0))}}while((o|0)!=(k|0))}if(!((j|0)==10&(h|0)==0&(k|0)<32&(l|0)==0&q)){i=m;return}g=e+ -1|0;n=0;do{j=((d[e+n>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(j>>>0>255)j=0-j>>31;a[c+n>>0]=j;j=n|1;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|2;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;j=n|3;h=((d[e+j>>0]|0)-(d[g>>0]|0)>>1)+(d[f>>0]|0)|0;if(h>>>0>255)h=0-h>>31;a[c+j>>0]=h;n=n+4|0}while((n|0)<(k|0));i=m;return}function pc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;g=i;h=c[e>>2]|0;if(!h){i=g;return}if(!(c[h+304>>2]|0)){i=g;return}h=e+70|0;f=(d[h>>0]|0)&(f^255)&255;a[h>>0]=f;if(f<<24>>24){i=g;return}Qd(c[b+4>>2]|0,e+4|0);ue(e+56|0);c[e+16>>2]=0;ue(e+64|0);ue(e+60|0);c[e+24>>2]=0;c[e+20>>2]=0;c[e+36>>2]=0;i=g;return}function qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+200>>2]|0;f=c[g+13080>>2]|0;e=($(e>>f,c[g+13128>>2]|0)|0)+(d>>f)|0;return c[(c[b+24>>2]|0)+(c[(c[(c[a+204>>2]|0)+1668>>2]|0)+(e<<2)>>2]<<2)>>2]|0}function rc(a){a=a|0;var b=0,c=0;b=i;c=0;do{pc(a,a+(c*72|0)+3512|0,6);c=c+1|0}while((c|0)!=32);i=b;return}function sc(a){a=a|0;var b=0,c=0;b=i;c=0;do{pc(a,a+(c*72|0)+3512|0,-1);c=c+1|0}while((c|0)!=32);i=b;return}function tc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;h=d+7616|0;k=0;do{if(((c[(c[d+(k*72|0)+3512>>2]|0)+304>>2]|0)!=0?(b[d+(k*72|0)+3580>>1]|0)==(b[h>>1]|0):0)?(c[d+(k*72|0)+3544>>2]|0)==(f|0):0){e=-1094995529;j=8;break}k=k+1|0}while(k>>>0<32);if((j|0)==8){i=g;return e|0}j=uc(d)|0;if(!j){k=-12;i=g;return k|0}c[e>>2]=c[j>>2];c[d+3508>>2]=j;a[j+70>>0]=(a[d+2438>>0]|0)==0?2:3;c[j+32>>2]=f;b[j+68>>1]=b[h>>1]|0;k=j+40|0;j=(c[d+200>>2]|0)+20|0;c[k+0>>2]=c[j+0>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];k=0;i=g;return k|0}function uc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;f=0;while(1){d=a+(f*72|0)+3512|0;j=f+1|0;if(!(c[(c[d>>2]|0)+304>>2]|0))break;if(j>>>0<32)f=j;else{a=0;e=13;break}}if((e|0)==13){i=b;return a|0}if((Pd(c[a+4>>2]|0,a+(f*72|0)+3516|0,1)|0)<0){j=0;i=b;return j|0}k=c[a+200>>2]|0;j=a+(f*72|0)+3540|0;c[j>>2]=$(c[k+13132>>2]|0,c[k+13128>>2]|0)|0;k=se((c[a+7660>>2]|0)*392|0)|0;e=a+(f*72|0)+3576|0;c[e>>2]=k;if(((k|0)!=0?(g=ye(c[a+1428>>2]|0)|0,c[a+(f*72|0)+3568>>2]=g,(g|0)!=0):0)?(c[a+(f*72|0)+3528>>2]=c[g+4>>2],h=ye(c[a+1432>>2]|0)|0,c[a+(f*72|0)+3572>>2]=h,(h|0)!=0):0){h=c[h+4>>2]|0;f=a+(f*72|0)+3536|0;c[f>>2]=h;g=c[j>>2]|0;a:do if((g|0)>0){j=0;while(1){c[h+(j<<2)>>2]=c[(c[e>>2]|0)+4>>2];j=j+1|0;if((j|0)>=(g|0))break a;h=c[f>>2]|0}}while(0);j=a+7772|0;k=c[d>>2]|0;c[k+244>>2]=(c[j>>2]|0)==1&1;c[k+240>>2]=((c[j>>2]|0)+ -1|0)>>>0<2&1;k=d;i=b;return k|0}pc(a,d,-1);k=0;i=b;return k|0}function vc(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;k=d+3034|0;j=d+5816|0;h=d+7618|0;f=(f|0)==0;n=d+7616|0;m=d+200|0;o=0;while(1){if((a[k>>0]|0)==1){q=0;do{p=d+(q*72|0)+3512|0;if(((a[d+(q*72|0)+3582>>0]&8)==0?(c[d+(q*72|0)+3544>>2]|0)!=(c[j>>2]|0):0)?(b[d+(q*72|0)+3580>>1]|0)==(b[h>>1]|0):0)pc(d,p,1);q=q+1|0}while((q|0)!=32);p=0;r=2147483647;q=0}else{p=0;r=2147483647;q=0}do{if((a[d+(p*72|0)+3582>>0]&1)!=0?(b[d+(p*72|0)+3580>>1]|0)==(b[h>>1]|0):0){s=c[d+(p*72|0)+3544>>2]|0;t=(s|0)<(r|0);o=t?p:o;r=t?s:r;q=q+1|0}p=p+1|0}while((p|0)!=32);if(((f?(b[h>>1]|0)==(b[n>>1]|0):0)?(l=c[m>>2]|0,(l|0)!=0):0)?(q|0)<=(c[l+(((c[l+72>>2]|0)+ -1|0)*12|0)+80>>2]|0):0){d=0;h=23;break}if(q){h=17;break}p=b[h>>1]|0;if(p<<16>>16==(b[n>>1]|0)){d=0;h=23;break}b[h>>1]=(p&65535)+1&255}if((h|0)==17){h=d+(o*72|0)+3512|0;e=Fe(e,c[h>>2]|0)|0;if(!(a[d+(o*72|0)+3582>>0]&8))pc(d,h,1);else pc(d,h,9);t=(e|0)<0?e:1;i=g;return t|0}else if((h|0)==23){i=g;return d|0}return 0}function wc(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;f=e+7618|0;h=e+5816|0;k=0;j=0;do{if((a[e+(j*72|0)+3582>>0]|0)!=0?(b[e+(j*72|0)+3580>>1]|0)==(b[f>>1]|0):0)k=((c[e+(j*72|0)+3544>>2]|0)!=(c[h>>2]|0)&1)+k|0;j=j+1|0}while((j|0)!=32);j=c[e+200>>2]|0;if(!j){i=g;return}if((k|0)<(c[j+(((c[j+72>>2]|0)+ -1|0)*12|0)+76>>2]|0)){i=g;return}else{k=0;j=2147483647}do{l=a[e+(k*72|0)+3582>>0]|0;if(l<<24>>24!=0?(b[e+(k*72|0)+3580>>1]|0)==(b[f>>1]|0):0){m=c[e+(k*72|0)+3544>>2]|0;j=(l<<24>>24==1?(m|0)!=(c[h>>2]|0):0)&(m|0)<(j|0)?m:j}k=k+1|0}while((k|0)!=32);l=0;do{k=e+(l*72|0)+3582|0;h=d[k>>0]|0;if(((h&1|0)!=0?(b[e+(l*72|0)+3580>>1]|0)==(b[f>>1]|0):0)?(c[e+(l*72|0)+3544>>2]|0)<=(j|0):0)a[k>>0]=h|8;l=l+1|0}while((l|0)!=32);i=g;return}function xc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;d=i;i=i+208|0;e=d+12|0;g=d;l=(c[b+2428>>2]|0)==0;f=b+3508|0;k=c[f>>2]|0;o=c[k+28>>2]|0;j=c[(c[(c[b+204>>2]|0)+1668>>2]|0)+(c[b+2420>>2]<<2)>>2]|0;n=c[b+5824>>2]|0;m=k+64|0;r=c[m>>2]|0;if(n>>>0>=(((c[r+8>>2]|0)>>>0)/392|0)>>>0){A=-1094995529;i=d;return A|0}p=k+24|0;if((j|0)<(o|0)?(c[(c[p>>2]|0)+(j<<2)>>2]=(c[r+4>>2]|0)+(n*392|0),q=j+1|0,(q|0)!=(o|0)):0)do{c[(c[p>>2]|0)+(q<<2)>>2]=(c[(c[m>>2]|0)+4>>2]|0)+(n*392|0);q=q+1|0}while((q|0)!=(o|0));c[k+20>>2]=c[(c[p>>2]|0)+(j<<2)>>2];if(((c[b+1824>>2]|0)+(c[b+1628>>2]|0)|0)==(0-(c[b+2216>>2]|0)|0)){A=-1094995529;i=d;return A|0}q=l?2:1;n=g+4|0;m=g+8|0;o=e+192|0;r=b+3051|0;s=b+3052|0;k=0;l=0;a:while(1){jf(e|0,0,196)|0;j=c[(c[f>>2]|0)+20>>2]|0;u=j+(k*196|0)|0;p=l<<24>>24!=0&1;c[g>>2]=p;c[n>>2]=p^1;c[m>>2]=3;p=b+(k<<2)+3036|0;t=c[p>>2]|0;if(!t)A=0;else{A=0;v=0;while(1){y=c[g+(v<<2)>>2]|0;x=c[b+(y*196|0)+1628>>2]|0;b:do if((x|0)>0){w=(v|0)==2&1;z=0;do{if((A|0)>=16)break b;c[e+(A<<2)+64>>2]=c[b+(y*196|0)+(z<<2)+1500>>2];c[e+(c[o>>2]<<2)>>2]=c[b+(y*196|0)+(z<<2)+1436>>2];c[e+(c[o>>2]<<2)+128>>2]=w;A=(c[o>>2]|0)+1|0;c[o>>2]=A;z=z+1|0}while((z|0)<(x|0))}while(0);v=v+1|0;if((v|0)!=3)continue;if(A>>>0>>0)v=0;else break}}if(a[b+k+3032>>0]|0){if(t){t=j+(k*196|0)+192|0;v=0;do{u=c[b+(k<<7)+(v<<2)+2776>>2]|0;if((u|0)>=(A|0)){e=-1094995529;b=24;break a}c[j+(k*196|0)+(v<<2)+64>>2]=c[e+(u<<2)+64>>2];c[j+(k*196|0)+(v<<2)>>2]=c[e+(u<<2)>>2];c[j+(k*196|0)+(v<<2)+128>>2]=c[e+(u<<2)+128>>2];c[t>>2]=(c[t>>2]|0)+1;v=v+1|0}while(v>>>0<(c[p>>2]|0)>>>0)}}else{mf(u|0,e|0,196)|0;A=j+(k*196|0)+192|0;z=c[A>>2]|0;y=c[p>>2]|0;c[A>>2]=z>>>0>y>>>0?y:z}if((a[r>>0]|0)==l<<24>>24?(h=c[s>>2]|0,h>>>0<(c[j+(k*196|0)+192>>2]|0)>>>0):0)c[(c[f>>2]|0)+36>>2]=c[j+(k*196|0)+(h<<2)>>2];l=l+1<<24>>24;k=l&255;if(k>>>0>=q>>>0){e=0;b=24;break}}if((b|0)==24){i=d;return e|0}return 0}function yc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;f=c[b+2608>>2]|0;if(!f){c[b+1824>>2]=0;c[b+1628>>2]=0;k=0;i=e;return k|0}h=b+3508|0;g=0;do{if((b+(g*72|0)+3512|0)!=(c[h>>2]|0)){k=b+(g*72|0)+3582|0;a[k>>0]=d[k>>0]&249}g=g+1|0}while((g|0)!=32);c[b+1628>>2]=0;c[b+1824>>2]=0;c[b+2020>>2]=0;c[b+2216>>2]=0;c[b+2412>>2]=0;j=f+4|0;a:do if((c[j>>2]|0)>0){g=b+5816|0;h=0;while(1){if(!(a[f+h+136>>0]|0))k=2;else k=h>>>0>=(c[f>>2]|0)>>>0&1;k=zc(b,b+(k*196|0)+1436|0,(c[f+(h<<2)+8>>2]|0)+(c[g>>2]|0)|0,2)|0;h=h+1|0;if((k|0)<0)break;if((h|0)>=(c[j>>2]|0))break a}i=e;return k|0}while(0);f=b+2772|0;b:do if(!(a[f>>0]|0))f=0;else{g=0;while(1){k=zc(b,b+(((a[b+g+2740>>0]|0)!=0?3:4)*196|0)+1436|0,c[b+(g<<2)+2612>>2]|0,4)|0;g=g+1|0;if((k|0)<0)break;if((g|0)>=(d[f>>0]|0)){f=0;break b}}i=e;return k|0}while(0);do{pc(b,b+(f*72|0)+3512|0,0);f=f+1|0}while((f|0)!=32);k=0;i=e;return k|0}function zc(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=e+200|0;o=(1<>2]|0)+64>>2])+ -1|0;l=e+7616|0;q=0;while(1){m=e+(q*72|0)+3512|0;if(((c[(c[m>>2]|0)+304>>2]|0)!=0?(b[e+(q*72|0)+3580>>1]|0)==(b[l>>1]|0):0)?(c[e+(q*72|0)+3544>>2]&o|0)==(g|0):0)break;q=q+1|0;if(q>>>0>=32){q=0;p=6;break}}a:do if((p|0)==6)while(1){m=e+(q*72|0)+3512|0;if((c[(c[m>>2]|0)+304>>2]|0)!=0?(b[e+(q*72|0)+3580>>1]|0)==(b[l>>1]|0):0){p=c[e+(q*72|0)+3544>>2]|0;if((p|0)==(g|0))break a;if((p&o|0)==(g|0))break a}q=q+1|0;if(q>>>0>=32){m=0;break}else p=6}while(0);if((m|0)==(c[e+3508>>2]|0)){q=-1094995529;i=j;return q|0}if(!m){m=uc(e)|0;if(!m){q=-12;i=j;return q|0}p=c[k>>2]|0;o=c[m>>2]|0;if(!(c[p+56>>2]|0)){o=c[o+304>>2]|0;if((o|0)!=0?(jf(c[o+4>>2]|0,1<<(c[p+52>>2]|0)+ -1&255|0,c[o+8>>2]|0)|0,n=c[(c[m>>2]|0)+308>>2]|0,(n|0)!=0):0){o=1;do{o=o+1|0;jf(c[n+4>>2]|0,1<<(c[(c[k>>2]|0)+52>>2]|0)+ -1&255|0,c[n+8>>2]|0)|0;n=c[(c[m>>2]|0)+(o<<2)+304>>2]|0}while((n|0)!=0)}}else if(c[o>>2]|0){n=0;do{if((c[p+13124>>2]>>c[p+(n<<2)+13180>>2]|0)>0){o=0;do{if((c[p+13120>>2]>>c[p+(n<<2)+13168>>2]|0)>0){q=p;p=0;do{r=1<<(c[q+52>>2]|0)+ -1&65535;q=c[m>>2]|0;q=(c[q+(n<<2)>>2]|0)+(($(c[q+(n<<2)+32>>2]|0,o)|0)+(p<<1))|0;a[q>>0]=r;a[q+1>>0]=r>>8;p=p+1|0;q=c[k>>2]|0}while((p|0)<(c[q+13120>>2]>>c[q+(n<<2)+13168>>2]|0));p=q}o=o+1|0}while((o|0)<(c[p+13124>>2]>>c[p+(n<<2)+13180>>2]|0));o=c[m>>2]|0}n=n+1|0}while((c[o+(n<<2)>>2]|0)!=0)}c[m+32>>2]=g;b[m+68>>1]=b[l>>1]|0;a[m+70>>0]=0}r=f+192|0;c[f+(c[r>>2]<<2)+64>>2]=c[m+32>>2];c[f+(c[r>>2]<<2)>>2]=m;c[r>>2]=(c[r>>2]|0)+1;r=m+70|0;a[r>>0]=d[r>>0]&249|h;r=0;i=j;return r|0}function Ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;e=1<>2]|0)+64>>2];f=c[a+5820>>2]|0;g=(f|0)%(e|0)|0;f=f-g|0;if((g|0)>(b|0)?(g-b|0)>=((e|0)/2|0|0):0)f=f+e|0;else if((g|0)<(b|0))f=f-((b-g|0)>((e|0)/2|0|0)?e:0)|0;i=d;return(((c[a+3500>>2]|0)+ -16|0)>>>0<3?0:f)+b|0}function Bc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=c[b+2608>>2]|0;if(e){j=c[e>>2]|0;if(!j){g=0;h=0}else{g=j>>>0>1;h=0;f=0;do{f=((a[e+h+136>>0]|0)!=0&1)+f|0;h=h+1|0}while(h>>>0>>0);g=g?j:1;h=f}f=c[e+4>>2]|0;if((g|0)<(f|0))do{h=((a[e+g+136>>0]|0)!=0&1)+h|0;g=g+1|0}while((g|0)<(f|0))}else h=0;e=a[b+2772>>0]|0;if(!(e<<24>>24)){j=h;i=d;return j|0}f=e&255;e=0;do{h=((a[b+e+2740>>0]|0)!=0&1)+h|0;e=e+1|0}while((e|0)<(f|0));i=d;return h|0}function Cc(){var b=0,c=0,d=0,e=0,f=0;b=i;if(!(a[1752]|0))c=0;else{i=b;return}do{d=0;do{f=($(d<<1|1,c)|0)&127;e=f>>>0>63;f=e?f+ -64|0:f;e=e?-1:1;if((f|0)>31){f=64-f|0;e=0-e|0}a[1752+(c<<5)+d>>0]=$(a[2776+f>>0]|0,e)|0;d=d+1|0}while((d|0)!=32);c=c+1|0}while((c|0)!=32);i=b;return}function Dc(a,b){a=a|0;b=b|0;c[a>>2]=1;c[a+4>>2]=1;c[a+8>>2]=2;c[a+12>>2]=3;c[a+16>>2]=4;c[a+20>>2]=1;c[a+24>>2]=5;c[a+28>>2]=2;c[a+32>>2]=2;c[a+36>>2]=3;c[a+40>>2]=4;c[a+44>>2]=5;c[a+48>>2]=3;c[a+52>>2]=4;c[a+56>>2]=5;c[a+60>>2]=6;c[a+236>>2]=1;c[a+252>>2]=1;c[a+268>>2]=1;c[a+284>>2]=1;c[a+300>>2]=1;c[a+316>>2]=1;c[a+332>>2]=1;c[a+348>>2]=1;c[a+364>>2]=1;c[a+380>>2]=1;c[a+240>>2]=2;c[a+256>>2]=2;c[a+272>>2]=2;c[a+288>>2]=2;c[a+304>>2]=2;c[a+320>>2]=2;c[a+336>>2]=2;c[a+352>>2]=2;c[a+368>>2]=2;c[a+384>>2]=2;c[a+244>>2]=3;c[a+260>>2]=3;c[a+276>>2]=3;c[a+292>>2]=3;c[a+308>>2]=3;c[a+324>>2]=3;c[a+340>>2]=3;c[a+356>>2]=3;c[a+372>>2]=3;c[a+388>>2]=3;c[a+248>>2]=4;c[a+264>>2]=4;c[a+280>>2]=4;c[a+296>>2]=4;c[a+312>>2]=4;c[a+328>>2]=4;c[a+344>>2]=4;c[a+360>>2]=4;c[a+376>>2]=4;c[a+392>>2]=4;c[a+396>>2]=1;c[a+412>>2]=1;c[a+428>>2]=1;c[a+444>>2]=1;c[a+460>>2]=1;c[a+476>>2]=1;c[a+492>>2]=1;c[a+508>>2]=1;c[a+524>>2]=1;c[a+540>>2]=1;c[a+400>>2]=2;c[a+416>>2]=2;c[a+432>>2]=2;c[a+448>>2]=2;c[a+464>>2]=2;c[a+480>>2]=2;c[a+496>>2]=2;c[a+512>>2]=2;c[a+528>>2]=2;c[a+544>>2]=2;c[a+404>>2]=3;c[a+420>>2]=3;c[a+436>>2]=3;c[a+452>>2]=3;c[a+468>>2]=3;c[a+484>>2]=3;c[a+500>>2]=3;c[a+516>>2]=3;c[a+532>>2]=3;c[a+548>>2]=3;c[a+408>>2]=4;c[a+424>>2]=4;c[a+440>>2]=4;c[a+456>>2]=4;c[a+472>>2]=4;c[a+488>>2]=4;c[a+504>>2]=4;c[a+520>>2]=4;c[a+536>>2]=4;c[a+552>>2]=4;c[a+1036>>2]=1;c[a+1052>>2]=1;c[a+1068>>2]=1;c[a+1084>>2]=1;c[a+1100>>2]=1;c[a+1116>>2]=1;c[a+1132>>2]=1;c[a+1148>>2]=1;c[a+1164>>2]=1;c[a+1180>>2]=1;c[a+1040>>2]=5;c[a+1056>>2]=5;c[a+1072>>2]=5;c[a+1088>>2]=5;c[a+1104>>2]=5;c[a+1120>>2]=5;c[a+1136>>2]=5;c[a+1152>>2]=5;c[a+1168>>2]=5;c[a+1184>>2]=5;c[a+1044>>2]=6;c[a+1060>>2]=6;c[a+1076>>2]=6;c[a+1092>>2]=6;c[a+1108>>2]=6;c[a+1124>>2]=6;c[a+1140>>2]=6;c[a+1156>>2]=6;c[a+1172>>2]=6;c[a+1188>>2]=6;c[a+1048>>2]=7;c[a+1064>>2]=7;c[a+1080>>2]=7;c[a+1096>>2]=7;c[a+1112>>2]=7;c[a+1128>>2]=7;c[a+1144>>2]=7;c[a+1160>>2]=7;c[a+1176>>2]=7;c[a+1192>>2]=7;c[a+1196>>2]=1;c[a+1212>>2]=1;c[a+1228>>2]=1;c[a+1244>>2]=1;c[a+1260>>2]=1;c[a+1276>>2]=1;c[a+1292>>2]=1;c[a+1308>>2]=1;c[a+1324>>2]=1;c[a+1340>>2]=1;c[a+1200>>2]=5;c[a+1216>>2]=5;c[a+1232>>2]=5;c[a+1248>>2]=5;c[a+1264>>2]=5;c[a+1280>>2]=5;c[a+1296>>2]=5;c[a+1312>>2]=5;c[a+1328>>2]=5;c[a+1344>>2]=5;c[a+1204>>2]=6;c[a+1220>>2]=6;c[a+1236>>2]=6;c[a+1252>>2]=6;c[a+1268>>2]=6;c[a+1284>>2]=6;c[a+1300>>2]=6;c[a+1316>>2]=6;c[a+1332>>2]=6;c[a+1348>>2]=6;c[a+1208>>2]=7;c[a+1224>>2]=7;c[a+1240>>2]=7;c[a+1256>>2]=7;c[a+1272>>2]=7;c[a+1288>>2]=7;c[a+1304>>2]=7;c[a+1320>>2]=7;c[a+1336>>2]=7;c[a+1352>>2]=7;c[a+64>>2]=1;c[a+68>>2]=1;c[a+72>>2]=2;c[a+1676>>2]=2;c[a+1680>>2]=3;c[a+1684>>2]=1;c[a+1688>>2]=2;c[a+1692>>2]=2;c[a+1696>>2]=3;c[a+1700>>2]=1;c[a+1704>>2]=2;return}function Ec(b,c,d,e,f,g){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;if((e|0)<=0){i=h;return}k=(d|0)>0;j=8-g|0;m=0;while(1){if(k){l=0;do{a[b+l>>0]=(Xd(f,g)|0)<>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==4)break;else j=j+2|0}h=h+1|0;if((h|0)==4)break;else{e=e+8|0;c=c+f|0}}i=g;return}function Gc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==8)break;else j=j+2|0}h=h+1|0;if((h|0)==8)break;else{e=e+16|0;c=c+f|0}}i=g;return}function Hc(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==16)break;else j=j+2|0}h=h+1|0;if((h|0)==16)break;else{e=e+32|0;c=c+f|0}}i=g;return}function Ic(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;h=0;while(1){j=e;k=0;while(1){l=c+k|0;m=(b[j>>1]|0)+(d[l>>0]|0)|0;if(m>>>0>255)m=0-m>>31;a[l>>0]=m;k=k+1|0;if((k|0)==32)break;else j=j+2|0}h=h+1|0;if((h|0)==32)break;else{e=e+64|0;c=c+f|0}}i=g;return}function Jc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c=c<<16>>16;e=7-c|0;c=1<0){f=1<0)g=0;else{i=d;return}while(1){h=a;j=0;while(1){b[h>>1]=(b[h>>1]|0)+f>>e;j=j+1|0;if((j|0)==(c|0))break;else h=h+2|0}g=g+1|0;if((g|0)==(c|0))break;else a=a+(c<<1)|0}i=d;return}if((c|0)<=0){i=d;return}e=0-e|0;f=0;while(1){g=a;h=0;while(1){b[g>>1]=b[g>>1]<>16);if(d){d=c+ -1|0;if((d|0)<=0){i=f;return}g=(c|0)>0;h=0;do{if(g){j=0;do{k=a+(j+c<<1)|0;b[k>>1]=(e[k>>1]|0)+(e[a+(j<<1)>>1]|0);j=j+1|0}while((j|0)!=(c|0))}a=a+(c<<1)|0;h=h+1|0}while((h|0)!=(d|0));i=f;return}if((c|0)<=0){i=f;return}d=(c|0)>1;h=0;while(1){if(d){j=b[a>>1]|0;g=1;do{k=a+(g<<1)|0;j=(e[k>>1]|0)+(j&65535)&65535;b[k>>1]=j;g=g+1|0}while((g|0)!=(c|0))}h=h+1|0;if((h|0)==(c|0))break;else a=a+(c<<1)|0}i=f;return}function Lc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=i;e=0;d=a;while(1){p=b[d>>1]|0;m=d+16|0;n=b[m>>1]|0;g=n+p|0;f=d+24|0;o=b[f>>1]|0;l=o+n|0;j=p-o|0;h=d+8|0;k=(b[h>>1]|0)*74|0;o=((p-n+o|0)*74|0)+64|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[m>>1]=n;m=(g*29|0)+64+(l*55|0)+k|0;n=m>>7;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[d>>1]=n;l=($(l,-29)|0)+64+(j*55|0)+k|0;m=l>>7;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[h>>1]=m;g=(g*55|0)+64+(j*29|0)-k|0;h=g>>7;if((h+32768|0)>>>0>65535)h=g>>31^32767;b[f>>1]=h;e=e+1|0;if((e|0)==4){d=0;break}else d=d+2|0}while(1){p=b[a>>1]|0;l=a+4|0;m=b[l>>1]|0;g=m+p|0;e=a+6|0;n=b[e>>1]|0;k=n+m|0;h=p-n|0;f=a+2|0;j=(b[f>>1]|0)*74|0;n=((p-m+n|0)*74|0)+2048|0;m=n>>12;if((m+32768|0)>>>0>65535)m=n>>31^32767;b[l>>1]=m;l=(g*29|0)+2048+(k*55|0)+j|0;m=l>>12;if((m+32768|0)>>>0>65535)m=l>>31^32767;b[a>>1]=m;k=($(k,-29)|0)+2048+(h*55|0)+j|0;l=k>>12;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[f>>1]=l;f=(g*55|0)+2048+(h*29|0)-j|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[e>>1]=g;d=d+1|0;if((d|0)==4)break;else a=a+8|0}i=c;return}function Mc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;c=i;f=0;e=a;while(1){l=b[e>>1]<<6;j=e+16|0;k=b[j>>1]<<6;g=k+l|0;k=l-k|0;l=e+8|0;m=b[l>>1]|0;d=e+24|0;n=b[d>>1]|0;h=(n*36|0)+(m*83|0)|0;m=($(n,-83)|0)+(m*36|0)|0;n=g+64+h|0;o=n>>7;if((o+32768|0)>>>0>65535)o=n>>31^32767;b[e>>1]=o;o=k+64+m|0;n=o>>7;if((n+32768|0)>>>0>65535)n=o>>31^32767;b[l>>1]=n;l=k-m+64|0;k=l>>7;if((k+32768|0)>>>0>65535)k=l>>31^32767;b[j>>1]=k;h=g-h+64|0;g=h>>7;if((g+32768|0)>>>0>65535)g=h>>31^32767;b[d>>1]=g;f=f+1|0;if((f|0)==4){e=0;break}else e=e+2|0}while(1){k=b[a>>1]<<6;h=a+4|0;l=b[h>>1]<<6;g=l+k|0;l=k-l|0;k=a+2|0;j=b[k>>1]|0;d=a+6|0;m=b[d>>1]|0;f=(m*36|0)+(j*83|0)|0;j=($(m,-83)|0)+(j*36|0)|0;m=g+2048+f|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[a>>1]=n;m=l+2048+j|0;n=m>>12;if((n+32768|0)>>>0>65535)n=m>>31^32767;b[k>>1]=n;k=l-j+2048|0;j=k>>12;if((j+32768|0)>>>0>65535)j=k>>31^32767;b[h>>1]=j;f=g-f+2048|0;g=f>>12;if((g+32768|0)>>>0>65535)g=f>>31^32767;b[d>>1]=g;e=e+1|0;if((e|0)==4)break;else a=a+8|0}i=c;return}function Nc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;i=i+64|0;j=h+48|0;p=h+32|0;f=h+16|0;g=h;q=(e|0)>8;r=e+4|0;k=j+4|0;l=j+8|0;m=j+12|0;o=0;r=(r|0)>8?8:r;n=d;while(1){c[p+0>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;w=(r|0)>1;s=0;do{if(w){t=p+(s<<2)|0;v=c[t>>2]|0;u=1;do{v=($(b[n+(u<<3<<1)>>1]|0,a[1752+(u<<2<<5)+s>>0]|0)|0)+v|0;u=u+2|0}while((u|0)<(r|0));c[t>>2]=v}s=s+1|0}while((s|0)!=4);v=b[n>>1]<<6;u=b[n+64>>1]<<6;w=u+v|0;u=v-u|0;v=b[n+32>>1]|0;t=b[n+96>>1]|0;s=(t*36|0)+(v*83|0)|0;v=($(t,-83)|0)+(v*36|0)|0;t=s+w|0;c[j>>2]=t;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-s;s=0;while(1){u=c[p+(s<<2)>>2]|0;v=t+64+u|0;w=v>>7;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[n+(s<<3<<1)>>1]=w;t=t-u+64|0;u=t>>7;if((u+32768|0)>>>0>65535)u=t>>31^32767;b[n+(7-s<<3<<1)>>1]=u;s=s+1|0;if((s|0)==4)break;t=c[j+(s<<2)>>2]|0}if((r|0)<8)r=(o&3|0)==0&(o|0)!=0?r+ -4|0:r;o=o+1|0;if((o|0)==8)break;else n=n+2|0}j=q?8:e;n=(j|0)>1;k=f+4|0;l=f+8|0;m=f+12|0;o=0;while(1){c[g+0>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;e=0;do{if(n){r=g+(e<<2)|0;p=c[r>>2]|0;q=1;do{p=($(b[d+(q<<1)>>1]|0,a[1752+(q<<2<<5)+e>>0]|0)|0)+p|0;q=q+2|0}while((q|0)<(j|0));c[r>>2]=p}e=e+1|0}while((e|0)!=4);v=b[d>>1]<<6;u=b[d+8>>1]<<6;w=u+v|0;u=v-u|0;v=b[d+4>>1]|0;p=b[d+12>>1]|0;e=(p*36|0)+(v*83|0)|0;v=($(p,-83)|0)+(v*36|0)|0;p=e+w|0;c[f>>2]=p;c[k>>2]=v+u;c[l>>2]=u-v;c[m>>2]=w-e;e=0;while(1){q=c[g+(e<<2)>>2]|0;r=p+2048+q|0;s=r>>12;if((s+32768|0)>>>0>65535)s=r>>31^32767;b[d+(e<<1)>>1]=s;p=p-q+2048|0;q=p>>12;if((q+32768|0)>>>0>65535)q=p>>31^32767;b[d+(7-e<<1)>>1]=q;e=e+1|0;if((e|0)==4)break;p=c[f+(e<<2)>>2]|0}o=o+1|0;if((o|0)==8)break;else d=d+16|0}i=h;return}function Oc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;j=i;i=i+192|0;t=j+160|0;u=j+128|0;m=j+112|0;l=j+96|0;g=j+64|0;h=j+32|0;f=j+16|0;k=j;s=(e|0)>16;v=e+4|0;n=m+4|0;o=m+8|0;p=m+12|0;r=0;v=(v|0)>16?16:v;q=d;while(1){c[u+0>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;A=(v|0)>1;z=0;do{if(A){y=u+(z<<2)|0;w=c[y>>2]|0;x=1;do{w=($(b[q+(x<<4<<1)>>1]|0,a[1752+(x<<1<<5)+z>>0]|0)|0)+w|0;x=x+2|0}while((x|0)<(v|0));c[y>>2]=w}z=z+1|0}while((z|0)!=8);c[l+0>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;z=0;do{x=l+(z<<2)|0;w=c[x>>2]|0;y=1;do{w=($(b[q+(y<<5<<1)>>1]|0,a[1752+(y<<2<<5)+z>>0]|0)|0)+w|0;y=y+2|0}while((y|0)<8);c[x>>2]=w;z=z+1|0}while((z|0)!=4);z=b[q>>1]<<6;y=b[q+256>>1]<<6;A=y+z|0;y=z-y|0;z=b[q+128>>1]|0;w=b[q+384>>1]|0;x=(w*36|0)+(z*83|0)|0;z=($(w,-83)|0)+(z*36|0)|0;w=x+A|0;c[m>>2]=w;c[n>>2]=z+y;c[o>>2]=y-z;c[p>>2]=A-x;x=0;while(1){A=c[l+(x<<2)>>2]|0;c[t+(x<<2)>>2]=A+w;c[t+(7-x<<2)>>2]=w-A;x=x+1|0;if((x|0)==4){w=0;break}w=c[m+(x<<2)>>2]|0}do{x=c[t+(w<<2)>>2]|0;y=c[u+(w<<2)>>2]|0;A=x+64+y|0;z=A>>7;if((z+32768|0)>>>0>65535)z=A>>31^32767;b[q+(w<<4<<1)>>1]=z;x=x-y+64|0;y=x>>7;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[q+(15-w<<4<<1)>>1]=y;w=w+1|0}while((w|0)!=8);if((v|0)<16)v=(r&3|0)==0&(r|0)!=0?v+ -4|0:v;r=r+1|0;if((r|0)==16)break;else q=q+2|0}o=s?16:e;p=(o|0)>1;l=f+4|0;m=f+8|0;n=f+12|0;q=0;while(1){c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;r=0;do{if(p){e=h+(r<<2)|0;t=c[e>>2]|0;s=1;do{t=($(b[d+(s<<1)>>1]|0,a[1752+(s<<1<<5)+r>>0]|0)|0)+t|0;s=s+2|0}while((s|0)<(o|0));c[e>>2]=t}r=r+1|0}while((r|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;t=0;do{r=k+(t<<2)|0;s=c[r>>2]|0;e=1;do{s=($(b[d+(e<<1<<1)>>1]|0,a[1752+(e<<2<<5)+t>>0]|0)|0)+s|0;e=e+2|0}while((e|0)<8);c[r>>2]=s;t=t+1|0}while((t|0)!=4);z=b[d>>1]<<6;y=b[d+16>>1]<<6;A=y+z|0;y=z-y|0;z=b[d+8>>1]|0;r=b[d+24>>1]|0;e=(r*36|0)+(z*83|0)|0;z=($(r,-83)|0)+(z*36|0)|0;r=e+A|0;c[f>>2]=r;c[l>>2]=z+y;c[m>>2]=y-z;c[n>>2]=A-e;e=0;while(1){A=c[k+(e<<2)>>2]|0;c[g+(e<<2)>>2]=A+r;c[g+(7-e<<2)>>2]=r-A;e=e+1|0;if((e|0)==4){r=0;break}r=c[f+(e<<2)>>2]|0}do{e=c[g+(r<<2)>>2]|0;s=c[h+(r<<2)>>2]|0;u=e+2048+s|0;t=u>>12;if((t+32768|0)>>>0>65535)t=u>>31^32767;b[d+(r<<1)>>1]=t;e=e-s+2048|0;s=e>>12;if((s+32768|0)>>>0>65535)s=e>>31^32767;b[d+(15-r<<1)>>1]=s;r=r+1|0}while((r|0)!=8);q=q+1|0;if((q|0)==16)break;else d=d+32|0}i=j;return}function Pc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;m=i;i=i+320|0;g=m+256|0;l=m+192|0;o=m+160|0;s=m+128|0;u=m+112|0;t=m+96|0;f=m+64|0;j=m+32|0;h=m+16|0;k=m;q=(e|0)>32;x=e+4|0;v=u+4|0;w=u+8|0;n=u+12|0;p=0;x=(x|0)>32?32:x;r=d;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));B=(x|0)>1;A=0;do{if(B){z=l+(A<<2)|0;y=c[z>>2]|0;C=1;do{y=($(b[r+(C<<5<<1)>>1]|0,a[1752+(C<<5)+A>>0]|0)|0)+y|0;C=C+2|0}while((C|0)<(x|0));c[z>>2]=y}A=A+1|0}while((A|0)!=16);c[s+0>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;y=(x|0)/2|0;z=(x|0)>3;A=0;do{if(z){D=s+(A<<2)|0;B=c[D>>2]|0;C=1;do{B=($(b[r+(C<<6<<1)>>1]|0,a[1752+(C<<1<<5)+A>>0]|0)|0)+B|0;C=C+2|0}while((C|0)<(y|0));c[D>>2]=B}A=A+1|0}while((A|0)!=8);c[t+0>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;c[t+12>>2]=0;A=0;do{B=t+(A<<2)|0;z=c[B>>2]|0;y=1;do{z=($(b[r+(y<<7<<1)>>1]|0,a[1752+(y<<2<<5)+A>>0]|0)|0)+z|0;y=y+2|0}while((y|0)<8);c[B>>2]=z;A=A+1|0}while((A|0)!=4);C=b[r>>1]<<6;B=b[r+1024>>1]<<6;D=B+C|0;B=C-B|0;C=b[r+512>>1]|0;y=b[r+1536>>1]|0;z=(y*36|0)+(C*83|0)|0;C=($(y,-83)|0)+(C*36|0)|0;y=z+D|0;c[u>>2]=y;c[v>>2]=C+B;c[w>>2]=B-C;c[n>>2]=D-z;z=0;while(1){D=c[t+(z<<2)>>2]|0;c[o+(z<<2)>>2]=D+y;c[o+(7-z<<2)>>2]=y-D;z=z+1|0;if((z|0)==4){y=0;break}y=c[u+(z<<2)>>2]|0}do{C=c[o+(y<<2)>>2]|0;D=c[s+(y<<2)>>2]|0;c[g+(y<<2)>>2]=D+C;c[g+(15-y<<2)>>2]=C-D;y=y+1|0}while((y|0)!=8);y=0;do{z=c[g+(y<<2)>>2]|0;A=c[l+(y<<2)>>2]|0;B=z+64+A|0;C=B>>7;if((C+32768|0)>>>0>65535)C=B>>31^32767;b[r+(y<<5<<1)>>1]=C;z=z-A+64|0;A=z>>7;if((A+32768|0)>>>0>65535)A=z>>31^32767;b[r+(31-y<<5<<1)>>1]=A;y=y+1|0}while((y|0)!=16);if((x|0)<32)x=(p&3|0)==0&(p|0)!=0?x+ -4|0:x;p=p+1|0;if((p|0)==32)break;else r=r+2|0}p=q?32:e;o=(p|0)>1;n=(p|0)/2|0;q=(p|0)>3;s=h+4|0;r=h+8|0;e=h+12|0;t=0;while(1){y=l+0|0;z=y+64|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));v=0;do{if(o){w=l+(v<<2)|0;u=c[w>>2]|0;x=1;do{u=($(b[d+(x<<1)>>1]|0,a[1752+(x<<5)+v>>0]|0)|0)+u|0;x=x+2|0}while((x|0)<(p|0));c[w>>2]=u}v=v+1|0}while((v|0)!=16);c[j+0>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;x=0;do{if(q){u=j+(x<<2)|0;w=c[u>>2]|0;v=1;do{D=v<<1;w=($(b[d+(D<<1)>>1]|0,a[1752+(D<<5)+x>>0]|0)|0)+w|0;v=v+2|0}while((v|0)<(n|0));c[u>>2]=w}x=x+1|0}while((x|0)!=8);c[k+0>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;u=0;do{v=k+(u<<2)|0;x=c[v>>2]|0;w=1;do{D=w<<2;x=($(b[d+(D<<1)>>1]|0,a[1752+(D<<5)+u>>0]|0)|0)+x|0;w=w+2|0}while((w|0)<8);c[v>>2]=x;u=u+1|0}while((u|0)!=4);C=b[d>>1]<<6;B=b[d+32>>1]<<6;D=B+C|0;B=C-B|0;C=b[d+16>>1]|0;u=b[d+48>>1]|0;v=(u*36|0)+(C*83|0)|0;C=($(u,-83)|0)+(C*36|0)|0;u=v+D|0;c[h>>2]=u;c[s>>2]=C+B;c[r>>2]=B-C;c[e>>2]=D-v;v=0;while(1){D=c[k+(v<<2)>>2]|0;c[f+(v<<2)>>2]=D+u;c[f+(7-v<<2)>>2]=u-D;v=v+1|0;if((v|0)==4){u=0;break}u=c[h+(v<<2)>>2]|0}do{C=c[f+(u<<2)>>2]|0;D=c[j+(u<<2)>>2]|0;c[g+(u<<2)>>2]=D+C;c[g+(15-u<<2)>>2]=C-D;u=u+1|0}while((u|0)!=8);u=0;do{v=c[g+(u<<2)>>2]|0;w=c[l+(u<<2)>>2]|0;x=v+2048+w|0;y=x>>12;if((y+32768|0)>>>0>65535)y=x>>31^32767;b[d+(u<<1)>>1]=y;v=v-w+2048|0;w=v>>12;if((w+32768|0)>>>0>65535)w=v>>31^32767;b[d+(31-u<<1)>>1]=w;u=u+1|0}while((u|0)!=16);t=t+1|0;if((t|0)==32)break;else d=d+64|0}i=m;return}function Qc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<2;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;e=e+1|0}while((e|0)!=4);i=c;return}function Rc(a){a=a|0;var c=0,d=0,e=0,f=0;c=i;d=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;e=0;do{f=e<<3;b[a+(f<<1)>>1]=d;b[a+((f|1)<<1)>>1]=d;b[a+((f|2)<<1)>>1]=d;b[a+((f|3)<<1)>>1]=d;b[a+((f|4)<<1)>>1]=d;b[a+((f|5)<<1)>>1]=d;b[a+((f|6)<<1)>>1]=d;b[a+((f|7)<<1)>>1]=d;e=e+1|0}while((e|0)!=8);i=c;return}function Sc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<4;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=16);d=d+1|0}while((d|0)!=16);i=c;return}function Tc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0;c=i;e=((((b[a>>1]|0)+1|0)>>>1)+32|0)>>>6&65535;d=0;do{f=d<<5;g=0;do{b[a+(g+f<<1)>>1]=e;g=g+1|0}while((g|0)!=32);d=d+1|0}while((d|0)!=32);i=c;return}function Uc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;f=i;if((e|0)>0)g=0;else{i=f;return}while(1){mf(a|0,c|0,h|0)|0;g=g+1|0;if((g|0)==(e|0))break;else{a=a+b|0;c=c+d|0}}i=f;return}function Vc(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;j=i;s=h+ -1|0;l=2840+(s<<4)|0;if((g|0)<=0){i=j;return}h=(k|0)>0;p=2841+(s<<4)|0;q=2842+(s<<4)|0;r=2843+(s<<4)|0;o=2844+(s<<4)|0;n=2845+(s<<4)|0;m=2846+(s<<4)|0;s=2847+(s<<4)|0;w=0;while(1){if(h){t=a[l>>0]|0;y=a[p>>0]|0;v=a[q>>0]|0;A=a[r>>0]|0;B=a[o>>0]|0;C=a[n>>0]|0;D=a[m>>0]|0;z=a[s>>0]|0;u=0;do{K=$(d[e+(u+ -3)>>0]|0,t)|0;J=$(d[e+(u+ -2)>>0]|0,y)|0;I=$(d[e+(u+ -1)>>0]|0,v)|0;H=$(d[e+u>>0]|0,A)|0;x=u;u=u+1|0;G=$(d[e+u>>0]|0,B)|0;F=$(d[e+(x+2)>>0]|0,C)|0;E=$(d[e+(x+3)>>0]|0,D)|0;E=K+32+J+I+H+G+F+E+($(d[e+(x+4)>>0]|0,z)|0)>>6;if(E>>>0>255)E=0-E>>31;a[b+x>>0]=E}while((u|0)!=(k|0))}w=w+1|0;if((w|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=j;return}function Wc(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;h=i;u=j+ -1|0;j=2840+(u<<4)|0;if((g|0)<=0){i=h;return}l=(k|0)>0;q=f*3|0;t=2841+(u<<4)|0;r=f<<1;s=2842+(u<<4)|0;p=2843+(u<<4)|0;o=2844+(u<<4)|0;n=2845+(u<<4)|0;m=2846+(u<<4)|0;v=2847+(u<<4)|0;u=f<<2;B=0;while(1){if(l){y=a[j>>0]|0;D=a[t>>0]|0;E=a[s>>0]|0;F=a[p>>0]|0;C=a[o>>0]|0;z=a[n>>0]|0;x=a[m>>0]|0;w=a[v>>0]|0;A=0;do{M=$(d[e+(A-q)>>0]|0,y)|0;L=$(d[e+(A-r)>>0]|0,D)|0;K=$(d[e+(A-f)>>0]|0,E)|0;J=$(d[e+A>>0]|0,F)|0;I=$(d[e+(A+f)>>0]|0,C)|0;H=$(d[e+(A+r)>>0]|0,z)|0;G=$(d[e+(A+q)>>0]|0,x)|0;G=M+32+L+K+J+I+H+G+($(d[e+(A+u)>>0]|0,w)|0)>>6;if(G>>>0>255)G=0-G>>31;a[b+A>>0]=G;A=A+1|0}while((A|0)!=(k|0))}B=B+1|0;if((B|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=h;return}function Xc(c,d,e,f,g,h,j,k){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;l=i;i=i+9088|0;m=l;v=h+ -1|0;n=2840+(v<<4)|0;h=g+7|0;if((h|0)>0){t=(k|0)>0;p=2841+(v<<4)|0;o=2842+(v<<4)|0;u=2843+(v<<4)|0;q=2844+(v<<4)|0;r=2845+(v<<4)|0;s=2846+(v<<4)|0;v=2847+(v<<4)|0;y=e+($(f,-3)|0)|0;z=m;A=0;while(1){if(t){E=a[n>>0]|0;D=a[p>>0]|0;F=a[o>>0]|0;G=a[u>>0]|0;H=a[q>>0]|0;I=a[r>>0]|0;e=a[s>>0]|0;K=a[v>>0]|0;w=a[y+ -2>>0]|0;x=a[y+ -1>>0]|0;B=a[y>>0]|0;C=a[y+1>>0]|0;M=a[y+2>>0]|0;L=a[y+3>>0]|0;N=a[y+ -3>>0]|0;J=0;while(1){O=($(w&255,D)|0)+($(N&255,E)|0)+($(x&255,F)|0)+($(B&255,G)|0)+($(C&255,H)|0)+($(M&255,I)|0)+($(L&255,e)|0)|0;N=a[y+(J+4)>>0]|0;b[z+(J<<1)>>1]=O+($(N&255,K)|0);J=J+1|0;if((J|0)==(k|0))break;else{S=L;R=M;Q=C;P=B;O=x;L=N;N=w;M=S;C=R;B=Q;x=P;w=O}}}A=A+1|0;if((A|0)==(h|0))break;else{y=y+f|0;z=z+128|0}}}s=j+ -1|0;j=2840+(s<<4)|0;if((g|0)<=0){i=l;return}f=(k|0)>0;h=2841+(s<<4)|0;n=2842+(s<<4)|0;o=2843+(s<<4)|0;p=2844+(s<<4)|0;q=2845+(s<<4)|0;r=2846+(s<<4)|0;s=2847+(s<<4)|0;u=m+384|0;v=0;while(1){if(f){e=a[j>>0]|0;m=a[h>>0]|0;x=a[n>>0]|0;y=a[o>>0]|0;z=a[p>>0]|0;A=a[q>>0]|0;B=a[r>>0]|0;w=a[s>>0]|0;t=0;do{C=$(b[u+(t+ -192<<1)>>1]|0,e)|0;C=($(b[u+(t+ -128<<1)>>1]|0,m)|0)+C|0;C=C+($(b[u+(t+ -64<<1)>>1]|0,x)|0)|0;C=C+($(b[u+(t<<1)>>1]|0,y)|0)|0;C=C+($(b[u+(t+64<<1)>>1]|0,z)|0)|0;C=C+($(b[u+(t+128<<1)>>1]|0,A)|0)|0;C=C+($(b[u+(t+192<<1)>>1]|0,B)|0)|0;C=(C+($(b[u+(t+256<<1)>>1]|0,w)|0)>>6)+32>>6;if(C>>>0>255)C=0-C>>31;a[c+t>>0]=C;t=t+1|0}while((t|0)!=(k|0))}v=v+1|0;if((v|0)==(g|0))break;else{c=c+d|0;u=u+128|0}}i=l;return}function Yc(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0;m=i;h=h+6|0;l=1<>1;if((g|0)<=0){i=m;return}o=(n|0)>0;j=j<<6;q=0;while(1){if(o){p=0;do{r=(($(j,d[e+p>>0]|0)|0)+l>>h)+k|0;if(r>>>0>255)r=0-r>>31;a[b+p>>0]=r;p=p+1|0}while((p|0)!=(n|0))}q=q+1|0;if((q|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function Zc(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;m=i;w=l+ -1|0;l=2840+(w<<4)|0;s=h+6|0;p=1<>1;if((g|0)<=0){i=m;return}o=(n|0)>0;v=2841+(w<<4)|0;u=2842+(w<<4)|0;t=2843+(w<<4)|0;h=2844+(w<<4)|0;r=2845+(w<<4)|0;q=2846+(w<<4)|0;w=2847+(w<<4)|0;x=0;while(1){if(o){C=a[l>>0]|0;y=a[v>>0]|0;E=a[u>>0]|0;F=a[t>>0]|0;G=a[h>>0]|0;H=a[r>>0]|0;D=a[q>>0]|0;z=a[w>>0]|0;A=0;do{I=$(d[e+(A+ -3)>>0]|0,C)|0;I=($(d[e+(A+ -2)>>0]|0,y)|0)+I|0;I=I+($(d[e+(A+ -1)>>0]|0,E)|0)|0;I=I+($(d[e+A>>0]|0,F)|0)|0;B=A;A=A+1|0;I=I+($(d[e+A>>0]|0,G)|0)|0;I=I+($(d[e+(B+2)>>0]|0,H)|0)|0;I=I+($(d[e+(B+3)>>0]|0,D)|0)|0;I=(($(I+($(d[e+(B+4)>>0]|0,z)|0)|0,j)|0)+p>>s)+k|0;if(I>>>0>255)I=0-I>>31;a[b+B>>0]=I}while((A|0)!=(n|0))}x=x+1|0;if((x|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function _c(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;l=i;y=m+ -1|0;m=2840+(y<<4)|0;u=h+6|0;p=1<>1;if((g|0)<=0){i=l;return}o=(n|0)>0;v=f*3|0;x=2841+(y<<4)|0;w=f<<1;h=2842+(y<<4)|0;t=2843+(y<<4)|0;s=2844+(y<<4)|0;r=2845+(y<<4)|0;q=2846+(y<<4)|0;z=2847+(y<<4)|0;y=f<<2;G=0;while(1){if(o){D=a[m>>0]|0;I=a[x>>0]|0;J=a[h>>0]|0;H=a[t>>0]|0;E=a[s>>0]|0;C=a[r>>0]|0;B=a[q>>0]|0;A=a[z>>0]|0;F=0;do{K=$(d[e+(F-v)>>0]|0,D)|0;K=($(d[e+(F-w)>>0]|0,I)|0)+K|0;K=K+($(d[e+(F-f)>>0]|0,J)|0)|0;K=K+($(d[e+F>>0]|0,H)|0)|0;K=K+($(d[e+(F+f)>>0]|0,E)|0)|0;K=K+($(d[e+(F+w)>>0]|0,C)|0)|0;K=K+($(d[e+(F+v)>>0]|0,B)|0)|0;K=(($(K+($(d[e+(F+y)>>0]|0,A)|0)|0,j)|0)+p>>u)+k|0;if(K>>>0>255)K=0-K>>31;a[b+F>>0]=K;F=F+1|0}while((F|0)!=(n|0))}G=G+1|0;if((G|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=l;return}function $c(c,d,e,f,g,h,j,k,l,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;o=i;i=i+9088|0;q=o;p=h+6|0;h=1<

>1;z=l+ -1|0;l=2840+(z<<4)|0;s=g+7|0;if((s|0)>0){x=(n|0)>0;r=2841+(z<<4)|0;y=2842+(z<<4)|0;t=2843+(z<<4)|0;u=2844+(z<<4)|0;v=2845+(z<<4)|0;w=2846+(z<<4)|0;z=2847+(z<<4)|0;D=e+($(f,-3)|0)|0;E=q;F=0;while(1){if(x){J=a[l>>0]|0;I=a[r>>0]|0;K=a[y>>0]|0;L=a[t>>0]|0;B=a[u>>0]|0;N=a[v>>0]|0;O=a[w>>0]|0;P=a[z>>0]|0;C=a[D+ -2>>0]|0;M=a[D+ -1>>0]|0;e=a[D>>0]|0;G=a[D+1>>0]|0;H=a[D+2>>0]|0;Q=a[D+3>>0]|0;R=a[D+ -3>>0]|0;A=0;while(1){S=($(C&255,I)|0)+($(R&255,J)|0)+($(M&255,K)|0)+($(e&255,L)|0)+($(G&255,B)|0)+($(H&255,N)|0)+($(Q&255,O)|0)|0;R=a[D+(A+4)>>0]|0;b[E+(A<<1)>>1]=S+($(R&255,P)|0);A=A+1|0;if((A|0)==(n|0))break;else{W=Q;V=H;U=G;T=e;S=M;Q=R;R=C;H=W;G=V;e=U;M=T;C=S}}}F=F+1|0;if((F|0)==(s|0))break;else{D=D+f|0;E=E+128|0}}}w=m+ -1|0;r=2840+(w<<4)|0;if((g|0)<=0){i=o;return}l=(n|0)>0;s=2841+(w<<4)|0;t=2842+(w<<4)|0;u=2843+(w<<4)|0;v=2844+(w<<4)|0;m=2845+(w<<4)|0;f=2846+(w<<4)|0;w=2847+(w<<4)|0;z=q+384|0;q=0;while(1){if(l){A=a[r>>0]|0;B=a[s>>0]|0;C=a[t>>0]|0;D=a[u>>0]|0;E=a[v>>0]|0;F=a[m>>0]|0;y=a[f>>0]|0;x=a[w>>0]|0;e=0;do{G=$(b[z+(e+ -192<<1)>>1]|0,A)|0;G=($(b[z+(e+ -128<<1)>>1]|0,B)|0)+G|0;G=G+($(b[z+(e+ -64<<1)>>1]|0,C)|0)|0;G=G+($(b[z+(e<<1)>>1]|0,D)|0)|0;G=G+($(b[z+(e+64<<1)>>1]|0,E)|0)|0;G=G+($(b[z+(e+128<<1)>>1]|0,F)|0)|0;G=G+($(b[z+(e+192<<1)>>1]|0,y)|0)|0;G=(($(G+($(b[z+(e+256<<1)>>1]|0,x)|0)>>6,j)|0)+h>>p)+k|0;if(G>>>0>255)G=0-G>>31;a[c+e>>0]=G;e=e+1|0}while((e|0)!=(n|0))}q=q+1|0;if((q|0)==(g|0))break;else{c=c+d|0;z=z+128|0}}i=o;return}function ad(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;j=i;o=h+ -1|0;h=2808+(o<<2)|0;if((g|0)<=0){i=j;return}l=(k|0)>0;n=2809+(o<<2)|0;m=2810+(o<<2)|0;o=2811+(o<<2)|0;s=0;while(1){if(l){p=a[h>>0]|0;u=a[n>>0]|0;v=a[m>>0]|0;t=a[o>>0]|0;r=0;do{y=$(d[e+(r+ -1)>>0]|0,p)|0;x=$(d[e+r>>0]|0,u)|0;q=r;r=r+1|0;w=$(d[e+r>>0]|0,v)|0;w=y+32+x+w+($(d[e+(q+2)>>0]|0,t)|0)>>6;if(w>>>0>255)w=0-w>>31;a[b+q>>0]=w}while((r|0)!=(k|0))}s=s+1|0;if((s|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=j;return}function bd(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=i;o=j+ -1|0;j=2808+(o<<2)|0;if((g|0)<=0){i=h;return}l=(k|0)>0;n=2809+(o<<2)|0;m=2810+(o<<2)|0;p=2811+(o<<2)|0;o=f<<1;t=0;while(1){if(l){u=a[j>>0]|0;v=a[n>>0]|0;s=a[m>>0]|0;r=a[p>>0]|0;q=0;do{y=$(d[e+(q-f)>>0]|0,u)|0;x=$(d[e+q>>0]|0,v)|0;w=$(d[e+(q+f)>>0]|0,s)|0;w=y+32+x+w+($(d[e+(q+o)>>0]|0,r)|0)>>6;if(w>>>0>255)w=0-w>>31;a[b+q>>0]=w;q=q+1|0}while((q|0)!=(k|0))}t=t+1|0;if((t|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=h;return}function cd(c,d,e,f,g,h,j,k){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;l=i;i=i+8576|0;m=l;r=h+ -1|0;h=2808+(r<<2)|0;n=g+3|0;if((n|0)>0){q=(k|0)>0;o=2809+(r<<2)|0;p=2810+(r<<2)|0;r=2811+(r<<2)|0;u=e+(0-f)|0;v=m;w=0;while(1){if(q){A=a[h>>0]|0;e=a[o>>0]|0;y=a[p>>0]|0;x=a[r>>0]|0;B=a[u+ -1>>0]|0;s=a[u>>0]|0;t=a[u+1>>0]|0;z=0;while(1){C=($(s&255,e)|0)+($(B&255,A)|0)+($(t&255,y)|0)|0;B=a[u+(z+2)>>0]|0;b[v+(z<<1)>>1]=C+($(B&255,x)|0);z=z+1|0;if((z|0)==(k|0))break;else{D=t;C=s;t=B;s=D;B=C}}}w=w+1|0;if((w|0)==(n|0))break;else{u=u+f|0;v=v+128|0}}}o=j+ -1|0;f=2808+(o<<2)|0;if((g|0)<=0){i=l;return}j=(k|0)>0;h=2809+(o<<2)|0;n=2810+(o<<2)|0;o=2811+(o<<2)|0;q=m+128|0;r=0;while(1){if(j){e=a[f>>0]|0;s=a[h>>0]|0;t=a[n>>0]|0;p=a[o>>0]|0;m=0;do{u=$(b[q+(m+ -64<<1)>>1]|0,e)|0;u=($(b[q+(m<<1)>>1]|0,s)|0)+u|0;u=u+($(b[q+(m+64<<1)>>1]|0,t)|0)|0;u=(u+($(b[q+(m+128<<1)>>1]|0,p)|0)>>6)+32>>6;if(u>>>0>255)u=0-u>>31;a[c+m>>0]=u;m=m+1|0}while((m|0)!=(k|0))}r=r+1|0;if((r|0)==(g|0))break;else{c=c+d|0;q=q+128|0}}i=l;return}function dd(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;m=i;s=l+ -1|0;l=2808+(s<<2)|0;h=h+6|0;o=1<>1;if((g|0)<=0){i=m;return}r=(n|0)>0;p=2809+(s<<2)|0;q=2810+(s<<2)|0;s=2811+(s<<2)|0;x=0;while(1){if(r){y=a[l>>0]|0;t=a[p>>0]|0;u=a[q>>0]|0;z=a[s>>0]|0;w=0;do{A=$(d[e+(w+ -1)>>0]|0,y)|0;A=($(d[e+w>>0]|0,t)|0)+A|0;v=w;w=w+1|0;A=A+($(d[e+w>>0]|0,u)|0)|0;A=(($(A+($(d[e+(v+2)>>0]|0,z)|0)|0,j)|0)+o>>h)+k|0;if(A>>>0>255)A=0-A>>31;a[b+v>>0]=A}while((w|0)!=(n|0))}x=x+1|0;if((x|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=m;return}function ed(b,c,e,f,g,h,j,k,l,m,n){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;l=i;s=m+ -1|0;m=2808+(s<<2)|0;h=h+6|0;o=1<>1;if((g|0)<=0){i=l;return}p=(n|0)>0;q=2809+(s<<2)|0;r=2810+(s<<2)|0;s=2811+(s<<2)|0;t=f<<1;y=0;while(1){if(p){x=a[m>>0]|0;u=a[q>>0]|0;z=a[r>>0]|0;w=a[s>>0]|0;v=0;do{A=$(d[e+(v-f)>>0]|0,x)|0;A=($(d[e+v>>0]|0,u)|0)+A|0;A=A+($(d[e+(v+f)>>0]|0,z)|0)|0;A=(($(A+($(d[e+(v+t)>>0]|0,w)|0)|0,j)|0)+o>>h)+k|0;if(A>>>0>255)A=0-A>>31;a[b+v>>0]=A;v=v+1|0}while((v|0)!=(n|0))}y=y+1|0;if((y|0)==(g|0))break;else{b=b+c|0;e=e+f|0}}i=l;return}function fd(c,d,e,f,g,h,j,k,l,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;o=i;i=i+8576|0;p=o;v=l+ -1|0;q=2808+(v<<2)|0;h=h+6|0;l=1<>1;t=g+3|0;if((t|0)>0){u=(n|0)>0;s=2809+(v<<2)|0;r=2810+(v<<2)|0;v=2811+(v<<2)|0;A=e+(0-f)|0;w=p;x=0;while(1){if(u){B=a[q>>0]|0;E=a[s>>0]|0;C=a[r>>0]|0;D=a[v>>0]|0;F=a[A+ -1>>0]|0;y=a[A>>0]|0;z=a[A+1>>0]|0;e=0;while(1){G=($(y&255,E)|0)+($(F&255,B)|0)+($(z&255,C)|0)|0;F=a[A+(e+2)>>0]|0;b[w+(e<<1)>>1]=G+($(F&255,D)|0);e=e+1|0;if((e|0)==(n|0))break;else{H=z;G=y;z=F;y=H;F=G}}}x=x+1|0;if((x|0)==(t|0))break;else{A=A+f|0;w=w+128|0}}}s=m+ -1|0;m=2808+(s<<2)|0;if((g|0)<=0){i=o;return}r=(n|0)>0;q=2809+(s<<2)|0;f=2810+(s<<2)|0;s=2811+(s<<2)|0;u=p+128|0;p=0;while(1){if(r){e=a[m>>0]|0;w=a[q>>0]|0;x=a[f>>0]|0;v=a[s>>0]|0;t=0;do{y=$(b[u+(t+ -64<<1)>>1]|0,e)|0;y=($(b[u+(t<<1)>>1]|0,w)|0)+y|0;y=y+($(b[u+(t+64<<1)>>1]|0,x)|0)|0;y=(($(y+($(b[u+(t+128<<1)>>1]|0,v)|0)>>6,j)|0)+l>>h)+k|0;if(y>>>0>255)y=0-y>>31;a[c+t>>0]=y;t=t+1|0}while((t|0)!=(n|0))}p=p+1|0;if((p|0)==(g|0))break;else{c=c+d|0;u=u+128|0}}i=o;return}function gd(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0;o=i;i=i+128|0;k=o;q=k+0|0;p=q+128|0;do{c[q>>2]=0;q=q+4|0}while((q|0)<(p|0));q=d[j+n+96>>0]|0;c[k+((q&31)<<2)>>2]=b[j+(n*10|0)+114>>1];c[k+((q+1&31)<<2)>>2]=b[j+(n*10|0)+116>>1];c[k+((q+2&31)<<2)>>2]=b[j+(n*10|0)+118>>1];c[k+((q+3&31)<<2)>>2]=b[j+(n*10|0)+120>>1];if((m|0)<=0){i=o;return}n=(l|0)>0;j=0;while(1){if(n){p=0;do{q=d[f+p>>0]|0;q=q+(c[k+(q>>>3<<2)>>2]|0)|0;if(q>>>0>255)q=0-q>>31;a[e+p>>0]=q;p=p+1|0}while((p|0)!=(l|0))}j=j+1|0;if((j|0)==(m|0))break;else{e=e+g|0;f=f+h|0}}i=o;return}function hd(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0;p=i;o=j+(n*10|0)+112|0;r=c[j+(n<<2)+100>>2]|0;if((r|0)!=1){if(c[k>>2]|0){q=b[o>>1]|0;if((m|0)>0){s=0;do{t=(d[f+($(s,h)|0)>>0]|0)+q|0;if(t>>>0>255)t=0-t>>31;a[e+($(s,g)|0)>>0]=t;s=s+1|0}while((s|0)!=(m|0));q=1}else q=1}else q=0;if(c[k+8>>2]|0){s=b[o>>1]|0;l=l+ -1|0;if((m|0)>0){t=0;do{u=(d[f+(($(t,h)|0)+l)>>0]|0)+s|0;if(u>>>0>255)u=0-u>>31;a[e+(($(t,g)|0)+l)>>0]=u;t=t+1|0}while((t|0)!=(m|0))}}if(!r){s=m;t=q;u=0;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}}else q=0;if(c[k+4>>2]|0){r=b[o>>1]|0;if((q|0)<(l|0)){s=q;do{t=(d[f+s>>0]|0)+r|0;if(t>>>0>255)t=0-t>>31;a[e+s>>0]=t;s=s+1|0}while((s|0)!=(l|0));r=1}else r=1}else r=0;if(!(c[k+12>>2]|0)){s=m;t=q;u=r;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}k=b[o>>1]|0;o=m+ -1|0;t=$(o,g)|0;m=$(o,h)|0;if((q|0)<(l|0))s=q;else{s=o;t=q;u=r;r=l;pd(e,f,g,h,j,r,s,n,t,u);i=p;return}do{u=(d[f+(s+m)>>0]|0)+k|0;if(u>>>0>255)u=0-u>>31;a[e+(s+t)>>0]=u;s=s+1|0}while((s|0)!=(l|0));pd(e,f,g,h,j,l,o,n,q,r);i=p;return}function id(e,f,g,h,j,k,l,m,n,o,p,q){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;s=i;C=j+(n*10|0)+112|0;B=c[j+(n<<2)+100>>2]|0;A=(B|0)!=1;if(A){if(c[k>>2]|0){D=b[C>>1]|0;if((m|0)>0){E=0;do{G=(d[f+($(E,h)|0)>>0]|0)+D|0;if(G>>>0>255)G=0-G>>31;a[e+($(E,g)|0)>>0]=G;E=E+1|0}while((E|0)!=(m|0));D=1}else D=1}else D=0;if(c[k+8>>2]|0){E=b[C>>1]|0;l=l+ -1|0;if((m|0)>0){G=0;do{H=(d[f+(($(G,h)|0)+l)>>0]|0)+E|0;if(H>>>0>255)H=0-H>>31;a[e+(($(G,g)|0)+l)>>0]=H;G=G+1|0}while((G|0)!=(m|0))}}if(!B){C=1;E=0}else F=13}else{D=0;F=13}if((F|0)==13){if(c[k+4>>2]|0){F=b[C>>1]|0;if((D|0)<(l|0)){E=D;do{G=(d[f+E>>0]|0)+F|0;if(G>>>0>255)G=0-G>>31;a[e+E>>0]=G;E=E+1|0}while((E|0)!=(l|0));E=1}else E=1}else E=0;if(c[k+12>>2]|0){C=b[C>>1]|0;m=m+ -1|0;G=$(m,g)|0;H=$(m,h)|0;if((D|0)<(l|0)){F=D;do{I=(d[f+(F+H)>>0]|0)+C|0;if(I>>>0>255)I=0-I>>31;a[e+(F+G)>>0]=I;F=F+1|0}while((F|0)!=(l|0));C=0}else C=0}else C=0}pd(e,f,g,h,j,l,m,n,D,E);j=(B|0)==2;if((a[q>>0]|0)==0&j?(c[k>>2]|0)==0:0)n=(c[k+4>>2]|0)==0;else n=0;H=n&1;n=q+1|0;B=(B|0)==3;if((a[n>>0]|0)==0&B?(c[k+4>>2]|0)==0:0)F=(c[k+8>>2]|0)==0;else F=0;J=F&1;F=q+2|0;if((a[F>>0]|0)==0&j?(c[k+8>>2]|0)==0:0)G=(c[k+12>>2]|0)==0;else G=0;I=G&1;G=q+3|0;if((a[G>>0]|0)==0&B?(c[k>>2]|0)==0:0)k=(c[k+12>>2]|0)==0;else k=0;k=k&1;A=A^1;if(!((a[o>>0]|0)==0|A)?(z=H+E|0,y=m-k|0,(z|0)<(y|0)):0)do{a[e+($(z,g)|0)>>0]=a[f+($(z,h)|0)>>0]|0;z=z+1|0}while((z|0)!=(y|0));if(!((a[o+1>>0]|0)==0|A)?(x=J+E|0,w=m-I|0,(x|0)<(w|0)):0){o=l+ -1|0;do{a[e+(o+($(x,g)|0))>>0]=a[f+(o+($(x,h)|0))>>0]|0;x=x+1|0}while((x|0)!=(w|0))}if(!((a[p>>0]|0)==0|C)?(v=H+D|0,u=l-J|0,(v|0)<(u|0)):0)do{a[e+v>>0]=a[f+v>>0]|0;v=v+1|0}while((v|0)!=(u|0));if(!((a[p+1>>0]|0)==0|C)?(t=k+D|0,r=l-I|0,(t|0)<(r|0)):0){u=m+ -1|0;p=$(u,h)|0;u=$(u,g)|0;do{a[e+(t+u)>>0]=a[f+(t+p)>>0]|0;t=t+1|0}while((t|0)!=(r|0))}if((a[q>>0]|0)!=0&j)a[e>>0]=a[f>>0]|0;if((a[n>>0]|0)!=0&B){J=l+ -1|0;a[e+J>>0]=a[f+J>>0]|0}if((a[F>>0]|0)!=0&j){J=m+ -1|0;I=l+ -1|0;a[e+(I+($(J,g)|0))>>0]=a[f+(I+($(J,h)|0))>>0]|0}if(!((a[G>>0]|0)!=0&B)){i=s;return}J=m+ -1|0;a[e+($(J,g)|0)>>0]=a[f+($(J,h)|0)>>0]|0;i=s;return}function jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;od(a,b,1,c,d,e,f);i=g;return}function kd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=i;od(a,1,b,c,d,e,f);i=g;return}function ld(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;nd(a,b,1,c,d,e);i=f;return}function md(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=i;nd(a,1,b,c,d,e);i=f;return}function nd(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;l=$(e,-2)|0;k=0-e|0;n=0;while(1){p=c[g+(n<<2)>>2]|0;if((p|0)>=1){s=0-p|0;r=(a[h+n>>0]|0)==0;q=(a[j+n>>0]|0)==0;o=0;t=b;while(1){v=t+k|0;x=d[v>>0]|0;u=d[t>>0]|0;w=(d[t+l>>0]|0)+4-(d[t+e>>0]|0)+(u-x<<2)>>3;if((w|0)<(s|0))w=s;else w=(w|0)>(p|0)?p:w;if(r){x=w+x|0;if(x>>>0>255)x=0-x>>31;a[v>>0]=x}if(q){u=u-w|0;if(u>>>0>255)u=0-u>>31;a[t>>0]=u}o=o+1|0;if((o|0)==4)break;else t=t+f|0}}n=n+1|0;if((n|0)==2)break;else b=b+(f<<2)|0}i=m;return}function od(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0;t=i;o=$(e,-3)|0;p=$(e,-2)|0;q=0-e|0;r=e<<1;D=f*3|0;B=D+o|0;C=D+p|0;A=D-e|0;E=D+r|0;l=D+e|0;y=g>>3;v=g>>2;n=$(e,-4)|0;s=e*3|0;w=D+n|0;x=(f+e|0)*3|0;u=(g>>1)+g>>3;z=f<<2;m=f<<2;F=0;do{U=a[b+o>>0]|0;T=a[b+p>>0]|0;S=a[b+q>>0]|0;J=S&255;N=(U&255)-((T&255)<<1)+J|0;N=(N|0)>-1?N:0-N|0;P=a[b+r>>0]|0;Q=a[b+e>>0]|0;R=a[b>>0]|0;X=R&255;V=(P&255)-((Q&255)<<1)+X|0;V=(V|0)>-1?V:0-V|0;_=d[b+A>>0]|0;M=(d[b+B>>0]|0)-((d[b+C>>0]|0)<<1)+_|0;M=(M|0)>-1?M:0-M|0;Y=d[b+D>>0]|0;O=(d[b+E>>0]|0)-((d[b+l>>0]|0)<<1)+Y|0;O=(O|0)>-1?O:0-O|0;H=V+N|0;I=O+M|0;G=c[h+(F<<2)>>2]|0;W=a[j+F>>0]|0;L=a[k+F>>0]|0;do if((I+H|0)<(g|0)){Z=(G*5|0)+1>>1;aa=(d[b+n>>0]|0)-J|0;K=a[b+s>>0]|0;ba=(K&255)-X|0;if((((((((ba|0)>-1?ba:0-ba|0)+((aa|0)>-1?aa:0-aa|0)|0)<(y|0)?(ba=J-X|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(ba=(d[b+w>>0]|0)-_|0,aa=(d[b+x>>0]|0)-Y|0,(((aa|0)>-1?aa:0-aa|0)+((ba|0)>-1?ba:0-ba|0)|0)<(y|0)):0)?(ba=_-Y|0,(((ba|0)>-1?ba:0-ba|0)|0)<(Z|0)):0)?(H<<1|0)<(v|0):0)?(I<<1|0)<(v|0):0){G=G<<1;H=W<<24>>24==0;I=0-G|0;J=L<<24>>24==0;Y=K;K=1;L=b;while(1){V=L+o|0;U=U&255;W=L+p|0;T=T&255;X=L+q|0;N=S&255;R=R&255;S=L+e|0;Q=Q&255;M=L+r|0;O=P&255;P=Y&255;if(H){Y=d[L+n>>0]|0;Z=(U+4+Q+(N+T+R<<1)>>3)-N|0;if((Z|0)<(I|0))Z=I;else Z=(Z|0)>(G|0)?G:Z;a[X>>0]=Z+N;X=((U+2+T+N+R|0)>>>2)-T|0;if((X|0)<(I|0))X=I;else X=(X|0)>(G|0)?G:X;a[W>>0]=X+T;W=((U*3|0)+4+T+N+R+(Y<<1)>>3)-U|0;if((W|0)<(I|0))W=I;else W=(W|0)>(G|0)?G:W;a[V>>0]=W+U}if(J){T=(T+4+O+(R+N+Q<<1)>>3)-R|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[L>>0]=T+R;T=((N+2+R+Q+O|0)>>>2)-Q|0;if((T|0)<(I|0))T=I;else T=(T|0)>(G|0)?G:T;a[S>>0]=T+Q;N=(N+4+R+Q+(O*3|0)+(P<<1)>>3)-O|0;if((N|0)<(I|0))N=I;else N=(N|0)>(G|0)?G:N;a[M>>0]=N+O}M=L+f|0;if((K|0)==4)break;U=a[L+(o+f)>>0]|0;T=a[L+(p+f)>>0]|0;S=a[L+(f-e)>>0]|0;R=a[M>>0]|0;Q=a[L+(f+e)>>0]|0;P=a[L+(r+f)>>0]|0;Y=a[L+(s+f)>>0]|0;K=K+1|0;L=M}b=b+m|0;break}H=G>>1;I=G*10|0;J=0-G|0;K=W<<24>>24!=0;L=L<<24>>24!=0;M=(M+N|0)<(u|0)&(K^1);N=0-H|0;O=(O+V|0)<(u|0)&(L^1);V=T;W=R;Y=Q;Q=1;R=b;while(1){X=U&255;T=R+p|0;V=V&255;_=R+q|0;Z=S&255;W=W&255;S=R+e|0;U=Y&255;P=P&255;Y=((W-Z|0)*9|0)+8+($(U-V|0,-3)|0)>>4;if((((Y|0)>-1?Y:0-Y|0)|0)<(I|0)){if((Y|0)<(J|0))Y=J;else Y=(Y|0)>(G|0)?G:Y;if(!K){aa=Y+Z|0;if(aa>>>0>255)aa=0-aa>>31;a[_>>0]=aa}if(!L){_=W-Y|0;if(_>>>0>255)_=0-_>>31;a[R>>0]=_}if(M){X=((X+1+Z|0)>>>1)-V+Y>>1;if((X|0)<(N|0))X=N;else X=(X|0)>(H|0)?H:X;V=X+V|0;if(V>>>0>255)V=0-V>>31;a[T>>0]=V}if(O){P=((W+1+P|0)>>>1)-U-Y>>1;if((P|0)<(N|0))P=N;else P=(P|0)>(H|0)?H:P;P=P+U|0;if(P>>>0>255)P=0-P>>31;a[S>>0]=P}}T=R+f|0;if((Q|0)==4)break;U=a[R+(o+f)>>0]|0;V=a[R+(p+f)>>0]|0;S=a[R+(f-e)>>0]|0;W=a[T>>0]|0;Y=a[R+(f+e)>>0]|0;P=a[R+(r+f)>>0]|0;Q=Q+1|0;R=T}b=b+m|0}else b=b+z|0;while(0);F=F+1|0}while((F|0)!=2);i=t;return}function pd(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;t=i;v=c[j+(m<<2)+100>>2]|0;q=a[2896+(v<<2)>>0]|0;r=a[2898+(v<<2)>>0]|0;if((o|0)>=(l|0)){i=t;return}u=(n|0)<(k|0);s=o;p=$((a[2897+(v<<2)>>0]|0)+o|0,h)|0;v=$((a[2899+(v<<2)>>0]|0)+o|0,h)|0;w=$(o,g)|0;o=$(o,h)|0;while(1){if(u){y=p+q|0;x=v+r|0;z=n;do{A=a[f+(z+o)>>0]|0;B=a[f+(y+z)>>0]|0;if((A&255)>(B&255))B=3;else B=((A<<24>>24!=B<<24>>24)<<31>>31)+2|0;C=a[f+(x+z)>>0]|0;if((A&255)>(C&255))C=1;else C=(A<<24>>24!=C<<24>>24)<<31>>31;A=(b[j+(m*10|0)+(d[2888+(C+B)>>0]<<1)+112>>1]|0)+(A&255)|0;if(A>>>0>255)A=0-A>>31;a[e+(z+w)>>0]=A;z=z+1|0}while((z|0)!=(k|0))}s=s+1|0;if((s|0)==(l|0))break;else{p=p+h|0;v=v+h|0;w=w+g|0;o=o+h|0}}i=t;return}function qd(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;k=c[b+136>>2]|0;l=(c[b+200>>2]|0)+13080|0;r=(1<>2])+ -1|0;o=r&e;n=r&f;q=(n|0)!=0|(a[k+309>>0]|0)!=0;m=q&1;c[k+31296>>2]=m;p=(o|0)!=0|(a[k+308>>0]|0)!=0;b=p&1;c[k+31292>>2]=b;if(!(r&(f|e)))p=d[k+311>>0]|0;else p=p&q&1;c[k+31300>>2]=p;if((o+g|0)==(1<>2]|0))m=(a[k+310>>0]|0)!=0&(n|0)==0&1;c[k+31308>>2]=m;if(!m){q=0;q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}q=(g+e|0)<(c[k+312>>2]|0);q=q&1;r=k+31304|0;c[r>>2]=q;r=h+f|0;q=k+316|0;q=c[q>>2]|0;q=(r|0)<(q|0);q=q?b:0;r=k+31288|0;c[r>>2]=q;i=j;return}function rd(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0;o=i;i=i+80|0;t=o+4|0;s=o;xa=o+11&-4;p=xa;q=e+136|0;r=c[q>>2]|0;G=e+204|0;if((1<>2]|0)+1620>>2]|0)>2:0){v=8;u=8;l=0;Aa=1;f=c[r+31236>>2]|0;g=c[r+31240>>2]|0}else{v=j;u=h;Aa=0}qd(e,f,g,u,v);ya=c[q>>2]|0;A=c[e+3508>>2]|0;k=c[A+20>>2]|0;A=c[A+16>>2]|0;Z=e+200|0;Ba=c[Z>>2]|0;V=c[Ba+13156>>2]|0;la=c[ya+31288>>2]|0;za=c[ya+31292>>2]|0;_=c[ya+31300>>2]|0;wa=c[ya+31296>>2]|0;ta=c[ya+31308>>2]|0;X=f+ -1|0;ma=g+v|0;W=ma+ -1|0;ua=f+u|0;S=ua+ -1|0;Y=g+ -1|0;q=e+2428|0;r=c[e+3036>>2]|0;if((c[q>>2]|0)!=1){Ca=c[e+3040>>2]|0;r=r>>>0>Ca>>>0?Ca:r}l=(Aa|0)==0&(l|0)==1;if(l?(va=c[ya+31248>>2]|0,(va|0)==7|(va|0)==6|(va|0)==2):0){l=va;xa=0;ya=0;va=14}else va=7;do if((va|0)==7){Aa=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Aa|0)==(f>>Aa|0))Aa=(W>>Aa|0)==(g>>Aa|0);else Aa=0;if(!(Aa|(za|0)==0)){za=c[Ba+13084>>2]|0;za=($(W>>za,V)|0)+(X>>za)|0;Ca=(a[A+(za*12|0)+10>>0]|0)!=0;Aa=Ca&1;if(Ca){Ba=A+(za*12|0)|0;Ca=xa;c[Ca+0>>2]=c[Ba+0>>2];c[Ca+4>>2]=c[Ba+4>>2];c[Ca+8>>2]=c[Ba+8>>2];if(!m)break;else{xa=Aa;va=1}}else{xa=Aa;va=0}}else{xa=0;va=0}if(l){l=c[ya+31248>>2]|0;ya=va;va=14}else{ya=va;va=15}}while(0);if((va|0)==14)if((l|0)==5|(l|0)==4|(l|0)==1){wa=0;va=30}else va=15;a:do if((va|0)==15){l=c[(c[G>>2]|0)+1620>>2]&255;if((S>>l|0)==(f>>l|0))l=(Y>>l|0)==(g>>l|0);else l=0;if(!(l|(wa|0)==0)){za=c[(c[Z>>2]|0)+13084>>2]|0;Aa=($(Y>>za,V)|0)+(S>>za)|0;Ba=a[A+(Aa*12|0)+10>>0]|0;Ca=Ba<<24>>24!=0;wa=Ca&1;if(Ca){l=A+(Aa*12|0)|0;do if((xa|0)!=0?(Ca=($(W>>za,V)|0)+(X>>za)|0,oa=A+(Ca*12|0)|0,na=d[l>>0]|d[l+1>>0]<<8|d[l+2>>0]<<16|d[l+3>>0]<<24,qa=A+(Aa*12|0)+4|0,qa=d[qa>>0]|d[qa+1>>0]<<8|d[qa+2>>0]<<16|d[qa+3>>0]<<24,sa=A+(Aa*12|0)+8|0,sa=d[sa>>0]|d[sa+1>>0]<<8,oa=d[oa>>0]|d[oa+1>>0]<<8|d[oa+2>>0]<<16|d[oa+3>>0]<<24,pa=A+(Ca*12|0)+4|0,pa=d[pa>>0]|d[pa+1>>0]<<8|d[pa+2>>0]<<16|d[pa+3>>0]<<24,ra=A+(Ca*12|0)+8|0,ra=d[ra>>0]|d[ra+1>>0]<<8,Ba<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(Ba<<24>>24==1)na=((na|0)==(oa|0)?(sa&255)<<24>>24==(ra&255)<<24>>24:0)&1;else if(Ba<<24>>24==2)na=((qa|0)==(pa|0)?((sa&65535)>>>8&255)<<24>>24==((ra&65535)>>>8&255)<<24>>24:0)&1;else if(Ba<<24>>24==3){if((sa&255)<<24>>24==(ra&255)<<24>>24)na=((na|0)==(oa|0)?((sa&65535)>>>8&255)<<24>>24==((ra&65535)>>>8&255)<<24>>24:0)&(qa|0)==(pa|0);else na=0;na=na&1}else break;if(na){va=30;break a}}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[l+0>>2];c[Ca+4>>2]=c[l+4>>2];c[Ca+8>>2]=c[l+8>>2];if((ya|0)!=(m|0)){ya=ya+1|0;va=30}}else va=30}else{wa=0;va=30}}while(0);b:do if((va|0)==30){c:do if(((ta|0)!=0?(ka=c[Z>>2]|0,da=c[ka+13084>>2]|0,ba=$(Y>>da,V)|0,ca=ba+(ua>>da)|0,aa=a[A+(ca*12|0)+10>>0]|0,aa<<24>>24!=0):0)?(ua|0)<(c[ka+13120>>2]|0):0){Ca=c[ka+13080>>2]|0;if(((Y>>Ca|0)>=(g>>Ca|0)?(ua>>Ca|0)>=(f>>Ca|0):0)?(za=c[ka+13072>>2]|0,Aa=c[ka+13164>>2]|0,l=Aa+2|0,Ca=($(g>>za&Aa,l)|0)+(f>>za&Aa)|0,Ba=c[(c[G>>2]|0)+1684>>2]|0,(c[Ba+(($(Y>>za&Aa,l)|0)+(ua>>za&Aa)<<2)>>2]|0)>(c[Ba+(Ca<<2)>>2]|0)):0)break;Ca=c[(c[G>>2]|0)+1620>>2]&255;if((ua>>Ca|0)==(f>>Ca|0)?(Y>>Ca|0)==(g>>Ca|0):0)break;ka=A+(ca*12|0)|0;do if((wa|0)!=0?(Ca=ba+(S>>da)|0,fa=A+(Ca*12|0)|0,ea=d[ka>>0]|d[ka+1>>0]<<8|d[ka+2>>0]<<16|d[ka+3>>0]<<24,ia=A+(ca*12|0)+4|0,ia=d[ia>>0]|d[ia+1>>0]<<8|d[ia+2>>0]<<16|d[ia+3>>0]<<24,ga=A+(ca*12|0)+8|0,ga=d[ga>>0]|d[ga+1>>0]<<8,fa=d[fa>>0]|d[fa+1>>0]<<8|d[fa+2>>0]<<16|d[fa+3>>0]<<24,ja=A+(Ca*12|0)+4|0,ja=d[ja>>0]|d[ja+1>>0]<<8|d[ja+2>>0]<<16|d[ja+3>>0]<<24,ha=A+(Ca*12|0)+8|0,ha=d[ha>>0]|d[ha+1>>0]<<8,aa<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(aa<<24>>24==1)aa=((ea|0)==(fa|0)?(ga&255)<<24>>24==(ha&255)<<24>>24:0)&1;else if(aa<<24>>24==3){if((ga&255)<<24>>24==(ha&255)<<24>>24)aa=((ea|0)==(fa|0)?((ga&65535)>>>8&255)<<24>>24==((ha&65535)>>>8&255)<<24>>24:0)&(ia|0)==(ja|0);else aa=0;aa=aa&1}else if(aa<<24>>24==2)aa=((ia|0)==(ja|0)?((ga&65535)>>>8&255)<<24>>24==((ha&65535)>>>8&255)<<24>>24:0)&1;else break;if(aa)break c}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[ka+0>>2];c[Ca+4>>2]=c[ka+4>>2];c[Ca+8>>2]=c[ka+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);d:do if(((la|0)!=0?(U=c[Z>>2]|0,N=c[U+13084>>2]|0,O=X>>N,J=($(ma>>N,V)|0)+O|0,M=a[A+(J*12|0)+10>>0]|0,M<<24>>24!=0):0)?(ma|0)<(c[U+13124>>2]|0):0){Ca=c[U+13080>>2]|0;if(((ma>>Ca|0)>=(g>>Ca|0)?(X>>Ca|0)>=(f>>Ca|0):0)?(za=c[U+13072>>2]|0,Aa=c[U+13164>>2]|0,l=Aa+2|0,Ca=($(g>>za&Aa,l)|0)+(f>>za&Aa)|0,Ba=c[(c[G>>2]|0)+1684>>2]|0,(c[Ba+(($(ma>>za&Aa,l)|0)+(X>>za&Aa)<<2)>>2]|0)>(c[Ba+(Ca<<2)>>2]|0)):0)break;Ca=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Ca|0)==(f>>Ca|0)?(ma>>Ca|0)==(g>>Ca|0):0)break;U=A+(J*12|0)|0;do if((xa|0)!=0?(Ca=($(W>>N,V)|0)+O|0,R=A+(Ca*12|0)|0,Q=d[U>>0]|d[U+1>>0]<<8|d[U+2>>0]<<16|d[U+3>>0]<<24,P=A+(J*12|0)+4|0,P=d[P>>0]|d[P+1>>0]<<8|d[P+2>>0]<<16|d[P+3>>0]<<24,T=A+(J*12|0)+8|0,T=d[T>>0]|d[T+1>>0]<<8,R=d[R>>0]|d[R+1>>0]<<8|d[R+2>>0]<<16|d[R+3>>0]<<24,L=A+(Ca*12|0)+4|0,L=d[L>>0]|d[L+1>>0]<<8|d[L+2>>0]<<16|d[L+3>>0]<<24,K=A+(Ca*12|0)+8|0,K=d[K>>0]|d[K+1>>0]<<8,M<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(M<<24>>24==3){if((T&255)<<24>>24==(K&255)<<24>>24)J=((Q|0)==(R|0)?((T&65535)>>>8&255)<<24>>24==((K&65535)>>>8&255)<<24>>24:0)&(P|0)==(L|0);else J=0;J=J&1}else if(M<<24>>24==1)J=((Q|0)==(R|0)?(T&255)<<24>>24==(K&255)<<24>>24:0)&1;else if(M<<24>>24==2)J=((P|0)==(L|0)?((T&65535)>>>8&255)<<24>>24==((K&65535)>>>8&255)<<24>>24:0)&1;else break;if(J)break d}while(0);Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[U+0>>2];c[Ca+4>>2]=c[U+4>>2];c[Ca+8>>2]=c[U+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);e:do if((_|0)!=0?(z=c[(c[Z>>2]|0)+13084>>2]|0,y=$(Y>>z,V)|0,F=X>>z,x=y+F|0,w=a[A+(x*12|0)+10>>0]|0,w<<24>>24!=0):0){Ca=c[(c[G>>2]|0)+1620>>2]&255;if((X>>Ca|0)==(f>>Ca|0)?(Y>>Ca|0)==(g>>Ca|0):0)break;do if((xa|0)!=0?(D=A+(x*12|0)|0,Ca=($(W>>z,V)|0)+F|0,H=A+(Ca*12|0)|0,D=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24,E=A+(x*12|0)+4|0,E=d[E>>0]|d[E+1>>0]<<8|d[E+2>>0]<<16|d[E+3>>0]<<24,I=A+(x*12|0)+8|0,I=d[I>>0]|d[I+1>>0]<<8,H=d[H>>0]|d[H+1>>0]<<8|d[H+2>>0]<<16|d[H+3>>0]<<24,B=A+(Ca*12|0)+4|0,B=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24,C=A+(Ca*12|0)+8|0,C=d[C>>0]|d[C+1>>0]<<8,w<<24>>24==(a[A+(Ca*12|0)+10>>0]|0)):0){if(w<<24>>24==2)B=((E|0)==(B|0)?((I&65535)>>>8&255)<<24>>24==((C&65535)>>>8&255)<<24>>24:0)&1;else if(w<<24>>24==1)B=((D|0)==(H|0)?(I&255)<<24>>24==(C&255)<<24>>24:0)&1;else if(w<<24>>24==3){if((I&255)<<24>>24==(C&255)<<24>>24)B=((D|0)==(H|0)?((I&65535)>>>8&255)<<24>>24==((C&65535)>>>8&255)<<24>>24:0)&(E|0)==(B|0);else B=0;B=B&1}else break;if(B)break e}while(0);if(wa){B=A+(x*12|0)|0;Ca=y+(S>>z)|0;C=A+(Ca*12|0)|0;z=d[B>>0]|d[B+1>>0]<<8|d[B+2>>0]<<16|d[B+3>>0]<<24;y=A+(x*12|0)+4|0;y=d[y>>0]|d[y+1>>0]<<8|d[y+2>>0]<<16|d[y+3>>0]<<24;x=A+(x*12|0)+8|0;x=d[x>>0]|d[x+1>>0]<<8;C=d[C>>0]|d[C+1>>0]<<8|d[C+2>>0]<<16|d[C+3>>0]<<24;D=A+(Ca*12|0)+4|0;D=d[D>>0]|d[D+1>>0]<<8|d[D+2>>0]<<16|d[D+3>>0]<<24;E=A+(Ca*12|0)+8|0;E=d[E>>0]|d[E+1>>0]<<8;do if(w<<24>>24==(a[A+(Ca*12|0)+10>>0]|0))if(w<<24>>24==3){if((x&255)<<24>>24==(E&255)<<24>>24)w=((z|0)==(C|0)?((x&65535)>>>8&255)<<24>>24==((E&65535)>>>8&255)<<24>>24:0)&(y|0)==(D|0);else w=0;w=w&1;break}else if(w<<24>>24==1){w=((z|0)==(C|0)?(x&255)<<24>>24==(E&255)<<24>>24:0)&1;break}else if(w<<24>>24==2){w=((y|0)==(D|0)?((x&65535)>>>8&255)<<24>>24==((E&65535)>>>8&255)<<24>>24:0)&1;break}else{w=0;break}else w=0;while(0);if((w|0)!=0|(ya|0)==4)break}else{if((ya|0)==4){ya=4;break}B=A+(x*12|0)|0}Ca=p+(ya*12|0)|0;c[Ca+0>>2]=c[B+0>>2];c[Ca+4>>2]=c[B+4>>2];c[Ca+8>>2]=c[B+8>>2];if((ya|0)==(m|0))break b;ya=ya+1|0}while(0);w=e+3080|0;if((a[e+3035>>0]|0)!=0?ya>>>0<(c[w>>2]|0)>>>0:0){c[t>>2]=0;c[s>>2]=0;x=vd(e,f,g,u,v,0,t,0)|0;if(!(c[q>>2]|0))e=vd(e,f,g,u,v,0,s,1)|0;else e=0;if(e|x){a[p+(ya*12|0)+10>>0]=(e<<1)+x;b[p+(ya*12|0)+8>>1]=0;c[p+(ya*12|0)>>2]=c[t>>2];c[p+(ya*12|0)+4>>2]=c[s>>2];if((ya|0)==(m|0))break;ya=ya+1|0}}e=c[w>>2]|0;f:do if((c[q>>2]|0)==0&(ya|0)>1&ya>>>0>>0){s=$(ya+ -1|0,ya)|0;t=0;while(1){if((t|0)>=(s|0))break f;Ba=d[2912+(t<<1)>>0]|0;Ca=d[2913+(t<<1)>>0]|0;f=c[p+(Ba*12|0)>>2]|0;g=a[p+(Ba*12|0)+8>>0]|0;v=c[p+(Ca*12|0)+4>>2]|0;u=a[p+(Ca*12|0)+9>>0]|0;if(((a[p+(Ba*12|0)+10>>0]&1)!=0?(a[p+(Ca*12|0)+10>>0]&2)!=0:0)?!((f|0)==(v|0)?(c[k+(g<<24>>24<<2)+64>>2]|0)==(c[k+(u<<24>>24<<2)+260>>2]|0):0):0){a[p+(ya*12|0)+8>>0]=g;a[p+(ya*12|0)+9>>0]=u;a[p+(ya*12|0)+10>>0]=3;c[p+(ya*12|0)>>2]=f;c[p+(ya*12|0)+4>>2]=v;if((ya|0)==(m|0))break b;e=c[w>>2]|0;ya=ya+1|0}if(ya>>>0>>0)t=t+1|0;else break}}while(0);if(ya>>>0>>0){k=0;while(1){a[p+(ya*12|0)+10>>0]=((c[q>>2]|0)==0&1)<<1|1;c[p+(ya*12|0)>>2]=0;c[p+(ya*12|0)+4>>2]=0;Ca=(k|0)<(r|0)?k&255:0;a[p+(ya*12|0)+8>>0]=Ca;a[p+(ya*12|0)+9>>0]=Ca;if((ya|0)==(m|0))break b;ya=ya+1|0;if(ya>>>0>=(c[w>>2]|0)>>>0)break b;k=k+1|0}}}while(0);q=p+(m*12|0)|0;p=p+(m*12|0)+10|0;if((a[p>>0]|0)!=3){c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}if((j+h|0)!=12){c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}a[p>>0]=1;c[n+0>>2]=c[q+0>>2];c[n+4>>2]=c[q+4>>2];c[n+8>>2]=c[q+8>>2];i=o;return}function sd(d,e,f,g,h,j,k,l,m,n,o){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;k=i;i=i+32|0;j=k;r=k+16|0;q=k+12|0;l=k+8|0;H=c[d+136>>2]|0;z=c[(c[d+3508>>2]|0)+16>>2]|0;u=d+200|0;F=c[u>>2]|0;A=c[F+13156>>2]|0;x=j;c[x>>2]=0;c[x+4>>2]=0;x=c[H+31292>>2]|0;B=c[H+31300>>2]|0;C=c[H+31296>>2]|0;E=c[H+31308>>2]|0;p=a[m+o+8>>0]|0;s=(o|0)==0&1;t=e+ -1|0;w=h+f|0;if(((c[H+31288>>2]|0)!=0?(H=c[F+13084>>2]|0,(a[z+((($(w>>H,A)|0)+(t>>H)|0)*12|0)+10>>0]|0)!=0):0)?(w|0)<(c[F+13124>>2]|0):0){H=c[F+13080>>2]|0;if((w>>H|0)>=(f>>H|0)?(t>>H|0)>=(e>>H|0):0){I=c[F+13072>>2]|0;D=c[F+13164>>2]|0;J=D+2|0;G=($(f>>I&D,J)|0)+(e>>I&D)|0;H=c[(c[d+204>>2]|0)+1684>>2]|0;G=(c[H+(($(w>>I&D,J)|0)+(t>>I&D)<<2)>>2]|0)<=(c[H+(G<<2)>>2]|0)}else G=1}else G=0;D=w+ -1|0;if(!x)H=0;else{H=c[F+13084>>2]|0;H=(a[z+((($(D>>H,A)|0)+(t>>H)|0)*12|0)+10>>0]|0)!=0}x=G|H;if(G){J=c[F+13084>>2]|0;if((td(d,t>>J,w>>J,o,r,o,p)|0)==0?(J=c[(c[u>>2]|0)+13084>>2]|0,(td(d,t>>J,w>>J,s,r,o,p)|0)==0):0)v=12;else F=1}else v=12;do if((v|0)==12){if(H){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,D>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,D>>J,s,r,o,p)|0){F=1;break}}if(G){J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,w>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,w>>J,s,r,o,p)|0){F=1;break}}if(H){J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,D>>J,o,r,o,p)|0){F=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(ud(d,t>>J,D>>J,s,r,o,p)|0){F=1;break}}F=0}while(0);D=g+e|0;w=f+ -1|0;if(((E|0)!=0?(y=c[u>>2]|0,J=c[y+13084>>2]|0,(a[z+((($(w>>J,A)|0)+(D>>J)|0)*12|0)+10>>0]|0)!=0):0)?(D|0)<(c[y+13120>>2]|0):0){J=c[y+13080>>2]|0;if((w>>J|0)>=(f>>J|0)?(D>>J|0)>=(e>>J|0):0){H=c[y+13072>>2]|0;I=c[y+13164>>2]|0;G=I+2|0;E=($(f>>H&I,G)|0)+(e>>H&I)|0;J=c[(c[d+204>>2]|0)+1684>>2]|0;E=(c[J+(($(w>>H&I,G)|0)+(D>>H&I)<<2)>>2]|0)<=(c[J+(E<<2)>>2]|0)}else E=1}else E=0;y=D+ -1|0;if(!C)C=0;else{C=c[(c[u>>2]|0)+13084>>2]|0;C=(a[z+((($(w>>C,A)|0)+(y>>C)|0)*12|0)+10>>0]|0)!=0}if(!B)z=0;else{J=c[(c[u>>2]|0)+13084>>2]|0;z=(a[z+((($(w>>J,A)|0)+(t>>J)|0)*12|0)+10>>0]|0)!=0}if(E){J=c[(c[u>>2]|0)+13084>>2]|0;if((td(d,D>>J,w>>J,o,q,o,p)|0)==0?(J=c[(c[u>>2]|0)+13084>>2]|0,(td(d,D>>J,w>>J,s,q,o,p)|0)==0):0)v=35;else A=1}else v=35;do if((v|0)==35){if(C){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,y>>J,w>>J,o,q,o,p)|0){A=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,y>>J,w>>J,s,q,o,p)|0){A=1;break}}if(z){J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,w>>J,o,q,o,p)|0){A=1;break}J=c[(c[u>>2]|0)+13084>>2]|0;if(td(d,t>>J,w>>J,s,q,o,p)|0){A=1;break}}A=0}while(0);do if(!x){if(A){c[r>>2]=c[q>>2];F=1}if(E){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,D>>A,w>>A,o,q,o,p)|0;if(A)break;A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,D>>A,w>>A,s,q,o,p)|0}else A=0;if(C&(A|0)==0){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,y>>A,w>>A,o,q,o,p)|0;if(A)break;A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,y>>A,w>>A,s,q,o,p)|0}if(z&(A|0)==0){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,t>>A,w>>A,o,q,o,p)|0;if(!A){A=c[(c[u>>2]|0)+13084>>2]|0;A=ud(d,t>>A,w>>A,s,q,o,p)|0}}}while(0);t=(F|0)!=0;if(t){c[j>>2]=c[r>>2];s=1}else s=0;do if(A){if(t){J=c[r>>2]|0;q=c[q>>2]|0;if((J&65535)<<16>>16==(q&65535)<<16>>16?(J>>>16&65535)<<16>>16==(q>>>16&65535)<<16>>16:0)break}else q=c[q>>2]|0;r=s+1|0;c[j+(s<<2)>>2]=q;if(r>>>0<2)s=r;else{J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}}while(0);if(!((a[d+3035>>0]|0)!=0&(s|0)==(n|0))){J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}if(!(vd(d,e,f,g,h,p,l,o)|0)){J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}c[j+(n<<2)>>2]=c[l>>2];J=m+(o<<2)|0;I=j+(n<<2)|0;I=c[I>>2]|0;b[J>>1]=I;b[J+2>>1]=I>>>16;i=k;return}function td(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;o=i;n=c[d+3508>>2]|0;m=c[n+16>>2]|0;n=c[n+20>>2]|0;f=($(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if(!(a[m+(f*12|0)+10>>0]&1<>0]<<2)+64>>2]|0)!=(c[n+(k*196|0)+(l<<2)+64>>2]|0)){d=0;i=o;return d|0}d=m+(f*12|0)+(h<<2)|0;d=e[d>>1]|e[d+2>>1]<<16;b[j>>1]=d;b[j+2>>1]=d>>>16;d=1;i=o;return d|0}function ud(d,f,g,h,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;m=i;o=d+3508|0;n=c[o>>2]|0;p=c[n+16>>2]|0;n=c[n+20>>2]|0;g=($(c[(c[d+200>>2]|0)+13156>>2]|0,g)|0)+f|0;if(!(a[p+(g*12|0)+10>>0]&1<>2]|0;if((c[n+(h*196|0)+(a[p+(g*12|0)+h+8>>0]<<2)+128>>2]|0)!=(f|0)){g=0;i=m;return g|0}n=p+(g*12|0)+(h<<2)|0;n=e[n>>1]|e[n+2>>1]<<16;b[j>>1]=n;b[j+2>>1]=n>>>16;if(f){g=1;i=m;return g|0}p=c[o>>2]|0;f=c[p+20>>2]|0;h=c[f+(h*196|0)+(a[(c[p+16>>2]|0)+(g*12|0)+h+8>>0]<<2)+64>>2]|0;k=c[f+(k*196|0)+(l<<2)+64>>2]|0;if((h|0)==(k|0)){g=1;i=m;return g|0}d=c[d+5816>>2]|0;l=(d|0)!=(h|0)?d-h|0:1;d=d-k|0;if((l+128|0)>>>0>255)k=l>>31^127;else k=l;l=k<<24>>24;if((d+128|0)>>>0>255)d=d>>31^127;g=(l|0)/2|0;d=($(d<<24>>24,(((k&255)<<24>>24>-2?g:0-g|0)+16384|0)/(l|0)|0)|0)+32>>6;if((d|0)<-4096)d=-4096;else d=(d|0)>4095?4095:d;k=$(n<<16>>16,d)|0;k=k+127+(k>>>31)|0;l=k>>8;if((l+32768|0)>>>0>65535)l=k>>31^32767;b[j>>1]=l;n=$(n>>16,d)|0;n=n+127+(n>>>31)|0;d=n>>8;if((d+32768|0)>>>0>65535)d=n>>31^32767;b[j+2>>1]=d;g=1;i=m;return g|0}function vd(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;s=i;i=i+32|0;o=s+12|0;m=s;p=d+200|0;u=c[p>>2]|0;r=c[u+13156>>2]|0;n=c[(c[d+3508>>2]|0)+36>>2]|0;if(!n){b[k>>1]=0;b[k+2>>1]=0>>>16;w=0;i=s;return w|0}t=c[n+16>>2]|0;q=c[n+32>>2]|0;v=g+e|0;w=h+f|0;if(!t){w=0;i=s;return w|0}x=c[u+13080>>2]|0;if(((f>>x|0)==(w>>x|0)?(w|0)<(c[u+13124>>2]|0):0)?(v|0)<(c[u+13120>>2]|0):0){v=v&-16;w=w&-16;if((a[d+140>>0]|0)==1)u=c[p>>2]|0;u=c[u+13084>>2]|0;u=t+((($(w>>u,r)|0)+(v>>u)|0)*12|0)|0;c[m+0>>2]=c[u+0>>2];c[m+4>>2]=c[u+4>>2];c[m+8>>2]=c[u+8>>2];u=qc(d,n,v,w)|0;c[o+0>>2]=c[m+0>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];u=wd(d,o,j,k,l,q,u)|0;if(u){x=u;i=s;return x|0}}e=(g>>1)+e&-16;h=(h>>1)+f&-16;x=c[(c[p>>2]|0)+13084>>2]|0;x=t+((($(h>>x,r)|0)+(e>>x)|0)*12|0)|0;c[m+0>>2]=c[x+0>>2];c[m+4>>2]=c[x+4>>2];c[m+8>>2]=c[x+8>>2];x=qc(d,n,e,h)|0;c[o+0>>2]=c[m+0>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];x=wd(d,o,j,k,l,q,x)|0;i=s;return x|0}function wd(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=i;k=c[(c[b+3508>>2]|0)+20>>2]|0;n=a[d+10>>0]|0;if(!(n<<24>>24)){r=0;i=m;return r|0}if(!(n&1)){r=xd(f,d+4|0,h,c[b+5816>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}if(n<<24>>24==3){n=b+5816|0;o=c[k+192>>2]|0;a:do if((o|0)>0){p=c[n>>2]|0;q=0;while(1){if((c[k+(q<<2)+64>>2]|0)>(p|0)){p=1;break a}q=q+1|0;if((q|0)>=(o|0)){p=0;break}}}else p=0;while(0);o=c[k+388>>2]|0;b:do if((o|0)>0){q=c[n>>2]|0;r=0;while(1){if((c[k+(r<<2)+260>>2]|0)>(q|0))break b;r=r+1|0;if((r|0)>=(o|0)){l=21;break}}}else l=21;while(0);if((l|0)==21?(p|0)==0:0)if(!g){r=xd(f,d,h,c[n>>2]|0,k,0,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=xd(f,d+4|0,h,c[n>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}if((a[b+3051>>0]|0)==1){r=xd(f,d,h,c[n>>2]|0,k,g,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=xd(f,d+4|0,h,c[n>>2]|0,k,g,e,j,1,a[d+9>>0]|0)|0;i=m;return r|0}}else if(n<<24>>24==1){r=xd(f,d,h,c[b+5816>>2]|0,k,g,e,j,0,a[d+8>>0]|0)|0;i=m;return r|0}else{r=0;i=m;return r|0}return 0} -function Ra(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Sa(){return i|0}function Ta(a){a=a|0;i=a}function Ua(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Va(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Wa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Xa(a){a=a|0;D=a}function Ya(){return D|0}function Za(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}mf(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function _a(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+3488>>2]<<2)>>2]|0)==(d|0)){$a(b);f=b+2437|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)ab(b);if(a[b+2436>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){ab(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}mf(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)bb(c[b+136>>2]|0);else $a(b);ab(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;cb((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)bb(c[d>>2]|0);else $a(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){ab(b);i=e;return}else{mf(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function $a(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;Zd(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){Zd(d,h);f=c[g>>2]|0}Vd((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function ab(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+2428>>2]|0;e=2-f|0;e=(a[b+3048>>0]|0)==0|(f|0)==2?e:e^3;f=b+3100|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function bb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Vd(d,e,a);i=b;return}function cb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}Nb(a);g=0;i=b;return g|0}function db(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a)|0;i=b;return a|0}function eb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[3072+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4224>>0]|0;e=h&1;h=c[j>>2]|0;g=d[3072+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[3072+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function fb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(eb(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(gb((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function gb(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){Nb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function hb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function ib(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(gb((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function jb(a){a=a|0;var b=0;b=i;a=gb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function kb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function lb(a){a=a|0;var b=0;b=i;a=cb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function mb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+5|0)|0;i=b;return a|0}function nb(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;l=c[b+200>>2]|0;j=c[l+13140>>2]|0;l=(1<>2])+ -1|0;k=l&e;e=c[b+136>>2]|0;if((a[e+308>>0]|0)==0?(l&d|0)==0:0)d=0;else{d=f+ -1+($(j,g)|0)|0;d=(a[(c[b+7584>>2]|0)+d>>0]|0)!=0&1}if((a[e+309>>0]|0)==0&(k|0)==0){l=d;d=e+224|0;l=l+6|0;l=e+l|0;l=eb(d,l)|0;i=h;return l|0}l=($(j,g+ -1|0)|0)+f|0;l=((a[(c[b+7584>>2]|0)+l>>0]|0)!=0&1)+d|0;d=e+224|0;l=l+6|0;l=e+l|0;l=eb(d,l)|0;i=h;return l|0}function ob(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(eb(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(gb((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function qb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+176|0)|0;i=b;return a|0}function rb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(eb(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function sb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+12|0)|0;i=b;return a|0}function tb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+7588>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=eb(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+7588>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=eb(f,n)|0;i=j;return n|0}function ub(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=b+136|0;g=c[f>>2]|0;do if(!(eb(g+224|0,g+13|0)|0)){b=c[b+200>>2]|0;if((c[b+13064>>2]|0)==(d|0)){b=c[f>>2]|0;if((c[b+31244>>2]|0)==1){f=3;break}if(eb(b+224|0,b+14|0)|0){f=1;break}if((d|0)==3){f=2;break}f=c[f>>2]|0;f=(eb(f+224|0,f+15|0)|0)==0;f=f?3:2;break}g=(a[b+12940>>0]|0)==0;d=c[f>>2]|0;d=(eb(d+224|0,d+14|0)|0)!=0;if(g){f=d?1:2;break}b=c[f>>2]|0;b=(eb(b+224|0,b+16|0)|0)!=0;if(d){if(b){f=1;break}f=(gb((c[f>>2]|0)+224|0)|0)==0;f=f?4:5;break}else{if(b){f=2;break}f=(gb((c[f>>2]|0)+224|0)|0)==0;f=f?6:7;break}}else f=0;while(0);i=e;return f|0}function vb(a){a=a|0;var b=0;b=i;a=cb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function wb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+17|0)|0;i=b;return a|0}function xb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(gb((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function yb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function zb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(eb(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(gb((c[a>>2]|0)+224|0)|0)<<1;d=gb((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function Ab(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+136|0;e=c[d>>2]|0;e=eb(e+224|0,e+21|0)|0;if(!e){f=0;i=b;return f|0}a=a+3080|0;if(e>>>0>=((c[a>>2]|0)+ -1|0)>>>0){f=e;i=b;return f|0}while(1){f=e+1|0;if(!(gb((c[d>>2]|0)+224|0)|0)){d=5;break}if(f>>>0<((c[a>>2]|0)+ -1|0)>>>0)e=f;else{e=f;d=5;break}}if((d|0)==5){i=b;return e|0}return 0}function Bb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+20|0)|0;i=b;return a|0}function Cb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;g=a+136|0;a=c[g>>2]|0;f=a+224|0;if((d+b|0)==12){g=eb(f,a+26|0)|0;i=e;return g|0}if(eb(f,a+((c[a+31232>>2]|0)+22)|0)|0){g=2;i=e;return g|0}g=c[g>>2]|0;g=eb(g+224|0,g+26|0)|0;i=e;return g|0}function Db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;b=b+ -1|0;e=(b|0)>2;f=e?2:b;a=a+136|0;if((f|0)>0)h=0;else{h=0;i=d;return h|0}while(1){j=c[a>>2]|0;g=h+1|0;if(!(eb(j+224|0,j+(h+27)|0)|0)){g=h;break}if((g|0)<(f|0))h=g;else break}if((g|0)!=2|e^1){j=g;i=d;return j|0}else e=2;while(1){f=e+1|0;if(!(gb((c[a>>2]|0)+224|0)|0)){b=7;break}if((f|0)<(b|0))e=f;else{e=f;b=7;break}}if((b|0)==7){i=d;return e|0}return 0}function Eb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+35|0)|0;i=b;return a|0}function Fb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+36|0)|0;i=b;return a|0}function Gb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function Hb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function Ib(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function Jb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(eb(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function Kb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function Lb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ga=0,Ha=0,Ia=0,Ja=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;m=i;i=i+96|0;w=m+24|0;t=m+8|0;v=m;s=f+136|0;p=c[s>>2]|0;x=c[f+160>>2]|0;n=c[x+(l<<2)+32>>2]|0;r=f+200|0;o=c[r>>2]|0;W=$(h>>c[o+(l<<2)+13180>>2],n)|0;o=(c[x+(l<<2)>>2]|0)+(W+(g>>c[o+(l<<2)+13168>>2]<>2]))|0;W=(l|0)!=0;g=p+320|0;h=W?p+11680|0:g;x=w+0|0;q=x+64|0;do{a[x>>0]=0;x=x+1|0}while((x|0)<(q|0));V=1<>2]|0;q=V<>0]|0)){A=a[p+272>>0]|0;C=f+204|0;Pa=c[C>>2]|0;if((a[Pa+21>>0]|0)!=0?(d[Pa+1629>>0]|0)>=(j|0):0){I=c[s>>2]|0;I=eb(I+224|0,I+(W&1|46)|0)|0}else I=0;if(y){B=c[r>>2]|0;E=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+3060>>2]|0)+(c[B+28>>2]|0)+(a[p+302>>0]|0)|0;else B=(c[f+3064>>2]|0)+(c[B+32>>2]|0)+(a[p+303>>0]|0)|0;B=B+A|0;E=c[r>>2]|0;A=c[E+13192>>2]|0;F=0-A|0;if((B|0)<(F|0))B=F;else B=(B|0)>57?57:B;do if((c[E+4>>2]|0)==1){if((B|0)>=30)if((B|0)>43){B=B+ -6|0;break}else{B=c[176+(B+ -30<<2)>>2]|0;break}}else B=(B|0)>51?51:B;while(0);B=A+B|0}A=(c[E+52>>2]|0)+j|0;H=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[E+634>>0]|0)!=0?!((I|0)!=0&(j|0)>2):0){F=c[C>>2]|0;F=(a[F+68>>0]|0)==0?E+635|0:F+69|0;C=((c[p+31244>>2]|0)!=1?3:0)+l|0;E=F+((j+ -2|0)*384|0)+(C<<6)|0;if((j|0)>3)la=a[F+((j+ -4|0)*6|0)+C+1536>>0]|0;else la=16}else{la=16;E=0}}else{A=0;la=0;B=0;E=0;H=0;I=0}F=p+31244|0;do if((c[F>>2]|0)==0?(c[(c[r>>2]|0)+13108>>2]|0)!=0:0){if((I|0)==0?(a[z>>0]|0)==0:0){C=0;G=0;break}G=c[s>>2]|0;C=W&1;G=eb(G+224|0,G+(C|48)|0)|0;if(G){Pa=c[s>>2]|0;C=eb(Pa+224|0,Pa+(C|50)|0)|0}else{C=0;G=0}}else{C=0;G=0}while(0);L=(j<<1)+ -1|0;if(y){J=(j*3|0)+ -6+(j+ -1>>2)|0;M=j+1>>2}else{J=15;M=j+ -2|0}if((L|0)>0){O=J+52|0;K=0;while(1){Pa=c[s>>2]|0;N=K+1|0;if(!(eb(Pa+224|0,Pa+(O+(K>>M))|0)|0))break;if((N|0)<(L|0))K=N;else{K=N;break}}N=J+70|0;J=0;while(1){Pa=c[s>>2]|0;O=J+1|0;if(!(eb(Pa+224|0,Pa+(N+(J>>M))|0)|0))break;if((O|0)<(L|0))J=O;else{J=O;break}}if((K|0)>3){L=(K>>1)+ -1|0;N=gb((c[s>>2]|0)+224|0)|0;if((L|0)>1){M=1;do{N=gb((c[s>>2]|0)+224|0)|0|N<<1;M=M+1|0}while((M|0)!=(L|0))}K=N+((K&1|2)<3){M=(J>>1)+ -1|0;N=gb((c[s>>2]|0)+224|0)|0;if((M|0)>1){L=1;do{N=gb((c[s>>2]|0)+224|0)|0|N<<1;L=L+1|0}while((L|0)!=(M|0))}L=K;O=N+((J&1|2)<>2;Q=O>>2;if((k|0)==1){J=L;K=O;S=d[536+(O<<3)+L>>0]|0;L=488;M=504;N=496;O=520;break}else if(k){N=L;M=O;u=55;break}S=d[(L&3)+(392+((O&3)<<2))>>0]|0;if((V|0)==8){J=L;K=O;S=(d[416+(Q<<1)+P>>0]<<4)+S|0;L=496;M=8;N=488;O=24;break}else if((V|0)==16){J=L;K=O;S=(d[392+(Q<<2)+P>>0]<<4)+S|0;L=8;M=8;N=24;O=24;break}else if((V|0)==4){J=L;K=O;L=408;M=8;N=408;O=24;break}else{J=L;K=O;S=(d[424+(Q<<3)+P>>0]<<4)+S|0;L=40;M=8;N=104;O=24;break}}else{N=O;M=L;P=O>>2;Q=L>>2;u=55}while(0);if((u|0)==55){J=N;K=M;S=d[536+(N<<3)+M>>0]|0;L=496;M=520;N=488;O=504}R=S+1|0;T=S>>4;if((T|0)>-1){S=(1<0;l=U?90:88;V=V+ -1>>2;W=W?27:0;Z=(j|0)==2;Y=W+3|0;X=(j|0)==3;k=(k|0)==0?9:15;ja=y?0:27;ga=(I|0)==0;da=y?42:43;aa=y?40:41;ea=y?2:0;ia=(G|0)==0;ha=(x&-17|0)!=10&ia;ka=f+204|0;ca=((B|0)<0)<<31>>31;ba=((A|0)<0)<<31>>31;_=(I|0)!=0&(j|0)>2;fa=(j|0)<4;pa=la&255;ma=(y&1)<<1;la=ma|1;ta=1;oa=T;ra=0;Aa=16;while(1){qa=oa<<4;za=a[L+oa>>0]|0;wa=za&255;ya=a[N+oa>>0]|0;xa=ya&255;na=(oa|0)>0;if((oa|0)<(T|0)&na){if((wa|0)<(S|0))sa=d[w+(wa+1<<3)+xa>>0]|0;else sa=0;if((xa|0)<(S|0))sa=(d[xa+1+(w+(wa<<3))>>0]|0)+sa|0;Ba=c[s>>2]|0;Ba=(eb(Ba+224|0,Ba+(((sa|0)>1?1:sa)+l)|0)|0)&255;a[w+(wa<<3)+xa>>0]=Ba;ua=1}else{if(!((wa|0)==(P|0)&(xa|0)==(Q|0)))if(!(za<<24>>24))Ba=ya<<24>>24==0&1;else Ba=0;else Ba=1;a[w+(wa<<3)+xa>>0]=Ba;ua=0}qa=R-qa|0;sa=(oa|0)==(T|0);if(sa){a[t>>0]=qa+255;va=qa+ -2|0;qa=1}else{va=15;qa=0}if((wa|0)<(V|0))Ca=(a[w+(wa+1<<3)+xa>>0]|0)!=0&1;else Ca=0;if((xa|0)<(V|0))Ca=((a[xa+1+(w+(wa<<3))>>0]|0)!=0&1)<<1|Ca;do if(Ba<<24>>24!=0&(va|0)>-1){if(!(c[(c[r>>2]|0)+13100>>2]|0))if(Z){ya=600;za=W}else u=79;else if(ga){Ba=(a[z>>0]|0)!=0;if(Ba|Z){ya=Ba?664:600;za=Ba?aa:W}else u=79}else{ya=664;za=aa}do if((u|0)==79){u=0;Ba=(Ca<<4)+616|0;if(!y){ya=Ba;za=W+(X?9:12)|0;break}za=(ya|za)<<24>>24==0?W:Y;if(X){ya=Ba;za=za+k|0;break}else{ya=Ba;za=za+21|0;break}}while(0);if((va|0)>0){Ba=za+92|0;do{Pa=c[s>>2]|0;if(eb(Pa+224|0,Pa+(Ba+(d[ya+((d[O+va>>0]<<2)+(d[M+va>>0]|0))>>0]|0))|0)|0){a[t+(qa&255)>>0]=va;ua=0;qa=qa+1<<24>>24}va=va+ -1|0}while((va|0)>0)}if(ua){a[t+(qa&255)>>0]=0;ua=qa+1<<24>>24;break}if(c[(c[r>>2]|0)+13100>>2]|0)if(ga?(a[z>>0]|0)==0:0)u=93;else ua=da;else u=93;if((u|0)==93){u=0;ua=(oa|0)==0?ja:za+2|0}Pa=c[s>>2]|0;if((eb(Pa+224|0,Pa+(ua+92)|0)|0)==1){a[t+(qa&255)>>0]=0;ua=qa+1<<24>>24}else ua=qa}else ua=qa;while(0);qa=ua&255;a:do if(ua<<24>>24){ua=na?ea:0;if(!(c[(c[r>>2]|0)+13116>>2]|0))Ia=0;else{if(ga?(a[z>>0]|0)==0:0)ra=ma;else ra=la;Ia=(d[p+ra+199>>0]|0)>>>2}va=ua|(ta|0)==0&(sa^1)&1;Ga=a[t>>0]|0;ya=Ga&255;za=qa>>>0>8?8:qa;if(!za){sa=-1;ta=1}else{Ba=va<<2;sa=-1;ta=1;ua=0;do{Pa=ta+Ba|0;Oa=c[s>>2]|0;Pa=(eb(Oa+224|0,Oa+((U?Pa+16|0:Pa)+136)|0)|0)&255;a[v+ua>>0]=Pa;if(!(Pa<<24>>24))ta=((ta+ -1|0)>>>0<2&1)+ta|0;else{sa=(sa|0)==-1?ua:sa;ta=0}ua=ua+1|0}while((ua|0)<(za|0))}za=qa+ -1|0;ua=a[t+za>>0]|0;Ba=ua&255;b:do if(!(a[z>>0]|0)){do if((c[F>>2]|0)==1){if((c[(c[r>>2]|0)+13104>>2]|0)==0|ga){u=113;break}if(!ha){ya=0;break b}}else u=113;while(0);if((u|0)==113?(u=0,!ia):0){ya=0;break}ya=(ya-Ba|0)>3&1}else ya=0;while(0);if((sa|0)!=-1){Oa=c[s>>2]|0;Oa=eb(Oa+224|0,Oa+((U?va|4:va)|160)|0)|0;Pa=v+sa|0;a[Pa>>0]=(d[Pa>>0]|0)+Oa}va=(ya|0)==0;if((a[(c[ka>>2]|0)+4>>0]|0)==0|va){za=0;ya=0;do{ya=gb((c[s>>2]|0)+224|0)|0|ya<<1;za=za+1|0}while((za|0)<(qa|0));Ca=ya<<16-qa}else{ya=za&255;if(!((za&255)<<24>>24))Ba=0;else{za=0;Ba=0;do{Ba=gb((c[s>>2]|0)+224|0)|0|Ba<<1;za=za+1|0}while((za|0)<(ya|0))}Ca=Ba<<17-qa}wa=wa<<2;xa=xa<<2;ya=p+ra+199|0;za=0;Ja=0;Da=Aa;Ha=0;while(1){Aa=Ga&255;Ba=(d[M+Aa>>0]|0)+wa|0;Aa=(d[O+Aa>>0]|0)+xa|0;c:do if((za|0)<8){La=(d[v+za>>0]|0)+1|0;Pa=(za|0)==(sa|0);if((La|0)==((Pa?3:2)|0)&0==((Pa?0:0)|0))Ma=0;else{Ma=0;break}while(1){Na=Ma+1|0;if(!(gb((c[s>>2]|0)+224|0)|0)){u=128;break}if((Na|0)<31)Ma=Na;else{u=132;break}}do if((u|0)==128){u=0;if((Ma|0)>=3){Na=Ma;u=132;break}if((Ia|0)>0){Na=0;Oa=0;do{Oa=gb((c[s>>2]|0)+224|0)|0|Oa<<1;Na=Na+1|0}while((Na|0)!=(Ia|0))}else Oa=0;Na=Oa+(Ma<0){Oa=Ia+ -3+Na|0;Na=0;Pa=0;do{Pa=gb((c[s>>2]|0)+224|0)|0|Pa<<1;Na=Na+1|0}while((Na|0)!=(Oa|0))}else Pa=0;Na=Pa+((1<>31|0,La|0,0)|0;Ma=D;Oa=3<>31;Pa=c[(c[r>>2]|0)+13116>>2]|0;do if((Ma|0)>(Qa|0)|(Ma|0)==(Qa|0)&La>>>0>Oa>>>0){Oa=Ia+1|0;if(Pa){Ia=Oa;break}Ia=(Ia|0)>3?4:Oa;break c}while(0);if(!((Pa|0)!=0&(Ja|0)==0))break;Oa=a[ya>>0]|0;Ja=(Oa&255)>>>2;if((Na|0)>=(3<>0]=Oa+1<<24>>24;Ja=1;break}if((Na<<1|0)>=(1<>24==0){Ja=1;break}a[ya>>0]=Oa+ -1<<24>>24;Ja=1}else{La=0;while(1){Ma=La+1|0;if(!(gb((c[s>>2]|0)+224|0)|0)){u=146;break}if((Ma|0)<31)La=Ma;else{u=150;break}}do if((u|0)==146){u=0;if((La|0)>=3){Ma=La;u=150;break}if((Ia|0)>0){Ma=0;Na=0;do{Na=gb((c[s>>2]|0)+224|0)|0|Na<<1;Ma=Ma+1|0}while((Ma|0)!=(Ia|0))}else Na=0;Na=Na+(La<0){Ma=Ia+ -3+Ma|0;Na=0;Oa=0;do{Oa=gb((c[s>>2]|0)+224|0)|0|Oa<<1;Na=Na+1|0}while((Na|0)!=(Ma|0))}else Oa=0;Na=Oa+((1<>31;Pa=c[(c[r>>2]|0)+13116>>2]|0;do if((Na|0)>=(3<3?4:Oa;break c}while(0);if(!((Pa|0)!=0&(Ja|0)==0))break;Oa=a[ya>>0]|0;Ja=(Oa&255)>>>2;if((Na|0)>=(3<>0]=Oa+1<<24>>24;Ja=1;break}if((Na<<1|0)>=(1<>24==0){Ja=1;break}a[ya>>0]=Oa+ -1<<24>>24;Ja=1}while(0);do if(!((a[(c[ka>>2]|0)+4>>0]|0)==0|va)){Ha=gf(La|0,Ma|0,Ha|0,0)|0;if(Ga<<24>>24!=ua<<24>>24)break;Qa=(Ha&1|0)==0;Pa=ff(0,0,La|0,Ma|0)|0;La=Qa?La:Pa;Ma=Qa?Ma:D}while(0);Qa=(Ca&32768|0)==0;Ga=ff(0,0,La|0,Ma|0)|0;Ga=Qa?La:Ga;La=Qa?Ma:D;Ca=Ca<<1&131070;Ma=Ga&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[r>>2]|0)+634>>0]|0)==0|_)){if(!((Aa|Ba|0)!=0|fa)){Da=pa;break}if((j|0)==3)Da=(Aa<<3)+Ba|0;else if((j|0)==4)Da=(Aa>>>1<<3)+(Ba>>>1)|0;else if((j|0)==5)Da=(Aa>>>2<<3)+(Ba>>>2)|0;else Da=(Aa<<2)+Ba|0;Da=d[E+Da>>0]|0}while(0);Ga=rf(Ga|0,La|0,B|0,ca|0)|0;Ga=rf(Ga|0,D|0,Da|0,((Da|0)<0)<<31>>31|0)|0;Ga=gf(Ga|0,D|0,A|0,ba|0)|0;Ga=ef(Ga|0,D|0,H|0)|0;La=D;if((La|0)<0){Ma=(Ga&-32768|0)==-32768&(La&268435455|0)==268435455?Ga&65535:-32768;break}else{Ma=La>>>0>0|(La|0)==0&Ga>>>0>32767?32767:Ga&65535;break}}while(0);b[h+((Aa<>1]=Ma;za=za+1|0;if((za|0)>=(qa|0)){Aa=Da;break a}Ga=a[t+za>>0]|0}}while(0);if(na)oa=oa+ -1|0;else break}}do if(!(a[z>>0]|0)){if(I){if(((j|0)==2?(c[(c[r>>2]|0)+13096>>2]|0)!=0:0)?(c[F>>2]|0)==1:0){s=0;do{Oa=h+(15-s<<1)|0;Pa=b[Oa>>1]|0;Qa=h+(s<<1)|0;b[Oa>>1]=b[Qa>>1]|0;b[Qa>>1]=Pa;s=s+1|0}while((s|0)!=8)}s=j&65535;Fa[c[f+5872>>2]&15](h,s);if(!G){if(!(c[(c[r>>2]|0)+13104>>2]|0))break;if((c[F>>2]|0)!=1)break;if((x&-17|0)!=10)break;C=(x|0)==26&1}Ka[c[f+5876>>2]&7](h,s,C);break}if(y&(c[F>>2]|0)==1&(j|0)==2){Ea[c[f+5880>>2]&7](h);break}r=(J|0)>(K|0)?J:K;if(!r){Ea[c[f+(j+ -2<<2)+5900>>2]&7](h);break}s=K+4+J|0;do if((r|0)>=4){if((r|0)<8){s=(s|0)<8?s:8;break}if((r|0)<12)s=(s|0)<24?s:24}else s=(s|0)<4?s:4;while(0);Fa[c[f+(j+ -2<<2)+5884>>2]&15](h,s)}else{r=(c[(c[r>>2]|0)+13104>>2]|0)==0;if(!G){if(r)break;if((x&-17|0)==10)u=185;else break}else if(!r)u=185;if((u|0)==185)C=(x|0)==26&1;Ka[c[f+5876>>2]&7](h,j&65535,C)}while(0);if(!(a[p+304>>0]|0)){Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}if((q|0)<=0){Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}p=c[p+284>>2]|0;r=0;do{Qa=h+(r<<1)|0;b[Qa>>1]=(($(b[g+(r<<1)>>1]|0,p)|0)>>>3)+(e[Qa>>1]|0);r=r+1|0}while((r|0)!=(q|0));Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}function Mb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;f=i;e=a+136|0;a=c[e>>2]|0;d=eb(a+224|0,a+31|0)|0;g=c[e>>2]|0;g=eb(g+224|0,g+31|0)|0;if(!d)d=0;else{l=c[e>>2]|0;d=(eb(l+224|0,l+34|0)|0)+d|0}if(!g)g=0;else{l=c[e>>2]|0;g=(eb(l+224|0,l+34|0)|0)+g|0}if((d|0)==2){j=1;k=2;while(1){if(!(gb((c[e>>2]|0)+224|0)|0)){d=7;break}k=(1<=31){d=9;break}}if((d|0)==7){h=c[e>>2]|0;l=h+224|0;if(!j)j=l;else{h=l;d=10}}else if((d|0)==9){h=(c[e>>2]|0)+224|0;d=10}if((d|0)==10)while(1){j=j+ -1|0;k=((gb(h)|0)<>2]|0;d=h+224|0;if(!j){j=d;break}else{h=d;d=10}}d=c[j>>2]<<1;c[j>>2]=d;if(!(d&65534)){Nb(j);d=c[j>>2]|0}m=c[h+228>>2]<<17;h=d-m|0;l=h>>31;c[j>>2]=(l&m)+h;b[a+31272>>1]=(l^0-k)-l}else if(!d)b[a+31272>>1]=0;else if((d|0)==1){h=c[e>>2]|0;d=h+224|0;j=c[d>>2]<<1;c[d>>2]=j;if(!(j&65534)){Nb(d);j=c[d>>2]|0}k=c[h+228>>2]<<17;l=j-k|0;m=l>>31;c[d>>2]=(m&k)+l;b[a+31272>>1]=(m^65535)-m}if(!g){b[a+31274>>1]=0;i=f;return}else if((g|0)==2){h=1;j=2;while(1){if(!(gb((c[e>>2]|0)+224|0)|0)){d=20;break}j=(1<=31){d=22;break}}if((d|0)==20){k=c[e>>2]|0;g=k+224|0;if(!h)e=k;else d=23}else if((d|0)==22){g=(c[e>>2]|0)+224|0;d=23}if((d|0)==23)while(1){h=h+ -1|0;j=((gb(g)|0)<>2]|0;g=d+224|0;if(!h){e=d;break}else d=23}d=c[g>>2]<<1;c[g>>2]=d;if(!(d&65534)){Nb(g);d=c[g>>2]|0}k=c[e+228>>2]<<17;l=d-k|0;m=l>>31;c[g>>2]=(m&k)+l;b[a+31274>>1]=(m^0-j)-m;i=f;return}else if((g|0)==1){d=c[e>>2]|0;e=d+224|0;g=c[e>>2]<<1;c[e>>2]=g;if(!(g&65534)){Nb(e);g=c[e>>2]|0}k=c[d+228>>2]<<17;l=g-k|0;m=l>>31;c[e>>2]=(m&k)+l;b[a+31274>>1]=(m^65535)-m;i=f;return}else{i=f;return}}function Nb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function Ob(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+3100>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+7568>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+7568>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Pb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;k=i;t=c[b+136>>2]|0;r=b+200|0;v=c[r>>2]|0;g=c[v+13084>>2]|0;p=c[v+13072>>2]|0;h=c[v+13156>>2]|0;l=c[v+13148>>2]|0;o=b+3508|0;u=c[o>>2]|0;j=c[u+16>>2]|0;q=$(h,e>>g)|0;m=d>>g;n=(a[j+((q+m|0)*12|0)+10>>0]|0)==0;do if((e|0)>0&(e&7|0)==0){if(((a[b+3050>>0]|0)==0?(c[t+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(w=c[t+31312>>2]|0,(w&8|0)!=0):0){if(!((e|0)%(1<>2]|0)|0))break}else w=c[t+31312>>2]|0;if(!(w&4)){u=c[u+20>>2]|0;x=e+ -1|0}else{x=e+ -1|0;u=qc(b,u,d,x)|0}w=1<0){v=$(h,x>>g)|0;B=$(l,x>>p)|0;A=b+7596|0;C=$(l,e>>p)|0;x=b+5840|0;y=b+7572|0;D=0;do{z=D+d|0;J=z>>g;G=z>>p;I=J+v|0;E=j+(I*12|0)|0;J=J+q|0;F=j+(J*12|0)|0;K=c[A>>2]|0;H=a[K+(G+B)>>0]|0;G=a[K+(G+C)>>0]|0;if((a[j+(J*12|0)+10>>0]|0)!=0?(a[j+(I*12|0)+10>>0]|0)!=0:0)if(!((G|H)<<24>>24))E=(Qb(b,F,E,u)|0)&255;else E=1;else E=2;K=($(c[x>>2]|0,e)|0)+z>>2;a[(c[y>>2]|0)+K>>0]=E;D=D+4|0}while((D|0)<(w|0))}}while(0);do if((d|0)>0&(d&7|0)==0){if(((a[b+3050>>0]|0)==0?(c[t+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(s=c[t+31312>>2]|0,(s&2|0)!=0):0){if(!((d|0)%(1<>2]|0)+13080>>2]|0)|0))break}else s=c[t+31312>>2]|0;q=c[o>>2]|0;if(!(s&1)){r=c[q+20>>2]|0;s=d+ -1|0}else{s=d+ -1|0;r=qc(b,q,s,e)|0}q=s>>g;w=s>>p;x=d>>p;z=1<0){v=b+7596|0;y=b+5840|0;u=b+7576|0;t=0;do{s=t+e|0;J=$(s>>g,h)|0;K=J+q|0;A=j+(K*12|0)|0;J=J+m|0;B=j+(J*12|0)|0;C=$(s>>p,l)|0;I=c[v>>2]|0;D=a[I+(C+w)>>0]|0;C=a[I+(C+x)>>0]|0;if((a[j+(J*12|0)+10>>0]|0)!=0?(a[j+(K*12|0)+10>>0]|0)!=0:0)if(!((C|D)<<24>>24))A=(Qb(b,B,A,r)|0)&255;else A=1;else A=2;K=($(c[y>>2]|0,s)|0)+d>>2;a[(c[u>>2]|0)+K>>0]=A;t=t+4|0}while((t|0)<(z|0))}}while(0);if((g|0)>=(f|0)|n){i=k;return}l=c[(c[o>>2]|0)+20>>2]|0;m=1<8;if(f){q=b+5840|0;r=b+7572|0;s=8;do{n=s+e|0;t=$(n+ -1>>g,h)|0;o=$(n>>g,h)|0;p=0;do{K=p+d|0;J=K>>g;J=(Qb(b,j+((J+o|0)*12|0)|0,j+((J+t|0)*12|0)|0,l)|0)&255;K=($(c[q>>2]|0,n)|0)+K>>2;a[(c[r>>2]|0)+K>>0]=J;p=p+4|0}while((p|0)<(m|0));s=s+8|0}while((s|0)<(m|0))}if((m|0)<=0){i=k;return}n=b+5840|0;o=b+7576|0;p=0;do{q=p+e|0;if(f){r=$(q>>g,h)|0;s=8;do{K=s+d|0;J=(Qb(b,j+(((K>>g)+r|0)*12|0)|0,j+(((K+ -1>>g)+r|0)*12|0)|0,l)|0)&255;K=($(c[n>>2]|0,q)|0)+K>>2;a[(c[o>>2]|0)+K>>0]=J;s=s+8|0}while((s|0)<(m|0))}p=p+4|0}while((p|0)<(m|0));i=k;return}function Qb(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;m=a[e+10>>0]|0;k=a[f+10>>0]|0;l=k<<24>>24==3;if(m<<24>>24!=3){if(l){m=1;i=h;return m|0}if(!(m&1)){l=e+4|0;j=e+6|0;e=(c[(c[d+3508>>2]|0)+20>>2]|0)+(a[e+9>>0]<<2)+260|0}else{l=e;j=e+2|0;e=(c[(c[d+3508>>2]|0)+20>>2]|0)+(a[e+8>>0]<<2)+64|0}if(!(k&1)){k=f+4|0;d=f+6|0;f=g+(a[f+9>>0]<<2)+260|0}else{k=f;d=f+2|0;f=g+(a[f+8>>0]<<2)+64|0}if((c[e>>2]|0)!=(c[f>>2]|0)){m=1;i=h;return m|0}m=(b[l>>1]|0)-(b[k>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[j>>1]|0)-(b[d>>1]|0)|0;m=(((m|0)>-1?m:0-m|0)|0)>3&1;i=h;return m|0}if(!l){m=1;i=h;return m|0}l=c[(c[d+3508>>2]|0)+20>>2]|0;k=c[l+(a[e+8>>0]<<2)+64>>2]|0;d=c[g+(a[f+8>>0]<<2)+64>>2]|0;m=(k|0)==(d|0);a:do if(m){do if((k|0)==(c[l+(a[e+9>>0]<<2)+260>>2]|0)){if((k|0)!=(c[g+(a[f+9>>0]<<2)+260>>2]|0))if(m)break;else{j=16;break a}g=b[f>>1]|0;j=b[e>>1]|0;m=g-j|0;if(!((((((m|0)>-1?m:0-m|0)|0)<=3?(m=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)?(m=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)?(m=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)){m=(b[f+4>>1]|0)-j|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=g-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}}m=0;i=h;return m|0}while(0);g=c[g+(a[f+9>>0]<<2)+260>>2]|0;if((g|0)==(c[l+(a[e+9>>0]<<2)+260>>2]|0)){m=(b[f>>1]|0)-(b[e>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}else{m=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0;i=h;return(((m|0)>-1?m:0-m|0)|0)>3|0}}}else j=16;while(0);if((j|0)==16)g=c[g+(a[f+9>>0]<<2)+260>>2]|0;if((g|0)!=(k|0)){m=1;i=h;return m|0}if((d|0)!=(c[l+(a[e+9>>0]<<2)+260>>2]|0)){m=1;i=h;return m|0}m=(b[f+4>>1]|0)-(b[e>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f>>1]|0)-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;m=(((m|0)>-1?m:0-m|0)|0)>3&1;i=h;return m|0}function Rb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;j=i;i=i+32|0;o=j+8|0;w=j;n=j+18|0;r=j+16|0;l=e+200|0;J=c[l>>2]|0;u=c[J+13120>>2]|0;k=(u-h|0)<=(f|0);b[n>>1]=0;b[r>>1]=0;v=c[J+13080>>2]|0;t=1<>v,c[J+13128>>2]|0)|0)+(f>>v)|0;s=c[e+3496>>2]|0;m=c[s+(v<<3)+4>>2]|0;x=c[s+(v<<3)>>2]|0;if((c[J+68>>2]|0)!=0?(a[J+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;q=(f|0)!=0;if(q){v=v+ -1|0;y=c[s+(v<<3)>>2]|0;v=c[s+(v<<3)+4>>2]|0}else{y=0;v=0}s=t+f|0;s=(s|0)>(u|0)?u:s;t=t+g|0;z=c[J+13124>>2]|0;t=(t|0)>(z|0)?z:t;z=(s|0)==(u|0)?s:s+ -8|0;u=(t|0)>(g|0);if(u){J=q?f:8;M=(J|0)<(s|0);P=q?f+ -8|0:0;E=e+5840|0;O=e+7572|0;H=e+7568|0;B=w+4|0;C=e+160|0;D=n+1|0;Q=r+1|0;K=e+7544|0;L=e+7528|0;I=e+7576|0;F=e+7548|0;G=e+7532|0;A=(P|0)>=(z|0);T=x;S=m;N=g;do{if(M){R=N+4|0;W=S+ -2&-2;U=J;do{Z=c[E>>2]|0;ba=($(Z,N)|0)+U>>2;_=c[I>>2]|0;ba=a[_+ba>>0]|0;ca=ba&255;Z=a[_+(($(Z,R)|0)+U>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){V=U+ -1|0;X=c[l>>2]|0;aa=c[X+13064>>2]|0;Y=$(N>>aa,c[X+13140>>2]|0)|0;da=c[H>>2]|0;aa=(a[da+(Y+(V>>aa))>>0]|0)+1+(a[da+(Y+(U>>aa))>>0]|0)>>1;Y=aa+T|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+W+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[w>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+W+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[B>>2]=Z;ca=c[C>>2]|0;Z=c[ca+32>>2]|0;da=$(Z,N)|0;X=(c[ca>>2]|0)+((U<>2])+da)|0;if(p){a[n>>0]=Wb(e,V,N)|0;a[D>>0]=Wb(e,V,R)|0;a[r>>0]=Wb(e,U,N)|0;a[Q>>0]=Wb(e,U,R)|0;Na[c[F>>2]&3](X,Z,Y,w,n,r);break}else{Na[c[G>>2]&3](X,Z,Y,w,n,r);break}}while(0);U=U+8|0}while((U|0)<(s|0))}if(!((N|0)==0|A)){R=N+ -1|0;V=S;S=P;do{Y=$(c[E>>2]|0,N)|0;Z=c[O>>2]|0;aa=a[Z+(Y+S>>2)>>0]|0;ba=aa&255;U=S+4|0;Y=a[Z+(Y+U>>2)>>0]|0;Z=Y&255;aa=aa<<24>>24!=0;Y=Y<<24>>24==0;do if(!(Y&(aa^1))){W=c[l>>2]|0;V=c[W+13064>>2]|0;_=S>>V;T=c[W+13140>>2]|0;da=($(R>>V,T)|0)+_|0;X=c[H>>2]|0;_=(a[X+da>>0]|0)+1+(a[X+(($(N>>V,T)|0)+_)>>0]|0)>>1;T=(S|0)>=(f|0);V=T?m:v;T=T?x:y;X=_+T|0;if((X|0)<0)X=0;else X=(X|0)>51?51:X;X=d[1280+X>>0]|0;if(aa){aa=(ba<<1)+(V+ -2&-2)+_|0;if((aa|0)<0)aa=0;else aa=(aa|0)>53?53:aa;aa=d[1336+aa>>0]|0}else aa=0;c[w>>2]=aa;if(Y)Y=0;else{Y=(Z<<1)+(V+ -2&-2)+_|0;if((Y|0)<0)Y=0;else Y=(Y|0)>53?53:Y;Y=d[1336+Y>>0]|0}c[B>>2]=Y;ca=c[C>>2]|0;Y=c[ca+32>>2]|0;da=$(Y,N)|0;W=(c[ca>>2]|0)+((S<>2])+da)|0;if(p){a[n>>0]=Wb(e,S,R)|0;a[D>>0]=Wb(e,U,R)|0;a[r>>0]=Wb(e,S,N)|0;a[Q>>0]=Wb(e,U,N)|0;Na[c[K>>2]&3](W,Y,X,w,n,r);break}else{Na[c[L>>2]&3](W,Y,X,w,n,r);break}}while(0);S=S+8|0}while((S|0)<(z|0));S=V}N=N+8|0}while((N|0)<(t|0));J=c[l>>2]|0}else S=m;if(c[J+4>>2]|0){C=q?v:m;F=e+5840|0;D=e+7572|0;v=e+7568|0;x=o+4|0;w=e+160|0;B=n+1|0;A=r+1|0;G=e+7552|0;E=e+7536|0;H=e+7576|0;z=e+7556|0;y=e+7540|0;I=1;do{O=1<>2];P=1<>2];if(u){N=O<<3;L=q?f:N;K=(L|0)<(s|0);J=P<<3;M=q?f-N|0:0;O=O<<2;P=P<<2;Q=g;do{if(K){R=Q+P|0;T=L;do{W=c[F>>2]|0;Y=($(W,Q)|0)+T>>2;da=c[H>>2]|0;Y=(a[da+Y>>0]|0)==2;W=(a[da+(($(W,R)|0)+T>>2)>>0]|0)==2;do if(Y|W){U=T+ -1|0;V=c[l>>2]|0;da=c[V+13064>>2]|0;_=U>>da;X=c[V+13140>>2]|0;Z=$(Q>>da,X)|0;aa=c[v>>2]|0;ba=T>>da;X=$(R>>da,X)|0;X=(a[aa+(X+_)>>0]|0)+1+(a[aa+(X+ba)>>0]|0)>>1;if(Y)Y=Xb(e,(a[aa+(Z+ba)>>0]|0)+1+(a[aa+(Z+_)>>0]|0)>>1,I,S)|0;else Y=0;c[o>>2]=Y;if(W)W=Xb(e,X,I,S)|0;else W=0;c[x>>2]=W;ca=c[w>>2]|0;W=c[ca+(I<<2)+32>>2]|0;da=$(W,Q>>c[V+(I<<2)+13180>>2])|0;V=(c[ca+(I<<2)>>2]|0)+((T>>c[V+(I<<2)+13168>>2]<>2])+da)|0;if(p){a[n>>0]=Wb(e,U,Q)|0;a[B>>0]=Wb(e,U,R)|0;a[r>>0]=Wb(e,T,Q)|0;a[A>>0]=Wb(e,T,R)|0;Da[c[z>>2]&3](V,W,o,n,r);break}else{Da[c[y>>2]&3](V,W,o,n,r);break}}while(0);T=T+N|0}while((T|0)<(s|0))}if(Q){U=s-((s|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:N)|0;if((M|0)<(U|0)){T=Q+ -1|0;S=M;do{W=$(c[F>>2]|0,Q)|0;da=c[D>>2]|0;R=S+O|0;X=(a[da+(W+S>>2)>>0]|0)==2;W=(a[da+(W+R>>2)>>0]|0)==2;do if(X|W){if(X){da=c[l>>2]|0;ca=c[da+13064>>2]|0;Y=S>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+Y|0;ba=c[v>>2]|0;Y=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+Y)>>0]|0)>>1}else Y=0;if(W){da=c[l>>2]|0;ca=c[da+13064>>2]|0;V=R>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+V|0;ba=c[v>>2]|0;V=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+V)>>0]|0)>>1}else V=0;if(X)X=Xb(e,Y,I,C)|0;else X=0;c[o>>2]=X;if(W)V=Xb(e,V,I,m)|0;else V=0;c[x>>2]=V;da=c[l>>2]|0;ca=c[w>>2]|0;V=c[ca+(I<<2)+32>>2]|0;W=$(V,Q>>c[da+13184>>2])|0;W=(c[ca+(I<<2)>>2]|0)+((S>>c[da+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Wb(e,S,T)|0;a[B>>0]=Wb(e,R,T)|0;a[r>>0]=Wb(e,S,Q)|0;a[A>>0]=Wb(e,R,Q)|0;Da[c[G>>2]&3](W,V,o,n,r);break}else{Da[c[E>>2]&3](W,V,o,n,r);break}}while(0);S=S+N|0}while((S|0)<(U|0));S=C}else S=C}Q=Q+J|0}while((Q|0)<(t|0))}I=I+1|0;J=c[l>>2]|0}while((I|0)!=3)}if(!(a[J+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[J+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Sb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Sb(e,f-h|0,g);k=k^1;!(l|k)?(Sb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Sb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Sb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;v=i;i=i+48|0;j=v+24|0;h=v+42|0;u=v+40|0;r=v+16|0;n=v+8|0;m=v;k=e+200|0;S=c[k>>2]|0;s=c[S+13080>>2]|0;q=f>>s;s=g>>s;D=S+13128|0;p=($(s,c[D>>2]|0)|0)+q|0;L=c[e+204>>2]|0;N=L+1668|0;M=c[(c[N>>2]|0)+(p<<2)>>2]|0;l=e+3492|0;o=c[l>>2]|0;t=o+(p*148|0)|0;b[h>>1]=0;b[u>>1]=0;c[r>>2]=0;E=($(c[D>>2]|0,s)|0)+q|0;E=a[(c[e+7604>>2]|0)+E>>0]|0;if((a[L+42>>0]|0)!=0?(a[L+53>>0]|0)==0:0){R=1;O=1}else{R=E<<24>>24==0&1;O=0}G=(q|0)==0;c[j>>2]=G&1;I=(s|0)==0;A=j+4|0;c[A>>2]=I&1;H=(q|0)==((c[D>>2]|0)+ -1|0);z=j+8|0;c[z>>2]=H&1;F=(s|0)==((c[S+13132>>2]|0)+ -1|0);w=j+12|0;c[w>>2]=F&1;if(R<<24>>24){if(G)J=0;else{if(O){J=c[L+1676>>2]|0;J=(c[J+(M<<2)>>2]|0)!=(c[J+(c[(c[N>>2]|0)+(p+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+7580>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[h>>0]=K}if(H)K=0;else{if(O){K=c[L+1676>>2]|0;K=(c[K+(M<<2)>>2]|0)!=(c[K+(c[(c[N>>2]|0)+(p+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+7580>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[h+1>>0]=P}if(I)P=0;else{if(O){P=c[L+1676>>2]|0;P=(c[P+(M<<2)>>2]|0)!=(c[P+(c[(c[N>>2]|0)+(p-(c[D>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+7580>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+ -1|0)|0)+q<<2)>>2]|0)):0)Q=1;else Q=P;a[u>>0]=Q}if(F)L=0;else{if(O){L=c[L+1676>>2]|0;L=(c[L+(M<<2)>>2]|0)!=(c[L+(c[(c[N>>2]|0)+((c[D>>2]|0)+p<<2)>>2]<<2)>>2]|0)&1}else L=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+7580>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+1|0)|0)+q<<2)>>2]|0)):0)M=1;else M=L;a[u+1>>0]=M}if(!G)if(I)B=47;else{if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[r>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[r+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|F):0){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[r+2>>0]=H}if(!(G|F)){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[r+3>>0]=D}}O=(c[S+4>>2]|0)!=0?3:1;I=e+160|0;H=e+168|0;P=e+5916|0;J=s<<1;G=J+ -1|0;D=n+4|0;E=s+ -1|0;Q=q+1|0;L=q+ -1|0;J=J+2|0;F=m+4|0;K=s+1|0;N=q<<1;M=N+ -1|0;N=N+2|0;R=e+((R&255)<<2)+5920|0;na=S;Y=0;while(1){ka=c[na+(Y<<2)+13168>>2]|0;_=f>>ka;ha=c[na+(Y<<2)+13180>>2]|0;Z=g>>ha;ba=c[I>>2]|0;S=c[ba+(Y<<2)+32>>2]|0;U=1<>2];X=U>>ka;W=U>>ha;ka=c[na+13120>>2]>>ka;ca=ka-_|0;X=(X|0)>(ca|0)?ca:X;ha=c[na+13124>>2]>>ha;ca=ha-Z|0;W=(W|0)>(ca|0)?ca:W;ca=$(S,Z)|0;ga=c[na+56>>2]|0;ca=(_<>2]|0;aa=ba+ca|0;U=U+2<>2]|0;fa=1<>0]|0;if((ia|0)==1){ea=X<0){da=V;ba=0;ca=aa;while(1){mf(da|0,ca|0,ea|0)|0;ba=ba+1|0;if((ba|0)==(W|0))break;else{da=da+U|0;ca=ca+S|0}}}Ub(e,aa,S,_,Z,X,W,Y,q,s);Ha[c[P>>2]&1](aa,V,S,U,t,j,X,W,Y);Vb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}else if((ia|0)==2){ja=c[j>>2]|0;ia=c[z>>2]|0;la=c[w>>2]|0;do if(!(c[A>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-S-oa);c[D>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,G)|0)+_-pa<>2]|0,E)|0)|0;pa=c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[oa>>0]=a[pa>>0]|0;na=c[k>>2]|0;oa=fa;break}else{b[oa>>1]=b[pa>>1]|0;oa=fa;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,E)|0)+q|0;na=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){na=oa+na|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)|0;ma=da+(na+ma)|0;na=(c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+na|0;if(!ga){a[ma>>0]=a[na>>0]|0;break}else{b[ma>>1]=b[na>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(W,S)|0)+ca-oa);c[F>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,J)|0)+_-pa<>2]|0)+13128>>2]|0,K)|0)|0;ma=c[m+(((a[(c[l>>2]|0)+(ma*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[ka>>0]=a[ma>>0]|0;ka=fa;break}else{b[ka>>1]=b[ma>>1]|0;ka=fa;break}}else ka=0;while(0);pa=($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)+q|0;ma=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0,ma|0)|0;if((ia|0)!=1){ka=ka+ma|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)|0;la=da+(ka+la)|0;ka=(c[m+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0;if(!ga){a[la>>0]=a[ka>>0]|0;break}else{b[la>>1]=b[ka>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){la=da+U|0;ja=(c[e+(Y<<2)+184>>2]|0)+(($(ha,M)|0)+Z<0;if(!ga){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){ia=da+((X<>2]|0)+(($(ha,N)|0)+Z<0;if(!ga){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,x=ja<0):0){ea=da+(ea-x)|0;da=0;ba=ba+(ca-x)|0;while(1){mf(ea|0,ba|0,y|0)|0;da=da+1|0;if((da|0)==(W|0))break;else{ea=ea+U|0;ba=ba+S|0}}}Ub(e,aa,S,_,Z,X,W,Y,q,s);Ia[c[R>>2]&3](aa,V,S,U,t,j,X,W,Y,h,u,r);Vb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}Y=Y+1|0;if((Y|0)>=(O|0))break;na=c[k>>2]|0}i=v;return}function Tb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Rb(a,b-e|0,d-e|0,e);if(!(j|k))Rb(a,b,d-e|0,e);if(g|h){i=f;return}Rb(a,b-e|0,d,e);i=f;return}function Ub(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Vb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+7600|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){mf(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Wb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+7600>>2]|0)+e>>0]|0;i=f;return e|0}function Xb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Yb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+7628|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}me(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}mf(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+7636|0;b=b+7632|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ke(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Zb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;f=b+60|0;e=c[f>>2]|0;Wd();Cc();f=c[f>>2]|0;c[f+4>>2]=b;g=le(31328)|0;c[f+136>>2]=g;a:do if(((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,j=ee(199)|0,c[f+152>>2]=j,(j|0)!=0):0)?(j=Be()|0,c[f+164>>2]=j,(j|0)!=0):0){g=f+3512|0;h=0;do{j=Be()|0;c[g+(h*72|0)>>2]=j;if(!j)break a;c[g+(h*72|0)+4>>2]=j;h=h+1|0}while(h>>>0<32);c[f+5836>>2]=2147483647;a[f+7721>>0]=1;c[f+5828>>2]=0;c[e+7620>>2]=0;c[e+7772>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[e+141>>0]=1;else a[e+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[e+140>>0]=1;j=0;i=d;return j|0}a[e+140>>0]=2;j=0;i=d;return j|0}while(0);$b(b)|0;j=-12;i=d;return j|0}function _b(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0;k=i;i=i+48|0;o=k+8|0;n=k+32|0;r=k+16|0;p=k;m=c[f+60>>2]|0;f=j+28|0;L=c[f>>2]|0;if(!L){g=vc(m,g,1)|0;if((g|0)<0){pb=g;i=k;return pb|0}c[h>>2]=g;pb=0;i=k;return pb|0}q=m+3508|0;c[q>>2]=0;l=m+7776|0;b[l>>1]=1;K=c[j+24>>2]|0;c[q>>2]=0;G=m+5828|0;s=m+5832|0;c[s>>2]=c[G>>2];c[G>>2]=0;w=m+7660|0;c[w>>2]=0;a:do if((L|0)>3){J=m+7722|0;H=m+7664|0;A=m+7656|0;j=m+7640|0;E=m+7648|0;y=m+7644|0;F=m+7636|0;z=m+7632|0;x=m+7628|0;u=m+136|0;v=m+3500|0;I=m+7732|0;while(1){C=(a[J>>0]|0)==0;if(C){while(1){M=K+1|0;if(((a[K>>0]|0)==0?(a[M>>0]|0)==0:0)?(a[K+2>>0]|0)==1:0)break;if((L|0)<5){C=-1094995529;break a}K=M;L=L+ -1|0}K=K+3|0;N=0;L=L+ -3|0}else{M=c[I>>2]|0;if((M|0)>0){O=0;N=0;do{O=d[K+N>>0]|O<<8;N=N+1|0}while((N|0)!=(M|0));N=O}else N=0;L=L-M|0;if((N|0)>(L|0)){C=-1094995529;break a}K=K+M|0}C=C?L:N;M=c[H>>2]|0;O=c[w>>2]|0;if((M|0)<(O+1|0)){M=M+1|0;N=je(c[A>>2]|0,M,16)|0;if(!N){C=-12;break a}c[A>>2]=N;O=c[H>>2]|0;jf(N+(O<<4)|0,0,M-O<<4|0)|0;ke(j,M,4)|0;ke(E,M,4)|0;ke(y,M,4)|0;O=c[E>>2]|0;c[O+(c[H>>2]<<2)>>2]=1024;O=ne(c[O+(c[H>>2]<<2)>>2]|0,4)|0;c[(c[y>>2]|0)+(c[H>>2]<<2)>>2]=O;c[H>>2]=M;O=c[w>>2]|0}c[F>>2]=c[(c[E>>2]|0)+(O<<2)>>2];c[z>>2]=c[(c[y>>2]|0)+(O<<2)>>2];N=c[A>>2]|0;M=Yb(m,K,C,N+(O<<4)|0)|0;c[(c[j>>2]|0)+(c[w>>2]<<2)>>2]=c[x>>2];c[(c[E>>2]|0)+(c[w>>2]<<2)>>2]=c[F>>2];ob=c[z>>2]|0;pb=c[w>>2]|0;c[w>>2]=pb+1;c[(c[y>>2]|0)+(pb<<2)>>2]=ob;if((M|0)<0){C=M;break a}ob=c[u>>2]|0;mb=c[N+(O<<4)+12>>2]|0;nb=c[N+(O<<4)+8>>2]|0;nb=nb>>>0>268435455?-8:nb<<3;pb=nb>>>0>2147483639|(mb|0)==0;nb=pb?0:nb;mb=pb?0:mb;C=pb?-1094995529:0;c[ob+204>>2]=mb;c[ob+216>>2]=nb;c[ob+220>>2]=nb+8;c[ob+208>>2]=mb+(nb>>3);c[ob+212>>2]=0;if(pb)break a;cc(m)|0;if(((c[v>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;L=L-M|0;if((L|0)<=3)break;else K=K+M|0}if((c[w>>2]|0)>0){ma=m+4|0;Ba=m+2436|0;bb=m+3034|0;db=m+2416|0;Aa=m+204|0;sa=m+200|0;Ia=m+2437|0;Ja=m+2420|0;Na=m+2424|0;Oa=m+5824|0;Fa=m+156|0;Da=m+2428|0;N=m+2438|0;P=m+2608|0;ra=m+5816|0;U=m+3504|0;V=m+5820|0;ba=m+3044|0;ca=m+3045|0;W=m+3046|0;ja=m+3040|0;ha=m+3036|0;fa=m+3032|0;ia=m+3033|0;M=m+3047|0;eb=m+3048|0;la=m+3052|0;ka=m+3035|0;L=m+3080|0;E=m+3101|0;K=m+3102|0;ga=m+3051|0;La=m+3056|0;Y=m+3060|0;X=m+3064|0;Z=m+3068|0;da=m+3049|0;aa=m+3072|0;_=m+3076|0;ea=m+3050|0;R=m+2432|0;Q=m+2440|0;T=m+2772|0;O=m+2439|0;Ma=m+3096|0;Ha=m+3100|0;Ka=m+3488|0;Ca=m+5836|0;na=m+5848|0;oa=m+7668|0;cb=o+4|0;ta=m+7572|0;va=m+5840|0;ua=m+5844|0;wa=m+7576|0;xa=m+7596|0;ya=m+7600|0;za=m+7580|0;qa=m+160|0;pa=m+140|0;Ea=m+164|0;J=m+3084|0;G=m+3088|0;F=m+3092|0;H=m+141|0;I=m+7620|0;$a=m+3492|0;ab=m+3496|0;Za=m+7584|0;_a=m+7588|0;Ya=m+7592|0;Wa=m+7604|0;Xa=m+7568|0;Ua=m+1428|0;Va=m+1432|0;Sa=m+5852|0;Ta=m+7560|0;Pa=m+196|0;Qa=m+7616|0;Ra=m+168|0;S=0;b:while(1){c[x>>2]=c[(c[j>>2]|0)+(S<<2)>>2];c[z>>2]=c[(c[y>>2]|0)+(S<<2)>>2];ob=c[A>>2]|0;nb=c[ob+(S<<4)+12>>2]|0;ob=c[ob+(S<<4)+8>>2]|0;pb=c[u>>2]|0;ob=ob>>>0>268435455?-8:ob<<3;fb=ob>>>0>2147483639|(nb|0)==0;ob=fb?0:ob;nb=fb?0:nb;c[pb+204>>2]=nb;c[pb+216>>2]=ob;c[pb+220>>2]=ob+8;c[pb+208>>2]=nb+(ob>>3);c[pb+212>>2]=0;c:do if(fb){t=fb?-1094995529:0;B=272}else{fb=cc(m)|0;d:do if((fb|0)>=0){if(!fb)break c;switch(c[v>>2]|0){case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{fb=c[u>>2]|0;gb=fb+204|0;pb=(_d(gb)|0)&255;a[Ba>>0]=pb;hb=c[v>>2]|0;if(!((hb+ -16|0)>>>0>4|pb<<24>>24==0)?(b[Qa>>1]=(e[Qa>>1]|0)+1&255,c[Ca>>2]=2147483647,(hb+ -19|0)>>>0<2):0){rc(m);hb=c[v>>2]|0}a[bb>>0]=0;if((hb+ -16|0)>>>0<8)a[bb>>0]=_d(gb)|0;hb=ae(gb)|0;c[db>>2]=hb;if(hb>>>0>255)break a;hb=c[m+(hb<<2)+400>>2]|0;if(!hb)break a;if(!(a[Ba>>0]|0)){kb=c[hb+4>>2]|0;if((c[Aa>>2]|0)!=(kb|0))break a}else kb=c[hb+4>>2]|0;c[Aa>>2]=kb;jb=c[v>>2]|0;ib=(jb|0)==21;if(ib?(c[s>>2]|0)==1:0)a[bb>>0]=1;hb=c[sa>>2]|0;kb=c[(c[m+(c[kb>>2]<<2)+272>>2]|0)+4>>2]|0;if((hb|0)!=(kb|0)){c[sa>>2]=kb;e:do if(hb){if((jb+ -16|0)>>>0>7|ib)break;do if((c[kb+13120>>2]|0)==(c[hb+13120>>2]|0)){if((c[kb+13124>>2]|0)!=(c[hb+13124>>2]|0))break;if((c[kb+76+(((c[kb+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[hb+(((c[hb+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[bb>>0]=0}while(0);rc(m);hb=c[sa>>2]|0;bc(m);ib=c[hb+13064>>2]|0;jb=hb+13120|0;qb=c[jb>>2]|0;kb=hb+13124|0;pb=c[kb>>2]|0;ib=$((pb>>ib)+1|0,(qb>>ib)+1|0)|0;mb=$(c[hb+13132>>2]|0,c[hb+13128>>2]|0)|0;ob=hb+13156|0;nb=hb+13160|0;lb=$(c[nb>>2]|0,c[ob>>2]|0)|0;c[va>>2]=(qb>>2)+1;c[ua>>2]=(pb>>2)+1;c[$a>>2]=oe(mb,148)|0;pb=oe(mb,8)|0;c[ab>>2]=pb;if((c[$a>>2]|0)==0|(pb|0)==0){B=72;break b}pb=hb+13144|0;qb=hb+13140|0;c[Za>>2]=ee($(c[qb>>2]|0,c[pb>>2]|0)|0)|0;qb=ne(c[pb>>2]|0,c[qb>>2]|0)|0;c[_a>>2]=qb;if((c[Za>>2]|0)==0|(qb|0)==0){B=72;break b}c[xa>>2]=ne(c[hb+13148>>2]|0,c[hb+13152>>2]|0)|0;c[Ya>>2]=le(lb)|0;nb=ee($((c[nb>>2]|0)+1|0,(c[ob>>2]|0)+1|0)|0)|0;c[ya>>2]=nb;if(!(c[Ya>>2]|0)){B=72;break b}if((c[xa>>2]|0)==0|(nb|0)==0){B=72;break b}c[Wa>>2]=ee(mb)|0;c[za>>2]=ne(ib,4)|0;qb=ne(ib,1)|0;c[Xa>>2]=qb;if(!qb){B=72;break b}if(!(c[Wa>>2]|0)){B=72;break b}if(!(c[za>>2]|0)){B=72;break b}c[ta>>2]=oe(c[va>>2]|0,c[ua>>2]|0)|0;qb=oe(c[va>>2]|0,c[ua>>2]|0)|0;c[wa>>2]=qb;if((c[ta>>2]|0)==0|(qb|0)==0){B=72;break b}c[Ua>>2]=ve(lb*12|0,3)|0;qb=ve(mb*392|0,3)|0;c[Va>>2]=qb;if((c[Ua>>2]|0)==0|(qb|0)==0){B=72;break b}qb=c[ma>>2]|0;c[qb+124>>2]=c[jb>>2];c[qb+128>>2]=c[kb>>2];c[qb+116>>2]=c[hb+12>>2];c[qb+120>>2]=c[hb+16>>2];c[qb+136>>2]=c[hb+60>>2];c[qb+172>>2]=c[hb+(((c[hb+72>>2]|0)+ -1|0)*12|0)+80>>2];qb=hb+160|0;c[o+0>>2]=c[qb+0>>2];c[o+4>>2]=c[qb+4>>2];if(!(c[hb+176>>2]|0)){ib=c[ma>>2]|0;c[ib+392>>2]=1}else{ib=c[ma>>2]|0;c[ib+392>>2]=(c[hb+184>>2]|0)!=0?2:1}if(!(c[hb+188>>2]|0)){c[ib+380>>2]=2;c[ib+384>>2]=2;c[ib+388>>2]=2}else{c[ib+380>>2]=d[hb+192>>0];c[ib+384>>2]=d[hb+193>>0];c[ib+388>>2]=d[hb+194>>0]}qb=hb+52|0;Dc(Sa,c[qb>>2]|0);de(Ta,c[qb>>2]|0);if(a[hb+12941>>0]|0){ib=c[sa>>2]|0;jb=(c[ib+4>>2]|0)!=0?3:1;qb=(1<>2])+2|0;qb=$(qb,qb)|0;c[Ra>>2]=ee(qb<>2])|0;ib=0;do{qb=c[sa>>2]|0;pb=c[qb+13124>>2]>>c[qb+(ib<<2)+13180>>2];ob=$(c[qb+13120>>2]>>c[qb+(ib<<2)+13168>>2]<<1,c[qb+13132>>2]|0)|0;c[m+(ib<<2)+172>>2]=ee(ob<>2])|0;qb=c[sa>>2]|0;pb=$(pb<<1,c[qb+13128>>2]|0)|0;c[m+(ib<<2)+184>>2]=ee(pb<>2])|0;ib=ib+1|0}while((ib|0)<(jb|0))}c[sa>>2]=hb;c[Pa>>2]=c[(c[m+(c[hb>>2]<<2)+208>>2]|0)+4>>2];b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647}qb=c[ma>>2]|0;c[qb+832>>2]=d[hb+302>>0];c[qb+836>>2]=d[hb+335>>0];a[Ia>>0]=0;do if(!(a[Ba>>0]|0)){if(a[(c[Aa>>2]|0)+41>>0]|0){a[Ia>>0]=_d(gb)|0;hb=c[sa>>2]|0}ib=($(c[hb+13128>>2]<<1,c[hb+13132>>2]|0)|0)+ -2|0;hb=ib>>>0>65535;ib=hb?ib>>>16:ib;hb=hb?16:0;if(ib&65280){hb=hb|8;ib=ib>>>8}hb=Xd(gb,(d[4872+ib>>0]|0)+hb|0)|0;c[Ja>>2]=hb;qb=c[sa>>2]|0;if(hb>>>0>=($(c[qb+13132>>2]|0,c[qb+13128>>2]|0)|0)>>>0)break a;if(a[Ia>>0]|0)if(!(a[Fa>>0]|0))break a;else break;else{c[Na>>2]=hb;c[Oa>>2]=(c[Oa>>2]|0)+1;B=83;break}}else{c[Na>>2]=0;c[Ja>>2]=0;c[Oa>>2]=0;a[Fa>>0]=0;B=83}while(0);f:do if((B|0)==83){B=0;a[Fa>>0]=0;if((c[(c[Aa>>2]|0)+1624>>2]|0)>0){hb=0;do{Zd(gb,1);hb=hb+1|0}while((hb|0)<(c[(c[Aa>>2]|0)+1624>>2]|0))}hb=ae(gb)|0;c[Da>>2]=hb;if(hb>>>0>=3)break a;if(!((hb|0)==2?1:((c[v>>2]|0)+ -16|0)>>>0>7))break a;a[N>>0]=1;if(a[(c[Aa>>2]|0)+39>>0]|0)a[N>>0]=_d(gb)|0;if(a[(c[sa>>2]|0)+8>>0]|0)a[O>>0]=Xd(gb,2)|0;do if(((c[v>>2]|0)+ -19|0)>>>0>=2){hb=Xd(gb,c[(c[sa>>2]|0)+64>>2]|0)|0;c[R>>2]=hb;hb=Ac(m,hb)|0;do if(!(a[Ba>>0]|0)){ib=c[ra>>2]|0;if((hb|0)==(ib|0))break;if(!(c[(c[ma>>2]|0)+688>>2]&8))hb=ib;else break a}while(0);c[ra>>2]=hb;qb=(_d(gb)|0)==0;ib=c[sa>>2]|0;if(qb){if((yd(m,Q,ib,1)|0)<0)break a;c[P>>2]=Q;ib=c[sa>>2]|0}else{hb=c[ib+2184>>2]|0;if(!hb)break a;hb=(hb<<1)+ -2|0;jb=hb>>>0>65535;hb=jb?hb>>>16:hb;jb=jb?16:0;if(hb&65280){jb=jb|8;hb=hb>>>8}hb=(d[4872+hb>>0]|0)+jb|0;if((hb|0)>0){hb=Xd(gb,hb)|0;ib=c[sa>>2]|0}else hb=0;c[P>>2]=ib+(hb*168|0)+2188}hb=ib+64|0;jb=c[hb>>2]|0;a[T>>0]=0;do if(a[ib+12942>>0]|0){kb=ib+13040|0;if(!(a[kb>>0]|0))lb=0;else lb=ae(gb)|0;mb=ae(gb)|0;qb=gf(mb|0,0,lb|0,0)|0;pb=D;if(pb>>>0>0|(pb|0)==0&qb>>>0>32)if(!(c[(c[ma>>2]|0)+688>>2]&8))break;else break a;qb=mb+lb|0;a[T>>0]=qb;if(!(qb&255))break;else{mb=0;nb=0}do{if(mb>>>0>>0){ob=a[kb>>0]|0;if((ob&255)>1){ob=((ob&255)<<1)+ -2|0;pb=ob>>>0>65535;ob=pb?ob>>>16:ob;pb=pb?16:0;if(ob&65280){pb=pb|8;ob=ob>>>8}ob=(Xd(gb,(d[4872+ob>>0]|0)+pb|0)|0)&255}else ob=0;c[m+(mb<<2)+2612>>2]=e[ib+(ob<<1)+12944>>1];a[m+mb+2740>>0]=a[ib+ob+13008>>0]|0}else{c[m+(mb<<2)+2612>>2]=Xd(gb,c[hb>>2]|0)|0;a[m+mb+2740>>0]=_d(gb)|0}if(((_d(gb)|0)&255)<<24>>24){qb=ae(gb)|0;nb=qb+((mb|0)==0|(mb|0)==(lb|0)?0:nb)|0;qb=m+(mb<<2)+2612|0;c[qb>>2]=(c[ra>>2]|0)-(nb<>2]|0)+(c[qb>>2]|0)}mb=mb+1|0}while((mb|0)<(d[T>>0]|0))}while(0);if(!(a[(c[sa>>2]|0)+13060>>0]|0)){a[ka>>0]=0;break}else{a[ka>>0]=_d(gb)|0;break}}else{c[P>>2]=0;c[ra>>2]=0}while(0);g:do if(!(c[U>>2]|0)){switch(c[v>>2]|0){case 9:case 8:case 7:case 6:case 4:case 2:case 0:break g;default:{}}c[V>>2]=c[ra>>2]}while(0);do if(a[(c[sa>>2]|0)+12941>>0]|0){a[ba>>0]=_d(gb)|0;if(!(c[(c[sa>>2]|0)+4>>2]|0)){a[ca>>0]=0;a[W>>0]=0;break}else{qb=(_d(gb)|0)&255;a[W>>0]=qb;a[ca>>0]=qb;break}}else{a[ba>>0]=0;a[ca>>0]=0;a[W>>0]=0}while(0);c[ja>>2]=0;c[ha>>2]=0;ib=c[Da>>2]|0;if(ib>>>0<2){hb=c[Aa>>2]|0;c[ha>>2]=c[hb+8>>2];if(!ib)c[ja>>2]=c[hb+12>>2];do if(!(_d(gb)|0))B=138;else{hb=(ae(gb)|0)+1|0;c[ha>>2]=hb;if(c[Da>>2]|0)break;c[ja>>2]=(ae(gb)|0)+1;B=138}while(0);if((B|0)==138){B=0;hb=c[ha>>2]|0}if(hb>>>0>16)break a;if((c[ja>>2]|0)>>>0>16)break a;a[fa>>0]=0;a[ia>>0]=0;jb=Bc(m)|0;if(!jb)break a;do if((jb|0)>1?(a[(c[Aa>>2]|0)+1617>>0]|0)!=0:0){qb=(_d(gb)|0)&255;a[fa>>0]=qb;do if(qb<<24>>24){if(!(c[ha>>2]|0))break;qb=(jb<<1)+ -2|0;hb=qb>>>0>65535;qb=hb?qb>>>16:qb;hb=hb?16:0;ib=(qb&65280|0)==0;hb=(d[4872+(ib?qb:qb>>>8)>>0]|0)+(ib?hb:hb|8)|0;ib=0;do{c[m+(ib<<2)+2776>>2]=Xd(gb,hb)|0;ib=ib+1|0}while(ib>>>0<(c[ha>>2]|0)>>>0)}while(0);if(c[Da>>2]|0)break;qb=_d(gb)|0;a[ia>>0]=qb;if((qb&255|0)!=1){B=152;break}if(!(c[ja>>2]|0)){B=152;break}qb=(jb<<1)+ -2|0;hb=qb>>>0>65535;qb=hb?qb>>>16:qb;hb=hb?16:0;B=(qb&65280|0)==0;hb=(d[4872+(B?qb:qb>>>8)>>0]|0)+(B?hb:hb|8)|0;B=0;do{c[m+(B<<2)+2904>>2]=Xd(gb,hb)|0;B=B+1|0}while(B>>>0<(c[ja>>2]|0)>>>0);B=152}else B=152;while(0);do if((B|0)==152){if(c[Da>>2]|0)break;a[M>>0]=_d(gb)|0}while(0);if(!(a[(c[Aa>>2]|0)+5>>0]|0))B=0;else B=(_d(gb)|0)&255;a[eb>>0]=B;c[la>>2]=0;do if(a[ka>>0]|0){a[ga>>0]=0;if(!(c[Da>>2]|0)){B=(_d(gb)|0)==0&1;a[ga>>0]=B}else B=0;if((c[m+((B&255)<<2)+3036>>2]|0)>>>0<=1)break;qb=ae(gb)|0;c[la>>2]=qb;if(qb>>>0>=(c[m+(d[ga>>0]<<2)+3036>>2]|0)>>>0)break a}while(0);hb=c[Aa>>2]|0;if((a[hb+37>>0]|0)!=0?(c[Da>>2]|0)==1:0)B=165;else B=163;do if((B|0)==163){B=0;if(!(a[hb+38>>0]|0))break;if(!(c[Da>>2]|0))B=165}while(0);do if((B|0)==165){B=0;a[E>>0]=ae(gb)|0;if(c[(c[sa>>2]|0)+4>>2]|0){hb=be(gb)|0;hb=(d[E>>0]|0)+hb|0;if((hb|0)<0)hb=0;else hb=(hb|0)>7?7:hb&65535;b[K>>1]=hb}if(!(c[ha>>2]|0))hb=0;else{ib=0;do{qb=(_d(gb)|0)&255;a[n+ib>>0]=qb;if(!(qb<<24>>24)){b[m+(ib<<1)+3104>>1]=1<>0];b[m+(ib<<1)+3296>>1]=0}ib=ib+1|0;hb=c[ha>>2]|0}while(ib>>>0>>0)}ib=(hb|0)==0;if(!(c[(c[sa>>2]|0)+4>>2]|0)){if(ib)break;jf(r|0,0,(hb>>>0>1?hb:1)|0)|0}else{if(ib)break;else hb=0;do{a[r+hb>>0]=_d(gb)|0;hb=hb+1|0;ib=c[ha>>2]|0}while(hb>>>0>>0);hb=ib}if(!hb)break;else ib=0;do{if(a[n+ib>>0]|0){qb=be(gb)|0;b[m+(ib<<1)+3104>>1]=(1<>0])+qb;b[m+(ib<<1)+3296>>1]=be(gb)|0}if(!(a[r+ib>>0]|0)){qb=1<>1]&65535;b[m+(ib<<2)+3136>>1]=qb;b[m+(ib<<2)+3328>>1]=0;b[m+(ib<<2)+3138>>1]=qb;b[m+(ib<<2)+3330>>1]=0}else{hb=0;do{jb=be(gb)|0;qb=be(gb)|0;jb=(1<>1])+jb|0;b[m+(ib<<2)+(hb<<1)+3136>>1]=jb;jb=qb-(jb<<16>>9>>b[K>>1])+128|0;if((jb|0)<-128)jb=-128;else jb=(jb|0)>127?127:jb&65535;b[m+(ib<<2)+(hb<<1)+3328>>1]=jb;hb=hb+1|0}while((hb|0)!=2)}ib=ib+1|0}while(ib>>>0<(c[ha>>2]|0)>>>0)}while(0);pb=ae(gb)|0;qb=5-pb|0;c[L>>2]=qb;if((pb|0)==5|qb>>>0>5)break a}c[La>>2]=be(gb)|0;hb=c[Aa>>2]|0;if(!(a[hb+36>>0]|0)){c[Y>>2]=0;c[X>>2]=0}else{c[Y>>2]=be(gb)|0;c[X>>2]=be(gb)|0;hb=c[Aa>>2]|0}if(!(a[hb+1631>>0]|0))a[Z>>0]=0;else{a[Z>>0]=_d(gb)|0;hb=c[Aa>>2]|0}h:do if(!(a[hb+55>>0]|0)){a[da>>0]=0;c[aa>>2]=0;c[_>>2]=0}else{do if(a[hb+56>>0]|0){if(!(_d(gb)|0)){hb=c[Aa>>2]|0;break}qb=(_d(gb)|0)&255;a[da>>0]=qb;if(qb<<24>>24)break h;c[aa>>2]=(be(gb)|0)<<1;c[_>>2]=(be(gb)|0)<<1;break h}while(0);a[da>>0]=a[hb+57>>0]|0;c[aa>>2]=c[hb+60>>2];c[_>>2]=c[hb+64>>2]}while(0);hb=a[(c[Aa>>2]|0)+54>>0]|0;i:do if(hb<<24>>24){do if(!(a[ba>>0]|0)){if(a[ca>>0]|0)break;if(a[da>>0]|0)break i}while(0);a[ea>>0]=_d(gb)|0;break f}while(0);a[ea>>0]=hb}while(0);c[Ma>>2]=0;qb=c[Aa>>2]|0;if(!((a[qb+42>>0]|0)==0?(a[qb+43>>0]|0)==0:0))B=211;j:do if((B|0)==211){B=0;qb=ae(gb)|0;c[Ma>>2]=qb;if((qb|0)<=0){c[I>>2]=0;break}hb=(ae(gb)|0)+1|0;ib=hb>>4;hb=hb&15;ie(J);ie(G);ie(F);c[J>>2]=ne(c[Ma>>2]|0,4)|0;c[G>>2]=ne(c[Ma>>2]|0,4)|0;jb=ne(c[Ma>>2]|0,4)|0;c[F>>2]=jb;if(!(c[J>>2]|0)){B=216;break b}if((c[G>>2]|0)==0|(jb|0)==0){B=216;break b}if((c[Ma>>2]|0)>0){lb=(ib|0)>0;kb=(hb|0)==0;jb=0;do{if(lb){mb=0;nb=0;do{nb=(Xd(gb,16)|0)+(nb<<16)|0;mb=mb+1|0}while((mb|0)!=(ib|0))}else nb=0;if(!kb)nb=(Xd(gb,hb)|0)+(nb<>2]|0)+(jb<<2)>>2]=nb+1;jb=jb+1|0}while((jb|0)<(c[Ma>>2]|0))}do if((d[H>>0]|0)>1){qb=c[Aa>>2]|0;if((c[qb+48>>2]|0)<=1?(c[qb+44>>2]|0)<=1:0)break;c[I>>2]=0;a[H>>0]=1;break j}while(0);c[I>>2]=0}while(0);hb=c[Aa>>2]|0;if(a[hb+1628>>0]|0){hb=ae(gb)|0;pb=kf(hb|0,0,3)|0;nb=D;qb=(c[fb+216>>2]|0)-(c[fb+212>>2]|0)|0;ob=((qb|0)<0)<<31>>31;if((nb|0)>(ob|0)|(nb|0)==(ob|0)&pb>>>0>qb>>>0)break a;if(hb){ib=0;do{Zd(gb,8);ib=ib+1|0}while((ib|0)!=(hb|0))}hb=c[Aa>>2]|0}gb=(c[hb+16>>2]|0)+26+(c[La>>2]|0)|0;a[Ha>>0]=gb;gb=gb<<24;if((gb|0)>855638016)break a;if((gb>>24|0)<(0-(c[(c[sa>>2]|0)+13192>>2]|0)|0))break a;qb=c[Ja>>2]|0;c[Ka>>2]=qb;if((qb|0)==0?(a[Ia>>0]|0)!=0:0)break a;if(((c[fb+216>>2]|0)-(c[fb+212>>2]|0)|0)<0)break a;a[(c[u>>2]|0)+203>>0]=(a[Ia>>0]|0)==0&1;if(!(a[(c[Aa>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ha>>0]|0;a[Fa>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;gb=c[Ca>>2]|0;fb=c[v>>2]|0;k:do if((gb|0)==2147483647)switch(fb|0){case 18:case 16:case 17:case 21:{gb=c[ra>>2]|0;c[Ca>>2]=gb;break k};case 20:case 19:{c[Ca>>2]=-2147483648;gb=-2147483648;break k};default:{gb=2147483647;break k}}while(0);do if((fb+ -8|0)>>>0<2){if((c[ra>>2]|0)<=(gb|0)){c[na>>2]=0;break c}if((fb|0)!=9)break;c[Ca>>2]=-2147483648}while(0);l:do if(!(a[Ba>>0]|0)){if(!(c[q>>2]|0)){fb=0;break d}}else{fb=c[u>>2]|0;pb=c[sa>>2]|0;gb=c[pb+13064>>2]|0;qb=c[pb+13120>>2]>>gb;gb=(c[pb+13124>>2]>>gb)+1|0;jf(c[ta>>2]|0,0,$(c[ua>>2]|0,c[va>>2]|0)|0)|0;jf(c[wa>>2]|0,0,$(c[ua>>2]|0,c[va>>2]|0)|0)|0;pb=c[sa>>2]|0;jf(c[xa>>2]|0,0,$(c[pb+13152>>2]|0,c[pb+13148>>2]|0)|0)|0;pb=c[sa>>2]|0;jf(c[ya>>2]|0,0,$((c[pb+13160>>2]|0)+1|0,(c[pb+13156>>2]|0)+1|0)|0)|0;jf(c[za>>2]|0,-1,$((qb<<2)+4|0,gb)|0)|0;c[na>>2]=0;c[oa>>2]=c[v>>2];gb=c[Aa>>2]|0;if(a[gb+42>>0]|0)c[fb+312>>2]=c[c[gb+1648>>2]>>2]<>2]|0)+13080>>2];fb=tc(m,qa,c[ra>>2]|0)|0;do if((fb|0)<0)t=fb;else{fb=yc(m)|0;if((fb|0)<0){t=fb;break}qb=((c[v>>2]|0)+ -16|0)>>>0<8;c[(c[c[q>>2]>>2]|0)+80>>2]=qb&1;c[(c[qa>>2]|0)+84>>2]=3-(c[Da>>2]|0);if(!qb)wc(m);De(c[Ea>>2]|0);fb=vc(m,c[Ea>>2]|0,0)|0;if((fb|0)<0){t=fb;break}fb=c[v>>2]|0;break l}while(0);do if((c[q>>2]|0)!=0?(a[pa>>0]|0)!=1:0)break;while(0);c[q>>2]=0;B=272;break c}while(0);if((fb|0)!=(c[oa>>2]|0))break a;do if(!(a[Ia>>0]|0)){if((c[Da>>2]|0)==2)break;fb=xc(m)|0;if((fb|0)<0)break d}while(0);c[o>>2]=0;c[cb>>2]=1;fb=c[ma>>2]|0;Ga[c[fb+816>>2]&1](fb,1,o,p,1,4)|0;fb=c[p>>2]|0;qb=c[sa>>2]|0;if((fb|0)>=($(c[qb+13132>>2]|0,c[qb+13128>>2]|0)|0))c[na>>2]=1;if((fb|0)<0)break d;else break c};case 48:{fb=zd(m)|0;if((fb|0)<0)break d;else break c};case 34:{fb=Ad(m)|0;if((fb|0)<0)break d;else break c};case 40:case 39:{fb=Cd(m)|0;if((fb|0)<0)break d;else break c};case 37:case 36:{b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647;break c};default:break c}}while(0);t=(c[(c[ma>>2]|0)+688>>2]&8|0)==0?0:fb;B=272}while(0);if((B|0)==272?(B=0,(t|0)<0):0)break a;S=S+1|0;if((S|0)>=(c[w>>2]|0))break a}if((B|0)==72){bc(m);bc(m);c[sa>>2]=0;break}else if((B|0)==216){c[Ma>>2]=0;break}}}else C=0;while(0);if((C|0)<0){qb=C;i=k;return qb|0}n=m+5848|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){qb=m+128|0;c[qb>>2]=e[l>>1];c[qb+4>>2]=0;Ee(g,m);c[h>>2]=1}qb=c[f>>2]|0;i=k;return qb|0}function $b(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;bc(e);b=e+7664|0;f=e+7644|0;if((c[b>>2]|0)>0){g=0;do{ie((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}ie(e+7648|0);ie(e+7640|0);ie(f);ie(e+152|0);ie(e+168|0);ie(e+172|0);ie(e+184|0);ie(e+176|0);ie(e+188|0);ie(e+180|0);ie(e+192|0);Ce(e+164|0);g=e+3512|0;f=0;do{l=g+(f*72|0)|0;pc(e,l,-1);Ce(l);f=f+1|0}while((f|0)!=32);g=e+208|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);g=e+400|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;ue(e+1424|0);ie(e+3084|0);ie(e+3088|0);ie(e+3092|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){ie(k);ie(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;ie(f);f=e+7656|0;if((c[b>>2]|0)<=0){ie(f);c[b>>2]=0;i=d;return 0}e=0;do{ie((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));ie(f);c[b>>2]=0;i=d;return 0}function ac(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;sc(a);c[a+5836>>2]=2147483647;i=b;return}function bc(a){a=a|0;var b=0;b=i;ie(a+3492|0);ie(a+3496|0);ie(a+7584|0);ie(a+7588|0);ie(a+7592|0);ie(a+7596|0);ie(a+7600|0);ie(a+7568|0);ie(a+7580|0);ie(a+7604|0);ie(a+7572|0);ie(a+7576|0);ie(a+3084|0);ie(a+3092|0);ie(a+3088|0);we(a+1428|0);we(a+1432|0);i=b;return}function cc(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(_d(d)|0){e=-1094995529;i=b;return e|0}c[a+3500>>2]=Xd(d,6)|0;e=Xd(d,6)|0;d=(Xd(d,3)|0)+ -1|0;c[a+3504>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function dc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+3488>>2]<<2)>>2]|0;m=(a[h+2437>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+7580|0;r=h+2424|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+7580|0;r=h+2424|0}q=e+ -1|0;s=h+136|0;p=h+3492|0;y=h+3044|0;o=h+3045|0;w=h+3072|0;x=h+3496|0;v=h+3076|0;u=h+3050|0;t=h+7604|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;_a(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=db(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(db(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+3044>>0]|0){T=(P|0)==2;do if(!T){if(S){U=(fb(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=ib(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=jb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=hb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=kb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=ec(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Za(h,A);Tb(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Rb(h,z,n,e);W=A;i=f;return W|0}function ec(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;j=i;i=i+32|0;z=j;C=j+20|0;B=b+136|0;p=c[B>>2]|0;k=1<>2]|0;q=b+204|0;t=c[q>>2]|0;r=(1<<(c[s+13080>>2]|0)-(c[t+24>>2]|0))+ -1|0;c[p+31232>>2]=h;l=k+e|0;if(((l|0)<=(c[s+13120>>2]|0)?(k+f|0)<=(c[s+13124>>2]|0):0)?(c[s+13064>>2]|0)>>>0>>0:0){s=tb(b,h,e,f)|0;t=c[q>>2]|0}else s=(c[s+13064>>2]|0)>>>0>>0&1;if((a[t+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[t+24>>2]|0)|0)>>>0<=g>>>0:0){a[p+300>>0]=0;c[p+280>>2]=0}if((a[b+3068>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[p+301>>0]=0;if(s){n=k>>1;o=n+e|0;q=n+f|0;g=g+ -1|0;h=h+1|0;s=ec(b,e,f,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}if(s){if((o|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=ec(b,o,f,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}if(s){if((q|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=ec(b,e,q,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}if(s){_=c[m>>2]|0;if((o|0)<(c[_+13120>>2]|0)?(q|0)<(c[_+13124>>2]|0):0){s=ec(b,o,q,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}}else s=0}else s=0}else s=0;if((r&l|0)==0?(r&k+f|0)==0:0)c[p+276>>2]=a[p+272>>0];if(!s){_=0;i=j;return _|0}k=c[m>>2]|0;if((o+n|0)<(c[k+13120>>2]|0))k=1;else k=(q+n|0)<(c[k+13124>>2]|0);_=k&1;i=j;return _|0}p=c[B>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;G=e>>r;F=f>>r;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;y=p+31252|0;a[y>>0]=1;v=p+31244|0;c[v>>2]=1;x=p+31248|0;c[x>>2]=0;u=p+31254|0;a[u>>0]=0;w=p+31253|0;a[w>>0]=0;t=($(F,h)|0)+G|0;E=b+7584|0;a[(c[E>>2]|0)+t>>0]=0;_=p+31268|0;a[_>>0]=1;a[_+1>>0]=1;a[_+2>>0]=1;a[_+3>>0]=1;r=k>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){_=(mb(b)|0)&255;a[p+31256>>0]=_;if(_<<24>>24)fc(b,e,f,g)}else a[p+31256>>0]=0;A=b+2428|0;if((c[A>>2]|0)==2){if((r|0)>0){F=t;G=0;while(1){jf((c[E>>2]|0)+F|0,0,r|0)|0;G=G+1|0;if((G|0)==(r|0))break;else F=F+h|0}}}else{H=nb(b,e,f,G,F)|0;I=H&255;if((r|0)>0){F=t;G=0;while(1){jf((c[E>>2]|0)+F|0,I|0,r|0)|0;G=G+1|0;if((G|0)==(r|0))break;else F=F+h|0}}c[v>>2]=(H&255|0)!=0?2:0}do if(!(a[(c[E>>2]|0)+t>>0]|0)){if((c[A>>2]|0)==2)A=c[v>>2]|0;else{A=sb(b)|0;c[v>>2]=A}if((A|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0){F=c[x>>2]|0;A=53}else A=50;a:do if((A|0)==50){F=ub(b,g)|0;c[x>>2]=F;E=c[v>>2]|0;if((F|0)==3)G=(E|0)==1&1;else G=0;a[u>>0]=G;if((E|0)==1)A=53;else{hc(b,e,f,g);switch(c[x>>2]|0){case 4:{_=(k|0)/4|0;gc(b,e,f,k,_,g,0);gc(b,e,_+f|0,k,(3<>2]|0,(c[D+68>>2]|0)!=0):0)?(c[D+13048>>2]|0)>>>0<=g>>>0:0)?(c[D+13052>>2]|0)>>>0>=g>>>0:0){D=(vb(b)|0)&255;a[w>>0]=D}else D=a[w>>0]|0;if(D<<24>>24){hc(b,e,f,g);I=c[B>>2]|0;Y=c[b+160>>2]|0;G=c[Y+32>>2]|0;F=$(G,f)|0;J=c[m>>2]|0;E=c[J+56>>2]|0;F=(c[Y>>2]|0)+((e<>2]|0;L=c[J+13184>>2]|0;H=$(f>>L,B)|0;K=c[J+13172>>2]|0;H=(c[Y+4>>2]|0)+((e>>K<>2]|0;_=c[J+13188>>2]|0;C=$(f>>_,D)|0;Z=c[J+13176>>2]|0;C=(c[Y+8>>2]|0)+((e>>Z<>0]|0,k<>Z,k>>_)|0)+($(k>>K,k>>L)|0)|0;E=($(d[J+13045>>0]|0,L)|0)+E|0;L=I+224|0;J=E+7>>3;K=c[I+240>>2]|0;_=c[L>>2]|0;K=(_&1|0)==0?K:K+ -1|0;K=(_&511|0)==0?K:K+ -1|0;I=(c[I+244>>2]|0)-K|0;if((I|0)<(J|0))K=0;else Vd(L,K+J|0,I-J|0);if(!(a[b+3049>>0]|0))Pb(b,e,f,g);_=E>>>0>2147483639|(K|0)==0;Z=_?0:E;Y=_?0:K;c[z>>2]=Y;c[z+12>>2]=Z;c[z+16>>2]=Z+8;c[z+4>>2]=Y+(Z+7>>3);c[z+8>>2]=0;if(_)z=-1094995529;else{Z=b+5852|0;Na[c[Z>>2]&3](F,G,k,k,z,d[(c[m>>2]|0)+13044>>0]|0);_=c[m>>2]|0;Na[c[Z>>2]&3](H,B,k>>c[_+13172>>2],k>>c[_+13184>>2],z,d[_+13045>>0]|0);_=c[m>>2]|0;Na[c[Z>>2]&3](C,D,k>>c[_+13176>>2],k>>c[_+13188>>2],z,d[_+13045>>0]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)fc(b,e,f,g);if((z|0)>=0)break;i=j;return z|0}D=c[B>>2]|0;G=(c[D+31248>>2]|0)==3;E=G?2:1;F=0;do{H=F<<1;I=0;do{a[C+(I+H)>>0]=wb(b)|0;I=I+1|0}while((I|0)<(E|0));F=F+1|0}while((F|0)<(E|0));K=k>>(G&1);J=D+31264|0;L=b+3508|0;T=z+4|0;Q=z+8|0;M=b+7592|0;I=D+31260|0;H=0;do{F=H<<1;G=($(H,K)|0)+f|0;R=0;do{P=R+F|0;X=(a[C+P>>0]|0)==0;if(X)c[J>>2]=yb(b)|0;else c[I>>2]=xb(b)|0;U=($(R,K)|0)+e|0;W=c[B>>2]|0;Y=c[m>>2]|0;V=c[Y+13084>>2]|0;O=U>>V;S=G>>V;N=c[Y+13156>>2]|0;V=K>>V;Y=c[Y+13080>>2]|0;_=(1<>0]|0)==0?(_&G|0)==0:0)_=1;else{_=($(S+ -1|0,N)|0)+O|0;_=d[(c[M>>2]|0)+_>>0]|0}if((a[W+308>>0]|0)==0&(U|0)==0)Z=1;else{Z=O+ -1+($(S,N)|0)|0;Z=d[(c[M>>2]|0)+Z>>0]|0}U=c[(c[L>>2]|0)+16>>2]|0;_=(G>>Y<>>0<2){c[z>>2]=0;c[T>>2]=1;c[Q>>2]=26;Z=0;_=1;Y=26;break}else{c[z>>2]=Z;_=(Z+29&31)+2|0;c[T>>2]=_;Y=(Z+31&31)+2|0;c[Q>>2]=Y;break}else{c[z>>2]=Z;c[T>>2]=_;if(!((Z|0)==0|(_|0)==0)){c[Q>>2]=0;Y=0;break}if((Z|0)==1|(_|0)==1){c[Q>>2]=26;Y=26;break}else{c[Q>>2]=1;Y=1;break}}while(0);if(X){if((Z|0)>(_|0)){c[T>>2]=Z;X=_&255;c[z>>2]=X}else{X=Z;Z=_}if((X|0)>(Y|0)){c[Q>>2]=X;_=Y&255;c[z>>2]=_;Y=X;X=_}if((Z|0)>(Y|0)){c[Q>>2]=Z;_=Y&255;c[T>>2]=_;Y=Z}else _=Z;W=c[W+31264>>2]|0;W=((W|0)>=(X|0)&1)+W|0;W=((W|0)>=(_|0)&1)+W|0;W=((W|0)>=(Y|0)&1)+W|0}else W=c[z+(c[W+31260>>2]<<2)>>2]|0;V=(V|0)==0?1:V;W=W&255;if((V|0)>0){X=0;do{Y=($(X+S|0,N)|0)+O|0;jf((c[M>>2]|0)+Y|0,W|0,V|0)|0;Y=X+O|0;Z=0;do{a[U+((Y+($(Z+S|0,N)|0)|0)*12|0)+10>>0]=0;Z=Z+1|0}while((Z|0)<(V|0));X=X+1|0}while((X|0)<(V|0))}a[D+P+31268>>0]=W;R=R+1|0}while((R|0)<(E|0));H=H+1|0}while((H|0)<(E|0));z=c[(c[m>>2]|0)+4>>2]|0;if((z|0)==2){z=zb(b)|0;a[D+31281>>0]=z;B=a[D+31268>>0]|0;if((z|0)==4)z=B&255;else{z=a[1600+z>>0]|0;z=B<<24>>24==z<<24>>24?34:z&255}a[D+31277>>0]=a[1608+z>>0]|0;break}else if(!z)break;else if((z|0)!=3){B=zb(b)|0;z=a[D+31268>>0]|0;if((B|0)==4){a[D+31277>>0]=z;break}B=a[1600+B>>0]|0;C=D+31277|0;if(z<<24>>24==B<<24>>24){a[C>>0]=34;break}else{a[C>>0]=B;break}}else{z=0;do{B=z<<1;C=0;do{G=zb(b)|0;H=C+B|0;a[D+H+31281>>0]=G;F=a[D+H+31268>>0]|0;do if((G|0)!=4){G=a[1600+G>>0]|0;H=D+H+31277|0;if(F<<24>>24==G<<24>>24){a[H>>0]=34;break}else{a[H>>0]=G;break}}else a[D+H+31277>>0]=F;while(0);C=C+1|0}while((C|0)<(E|0));z=z+1|0}while((z|0)<(E|0))}}while(0);if(!(a[w>>0]|0)){do if((c[v>>2]|0)==1)A=139;else{if((c[x>>2]|0)==0?(a[p+31276>>0]|0)!=0:0){A=139;break}w=(Fb(b)|0)&255;a[y>>0]=w}while(0);if((A|0)==139)w=a[y>>0]|0;if(!(w<<24>>24)){if(a[b+3049>>0]|0)break;Pb(b,e,f,g);break}w=c[m>>2]|0;if((c[v>>2]|0)==1)u=(d[u>>0]|0)+(c[w+13092>>2]|0)|0;else u=c[w+13088>>2]|0;a[p+31255>>0]=u;u=ic(b,e,f,e,f,e,f,g,g,0,0,1592,1592)|0;if((u|0)<0){_=u;i=j;return _|0}}}else{gc(b,e,f,k,k,g,0);hc(b,e,f,g);if(!(a[b+3049>>0]|0))Pb(b,e,f,g)}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)Ob(b,e,f,g);if((r|0)>0){q=b+7568|0;g=p+272|0;u=0;while(1){jf((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&l|0)==0?(s&k+f|0)==0:0)c[p+276>>2]=a[p+272>>0];q=c[m>>2]|0;_=c[q+13064>>2]|0;g=k>>_;r=e>>_;e=f>>_;if((g|0)>0?(n=b+7588|0,o=c[p+31232>>2]&255,_=($(c[q+13140>>2]|0,e)|0)+r|0,jf((c[n>>2]|0)+_|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{_=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+r|0;jf((c[n>>2]|0)+_|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}e=c[m>>2]|0;m=1<>2];if(((l|0)%(m|0)|0|0)!=0?(l|0)<(c[e+13120>>2]|0):0){_=1;i=j;return _|0}_=k+f|0;if(((_|0)%(m|0)|0|0)!=0?(_|0)<(c[e+13124>>2]|0):0){_=1;i=j;return _|0}_=(lb(b)|0)==0&1;i=j;return _|0}function fc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+7600|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function gc(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;r=i;i=i+16|0;n=r;x=c[f+136>>2]|0;c[n+0>>2]=c[412];c[n+4>>2]=c[413];c[n+8>>2]=c[414];s=f+200|0;A=c[s>>2]|0;w=c[A+13156>>2]|0;u=c[f+3508>>2]|0;v=c[u+16>>2]|0;u=c[u+20>>2]|0;o=f+160|0;z=c[o>>2]|0;t=$(c[z+32>>2]|0,h>>c[A+13180>>2])|0;B=c[A+56>>2]|0;t=(c[z>>2]|0)+((g>>c[A+13168>>2]<>c[A+13184>>2],c[z+36>>2]|0)|0;q=(c[z+4>>2]|0)+((g>>c[A+13172>>2]<>c[A+13188>>2],c[z+40>>2]|0)|0;p=(c[z+8>>2]|0)+((g>>c[A+13176>>2]<>2]|0;B=($(h>>B,c[A+13140>>2]|0)|0)+(g>>B)|0;a:do if(!(a[(c[f+7584>>2]|0)+B>>0]|0)){B=(Bb(f)|0)&255;a[x+31276>>0]=B;if(B<<24>>24){if((c[f+3080>>2]|0)>>>0>1)x=Ab(f)|0;else x=0;rd(f,g,h,j,k,l,m,x,n);A=c[(c[s>>2]|0)+13084>>2]|0;m=g>>A;l=h>>A;if((k>>A|0)>0)x=0;else break;while(1){if((j>>A|0)>0){z=($(x+l|0,w)|0)+m|0;y=0;do{A=v+((z+y|0)*12|0)|0;c[A+0>>2]=c[n+0>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];y=y+1|0;A=c[(c[s>>2]|0)+13084>>2]|0}while((y|0)<(j>>A|0))}x=x+1|0;if((x|0)>=(k>>A|0))break a}}qd(f,g,h,j,k);y=n+10|0;a[y>>0]=0;if(!(c[f+2428>>2]|0)){A=Cb(f,j,k)|0;if((A|0)==1){A=1;z=22}else z=19}else{A=0;z=19}if((z|0)==19){B=c[f+3036>>2]|0;if(B)a[n+8>>0]=Db(f,B)|0;a[y>>0]=1;Mb(f,g,h,0);sd(f,g,h,j,k,l,m,0,n,Eb(f)|0,0);B=c[n>>2]|0;b[n>>1]=B+(e[x+31272>>1]|0);b[n+2>>1]=(B>>>16)+(e[x+31274>>1]|0);if(A)z=22}if((z|0)==22){z=c[f+3040>>2]|0;if(z)a[n+9>>0]=Db(f,z)|0;if((a[f+3047>>0]|0)==1&(A|0)==2)c[x+31272>>2]=0;else Mb(f,g,h,1);a[y>>0]=(d[y>>0]|0)+2;sd(f,g,h,j,k,l,m,0,n,Eb(f)|0,1);A=n+4|0;B=c[A>>2]|0;b[A>>1]=B+(e[x+31272>>1]|0);b[n+6>>1]=(B>>>16)+(e[x+31274>>1]|0)}A=c[(c[s>>2]|0)+13084>>2]|0;l=g>>A;m=h>>A;if((k>>A|0)>0){x=0;do{if((j>>A|0)>0){y=($(x+m|0,w)|0)+l|0;z=0;do{A=v+((y+z|0)*12|0)|0;c[A+0>>2]=c[n+0>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];z=z+1|0;A=c[(c[s>>2]|0)+13084>>2]|0}while((z|0)<(j>>A|0))}x=x+1|0}while((x|0)<(k>>A|0))}}else{if((c[f+3080>>2]|0)>>>0>1)x=Ab(f)|0;else x=0;y=1<>2]|0)+13084>>2]|0;l=g>>y;m=h>>y;if((k>>y|0)>0){x=0;do{if((j>>y|0)>0){A=($(x+m|0,w)|0)+l|0;z=0;do{y=v+((A+z|0)*12|0)|0;c[y+0>>2]=c[n+0>>2];c[y+4>>2]=c[n+4>>2];c[y+8>>2]=c[n+8>>2];z=z+1|0;y=c[(c[s>>2]|0)+13084>>2]|0}while((z|0)<(j>>y|0))}x=x+1|0}while((x|0)<(k>>y|0))}}while(0);w=a[n+10>>0]|0;if(w&1){w=c[n+8>>2]|0;v=c[u+(w<<24>>24<<2)>>2]|0;if(!v){i=r;return}else w=w>>>16&255}else v=0;if(w&2){u=c[u+(a[n+9>>0]<<2)+196>>2]|0;if(!u){i=r;return}}else u=0;if(w<<24>>24==3)wa();else if(w<<24>>24==2){v=n+9|0;B=a[v>>0]|0;kc(f,t,c[(c[o>>2]|0)+32>>2]|0,c[u>>2]|0,n+4|0,g,h,j,k,b[f+(B<<1)+3264>>1]|0,b[f+(B<<1)+3392>>1]|0);s=c[s>>2]|0;if(!(c[s+4>>2]|0)){i=r;return}z=c[s+13172>>2]|0;x=g>>z;A=c[s+13184>>2]|0;y=h>>A;z=j>>z;A=k>>A;B=c[u>>2]|0;m=a[v>>0]|0;lc(f,q,c[(c[o>>2]|0)+36>>2]|0,c[B+4>>2]|0,c[B+36>>2]|0,1,x,y,z,A,n,b[f+(m<<2)+3200>>1]|0,b[f+(m<<2)+3424>>1]|0);m=c[u>>2]|0;B=a[v>>0]|0;lc(f,p,c[(c[o>>2]|0)+40>>2]|0,c[m+8>>2]|0,c[m+40>>2]|0,1,x,y,z,A,n,b[f+(B<<2)+3202>>1]|0,b[f+(B<<2)+3426>>1]|0);i=r;return}else if(w<<24>>24==1){u=n+8|0;B=a[u>>0]|0;kc(f,t,c[(c[o>>2]|0)+32>>2]|0,c[v>>2]|0,n,g,h,j,k,b[f+(B<<1)+3104>>1]|0,b[f+(B<<1)+3296>>1]|0);s=c[s>>2]|0;if(!(c[s+4>>2]|0)){i=r;return}z=c[s+13172>>2]|0;x=g>>z;A=c[s+13184>>2]|0;y=h>>A;z=j>>z;A=k>>A;B=c[v>>2]|0;m=a[u>>0]|0;lc(f,q,c[(c[o>>2]|0)+36>>2]|0,c[B+4>>2]|0,c[B+36>>2]|0,0,x,y,z,A,n,b[f+(m<<2)+3136>>1]|0,b[f+(m<<2)+3328>>1]|0);m=c[v>>2]|0;B=a[u>>0]|0;lc(f,p,c[(c[o>>2]|0)+40>>2]|0,c[m+8>>2]|0,c[m+40>>2]|0,0,x,y,z,A,n,b[f+(B<<2)+3138>>1]|0,b[f+(B<<2)+3330>>1]|0);i=r;return}else{i=r;return}}function hc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;k=c[b+136>>2]|0;h=c[b+200>>2]|0;j=c[h+13084>>2]|0;l=1<>j;h=c[h+13156>>2]|0;f=c[(c[b+3508>>2]|0)+16>>2]|0;d=d>>j;j=e>>j;e=(l|0)==0?1:l;l=(e|0)>0;if(l){b=b+7592|0;m=0;do{n=($(m+j|0,h)|0)+d|0;jf((c[b>>2]|0)+n|0,1,e|0)|0;m=m+1|0}while((m|0)<(e|0))}if((c[k+31244>>2]|0)!=1|l^1){i=g;return}else k=0;do{b=($(k+j|0,h)|0)+d|0;l=0;do{a[f+((b+l|0)*12|0)+10>>0]=0;l=l+1|0}while((l|0)<(e|0));k=k+1|0}while((k|0)<(e|0));i=g;return} +function Ra(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Sa(){return i|0}function Ta(a){a=a|0;i=a}function Ua(a,b){a=a|0;b=b|0;if(!o){o=a;p=b}}function Va(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Wa(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Xa(a){a=a|0;D=a}function Ya(){return D|0}function Za(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if(!(a[(c[b+204>>2]|0)+43>>0]|0)){i=e;return}f=c[(c[b+200>>2]|0)+13128>>2]|0;d=(d|0)%(f|0)|0;if((d|0)!=2?!((f|0)==2&(d|0)==0):0){i=e;return}mf(c[b+152>>2]|0,c[b+136>>2]|0,199)|0;i=e;return}function _a(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;g=b+204|0;f=c[g>>2]|0;if((c[(c[f+1668>>2]|0)+(c[b+3488>>2]<<2)>>2]|0)==(d|0)){$a(b);f=b+2437|0;if(a[f>>0]|0){j=c[g>>2]|0;if((a[j+42>>0]|0)!=0?(j=c[j+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0)h=5}else h=5;if((h|0)==5)ab(b);if(a[b+2436>>0]|0){i=e;return}if(!(a[(c[g>>2]|0)+43>>0]|0)){i=e;return}g=c[(c[b+200>>2]|0)+13128>>2]|0;if((d|0)%(g|0)|0){i=e;return}if((g|0)==1){ab(b);i=e;return}if((a[f>>0]|0)!=1){i=e;return}mf(c[b+136>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}if((a[f+42>>0]|0)!=0?(j=c[f+1676>>2]|0,(c[j+(d<<2)>>2]|0)!=(c[j+(d+ -1<<2)>>2]|0)):0){if((a[b+141>>0]|0)==1)bb(c[b+136>>2]|0);else $a(b);ab(b);f=c[g>>2]|0}if(!(a[f+43>>0]|0)){i=e;return}f=b+200|0;if((d|0)%(c[(c[f>>2]|0)+13128>>2]|0)|0){i=e;return}d=b+136|0;cb((c[d>>2]|0)+224|0)|0;if((a[b+141>>0]|0)==1)bb(c[d>>2]|0);else $a(b);if((c[(c[f>>2]|0)+13128>>2]|0)==1){ab(b);i=e;return}else{mf(c[d>>2]|0,c[b+152>>2]|0,199)|0;i=e;return}}function $a(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;e=a+136|0;a=c[e>>2]|0;d=a+204|0;Zd(d,1);g=a+212|0;f=c[g>>2]|0;h=0-f&7;if(h){Zd(d,h);f=c[g>>2]|0}Vd((c[e>>2]|0)+224|0,(c[d>>2]|0)+((f|0)/8|0)|0,(7-f+(c[a+216>>2]|0)|0)/8|0);i=b;return}function ab(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;f=c[b+2428>>2]|0;e=2-f|0;e=(a[b+3048>>0]|0)==0|(f|0)==2?e:e^3;f=b+3100|0;b=b+136|0;h=0;do{j=d[680+(e*199|0)+h>>0]|0;l=a[f>>0]|0;k=l<<24>>24;if(l<<24>>24<0)k=0;else k=(k|0)>51?51:k;j=((j<<3&120)+ -16+(($(k,((j>>>4)*5|0)+ -45|0)|0)>>4)<<1)+ -127|0;j=j>>31^j;if((j|0)>124)j=j&1|124;a[(c[b>>2]|0)+h>>0]=j;h=h+1|0}while((h|0)!=199);a[(c[b>>2]|0)+199>>0]=0;a[(c[b>>2]|0)+200>>0]=0;a[(c[b>>2]|0)+201>>0]=0;a[(c[b>>2]|0)+202>>0]=0;i=g;return}function bb(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+224|0;e=c[a+240>>2]|0;f=c[d>>2]|0;e=(f&1|0)==0?e:e+ -1|0;e=(f&511|0)==0?e:e+ -1|0;a=(c[a+244>>2]|0)-e|0;if((a|0)<0){i=b;return}Vd(d,e,a);i=b;return}function cb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;f=a+4|0;d=c[f>>2]|0;e=d+ -2|0;c[f>>2]=e;g=c[a>>2]|0;if((g|0)>=(e<<17|0)){g=(c[a+16>>2]|0)-(c[a+12>>2]|0)|0;i=b;return g|0}d=(d+ -258|0)>>>31;c[f>>2]=e<>2]=g;if(g&65535){g=0;i=b;return g|0}Nb(a);g=0;i=b;return g|0}function db(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a)|0;i=b;return a|0}function eb(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;h=d[e>>0]|0;j=b+4|0;k=c[j>>2]|0;l=d[3072+((k<<1&384)+(h|512))>>0]|0;k=k-l|0;m=k<<17;n=c[b>>2]|0;g=m-n>>31;c[b>>2]=n-(g&m);c[j>>2]=(g&l-k)+k;h=g^h;a[e>>0]=a[h+4224>>0]|0;e=h&1;h=c[j>>2]|0;g=d[3072+h>>0]|0;c[j>>2]=h<>2]<>2]=g;if(g&65535){i=f;return e|0}j=b+16|0;h=c[j>>2]|0;c[b>>2]=(((d[h+1>>0]|0)<<1|(d[h>>0]|0)<<9)+ -65535<<7-(d[3072+((g+ -1^g)>>15)>>0]|0))+g;if(h>>>0>=(c[b+20>>2]|0)>>>0){i=f;return e|0}c[j>>2]=h+2;i=f;return e|0}function fb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(eb(d+224|0,d+1|0)|0)){d=0;i=b;return d|0}d=(gb((c[a>>2]|0)+224|0)|0)==0;d=d?1:2;i=b;return d|0}function gb(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a>>2]<<1;c[a>>2]=d;if(!(d&65534)){Nb(a);d=c[a>>2]|0}e=c[a+4>>2]<<17;if((d|0)<(e|0)){e=0;i=b;return e|0}c[a>>2]=d-e;e=1;i=b;return e|0}function hb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function ib(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[(c[a+200>>2]|0)+52>>2]|0;d=(d|0)>10?31:(1<0)a=0;else{f=0;i=b;return f|0}while(1){f=a+1|0;if(!(gb((c[e>>2]|0)+224|0)|0)){d=4;break}if((f|0)<(d|0))a=f;else{a=f;d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function jb(a){a=a|0;var b=0;b=i;a=gb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function kb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function lb(a){a=a|0;var b=0;b=i;a=cb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function mb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+5|0)|0;i=b;return a|0}function nb(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;l=c[b+200>>2]|0;j=c[l+13140>>2]|0;l=(1<>2])+ -1|0;k=l&e;e=c[b+136>>2]|0;if((a[e+308>>0]|0)==0?(l&d|0)==0:0)d=0;else{d=f+ -1+($(j,g)|0)|0;d=(a[(c[b+7584>>2]|0)+d>>0]|0)!=0&1}if((a[e+309>>0]|0)==0&(k|0)==0){l=d;d=e+224|0;l=l+6|0;l=e+l|0;l=eb(d,l)|0;i=h;return l|0}l=($(j,g+ -1|0)|0)+f|0;l=((a[(c[b+7584>>2]|0)+l>>0]|0)!=0&1)+d|0;d=e+224|0;l=l+6|0;l=e+l|0;l=eb(d,l)|0;i=h;return l|0}function ob(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;a=a+136|0;g=9;e=0;while(1){h=c[a>>2]|0;f=e;e=e+1|0;if(!(eb(h+224|0,h+g|0)|0)){e=f;g=0;break}if((e|0)>=5){f=0;g=0;d=4;break}else g=10}do if((d|0)==4){while(1){d=0;if(!(gb((c[a>>2]|0)+224|0)|0)){d=5;break}g=(1<>2]|0)+224|0)|0)<>2]|0)+224|0)|0;i=b;return a|0}function qb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+176|0)|0;i=b;return a|0}function rb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=a[(c[b+204>>2]|0)+1633>>0]|0;e=(e&255)<5?5:e&255;f=b+136|0;if(!e){g=0;i=d;return g|0}else b=0;while(1){h=c[f>>2]|0;g=b+1|0;if(!(eb(h+224|0,h+177|0)|0)){e=4;break}if((g|0)<(e|0))b=g;else{b=g;e=4;break}}if((e|0)==4){i=d;return b|0}return 0}function sb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+12|0)|0;i=b;return a|0}function tb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;k=c[b+200>>2]|0;n=(1<>2])+ -1|0;l=n&g;m=c[k+13064>>2]|0;h=f>>m;m=g>>m;g=c[b+136>>2]|0;if((a[g+308>>0]|0)==0?(n&f|0)==0:0)f=0;else{f=h+ -1+($(c[k+13140>>2]|0,m)|0)|0;f=d[(c[b+7588>>2]|0)+f>>0]|0}if((a[g+309>>0]|0)==0&(l|0)==0){n=0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=eb(f,n)|0;i=j;return n|0}n=($(c[k+13140>>2]|0,m+ -1|0)|0)+h|0;n=d[(c[b+7588>>2]|0)+n>>0]|0;m=(f|0)>(e|0);m=m&1;n=(n|0)>(e|0);n=n&1;f=g+224|0;m=m|2;n=m+n|0;n=g+n|0;n=eb(f,n)|0;i=j;return n|0}function ub(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;f=b+136|0;g=c[f>>2]|0;do if(!(eb(g+224|0,g+13|0)|0)){b=c[b+200>>2]|0;if((c[b+13064>>2]|0)==(d|0)){b=c[f>>2]|0;if((c[b+31244>>2]|0)==1){f=3;break}if(eb(b+224|0,b+14|0)|0){f=1;break}if((d|0)==3){f=2;break}f=c[f>>2]|0;f=(eb(f+224|0,f+15|0)|0)==0;f=f?3:2;break}g=(a[b+12940>>0]|0)==0;d=c[f>>2]|0;d=(eb(d+224|0,d+14|0)|0)!=0;if(g){f=d?1:2;break}b=c[f>>2]|0;b=(eb(b+224|0,b+16|0)|0)!=0;if(d){if(b){f=1;break}f=(gb((c[f>>2]|0)+224|0)|0)==0;f=f?4:5;break}else{if(b){f=2;break}f=(gb((c[f>>2]|0)+224|0)|0)==0;f=f?6:7;break}}else f=0;while(0);i=e;return f|0}function vb(a){a=a|0;var b=0;b=i;a=cb((c[a+136>>2]|0)+224|0)|0;i=b;return a|0}function wb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+17|0)|0;i=b;return a|0}function xb(a){a=a|0;var b=0,d=0,e=0;b=i;e=a+136|0;d=0;while(1){a=d+1|0;if(!(gb((c[e>>2]|0)+224|0)|0)){a=d;d=4;break}if((a|0)<2)d=a;else{d=4;break}}if((d|0)==4){i=b;return a|0}return 0}function yb(a){a=a|0;var b=0,d=0;b=i;d=a+136|0;a=(gb((c[d>>2]|0)+224|0)|0)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=(gb((c[d>>2]|0)+224|0)|0|a)<<1;a=gb((c[d>>2]|0)+224|0)|0|a;i=b;return a|0}function zb(a){a=a|0;var b=0,d=0;b=i;a=a+136|0;d=c[a>>2]|0;if(!(eb(d+224|0,d+18|0)|0)){d=4;i=b;return d|0}d=(gb((c[a>>2]|0)+224|0)|0)<<1;d=gb((c[a>>2]|0)+224|0)|0|d;i=b;return d|0}function Ab(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=a+136|0;e=c[d>>2]|0;e=eb(e+224|0,e+21|0)|0;if(!e){f=0;i=b;return f|0}a=a+3080|0;if(e>>>0>=((c[a>>2]|0)+ -1|0)>>>0){f=e;i=b;return f|0}while(1){f=e+1|0;if(!(gb((c[d>>2]|0)+224|0)|0)){d=5;break}if(f>>>0<((c[a>>2]|0)+ -1|0)>>>0)e=f;else{e=f;d=5;break}}if((d|0)==5){i=b;return e|0}return 0}function Bb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+20|0)|0;i=b;return a|0}function Cb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;g=a+136|0;a=c[g>>2]|0;f=a+224|0;if((d+b|0)==12){g=eb(f,a+26|0)|0;i=e;return g|0}if(eb(f,a+((c[a+31232>>2]|0)+22)|0)|0){g=2;i=e;return g|0}g=c[g>>2]|0;g=eb(g+224|0,g+26|0)|0;i=e;return g|0}function Db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;b=b+ -1|0;e=(b|0)>2;f=e?2:b;a=a+136|0;if((f|0)>0)h=0;else{h=0;i=d;return h|0}while(1){j=c[a>>2]|0;g=h+1|0;if(!(eb(j+224|0,j+(h+27)|0)|0)){g=h;break}if((g|0)<(f|0))h=g;else break}if((g|0)!=2|e^1){j=g;i=d;return j|0}else e=2;while(1){f=e+1|0;if(!(gb((c[a>>2]|0)+224|0)|0)){b=7;break}if((f|0)<(b|0))e=f;else{e=f;b=7;break}}if((b|0)==7){i=d;return e|0}return 0}function Eb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+35|0)|0;i=b;return a|0}function Fb(a){a=a|0;var b=0;b=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+36|0)|0;i=b;return a|0}function Gb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(42-b)|0)|0;i=d;return a|0}function Hb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(b+42)|0)|0;i=d;return a|0}function Ib(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+((b|0)==0|40)|0)|0;i=d;return a|0}function Jb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a=a+136|0;f=(b<<2)+166|0;e=0;while(1){g=c[a>>2]|0;b=e+1|0;if(!(eb(g+224|0,g+(f+e)|0)|0)){b=e;a=4;break}if((b|0)<4)e=b;else{a=4;break}}if((a|0)==4){i=d;return b|0}return 0}function Kb(a,b){a=a|0;b=b|0;var d=0;d=i;a=c[a+136>>2]|0;a=eb(a+224|0,a+(b+174)|0)|0;i=d;return a|0}function Lb(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ga=0,Ha=0,Ia=0,Ja=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;m=i;i=i+96|0;w=m+24|0;t=m+8|0;v=m;s=f+136|0;p=c[s>>2]|0;x=c[f+160>>2]|0;n=c[x+(l<<2)+32>>2]|0;r=f+200|0;o=c[r>>2]|0;W=$(h>>c[o+(l<<2)+13180>>2],n)|0;o=(c[x+(l<<2)>>2]|0)+(W+(g>>c[o+(l<<2)+13168>>2]<>2]))|0;W=(l|0)!=0;g=p+320|0;h=W?p+11680|0:g;x=w+0|0;q=x+64|0;do{a[x>>0]=0;x=x+1|0}while((x|0)<(q|0));V=1<>2]|0;q=V<>0]|0)){A=a[p+272>>0]|0;C=f+204|0;Pa=c[C>>2]|0;if((a[Pa+21>>0]|0)!=0?(d[Pa+1629>>0]|0)>=(j|0):0){I=c[s>>2]|0;I=eb(I+224|0,I+(W&1|46)|0)|0}else I=0;if(y){B=c[r>>2]|0;E=B;B=(c[B+13192>>2]|0)+A|0}else{B=c[C>>2]|0;if((l|0)==1)B=(c[f+3060>>2]|0)+(c[B+28>>2]|0)+(a[p+302>>0]|0)|0;else B=(c[f+3064>>2]|0)+(c[B+32>>2]|0)+(a[p+303>>0]|0)|0;B=B+A|0;E=c[r>>2]|0;A=c[E+13192>>2]|0;F=0-A|0;if((B|0)<(F|0))B=F;else B=(B|0)>57?57:B;do if((c[E+4>>2]|0)==1){if((B|0)>=30)if((B|0)>43){B=B+ -6|0;break}else{B=c[176+(B+ -30<<2)>>2]|0;break}}else B=(B|0)>51?51:B;while(0);B=A+B|0}A=(c[E+52>>2]|0)+j|0;H=A+ -5|0;A=1<>0]|0)>>0]<>0];if((a[E+634>>0]|0)!=0?!((I|0)!=0&(j|0)>2):0){F=c[C>>2]|0;F=(a[F+68>>0]|0)==0?E+635|0:F+69|0;C=((c[p+31244>>2]|0)!=1?3:0)+l|0;E=F+((j+ -2|0)*384|0)+(C<<6)|0;if((j|0)>3)la=a[F+((j+ -4|0)*6|0)+C+1536>>0]|0;else la=16}else{la=16;E=0}}else{A=0;la=0;B=0;E=0;H=0;I=0}F=p+31244|0;do if((c[F>>2]|0)==0?(c[(c[r>>2]|0)+13108>>2]|0)!=0:0){if((I|0)==0?(a[z>>0]|0)==0:0){C=0;G=0;break}G=c[s>>2]|0;C=W&1;G=eb(G+224|0,G+(C|48)|0)|0;if(G){Pa=c[s>>2]|0;C=eb(Pa+224|0,Pa+(C|50)|0)|0}else{C=0;G=0}}else{C=0;G=0}while(0);L=(j<<1)+ -1|0;if(y){J=(j*3|0)+ -6+(j+ -1>>2)|0;M=j+1>>2}else{J=15;M=j+ -2|0}if((L|0)>0){O=J+52|0;K=0;while(1){Pa=c[s>>2]|0;N=K+1|0;if(!(eb(Pa+224|0,Pa+(O+(K>>M))|0)|0))break;if((N|0)<(L|0))K=N;else{K=N;break}}N=J+70|0;J=0;while(1){Pa=c[s>>2]|0;O=J+1|0;if(!(eb(Pa+224|0,Pa+(N+(J>>M))|0)|0))break;if((O|0)<(L|0))J=O;else{J=O;break}}if((K|0)>3){L=(K>>1)+ -1|0;N=gb((c[s>>2]|0)+224|0)|0;if((L|0)>1){M=1;do{N=gb((c[s>>2]|0)+224|0)|0|N<<1;M=M+1|0}while((M|0)!=(L|0))}K=N+((K&1|2)<3){M=(J>>1)+ -1|0;N=gb((c[s>>2]|0)+224|0)|0;if((M|0)>1){L=1;do{N=gb((c[s>>2]|0)+224|0)|0|N<<1;L=L+1|0}while((L|0)!=(M|0))}L=K;O=N+((J&1|2)<>2;Q=O>>2;if((k|0)==1){J=L;K=O;S=d[536+(O<<3)+L>>0]|0;L=488;M=504;N=496;O=520;break}else if(k){N=L;M=O;u=55;break}S=d[(L&3)+(392+((O&3)<<2))>>0]|0;if((V|0)==8){J=L;K=O;S=(d[416+(Q<<1)+P>>0]<<4)+S|0;L=496;M=8;N=488;O=24;break}else if((V|0)==16){J=L;K=O;S=(d[392+(Q<<2)+P>>0]<<4)+S|0;L=8;M=8;N=24;O=24;break}else if((V|0)==4){J=L;K=O;L=408;M=8;N=408;O=24;break}else{J=L;K=O;S=(d[424+(Q<<3)+P>>0]<<4)+S|0;L=40;M=8;N=104;O=24;break}}else{N=O;M=L;P=O>>2;Q=L>>2;u=55}while(0);if((u|0)==55){J=N;K=M;S=d[536+(N<<3)+M>>0]|0;L=496;M=520;N=488;O=504}R=S+1|0;T=S>>4;if((T|0)>-1){S=(1<0;l=U?90:88;V=V+ -1>>2;W=W?27:0;Z=(j|0)==2;Y=W+3|0;X=(j|0)==3;k=(k|0)==0?9:15;ja=y?0:27;ga=(I|0)==0;da=y?42:43;aa=y?40:41;ea=y?2:0;ia=(G|0)==0;ha=(x&-17|0)!=10&ia;ka=f+204|0;ca=((B|0)<0)<<31>>31;ba=((A|0)<0)<<31>>31;_=(I|0)!=0&(j|0)>2;fa=(j|0)<4;pa=la&255;ma=(y&1)<<1;la=ma|1;ta=1;oa=T;ra=0;Aa=16;while(1){qa=oa<<4;za=a[L+oa>>0]|0;wa=za&255;ya=a[N+oa>>0]|0;xa=ya&255;na=(oa|0)>0;if((oa|0)<(T|0)&na){if((wa|0)<(S|0))sa=d[w+(wa+1<<3)+xa>>0]|0;else sa=0;if((xa|0)<(S|0))sa=(d[xa+1+(w+(wa<<3))>>0]|0)+sa|0;Ba=c[s>>2]|0;Ba=(eb(Ba+224|0,Ba+(((sa|0)>1?1:sa)+l)|0)|0)&255;a[w+(wa<<3)+xa>>0]=Ba;ua=1}else{if(!((wa|0)==(P|0)&(xa|0)==(Q|0)))if(!(za<<24>>24))Ba=ya<<24>>24==0&1;else Ba=0;else Ba=1;a[w+(wa<<3)+xa>>0]=Ba;ua=0}qa=R-qa|0;sa=(oa|0)==(T|0);if(sa){a[t>>0]=qa+255;va=qa+ -2|0;qa=1}else{va=15;qa=0}if((wa|0)<(V|0))Ca=(a[w+(wa+1<<3)+xa>>0]|0)!=0&1;else Ca=0;if((xa|0)<(V|0))Ca=((a[xa+1+(w+(wa<<3))>>0]|0)!=0&1)<<1|Ca;do if(Ba<<24>>24!=0&(va|0)>-1){if(!(c[(c[r>>2]|0)+13100>>2]|0))if(Z){ya=600;za=W}else u=79;else if(ga){Ba=(a[z>>0]|0)!=0;if(Ba|Z){ya=Ba?664:600;za=Ba?aa:W}else u=79}else{ya=664;za=aa}do if((u|0)==79){u=0;Ba=(Ca<<4)+616|0;if(!y){ya=Ba;za=W+(X?9:12)|0;break}za=(ya|za)<<24>>24==0?W:Y;if(X){ya=Ba;za=za+k|0;break}else{ya=Ba;za=za+21|0;break}}while(0);if((va|0)>0){Ba=za+92|0;do{Pa=c[s>>2]|0;if(eb(Pa+224|0,Pa+(Ba+(d[ya+((d[O+va>>0]<<2)+(d[M+va>>0]|0))>>0]|0))|0)|0){a[t+(qa&255)>>0]=va;ua=0;qa=qa+1<<24>>24}va=va+ -1|0}while((va|0)>0)}if(ua){a[t+(qa&255)>>0]=0;ua=qa+1<<24>>24;break}if(c[(c[r>>2]|0)+13100>>2]|0)if(ga?(a[z>>0]|0)==0:0)u=93;else ua=da;else u=93;if((u|0)==93){u=0;ua=(oa|0)==0?ja:za+2|0}Pa=c[s>>2]|0;if((eb(Pa+224|0,Pa+(ua+92)|0)|0)==1){a[t+(qa&255)>>0]=0;ua=qa+1<<24>>24}else ua=qa}else ua=qa;while(0);qa=ua&255;a:do if(ua<<24>>24){ua=na?ea:0;if(!(c[(c[r>>2]|0)+13116>>2]|0))Ia=0;else{if(ga?(a[z>>0]|0)==0:0)ra=ma;else ra=la;Ia=(d[p+ra+199>>0]|0)>>>2}va=ua|(ta|0)==0&(sa^1)&1;Ga=a[t>>0]|0;ya=Ga&255;za=qa>>>0>8?8:qa;if(!za){sa=-1;ta=1}else{Ba=va<<2;sa=-1;ta=1;ua=0;do{Pa=ta+Ba|0;Oa=c[s>>2]|0;Pa=(eb(Oa+224|0,Oa+((U?Pa+16|0:Pa)+136)|0)|0)&255;a[v+ua>>0]=Pa;if(!(Pa<<24>>24))ta=((ta+ -1|0)>>>0<2&1)+ta|0;else{sa=(sa|0)==-1?ua:sa;ta=0}ua=ua+1|0}while((ua|0)<(za|0))}za=qa+ -1|0;ua=a[t+za>>0]|0;Ba=ua&255;b:do if(!(a[z>>0]|0)){do if((c[F>>2]|0)==1){if((c[(c[r>>2]|0)+13104>>2]|0)==0|ga){u=113;break}if(!ha){ya=0;break b}}else u=113;while(0);if((u|0)==113?(u=0,!ia):0){ya=0;break}ya=(ya-Ba|0)>3&1}else ya=0;while(0);if((sa|0)!=-1){Oa=c[s>>2]|0;Oa=eb(Oa+224|0,Oa+((U?va|4:va)|160)|0)|0;Pa=v+sa|0;a[Pa>>0]=(d[Pa>>0]|0)+Oa}va=(ya|0)==0;if((a[(c[ka>>2]|0)+4>>0]|0)==0|va){za=0;ya=0;do{ya=gb((c[s>>2]|0)+224|0)|0|ya<<1;za=za+1|0}while((za|0)<(qa|0));Ca=ya<<16-qa}else{ya=za&255;if(!((za&255)<<24>>24))Ba=0;else{za=0;Ba=0;do{Ba=gb((c[s>>2]|0)+224|0)|0|Ba<<1;za=za+1|0}while((za|0)<(ya|0))}Ca=Ba<<17-qa}wa=wa<<2;xa=xa<<2;ya=p+ra+199|0;za=0;Ja=0;Da=Aa;Ha=0;while(1){Aa=Ga&255;Ba=(d[M+Aa>>0]|0)+wa|0;Aa=(d[O+Aa>>0]|0)+xa|0;c:do if((za|0)<8){La=(d[v+za>>0]|0)+1|0;Pa=(za|0)==(sa|0);if((La|0)==((Pa?3:2)|0)&0==((Pa?0:0)|0))Ma=0;else{Ma=0;break}while(1){Na=Ma+1|0;if(!(gb((c[s>>2]|0)+224|0)|0)){u=128;break}if((Na|0)<31)Ma=Na;else{u=132;break}}do if((u|0)==128){u=0;if((Ma|0)>=3){Na=Ma;u=132;break}if((Ia|0)>0){Na=0;Oa=0;do{Oa=gb((c[s>>2]|0)+224|0)|0|Oa<<1;Na=Na+1|0}while((Na|0)!=(Ia|0))}else Oa=0;Na=Oa+(Ma<0){Oa=Ia+ -3+Na|0;Na=0;Pa=0;do{Pa=gb((c[s>>2]|0)+224|0)|0|Pa<<1;Na=Na+1|0}while((Na|0)!=(Oa|0))}else Pa=0;Na=Pa+((1<>31|0,La|0,0)|0;Ma=D;Oa=3<>31;Pa=c[(c[r>>2]|0)+13116>>2]|0;do if((Ma|0)>(Qa|0)|(Ma|0)==(Qa|0)&La>>>0>Oa>>>0){Oa=Ia+1|0;if(Pa){Ia=Oa;break}Ia=(Ia|0)>3?4:Oa;break c}while(0);if(!((Pa|0)!=0&(Ja|0)==0))break;Oa=a[ya>>0]|0;Ja=(Oa&255)>>>2;if((Na|0)>=(3<>0]=Oa+1<<24>>24;Ja=1;break}if((Na<<1|0)>=(1<>24==0){Ja=1;break}a[ya>>0]=Oa+ -1<<24>>24;Ja=1}else{La=0;while(1){Ma=La+1|0;if(!(gb((c[s>>2]|0)+224|0)|0)){u=146;break}if((Ma|0)<31)La=Ma;else{u=150;break}}do if((u|0)==146){u=0;if((La|0)>=3){Ma=La;u=150;break}if((Ia|0)>0){Ma=0;Na=0;do{Na=gb((c[s>>2]|0)+224|0)|0|Na<<1;Ma=Ma+1|0}while((Ma|0)!=(Ia|0))}else Na=0;Na=Na+(La<0){Ma=Ia+ -3+Ma|0;Na=0;Oa=0;do{Oa=gb((c[s>>2]|0)+224|0)|0|Oa<<1;Na=Na+1|0}while((Na|0)!=(Ma|0))}else Oa=0;Na=Oa+((1<>31;Pa=c[(c[r>>2]|0)+13116>>2]|0;do if((Na|0)>=(3<3?4:Oa;break c}while(0);if(!((Pa|0)!=0&(Ja|0)==0))break;Oa=a[ya>>0]|0;Ja=(Oa&255)>>>2;if((Na|0)>=(3<>0]=Oa+1<<24>>24;Ja=1;break}if((Na<<1|0)>=(1<>24==0){Ja=1;break}a[ya>>0]=Oa+ -1<<24>>24;Ja=1}while(0);do if(!((a[(c[ka>>2]|0)+4>>0]|0)==0|va)){Ha=gf(La|0,Ma|0,Ha|0,0)|0;if(Ga<<24>>24!=ua<<24>>24)break;Qa=(Ha&1|0)==0;Pa=ff(0,0,La|0,Ma|0)|0;La=Qa?La:Pa;Ma=Qa?Ma:D}while(0);Qa=(Ca&32768|0)==0;Ga=ff(0,0,La|0,Ma|0)|0;Ga=Qa?La:Ga;La=Qa?Ma:D;Ca=Ca<<1&131070;Ma=Ga&65535;do if(!(a[z>>0]|0)){do if(!((a[(c[r>>2]|0)+634>>0]|0)==0|_)){if(!((Aa|Ba|0)!=0|fa)){Da=pa;break}if((j|0)==3)Da=(Aa<<3)+Ba|0;else if((j|0)==4)Da=(Aa>>>1<<3)+(Ba>>>1)|0;else if((j|0)==5)Da=(Aa>>>2<<3)+(Ba>>>2)|0;else Da=(Aa<<2)+Ba|0;Da=d[E+Da>>0]|0}while(0);Ga=rf(Ga|0,La|0,B|0,ca|0)|0;Ga=rf(Ga|0,D|0,Da|0,((Da|0)<0)<<31>>31|0)|0;Ga=gf(Ga|0,D|0,A|0,ba|0)|0;Ga=ef(Ga|0,D|0,H|0)|0;La=D;if((La|0)<0){Ma=(Ga&-32768|0)==-32768&(La&268435455|0)==268435455?Ga&65535:-32768;break}else{Ma=La>>>0>0|(La|0)==0&Ga>>>0>32767?32767:Ga&65535;break}}while(0);b[h+((Aa<>1]=Ma;za=za+1|0;if((za|0)>=(qa|0)){Aa=Da;break a}Ga=a[t+za>>0]|0}}while(0);if(na)oa=oa+ -1|0;else break}}do if(!(a[z>>0]|0)){if(I){if(((j|0)==2?(c[(c[r>>2]|0)+13096>>2]|0)!=0:0)?(c[F>>2]|0)==1:0){s=0;do{Oa=h+(15-s<<1)|0;Pa=b[Oa>>1]|0;Qa=h+(s<<1)|0;b[Oa>>1]=b[Qa>>1]|0;b[Qa>>1]=Pa;s=s+1|0}while((s|0)!=8)}s=j&65535;Fa[c[f+5872>>2]&15](h,s);if(!G){if(!(c[(c[r>>2]|0)+13104>>2]|0))break;if((c[F>>2]|0)!=1)break;if((x&-17|0)!=10)break;C=(x|0)==26&1}Ka[c[f+5876>>2]&7](h,s,C);break}if(y&(c[F>>2]|0)==1&(j|0)==2){Ea[c[f+5880>>2]&7](h);break}r=(J|0)>(K|0)?J:K;if(!r){Ea[c[f+(j+ -2<<2)+5900>>2]&7](h);break}s=K+4+J|0;do if((r|0)>=4){if((r|0)<8){s=(s|0)<8?s:8;break}if((r|0)<12)s=(s|0)<24?s:24}else s=(s|0)<4?s:4;while(0);Fa[c[f+(j+ -2<<2)+5884>>2]&15](h,s)}else{r=(c[(c[r>>2]|0)+13104>>2]|0)==0;if(!G){if(r)break;if((x&-17|0)==10)u=185;else break}else if(!r)u=185;if((u|0)==185)C=(x|0)==26&1;Ka[c[f+5876>>2]&7](h,j&65535,C)}while(0);if(!(a[p+304>>0]|0)){Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}if((q|0)<=0){Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}p=c[p+284>>2]|0;r=0;do{Qa=h+(r<<1)|0;b[Qa>>1]=(($(b[g+(r<<1)>>1]|0,p)|0)>>>3)+(e[Qa>>1]|0);r=r+1|0}while((r|0)!=(q|0));Qa=j+ -2|0;Qa=f+(Qa<<2)+5856|0;Qa=c[Qa>>2]|0;Ka[Qa&7](o,h,n);i=m;return}function Mb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;f=i;e=a+136|0;a=c[e>>2]|0;d=eb(a+224|0,a+31|0)|0;g=c[e>>2]|0;g=eb(g+224|0,g+31|0)|0;if(!d)d=0;else{l=c[e>>2]|0;d=(eb(l+224|0,l+34|0)|0)+d|0}if(!g)g=0;else{l=c[e>>2]|0;g=(eb(l+224|0,l+34|0)|0)+g|0}if((d|0)==2){j=1;k=2;while(1){if(!(gb((c[e>>2]|0)+224|0)|0)){d=7;break}k=(1<=31){d=9;break}}if((d|0)==7){h=c[e>>2]|0;l=h+224|0;if(!j)j=l;else{h=l;d=10}}else if((d|0)==9){h=(c[e>>2]|0)+224|0;d=10}if((d|0)==10)while(1){j=j+ -1|0;k=((gb(h)|0)<>2]|0;d=h+224|0;if(!j){j=d;break}else{h=d;d=10}}d=c[j>>2]<<1;c[j>>2]=d;if(!(d&65534)){Nb(j);d=c[j>>2]|0}m=c[h+228>>2]<<17;h=d-m|0;l=h>>31;c[j>>2]=(l&m)+h;b[a+31272>>1]=(l^0-k)-l}else if((d|0)==1){h=c[e>>2]|0;d=h+224|0;j=c[d>>2]<<1;c[d>>2]=j;if(!(j&65534)){Nb(d);j=c[d>>2]|0}k=c[h+228>>2]<<17;l=j-k|0;m=l>>31;c[d>>2]=(m&k)+l;b[a+31272>>1]=(m^65535)-m}else if(!d)b[a+31272>>1]=0;if(!g){b[a+31274>>1]=0;i=f;return}else if((g|0)==2){h=1;j=2;while(1){if(!(gb((c[e>>2]|0)+224|0)|0)){d=20;break}j=(1<=31){d=22;break}}if((d|0)==20){k=c[e>>2]|0;g=k+224|0;if(!h)e=k;else d=23}else if((d|0)==22){g=(c[e>>2]|0)+224|0;d=23}if((d|0)==23)while(1){h=h+ -1|0;j=((gb(g)|0)<>2]|0;g=d+224|0;if(!h){e=d;break}else d=23}d=c[g>>2]<<1;c[g>>2]=d;if(!(d&65534)){Nb(g);d=c[g>>2]|0}k=c[e+228>>2]<<17;l=d-k|0;m=l>>31;c[g>>2]=(m&k)+l;b[a+31274>>1]=(m^0-j)-m;i=f;return}else if((g|0)==1){d=c[e>>2]|0;e=d+224|0;g=c[e>>2]<<1;c[e>>2]=g;if(!(g&65534)){Nb(e);g=c[e>>2]|0}k=c[d+228>>2]<<17;l=g-k|0;m=l>>31;c[e>>2]=(m&k)+l;b[a+31274>>1]=(m^65535)-m;i=f;return}else{i=f;return}}function Nb(a){a=a|0;var b=0,e=0,f=0;b=i;f=a+16|0;e=c[f>>2]|0;c[a>>2]=(c[a>>2]|0)+ -65535+((d[e+1>>0]|0)<<1|(d[e>>0]|0)<<9);if(e>>>0>=(c[a+20>>2]|0)>>>0){i=b;return}c[f>>2]=e+2;i=b;return}function Ob(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;h=b+136|0;n=c[h>>2]|0;g=b+200|0;j=c[g>>2]|0;m=c[j+13080>>2]|0;q=(1<>2]|0)+24>>2]|0);o=m&d;p=m&e;k=c[j+13140>>2]|0;j=c[j+13064>>2]|0;l=o>>j;j=p>>j;if(!(q&d))o=0;else o=(o&q|0)!=0;if(!(q&e))p=0;else p=(p&q|0)!=0;q=n+203|0;if((a[q>>0]|0)==0?(m&(e|d)|0)!=0:0)d=c[n+276>>2]|0;else{a[q>>0]=(a[n+300>>0]|0)==0&1;d=a[b+3100>>0]|0}if(o){e=l+ -1+($(j,k)|0)|0;e=a[(c[b+7568>>2]|0)+e>>0]|0}else e=d;if(p){d=($(j+ -1|0,k)|0)+l|0;d=a[(c[b+7568>>2]|0)+d>>0]|0}b=e+1+d>>1;h=c[h>>2]|0;j=c[h+280>>2]|0;if(!j){a[h+272>>0]=b;i=f;return}g=c[(c[g>>2]|0)+13192>>2]|0;b=j+52+b+(g<<1)|0;if((b|0)>0)j=b;else j=-52-g+1+b|0;a[h+272>>0]=b-g-j+((j|0)%(g+52|0)|0);i=f;return}function Pb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;k=i;t=c[b+136>>2]|0;r=b+200|0;v=c[r>>2]|0;g=c[v+13084>>2]|0;p=c[v+13072>>2]|0;h=c[v+13156>>2]|0;l=c[v+13148>>2]|0;o=b+3508|0;u=c[o>>2]|0;j=c[u+16>>2]|0;q=$(h,e>>g)|0;m=d>>g;n=(a[j+((q+m|0)*12|0)+10>>0]|0)==0;do if((e|0)>0&(e&7|0)==0){if(((a[b+3050>>0]|0)==0?(c[t+31312>>2]&4|0)!=0:0)?((e|0)%(1<>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(w=c[t+31312>>2]|0,(w&8|0)!=0):0){if(!((e|0)%(1<>2]|0)|0))break}else w=c[t+31312>>2]|0;if(!(w&4)){u=c[u+20>>2]|0;x=e+ -1|0}else{x=e+ -1|0;u=qc(b,u,d,x)|0}w=1<0){v=$(h,x>>g)|0;B=$(l,x>>p)|0;A=b+7596|0;C=$(l,e>>p)|0;x=b+5840|0;y=b+7572|0;D=0;do{z=D+d|0;J=z>>g;G=z>>p;I=J+v|0;E=j+(I*12|0)|0;J=J+q|0;F=j+(J*12|0)|0;K=c[A>>2]|0;H=a[K+(G+B)>>0]|0;G=a[K+(G+C)>>0]|0;if((a[j+(J*12|0)+10>>0]|0)!=0?(a[j+(I*12|0)+10>>0]|0)!=0:0)if(!((G|H)<<24>>24))E=(Qb(b,F,E,u)|0)&255;else E=1;else E=2;K=($(c[x>>2]|0,e)|0)+z>>2;a[(c[y>>2]|0)+K>>0]=E;D=D+4|0}while((D|0)<(w|0))}}while(0);do if((d|0)>0&(d&7|0)==0){if(((a[b+3050>>0]|0)==0?(c[t+31312>>2]&1|0)!=0:0)?((d|0)%(1<>2]|0)+13080>>2]|0)|0|0)==0:0)break;if((a[(c[b+204>>2]|0)+53>>0]|0)==0?(s=c[t+31312>>2]|0,(s&2|0)!=0):0){if(!((d|0)%(1<>2]|0)+13080>>2]|0)|0))break}else s=c[t+31312>>2]|0;q=c[o>>2]|0;if(!(s&1)){r=c[q+20>>2]|0;s=d+ -1|0}else{s=d+ -1|0;r=qc(b,q,s,e)|0}q=s>>g;w=s>>p;x=d>>p;z=1<0){v=b+7596|0;y=b+5840|0;u=b+7576|0;t=0;do{s=t+e|0;J=$(s>>g,h)|0;K=J+q|0;A=j+(K*12|0)|0;J=J+m|0;B=j+(J*12|0)|0;C=$(s>>p,l)|0;I=c[v>>2]|0;D=a[I+(C+w)>>0]|0;C=a[I+(C+x)>>0]|0;if((a[j+(J*12|0)+10>>0]|0)!=0?(a[j+(K*12|0)+10>>0]|0)!=0:0)if(!((C|D)<<24>>24))A=(Qb(b,B,A,r)|0)&255;else A=1;else A=2;K=($(c[y>>2]|0,s)|0)+d>>2;a[(c[u>>2]|0)+K>>0]=A;t=t+4|0}while((t|0)<(z|0))}}while(0);if((g|0)>=(f|0)|n){i=k;return}l=c[(c[o>>2]|0)+20>>2]|0;m=1<8;if(f){q=b+5840|0;r=b+7572|0;s=8;do{n=s+e|0;t=$(n+ -1>>g,h)|0;o=$(n>>g,h)|0;p=0;do{K=p+d|0;J=K>>g;J=(Qb(b,j+((J+o|0)*12|0)|0,j+((J+t|0)*12|0)|0,l)|0)&255;K=($(c[q>>2]|0,n)|0)+K>>2;a[(c[r>>2]|0)+K>>0]=J;p=p+4|0}while((p|0)<(m|0));s=s+8|0}while((s|0)<(m|0))}if((m|0)<=0){i=k;return}n=b+5840|0;o=b+7576|0;p=0;do{q=p+e|0;if(f){r=$(q>>g,h)|0;s=8;do{K=s+d|0;J=(Qb(b,j+(((K>>g)+r|0)*12|0)|0,j+(((K+ -1>>g)+r|0)*12|0)|0,l)|0)&255;K=($(c[n>>2]|0,q)|0)+K>>2;a[(c[o>>2]|0)+K>>0]=J;s=s+8|0}while((s|0)<(m|0))}p=p+4|0}while((p|0)<(m|0));i=k;return}function Qb(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;m=a[e+10>>0]|0;k=a[f+10>>0]|0;l=k<<24>>24==3;if(m<<24>>24!=3){if(l){m=1;i=h;return m|0}if(!(m&1)){l=e+4|0;j=e+6|0;e=(c[(c[d+3508>>2]|0)+20>>2]|0)+(a[e+9>>0]<<2)+260|0}else{l=e;j=e+2|0;e=(c[(c[d+3508>>2]|0)+20>>2]|0)+(a[e+8>>0]<<2)+64|0}if(!(k&1)){k=f+4|0;d=f+6|0;f=g+(a[f+9>>0]<<2)+260|0}else{k=f;d=f+2|0;f=g+(a[f+8>>0]<<2)+64|0}if((c[e>>2]|0)!=(c[f>>2]|0)){m=1;i=h;return m|0}m=(b[l>>1]|0)-(b[k>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[j>>1]|0)-(b[d>>1]|0)|0;m=(((m|0)>-1?m:0-m|0)|0)>3&1;i=h;return m|0}if(!l){m=1;i=h;return m|0}l=c[(c[d+3508>>2]|0)+20>>2]|0;k=c[l+(a[e+8>>0]<<2)+64>>2]|0;d=c[g+(a[f+8>>0]<<2)+64>>2]|0;m=(k|0)==(d|0);a:do if(m){do if((k|0)==(c[l+(a[e+9>>0]<<2)+260>>2]|0)){if((k|0)!=(c[g+(a[f+9>>0]<<2)+260>>2]|0))if(m)break;else{j=16;break a}g=b[f>>1]|0;j=b[e>>1]|0;m=g-j|0;if(!((((((m|0)>-1?m:0-m|0)|0)<=3?(m=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)?(m=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)?(m=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0,(((m|0)>-1?m:0-m|0)|0)<=3):0)){m=(b[f+4>>1]|0)-j|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=g-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}}m=0;i=h;return m|0}while(0);g=c[g+(a[f+9>>0]<<2)+260>>2]|0;if((g|0)==(c[l+(a[e+9>>0]<<2)+260>>2]|0)){m=(b[f>>1]|0)-(b[e>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+4>>1]|0)-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}else{m=(b[f+6>>1]|0)-(b[e+6>>1]|0)|0;i=h;return(((m|0)>-1?m:0-m|0)|0)>3|0}}}else j=16;while(0);if((j|0)==16)g=c[g+(a[f+9>>0]<<2)+260>>2]|0;if((g|0)!=(k|0)){m=1;i=h;return m|0}if((d|0)!=(c[l+(a[e+9>>0]<<2)+260>>2]|0)){m=1;i=h;return m|0}m=(b[f+4>>1]|0)-(b[e>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+6>>1]|0)-(b[e+2>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f>>1]|0)-(b[e+4>>1]|0)|0;if((((m|0)>-1?m:0-m|0)|0)>3){m=1;i=h;return m|0}m=(b[f+2>>1]|0)-(b[e+6>>1]|0)|0;m=(((m|0)>-1?m:0-m|0)|0)>3&1;i=h;return m|0}function Rb(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0;j=i;i=i+32|0;o=j+8|0;w=j;n=j+18|0;r=j+16|0;l=e+200|0;J=c[l>>2]|0;u=c[J+13120>>2]|0;k=(u-h|0)<=(f|0);b[n>>1]=0;b[r>>1]=0;v=c[J+13080>>2]|0;t=1<>v,c[J+13128>>2]|0)|0)+(f>>v)|0;s=c[e+3496>>2]|0;m=c[s+(v<<3)+4>>2]|0;x=c[s+(v<<3)>>2]|0;if((c[J+68>>2]|0)!=0?(a[J+13056>>0]|0)!=0:0)p=1;else p=(a[(c[e+204>>2]|0)+40>>0]|0)!=0;q=(f|0)!=0;if(q){v=v+ -1|0;y=c[s+(v<<3)>>2]|0;v=c[s+(v<<3)+4>>2]|0}else{y=0;v=0}s=t+f|0;s=(s|0)>(u|0)?u:s;t=t+g|0;z=c[J+13124>>2]|0;t=(t|0)>(z|0)?z:t;z=(s|0)==(u|0)?s:s+ -8|0;u=(t|0)>(g|0);if(u){J=q?f:8;M=(J|0)<(s|0);P=q?f+ -8|0:0;E=e+5840|0;O=e+7572|0;H=e+7568|0;B=w+4|0;C=e+160|0;D=n+1|0;Q=r+1|0;K=e+7544|0;L=e+7528|0;I=e+7576|0;F=e+7548|0;G=e+7532|0;A=(P|0)>=(z|0);T=x;S=m;N=g;do{if(M){R=N+4|0;W=S+ -2&-2;U=J;do{Z=c[E>>2]|0;ba=($(Z,N)|0)+U>>2;_=c[I>>2]|0;ba=a[_+ba>>0]|0;ca=ba&255;Z=a[_+(($(Z,R)|0)+U>>2)>>0]|0;_=Z&255;ba=ba<<24>>24!=0;Z=Z<<24>>24==0;do if(!(Z&(ba^1))){V=U+ -1|0;X=c[l>>2]|0;aa=c[X+13064>>2]|0;Y=$(N>>aa,c[X+13140>>2]|0)|0;da=c[H>>2]|0;aa=(a[da+(Y+(V>>aa))>>0]|0)+1+(a[da+(Y+(U>>aa))>>0]|0)>>1;Y=aa+T|0;if((Y|0)<0)Y=0;else Y=(Y|0)>51?51:Y;Y=d[1280+Y>>0]|0;if(ba){ba=(ca<<1)+W+aa|0;if((ba|0)<0)ba=0;else ba=(ba|0)>53?53:ba;ba=d[1336+ba>>0]|0}else ba=0;c[w>>2]=ba;if(Z)Z=0;else{Z=(_<<1)+W+aa|0;if((Z|0)<0)Z=0;else Z=(Z|0)>53?53:Z;Z=d[1336+Z>>0]|0}c[B>>2]=Z;ca=c[C>>2]|0;Z=c[ca+32>>2]|0;da=$(Z,N)|0;X=(c[ca>>2]|0)+((U<>2])+da)|0;if(p){a[n>>0]=Wb(e,V,N)|0;a[D>>0]=Wb(e,V,R)|0;a[r>>0]=Wb(e,U,N)|0;a[Q>>0]=Wb(e,U,R)|0;Na[c[F>>2]&3](X,Z,Y,w,n,r);break}else{Na[c[G>>2]&3](X,Z,Y,w,n,r);break}}while(0);U=U+8|0}while((U|0)<(s|0))}if(!((N|0)==0|A)){R=N+ -1|0;V=S;S=P;do{Y=$(c[E>>2]|0,N)|0;Z=c[O>>2]|0;aa=a[Z+(Y+S>>2)>>0]|0;ba=aa&255;U=S+4|0;Y=a[Z+(Y+U>>2)>>0]|0;Z=Y&255;aa=aa<<24>>24!=0;Y=Y<<24>>24==0;do if(!(Y&(aa^1))){W=c[l>>2]|0;V=c[W+13064>>2]|0;_=S>>V;T=c[W+13140>>2]|0;da=($(R>>V,T)|0)+_|0;X=c[H>>2]|0;_=(a[X+da>>0]|0)+1+(a[X+(($(N>>V,T)|0)+_)>>0]|0)>>1;T=(S|0)>=(f|0);V=T?m:v;T=T?x:y;X=_+T|0;if((X|0)<0)X=0;else X=(X|0)>51?51:X;X=d[1280+X>>0]|0;if(aa){aa=(ba<<1)+(V+ -2&-2)+_|0;if((aa|0)<0)aa=0;else aa=(aa|0)>53?53:aa;aa=d[1336+aa>>0]|0}else aa=0;c[w>>2]=aa;if(Y)Y=0;else{Y=(Z<<1)+(V+ -2&-2)+_|0;if((Y|0)<0)Y=0;else Y=(Y|0)>53?53:Y;Y=d[1336+Y>>0]|0}c[B>>2]=Y;ca=c[C>>2]|0;Y=c[ca+32>>2]|0;da=$(Y,N)|0;W=(c[ca>>2]|0)+((S<>2])+da)|0;if(p){a[n>>0]=Wb(e,S,R)|0;a[D>>0]=Wb(e,U,R)|0;a[r>>0]=Wb(e,S,N)|0;a[Q>>0]=Wb(e,U,N)|0;Na[c[K>>2]&3](W,Y,X,w,n,r);break}else{Na[c[L>>2]&3](W,Y,X,w,n,r);break}}while(0);S=S+8|0}while((S|0)<(z|0));S=V}N=N+8|0}while((N|0)<(t|0));J=c[l>>2]|0}else S=m;if(c[J+4>>2]|0){C=q?v:m;F=e+5840|0;D=e+7572|0;v=e+7568|0;x=o+4|0;w=e+160|0;B=n+1|0;A=r+1|0;G=e+7552|0;E=e+7536|0;H=e+7576|0;z=e+7556|0;y=e+7540|0;I=1;do{O=1<>2];P=1<>2];if(u){N=O<<3;L=q?f:N;K=(L|0)<(s|0);J=P<<3;M=q?f-N|0:0;O=O<<2;P=P<<2;Q=g;do{if(K){R=Q+P|0;T=L;do{W=c[F>>2]|0;Y=($(W,Q)|0)+T>>2;da=c[H>>2]|0;Y=(a[da+Y>>0]|0)==2;W=(a[da+(($(W,R)|0)+T>>2)>>0]|0)==2;do if(Y|W){U=T+ -1|0;V=c[l>>2]|0;da=c[V+13064>>2]|0;_=U>>da;X=c[V+13140>>2]|0;Z=$(Q>>da,X)|0;aa=c[v>>2]|0;ba=T>>da;X=$(R>>da,X)|0;X=(a[aa+(X+_)>>0]|0)+1+(a[aa+(X+ba)>>0]|0)>>1;if(Y)Y=Xb(e,(a[aa+(Z+ba)>>0]|0)+1+(a[aa+(Z+_)>>0]|0)>>1,I,S)|0;else Y=0;c[o>>2]=Y;if(W)W=Xb(e,X,I,S)|0;else W=0;c[x>>2]=W;ca=c[w>>2]|0;W=c[ca+(I<<2)+32>>2]|0;da=$(W,Q>>c[V+(I<<2)+13180>>2])|0;V=(c[ca+(I<<2)>>2]|0)+((T>>c[V+(I<<2)+13168>>2]<>2])+da)|0;if(p){a[n>>0]=Wb(e,U,Q)|0;a[B>>0]=Wb(e,U,R)|0;a[r>>0]=Wb(e,T,Q)|0;a[A>>0]=Wb(e,T,R)|0;Da[c[z>>2]&3](V,W,o,n,r);break}else{Da[c[y>>2]&3](V,W,o,n,r);break}}while(0);T=T+N|0}while((T|0)<(s|0))}if(Q){U=s-((s|0)==(c[(c[l>>2]|0)+13120>>2]|0)?0:N)|0;if((M|0)<(U|0)){T=Q+ -1|0;S=M;do{W=$(c[F>>2]|0,Q)|0;da=c[D>>2]|0;R=S+O|0;X=(a[da+(W+S>>2)>>0]|0)==2;W=(a[da+(W+R>>2)>>0]|0)==2;do if(X|W){if(X){da=c[l>>2]|0;ca=c[da+13064>>2]|0;Y=S>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+Y|0;ba=c[v>>2]|0;Y=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+Y)>>0]|0)>>1}else Y=0;if(W){da=c[l>>2]|0;ca=c[da+13064>>2]|0;V=R>>ca;da=c[da+13140>>2]|0;aa=($(T>>ca,da)|0)+V|0;ba=c[v>>2]|0;V=(a[ba+aa>>0]|0)+1+(a[ba+(($(Q>>ca,da)|0)+V)>>0]|0)>>1}else V=0;if(X)X=Xb(e,Y,I,C)|0;else X=0;c[o>>2]=X;if(W)V=Xb(e,V,I,m)|0;else V=0;c[x>>2]=V;da=c[l>>2]|0;ca=c[w>>2]|0;V=c[ca+(I<<2)+32>>2]|0;W=$(V,Q>>c[da+13184>>2])|0;W=(c[ca+(I<<2)>>2]|0)+((S>>c[da+13172>>2]<>2])+W)|0;if(p){a[n>>0]=Wb(e,S,T)|0;a[B>>0]=Wb(e,R,T)|0;a[r>>0]=Wb(e,S,Q)|0;a[A>>0]=Wb(e,R,Q)|0;Da[c[G>>2]&3](W,V,o,n,r);break}else{Da[c[E>>2]&3](W,V,o,n,r);break}}while(0);S=S+N|0}while((S|0)<(U|0));S=C}else S=C}Q=Q+J|0}while((Q|0)<(t|0))}I=I+1|0;J=c[l>>2]|0}while((I|0)!=3)}if(!(a[J+12941>>0]|0)){if((a[e+140>>0]&1)==0|k^1){i=j;return}i=j;return}n=(c[J+13124>>2]|0)-h|0;l=(g|0)==0;m=(f|0)==0;if(!(l|m))Sb(e,f-h|0,g-h|0);n=(n|0)>(g|0);if(!(m|n))Sb(e,f-h|0,g);k=k^1;!(l|k)?(Sb(e,f,g-h|0),(a[e+140>>0]&1)!=0):0;if(n|k){i=j;return}Sb(e,f,g);if(!(a[e+140>>0]&1)){i=j;return}i=j;return}function Sb(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;v=i;i=i+48|0;j=v+24|0;h=v+42|0;u=v+40|0;r=v+16|0;n=v+8|0;m=v;k=e+200|0;S=c[k>>2]|0;s=c[S+13080>>2]|0;q=f>>s;s=g>>s;D=S+13128|0;p=($(s,c[D>>2]|0)|0)+q|0;L=c[e+204>>2]|0;N=L+1668|0;M=c[(c[N>>2]|0)+(p<<2)>>2]|0;l=e+3492|0;o=c[l>>2]|0;t=o+(p*148|0)|0;b[h>>1]=0;b[u>>1]=0;c[r>>2]=0;E=($(c[D>>2]|0,s)|0)+q|0;E=a[(c[e+7604>>2]|0)+E>>0]|0;if((a[L+42>>0]|0)!=0?(a[L+53>>0]|0)==0:0){R=1;O=1}else{R=E<<24>>24==0&1;O=0}G=(q|0)==0;c[j>>2]=G&1;I=(s|0)==0;A=j+4|0;c[A>>2]=I&1;H=(q|0)==((c[D>>2]|0)+ -1|0);z=j+8|0;c[z>>2]=H&1;F=(s|0)==((c[S+13132>>2]|0)+ -1|0);w=j+12|0;c[w>>2]=F&1;if(R<<24>>24){if(G)J=0;else{if(O){J=c[L+1676>>2]|0;J=(c[J+(M<<2)>>2]|0)!=(c[J+(c[(c[N>>2]|0)+(p+ -1<<2)>>2]<<2)>>2]|0)&1}else J=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+7580>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+ -1+pa<<2)>>2]|0)):0)K=1;else K=J;a[h>>0]=K}if(H)K=0;else{if(O){K=c[L+1676>>2]|0;K=(c[K+(M<<2)>>2]|0)!=(c[K+(c[(c[N>>2]|0)+(p+1<<2)>>2]<<2)>>2]|0)&1}else K=0;if(E<<24>>24==0?(pa=$(c[D>>2]|0,s)|0,oa=c[e+7580>>2]|0,(c[oa+(pa+q<<2)>>2]|0)!=(c[oa+(q+1+pa<<2)>>2]|0)):0)P=1;else P=K;a[h+1>>0]=P}if(I)P=0;else{if(O){P=c[L+1676>>2]|0;P=(c[P+(M<<2)>>2]|0)!=(c[P+(c[(c[N>>2]|0)+(p-(c[D>>2]|0)<<2)>>2]<<2)>>2]|0)&1}else P=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+7580>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+ -1|0)|0)+q<<2)>>2]|0)):0)Q=1;else Q=P;a[u>>0]=Q}if(F)L=0;else{if(O){L=c[L+1676>>2]|0;L=(c[L+(M<<2)>>2]|0)!=(c[L+(c[(c[N>>2]|0)+((c[D>>2]|0)+p<<2)>>2]<<2)>>2]|0)&1}else L=0;if(E<<24>>24==0?(pa=c[D>>2]|0,na=($(pa,s)|0)+q|0,oa=c[e+7580>>2]|0,(c[oa+(na<<2)>>2]|0)!=(c[oa+(($(pa,s+1|0)|0)+q<<2)>>2]|0)):0)M=1;else M=L;a[u+1>>0]=M}if(!G)if(I)B=47;else{if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=38;else M=1}else if(!(J<<24>>24))B=38;else M=1;if((B|0)==38)M=P<<24>>24!=0&1;a[r>>0]=M;B=40}else B=40;if((B|0)==40)if(!I){if(!H){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+ -1|0)|0)<<2)>>2]|0):0)B=45;else I=1}else if(!(K<<24>>24))B=45;else I=1;if((B|0)==45)I=P<<24>>24!=0&1;a[r+1>>0]=I;B=47}}else B=47;if((B|0)==47?!(H|F):0){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(K<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=51;else H=1}else if(!(K<<24>>24))B=51;else H=1;if((B|0)==51)H=L<<24>>24!=0&1;a[r+2>>0]=H}if(!(G|F)){if(!(E<<24>>24)){pa=c[D>>2]|0;na=($(pa,s)|0)+q|0;oa=c[e+7580>>2]|0;if(J<<24>>24==0?(c[oa+(na<<2)>>2]|0)==(c[oa+(q+ -1+($(pa,s+1|0)|0)<<2)>>2]|0):0)B=57;else D=1}else if(!(J<<24>>24))B=57;else D=1;if((B|0)==57)D=L<<24>>24!=0&1;a[r+3>>0]=D}}O=(c[S+4>>2]|0)!=0?3:1;I=e+160|0;H=e+168|0;P=e+5916|0;J=s<<1;G=J+ -1|0;D=n+4|0;E=s+ -1|0;Q=q+1|0;L=q+ -1|0;J=J+2|0;F=m+4|0;K=s+1|0;N=q<<1;M=N+ -1|0;N=N+2|0;R=e+((R&255)<<2)+5920|0;na=S;Y=0;while(1){ka=c[na+(Y<<2)+13168>>2]|0;_=f>>ka;ha=c[na+(Y<<2)+13180>>2]|0;Z=g>>ha;ba=c[I>>2]|0;S=c[ba+(Y<<2)+32>>2]|0;U=1<>2];X=U>>ka;W=U>>ha;ka=c[na+13120>>2]>>ka;ca=ka-_|0;X=(X|0)>(ca|0)?ca:X;ha=c[na+13124>>2]>>ha;ca=ha-Z|0;W=(W|0)>(ca|0)?ca:W;ca=$(S,Z)|0;ga=c[na+56>>2]|0;ca=(_<>2]|0;aa=ba+ca|0;U=U+2<>2]|0;fa=1<>0]|0;if((ia|0)==1){ea=X<0){da=V;ba=0;ca=aa;while(1){mf(da|0,ca|0,ea|0)|0;ba=ba+1|0;if((ba|0)==(W|0))break;else{da=da+U|0;ca=ca+S|0}}}Ub(e,aa,S,_,Z,X,W,Y,q,s);Ha[c[P>>2]&1](aa,V,S,U,t,j,X,W,Y);Vb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}else if((ia|0)==2){ja=c[j>>2]|0;ia=c[z>>2]|0;la=c[w>>2]|0;do if(!(c[A>>2]|0)){pa=1-ja|0;oa=pa<>2]=ba+(ca-S-oa);c[D>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,G)|0)+_-pa<>2]|0,E)|0)|0;pa=c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[oa>>0]=a[pa>>0]|0;na=c[k>>2]|0;oa=fa;break}else{b[oa>>1]=b[pa>>1]|0;oa=fa;break}}else oa=0;while(0);pa=($(c[na+13128>>2]|0,E)|0)+q|0;na=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+oa|0,na|0)|0;if((ia|0)!=1){na=oa+na|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)|0;ma=da+(na+ma)|0;na=(c[n+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+na|0;if(!ga){a[ma>>0]=a[na>>0]|0;break}else{b[ma>>1]=b[na>>1]|0;break}}}while(0);do if(!la){pa=1-ja|0;oa=pa<>2]=ba+(($(W,S)|0)+ca-oa);c[F>>2]=(c[e+(Y<<2)+172>>2]|0)+(($(ka,J)|0)+_-pa<>2]|0)+13128>>2]|0,K)|0)|0;ma=c[m+(((a[(c[l>>2]|0)+(ma*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0;if(!ga){a[ka>>0]=a[ma>>0]|0;ka=fa;break}else{b[ka>>1]=b[ma>>1]|0;ka=fa;break}}else ka=0;while(0);pa=($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)+q|0;ma=X<>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0,ma|0)|0;if((ia|0)!=1){ka=ka+ma|0;pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,K)|0)|0;la=da+(ka+la)|0;ka=(c[m+(((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3&1)<<2)>>2]|0)+ka|0;if(!ga){a[la>>0]=a[ka>>0]|0;break}else{b[la>>1]=b[ka>>1]|0;break}}}while(0);do if(!ja){pa=L+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){la=da+U|0;ja=(c[e+(Y<<2)+184>>2]|0)+(($(ha,M)|0)+Z<0;if(!ga){if(ka)ka=0;else{ja=0;break}while(1){a[la>>0]=a[ja>>0]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}else{if(ka)ka=0;else{ja=0;break}while(1){b[la>>1]=b[ja>>1]|0;ka=ka+1|0;if((ka|0)==(W|0)){ja=0;break}else{la=la+U|0;ja=ja+fa|0}}}}else ja=1}else ja=0;while(0);do if(!ia){pa=Q+($(c[(c[k>>2]|0)+13128>>2]|0,s)|0)|0;if((a[(c[l>>2]|0)+(pa*148|0)+Y+142>>0]|0)==3){ia=da+((X<>2]|0)+(($(ha,N)|0)+Z<0;if(!ga){if(ka)B=0;else break;while(1){a[ia>>0]=a[ha>>0]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}else{if(ka)B=0;else break;while(1){b[ia>>1]=b[ha>>1]|0;B=B+1|0;if((B|0)==(W|0)){C=0;B=96;break}else{ia=ia+U|0;ha=ha+fa|0}}}}else{C=1;B=96}}else{C=0;B=96}while(0);if((B|0)==96?(B=0,x=ja<0):0){ea=da+(ea-x)|0;da=0;ba=ba+(ca-x)|0;while(1){mf(ea|0,ba|0,y|0)|0;da=da+1|0;if((da|0)==(W|0))break;else{ea=ea+U|0;ba=ba+S|0}}}Ub(e,aa,S,_,Z,X,W,Y,q,s);Ia[c[R>>2]&3](aa,V,S,U,t,j,X,W,Y,h,u,r);Vb(e,aa,V,S,U,f,g,X,W,Y);a[T>>0]=3}Y=Y+1|0;if((Y|0)>=(O|0))break;na=c[k>>2]|0}i=v;return}function Tb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;h=c[a+200>>2]|0;k=((c[h+13120>>2]|0)-e|0)>(b|0);h=((c[h+13124>>2]|0)-e|0)>(d|0);j=(d|0)==0;g=(b|0)==0;if(!(j|g))Rb(a,b-e|0,d-e|0,e);if(!(j|k))Rb(a,b,d-e|0,e);if(g|h){i=f;return}Rb(a,b-e|0,d,e);i=f;return}function Ub(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;q=c[d+200>>2]|0;p=c[q+56>>2]|0;s=c[q+13120>>2]>>c[q+(l<<2)+13168>>2];q=c[q+13124>>2]>>c[q+(l<<2)+13180>>2];u=d+(l<<2)+172|0;t=n<<1;r=j<>2]|0)+(($(s,t)|0)+g<>2]|0)+(($(s,t|1)|0)+g<>2]|0;l=m<<1;t=r+(($(q,l)|0)+h<0;if(n){if(g){r=t;t=0;s=e;while(1){a[r>>0]=a[s>>0]|0;t=t+1|0;if((t|0)==(k|0))break;else{r=r+m|0;s=s+f|0}}r=c[d>>2]|0}}else if(g){d=0;s=e;while(1){b[t>>1]=b[s>>1]|0;d=d+1|0;if((d|0)==(k|0))break;else{t=t+m|0;s=s+f|0}}}h=r+(($(q,l|1)|0)+h<>0]=a[j>>0]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}else{if(g)p=0;else{i=o;return}while(1){b[h>>1]=b[j>>1]|0;p=p+1|0;if((p|0)==(k|0))break;else{h=h+m|0;j=j+f|0}}i=o;return}}function Vb(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;n=i;t=c[b+200>>2]|0;if(!(a[(c[b+204>>2]|0)+40>>0]|0)){if(!(a[t+13056>>0]|0)){i=n;return}if(!(c[t+68>>2]|0)){i=n;return}}p=b+200|0;C=c[t+13084>>2]|0;v=1<>2]|0;s=c[t+(m<<2)+13180>>2]|0;m=h>>C;z=j>>C;k=k+h>>C;l=l+j>>C;t=v>>o<>2];if((z|0)>=(l|0)){i=n;return}u=(m|0)<(k|0);b=b+7600|0;v=v>>s;w=(v|0)>0;do{if(u){x=z-j|0;y=m;do{A=c[p>>2]|0;C=($(c[A+13156>>2]|0,z)|0)+y|0;if((a[(c[b>>2]|0)+C>>0]|0)!=0?(r=c[A+13084>>2]|0,q=x<>s,r=y-h<>o<>2],w):0){C=e+(($(q,g)|0)+r)|0;A=0;B=d+(($(q,f)|0)+r)|0;while(1){mf(B|0,C|0,t|0)|0;A=A+1|0;if((A|0)==(v|0))break;else{C=C+g|0;B=B+f|0}}}y=y+1|0}while((y|0)!=(k|0))}z=z+1|0}while((z|0)!=(l|0));i=n;return}function Wb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;g=c[a+200>>2]|0;h=c[g+13084>>2]|0;if((e|b|0)<0){e=2;i=f;return e|0}b=b>>h;e=e>>h;h=c[g+13156>>2]|0;if((b|0)>=(h|0)){e=2;i=f;return e|0}if((e|0)>=(c[g+13160>>2]|0)){e=2;i=f;return e|0}e=($(h,e)|0)+b|0;e=d[(c[a+7600>>2]|0)+e>>0]|0;i=f;return e|0}function Xb(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;h=i;j=c[b+204>>2]|0;e=(c[((f|0)==1?j+28|0:j+32|0)>>2]|0)+e|0;if((e|0)<0)e=0;else e=(e|0)>57?57:e;do if((c[(c[b+200>>2]|0)+4>>2]|0)==1){if((e|0)>=30)if((e|0)>43){e=e+ -6|0;break}else{e=d[1392+(e+ -30)>>0]|0;break}}else if((e|0)<0)e=0;else e=(e|0)>51?51:e;while(0);g=g+2+e|0;if((g|0)<0){j=0;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}j=(g|0)>53?53:g;j=1336+j|0;j=a[j>>0]|0;j=j&255;i=h;return j|0}function Yb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;k=b+7628|0;c[k>>2]=0;a:do if((e|0)>1){m=0;while(1){if(!(a[d+m>>0]|0)){if((m|0)>0){l=m+ -1|0;l=(a[d+l>>0]|0)==0?l:m}else l=m;m=l+2|0;if(((m|0)<(e|0)?(a[d+(l+1)>>0]|0)==0:0)?(j=a[d+m>>0]|0,(j&255)<4):0)break}else l=m;m=l+2|0;if((l+3|0)>=(e|0))break a}m=l;e=j<<24>>24==3?e:l}else m=0;while(0);if((m|0)>=(e+ -1|0)){c[f+12>>2]=d;c[f+8>>2]=e;q=e;i=g;return q|0}me(f,f+4|0,e+32|0);j=c[f>>2]|0;if(!j){q=-12;i=g;return q|0}mf(j|0,d|0,m|0)|0;o=m+2|0;b:do if((o|0)<(e|0)){l=b+7636|0;b=b+7632|0;n=m;c:while(1){p=d+o|0;q=a[p>>0]|0;do if((q&255)<=3){p=a[d+m>>0]|0;if(!(p<<24>>24))if(!(a[d+(m+1)>>0]|0)){if(q<<24>>24!=3){e=m;break b}o=n+1|0;a[j+n>>0]=0;n=n+2|0;a[j+o>>0]=0;m=m+3|0;q=(c[k>>2]|0)+1|0;c[k>>2]=q;p=c[l>>2]|0;if((p|0)<(q|0)){p=p<<1;c[l>>2]=p;ke(b,p,4)|0;p=c[b>>2]|0;if(!p){f=-12;break c}}else{p=c[b>>2]|0;if(!p)break}c[p+((c[k>>2]|0)+ -1<<2)>>2]=o}else{p=0;h=26}else h=26}else{a[j+n>>0]=a[d+m>>0]|0;a[j+(n+1)>>0]=a[d+(m+1)>>0]|0;p=a[p>>0]|0;n=n+2|0;m=o;h=26}while(0);if((h|0)==26){h=0;a[j+n>>0]=p;n=n+1|0;m=m+1|0}o=m+2|0;if((o|0)>=(e|0)){h=15;break b}}i=g;return f|0}else{n=m;h=15}while(0);if((h|0)==15)if((m|0)<(e|0)){h=e+n|0;k=m;while(1){a[j+n>>0]=a[d+k>>0]|0;k=k+1|0;if((k|0)==(e|0))break;else n=n+1|0}n=h-m|0}else e=m;h=j+n+0|0;d=h+32|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(d|0));c[f+12>>2]=j;c[f+8>>2]=n;q=e;i=g;return q|0}function Zb(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;f=b+60|0;e=c[f>>2]|0;Wd();Cc();f=c[f>>2]|0;c[f+4>>2]=b;g=le(31328)|0;c[f+136>>2]=g;a:do if(((g|0)!=0?(c[f+72>>2]=g,c[f+8>>2]=f,j=ee(199)|0,c[f+152>>2]=j,(j|0)!=0):0)?(j=Be()|0,c[f+164>>2]=j,(j|0)!=0):0){g=f+3512|0;h=0;do{j=Be()|0;c[g+(h*72|0)>>2]=j;if(!j)break a;c[g+(h*72|0)+4>>2]=j;h=h+1|0}while(h>>>0<32);c[f+5836>>2]=2147483647;a[f+7721>>0]=1;c[f+5828>>2]=0;c[e+7620>>2]=0;c[e+7772>>2]=0;f=b+808|0;if(!(c[f>>2]&2))a[e+141>>0]=1;else a[e+141>>0]=c[b+800>>2];if((c[f>>2]&1|0)!=0?(c[b+800>>2]|0)>1:0){a[e+140>>0]=1;j=0;i=d;return j|0}a[e+140>>0]=2;j=0;i=d;return j|0}while(0);$b(b)|0;j=-12;i=d;return j|0}function _b(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0;k=i;i=i+48|0;o=k+8|0;n=k+32|0;r=k+16|0;p=k;m=c[f+60>>2]|0;f=j+28|0;L=c[f>>2]|0;if(!L){g=vc(m,g,1)|0;if((g|0)<0){pb=g;i=k;return pb|0}c[h>>2]=g;pb=0;i=k;return pb|0}q=m+3508|0;c[q>>2]=0;l=m+7776|0;b[l>>1]=1;K=c[j+24>>2]|0;c[q>>2]=0;G=m+5828|0;s=m+5832|0;c[s>>2]=c[G>>2];c[G>>2]=0;w=m+7660|0;c[w>>2]=0;a:do if((L|0)>3){J=m+7722|0;H=m+7664|0;A=m+7656|0;j=m+7640|0;E=m+7648|0;y=m+7644|0;F=m+7636|0;z=m+7632|0;x=m+7628|0;u=m+136|0;v=m+3500|0;I=m+7732|0;while(1){C=(a[J>>0]|0)==0;if(C){while(1){M=K+1|0;if(((a[K>>0]|0)==0?(a[M>>0]|0)==0:0)?(a[K+2>>0]|0)==1:0)break;if((L|0)<5){C=-1094995529;break a}K=M;L=L+ -1|0}K=K+3|0;N=0;L=L+ -3|0}else{M=c[I>>2]|0;if((M|0)>0){O=0;N=0;do{O=d[K+N>>0]|O<<8;N=N+1|0}while((N|0)!=(M|0));N=O}else N=0;L=L-M|0;if((N|0)>(L|0)){C=-1094995529;break a}K=K+M|0}C=C?L:N;M=c[H>>2]|0;O=c[w>>2]|0;if((M|0)<(O+1|0)){M=M+1|0;N=je(c[A>>2]|0,M,16)|0;if(!N){C=-12;break a}c[A>>2]=N;O=c[H>>2]|0;jf(N+(O<<4)|0,0,M-O<<4|0)|0;ke(j,M,4)|0;ke(E,M,4)|0;ke(y,M,4)|0;O=c[E>>2]|0;c[O+(c[H>>2]<<2)>>2]=1024;O=ne(c[O+(c[H>>2]<<2)>>2]|0,4)|0;c[(c[y>>2]|0)+(c[H>>2]<<2)>>2]=O;c[H>>2]=M;O=c[w>>2]|0}c[F>>2]=c[(c[E>>2]|0)+(O<<2)>>2];c[z>>2]=c[(c[y>>2]|0)+(O<<2)>>2];N=c[A>>2]|0;M=Yb(m,K,C,N+(O<<4)|0)|0;c[(c[j>>2]|0)+(c[w>>2]<<2)>>2]=c[x>>2];c[(c[E>>2]|0)+(c[w>>2]<<2)>>2]=c[F>>2];ob=c[z>>2]|0;pb=c[w>>2]|0;c[w>>2]=pb+1;c[(c[y>>2]|0)+(pb<<2)>>2]=ob;if((M|0)<0){C=M;break a}ob=c[u>>2]|0;mb=c[N+(O<<4)+12>>2]|0;nb=c[N+(O<<4)+8>>2]|0;nb=nb>>>0>268435455?-8:nb<<3;pb=nb>>>0>2147483639|(mb|0)==0;nb=pb?0:nb;mb=pb?0:mb;C=pb?-1094995529:0;c[ob+204>>2]=mb;c[ob+216>>2]=nb;c[ob+220>>2]=nb+8;c[ob+208>>2]=mb+(nb>>3);c[ob+212>>2]=0;if(pb)break a;cc(m)|0;if(((c[v>>2]|0)+ -36|0)>>>0<2)c[G>>2]=1;L=L-M|0;if((L|0)<=3)break;else K=K+M|0}if((c[w>>2]|0)>0){ma=m+4|0;Ba=m+2436|0;bb=m+3034|0;db=m+2416|0;Aa=m+204|0;sa=m+200|0;Ia=m+2437|0;Ja=m+2420|0;Na=m+2424|0;Oa=m+5824|0;Fa=m+156|0;Da=m+2428|0;N=m+2438|0;P=m+2608|0;ra=m+5816|0;U=m+3504|0;V=m+5820|0;ba=m+3044|0;ca=m+3045|0;W=m+3046|0;ja=m+3040|0;ha=m+3036|0;fa=m+3032|0;ia=m+3033|0;M=m+3047|0;eb=m+3048|0;la=m+3052|0;ka=m+3035|0;L=m+3080|0;E=m+3101|0;K=m+3102|0;ga=m+3051|0;La=m+3056|0;Y=m+3060|0;X=m+3064|0;Z=m+3068|0;da=m+3049|0;aa=m+3072|0;_=m+3076|0;ea=m+3050|0;R=m+2432|0;Q=m+2440|0;T=m+2772|0;O=m+2439|0;Ma=m+3096|0;Ha=m+3100|0;Ka=m+3488|0;Ca=m+5836|0;na=m+5848|0;oa=m+7668|0;cb=o+4|0;ta=m+7572|0;va=m+5840|0;ua=m+5844|0;wa=m+7576|0;xa=m+7596|0;ya=m+7600|0;za=m+7580|0;qa=m+160|0;pa=m+140|0;Ea=m+164|0;J=m+3084|0;G=m+3088|0;F=m+3092|0;H=m+141|0;I=m+7620|0;$a=m+3492|0;ab=m+3496|0;Za=m+7584|0;_a=m+7588|0;Ya=m+7592|0;Wa=m+7604|0;Xa=m+7568|0;Ua=m+1428|0;Va=m+1432|0;Sa=m+5852|0;Ta=m+7560|0;Pa=m+196|0;Qa=m+7616|0;Ra=m+168|0;S=0;b:while(1){c[x>>2]=c[(c[j>>2]|0)+(S<<2)>>2];c[z>>2]=c[(c[y>>2]|0)+(S<<2)>>2];ob=c[A>>2]|0;nb=c[ob+(S<<4)+12>>2]|0;ob=c[ob+(S<<4)+8>>2]|0;pb=c[u>>2]|0;ob=ob>>>0>268435455?-8:ob<<3;fb=ob>>>0>2147483639|(nb|0)==0;ob=fb?0:ob;nb=fb?0:nb;c[pb+204>>2]=nb;c[pb+216>>2]=ob;c[pb+220>>2]=ob+8;c[pb+208>>2]=nb+(ob>>3);c[pb+212>>2]=0;c:do if(fb){t=fb?-1094995529:0;B=272}else{fb=cc(m)|0;d:do if((fb|0)>=0){if(!fb)break c;switch(c[v>>2]|0){case 48:{fb=zd(m)|0;if((fb|0)<0)break d;else break c};case 34:{fb=Ad(m)|0;if((fb|0)<0)break d;else break c};case 40:case 39:{fb=Cd(m)|0;if((fb|0)<0)break d;else break c};case 9:case 8:case 7:case 6:case 21:case 20:case 19:case 18:case 17:case 16:case 5:case 4:case 3:case 2:case 0:case 1:{fb=c[u>>2]|0;gb=fb+204|0;pb=(_d(gb)|0)&255;a[Ba>>0]=pb;hb=c[v>>2]|0;if(!((hb+ -16|0)>>>0>4|pb<<24>>24==0)?(b[Qa>>1]=(e[Qa>>1]|0)+1&255,c[Ca>>2]=2147483647,(hb+ -19|0)>>>0<2):0){rc(m);hb=c[v>>2]|0}a[bb>>0]=0;if((hb+ -16|0)>>>0<8)a[bb>>0]=_d(gb)|0;hb=ae(gb)|0;c[db>>2]=hb;if(hb>>>0>255)break a;hb=c[m+(hb<<2)+400>>2]|0;if(!hb)break a;if(!(a[Ba>>0]|0)){kb=c[hb+4>>2]|0;if((c[Aa>>2]|0)!=(kb|0))break a}else kb=c[hb+4>>2]|0;c[Aa>>2]=kb;jb=c[v>>2]|0;ib=(jb|0)==21;if(ib?(c[s>>2]|0)==1:0)a[bb>>0]=1;hb=c[sa>>2]|0;kb=c[(c[m+(c[kb>>2]<<2)+272>>2]|0)+4>>2]|0;if((hb|0)!=(kb|0)){c[sa>>2]=kb;e:do if(hb){if((jb+ -16|0)>>>0>7|ib)break;do if((c[kb+13120>>2]|0)==(c[hb+13120>>2]|0)){if((c[kb+13124>>2]|0)!=(c[hb+13124>>2]|0))break;if((c[kb+76+(((c[kb+72>>2]|0)+ -1|0)*12|0)>>2]|0)==(c[hb+(((c[hb+72>>2]|0)+ -1|0)*12|0)+76>>2]|0))break e}while(0);a[bb>>0]=0}while(0);rc(m);hb=c[sa>>2]|0;bc(m);ib=c[hb+13064>>2]|0;lb=hb+13120|0;qb=c[lb>>2]|0;mb=hb+13124|0;pb=c[mb>>2]|0;ib=$((pb>>ib)+1|0,(qb>>ib)+1|0)|0;kb=$(c[hb+13132>>2]|0,c[hb+13128>>2]|0)|0;ob=hb+13156|0;nb=hb+13160|0;jb=$(c[nb>>2]|0,c[ob>>2]|0)|0;c[va>>2]=(qb>>2)+1;c[ua>>2]=(pb>>2)+1;c[$a>>2]=oe(kb,148)|0;pb=oe(kb,8)|0;c[ab>>2]=pb;if((c[$a>>2]|0)==0|(pb|0)==0){B=72;break b}pb=hb+13144|0;qb=hb+13140|0;c[Za>>2]=ee($(c[qb>>2]|0,c[pb>>2]|0)|0)|0;qb=ne(c[pb>>2]|0,c[qb>>2]|0)|0;c[_a>>2]=qb;if((c[Za>>2]|0)==0|(qb|0)==0){B=72;break b}c[xa>>2]=ne(c[hb+13148>>2]|0,c[hb+13152>>2]|0)|0;c[Ya>>2]=le(jb)|0;nb=ee($((c[nb>>2]|0)+1|0,(c[ob>>2]|0)+1|0)|0)|0;c[ya>>2]=nb;if(!(c[Ya>>2]|0)){B=72;break b}if((c[xa>>2]|0)==0|(nb|0)==0){B=72;break b}c[Wa>>2]=ee(kb)|0;c[za>>2]=ne(ib,4)|0;qb=ne(ib,1)|0;c[Xa>>2]=qb;if(!qb){B=72;break b}if(!(c[Wa>>2]|0)){B=72;break b}if(!(c[za>>2]|0)){B=72;break b}c[ta>>2]=oe(c[va>>2]|0,c[ua>>2]|0)|0;qb=oe(c[va>>2]|0,c[ua>>2]|0)|0;c[wa>>2]=qb;if((c[ta>>2]|0)==0|(qb|0)==0){B=72;break b}c[Ua>>2]=ve(jb*12|0,3)|0;qb=ve(kb*392|0,3)|0;c[Va>>2]=qb;if((c[Ua>>2]|0)==0|(qb|0)==0){B=72;break b}qb=c[ma>>2]|0;c[qb+124>>2]=c[lb>>2];c[qb+128>>2]=c[mb>>2];c[qb+116>>2]=c[hb+12>>2];c[qb+120>>2]=c[hb+16>>2];c[qb+136>>2]=c[hb+60>>2];c[qb+172>>2]=c[hb+(((c[hb+72>>2]|0)+ -1|0)*12|0)+80>>2];qb=hb+160|0;c[o+0>>2]=c[qb+0>>2];c[o+4>>2]=c[qb+4>>2];if(!(c[hb+176>>2]|0)){ib=c[ma>>2]|0;c[ib+392>>2]=1}else{ib=c[ma>>2]|0;c[ib+392>>2]=(c[hb+184>>2]|0)!=0?2:1}if(!(c[hb+188>>2]|0)){c[ib+380>>2]=2;c[ib+384>>2]=2;c[ib+388>>2]=2}else{c[ib+380>>2]=d[hb+192>>0];c[ib+384>>2]=d[hb+193>>0];c[ib+388>>2]=d[hb+194>>0]}qb=hb+52|0;Dc(Sa,c[qb>>2]|0);de(Ta,c[qb>>2]|0);if(a[hb+12941>>0]|0){ib=c[sa>>2]|0;jb=(c[ib+4>>2]|0)!=0?3:1;qb=(1<>2])+2|0;qb=$(qb,qb)|0;c[Ra>>2]=ee(qb<>2])|0;ib=0;do{qb=c[sa>>2]|0;pb=c[qb+13124>>2]>>c[qb+(ib<<2)+13180>>2];ob=$(c[qb+13120>>2]>>c[qb+(ib<<2)+13168>>2]<<1,c[qb+13132>>2]|0)|0;c[m+(ib<<2)+172>>2]=ee(ob<>2])|0;qb=c[sa>>2]|0;pb=$(pb<<1,c[qb+13128>>2]|0)|0;c[m+(ib<<2)+184>>2]=ee(pb<>2])|0;ib=ib+1|0}while((ib|0)<(jb|0))}c[sa>>2]=hb;c[Pa>>2]=c[(c[m+(c[hb>>2]<<2)+208>>2]|0)+4>>2];b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647}qb=c[ma>>2]|0;c[qb+832>>2]=d[hb+302>>0];c[qb+836>>2]=d[hb+335>>0];a[Ia>>0]=0;do if(!(a[Ba>>0]|0)){if(a[(c[Aa>>2]|0)+41>>0]|0){a[Ia>>0]=_d(gb)|0;hb=c[sa>>2]|0}ib=($(c[hb+13128>>2]<<1,c[hb+13132>>2]|0)|0)+ -2|0;hb=ib>>>0>65535;ib=hb?ib>>>16:ib;hb=hb?16:0;if(ib&65280){hb=hb|8;ib=ib>>>8}hb=Xd(gb,(d[4872+ib>>0]|0)+hb|0)|0;c[Ja>>2]=hb;qb=c[sa>>2]|0;if(hb>>>0>=($(c[qb+13132>>2]|0,c[qb+13128>>2]|0)|0)>>>0)break a;if(a[Ia>>0]|0)if(!(a[Fa>>0]|0))break a;else break;else{c[Na>>2]=hb;c[Oa>>2]=(c[Oa>>2]|0)+1;B=83;break}}else{c[Na>>2]=0;c[Ja>>2]=0;c[Oa>>2]=0;a[Fa>>0]=0;B=83}while(0);f:do if((B|0)==83){B=0;a[Fa>>0]=0;if((c[(c[Aa>>2]|0)+1624>>2]|0)>0){hb=0;do{Zd(gb,1);hb=hb+1|0}while((hb|0)<(c[(c[Aa>>2]|0)+1624>>2]|0))}hb=ae(gb)|0;c[Da>>2]=hb;if(hb>>>0>=3)break a;if(!((hb|0)==2?1:((c[v>>2]|0)+ -16|0)>>>0>7))break a;a[N>>0]=1;if(a[(c[Aa>>2]|0)+39>>0]|0)a[N>>0]=_d(gb)|0;if(a[(c[sa>>2]|0)+8>>0]|0)a[O>>0]=Xd(gb,2)|0;do if(((c[v>>2]|0)+ -19|0)>>>0>=2){hb=Xd(gb,c[(c[sa>>2]|0)+64>>2]|0)|0;c[R>>2]=hb;hb=Ac(m,hb)|0;do if(!(a[Ba>>0]|0)){ib=c[ra>>2]|0;if((hb|0)==(ib|0))break;if(!(c[(c[ma>>2]|0)+688>>2]&8))hb=ib;else break a}while(0);c[ra>>2]=hb;qb=(_d(gb)|0)==0;ib=c[sa>>2]|0;if(qb){if((yd(m,Q,ib,1)|0)<0)break a;c[P>>2]=Q;ib=c[sa>>2]|0}else{hb=c[ib+2184>>2]|0;if(!hb)break a;hb=(hb<<1)+ -2|0;jb=hb>>>0>65535;hb=jb?hb>>>16:hb;jb=jb?16:0;if(hb&65280){jb=jb|8;hb=hb>>>8}hb=(d[4872+hb>>0]|0)+jb|0;if((hb|0)>0){hb=Xd(gb,hb)|0;ib=c[sa>>2]|0}else hb=0;c[P>>2]=ib+(hb*168|0)+2188}hb=ib+64|0;jb=c[hb>>2]|0;a[T>>0]=0;do if(a[ib+12942>>0]|0){kb=ib+13040|0;if(!(a[kb>>0]|0))lb=0;else lb=ae(gb)|0;mb=ae(gb)|0;qb=gf(mb|0,0,lb|0,0)|0;pb=D;if(pb>>>0>0|(pb|0)==0&qb>>>0>32)if(!(c[(c[ma>>2]|0)+688>>2]&8))break;else break a;qb=mb+lb|0;a[T>>0]=qb;if(!(qb&255))break;else{mb=0;nb=0}do{if(mb>>>0>>0){ob=a[kb>>0]|0;if((ob&255)>1){pb=((ob&255)<<1)+ -2|0;ob=pb>>>0>65535;pb=ob?pb>>>16:pb;ob=ob?16:0;if(pb&65280){ob=ob|8;pb=pb>>>8}ob=(Xd(gb,(d[4872+pb>>0]|0)+ob|0)|0)&255}else ob=0;c[m+(mb<<2)+2612>>2]=e[ib+(ob<<1)+12944>>1];a[m+mb+2740>>0]=a[ib+ob+13008>>0]|0}else{c[m+(mb<<2)+2612>>2]=Xd(gb,c[hb>>2]|0)|0;a[m+mb+2740>>0]=_d(gb)|0}if(((_d(gb)|0)&255)<<24>>24){qb=ae(gb)|0;nb=qb+((mb|0)==0|(mb|0)==(lb|0)?0:nb)|0;qb=m+(mb<<2)+2612|0;c[qb>>2]=(c[ra>>2]|0)-(nb<>2]|0)+(c[qb>>2]|0)}mb=mb+1|0}while((mb|0)<(d[T>>0]|0))}while(0);if(!(a[(c[sa>>2]|0)+13060>>0]|0)){a[ka>>0]=0;break}else{a[ka>>0]=_d(gb)|0;break}}else{c[P>>2]=0;c[ra>>2]=0}while(0);g:do if(!(c[U>>2]|0)){switch(c[v>>2]|0){case 9:case 8:case 7:case 6:case 4:case 2:case 0:break g;default:{}}c[V>>2]=c[ra>>2]}while(0);do if(a[(c[sa>>2]|0)+12941>>0]|0){a[ba>>0]=_d(gb)|0;if(!(c[(c[sa>>2]|0)+4>>2]|0)){a[ca>>0]=0;a[W>>0]=0;break}else{qb=(_d(gb)|0)&255;a[W>>0]=qb;a[ca>>0]=qb;break}}else{a[ba>>0]=0;a[ca>>0]=0;a[W>>0]=0}while(0);c[ja>>2]=0;c[ha>>2]=0;ib=c[Da>>2]|0;if(ib>>>0<2){hb=c[Aa>>2]|0;c[ha>>2]=c[hb+8>>2];if(!ib)c[ja>>2]=c[hb+12>>2];do if(!(_d(gb)|0))B=138;else{hb=(ae(gb)|0)+1|0;c[ha>>2]=hb;if(c[Da>>2]|0)break;c[ja>>2]=(ae(gb)|0)+1;B=138}while(0);if((B|0)==138){B=0;hb=c[ha>>2]|0}if(hb>>>0>16)break a;if((c[ja>>2]|0)>>>0>16)break a;a[fa>>0]=0;a[ia>>0]=0;jb=Bc(m)|0;if(!jb)break a;do if((jb|0)>1?(a[(c[Aa>>2]|0)+1617>>0]|0)!=0:0){qb=(_d(gb)|0)&255;a[fa>>0]=qb;do if(qb<<24>>24){if(!(c[ha>>2]|0))break;qb=(jb<<1)+ -2|0;hb=qb>>>0>65535;qb=hb?qb>>>16:qb;hb=hb?16:0;ib=(qb&65280|0)==0;hb=(d[4872+(ib?qb:qb>>>8)>>0]|0)+(ib?hb:hb|8)|0;ib=0;do{c[m+(ib<<2)+2776>>2]=Xd(gb,hb)|0;ib=ib+1|0}while(ib>>>0<(c[ha>>2]|0)>>>0)}while(0);if(c[Da>>2]|0)break;qb=_d(gb)|0;a[ia>>0]=qb;if((qb&255|0)!=1){B=152;break}if(!(c[ja>>2]|0)){B=152;break}qb=(jb<<1)+ -2|0;hb=qb>>>0>65535;qb=hb?qb>>>16:qb;hb=hb?16:0;B=(qb&65280|0)==0;hb=(d[4872+(B?qb:qb>>>8)>>0]|0)+(B?hb:hb|8)|0;B=0;do{c[m+(B<<2)+2904>>2]=Xd(gb,hb)|0;B=B+1|0}while(B>>>0<(c[ja>>2]|0)>>>0);B=152}else B=152;while(0);do if((B|0)==152){if(c[Da>>2]|0)break;a[M>>0]=_d(gb)|0}while(0);if(!(a[(c[Aa>>2]|0)+5>>0]|0))B=0;else B=(_d(gb)|0)&255;a[eb>>0]=B;c[la>>2]=0;do if(a[ka>>0]|0){a[ga>>0]=0;if(!(c[Da>>2]|0)){B=(_d(gb)|0)==0&1;a[ga>>0]=B}else B=0;if((c[m+((B&255)<<2)+3036>>2]|0)>>>0<=1)break;qb=ae(gb)|0;c[la>>2]=qb;if(qb>>>0>=(c[m+(d[ga>>0]<<2)+3036>>2]|0)>>>0)break a}while(0);hb=c[Aa>>2]|0;if((a[hb+37>>0]|0)!=0?(c[Da>>2]|0)==1:0)B=165;else B=163;do if((B|0)==163){B=0;if(!(a[hb+38>>0]|0))break;if(!(c[Da>>2]|0))B=165}while(0);do if((B|0)==165){B=0;a[E>>0]=ae(gb)|0;if(c[(c[sa>>2]|0)+4>>2]|0){hb=be(gb)|0;hb=(d[E>>0]|0)+hb|0;if((hb|0)<0)hb=0;else hb=(hb|0)>7?7:hb&65535;b[K>>1]=hb}if(!(c[ha>>2]|0))hb=0;else{ib=0;do{qb=(_d(gb)|0)&255;a[n+ib>>0]=qb;if(!(qb<<24>>24)){b[m+(ib<<1)+3104>>1]=1<>0];b[m+(ib<<1)+3296>>1]=0}ib=ib+1|0;hb=c[ha>>2]|0}while(ib>>>0>>0)}ib=(hb|0)==0;if(!(c[(c[sa>>2]|0)+4>>2]|0)){if(ib)break;jf(r|0,0,(hb>>>0>1?hb:1)|0)|0}else{if(ib)break;else hb=0;do{a[r+hb>>0]=_d(gb)|0;hb=hb+1|0;ib=c[ha>>2]|0}while(hb>>>0>>0);hb=ib}if(!hb)break;else ib=0;do{if(a[n+ib>>0]|0){qb=be(gb)|0;b[m+(ib<<1)+3104>>1]=(1<>0])+qb;b[m+(ib<<1)+3296>>1]=be(gb)|0}if(!(a[r+ib>>0]|0)){qb=1<>1]&65535;b[m+(ib<<2)+3136>>1]=qb;b[m+(ib<<2)+3328>>1]=0;b[m+(ib<<2)+3138>>1]=qb;b[m+(ib<<2)+3330>>1]=0}else{hb=0;do{jb=be(gb)|0;qb=be(gb)|0;jb=(1<>1])+jb|0;b[m+(ib<<2)+(hb<<1)+3136>>1]=jb;jb=qb-(jb<<16>>9>>b[K>>1])+128|0;if((jb|0)<-128)jb=-128;else jb=(jb|0)>127?127:jb&65535;b[m+(ib<<2)+(hb<<1)+3328>>1]=jb;hb=hb+1|0}while((hb|0)!=2)}ib=ib+1|0}while(ib>>>0<(c[ha>>2]|0)>>>0)}while(0);pb=ae(gb)|0;qb=5-pb|0;c[L>>2]=qb;if((pb|0)==5|qb>>>0>5)break a}c[La>>2]=be(gb)|0;hb=c[Aa>>2]|0;if(!(a[hb+36>>0]|0)){c[Y>>2]=0;c[X>>2]=0}else{c[Y>>2]=be(gb)|0;c[X>>2]=be(gb)|0;hb=c[Aa>>2]|0}if(!(a[hb+1631>>0]|0))a[Z>>0]=0;else{a[Z>>0]=_d(gb)|0;hb=c[Aa>>2]|0}h:do if(!(a[hb+55>>0]|0)){a[da>>0]=0;c[aa>>2]=0;c[_>>2]=0}else{do if(a[hb+56>>0]|0){if(!(_d(gb)|0)){hb=c[Aa>>2]|0;break}qb=(_d(gb)|0)&255;a[da>>0]=qb;if(qb<<24>>24)break h;c[aa>>2]=(be(gb)|0)<<1;c[_>>2]=(be(gb)|0)<<1;break h}while(0);a[da>>0]=a[hb+57>>0]|0;c[aa>>2]=c[hb+60>>2];c[_>>2]=c[hb+64>>2]}while(0);hb=a[(c[Aa>>2]|0)+54>>0]|0;i:do if(hb<<24>>24){do if(!(a[ba>>0]|0)){if(a[ca>>0]|0)break;if(a[da>>0]|0)break i}while(0);a[ea>>0]=_d(gb)|0;break f}while(0);a[ea>>0]=hb}while(0);c[Ma>>2]=0;qb=c[Aa>>2]|0;if(!((a[qb+42>>0]|0)==0?(a[qb+43>>0]|0)==0:0))B=211;j:do if((B|0)==211){B=0;qb=ae(gb)|0;c[Ma>>2]=qb;if((qb|0)<=0){c[I>>2]=0;break}hb=(ae(gb)|0)+1|0;ib=hb>>4;hb=hb&15;ie(J);ie(G);ie(F);c[J>>2]=ne(c[Ma>>2]|0,4)|0;c[G>>2]=ne(c[Ma>>2]|0,4)|0;jb=ne(c[Ma>>2]|0,4)|0;c[F>>2]=jb;if(!(c[J>>2]|0)){B=216;break b}if((c[G>>2]|0)==0|(jb|0)==0){B=216;break b}if((c[Ma>>2]|0)>0){lb=(ib|0)>0;jb=(hb|0)==0;kb=0;do{if(lb){mb=0;nb=0;do{nb=(Xd(gb,16)|0)+(nb<<16)|0;mb=mb+1|0}while((mb|0)!=(ib|0))}else nb=0;if(!jb)nb=(Xd(gb,hb)|0)+(nb<>2]|0)+(kb<<2)>>2]=nb+1;kb=kb+1|0}while((kb|0)<(c[Ma>>2]|0))}do if((d[H>>0]|0)>1){qb=c[Aa>>2]|0;if((c[qb+48>>2]|0)<=1?(c[qb+44>>2]|0)<=1:0)break;c[I>>2]=0;a[H>>0]=1;break j}while(0);c[I>>2]=0}while(0);hb=c[Aa>>2]|0;if(a[hb+1628>>0]|0){hb=ae(gb)|0;pb=kf(hb|0,0,3)|0;nb=D;qb=(c[fb+216>>2]|0)-(c[fb+212>>2]|0)|0;ob=((qb|0)<0)<<31>>31;if((nb|0)>(ob|0)|(nb|0)==(ob|0)&pb>>>0>qb>>>0)break a;if(hb){ib=0;do{Zd(gb,8);ib=ib+1|0}while((ib|0)!=(hb|0))}hb=c[Aa>>2]|0}gb=(c[hb+16>>2]|0)+26+(c[La>>2]|0)|0;a[Ha>>0]=gb;gb=gb<<24;if((gb|0)>855638016)break a;if((gb>>24|0)<(0-(c[(c[sa>>2]|0)+13192>>2]|0)|0))break a;qb=c[Ja>>2]|0;c[Ka>>2]=qb;if((qb|0)==0?(a[Ia>>0]|0)!=0:0)break a;if(((c[fb+216>>2]|0)-(c[fb+212>>2]|0)|0)<0)break a;a[(c[u>>2]|0)+203>>0]=(a[Ia>>0]|0)==0&1;if(!(a[(c[Aa>>2]|0)+22>>0]|0))a[(c[u>>2]|0)+272>>0]=a[Ha>>0]|0;a[Fa>>0]=1;a[(c[u>>2]|0)+302>>0]=0;a[(c[u>>2]|0)+303>>0]=0;gb=c[Ca>>2]|0;fb=c[v>>2]|0;k:do if((gb|0)==2147483647)switch(fb|0){case 18:case 16:case 17:case 21:{gb=c[ra>>2]|0;c[Ca>>2]=gb;break k};case 20:case 19:{c[Ca>>2]=-2147483648;gb=-2147483648;break k};default:{gb=2147483647;break k}}while(0);do if((fb+ -8|0)>>>0<2){if((c[ra>>2]|0)<=(gb|0)){c[na>>2]=0;break c}if((fb|0)!=9)break;c[Ca>>2]=-2147483648}while(0);l:do if(!(a[Ba>>0]|0)){if(!(c[q>>2]|0)){fb=0;break d}}else{fb=c[u>>2]|0;pb=c[sa>>2]|0;gb=c[pb+13064>>2]|0;qb=c[pb+13120>>2]>>gb;gb=(c[pb+13124>>2]>>gb)+1|0;jf(c[ta>>2]|0,0,$(c[ua>>2]|0,c[va>>2]|0)|0)|0;jf(c[wa>>2]|0,0,$(c[ua>>2]|0,c[va>>2]|0)|0)|0;pb=c[sa>>2]|0;jf(c[xa>>2]|0,0,$(c[pb+13152>>2]|0,c[pb+13148>>2]|0)|0)|0;pb=c[sa>>2]|0;jf(c[ya>>2]|0,0,$((c[pb+13160>>2]|0)+1|0,(c[pb+13156>>2]|0)+1|0)|0)|0;jf(c[za>>2]|0,-1,$((qb<<2)+4|0,gb)|0)|0;c[na>>2]=0;c[oa>>2]=c[v>>2];gb=c[Aa>>2]|0;if(a[gb+42>>0]|0)c[fb+312>>2]=c[c[gb+1648>>2]>>2]<>2]|0)+13080>>2];fb=tc(m,qa,c[ra>>2]|0)|0;do if((fb|0)<0)t=fb;else{fb=yc(m)|0;if((fb|0)<0){t=fb;break}qb=((c[v>>2]|0)+ -16|0)>>>0<8;c[(c[c[q>>2]>>2]|0)+80>>2]=qb&1;c[(c[qa>>2]|0)+84>>2]=3-(c[Da>>2]|0);if(!qb)wc(m);De(c[Ea>>2]|0);fb=vc(m,c[Ea>>2]|0,0)|0;if((fb|0)<0){t=fb;break}fb=c[v>>2]|0;break l}while(0);do if((c[q>>2]|0)!=0?(a[pa>>0]|0)!=1:0)break;while(0);c[q>>2]=0;B=272;break c}while(0);if((fb|0)!=(c[oa>>2]|0))break a;do if(!(a[Ia>>0]|0)){if((c[Da>>2]|0)==2)break;fb=xc(m)|0;if((fb|0)<0)break d}while(0);c[o>>2]=0;c[cb>>2]=1;fb=c[ma>>2]|0;Ga[c[fb+816>>2]&1](fb,1,o,p,1,4)|0;fb=c[p>>2]|0;qb=c[sa>>2]|0;if((fb|0)>=($(c[qb+13132>>2]|0,c[qb+13128>>2]|0)|0))c[na>>2]=1;if((fb|0)<0)break d;else break c};case 37:case 36:{b[Qa>>1]=(e[Qa>>1]|0)+1&255;c[Ca>>2]=2147483647;break c};default:break c}}while(0);t=(c[(c[ma>>2]|0)+688>>2]&8|0)==0?0:fb;B=272}while(0);if((B|0)==272?(B=0,(t|0)<0):0)break a;S=S+1|0;if((S|0)>=(c[w>>2]|0))break a}if((B|0)==72){bc(m);bc(m);c[sa>>2]=0;break}else if((B|0)==216){c[Ma>>2]=0;break}}}else C=0;while(0);if((C|0)<0){qb=C;i=k;return qb|0}n=m+5848|0;if(c[n>>2]|0)c[n>>2]=0;m=c[m+164>>2]|0;if(c[m+304>>2]|0){qb=m+128|0;c[qb>>2]=e[l>>1];c[qb+4>>2]=0;Ee(g,m);c[h>>2]=1}qb=c[f>>2]|0;i=k;return qb|0}function $b(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=c[b+60>>2]|0;bc(e);b=e+7664|0;f=e+7644|0;if((c[b>>2]|0)>0){g=0;do{ie((c[f>>2]|0)+(g<<2)|0);g=g+1|0}while((g|0)<(c[b>>2]|0))}ie(e+7648|0);ie(e+7640|0);ie(f);ie(e+152|0);ie(e+168|0);ie(e+172|0);ie(e+184|0);ie(e+176|0);ie(e+188|0);ie(e+180|0);ie(e+192|0);Ce(e+164|0);g=e+3512|0;f=0;do{l=g+(f*72|0)|0;pc(e,l,-1);Ce(l);f=f+1|0}while((f|0)!=32);g=e+208|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=16);g=e+272|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=32);g=e+400|0;f=0;do{ue(g+(f<<2)|0);f=f+1|0}while((f|0)!=256);c[e+200>>2]=0;c[e+204>>2]=0;c[e+196>>2]=0;ue(e+1424|0);ie(e+3084|0);ie(e+3088|0);ie(e+3092|0);h=e+141|0;l=a[h>>0]|0;f=e+72|0;if((l&255)>1){g=e+8|0;j=1;do{k=f+(j<<2)|0;if(c[k>>2]|0){ie(k);ie(g+(j<<2)|0);l=a[h>>0]|0}j=j+1|0}while((j|0)<(l&255|0))}g=e+136|0;if((c[g>>2]|0)==(c[f>>2]|0))c[g>>2]=0;ie(f);f=e+7656|0;if((c[b>>2]|0)<=0){ie(f);c[b>>2]=0;i=d;return 0}e=0;do{ie((c[f>>2]|0)+(e<<4)|0);e=e+1|0}while((e|0)<(c[b>>2]|0));ie(f);c[b>>2]=0;i=d;return 0}function ac(a){a=a|0;var b=0;b=i;a=c[a+60>>2]|0;sc(a);c[a+5836>>2]=2147483647;i=b;return}function bc(a){a=a|0;var b=0;b=i;ie(a+3492|0);ie(a+3496|0);ie(a+7584|0);ie(a+7588|0);ie(a+7592|0);ie(a+7596|0);ie(a+7600|0);ie(a+7568|0);ie(a+7580|0);ie(a+7604|0);ie(a+7572|0);ie(a+7576|0);ie(a+3084|0);ie(a+3092|0);ie(a+3088|0);we(a+1428|0);we(a+1432|0);i=b;return}function cc(a){a=a|0;var b=0,d=0,e=0;b=i;d=(c[a+136>>2]|0)+204|0;if(_d(d)|0){e=-1094995529;i=b;return e|0}c[a+3500>>2]=Xd(d,6)|0;e=Xd(d,6)|0;d=(Xd(d,3)|0)+ -1|0;c[a+3504>>2]=d;if((d|0)<0){e=-1094995529;i=b;return e|0}e=(e|0)==0&1;i=b;return e|0}function dc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=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;f=i;h=c[e+60>>2]|0;k=h+200|0;E=c[k>>2]|0;e=1<>2];l=h+204|0;n=c[l>>2]|0;A=c[(c[n+1668>>2]|0)+(c[h+3488>>2]<<2)>>2]|0;m=(a[h+2437>>0]|0)==0;if(!A)if(m)g=4;else{W=-1094995529;i=f;return W|0}else if(!m){m=h+7580|0;r=h+2424|0;if((c[(c[m>>2]|0)+(c[(c[n+1672>>2]|0)+(A+ -1<<2)>>2]<<2)>>2]|0)!=(c[r>>2]|0)){W=-1094995529;i=f;return W|0}}else g=4;if((g|0)==4){m=h+7580|0;r=h+2424|0}q=e+ -1|0;s=h+136|0;p=h+3492|0;y=h+3044|0;o=h+3045|0;w=h+3072|0;x=h+3496|0;v=h+3076|0;u=h+3050|0;t=h+7604|0;z=0;n=0;do{if((A|0)>=(c[E+13136>>2]|0))break;G=c[l>>2]|0;B=c[(c[G+1672>>2]|0)+(A<<2)>>2]|0;J=E+13120|0;I=E+13080|0;H=c[I>>2]|0;n=q+(c[J>>2]|0)>>H;z=((B|0)%(n|0)|0)<>2]|0;H=1<>2]|0;D=B-F|0;c[(c[m>>2]|0)+(B<<2)>>2]=F;do if(!(a[G+43>>0]|0)){if(!(a[G+42>>0]|0)){c[C+312>>2]=c[J>>2];G=E;break}if((A|0)!=0?(W=c[G+1676>>2]|0,(c[W+(A<<2)>>2]|0)!=(c[W+(A+ -1<<2)>>2]|0)):0){W=c[I>>2]|0;c[C+312>>2]=(c[(c[G+1648>>2]|0)+(c[(c[G+1664>>2]|0)+(z>>W<<2)>>2]<<2)>>2]<>0]=1;G=c[k>>2]|0}else G=E}else{if((z|0)==0?(H+ -1&n|0)==0:0){a[C+203>>0]=1;E=c[k>>2]|0}c[C+312>>2]=c[E+13120>>2];G=E}while(0);E=H+n|0;H=c[G+13124>>2]|0;c[C+316>>2]=(E|0)>(H|0)?H:E;E=C+31312|0;c[E>>2]=0;H=c[l>>2]|0;if(!(a[H+42>>0]|0)){if((B|0)==(F|0)){c[E>>2]=1;F=1}else F=0;if((D|0)<(c[G+13128>>2]|0)){F=F|4;c[E>>2]=F}}else{if((z|0)>0){W=c[H+1676>>2]|0;I=B+ -1|0;if((c[W+(A<<2)>>2]|0)==(c[W+(c[(c[H+1668>>2]|0)+(I<<2)>>2]<<2)>>2]|0))F=0;else{c[E>>2]=2;F=2}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(I<<2)>>2]|0)){F=F|1;c[E>>2]=F}}else F=0;if((n|0)>0){W=c[H+1676>>2]|0;I=G+13128|0;G=c[I>>2]|0;if((c[W+(A<<2)>>2]|0)!=(c[W+(c[(c[H+1668>>2]|0)+(B-G<<2)>>2]<<2)>>2]|0)){F=F|8;c[E>>2]=F;G=c[I>>2]|0}W=c[m>>2]|0;if((c[W+(B<<2)>>2]|0)!=(c[W+(B-G<<2)>>2]|0)){F=F|4;c[E>>2]=F}}}E=(z|0)>0;if(E&(D|0)>0)G=(F>>>1&1^1)&255;else G=0;a[C+308>>0]=G;if((n|0)>0){if((D|0)<(c[(c[k>>2]|0)+13128>>2]|0))F=0;else F=(F>>>3&1^1)&255;a[C+309>>0]=F;F=c[(c[k>>2]|0)+13128>>2]|0;if((D+1|0)<(F|0))F=0;else{W=c[l>>2]|0;V=c[W+1676>>2]|0;F=(c[V+(A<<2)>>2]|0)==(c[V+(c[(c[W+1668>>2]|0)+(B+1-F<<2)>>2]<<2)>>2]|0)&1}a[C+310>>0]=F;if(E?(j=c[(c[k>>2]|0)+13128>>2]|0,(D|0)>(j|0)):0){D=c[l>>2]|0;W=c[D+1676>>2]|0;D=(c[W+(A<<2)>>2]|0)==(c[W+(c[(c[D+1668>>2]|0)+(B+ -1-j<<2)>>2]<<2)>>2]|0)&1}else D=0}else{a[C+309>>0]=0;a[C+310>>0]=0;D=0}a[C+311>>0]=D;_a(h,A);D=c[k>>2]|0;E=c[D+13080>>2]|0;F=z>>E;E=n>>E;G=c[s>>2]|0;D=($(c[D+13128>>2]|0,E)|0)+F|0;C=c[p>>2]|0;if((a[y>>0]|0)==0?(a[o>>0]|0)==0:0){M=0;H=0}else{if((F|0)>0?(a[G+308>>0]|0)!=0:0)M=db(h)|0;else M=0;if((E|0)>0&(M|0)==0)if(!(a[G+309>>0]|0)){M=0;H=0}else{M=0;H=(db(h)|0)!=0}else H=0}I=(c[(c[k>>2]|0)+4>>2]|0)!=0?3:1;L=C+(D*148|0)+143|0;G=C+(D*148|0)+144|0;K=C+(D*148|0)+104|0;J=C+(D*148|0)+108|0;R=(M|0)==0;S=R&(H^1);M=E+ -1|0;O=F+ -1|0;P=0;do{Q=c[l>>2]|0;Q=d[((P|0)==0?Q+1644|0:Q+1645|0)>>0]|0;a:do if(a[h+P+3044>>0]|0){T=(P|0)==2;do if(!T){if(S){U=(fb(h)|0)&255;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(!R){U=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}if(H){U=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;U=a[(c[p>>2]|0)+(U*148|0)+P+142>>0]|0;N=C+(D*148|0)+P+142|0;a[N>>0]=U;break}else{a[C+(D*148|0)+P+142>>0]=0;break a}}else{U=a[L>>0]|0;a[G>>0]=U;c[J>>2]=c[K>>2];N=G}while(0);if(U<<24>>24){U=0;do{do if(!S){if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(U<<2)>>2];break}else{c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(U<<2)>>2]=ib(h)|0;while(0);U=U+1|0}while((U|0)!=4);do if((a[N>>0]|0)==1){T=0;do{do if(c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0){if(S){c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=jb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<4)+(T<<2)+48>>2];break}else{c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;break}}else c[C+(D*148|0)+(P<<4)+(T<<2)+48>>2]=0;while(0);T=T+1|0}while((T|0)!=4);if(S){a[C+(D*148|0)+P+96>>0]=hb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;a[C+(D*148|0)+P+96>>0]=a[(c[p>>2]|0)+(W*148|0)+P+96>>0]|0;break}else{a[C+(D*148|0)+P+96>>0]=0;break}}else if(!T){if(S){c[C+(D*148|0)+(P<<2)+100>>2]=kb(h)|0;break}if(!R){W=($(c[(c[k>>2]|0)+13128>>2]|0,E)|0)+O|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}if(H){W=($(c[(c[k>>2]|0)+13128>>2]|0,M)|0)+F|0;c[C+(D*148|0)+(P<<2)+100>>2]=c[(c[p>>2]|0)+(W*148|0)+(P<<2)+100>>2];break}else{c[C+(D*148|0)+(P<<2)+100>>2]=0;break}}while(0);b[C+(D*148|0)+(P*10|0)+112>>1]=0;T=0;do{W=c[C+(D*148|0)+(P<<4)+(T<<2)>>2]|0;V=T;T=T+1|0;U=C+(D*148|0)+(P*10|0)+(T<<1)+112|0;b[U>>1]=W;if((a[N>>0]|0)==2){if((V|0)>1){W=0-W|0;b[U>>1]=W}}else if(c[C+(D*148|0)+(P<<4)+(V<<2)+48>>2]|0){W=0-W|0;b[U>>1]=W}b[U>>1]=W<<16>>16<>0]=0;while(0);P=P+1|0}while((P|0)<(I|0));C=c[x>>2]|0;c[C+(B<<3)>>2]=c[w>>2];c[C+(B<<3)+4>>2]=c[v>>2];a[(c[t>>2]|0)+B>>0]=a[u>>0]|0;C=ec(h,z,n,c[(c[k>>2]|0)+13080>>2]|0,0)|0;if((C|0)<0){g=108;break}A=A+1|0;Za(h,A);Tb(h,z,n,e);E=c[k>>2]|0}while((C|0)!=0);if((g|0)==108){c[(c[m>>2]|0)+(B<<2)>>2]=-1;W=C;i=f;return W|0}if((z+e|0)<(c[E+13120>>2]|0)){W=A;i=f;return W|0}if((n+e|0)<(c[E+13124>>2]|0)){W=A;i=f;return W|0}Rb(h,z,n,e);W=A;i=f;return W|0}function ec(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;j=i;i=i+32|0;z=j;C=j+20|0;B=b+136|0;p=c[B>>2]|0;k=1<>2]|0;q=b+204|0;t=c[q>>2]|0;r=(1<<(c[s+13080>>2]|0)-(c[t+24>>2]|0))+ -1|0;c[p+31232>>2]=h;l=k+e|0;if(((l|0)<=(c[s+13120>>2]|0)?(k+f|0)<=(c[s+13124>>2]|0):0)?(c[s+13064>>2]|0)>>>0>>0:0){s=tb(b,h,e,f)|0;t=c[q>>2]|0}else s=(c[s+13064>>2]|0)>>>0>>0&1;if((a[t+22>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(c[t+24>>2]|0)|0)>>>0<=g>>>0:0){a[p+300>>0]=0;c[p+280>>2]=0}if((a[b+3068>>0]|0)!=0?((c[(c[m>>2]|0)+13080>>2]|0)-(d[(c[q>>2]|0)+1632>>0]|0)|0)>>>0<=g>>>0:0)a[p+301>>0]=0;if(s){n=k>>1;q=n+e|0;o=n+f|0;g=g+ -1|0;h=h+1|0;s=ec(b,e,f,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}if(s){if((q|0)<(c[(c[m>>2]|0)+13120>>2]|0)){s=ec(b,q,f,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}if(s){if((o|0)<(c[(c[m>>2]|0)+13124>>2]|0)){s=ec(b,e,o,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}if(s){_=c[m>>2]|0;if((q|0)<(c[_+13120>>2]|0)?(o|0)<(c[_+13124>>2]|0):0){s=ec(b,q,o,g,h)|0;if((s|0)<0){_=s;i=j;return _|0}}}else s=0}else s=0}else s=0;if((r&l|0)==0?(r&k+f|0)==0:0)c[p+276>>2]=a[p+272>>0];if(!s){_=0;i=j;return _|0}k=c[m>>2]|0;if((q+n|0)<(c[k+13120>>2]|0))k=1;else k=(o+n|0)<(c[k+13124>>2]|0);_=k&1;i=j;return _|0}p=c[B>>2]|0;s=c[m>>2]|0;r=c[s+13064>>2]|0;h=c[s+13140>>2]|0;G=e>>r;F=f>>r;s=1<<(c[s+13080>>2]|0)-(c[(c[q>>2]|0)+24>>2]|0);c[p+31236>>2]=e;c[p+31240>>2]=f;y=p+31252|0;a[y>>0]=1;v=p+31244|0;c[v>>2]=1;x=p+31248|0;c[x>>2]=0;u=p+31254|0;a[u>>0]=0;w=p+31253|0;a[w>>0]=0;t=($(F,h)|0)+G|0;E=b+7584|0;a[(c[E>>2]|0)+t>>0]=0;_=p+31268|0;a[_>>0]=1;a[_+1>>0]=1;a[_+2>>0]=1;a[_+3>>0]=1;r=k>>r;s=s+ -1|0;if(a[(c[q>>2]|0)+40>>0]|0){_=(mb(b)|0)&255;a[p+31256>>0]=_;if(_<<24>>24)fc(b,e,f,g)}else a[p+31256>>0]=0;A=b+2428|0;if((c[A>>2]|0)==2){if((r|0)>0){G=t;F=0;while(1){jf((c[E>>2]|0)+G|0,0,r|0)|0;F=F+1|0;if((F|0)==(r|0))break;else G=G+h|0}}}else{H=nb(b,e,f,G,F)|0;I=H&255;if((r|0)>0){F=t;G=0;while(1){jf((c[E>>2]|0)+F|0,I|0,r|0)|0;G=G+1|0;if((G|0)==(r|0))break;else F=F+h|0}}c[v>>2]=(H&255|0)!=0?2:0}do if(!(a[(c[E>>2]|0)+t>>0]|0)){if((c[A>>2]|0)==2)A=c[v>>2]|0;else{A=sb(b)|0;c[v>>2]=A}if((A|0)==1?(c[(c[m>>2]|0)+13064>>2]|0)!=(g|0):0){E=c[x>>2]|0;A=53}else A=50;a:do if((A|0)==50){E=ub(b,g)|0;c[x>>2]=E;G=c[v>>2]|0;if((E|0)==3)F=(G|0)==1&1;else F=0;a[u>>0]=F;if((G|0)==1)A=53;else{hc(b,e,f,g);switch(c[x>>2]|0){case 4:{_=(k|0)/4|0;gc(b,e,f,k,_,g,0);gc(b,e,_+f|0,k,(3<>2]|0,(c[D+68>>2]|0)!=0):0)?(c[D+13048>>2]|0)>>>0<=g>>>0:0)?(c[D+13052>>2]|0)>>>0>=g>>>0:0){D=(vb(b)|0)&255;a[w>>0]=D}else D=a[w>>0]|0;if(D<<24>>24){hc(b,e,f,g);I=c[B>>2]|0;Y=c[b+160>>2]|0;G=c[Y+32>>2]|0;F=$(G,f)|0;J=c[m>>2]|0;E=c[J+56>>2]|0;F=(c[Y>>2]|0)+((e<>2]|0;L=c[J+13184>>2]|0;H=$(f>>L,B)|0;K=c[J+13172>>2]|0;H=(c[Y+4>>2]|0)+((e>>K<>2]|0;_=c[J+13188>>2]|0;C=$(f>>_,D)|0;Z=c[J+13176>>2]|0;C=(c[Y+8>>2]|0)+((e>>Z<>0]|0,k<>Z,k>>_)|0)+($(k>>K,k>>L)|0)|0;E=($(d[J+13045>>0]|0,L)|0)+E|0;L=I+224|0;J=E+7>>3;K=c[I+240>>2]|0;_=c[L>>2]|0;K=(_&1|0)==0?K:K+ -1|0;K=(_&511|0)==0?K:K+ -1|0;I=(c[I+244>>2]|0)-K|0;if((I|0)<(J|0))K=0;else Vd(L,K+J|0,I-J|0);if(!(a[b+3049>>0]|0))Pb(b,e,f,g);_=E>>>0>2147483639|(K|0)==0;Z=_?0:E;Y=_?0:K;c[z>>2]=Y;c[z+12>>2]=Z;c[z+16>>2]=Z+8;c[z+4>>2]=Y+(Z+7>>3);c[z+8>>2]=0;if(_)z=-1094995529;else{Z=b+5852|0;Na[c[Z>>2]&3](F,G,k,k,z,d[(c[m>>2]|0)+13044>>0]|0);_=c[m>>2]|0;Na[c[Z>>2]&3](H,B,k>>c[_+13172>>2],k>>c[_+13184>>2],z,d[_+13045>>0]|0);_=c[m>>2]|0;Na[c[Z>>2]&3](C,D,k>>c[_+13176>>2],k>>c[_+13188>>2],z,d[_+13045>>0]|0);z=0}if(a[(c[m>>2]|0)+13056>>0]|0)fc(b,e,f,g);if((z|0)>=0)break;i=j;return z|0}D=c[B>>2]|0;G=(c[D+31248>>2]|0)==3;E=G?2:1;F=0;do{H=F<<1;I=0;do{a[C+(I+H)>>0]=wb(b)|0;I=I+1|0}while((I|0)<(E|0));F=F+1|0}while((F|0)<(E|0));K=k>>(G&1);J=D+31264|0;L=b+3508|0;T=z+4|0;Q=z+8|0;M=b+7592|0;I=D+31260|0;H=0;do{F=H<<1;G=($(H,K)|0)+f|0;R=0;do{P=R+F|0;X=(a[C+P>>0]|0)==0;if(X)c[J>>2]=yb(b)|0;else c[I>>2]=xb(b)|0;U=($(R,K)|0)+e|0;W=c[B>>2]|0;Y=c[m>>2]|0;V=c[Y+13084>>2]|0;O=U>>V;S=G>>V;N=c[Y+13156>>2]|0;V=K>>V;Y=c[Y+13080>>2]|0;_=(1<>0]|0)==0?(_&G|0)==0:0)_=1;else{_=($(S+ -1|0,N)|0)+O|0;_=d[(c[M>>2]|0)+_>>0]|0}if((a[W+308>>0]|0)==0&(U|0)==0)Z=1;else{Z=O+ -1+($(S,N)|0)|0;Z=d[(c[M>>2]|0)+Z>>0]|0}U=c[(c[L>>2]|0)+16>>2]|0;_=(G>>Y<>>0<2){c[z>>2]=0;c[T>>2]=1;c[Q>>2]=26;Z=0;_=1;Y=26;break}else{c[z>>2]=Z;_=(Z+29&31)+2|0;c[T>>2]=_;Y=(Z+31&31)+2|0;c[Q>>2]=Y;break}else{c[z>>2]=Z;c[T>>2]=_;if(!((Z|0)==0|(_|0)==0)){c[Q>>2]=0;Y=0;break}if((Z|0)==1|(_|0)==1){c[Q>>2]=26;Y=26;break}else{c[Q>>2]=1;Y=1;break}}while(0);if(X){if((Z|0)>(_|0)){c[T>>2]=Z;X=_&255;c[z>>2]=X}else{X=Z;Z=_}if((X|0)>(Y|0)){c[Q>>2]=X;_=Y&255;c[z>>2]=_;Y=X;X=_}if((Z|0)>(Y|0)){c[Q>>2]=Z;_=Y&255;c[T>>2]=_;Y=Z}else _=Z;W=c[W+31264>>2]|0;W=((W|0)>=(X|0)&1)+W|0;W=((W|0)>=(_|0)&1)+W|0;W=((W|0)>=(Y|0)&1)+W|0}else W=c[z+(c[W+31260>>2]<<2)>>2]|0;V=(V|0)==0?1:V;W=W&255;if((V|0)>0){X=0;do{Y=($(X+S|0,N)|0)+O|0;jf((c[M>>2]|0)+Y|0,W|0,V|0)|0;Y=X+O|0;Z=0;do{a[U+((Y+($(Z+S|0,N)|0)|0)*12|0)+10>>0]=0;Z=Z+1|0}while((Z|0)<(V|0));X=X+1|0}while((X|0)<(V|0))}a[D+P+31268>>0]=W;R=R+1|0}while((R|0)<(E|0));H=H+1|0}while((H|0)<(E|0));z=c[(c[m>>2]|0)+4>>2]|0;if((z|0)==3){z=0;do{B=z<<1;C=0;do{G=zb(b)|0;H=C+B|0;a[D+H+31281>>0]=G;F=a[D+H+31268>>0]|0;do if((G|0)!=4){G=a[1600+G>>0]|0;H=D+H+31277|0;if(F<<24>>24==G<<24>>24){a[H>>0]=34;break}else{a[H>>0]=G;break}}else a[D+H+31277>>0]=F;while(0);C=C+1|0}while((C|0)<(E|0));z=z+1|0}while((z|0)<(E|0))}else if(!z)break;else if((z|0)!=2){B=zb(b)|0;z=a[D+31268>>0]|0;if((B|0)==4){a[D+31277>>0]=z;break}B=a[1600+B>>0]|0;C=D+31277|0;if(z<<24>>24==B<<24>>24){a[C>>0]=34;break}else{a[C>>0]=B;break}}else{B=zb(b)|0;a[D+31281>>0]=B;z=a[D+31268>>0]|0;if((B|0)==4)z=z&255;else{_=a[1600+B>>0]|0;z=z<<24>>24==_<<24>>24?34:_&255}a[D+31277>>0]=a[1608+z>>0]|0;break}}while(0);if(!(a[w>>0]|0)){do if((c[v>>2]|0)==1)A=139;else{if((c[x>>2]|0)==0?(a[p+31276>>0]|0)!=0:0){A=139;break}w=(Fb(b)|0)&255;a[y>>0]=w}while(0);if((A|0)==139)w=a[y>>0]|0;if(!(w<<24>>24)){if(a[b+3049>>0]|0)break;Pb(b,e,f,g);break}w=c[m>>2]|0;if((c[v>>2]|0)==1)u=(d[u>>0]|0)+(c[w+13092>>2]|0)|0;else u=c[w+13088>>2]|0;a[p+31255>>0]=u;u=ic(b,e,f,e,f,e,f,g,g,0,0,1592,1592)|0;if((u|0)<0){_=u;i=j;return _|0}}}else{gc(b,e,f,k,k,g,0);hc(b,e,f,g);if(!(a[b+3049>>0]|0))Pb(b,e,f,g)}while(0);if((a[(c[q>>2]|0)+22>>0]|0)!=0?(a[p+300>>0]|0)==0:0)Ob(b,e,f,g);if((r|0)>0){q=b+7568|0;g=p+272|0;u=0;while(1){jf((c[q>>2]|0)+t|0,a[g>>0]|0,r|0)|0;u=u+1|0;if((u|0)==(r|0))break;else t=t+h|0}}if((s&l|0)==0?(s&k+f|0)==0:0)c[p+276>>2]=a[p+272>>0];r=c[m>>2]|0;_=c[r+13064>>2]|0;g=k>>_;q=e>>_;e=f>>_;if((g|0)>0?(n=b+7588|0,o=c[p+31232>>2]&255,_=($(c[r+13140>>2]|0,e)|0)+q|0,jf((c[n>>2]|0)+_|0,o|0,g|0)|0,(g|0)!=1):0){p=1;do{_=($(c[(c[m>>2]|0)+13140>>2]|0,p+e|0)|0)+q|0;jf((c[n>>2]|0)+_|0,o|0,g|0)|0;p=p+1|0}while((p|0)!=(g|0))}m=c[m>>2]|0;e=1<>2];if(((l|0)%(e|0)|0|0)!=0?(l|0)<(c[m+13120>>2]|0):0){_=1;i=j;return _|0}_=k+f|0;if(((_|0)%(e|0)|0|0)!=0?(_|0)<(c[m+13124>>2]|0):0){_=1;i=j;return _|0}_=(lb(b)|0)==0&1;i=j;return _|0}function fc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;m=1<>2]|0;l=c[n+13084>>2]|0;f=c[n+13156>>2]|0;k=m+d|0;j=c[n+13120>>2]|0;m=m+e|0;n=c[n+13124>>2]|0;h=e>>l;e=((m|0)>(n|0)?n:m)>>l;if((h|0)>=(e|0)){i=g;return}d=d>>l;j=((k|0)>(j|0)?j:k)>>l;k=(d|0)<(j|0);b=b+7600|0;do{if(k){m=$(h,f)|0;l=d;do{a[(c[b>>2]|0)+(l+m)>>0]=2;l=l+1|0}while((l|0)!=(j|0))}h=h+1|0}while((h|0)!=(e|0));i=g;return}function gc(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;r=i;i=i+16|0;n=r;x=c[f+136>>2]|0;c[n+0>>2]=c[412];c[n+4>>2]=c[413];c[n+8>>2]=c[414];s=f+200|0;A=c[s>>2]|0;w=c[A+13156>>2]|0;u=c[f+3508>>2]|0;v=c[u+16>>2]|0;u=c[u+20>>2]|0;o=f+160|0;z=c[o>>2]|0;t=$(c[z+32>>2]|0,h>>c[A+13180>>2])|0;B=c[A+56>>2]|0;t=(c[z>>2]|0)+((g>>c[A+13168>>2]<>c[A+13184>>2],c[z+36>>2]|0)|0;q=(c[z+4>>2]|0)+((g>>c[A+13172>>2]<>c[A+13188>>2],c[z+40>>2]|0)|0;p=(c[z+8>>2]|0)+((g>>c[A+13176>>2]<>2]|0;B=($(h>>B,c[A+13140>>2]|0)|0)+(g>>B)|0;a:do if(!(a[(c[f+7584>>2]|0)+B>>0]|0)){B=(Bb(f)|0)&255;a[x+31276>>0]=B;if(B<<24>>24){if((c[f+3080>>2]|0)>>>0>1)x=Ab(f)|0;else x=0;rd(f,g,h,j,k,l,m,x,n);A=c[(c[s>>2]|0)+13084>>2]|0;m=g>>A;l=h>>A;if((k>>A|0)>0)x=0;else break;while(1){if((j>>A|0)>0){z=($(x+l|0,w)|0)+m|0;y=0;do{A=v+((z+y|0)*12|0)|0;c[A+0>>2]=c[n+0>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];y=y+1|0;A=c[(c[s>>2]|0)+13084>>2]|0}while((y|0)<(j>>A|0))}x=x+1|0;if((x|0)>=(k>>A|0))break a}}qd(f,g,h,j,k);y=n+10|0;a[y>>0]=0;if(!(c[f+2428>>2]|0)){A=Cb(f,j,k)|0;if((A|0)==1){A=1;z=22}else z=19}else{A=0;z=19}if((z|0)==19){B=c[f+3036>>2]|0;if(B)a[n+8>>0]=Db(f,B)|0;a[y>>0]=1;Mb(f,g,h,0);sd(f,g,h,j,k,l,m,0,n,Eb(f)|0,0);B=c[n>>2]|0;b[n>>1]=B+(e[x+31272>>1]|0);b[n+2>>1]=(B>>>16)+(e[x+31274>>1]|0);if(A)z=22}if((z|0)==22){z=c[f+3040>>2]|0;if(z)a[n+9>>0]=Db(f,z)|0;if((a[f+3047>>0]|0)==1&(A|0)==2)c[x+31272>>2]=0;else Mb(f,g,h,1);a[y>>0]=(d[y>>0]|0)+2;sd(f,g,h,j,k,l,m,0,n,Eb(f)|0,1);A=n+4|0;B=c[A>>2]|0;b[A>>1]=B+(e[x+31272>>1]|0);b[n+6>>1]=(B>>>16)+(e[x+31274>>1]|0)}A=c[(c[s>>2]|0)+13084>>2]|0;l=g>>A;m=h>>A;if((k>>A|0)>0){x=0;do{if((j>>A|0)>0){y=($(x+m|0,w)|0)+l|0;z=0;do{A=v+((y+z|0)*12|0)|0;c[A+0>>2]=c[n+0>>2];c[A+4>>2]=c[n+4>>2];c[A+8>>2]=c[n+8>>2];z=z+1|0;A=c[(c[s>>2]|0)+13084>>2]|0}while((z|0)<(j>>A|0))}x=x+1|0}while((x|0)<(k>>A|0))}}else{if((c[f+3080>>2]|0)>>>0>1)x=Ab(f)|0;else x=0;y=1<>2]|0)+13084>>2]|0;l=g>>y;m=h>>y;if((k>>y|0)>0){x=0;do{if((j>>y|0)>0){A=($(x+m|0,w)|0)+l|0;z=0;do{y=v+((A+z|0)*12|0)|0;c[y+0>>2]=c[n+0>>2];c[y+4>>2]=c[n+4>>2];c[y+8>>2]=c[n+8>>2];z=z+1|0;y=c[(c[s>>2]|0)+13084>>2]|0}while((z|0)<(j>>y|0))}x=x+1|0}while((x|0)<(k>>y|0))}}while(0);w=a[n+10>>0]|0;if(w&1){w=c[n+8>>2]|0;v=c[u+(w<<24>>24<<2)>>2]|0;if(!v){i=r;return}else w=w>>>16&255}else v=0;if(w&2){u=c[u+(a[n+9>>0]<<2)+196>>2]|0;if(!u){i=r;return}}else u=0;if(w<<24>>24==2){v=n+9|0;B=a[v>>0]|0;kc(f,t,c[(c[o>>2]|0)+32>>2]|0,c[u>>2]|0,n+4|0,g,h,j,k,b[f+(B<<1)+3264>>1]|0,b[f+(B<<1)+3392>>1]|0);s=c[s>>2]|0;if(!(c[s+4>>2]|0)){i=r;return}z=c[s+13172>>2]|0;x=g>>z;A=c[s+13184>>2]|0;y=h>>A;z=j>>z;A=k>>A;B=c[u>>2]|0;m=a[v>>0]|0;lc(f,q,c[(c[o>>2]|0)+36>>2]|0,c[B+4>>2]|0,c[B+36>>2]|0,1,x,y,z,A,n,b[f+(m<<2)+3200>>1]|0,b[f+(m<<2)+3424>>1]|0);m=c[u>>2]|0;B=a[v>>0]|0;lc(f,p,c[(c[o>>2]|0)+40>>2]|0,c[m+8>>2]|0,c[m+40>>2]|0,1,x,y,z,A,n,b[f+(B<<2)+3202>>1]|0,b[f+(B<<2)+3426>>1]|0);i=r;return}else if(w<<24>>24==3)wa();else if(w<<24>>24==1){u=n+8|0;B=a[u>>0]|0;kc(f,t,c[(c[o>>2]|0)+32>>2]|0,c[v>>2]|0,n,g,h,j,k,b[f+(B<<1)+3104>>1]|0,b[f+(B<<1)+3296>>1]|0);s=c[s>>2]|0;if(!(c[s+4>>2]|0)){i=r;return}z=c[s+13172>>2]|0;x=g>>z;A=c[s+13184>>2]|0;y=h>>A;z=j>>z;A=k>>A;B=c[v>>2]|0;m=a[u>>0]|0;lc(f,q,c[(c[o>>2]|0)+36>>2]|0,c[B+4>>2]|0,c[B+36>>2]|0,0,x,y,z,A,n,b[f+(m<<2)+3136>>1]|0,b[f+(m<<2)+3328>>1]|0);m=c[v>>2]|0;B=a[u>>0]|0;lc(f,p,c[(c[o>>2]|0)+40>>2]|0,c[m+8>>2]|0,c[m+40>>2]|0,0,x,y,z,A,n,b[f+(B<<2)+3138>>1]|0,b[f+(B<<2)+3330>>1]|0);i=r;return}else{i=r;return}}function hc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;k=c[b+136>>2]|0;h=c[b+200>>2]|0;j=c[h+13084>>2]|0;l=1<>j;h=c[h+13156>>2]|0;f=c[(c[b+3508>>2]|0)+16>>2]|0;d=d>>j;j=e>>j;e=(l|0)==0?1:l;l=(e|0)>0;if(l){b=b+7592|0;m=0;do{n=($(m+j|0,h)|0)+d|0;jf((c[b>>2]|0)+n|0,1,e|0)|0;m=m+1|0}while((m|0)<(e|0))}if((c[k+31244>>2]|0)!=1|l^1){i=g;return}else k=0;do{b=($(k+j|0,h)|0)+d|0;l=0;do{a[f+((b+l|0)*12|0)+10>>0]=0;l=l+1|0}while((l|0)<(e|0));k=k+1|0}while((k|0)<(e|0));i=g;return} -function xd(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0;n=i;o=c[g+(h*196|0)+(j<<2)+128>>2]|0;if((o|0)!=(c[k+(l*196|0)+(m<<2)+128>>2]|0)){b[a>>1]=0;b[a+2>>1]=0;k=0;i=n;return k|0}k=c[k+(l*196|0)+(m<<2)+64>>2]|0;m=e-k|0;f=f-(c[g+(h*196|0)+(j<<2)+64>>2]|0)|0;if((o|0)==0?(m|0)!=(f|0)&(k|0)!=(e|0):0){if((m+128|0)>>>0>255)m=m>>31^127;e=m<<24>>24;if((f+128|0)>>>0>255)f=f>>31^127;k=(e|0)/2|0;e=($(f<<24>>24,(((m&255)<<24>>24>-2?k:0-k|0)+16384|0)/(e|0)|0)|0)+32>>6;if((e|0)<-4096)e=-4096;else e=(e|0)>4095?4095:e;f=$(b[d>>1]|0,e)|0;f=f+127+(f>>>31)|0;o=f>>8;if((o+32768|0)>>>0>65535)o=f>>31^32767;b[a>>1]=o;d=$(b[d+2>>1]|0,e)|0;d=d+127+(d>>>31)|0;e=d>>8;if((e+32768|0)>>>0>65535)e=d>>31^32767;b[a+2>>1]=e;k=1;i=n;return k|0}b[a>>1]=b[d>>1]|0;b[a+2>>1]=b[d+2>>1]|0;k=1;i=n;return k|0}function yd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;b=(c[b+136>>2]|0)+204|0;j=e+2188|0;if(((j|0)!=(d|0)?(h=e+2184|0,(c[h>>2]|0)!=0):0)?((_d(b)|0)&255)<<24>>24!=0:0){do if(f){f=(ae(b)|0)+1|0;h=c[h>>2]|0;if(f>>>0>h>>>0){n=-1094995529;i=g;return n|0}else{h=h-f|0;break}}else h=((d-j|0)/168|0)+ -1|0;while(0);f=_d(b)|0;j=(ae(b)|0)+1|0;if((j|0)==0|j>>>0>32768){n=-1094995529;i=g;return n|0}l=$(1-(f<<1&510)|0,j)|0;f=e+(h*168|0)+2192|0;if((c[f>>2]|0)<0){c[d+4>>2]=0;c[d>>2]=0;n=0;i=g;return n|0}else{k=0;j=0;m=0}while(1){n=_d(b)|0;a[d+j+136>>0]=n;if(!((n&255|0)==0?((_d(b)|0)&255)<<24>>24==0:0)){if((k|0)<(c[f>>2]|0))n=(c[e+(h*168|0)+(k<<2)+2196>>2]|0)+l|0;else n=l;c[d+(j<<2)+8>>2]=n;j=j+1|0;m=(n>>>31)+m|0}if((k|0)<(c[f>>2]|0))k=k+1|0;else break}b=d+4|0;c[b>>2]=j;c[d>>2]=m;if((j|0)>1){e=1;do{h=c[d+(e<<2)+8>>2]|0;f=a[d+e+136>>0]|0;if((e|0)>0){k=e;do{m=k;k=k+ -1|0;l=d+(k<<2)+8|0;j=c[l>>2]|0;if((h|0)<(j|0)){c[d+(m<<2)+8>>2]=j;n=d+k+136|0;a[d+m+136>>0]=a[n>>0]|0;c[l>>2]=h;a[n>>0]=f}}while((k|0)>0);j=c[b>>2]|0}e=e+1|0}while((e|0)<(j|0));m=c[d>>2]|0}if(m>>>0>1)b=0;else{n=0;i=g;return n|0}do{m=m+ -1|0;n=d+(b<<2)+8|0;j=c[n>>2]|0;f=d+b+136|0;l=a[f>>0]|0;k=d+(m<<2)+8|0;c[n>>2]=c[k>>2];n=d+m+136|0;a[f>>0]=a[n>>0]|0;c[k>>2]=j;a[n>>0]=l;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>1>>>0);d=0;i=g;return d|0}c[d>>2]=ae(b)|0;e=ae(b)|0;h=c[d>>2]|0;if(h>>>0>15|e>>>0>15){n=-1094995529;i=g;return n|0}n=h+e|0;c[d+4>>2]=n;if(!n){n=0;i=g;return n|0}if(h){f=0;h=0;do{h=h+ -1-(ae(b)|0)|0;c[d+(f<<2)+8>>2]=h;a[d+f+136>>0]=_d(b)|0;f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}if(!e){n=0;i=g;return n|0}else{f=0;h=0}do{h=h+1+(ae(b)|0)|0;c[d+((c[d>>2]|0)+f<<2)+8>>2]=h;n=(_d(b)|0)&255;a[d+((c[d>>2]|0)+f)+136>>0]=n;f=f+1|0}while((f|0)!=(e|0));d=0;i=g;return d|0}function zd(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;g=h+204|0;j=se(13196)|0;c[e>>2]=j;if(!j){t=-12;i=f;return t|0}j=c[j+4>>2]|0;l=se(468)|0;if(!l){t=-12;i=f;return t|0}k=c[l+4>>2]|0;c[k+4>>2]=1;n=k+8|0;c[n>>2]=1;a[k>>0]=0;c[k+348>>2]=1;p=k+352|0;m=k+380|0;q=k+408|0;o=0;do{c[p+(o<<2)>>2]=1;c[m+(o<<2)>>2]=0;c[q+(o<<2)>>2]=-1;o=o+1|0}while((o|0)<(c[n>>2]|0));c[k+436>>2]=0;c[k+440>>2]=1;a[k+444>>0]=0;o=b+208|0;ue(o);c[o>>2]=l;c[j>>2]=0;o=j+72|0;c[o>>2]=1;t=Xd(g,8)|0;p=j+4|0;c[p>>2]=t;do if((t|0)<=3){a[j+8>>0]=0;n=j+13120|0;c[n>>2]=$d(g,32)|0;k=$d(g,32)|0;m=j+13124|0;c[m>>2]=k;k=Md(c[n>>2]|0,k,0,c[b+4>>2]|0)|0;if((k|0)>=0){t=Xd(g,8)|0;l=j+52|0;c[l>>2]=t+8;if(!t){p=c[p>>2]|0;if((p|0)==2){c[j+60>>2]=4;p=4}else if((p|0)==1){c[j+60>>2]=0;p=0}else if(!p){c[j+60>>2]=8;p=8}else{c[j+60>>2]=5;p=5}c[j+56>>2]=0;p=Ge(p)|0;if(p){c[j+13180>>2]=0;c[j+13168>>2]=0;t=d[p+5>>0]|0;c[j+13172>>2]=t;c[j+13176>>2]=t;t=d[p+6>>0]|0;c[j+13184>>2]=t;c[j+13188>>2]=t;c[j+64>>2]=8;if((c[o>>2]|0)>0){p=j+76|0;q=0;do{c[p+(q*12|0)>>2]=1;c[p+(q*12|0)+4>>2]=0;c[p+(q*12|0)+8>>2]=-1;q=q+1|0}while((q|0)<(c[o>>2]|0))}s=(ae(g)|0)+3|0;t=j+13064|0;c[t>>2]=s;s=1<>2]=r+(c[n>>2]|0)&s;c[m>>2]=r+(c[m>>2]|0)&s;s=j+13068|0;c[s>>2]=ae(g)|0;r=j+13072|0;c[r>>2]=(ae(g)|0)+2;o=ae(g)|0;p=c[r>>2]|0;q=j+13076|0;c[q>>2]=p+o;if(p>>>0<(c[t>>2]|0)>>>0){u=ae(g)|0;o=j+13092|0;c[o>>2]=u;p=j+13088|0;c[p>>2]=u;a[j+12940>>0]=1;a[j+12941>>0]=_d(g)|0;u=_d(g)|0;c[j+68>>2]=u;if(u){u=j+13044|0;a[u>>0]=(Xd(g,4)|0)+1;a[j+13045>>0]=(Xd(g,4)|0)+1;v=(ae(g)|0)+3|0;c[j+13048>>2]=v;c[j+13052>>2]=v+(ae(g)|0);if((d[u>>0]|0|0)>(c[l>>2]|0)){k=-1094995529;break}a[j+13056>>0]=_d(g)|0}c[j+2184>>2]=0;a[j+12942>>0]=0;a[j+13060>>0]=1;a[j+13061>>0]=_d(g)|0;c[j+160>>2]=0;c[j+164>>2]=1;if((_d(g)|0)!=0?(v=_d(g)|0,Zd(g,7),(v|0)!=0):0){c[j+13096>>2]=_d(g)|0;c[j+13100>>2]=_d(g)|0;c[j+13104>>2]=_d(g)|0;c[j+13108>>2]=_d(g)|0;_d(g)|0;c[j+13112>>2]=_d(g)|0;_d(g)|0;c[j+13116>>2]=_d(g)|0;_d(g)|0}g=c[n>>2]|0;c[j+12>>2]=g;n=c[m>>2]|0;c[j+16>>2]=n;t=c[t>>2]|0;v=(c[s>>2]|0)+t|0;c[j+13080>>2]=v;s=t+ -1|0;c[j+13084>>2]=s;m=1<>v;c[j+13128>>2]=u;m=n+ -1+m>>v;c[j+13132>>2]=m;c[j+13136>>2]=$(m,u)|0;c[j+13140>>2]=g>>t;c[j+13144>>2]=n>>t;u=c[r>>2]|0;c[j+13148>>2]=g>>u;c[j+13152>>2]=n>>u;c[j+13156>>2]=g>>s;c[j+13160>>2]=n>>s;u=v-u|0;c[j+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;t=(1<>>0>6):0)?(c[p>>2]|0)>>>0<=u>>>0:0)?(c[o>>2]|0)>>>0<=u>>>0:0)?(c[q>>2]|0)>>>0<=(v>>>0>5?5:v)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){g=b+272|0;h=c[g>>2]|0;if((h|0)!=0?(v=c[e>>2]|0,(cf(c[h+4>>2]|0,c[v+4>>2]|0,c[v+8>>2]|0)|0)==0):0){ue(e);v=0;i=f;return v|0}else h=0;do{j=b+(h<<2)+400|0;k=c[j>>2]|0;do if(k){if(c[c[k+4>>2]>>2]|0)break;ue(j)}while(0);h=h+1|0}while((h|0)!=256);h=c[g>>2]|0;do if(h){j=b+200|0;if((c[j>>2]|0)!=(c[h+4>>2]|0))break;u=b+1424|0;ue(u);v=te(c[g>>2]|0)|0;c[u>>2]=v;if(v)break;c[j>>2]=0}while(0);ue(g);c[g>>2]=c[e>>2];v=0;i=f;return v|0}}else k=-1094995529}else k=-22}else k=-1094995529}}else k=-1094995529;while(0);ue(e);v=k;i=f;return v|0}function Ad(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=le(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=pe(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){ie(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=ae(n)|0;a:do if((h>>>0<=255?(k=ae(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(_d(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=Xd(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(ae(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(ae(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=be(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=ae(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=be(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=be(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(_d(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(ae(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(ae(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=ne(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=ne(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(_d(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(ae(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=gf(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=ff(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(ae(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=gf(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=ff(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(_d(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(_d(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(_d(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(_d(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(be(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(be(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(_d(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((_d(v)|0)&255)<<24>>24)){y=ae(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;mf(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(be(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(be(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(_d(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(ae(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(_d(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((_d(n)|0)!=0?(I=_d(n)|0,Xd(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(ae(p)|0)+2;a[n+1630>>0]=_d(p)|0;I=(_d(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=ae(p)|0;I=ae(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=be(p)|0;a[n+l+1639>>0]=be(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=ae(p)|0;a[n+1645>>0]=ae(p)|0}while(0);l=ne((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=ne((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=ne(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=ne(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=ne(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=ne(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=ne(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=ne(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=ne($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=ne(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;ue(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);ue(e);I=b;i=f;return I|0}function Bd(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;ie(b+1648|0);ie(b+1652|0);ie(b+1656|0);ie(b+1660|0);ie(b+1664|0);ie(b+1668|0);ie(b+1672|0);ie(b+1680|0);ie(b+1676|0);ie(b+1688|0);ie(d);i=a;return}function Cd(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+3500|0;f=a+7776|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=Xd(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=Xd(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==256){Dd(a);break}else if((j|0)==257){b[f>>1]=Xd(h,16)|0;break}else{Zd(h,k<<3);break}else if((j|0)==132){Dd(a);break}else{Zd(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if((Yd(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Dd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(Xd(e,8)|0)&255;f=b+7720|0;h=0;do{if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+7672>>0]=Xd(e,8)|0;j=j+1|0}while((j|0)!=16)}else if((g|0)==1)Zd(e,16);else if((g|0)==2)Zd(e,32);h=h+1|0}while((h|0)!=3);i=d;return}function Ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=le(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Ja[c[b+76>>2]&7](a)|0;if((a|0)>=0){h=0;i=d;return h|0}ie(e);c[f>>2]=0;h=a;i=d;return h|0}function Fd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Ja[d&7](a)|0;c[a+796>>2]=0;ie(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Gd(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Oa[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Hd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ma[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Id(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Ge(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=re(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;jf(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=le(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Kd(a){a=a|0;var b=0,c=0;b=i;c=ee(976)|0;if(c){if((Jd(c,a)|0)<0){he(c);c=0}}else c=0;i=b;return c|0}function Ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}De(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ma[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){De(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Nd(a,b){a=a|0;b=b|0;return 0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=Aa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Pd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Od(a,c[b>>2]|0,d)|0;i=e;return a|0}function Qd(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)De(b);i=a;return}function Rd(a){a=a|0;return}function Sd(a,b,c){a=a|0;b=b|0;c=c|0;return}function Td(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ud(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Vd(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Wd(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[766]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[3072+e>>0]=(g?8:0)-(d[4872+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[3072]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4416+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3584>>0]=j;a[h+3584>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4672+e>>0]|0)<<1;a[f+4224>>0]=j;a[f+4225>>0]=j|1;if(e){h=(d[4736+e>>0]|0)<<1;j=128-f|0;a[j+4095>>0]=h;a[j+4094>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+4095>>0]=1;a[e+4094>>0]=0;e=1;continue}}g=4352|0;f=4800|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[766]=1;i=b;return}function Xd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function Yd(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function Zd(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function _d(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function $d(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(lf(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=$d(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4872+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=$d(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=$d(a,j)|0;j=j+ -1|0;i=b;return j|0}function be(a){a=a|0;var b=0;b=i;a=ae(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function ce(b,c,d,e,f,g,h,j,k,l){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;if((k|0)==0|(l|0)==0){i=m;return}if((j|0)<(l|0)){if((j|0)<=(0-g|0)){y=1-g|0;c=c+($(y-j|0,e)|0)|0;j=y}}else{y=l+ -1|0;c=c+($(y-j|0,e)|0)|0;j=y}if((h|0)<(k|0)){if((h|0)<=(0-f|0)){y=1-f|0;c=c+(y-h)|0;h=y}}else{y=k+ -1|0;c=c+(y-h)|0;h=y}s=(j|0)>0;v=s?0:0-j|0;r=(h|0)>0;n=r?0:0-h|0;t=l-j|0;t=(t|0)<(g|0)?t:g;o=k-h|0;k=(o|0)<(f|0);o=k?o:f;p=o-n|0;q=c+(n+($(v,e)|0))|0;y=b+n|0;if((v|0)>0){u=(s?j:0)-j|0;w=(r?h:0)+($(u,d)|0)-h|0;x=0;while(1){mf(y|0,q|0,p|0)|0;x=x+1|0;if((x|0)>=(v|0))break;else y=y+d|0}b=b+w|0}else{b=y;u=0}if((u|0)<(t|0)){l=j+ -1-l|0;y=~g;y=(l|0)>(y|0)?l:y;l=~y;t=$(~u-y|0,d)|0;j=(r?h:0)+($((s?j+ -1|0:-1)-j-u-y|0,e)|0)-h|0;h=b;while(1){mf(h|0,q|0,p|0)|0;u=u+1|0;if((u|0)==(l|0))break;else{h=h+d|0;q=q+e|0}}b=b+t|0;q=c+j|0;u=l}l=q+(0-e)|0;if((u|0)<(g|0)){e=$(g-u|0,d)|0;c=b;while(1){mf(c|0,l|0,p|0)|0;u=u+1|0;if((u|0)==(g|0))break;else c=c+d|0}b=b+e|0}if(!g){i=m;return}e=(n|0)>0;p=o+ -1|0;c=b+(0-(($(g,d)|0)+n))|0;while(1){g=g+ -1|0;if(e){q=c+n|0;l=0;do{a[c+l>>0]=a[q>>0]|0;l=l+1|0}while((l|0)<(n|0))}if(k){l=c+p|0;q=o;do{a[c+q>>0]=a[l>>0]|0;q=q+1|0}while((q|0)<(f|0))}if(!g)break;else c=c+d|0}i=m;return}function de(a,b){a=a|0;b=b|0;c[a>>2]=1;return}function ee(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1216]|0;if((d+ -32|0)>>>0>=a>>>0){e=$e(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=$e(1)|0}else e=0;i=b;return e|0}function fe(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1216]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=bf(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){af(a);d=0;i=e;return d|0}if(((c[1216]|0)+ -32|0)>>>0>>0)b=0;else b=bf(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}af(a);d=0;i=e;return d|0}function he(a){a=a|0;var b=0;b=i;af(a);i=b;return}function ie(a){a=a|0;var b=0;b=i;af(c[a>>2]|0);c[a>>2]=0;i=b;return}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1216]|0)+ -32|0)>>>0>=f>>>0):0)a=bf(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=ge(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function le(a){a=a|0;var b=0,c=0;c=i;b=ee(a)|0;if(b)jf(b|0,0,a|0)|0;i=c;return b|0}function me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;af(c[a>>2]|0);f=ee(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function ne(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=ee($(b,a)|0)|0;else b=0;i=c;return b|0}function oe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=ee(e)|0,(d|0)!=0):0)jf(d|0,0,e|0)|0;else d=0;i=c;return d|0}function pe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=le(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=le(12)|0;if(!j){ie(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function qe(a,b){a=a|0;b=b|0;a=i;he(b);i=a;return}function re(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=ee(a)|0;c[d>>2]=e;if(e){a=pe(e,a,7,0,0)|0;if(!a){ie(d);a=0}}else a=0;i=b;return a|0}function se(a){a=a|0;var b=0,d=0;b=i;d=re(a)|0;if(!d){d=0;i=b;return d|0}jf(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function te(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=le(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function ue(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;ie(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Fa[c[f+12>>2]&15](c[f+16>>2]|0,c[f>>2]|0);ie(d);i=b;return}function ve(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=le(20)|0;if(!e){b=0;i=d;return b|0}c[e+12>>2]=a;c[e+16>>2]=(b|0)!=0?b:4;c[e+4>>2]=1;b=e;i=d;return b|0}function we(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b;if(!a){i=b;return}e=c[a>>2]|0;if(!e){i=b;return}c[a>>2]=0;f=e+4|0;a=c[f>>2]|0;c[f>>2]=a+ -1;c[d>>2]=a+ -1;if(c[d>>2]|0){i=b;return}xe(e);i=b;return}function xe(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;if(!(c[a>>2]|0)){ie(d);i=b;return}do{f=c[a>>2]|0;c[e>>2]=f;c[c[d>>2]>>2]=c[f+16>>2];f=c[e>>2]|0;Fa[c[f+8>>2]&15](c[f+4>>2]|0,c[f>>2]|0);ie(e);a=c[d>>2]|0}while((c[a>>2]|0)!=0);ie(d);i=b;return}function ye(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;b=d+4|0;e=d;f=c[a>>2]|0;j=0;while(1){if((f|0)==(j|0)){f=4;break}g=c[a>>2]|0;if((g|0)==(f|0))c[a>>2]=0;if(!g){f=5;break}else{j=f;f=g}}if((f|0)==4)if(!j)f=5;a:do if((f|0)==5){g=a+4|0;f=a+8|0;b:do if((c[g>>2]|0)<=(c[f>>2]|0))c:while(1){c[b>>2]=c[g>>2];j=c[b>>2]|0;c[b>>2]=c[f>>2];if((j|0)>(c[b>>2]|0))break b;h=c[a>>2]|0;j=0;while(1){if((h|0)==(j|0))break;j=c[a>>2]|0;if((j|0)==(h|0))c[a>>2]=0;if(!j)continue c;else{k=h;h=j;j=k}}if(j)break a}while(0);j=Ja[c[a+16>>2]&7](c[a+12>>2]|0)|0;c[e>>2]=j;if(!j){k=0;i=d;return k|0}h=le(20)|0;if(!h){ue(e);k=0;i=d;return k|0}else{c[h>>2]=c[c[j>>2]>>2];c[h+4>>2]=c[(c[j>>2]|0)+16>>2];c[h+8>>2]=c[(c[j>>2]|0)+12>>2];c[h+12>>2]=a;c[(c[j>>2]|0)+16>>2]=h;c[(c[c[e>>2]>>2]|0)+12>>2]=8;k=c[g>>2]|0;c[g>>2]=k+1;c[b>>2]=k+1;k=c[f>>2]|0;c[f>>2]=k+1;c[b>>2]=k+1;k=c[e>>2]|0;i=d;return k|0}}while(0);e=j+16|0;ze(c[e>>2]|0);c[e>>2]=0;e=pe(c[j>>2]|0,c[a+12>>2]|0,8,j,0)|0;if(!e){ze(j);k=0;i=d;return k|0}else{j=a+4|0;k=c[j>>2]|0;c[j>>2]=k+1;c[b>>2]=k+1;k=e;i=d;return k|0}return 0}function ze(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=i;if(!a){i=d;return}b=c[a+12>>2]|0;f=a+16|0;if(!(c[f>>2]|0))e=a;else do{e=c[f>>2]|0;f=e+16|0}while((c[f>>2]|0)!=0);f=c[b>>2]|0;if(!f)c[b>>2]=a;if(!f){i=d;return}do{f=c[b>>2]|0;g=0;while(1){if((f|0)==(g|0))break;g=c[b>>2]|0;if((g|0)==(f|0))c[b>>2]=0;if(!g){g=0;break}else{h=f;f=g;g=h}}f=e+16|0;c[f>>2]=g;if(c[f>>2]|0)do{e=c[f>>2]|0;f=e+16|0}while((c[f>>2]|0)!=0);f=c[b>>2]|0;if(!f)c[b>>2]=a}while((f|0)!=0);i=d;return}function Ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=c[a+12>>2]|0;ze(a);f=d+4|0;a=c[f>>2]|0;c[f>>2]=a+ -1;c[e>>2]=a+ -1;if(c[e>>2]|0){i=b;return}xe(d);i=b;return}function Be(){var a=0,b=0,d=0;a=i;b=le(400)|0;if(!b){b=0;i=a;return b|0}jf(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function Ce(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){De(d);ie(a)}i=b;return}function De(a){a=a|0;var b=0,d=0;b=i;ue(a+304|0);ue(a+308|0);ue(a+312|0);ue(a+316|0);ue(a+320|0);ue(a+324|0);ue(a+328|0);ue(a+332|0);jf(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function Ee(a,b){a=a|0;b=b|0;var d=0;d=i;mf(a|0,b|0,400)|0;jf(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)wa();else{e=f;g=0}while(1){if((e|0)!=0?(j=te(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){De(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Ge(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[5128+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=5132+(e*24|0)|0;i=d;return f|0}function He(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Ie(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Je(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0;f=i;i=i+32|0;k=f+12|0;h=f;if(!(c[b+8>>2]|0)){u=-1;i=f;return u|0}g=b+68|0;do if(a[g>>0]|0){if(!(a[b+34>>0]|0)){u=-1;i=f;return u|0}if(!(a[b+41>>0]|0)){u=-1;i=f;return u|0}if((c[b+72>>2]|0)!=(e|0)){u=-1;i=f;return u|0}e=b+60|0;j=c[e>>2]|0;g=c[b+64>>2]|0;if((j|0)>=(g|0)){u=-1;i=f;return u|0}u=(c[b+56>>2]|0)+j|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Te(b,k,h,u,g-j|0,0)|0;he(c[k>>2]|0);he(c[h>>2]|0);if((g|0)<0){u=-1;i=f;return u|0}else{c[e>>2]=(c[e>>2]|0)+g;h=b+24|0;break}}else{if(e>>>0>1){u=-1;i=f;return u|0}a[b+76>>0]=(e|0)==1&1;m=b+77|0;a[m>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(u=b+16|0,p=c[u>>2]|0,l=b+84|0,c[l>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=ee(p)|0,c[b+128>>2]=ee(c[u>>2]|0)|0,c[b+196>>2]=ee((c[l>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){k=0;do{c[b+(k<<2)+132>>2]=ee(c[l>>2]|0)|0;c[b+(k<<2)+164>>2]=ee(c[l>>2]|0)|0;k=k+1|0}while((k|0)!=8)}k=d[b+30>>0]|0;v=(a[m>>0]|0)!=0?16:8;l=b+36|0;u=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=k+ -8|0;r=o/+(224<>2]=va(+(r*y*2.0))|0;w=1.0-s;x=w-t;c[b+224>>2]=va(+(r*(s*2.0*w/x)))|0;c[b+228>>2]=va(+(r*(t*2.0*y/x)))|0;c[b+232>>2]=va(+(r*w*2.0))|0}j=va(+q)|0;c[b+208>>2]=j;c[b+200>>2]=p;p=1<>2]=p;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[u>>2]|0)}else{c[b+212>>2]=j;c[b+216>>2]=p}c[b+240>>2]=k;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=4;else c[b+248>>2]=c[6256+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e}while(0);c[b+92>>2]=He(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=He(b,b+112|0,1)|0;c[b+100>>2]=He(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=He(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Ke(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0;g=i;h=c[b+8>>2]|0;if((h|0)!=0?(a[b+34>>0]|0)!=0:0){h=h+128|0;h=rf(e[b+50>>1]|0,0,c[h>>2]|0,c[h+4>>2]|0)|0;c[d>>2]=h;d=e[b+52>>1]|0;c[f>>2]=d;i=g;return}c[d>>2]=0;d=1;c[f>>2]=d;i=g;return}function Le(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;g=i;h=b+80|0;l=c[h>>2]|0;if(l>>>0>=(c[b+20>>2]|0)>>>0){u=-1;i=g;return u|0}f=c[b+16>>2]|0;m=(c[b+92>>2]|0)+($(c[b+108>>2]|0,l)|0)|0;j=b+76|0;if(!(a[j>>0]|0))k=(a[b+78>>0]|0)!=0?4:3;else k=4;n=c[b+24>>2]|0;if((n|0)==2){u=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;p=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;t=b+124|0;q=b+30|0;r=b+28|0;s=b+196|0;Ne(c[t>>2]|0,u,f,d[q>>0]|0,d[r>>0]|0,c[s>>2]|0);u=b+128|0;Ne(c[u>>2]|0,p,f,d[q>>0]|0,d[r>>0]|0,c[s>>2]|0);Qa[c[b+248>>2]&7](b+200|0,e,m,c[t>>2]|0,c[u>>2]|0,f,k)}else if((n|0)==3){t=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;u=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;Qa[c[b+248>>2]&7](b+200|0,e,m,t,u,f,k)}else if(!n)Qa[c[b+248>>2]&7](b+200|0,e,m,0,0,f,k);else if((n|0)==1){if(!l){n=b+96|0;o=b+112|0;p=b+100|0;q=b+116|0;r=b+84|0;s=b+88|0;t=0;do{u=(t|0)>4?t+ -8|0:t;if((u|0)<0)u=0;else{v=c[s>>2]|0;u=(u|0)<(v|0)?u:v+ -1|0}w=(c[n>>2]|0)+($(c[o>>2]|0,u)|0)|0;v=(c[p>>2]|0)+($(c[q>>2]|0,u)|0)|0;mf(c[b+(t<<2)+132>>2]|0,w|0,c[r>>2]|0)|0;mf(c[b+(t<<2)+164>>2]|0,v|0,c[r>>2]|0)|0;t=t+1|0}while((t|0)!=8)}o=l>>1;q=(o|0)%8|0;w=l&1;n=b+124|0;t=b+196|0;u=b+30|0;v=b+28|0;Me(c[n>>2]|0,b+132|0,f,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);p=b+128|0;Me(c[p>>2]|0,b+164|0,f,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);if(w){u=(q+5|0)%8|0;t=o+5|0;v=c[b+88>>2]|0;v=(t|0)<(v|0)?t:v+ -1|0;t=(c[b+96>>2]|0)+($(v,c[b+112>>2]|0)|0)|0;v=(c[b+100>>2]|0)+($(c[b+116>>2]|0,v)|0)|0;w=b+84|0;mf(c[b+(u<<2)+132>>2]|0,t|0,c[w>>2]|0)|0;mf(c[b+(u<<2)+164>>2]|0,v|0,c[w>>2]|0)|0}Qa[c[b+248>>2]&7](b+200|0,e,m,c[n>>2]|0,c[p>>2]|0,f,k)}else{w=-1;i=g;return w|0}a:do if(!(a[b+31>>0]|0)){if(a[j>>0]|0){if(!(a[b+29>>0]|0)){if((f|0)<=0)break;b=e+3|0;e=0;while(1){a[b>>0]=-1;e=e+1|0;if((e|0)==(f|0))break a;else b=b+4|0}}j=c[b+104>>2]|0;k=$(c[b+120>>2]|0,l)|0;o=e+3|0;if((c[b+240>>2]|0)==8){if((f|0)>0){l=0;while(1){a[o>>0]=a[j+(l+k)>>0]|0;l=l+1|0;if((l|0)==(f|0))break;else o=o+4|0}}}else{l=c[b+208>>2]|0;m=c[b+204>>2]|0;n=c[b+200>>2]|0;if((f|0)>0){p=0;while(1){a[o>>0]=($(d[j+(p+k)>>0]|0,l)|0)+m>>n;p=p+1|0;if((p|0)==(f|0))break;else o=o+4|0}}}if(a[b+33>>0]|0){if(!(c[1306]|0)){c[1306]=1;b=1;do{c[5232+(b<<2)>>2]=(((b|0)/2|0)+16711808|0)/(b|0)|0;b=b+1|0}while((b|0)!=256)}if((f|0)>0){b=0;while(1){k=a[e+3>>0]|0;if(!(k<<24>>24)){a[e>>0]=-1;a[e+1>>0]=-1;a[e+2>>0]=-1}else{j=c[5232+((k&255)<<2)>>2]|0;l=a[e>>0]|0;if((l&255)<(k&255))l=(($(l&255,j)|0)+32768|0)>>>16&255;else l=-1;a[e>>0]=l;l=e+1|0;m=a[l>>0]|0;if((m&255)<(k&255))m=(($(m&255,j)|0)+32768|0)>>>16&255;else m=-1;a[l>>0]=m;l=e+2|0;m=a[l>>0]|0;if((m&255)<(k&255))j=(($(m&255,j)|0)+32768|0)>>>16&255;else j=-1;a[l>>0]=j}b=b+1|0;if((b|0)==(f|0))break;else e=e+4|0}}}}}else{m=c[b+104>>2]|0;l=$(c[b+120>>2]|0,l)|0;b=c[b+240>>2]|0;q=1<0;if(p){o=e;n=0;while(1){v=d[m+(n+l)>>0]|0;a[o>>0]=($(d[o>>0]|0,v)|0)+q>>b;w=o+1|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;w=o+2|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;n=n+1|0;if((n|0)==(f|0))break;else o=o+k|0}}if(!((a[j>>0]|0)==0|p^1)){e=e+3|0;b=0;while(1){a[e>>0]=-1;b=b+1|0;if((b|0)==(f|0))break;else e=e+4|0}}}while(0);c[h>>2]=(c[h>>2]|0)+1;w=0;i=g;return w|0}function Me(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;n=i;p=c[f+((h+5&7)<<2)>>2]|0;t=c[f+((h+6&7)<<2)>>2]|0;q=c[f+((h+7&7)<<2)>>2]|0;s=c[f+((h&7)<<2)>>2]|0;r=c[f+((h+1&7)<<2)>>2]|0;o=c[f+((h+2&7)<<2)>>2]|0;f=c[f+((h+3&7)<<2)>>2]|0;u=k+ -8|0;v=1<>1;h=(g+1|0)/2|0;w=(g|0)>0;if(!l){if(w){l=0;do{y=$(d[t+l>>0]|0,-6)|0;z=$(d[r+l>>0]|0,-10)|0;b[j+(l+3<<1)>>1]=(d[p+l>>0]<<1)+v+y+((d[q+l>>0]|0)*18|0)+((d[s+l>>0]|0)*57|0)+z+(d[o+l>>0]<<2)-(d[f+l>>0]|0)>>u;l=l+1|0}while((l|0)<(h|0))}}else if(w){l=0;do{y=$(d[q+l>>0]|0,-10)|0;z=$(d[o+l>>0]|0,-6)|0;b[j+(l+3<<1)>>1]=v-(d[p+l>>0]|0)+(d[t+l>>0]<<2)+y+((d[s+l>>0]|0)*57|0)+((d[r+l>>0]|0)*18|0)+z+(d[f+l>>0]<<1)>>u;l=l+1|0}while((l|0)<(h|0))}o=j+6|0;z=b[o>>1]|0;b[j>>1]=z;q=j+2|0;b[q>>1]=z;p=j+4|0;b[p>>1]=z;z=b[j+(h+2<<1)>>1]|0;b[j+(h+3<<1)>>1]=z;b[j+(h+4<<1)>>1]=z;b[j+(h+5<<1)>>1]=z;b[j+(h+6<<1)>>1]=z;h=(1<>1;t=20-k|0;s=1<1){r=g+ -2|0;k=r>>>1;q=k<<1;f=e;while(1){u=(b[o>>1]|0)+m>>p;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f>>0]=u;z=$((b[o+4>>1]|0)+(b[o+ -2>>1]|0)|0,-11)|0;u=o;o=o+2|0;u=s-(b[u+ -6>>1]|0)-(b[u+8>>1]|0)+((b[u+6>>1]|0)+(b[u+ -4>>1]|0)<<2)+z+(((b[o>>1]|0)+(b[u>>1]|0)|0)*40|0)>>t;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f+1>>0]=u;g=g+ -2|0;if((g|0)<=1)break;else f=f+2|0}e=e+(q+2)|0;g=r-q|0;o=j+(k+4<<1)|0}if(!g){i=n;return}j=(b[o>>1]|0)+m>>p;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}else{k=20-k|0;m=1<>1]|0;v=b[q>>1]|0;u=b[p>>1]|0;f=b[o>>1]|0;s=b[j+8>>1]|0;t=b[j+10>>1]|0;if((g|0)>1){r=g+ -2|0;p=r>>>1;q=p<<1;x=e;while(1){w=b[o+6>>1]|0;y=f*57|0;z=(t<<2)+m+($(s,-10)|0)+y+(u*18|0)+($(v,-6)|0)+(l<<1)-w>>k;if((z|0)<0)z=0;else z=((z|0)>(h|0)?h:z)&255;a[x>>0]=z;l=($(t,-6)|0)+m+(s*18|0)+y+($(u,-10)|0)-l+(v<<2)+(w<<1)>>k;if((l|0)<0)l=0;else l=((l|0)>(h|0)?h:l)&255;a[x+1>>0]=l;g=g+ -2|0;if((g|0)<=1)break;else{B=t;A=s;y=f;z=u;l=v;t=w;x=x+2|0;o=o+2|0;s=B;f=A;u=y;v=z}}l=v;v=u;u=f;f=s;s=t;t=w;e=e+(q+2)|0;g=r-q|0;o=j+(p+4<<1)|0}if(!g){i=n;return}j=(t<<2)+m+($(s,-10)|0)+(f*57|0)+(u*18|0)+($(v,-6)|0)+(l<<1)-(b[o+6>>1]|0)>>k;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}}function Ne(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(e+1|0)/2|0;k=h+3|0;mf(k|0,c|0,v|0)|0;jf(h|0,a[c>>0]|0,3)|0;jf(h+(v+3)|0,a[c+(v+ -1)>>0]|0,4)|0;c=(1<1){f=e+ -2|0;g=f>>>1;l=g<<1;m=b;while(1){a[m>>0]=a[k>>0]|0;v=$((d[k+2>>0]|0)+(d[k+ -1>>0]|0)|0,-11)|0;n=k;k=k+1|0;n=32-(d[n+ -3>>0]|0)-(d[n+4>>0]|0)+((d[n+3>>0]|0)+(d[n+ -2>>0]|0)<<2)+v+(((d[k>>0]|0)+(d[n>>0]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&255;a[m+1>>0]=n;e=e+ -2|0;if((e|0)<=1)break;else m=m+2|0}b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}a[b>>0]=a[k>>0]|0;i=j;return}q=d[h>>0]|0;r=d[h+1>>0]|0;m=d[h+2>>0]|0;p=d[k>>0]|0;o=d[h+4>>0]|0;n=d[h+5>>0]|0;if((e|0)>1){f=e+ -2|0;g=f>>>1;l=g<<1;t=b;while(1){s=d[k+3>>0]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(m*18|0)+($(r,-6)|0)+(q<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&255;a[t>>0]=v;q=($(n,-6)|0)+32+(o*18|0)+u+($(m,-10)|0)-q+(r<<2)+(s<<1)>>6;if((q|0)<0)q=0;else q=((q|0)>(c|0)?c:q)&255;a[t+1>>0]=q;e=e+ -2|0;if((e|0)<=1)break;else{x=n;w=o;u=p;v=m;q=r;n=s;t=t+2|0;k=k+1|0;o=x;p=w;m=u;r=v}}q=r;r=m;m=p;p=o;o=n;n=s;b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(m*18|0)+($(r,-6)|0)+(q<<1)-(d[k+3>>0]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&255;a[b>>0]=h;i=j;return}function Oe(){var a=0,b=0;a=i;b=le(252)|0;if(!b)b=0;i=a;return b|0}function Pe(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;g=i;i=i+80|0;h=g+64|0;j=g+52|0;u=g+48|0;s=g+44|0;r=g+40|0;w=g+36|0;n=g;y=a[d+40>>0]|0;a:do if(((((((f|0)>=6?(a[e>>0]|0)==66:0)?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==71:0)?(a[e+3>>0]|0)==-5:0)?(R=a[e+4>>0]|0,P=R&255,z=P>>>5,c[n+8>>2]=z,(R&255)<=191):0)?(R=(P&15)+8|0,a[n+13>>0]=R,(R&255)>>>0<=14):0){H=a[e+5>>0]|0;v=H&255;I=v>>>4;c[n+24>>2]=I;A=v&8;N=v>>>2&1;a[n+16>>0]=v>>>1&1;p=n+17|0;a[p>>0]=v&1;v=n+18|0;b[v>>1]=0;q=n+20|0;b[q>>1]=0;t=n+22|0;b[t>>1]=0;Q=n+12|0;a[Q>>0]=0;R=n+14|0;a[R>>0]=0;O=n+15|0;a[O>>0]=0;if(!(P&16))if(!N)N=0;else{a[Q>>0]=1;a[R>>0]=1;N=1}else{a[Q>>0]=1;a[O>>0]=N;N=0}if((((((((((H&255)<=79?(z|0)!=0|(I|0)==0:0)?!(N<<24>>24!=0&(z|0)==0):0)?(G=We(n,e+6|0,f+ -6|0)|0,(G|0)>=0):0)?(F=(c[n>>2]|0)>>>0>1073741823?-1:G,(F|0)>=0):0)?(L=F+6|0,J=n+4|0,E=We(J,e+L|0,f-L|0)|0,(E|0)>=0):0)?(B=c[J>>2]|0,K=B>>>0>1073741823?-1:E,(K|0)>=0):0)?(C=K+L|0,!((c[n>>2]|0)==0|(B|0)==0)):0)?(o=n+28|0,D=We(o,e+C|0,f-C|0)|0,(D|0)>=0):0)?(M=(c[o>>2]|0)>>>0>1073741823?-1:D,(M|0)>=0):0){z=M+C|0;c[h>>2]=0;do if(!A){c[n+32>>2]=0;x=48}else{A=We(h,e+z|0,f-z|0)|0;if((A|0)<0){z=-1;break a}C=c[h>>2]|0;A=C>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}B=A+z|0;A=n+32|0;c[A>>2]=0;z=B+C|0;if((z|0)>(f|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[p>>0]|0)==0:0)break;if((B|0)<(z|0))x=A;else{z=B;x=48;break}while(1){A=We(j,e+B|0,z-B|0)|0;if((A|0)<0){z=-1;break a}B=A+B|0;C=We(u,e+B|0,z-B|0)|0;if((C|0)<0){z=-1;break a}A=c[u>>2]|0;C=A>>>0>1073741823?-1:C;if((C|0)<0){z=-1;break a}C=C+B|0;B=C+A|0;if(B>>>0>z>>>0){z=-1;break a}do if(a[p>>0]|0){if((c[j>>2]|0)!=5)break;E=We(s,e+C|0,z-C|0)|0;if((E|0)<0){z=-1;break a}D=c[s>>2]|0;E=D>>>0>1073741823?-1:E;if((E|0)<0){z=-1;break a}F=E+C|0;G=We(r,e+F|0,z-F|0)|0;if((G|0)<0){z=-1;break a}E=c[r>>2]|0;G=E>>>0>1073741823?-1:G;if((G|0)<0){z=-1;break a}R=G+F|0;if((We(w,e+R|0,z-R|0)|0)<0){z=-1;break a}F=c[w>>2]|0;if(!((E&65535|0)==(E|0)&((F>>>0>1073741823|(E|0)==0|(F|0)==0)^1))){z=-1;break a}if((F&65535|0)!=(F|0)){z=-1;break a}if((D&65535|0)!=(D|0)){z=-1;break a}b[v>>1]=D;b[q>>1]=E;b[t>>1]=F}while(0);if(y){R=ee(16)|0;c[R>>2]=c[j>>2];Q=R+4|0;c[Q>>2]=A;c[x>>2]=R;x=ee(A)|0;c[R+8>>2]=x;mf(x|0,e+C|0,c[Q>>2]|0)|0;x=R+12|0}if((B|0)>=(z|0)){z=B;x=48;break}}}while(0);do if((x|0)==48){if(!(a[p>>0]|0))break;if(!(b[q>>1]|0)){z=-1;break a}}while(0);if(c[o>>2]|0)break;c[o>>2]=f-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=g;return R|0}q=c[n>>2]|0;r=c[n+4>>2]|0;u=c[n+12>>2]|0;v=u&255;w=c[n+24>>2]|0;s=(u&65535)>>>8;x=s&255;s=s&65535;o=d+16|0;c[o>>2]=q;p=d+20|0;c[p>>2]=r;t=c[n+8>>2]|0;A=d+24|0;c[A>>2]=t;y=u>>>24&255;u=u>>>16&255;if((t|0)==5){c[A>>2]=2;a[d+28>>0]=0;t=2}else if((t|0)==4){c[A>>2]=1;a[d+28>>0]=0;t=1}else{c[A>>2]=t;a[d+28>>0]=1}a[d+29>>0]=v;a[d+33>>0]=y;a[d+31>>0]=u;u=c[n+16>>2]|0;a[d+32>>0]=u;c[d+36>>2]=w;a[d+30>>0]=x;w=d+34|0;a[w>>0]=(u&65535)>>>8;b[d+48>>1]=u>>>16;u=c[n+20>>2]|0;b[d+50>>1]=u;b[d+52>>1]=u>>>16;u=d+44|0;c[u>>2]=c[n+32>>2];do if(((c[n+28>>2]|0)+z|0)>>>0<=f>>>0){x=e+z|0;n=f-z|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;if(!(v<<24>>24))y=n;else{v=Se(h,d+12|0,d+4|0,x,n,q,r,0,s)|0;if((v|0)<0)break;x=e+(v+z)|0;y=n-v|0}v=d+8|0;q=Se(j,v,d,x,y,q,r,t,s)|0;if(((q|0)>=0?(l=y-q|0,k=Te(d,h,j,x+q|0,l,1)|0,he(c[h>>2]|0),he(c[j>>2]|0),(k|0)>=0):0)?(m=k+(n-l)|0,(m|0)>=0):0){h=m+z|0;a[d+41>>0]=1;if(!(a[w>>0]|0))Qe(d);else{j=f-h|0;f=ee(j)|0;c[d+56>>2]=f;if(!f)break;mf(f|0,e+h|0,j|0)|0;c[d+64>>2]=j;c[d+60>>2]=0}R=c[v>>2]|0;if((c[R+64>>2]|0)>=(c[o>>2]|0)?(c[R+68>>2]|0)>=(c[p>>2]|0):0){c[d+80>>2]=-1;R=0;i=g;return R|0}}}while(0);Ce(d+8|0);Ce(d+12|0);c[u>>2]=0;R=-1;i=g;return R|0}function Qe(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Fd(e)|0;he(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Fd(d)|0;he(c[a>>2]|0);c[a>>2]=0;i=b;return}function Re(a){a=a|0;var b=0,d=0;b=i;he(c[a+124>>2]|0);he(c[a+128>>2]|0);d=0;do{he(c[a+(d<<2)+132>>2]|0);he(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);he(c[a+196>>2]|0);he(c[a+56>>2]|0);Qe(a);Ce(a+8|0);Ce(a+12|0);he(a);i=b;return}function Se(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=We(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=ee(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;mf(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=ee(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}he(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Ue(b,(c[g>>2]|0)+f|0)|0)<0){he(k);t=-1;i=n;return t|0}mf((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;he(k);b=Kd(1488)|0;if(!b){t=-1;i=n;return t|0}g=Be()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ed(b,1488,0)|0)<0){Ce(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Te(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=i;i=i+16|0;p=k;l=b+4|0;n=(c[l>>2]|0)!=0;c[p>>2]=0;o=p+4|0;c[o>>2]=0;a:do if((h|0)>0){q=p+((n&1)<<2)|0;t=0;x=0;r=h;w=(j|0)!=0;b:while(1){if((r|0)<((w?5:2)|0)){m=48;break}if(w)v=0;else v=(a[g+2>>0]|0)==0?4:3;if((r|0)<(v+3|0)){m=48;break}s=g+v|0;j=d[s>>0]|0;u=j<<5&32|(d[g+(v+1)>>0]|0)>>>3;j=j>>>1&63;do if((j+ -32|0)>>>0<4|(j|0)==39|j>>>0>40)if(t)if(!(c[q>>2]|0))j=x;else break a;else{j=x;t=0}else if((j>>>0<10|(j+ -16|0)>>>0<6?(m=v+2|0,(m|0)<(r|0)):0)?(a[g+m>>0]|0)<0:0){if((x|0)!=0?(c[q>>2]|0)!=0:0)break a;if(n&(u|0)==1){c[o>>2]=1;j=x;t=x;break}else{c[p>>2]=1;j=1;t=1;break}}else j=x;while(0);do if(!w){if(((((r|0)>3?(a[g>>0]|0)==0:0)?(a[g+1>>0]|0)==0:0)?(a[g+2>>0]|0)==0:0)?(a[g+3>>0]|0)==1:0){w=4;break}if((r|0)<=2){m=48;break b}if(a[g>>0]|0){m=48;break b}if(a[g+1>>0]|0){m=48;break b}if((a[g+2>>0]|0)==1)w=3;else{m=48;break b}}else w=0;while(0);x=w+2|0;if((x|0)>(r|0)){m=48;break}c:do if((x|0)<(r|0))while(1){z=(a[g+w>>0]|0)==0;if((z?(a[g+(w+1)>>0]|0)==0:0)?(a[g+x>>0]|0)==1:0)break c;A=x;x=w+3|0;if((x|0)>=(r|0)){w=r;break c}y=w+1|0;if(!z){w=y;continue}if(a[g+y>>0]|0){w=y;continue}if(a[g+A>>0]|0){w=y;continue}z=(a[g+x>>0]|0)==1;if(z){w=z?w:r;break}else w=y}else w=r;while(0);if((w|0)<0){m=48;break}v=w-v|0;x=v+3|0;u=n&(u|0)==1;z=u?e:f;y=z+8|0;if((Ue(z,(c[y>>2]|0)+x|0)|0)<0){m=48;break}A=c[z>>2]|0;z=c[y>>2]|0;a[A+z>>0]=0;a[A+(z+1)>>0]=0;a[A+(z+2)>>0]=1;mf(A+(z+3)|0,s|0,v|0)|0;if(u){A=A+(z+4)|0;a[A>>0]=d[A>>0]&7}c[y>>2]=(c[y>>2]|0)+x;r=r-w|0;if((r|0)>0){x=j;g=g+w|0;w=0}else break a}if((m|0)==48){i=k;return-1}}else r=h;while(0);if(c[l>>2]|0){m=e+8|0;if((Ue(e,(c[m>>2]|0)+32|0)|0)<0){i=k;return-1}if((Ve(c[l>>2]|0,c[b+12>>2]|0,c[e>>2]|0,c[m>>2]|0)|0)<0){i=k;return-1}}l=f+8|0;if((Ue(f,(c[l>>2]|0)+32|0)|0)<0){i=k;return-1}else{A=(Ve(c[b>>2]|0,c[b+8>>2]|0,c[f>>2]|0,c[l>>2]|0)|0)<0;i=k;return(A?-1:h-r|0)|0}return 0}function Ue(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=fe(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Ve(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Ud(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Ld(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function We(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Xe(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0;h=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)g=0;else{i=h;return}while(1){n=a[f+g>>0]|0;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;g=g+1|0;if((g|0)==(j|0))break;else e=e+k|0}i=h;return}l=c[b+12>>2]|0;g=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)m=0;else{i=h;return}while(1){n=($(d[f+m>>0]|0,l)|0)+g>>b;if((n|0)<0)n=0;else n=(n|0)>255?-1:n&255;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=h;return}function Ye(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(d[f+t>>0]|0,p)|0;u=(d[g+t>>0]|0)-b|0;w=(d[h+t>>0]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[e>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[e+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else e=e+k|0}i=q;return}function Ze(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;l=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)m=0;else{i=l;return}while(1){a[e>>0]=a[h+m>>0]|0;a[e+1>>0]=a[f+m>>0]|0;a[e+2>>0]=a[g+m>>0]|0;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=l;return}n=c[b+12>>2]|0;m=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)o=0;else{i=l;return}while(1){p=($(d[h+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e>>0]=p;p=($(d[f+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+1>>0]=p;p=($(d[g+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+2>>0]=p;o=o+1|0;if((o|0)==(j|0))break;else e=e+k|0}i=l;return}function _e(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=d[f+p>>0]|0;s=(d[g+p>>0]|0)-b|0;r=(d[h+p>>0]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[e+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[e+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else e=e+k|0}i=o;return}function $e(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1571]|0)){e=ua(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1572]=ua(0)|0;c[1571]=6280;c[1570]=6280;c[1575]=6296;c[1574]=6296;k=e+16|0;a[e+15>>0]=-86;j=c[1575]|0;c[1575]=k;c[k>>2]=6296;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1571]|0;c[1571]=j;c[j>>2]=6280;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1572]|0;g=c[1570]|0;k=6284|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6296)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ua(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1572]=ua(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function af(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1571]|0;c[1571]=b;c[b>>2]=6280;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6296?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6296){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){af(a);e=0;break}e=$e(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;mf(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;af(a)}}else e=$e(b)|0;while(0);i=d;return e|0}function cf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function df(){}function ef(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function hf(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function jf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function kf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function mf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return xa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function nf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function of(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function pf(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=qf(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Aa[a&1](b|0,c|0,d|0)|0}function tf(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;Ba[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)}function uf(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;Ca[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function vf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Da[a&3](b|0,c|0,d|0,e|0,f|0)}function wf(a,b){a=a|0;b=b|0;Ea[a&7](b|0)}function xf(a,b,c){a=a|0;b=b|0;c=c|0;Fa[a&15](b|0,c|0)}function yf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ga[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function zf(a,b,c,d,e,f,g,h,i,j){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;j=j|0;Ha[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Af(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;Ia[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function Bf(a,b){a=a|0;b=b|0;return Ja[a&7](b|0)|0}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ka[a&7](b|0,c|0,d|0)}function Df(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;La[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Ef(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ma[a&1](b|0,c|0,d|0,e|0)|0}function Ff(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Na[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;return Oa[a&1](b|0,c|0)|0}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pa[a&1](b|0,c|0,d|0,e|0,f|0)|0}function If(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Qa[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Kf(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;aa(1)}function Lf(a,b,c,d,e,f,g,h,i,j){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;j=j|0;aa(2)}function Mf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(3)}function Nf(a){a=a|0;aa(4)}function Of(a,b){a=a|0;b=b|0;aa(5)}function Pf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(6);return 0}function Qf(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;aa(7)}function Rf(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;aa(8)}function Sf(a){a=a|0;aa(9);return 0}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;aa(10)}function Uf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;aa(11)}function Vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(12);return 0}function Wf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(13)}function Xf(a,b){a=a|0;b=b|0;aa(14);return 0}function Yf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(15);return 0}function Zf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(16)} +function xd(a,d,e,f,g,h,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0;n=i;o=c[g+(h*196|0)+(j<<2)+128>>2]|0;if((o|0)!=(c[k+(l*196|0)+(m<<2)+128>>2]|0)){b[a>>1]=0;b[a+2>>1]=0;k=0;i=n;return k|0}k=c[k+(l*196|0)+(m<<2)+64>>2]|0;m=e-k|0;f=f-(c[g+(h*196|0)+(j<<2)+64>>2]|0)|0;if((o|0)==0?(m|0)!=(f|0)&(k|0)!=(e|0):0){if((m+128|0)>>>0>255)m=m>>31^127;e=m<<24>>24;if((f+128|0)>>>0>255)f=f>>31^127;k=(e|0)/2|0;e=($(f<<24>>24,(((m&255)<<24>>24>-2?k:0-k|0)+16384|0)/(e|0)|0)|0)+32>>6;if((e|0)<-4096)e=-4096;else e=(e|0)>4095?4095:e;f=$(b[d>>1]|0,e)|0;f=f+127+(f>>>31)|0;o=f>>8;if((o+32768|0)>>>0>65535)o=f>>31^32767;b[a>>1]=o;d=$(b[d+2>>1]|0,e)|0;d=d+127+(d>>>31)|0;e=d>>8;if((e+32768|0)>>>0>65535)e=d>>31^32767;b[a+2>>1]=e;k=1;i=n;return k|0}b[a>>1]=b[d>>1]|0;b[a+2>>1]=b[d+2>>1]|0;k=1;i=n;return k|0}function yd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;b=(c[b+136>>2]|0)+204|0;j=e+2188|0;if(((j|0)!=(d|0)?(h=e+2184|0,(c[h>>2]|0)!=0):0)?((_d(b)|0)&255)<<24>>24!=0:0){do if(f){f=(ae(b)|0)+1|0;h=c[h>>2]|0;if(f>>>0>h>>>0){n=-1094995529;i=g;return n|0}else{h=h-f|0;break}}else h=((d-j|0)/168|0)+ -1|0;while(0);f=_d(b)|0;j=(ae(b)|0)+1|0;if((j|0)==0|j>>>0>32768){n=-1094995529;i=g;return n|0}l=$(1-(f<<1&510)|0,j)|0;f=e+(h*168|0)+2192|0;if((c[f>>2]|0)<0){c[d+4>>2]=0;c[d>>2]=0;n=0;i=g;return n|0}else{k=0;j=0;m=0}while(1){n=_d(b)|0;a[d+j+136>>0]=n;if(!((n&255|0)==0?((_d(b)|0)&255)<<24>>24==0:0)){if((k|0)<(c[f>>2]|0))n=(c[e+(h*168|0)+(k<<2)+2196>>2]|0)+l|0;else n=l;c[d+(j<<2)+8>>2]=n;j=j+1|0;m=(n>>>31)+m|0}if((k|0)<(c[f>>2]|0))k=k+1|0;else break}b=d+4|0;c[b>>2]=j;c[d>>2]=m;if((j|0)>1){e=1;do{h=c[d+(e<<2)+8>>2]|0;f=a[d+e+136>>0]|0;if((e|0)>0){k=e;do{m=k;k=k+ -1|0;l=d+(k<<2)+8|0;j=c[l>>2]|0;if((h|0)<(j|0)){c[d+(m<<2)+8>>2]=j;n=d+k+136|0;a[d+m+136>>0]=a[n>>0]|0;c[l>>2]=h;a[n>>0]=f}}while((k|0)>0);j=c[b>>2]|0}e=e+1|0}while((e|0)<(j|0));m=c[d>>2]|0}if(m>>>0>1)b=0;else{n=0;i=g;return n|0}do{m=m+ -1|0;n=d+(b<<2)+8|0;j=c[n>>2]|0;f=d+b+136|0;l=a[f>>0]|0;k=d+(m<<2)+8|0;c[n>>2]=c[k>>2];n=d+m+136|0;a[f>>0]=a[n>>0]|0;c[k>>2]=j;a[n>>0]=l;b=b+1|0}while(b>>>0<(c[d>>2]|0)>>>1>>>0);d=0;i=g;return d|0}c[d>>2]=ae(b)|0;e=ae(b)|0;h=c[d>>2]|0;if(h>>>0>15|e>>>0>15){n=-1094995529;i=g;return n|0}n=h+e|0;c[d+4>>2]=n;if(!n){n=0;i=g;return n|0}if(h){f=0;h=0;do{h=h+ -1-(ae(b)|0)|0;c[d+(f<<2)+8>>2]=h;a[d+f+136>>0]=_d(b)|0;f=f+1|0}while(f>>>0<(c[d>>2]|0)>>>0)}if(!e){n=0;i=g;return n|0}else{f=0;h=0}do{h=h+1+(ae(b)|0)|0;c[d+((c[d>>2]|0)+f<<2)+8>>2]=h;n=(_d(b)|0)&255;a[d+((c[d>>2]|0)+f)+136>>0]=n;f=f+1|0}while((f|0)!=(e|0));d=0;i=g;return d|0}function zd(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=i;i=i+16|0;e=f;h=c[b+136>>2]|0;g=h+204|0;j=se(13196)|0;c[e>>2]=j;if(!j){t=-12;i=f;return t|0}j=c[j+4>>2]|0;l=se(468)|0;if(!l){t=-12;i=f;return t|0}k=c[l+4>>2]|0;c[k+4>>2]=1;n=k+8|0;c[n>>2]=1;a[k>>0]=0;c[k+348>>2]=1;p=k+352|0;m=k+380|0;q=k+408|0;o=0;do{c[p+(o<<2)>>2]=1;c[m+(o<<2)>>2]=0;c[q+(o<<2)>>2]=-1;o=o+1|0}while((o|0)<(c[n>>2]|0));c[k+436>>2]=0;c[k+440>>2]=1;a[k+444>>0]=0;o=b+208|0;ue(o);c[o>>2]=l;c[j>>2]=0;o=j+72|0;c[o>>2]=1;t=Xd(g,8)|0;p=j+4|0;c[p>>2]=t;do if((t|0)<=3){a[j+8>>0]=0;n=j+13120|0;c[n>>2]=$d(g,32)|0;k=$d(g,32)|0;m=j+13124|0;c[m>>2]=k;k=Md(c[n>>2]|0,k,0,c[b+4>>2]|0)|0;if((k|0)>=0){t=Xd(g,8)|0;l=j+52|0;c[l>>2]=t+8;if(!t){p=c[p>>2]|0;if((p|0)==2){c[j+60>>2]=4;p=4}else if((p|0)==1){c[j+60>>2]=0;p=0}else if(!p){c[j+60>>2]=8;p=8}else{c[j+60>>2]=5;p=5}c[j+56>>2]=0;p=Ge(p)|0;if(p){c[j+13180>>2]=0;c[j+13168>>2]=0;t=d[p+5>>0]|0;c[j+13172>>2]=t;c[j+13176>>2]=t;t=d[p+6>>0]|0;c[j+13184>>2]=t;c[j+13188>>2]=t;c[j+64>>2]=8;if((c[o>>2]|0)>0){p=j+76|0;q=0;do{c[p+(q*12|0)>>2]=1;c[p+(q*12|0)+4>>2]=0;c[p+(q*12|0)+8>>2]=-1;q=q+1|0}while((q|0)<(c[o>>2]|0))}s=(ae(g)|0)+3|0;t=j+13064|0;c[t>>2]=s;s=1<>2]=r+(c[n>>2]|0)&s;c[m>>2]=r+(c[m>>2]|0)&s;s=j+13068|0;c[s>>2]=ae(g)|0;r=j+13072|0;c[r>>2]=(ae(g)|0)+2;o=ae(g)|0;p=c[r>>2]|0;q=j+13076|0;c[q>>2]=p+o;if(p>>>0<(c[t>>2]|0)>>>0){u=ae(g)|0;o=j+13092|0;c[o>>2]=u;p=j+13088|0;c[p>>2]=u;a[j+12940>>0]=1;a[j+12941>>0]=_d(g)|0;u=_d(g)|0;c[j+68>>2]=u;if(u){u=j+13044|0;a[u>>0]=(Xd(g,4)|0)+1;a[j+13045>>0]=(Xd(g,4)|0)+1;v=(ae(g)|0)+3|0;c[j+13048>>2]=v;c[j+13052>>2]=v+(ae(g)|0);if((d[u>>0]|0|0)>(c[l>>2]|0)){k=-1094995529;break}a[j+13056>>0]=_d(g)|0}c[j+2184>>2]=0;a[j+12942>>0]=0;a[j+13060>>0]=1;a[j+13061>>0]=_d(g)|0;c[j+160>>2]=0;c[j+164>>2]=1;if((_d(g)|0)!=0?(v=_d(g)|0,Zd(g,7),(v|0)!=0):0){c[j+13096>>2]=_d(g)|0;c[j+13100>>2]=_d(g)|0;c[j+13104>>2]=_d(g)|0;c[j+13108>>2]=_d(g)|0;_d(g)|0;c[j+13112>>2]=_d(g)|0;_d(g)|0;c[j+13116>>2]=_d(g)|0;_d(g)|0}g=c[n>>2]|0;c[j+12>>2]=g;n=c[m>>2]|0;c[j+16>>2]=n;t=c[t>>2]|0;v=(c[s>>2]|0)+t|0;c[j+13080>>2]=v;s=t+ -1|0;c[j+13084>>2]=s;m=1<>v;c[j+13128>>2]=u;m=n+ -1+m>>v;c[j+13132>>2]=m;c[j+13136>>2]=$(m,u)|0;c[j+13140>>2]=g>>t;c[j+13144>>2]=n>>t;u=c[r>>2]|0;c[j+13148>>2]=g>>u;c[j+13152>>2]=n>>u;c[j+13156>>2]=g>>s;c[j+13160>>2]=n>>s;u=v-u|0;c[j+13164>>2]=(1<>2]=((c[l>>2]|0)*6|0)+ -48;t=(1<>>0>6):0)?(c[p>>2]|0)>>>0<=u>>>0:0)?(c[o>>2]|0)>>>0<=u>>>0:0)?(c[q>>2]|0)>>>0<=(v>>>0>5?5:v)>>>0:0)?((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)>=0:0){g=b+272|0;h=c[g>>2]|0;if((h|0)!=0?(v=c[e>>2]|0,(cf(c[h+4>>2]|0,c[v+4>>2]|0,c[v+8>>2]|0)|0)==0):0){ue(e);v=0;i=f;return v|0}else h=0;do{j=b+(h<<2)+400|0;k=c[j>>2]|0;do if(k){if(c[c[k+4>>2]>>2]|0)break;ue(j)}while(0);h=h+1|0}while((h|0)!=256);h=c[g>>2]|0;do if(h){j=b+200|0;if((c[j>>2]|0)!=(c[h+4>>2]|0))break;u=b+1424|0;ue(u);v=te(c[g>>2]|0)|0;c[u>>2]=v;if(v)break;c[j>>2]=0}while(0);ue(g);c[g>>2]=c[e>>2];v=0;i=f;return v|0}}else k=-1094995529}else k=-22}else k=-1094995529}}else k=-1094995529;while(0);ue(e);v=k;i=f;return v|0}function Ad(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;f=i;i=i+16|0;e=f+4|0;j=f;l=b+136|0;g=c[l>>2]|0;n=g+204|0;h=le(1692)|0;c[j>>2]=h;if(!h){I=-12;i=f;return I|0}I=pe(h,1692,6,0,0)|0;c[e>>2]=I;if(!I){ie(j);I=-12;i=f;return I|0}a[(c[j>>2]|0)+53>>0]=1;h=c[j>>2]|0;c[h+44>>2]=1;c[h+48>>2]=1;a[h+52>>0]=1;a[(c[j>>2]|0)+57>>0]=0;h=c[j>>2]|0;c[h+60>>2]=0;c[h+64>>2]=0;a[h+1629>>0]=2;h=ae(n)|0;a:do if((h>>>0<=255?(k=ae(n)|0,c[c[j>>2]>>2]=k,k>>>0<=31):0)?(m=c[b+(k<<2)+272>>2]|0,(m|0)!=0):0){k=c[m+4>>2]|0;I=(_d(n)|0)&255;a[(c[j>>2]|0)+41>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+39>>0]=I;I=Xd(n,3)|0;c[(c[j>>2]|0)+1624>>2]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+4>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+5>>0]=I;I=(ae(n)|0)+1|0;c[(c[j>>2]|0)+8>>2]=I;I=(ae(n)|0)+1|0;c[(c[j>>2]|0)+12>>2]=I;I=be(n)|0;c[(c[j>>2]|0)+16>>2]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+20>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+21>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+22>>0]=I;I=c[j>>2]|0;c[I+24>>2]=0;if(a[I+22>>0]|0){I=ae(n)|0;c[(c[j>>2]|0)+24>>2]=I}I=be(n)|0;c[(c[j>>2]|0)+28>>2]=I;if((I+12|0)>>>0<=24?(I=be(n)|0,c[(c[j>>2]|0)+32>>2]=I,(I+12|0)>>>0<=24):0){I=(_d(n)|0)&255;a[(c[j>>2]|0)+36>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+37>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+38>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+40>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+42>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+43>>0]=I;if(a[(c[j>>2]|0)+42>>0]|0){m=(ae(n)|0)+1|0;c[(c[j>>2]|0)+44>>2]=m;m=(ae(n)|0)+1|0;o=c[j>>2]|0;c[o+48>>2]=m;o=c[o+44>>2]|0;if(!o){b=-1094995529;break}if((m|0)==0?1:(o|0)>=(c[k+13120>>2]|0)){b=-1094995529;break}if((m|0)>=(c[k+13124>>2]|0)){b=-1094995529;break}m=ne(o,4)|0;c[(c[j>>2]|0)+1648>>2]=m;m=ne(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=m;m=c[j>>2]|0;if(!(c[m+1648>>2]|0)){b=-12;break}if(!(c[m+1652>>2]|0)){b=-12;break}p=(_d(n)|0)&255;a[(c[j>>2]|0)+52>>0]=p;p=c[j>>2]|0;if(!(a[p+52>>0]|0)){q=(c[p+44>>2]|0)+ -1|0;if((q|0)>0){o=0;m=0;r=0;do{q=(ae(n)|0)+1|0;p=c[j>>2]|0;c[(c[p+1648>>2]|0)+(r<<2)>>2]=q;o=gf(q|0,0,o|0,m|0)|0;m=D;r=r+1|0;q=(c[p+44>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=0;o=0}r=c[k+13128>>2]|0;s=((r|0)<0)<<31>>31;if(!(m>>>0>>0|(m|0)==(s|0)&o>>>0>>0)){b=-1094995529;break}I=ff(r|0,s|0,o|0,m|0)|0;c[(c[p+1648>>2]|0)+(q<<2)>>2]=I;q=(c[p+48>>2]|0)+ -1|0;if((q|0)>0){p=0;o=0;r=0;do{q=(ae(n)|0)+1|0;m=c[j>>2]|0;c[(c[m+1652>>2]|0)+(r<<2)>>2]=q;p=gf(q|0,0,p|0,o|0)|0;o=D;r=r+1|0;q=(c[m+48>>2]|0)+ -1|0}while((r|0)<(q|0))}else{m=p;o=0;p=0}r=c[k+13132>>2]|0;s=((r|0)<0)<<31>>31;if(!(o>>>0>>0|(o|0)==(s|0)&p>>>0>>0)){b=-1094995529;break}I=ff(r|0,s|0,p|0,o|0)|0;c[(c[m+1652>>2]|0)+(q<<2)>>2]=I}I=(_d(n)|0)&255;a[(c[j>>2]|0)+53>>0]=I}I=(_d(n)|0)&255;a[(c[j>>2]|0)+54>>0]=I;I=(_d(n)|0)&255;a[(c[j>>2]|0)+55>>0]=I;if((a[(c[j>>2]|0)+55>>0]|0)!=0?(I=(_d(n)|0)&255,a[(c[j>>2]|0)+56>>0]=I,I=(_d(n)|0)&255,a[(c[j>>2]|0)+57>>0]=I,(a[(c[j>>2]|0)+57>>0]|0)==0):0){m=(be(n)|0)<<1;c[(c[j>>2]|0)+60>>2]=m;m=(be(n)|0)<<1;I=c[j>>2]|0;c[I+64>>2]=m;if(((c[I+60>>2]|0)+13|0)>>>0>26){b=-1094995529;break}if((m+13|0)>>>0>26){b=-1094995529;break}}p=(_d(n)|0)&255;a[(c[j>>2]|0)+68>>0]=p;p=c[j>>2]|0;if(a[p+68>>0]|0){q=0;do{o=p+(q<<6)+69|0;m=o+16|0;do{a[o>>0]=16;o=o+1|0}while((o|0)<(m|0));a[p+q+1605>>0]=16;a[p+q+1611>>0]=16;q=q+1|0}while((q|0)!=6);o=p+453|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+517|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+581|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+645|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+709|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+773|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+837|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+901|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+965|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1029|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1093|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1157|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1221|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1285|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1349|0;q=2936;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1413|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1477|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));o=p+1541|0;q=3e3;m=o+64|0;do{a[o>>0]=a[q>>0]|0;o=o+1|0;q=q+1|0}while((o|0)<(m|0));m=c[j>>2]|0;v=(c[l>>2]|0)+204|0;w=0;do{p=(w|0)>0?64:16;q=(w|0)>1;o=w+ -2|0;x=(w|0)==3?3:1;r=1<<(w<<1)+4;t=(r|0)>0;s=(w|0)==0;r=(r|0)<64?r:64;u=0;do{if(!(((_d(v)|0)&255)<<24>>24)){y=ae(v)|0;if(y){if(u>>>0>>0){b=-1094995529;break a}y=u-y|0;mf(m+(w*384|0)+(u<<6)+69|0,m+(w*384|0)+(y<<6)+69|0,p|0)|0;if(q)a[m+(o*6|0)+u+1605>>0]=a[m+(o*6|0)+y+1605>>0]|0}}else{if(q){z=(be(v)|0)+8|0;a[m+(o*6|0)+u+1605>>0]=z}else z=8;if(t){y=0;do{if(s)A=(d[24+y>>0]<<2)+(d[8+y>>0]|0)|0;else A=(d[104+y>>0]<<3)+(d[40+y>>0]|0)|0;z=(z+256+(be(v)|0)|0)%256|0;a[m+(w*384|0)+(u<<6)+A+69>>0]=z;y=y+1|0}while((y|0)!=(r|0))}}u=u+x|0}while((u|0)<6);w=w+1|0}while((w|0)<4);if((c[k+4>>2]|0)==3){o=0;do{a[m+o+1285>>0]=a[m+o+901>>0]|0;a[m+o+1349>>0]=a[m+o+965>>0]|0;a[m+o+1477>>0]=a[m+o+1093>>0]|0;a[m+o+1541>>0]=a[m+o+1157>>0]|0;o=o+1|0}while((o|0)!=64);a[m+1612>>0]=a[m+1606>>0]|0;a[m+1613>>0]=a[m+1607>>0]|0;a[m+1615>>0]=a[m+1609>>0]|0;a[m+1616>>0]=a[m+1610>>0]|0}}I=(_d(n)|0)&255;a[(c[j>>2]|0)+1617>>0]=I;I=(ae(n)|0)+2|0;c[(c[j>>2]|0)+1620>>2]=I;m=k+13080|0;if(I>>>0<=(c[m>>2]|0)>>>0){I=(_d(n)|0)&255;a[(c[j>>2]|0)+1628>>0]=I;do if((_d(n)|0)!=0?(I=_d(n)|0,Xd(n,7)|0,(I|0)!=0):0){n=c[j>>2]|0;p=(c[l>>2]|0)+204|0;if(a[n+21>>0]|0)a[n+1629>>0]=(ae(p)|0)+2;a[n+1630>>0]=_d(p)|0;I=(_d(p)|0)&255;a[n+1631>>0]=I;if(I<<24>>24){a[n+1632>>0]=ae(p)|0;I=ae(p)|0;o=n+1633|0;a[o>>0]=I;if((I&255)>>>0<5)l=0;else break;while(1){a[n+l+1634>>0]=be(p)|0;a[n+l+1639>>0]=be(p)|0;if((l|0)<(d[o>>0]|0))l=l+1|0;else break}}a[n+1644>>0]=ae(p)|0;a[n+1645>>0]=ae(p)|0}while(0);l=ne((c[(c[j>>2]|0)+44>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1656>>2]=l;l=ne((c[(c[j>>2]|0)+48>>2]|0)+1|0,4)|0;c[(c[j>>2]|0)+1660>>2]=l;l=k+13128|0;o=ne(c[l>>2]|0,4)|0;c[(c[j>>2]|0)+1664>>2]=o;o=c[j>>2]|0;n=c[o+1656>>2]|0;if(((n|0)!=0?(c[o+1660>>2]|0)!=0:0)?(c[o+1664>>2]|0)!=0:0){if(a[o+52>>0]|0){p=c[o+1648>>2]|0;if(!p){o=ne(c[o+44>>2]|0,4)|0;c[(c[j>>2]|0)+1648>>2]=o;o=ne(c[(c[j>>2]|0)+48>>2]|0,4)|0;c[(c[j>>2]|0)+1652>>2]=o;o=c[j>>2]|0;p=c[o+1648>>2]|0;if(!p){b=-12;break}}n=c[o+1652>>2]|0;if(!n){b=-12;break}q=o+44|0;s=c[q>>2]|0;if((s|0)>0){r=0;do{I=r;r=r+1|0;H=c[l>>2]|0;c[p+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}q=o+48|0;s=c[q>>2]|0;if((s|0)>0){p=k+13132|0;r=0;do{I=r;r=r+1|0;H=c[p>>2]|0;c[n+(I<<2)>>2]=(($(H,r)|0)/(s|0)|0)-(($(H,I)|0)/(s|0)|0);s=c[q>>2]|0}while((r|0)<(s|0))}n=c[o+1656>>2]|0}c[n>>2]=0;q=o+44|0;if((c[q>>2]|0)>0){p=c[o+1648>>2]|0;r=0;s=0;do{r=(c[p+(s<<2)>>2]|0)+r|0;s=s+1|0;c[n+(s<<2)>>2]=r}while((s|0)<(c[q>>2]|0))}s=c[o+1660>>2]|0;c[s>>2]=0;r=o+48|0;if((c[r>>2]|0)>0){q=c[o+1652>>2]|0;t=0;p=0;do{t=(c[q+(p<<2)>>2]|0)+t|0;p=p+1|0;c[s+(p<<2)>>2]=t}while((p|0)<(c[r>>2]|0))}r=c[l>>2]|0;if((r|0)>0){o=c[o+1664>>2]|0;p=0;q=0;do{q=(p>>>0>(c[n+(q<<2)>>2]|0)>>>0&1)+q|0;c[o+(p<<2)>>2]=q;p=p+1|0;r=c[l>>2]|0}while((p|0)<(r|0))}x=$(c[k+13132>>2]|0,r)|0;n=ne(x,4)|0;c[(c[j>>2]|0)+1668>>2]=n;n=ne(x,4)|0;c[(c[j>>2]|0)+1672>>2]=n;n=ne(x,4)|0;c[(c[j>>2]|0)+1676>>2]=n;n=k+13164|0;q=(c[n>>2]|0)+2|0;q=ne($(q,q)|0,4)|0;c[(c[j>>2]|0)+1688>>2]=q;q=c[j>>2]|0;p=c[q+1668>>2]|0;if(!p){b=-12;break}w=c[q+1672>>2]|0;if(!w){b=-12;break}o=c[q+1676>>2]|0;if(!o){b=-12;break}if(!(c[q+1688>>2]|0)){b=-12;break}if((x|0)>0){B=q+44|0;r=q+48|0;s=c[q+1660>>2]|0;v=c[q+1648>>2]|0;u=c[q+1656>>2]|0;t=q+1652|0;A=0;do{C=c[l>>2]|0;y=(A|0)%(C|0)|0;z=(A|0)/(C|0)|0;G=c[B>>2]|0;E=0;while(1){if((E|0)>=(G|0)){E=0;break}F=E+1|0;if(y>>>0<(c[u+(F<<2)>>2]|0)>>>0)break;else E=F}H=c[r>>2]|0;F=0;while(1){if((F|0)>=(H|0)){F=0;break}G=F+1|0;if(z>>>0<(c[s+(G<<2)>>2]|0)>>>0)break;else F=G}if((E|0)>0){G=c[(c[t>>2]|0)+(F<<2)>>2]|0;H=0;I=0;do{I=($(c[v+(H<<2)>>2]|0,G)|0)+I|0;H=H+1|0}while((H|0)!=(E|0))}else I=0;if((F|0)>0){G=c[t>>2]|0;H=0;do{I=($(c[G+(H<<2)>>2]|0,C)|0)+I|0;H=H+1|0}while((H|0)!=(F|0))}H=$(c[v+(E<<2)>>2]|0,z-(c[s+(F<<2)>>2]|0)|0)|0;I=I+y+H-(c[u+(E<<2)>>2]|0)|0;c[p+(A<<2)>>2]=I;c[w+(I<<2)>>2]=A;A=A+1|0}while((A|0)!=(x|0))}else r=q+48|0;x=c[r>>2]|0;if((x|0)>0){s=q+44|0;t=q+1660|0;q=q+1656|0;z=c[s>>2]|0;u=0;w=0;while(1){v=u;u=u+1|0;if((z|0)>0){x=c[t>>2]|0;y=x+(u<<2)|0;G=c[y>>2]|0;B=z;z=0;do{E=c[x+(v<<2)>>2]|0;A=z;z=z+1|0;if(E>>>0>>0){B=c[q>>2]|0;C=B+(z<<2)|0;F=c[C>>2]|0;do{H=c[B+(A<<2)>>2]|0;if(H>>>0>>0){do{c[o+(c[p+(($(c[l>>2]|0,E)|0)+H<<2)>>2]<<2)>>2]=w;H=H+1|0;F=c[C>>2]|0}while(H>>>0>>0);G=c[y>>2]|0}E=E+1|0}while(E>>>0>>0);B=c[s>>2]|0}w=w+1|0}while((z|0)<(B|0));v=c[r>>2]|0;z=B}else v=x;if((u|0)>=(v|0))break;else x=v}}else w=0;o=ne(w,4)|0;c[(c[j>>2]|0)+1680>>2]=o;o=c[j>>2]|0;p=c[o+1680>>2]|0;if(!p){b=-12;break}r=o+48|0;u=c[r>>2]|0;if((u|0)>0){q=o+44|0;t=c[q>>2]|0;s=0;do{if((t|0)>0){u=c[o+1660>>2]|0;v=c[o+1656>>2]|0;w=0;do{I=$(c[l>>2]|0,c[u+(s<<2)>>2]|0)|0;c[p+(($(t,s)|0)+w<<2)>>2]=(c[v+(w<<2)>>2]|0)+I;w=w+1|0;t=c[q>>2]|0}while((w|0)<(t|0));u=c[r>>2]|0}s=s+1|0}while((s|0)<(u|0))}k=(c[m>>2]|0)-(c[k+13072>>2]|0)|0;v=c[n>>2]|0;c[o+1684>>2]=(c[o+1688>>2]|0)+(v+3<<2);p=v+2|0;if((p|0)>0){m=c[(c[j>>2]|0)+1688>>2]|0;o=0;do{c[m+(($(p,o)|0)<<2)>>2]=-1;c[m+(o<<2)>>2]=-1;o=o+1|0;v=c[n>>2]|0;p=v+2|0}while((o|0)<(p|0))}if((v|0)>-1){m=c[j>>2]|0;j=m+1668|0;p=k<<1;o=(k|0)>0;m=m+1684|0;q=0;while(1){if((v|0)>-1){r=q>>k;t=c[j>>2]|0;s=c[m>>2]|0;u=0;while(1){z=c[t+(($(c[l>>2]|0,r)|0)+(u>>k)<<2)>>2]<>2]=z;v=c[n>>2]|0;if((u|0)<(v|0))u=u+1|0;else break}}if((q|0)<(v|0))q=q+1|0;else break}}if(((c[g+216>>2]|0)-(c[g+212>>2]|0)|0)<0){b=0;break}I=b+(h<<2)+400|0;ue(I);c[I>>2]=c[e>>2];I=0;i=f;return I|0}else b=-12}else b=-1094995529}else b=-1094995529}else b=-1094995529;while(0);ue(e);I=b;i=f;return I|0}function Bd(a,b){a=a|0;b=b|0;var d=0;a=i;i=i+16|0;d=a;c[d>>2]=b;ie(b+1648|0);ie(b+1652|0);ie(b+1656|0);ie(b+1660|0);ie(b+1664|0);ie(b+1668|0);ie(b+1672|0);ie(b+1680|0);ie(b+1676|0);ie(b+1688|0);ie(d);i=a;return}function Cd(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;e=a+136|0;g=a+3500|0;f=a+7776|0;while(1){h=(c[e>>2]|0)+204|0;j=0;do{k=Xd(h,8)|0;j=k+j|0}while((k|0)==255);k=0;do{l=Xd(h,8)|0;k=l+k|0}while((l|0)==255);do if((c[g>>2]|0)==39)if((j|0)==257){b[f>>1]=Xd(h,16)|0;break}else if((j|0)==256){Dd(a);break}else{Zd(h,k<<3);break}else if((j|0)==132){Dd(a);break}else{Zd(h,k<<3);break}while(0);h=c[e>>2]|0;if(((c[h+216>>2]|0)-(c[h+212>>2]|0)|0)<=0){a=15;break}if((Yd(h+204|0,8)|0)==128){a=15;break}}if((a|0)==15){i=d;return 1}return 0}function Dd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;e=(c[b+136>>2]|0)+204|0;g=(Xd(e,8)|0)&255;f=b+7720|0;h=0;do{if(!g){a[f>>0]=1;j=0;do{a[b+(h<<4)+j+7672>>0]=Xd(e,8)|0;j=j+1|0}while((j|0)!=16)}else if((g|0)==2)Zd(e,32);else if((g|0)==1)Zd(e,16);h=h+1|0}while((h|0)!=3);i=d;return}function Ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=i;f=c[b+52>>2]|0;e=a+60|0;if((f|0)>0){if((c[e>>2]|0)==0?(f=le(f)|0,c[e>>2]=f,(f|0)==0):0){f=-12;i=d;return f|0}}else c[e>>2]=0;f=a+12|0;c[f>>2]=b;c[a+424>>2]=0;c[a+800>>2]=1;h=a+912|0;g=a+936|0;c[h+0>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[g>>2]=0;c[g+4>>2]=-2147483648;g=a+928|0;c[g>>2]=0;c[g+4>>2]=-2147483648;a=Ja[c[b+76>>2]&7](a)|0;if((a|0)>=0){h=0;i=d;return h|0}ie(e);c[f>>2]=0;h=a;i=d;return h|0}function Fd(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;if(!a){i=b;return 0}e=a+12|0;f=c[e>>2]|0;if((f|0)!=0?(d=c[f+92>>2]|0,(d|0)!=0):0)Ja[d&7](a)|0;c[a+796>>2]=0;ie(a+60|0);c[e>>2]=0;c[a+808>>2]=0;i=b;return 0}function Gd(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,j=0,k=0,l=0;h=i;if((f|0)<=0){i=h;return 0}j=(e|0)==0;k=0;do{l=d+($(k,g)|0)|0;l=Oa[b&1](a,l)|0;if(!j)c[e+(k<<2)>>2]=l;k=k+1|0}while((k|0)!=(f|0));i=h;return 0}function Hd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;if((f|0)<=0){i=g;return 0}h=(e|0)==0;j=0;do{k=Ma[b&1](a,d,j,0)|0;if(!h)c[e+(j<<2)>>2]=k;j=j+1|0}while((j|0)!=(f|0));i=g;return 0}function Id(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=i;h=Ge(c[f+76>>2]|0)|0;b=h+4|0;if(!(a[b>>0]|0)){p=0;i=g;return p|0}k=f+64|0;l=h+5|0;m=f+68|0;n=h+6|0;j=0;while(1){p=($((((e[h+(j<<1)+8>>1]|0)>>>11&15)+8|0)>>>3,c[k>>2]|0)|0)+31&-32;if((j+ -1|0)>>>0<2){p=0-(0-p>>d[l>>0])|0;c[f+(j<<2)+32>>2]=p;o=0-(0-((c[m>>2]|0)+31&-32)>>d[n>>0])|0}else{c[f+(j<<2)+32>>2]=p;o=(c[m>>2]|0)+31&-32}o=re(($(p,o)|0)+32|0)|0;c[f+(j<<2)+304>>2]=o;if(!o){b=-1;f=8;break}c[f+(j<<2)>>2]=c[o+4>>2];j=j+1|0;if((j|0)>=(d[b>>0]|0)){b=0;f=8;break}}if((f|0)==8){i=g;return b|0}return 0}function Jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;jf(a|0,0,976)|0;e=(b|0)!=0;if(e){c[a+8>>2]=c[b+8>>2];c[a+48>>2]=c[b+12>>2]}else c[a+8>>2]=-1;c[a+100>>2]=0;c[a+104>>2]=1;c[a+888>>2]=0;c[a+892>>2]=1;c[a+896>>2]=0;c[a+900>>2]=1;c[a+476>>2]=1;c[a+816>>2]=1;c[a+820>>2]=1;c[a+220>>2]=0;c[a+224>>2]=1;c[a+136>>2]=-1;c[a+416>>2]=-1;g=a+696|0;c[g>>2]=0;c[g+4>>2]=-2147483648;if((e?(f=c[b+52>>2]|0,(f|0)!=0):0)?(g=le(f)|0,c[a+60>>2]=g,(g|0)==0):0){g=-12;i=d;return g|0}g=0;i=d;return g|0}function Kd(a){a=a|0;var b=0,c=0;b=i;c=ee(976)|0;if(c){if((Jd(c,a)|0)<0){he(c);c=0}}else c=0;i=b;return c|0}function Ld(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+80|0;g=f;k=g+0|0;j=e+0|0;h=k+80|0;do{c[k>>2]=c[j>>2];k=k+4|0;j=j+4|0}while((k|0)<(h|0));h=a+12|0;j=c[h>>2]|0;if(!j){k=-22;i=f;return k|0}if(c[j+8>>2]|0){k=-22;i=f;return k|0}c[d>>2]=0;j=c[a+124>>2]|0;k=c[a+128>>2]|0;if(!j){if(k){k=-22;i=f;return k|0}}else{if(!((j|0)>0&(k|0)>0)){k=-22;i=f;return k|0}if((j+128|0)>>>0>=(268435455/((k+128|0)>>>0)|0)>>>0){k=-22;i=f;return k|0}}De(b);h=c[h>>2]|0;if(((c[h+16>>2]&32|0)==0?(c[e+28>>2]|0)==0:0)?(c[a+808>>2]&1|0)==0:0){k=0;i=f;return k|0}g=Ma[c[h+88>>2]&1](a,b,d,g)|0;if(!(c[d>>2]|0)){De(b);k=g;i=f;return k|0}else{k=a+424|0;c[k>>2]=(c[k>>2]|0)+1;k=g;i=f;return k|0}return 0}function Md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=i;if((a|0)>0&(b|0)>0?(a+128|0)>>>0<(268435455/((b+128|0)>>>0)|0)>>>0:0){d=0;i=c;return d|0}d=-22;i=c;return d|0}function Nd(a,b){a=a|0;b=b|0;return 0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;e=a+8|0;if(!(c[e>>2]|0)){g=c[a+116>>2]|0;h=a+120|0;j=c[h>>2]|0;if(!((g|0)>0&(j|0)>0)){l=-22;i=f;return l|0}if((g+128|0)>>>0>=(268435455/((j+128|0)>>>0)|0)>>>0){l=-22;i=f;return l|0}j=c[a+136>>2]|0;if((j|0)<0){l=-22;i=f;return l|0}k=b+64|0;l=b+68|0;if((c[k>>2]|0)>=1?(c[l>>2]|0)>=1:0)g=1;else{m=a+792|0;n=0-(0-(c[a+124>>2]|0)>>c[m>>2])|0;c[k>>2]=(g|0)>(n|0)?g:n;k=c[h>>2]|0;g=0-(0-(c[a+128>>2]|0)>>c[m>>2])|0;c[l>>2]=(k|0)>(g|0)?k:g;g=0}c[b+76>>2]=j}else g=1;d=Aa[c[a+476>>2]&1](a,b,d)|0;if(c[e>>2]|g){n=d;i=f;return n|0}c[b+64>>2]=c[a+116>>2];c[b+68>>2]=c[a+120>>2];n=d;i=f;return n|0}function Pd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;c[b+4>>2]=a;a=Od(a,c[b>>2]|0,d)|0;i=e;return a|0}function Qd(a,b){a=a|0;b=b|0;a=i;b=c[b>>2]|0;if(b)De(b);i=a;return}function Rd(a){a=a|0;return}function Sd(a,b,c){a=a|0;b=b|0;c=c|0;return}function Td(a,b,c){a=a|0;b=b|0;c=c|0;return}function Ud(a){a=a|0;var b=0,d=0;b=i;d=a+8|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+16|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+64|0;c[d>>2]=-1;c[d+4>>2]=-1;d=a+72|0;c[d>>2]=0;c[d+4>>2]=0;d=a+32|0;c[a>>2]=0;c[d+0>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;i=b;return}function Vd(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;g=a+16|0;c[a+12>>2]=b;c[a+20>>2]=b+e;h=b+1|0;c[g>>2]=h;e=(d[b>>0]|0)<<18;c[a>>2]=e;f=b+2|0;c[g>>2]=f;e=(d[h>>0]|0)<<10|e;c[a>>2]=e;c[g>>2]=b+3;c[a>>2]=(d[f>>0]|0)<<2|e|2;c[a+4>>2]=510;return}function Wd(){var b=0,e=0,f=0,g=0,h=0,j=0;b=i;if(!(c[766]|0))e=0;else{i=b;return}while(1)if(e){g=(e&65280|0)==0;a[3072+e>>0]=(g?8:0)-(d[4872+(g?e:e>>>8)>>0]|0);e=e+1|0;if((e|0)==512){e=0;break}else continue}else{a[3072]=9;e=1;continue}while(1){f=e<<1;g=0;do{j=a[4416+(e<<2)+g>>0]|0;h=(g<<7)+f|0;a[(h|1)+3584>>0]=j;a[h+3584>>0]=j;g=g+1|0}while((g|0)!=4);j=(d[4672+e>>0]|0)<<1;a[f+4224>>0]=j;a[f+4225>>0]=j|1;if(e){h=(d[4736+e>>0]|0)<<1;j=128-f|0;a[j+4095>>0]=h;a[j+4094>>0]=h|1;e=e+1|0;if((e|0)==64)break;else continue}else{e=128-f|0;a[e+4095>>0]=1;a[e+4094>>0]=0;e=1;continue}}g=4352|0;f=4800|0;e=g+63|0;do{a[g>>0]=a[f>>0]|0;g=g+1|0;f=f+1|0}while((g|0)<(e|0));c[766]=1;i=b;return}function Xd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;e=i;f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;a=(c[a>>2]|0)+(h>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7)>>>(32-b|0);b=h+b|0;c[f>>2]=g>>>0>b>>>0?b:g;i=e;return a|0}function Yd(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;f=c[a+8>>2]|0;a=(c[a>>2]|0)+(f>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(f&7)>>>(32-b|0);i=e;return a|0}function Zd(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=c[a+16>>2]|0;b=(c[d>>2]|0)+b|0;c[d>>2]=a>>>0>b>>>0?b:a;return}function _d(a){a=a|0;var b=0,e=0,f=0;e=a+8|0;f=c[e>>2]|0;b=(d[(c[a>>2]|0)+(f>>>3)>>0]|0)<<(f&7)>>>7&1;c[e>>2]=((f|0)<(c[a+16>>2]|0)&1)+f;return b|0}function $d(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if(!b){j=0;i=e;return j|0}f=a+8|0;h=c[f>>2]|0;g=c[a+16>>2]|0;j=c[a>>2]|0;a=j+(h>>>3)|0;a=(lf(d[a>>0]|d[a+1>>0]<<8|d[a+2>>0]<<16|d[a+3>>0]<<24|0)|0)<<(h&7);if((b|0)<26){j=h+b|0;c[f>>2]=g>>>0>j>>>0?j:g;j=a>>>(32-b|0);i=e;return j|0}else{k=h+16|0;k=g>>>0>k>>>0?k:g;c[f>>2]=k;h=b+ -16|0;j=j+(k>>>3)|0;j=(lf(d[j>>0]|d[j+1>>0]<<8|d[j+2>>0]<<16|d[j+3>>0]<<24|0)|0)<<(k&7)>>>(48-b|0);b=k+h|0;c[f>>2]=g>>>0>b>>>0?b:g;j=j|a>>>16<>2]=c[a+0>>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];e=$d(e,32)|0;f=e>>>0>65535;e=f?e>>>16:e;f=f?16:0;if(e&65280){f=f|8;e=e>>>8}j=31-f-(d[4872+e>>0]|0)|0;g=a+8|0;f=c[g>>2]|0;e=0-f|0;h=(c[a+16>>2]|0)-f|0;if((j|0)<(e|0)){h=e;h=h+f|0;c[g>>2]=h;j=j+1|0;j=$d(a,j)|0;j=j+ -1|0;i=b;return j|0}h=(h|0)<(j|0)?h:j;h=h+f|0;c[g>>2]=h;j=j+1|0;j=$d(a,j)|0;j=j+ -1|0;i=b;return j|0}function be(a){a=a|0;var b=0;b=i;a=ae(a)|0;if(!(a&1)){a=0-(a>>>1)|0;i=b;return a|0}else{a=(a+1|0)>>>1;i=b;return a|0}return 0}function ce(b,c,d,e,f,g,h,j,k,l){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=i;if((k|0)==0|(l|0)==0){i=m;return}if((j|0)<(l|0)){if((j|0)<=(0-g|0)){y=1-g|0;c=c+($(y-j|0,e)|0)|0;j=y}}else{y=l+ -1|0;c=c+($(y-j|0,e)|0)|0;j=y}if((h|0)<(k|0)){if((h|0)<=(0-f|0)){y=1-f|0;c=c+(y-h)|0;h=y}}else{y=k+ -1|0;c=c+(y-h)|0;h=y}s=(j|0)>0;v=s?0:0-j|0;r=(h|0)>0;n=r?0:0-h|0;t=l-j|0;t=(t|0)<(g|0)?t:g;o=k-h|0;k=(o|0)<(f|0);o=k?o:f;p=o-n|0;q=c+(n+($(v,e)|0))|0;y=b+n|0;if((v|0)>0){u=(s?j:0)-j|0;w=(r?h:0)+($(u,d)|0)-h|0;x=0;while(1){mf(y|0,q|0,p|0)|0;x=x+1|0;if((x|0)>=(v|0))break;else y=y+d|0}b=b+w|0}else{b=y;u=0}if((u|0)<(t|0)){l=j+ -1-l|0;y=~g;y=(l|0)>(y|0)?l:y;l=~y;t=$(~u-y|0,d)|0;j=(r?h:0)+($((s?j+ -1|0:-1)-j-u-y|0,e)|0)-h|0;h=b;while(1){mf(h|0,q|0,p|0)|0;u=u+1|0;if((u|0)==(l|0))break;else{h=h+d|0;q=q+e|0}}b=b+t|0;q=c+j|0;u=l}l=q+(0-e)|0;if((u|0)<(g|0)){e=$(g-u|0,d)|0;c=b;while(1){mf(c|0,l|0,p|0)|0;u=u+1|0;if((u|0)==(g|0))break;else c=c+d|0}b=b+e|0}if(!g){i=m;return}e=(n|0)>0;p=o+ -1|0;c=b+(0-(($(g,d)|0)+n))|0;while(1){g=g+ -1|0;if(e){q=c+n|0;l=0;do{a[c+l>>0]=a[q>>0]|0;l=l+1|0}while((l|0)<(n|0))}if(k){l=c+p|0;q=o;do{a[c+q>>0]=a[l>>0]|0;q=q+1|0}while((q|0)<(f|0))}if(!g)break;else c=c+d|0}i=m;return}function de(a,b){a=a|0;b=b|0;c[a>>2]=1;return}function ee(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[1216]|0;if((d+ -32|0)>>>0>=a>>>0){e=$e(a)|0;if((e|0)==0&(a|0)==0)if((d|0)==32)e=0;else e=$e(1)|0}else e=0;i=b;return e|0}function fe(a,b){a=a|0;b=b|0;var d=0;d=i;if(((c[1216]|0)+ -32|0)>>>0>>0){b=0;i=d;return b|0}b=bf(a,((b|0)==0&1)+b|0)|0;i=d;return b|0}function ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;f=$(d,b)|0;if((d|b)>>>0>65535&(d|0)!=0?((f>>>0)/(d>>>0)|0|0)!=(b|0):0){af(a);d=0;i=e;return d|0}if(((c[1216]|0)+ -32|0)>>>0>>0)b=0;else b=bf(a,((f|0)==0&1)+f|0)|0;if((b|0)!=0|(f|0)==0){d=b;i=e;return d|0}af(a);d=0;i=e;return d|0}function he(a){a=a|0;var b=0;b=i;af(a);i=b;return}function ie(a){a=a|0;var b=0;b=i;af(c[a>>2]|0);c[a>>2]=0;i=b;return}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(((d|0)!=0?(2147483647/(d>>>0)|0)>>>0>b>>>0:0)?(f=$(d,b)|0,((c[1216]|0)+ -32|0)>>>0>=f>>>0):0)a=bf(a,((f|0)==0&1)+f|0)|0;else a=0;i=e;return a|0}function ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=i;e=ge(c[a>>2]|0,b,d)|0;c[a>>2]=e;i=f;return((e|0)!=0|(b|0)==0|(d|0)==0?0:-12)|0}function le(a){a=a|0;var b=0,c=0;c=i;b=ee(a)|0;if(b)jf(b|0,0,a|0)|0;i=c;return b|0}function me(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if((c[b>>2]|0)>>>0>d>>>0){i=e;return}f=((d*17|0)>>>4)+32|0;d=f>>>0>d>>>0?f:d;af(c[a>>2]|0);f=ee(d)|0;c[a>>2]=f;c[b>>2]=(f|0)==0?0:d;i=e;return}function ne(a,b){a=a|0;b=b|0;var c=0;c=i;if((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)b=ee($(b,a)|0)|0;else b=0;i=c;return b|0}function oe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=i;if(((b|0)!=0?(2147483647/(b>>>0)|0)>>>0>a>>>0:0)?(e=$(b,a)|0,d=ee(e)|0,(d|0)!=0):0)jf(d|0,0,e|0)|0;else d=0;i=c;return d|0}function pe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g;j=le(24)|0;c[h>>2]=j;if(!j){f=0;i=g;return f|0}c[j>>2]=a;c[j+4>>2]=b;c[j+12>>2]=(d|0)!=0?d:7;c[j+16>>2]=e;c[j+8>>2]=1;if(f&1){f=(c[h>>2]|0)+20|0;c[f>>2]=c[f>>2]|1}j=le(12)|0;if(!j){ie(h);f=0;i=g;return f|0}else{c[j>>2]=c[h>>2];c[j+4>>2]=a;c[j+8>>2]=b;f=j;i=g;return f|0}return 0}function qe(a,b){a=a|0;b=b|0;a=i;he(b);i=a;return}function re(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=ee(a)|0;c[d>>2]=e;if(e){a=pe(e,a,7,0,0)|0;if(!a){ie(d);a=0}}else a=0;i=b;return a|0}function se(a){a=a|0;var b=0,d=0;b=i;d=re(a)|0;if(!d){d=0;i=b;return d|0}jf(c[d+4>>2]|0,0,a|0)|0;i=b;return d|0}function te(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=le(12)|0;if(!d){e=0;i=b;return e|0}c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];f=(c[a>>2]|0)+8|0;a=c[f>>2]|0;c[f>>2]=a+1;c[e>>2]=a+1;e=d;i=b;return e|0}function ue(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;e=b+4|0;d=b;if(!a){i=b;return}f=c[a>>2]|0;if(!f){i=b;return}f=c[f>>2]|0;c[d>>2]=f;ie(a);a=f+8|0;f=c[a>>2]|0;c[a>>2]=f+ -1;c[e>>2]=f+ -1;if(c[e>>2]|0){i=b;return}f=c[d>>2]|0;Fa[c[f+12>>2]&15](c[f+16>>2]|0,c[f>>2]|0);ie(d);i=b;return}function ve(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=le(20)|0;if(!e){b=0;i=d;return b|0}c[e+12>>2]=a;c[e+16>>2]=(b|0)!=0?b:4;c[e+4>>2]=1;b=e;i=d;return b|0}function we(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b;if(!a){i=b;return}e=c[a>>2]|0;if(!e){i=b;return}c[a>>2]=0;f=e+4|0;a=c[f>>2]|0;c[f>>2]=a+ -1;c[d>>2]=a+ -1;if(c[d>>2]|0){i=b;return}xe(e);i=b;return}function xe(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;if(!(c[a>>2]|0)){ie(d);i=b;return}do{f=c[a>>2]|0;c[e>>2]=f;c[c[d>>2]>>2]=c[f+16>>2];f=c[e>>2]|0;Fa[c[f+8>>2]&15](c[f+4>>2]|0,c[f>>2]|0);ie(e);a=c[d>>2]|0}while((c[a>>2]|0)!=0);ie(d);i=b;return}function ye(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+16|0;b=d+4|0;e=d;f=c[a>>2]|0;j=0;while(1){if((f|0)==(j|0)){f=4;break}g=c[a>>2]|0;if((g|0)==(f|0))c[a>>2]=0;if(!g){f=5;break}else{j=f;f=g}}if((f|0)==4)if(!j)f=5;a:do if((f|0)==5){g=a+4|0;f=a+8|0;b:do if((c[g>>2]|0)<=(c[f>>2]|0))c:while(1){c[b>>2]=c[g>>2];j=c[b>>2]|0;c[b>>2]=c[f>>2];if((j|0)>(c[b>>2]|0))break b;h=c[a>>2]|0;j=0;while(1){if((h|0)==(j|0))break;j=c[a>>2]|0;if((j|0)==(h|0))c[a>>2]=0;if(!j)continue c;else{k=h;h=j;j=k}}if(j)break a}while(0);j=Ja[c[a+16>>2]&7](c[a+12>>2]|0)|0;c[e>>2]=j;if(!j){k=0;i=d;return k|0}h=le(20)|0;if(!h){ue(e);k=0;i=d;return k|0}else{c[h>>2]=c[c[j>>2]>>2];c[h+4>>2]=c[(c[j>>2]|0)+16>>2];c[h+8>>2]=c[(c[j>>2]|0)+12>>2];c[h+12>>2]=a;c[(c[j>>2]|0)+16>>2]=h;c[(c[c[e>>2]>>2]|0)+12>>2]=8;k=c[g>>2]|0;c[g>>2]=k+1;c[b>>2]=k+1;k=c[f>>2]|0;c[f>>2]=k+1;c[b>>2]=k+1;k=c[e>>2]|0;i=d;return k|0}}while(0);e=j+16|0;ze(c[e>>2]|0);c[e>>2]=0;e=pe(c[j>>2]|0,c[a+12>>2]|0,8,j,0)|0;if(!e){ze(j);k=0;i=d;return k|0}else{j=a+4|0;k=c[j>>2]|0;c[j>>2]=k+1;c[b>>2]=k+1;k=e;i=d;return k|0}return 0}function ze(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=i;if(!a){i=d;return}b=c[a+12>>2]|0;f=a+16|0;if(!(c[f>>2]|0))e=a;else do{e=c[f>>2]|0;f=e+16|0}while((c[f>>2]|0)!=0);f=c[b>>2]|0;if(!f)c[b>>2]=a;if(!f){i=d;return}do{f=c[b>>2]|0;g=0;while(1){if((f|0)==(g|0))break;g=c[b>>2]|0;if((g|0)==(f|0))c[b>>2]=0;if(!g){g=0;break}else{h=f;f=g;g=h}}f=e+16|0;c[f>>2]=g;if(c[f>>2]|0)do{e=c[f>>2]|0;f=e+16|0}while((c[f>>2]|0)!=0);f=c[b>>2]|0;if(!f)c[b>>2]=a}while((f|0)!=0);i=d;return}function Ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=i;i=i+16|0;e=b;d=c[a+12>>2]|0;ze(a);f=d+4|0;a=c[f>>2]|0;c[f>>2]=a+ -1;c[e>>2]=a+ -1;if(c[e>>2]|0){i=b;return}xe(d);i=b;return}function Be(){var a=0,b=0,d=0;a=i;b=le(400)|0;if(!b){b=0;i=a;return b|0}jf(b|0,0,400)|0;d=b+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=b+376|0;c[d>>2]=0;c[d+4>>2]=0;d=b+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=a;return b|0}function Ce(a){a=a|0;var b=0,d=0;b=i;if((a|0)!=0?(d=c[a>>2]|0,(d|0)!=0):0){De(d);ie(a)}i=b;return}function De(a){a=a|0;var b=0,d=0;b=i;ue(a+304|0);ue(a+308|0);ue(a+312|0);ue(a+316|0);ue(a+320|0);ue(a+324|0);ue(a+328|0);ue(a+332|0);jf(a|0,0,400)|0;d=a+136|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+144|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+128|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+360|0;c[d>>2]=0;c[d+4>>2]=-2147483648;d=a+376|0;c[d>>2]=0;c[d+4>>2]=0;d=a+368|0;c[d>>2]=-1;c[d+4>>2]=-1;c[a+392>>2]=-1;c[a+80>>2]=1;c[a+120>>2]=0;c[a+124>>2]=1;c[a+76>>2]=-1;c[a+344>>2]=2;c[a+348>>2]=2;c[a+352>>2]=2;c[a+340>>2]=0;c[a+356>>2]=0;i=b;return}function Ee(a,b){a=a|0;b=b|0;var d=0;d=i;mf(a|0,b|0,400)|0;jf(b|0,0,400)|0;a=b+136|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+144|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+128|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+360|0;c[a>>2]=0;c[a+4>>2]=-2147483648;a=b+376|0;c[a>>2]=0;c[a+4>>2]=0;a=b+368|0;c[a>>2]=-1;c[a+4>>2]=-1;c[b+392>>2]=-1;c[b+80>>2]=1;c[b+120>>2]=0;c[b+124>>2]=1;c[b+76>>2]=-1;c[b+344>>2]=2;c[b+348>>2]=2;c[b+352>>2]=2;c[b+340>>2]=0;c[b+356>>2]=0;i=d;return}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;c[a+76>>2]=c[b+76>>2];c[a+64>>2]=c[b+64>>2];c[a+68>>2]=c[b+68>>2];c[a+388>>2]=c[b+388>>2];j=b+296|0;h=c[j+4>>2]|0;f=a+296|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;c[a+72>>2]=c[b+72>>2];f=c[b+304>>2]|0;if(!f)wa();else{e=f;g=0}while(1){if((e|0)!=0?(j=te(e)|0,c[a+(g<<2)+304>>2]=j,(j|0)==0):0){e=5;break}g=g+1|0;if(g>>>0>=8){e=8;break}e=c[b+(g<<2)+304>>2]|0}if((e|0)==5){De(a);j=-12;i=d;return j|0}else if((e|0)==8){c[a+0>>2]=c[b+0>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2];j=a+32|0;h=b+32|0;c[j+0>>2]=c[h+0>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];c[j+16>>2]=c[h+16>>2];c[j+20>>2]=c[h+20>>2];c[j+24>>2]=c[h+24>>2];c[j+28>>2]=c[h+28>>2];j=0;i=d;return j|0}return 0}function Ge(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;e=0;while(1){f=e+1|0;if((c[5128+(e*24|0)>>2]|0)==(a|0))break;if(f>>>0<4)e=f;else{e=0;b=5;break}}if((b|0)==5){i=d;return e|0}f=5132+(e*24|0)|0;i=d;return f|0}function He(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;g=(c[b+24>>2]|0)==0?1:3;if((g|0)>(e|0)){b=c[b+8>>2]|0;c[d>>2]=c[b+(e<<2)+32>>2];b=c[b+(e<<2)>>2]|0;i=f;return b|0}if((a[b+29>>0]|0)!=0&(g|0)==(e|0)){b=c[b+12>>2]|0;c[d>>2]=c[b+32>>2];b=c[b>>2]|0;i=f;return b|0}else{c[d>>2]=0;b=0;i=f;return b|0}return 0}function Ie(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;f=i;if(!(c[d+8>>2]|0)){h=-1;i=f;return h|0}c[e>>2]=c[d+16>>2];c[e+4>>2]=c[d+20>>2];a[e+8>>0]=c[d+24>>2];g=d+31|0;if(!(a[d+29>>0]|0))h=0;else h=(a[g>>0]|0)==0&1;a[e+9>>0]=h;a[e+12>>0]=a[d+33>>0]|0;a[e+13>>0]=a[g>>0]|0;a[e+14>>0]=a[d+32>>0]|0;a[e+10>>0]=c[d+36>>2];a[e+11>>0]=a[d+30>>0]|0;a[e+15>>0]=a[d+34>>0]|0;b[e+16>>1]=b[d+48>>1]|0;h=0;i=f;return h|0}function Je(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0;f=i;i=i+32|0;k=f+12|0;h=f;if(!(c[b+8>>2]|0)){u=-1;i=f;return u|0}g=b+68|0;do if(a[g>>0]|0){if(!(a[b+34>>0]|0)){u=-1;i=f;return u|0}if(!(a[b+41>>0]|0)){u=-1;i=f;return u|0}if((c[b+72>>2]|0)!=(e|0)){u=-1;i=f;return u|0}e=b+60|0;j=c[e>>2]|0;g=c[b+64>>2]|0;if((j|0)>=(g|0)){u=-1;i=f;return u|0}u=(c[b+56>>2]|0)+j|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;g=Te(b,k,h,u,g-j|0,0)|0;he(c[k>>2]|0);he(c[h>>2]|0);if((g|0)<0){u=-1;i=f;return u|0}else{c[e>>2]=(c[e>>2]|0)+g;h=b+24|0;break}}else{if(e>>>0>1){u=-1;i=f;return u|0}a[b+76>>0]=(e|0)==1&1;m=b+77|0;a[m>>0]=0;a[b+78>>0]=0;h=b+24|0;if(((c[h>>2]|0)+ -1|0)>>>0<2?(u=b+16|0,p=c[u>>2]|0,l=b+84|0,c[l>>2]=(p+1|0)/2|0,c[b+88>>2]=((c[b+20>>2]|0)+1|0)/2|0,c[b+124>>2]=ee(p)|0,c[b+128>>2]=ee(c[u>>2]|0)|0,c[b+196>>2]=ee((c[l>>2]<<1)+14|0)|0,(c[h>>2]|0)==1):0){k=0;do{c[b+(k<<2)+132>>2]=ee(c[l>>2]|0)|0;c[b+(k<<2)+164>>2]=ee(c[l>>2]|0)|0;k=k+1|0}while((k|0)!=8)}k=d[b+30>>0]|0;v=(a[m>>0]|0)!=0?16:8;l=b+36|0;u=c[l>>2]|0;m=a[b+32>>0]|0;n=m&255;p=30-v|0;o=+((1<>24!=0;if(m){v=k+ -8|0;r=o/+(224<>2]=va(+(r*y*2.0))|0;w=1.0-s;x=w-t;c[b+224>>2]=va(+(r*(s*2.0*w/x)))|0;c[b+228>>2]=va(+(r*(t*2.0*y/x)))|0;c[b+232>>2]=va(+(r*w*2.0))|0}j=va(+q)|0;c[b+208>>2]=j;c[b+200>>2]=p;p=1<>2]=p;c[b+236>>2]=1<>2]=v;v=$(v,-16<>2]=v+(c[u>>2]|0)}else{c[b+212>>2]=j;c[b+216>>2]=p}c[b+240>>2]=k;c[b+244>>2]=n;if(!(c[h>>2]|0))c[b+248>>2]=4;else c[b+248>>2]=c[6256+(c[l>>2]<<2)>>2];a[g>>0]=1;c[b+72>>2]=e}while(0);c[b+92>>2]=He(b,b+108|0,0)|0;if(!(c[h>>2]|0))e=1;else{c[b+96>>2]=He(b,b+112|0,1)|0;c[b+100>>2]=He(b,b+116|0,2)|0;e=3}if(!(a[b+29>>0]|0))c[b+104>>2]=0;else c[b+104>>2]=He(b,b+120|0,e)|0;c[b+80>>2]=0;v=0;i=f;return v|0}function Ke(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0;g=i;h=c[b+8>>2]|0;if((h|0)!=0?(a[b+34>>0]|0)!=0:0){h=h+128|0;h=rf(e[b+50>>1]|0,0,c[h>>2]|0,c[h+4>>2]|0)|0;c[d>>2]=h;d=e[b+52>>1]|0;c[f>>2]=d;i=g;return}c[d>>2]=0;d=1;c[f>>2]=d;i=g;return}function Le(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;f=b+80|0;l=c[f>>2]|0;if(l>>>0>=(c[b+20>>2]|0)>>>0){u=-1;i=h;return u|0}g=c[b+16>>2]|0;m=(c[b+92>>2]|0)+($(c[b+108>>2]|0,l)|0)|0;j=b+76|0;if(!(a[j>>0]|0))k=(a[b+78>>0]|0)!=0?4:3;else k=4;n=c[b+24>>2]|0;if((n|0)==1){if(!l){n=b+96|0;o=b+112|0;p=b+100|0;q=b+116|0;r=b+84|0;s=b+88|0;t=0;do{u=(t|0)>4?t+ -8|0:t;if((u|0)<0)u=0;else{v=c[s>>2]|0;u=(u|0)<(v|0)?u:v+ -1|0}w=(c[n>>2]|0)+($(c[o>>2]|0,u)|0)|0;v=(c[p>>2]|0)+($(c[q>>2]|0,u)|0)|0;mf(c[b+(t<<2)+132>>2]|0,w|0,c[r>>2]|0)|0;mf(c[b+(t<<2)+164>>2]|0,v|0,c[r>>2]|0)|0;t=t+1|0}while((t|0)!=8)}o=l>>1;q=(o|0)%8|0;w=l&1;n=b+124|0;t=b+196|0;u=b+30|0;v=b+28|0;Me(c[n>>2]|0,b+132|0,g,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);p=b+128|0;Me(c[p>>2]|0,b+164|0,g,q,c[t>>2]|0,d[u>>0]|0,w,d[v>>0]|0);if(w){u=(q+5|0)%8|0;t=o+5|0;v=c[b+88>>2]|0;v=(t|0)<(v|0)?t:v+ -1|0;t=(c[b+96>>2]|0)+($(v,c[b+112>>2]|0)|0)|0;v=(c[b+100>>2]|0)+($(c[b+116>>2]|0,v)|0)|0;w=b+84|0;mf(c[b+(u<<2)+132>>2]|0,t|0,c[w>>2]|0)|0;mf(c[b+(u<<2)+164>>2]|0,v|0,c[w>>2]|0)|0}Qa[c[b+248>>2]&7](b+200|0,e,m,c[n>>2]|0,c[p>>2]|0,g,k)}else if((n|0)==3){v=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;w=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;Qa[c[b+248>>2]&7](b+200|0,e,m,v,w,g,k)}else if((n|0)==2){w=(c[b+96>>2]|0)+($(c[b+112>>2]|0,l)|0)|0;r=(c[b+100>>2]|0)+($(c[b+116>>2]|0,l)|0)|0;v=b+124|0;s=b+30|0;t=b+28|0;u=b+196|0;Ne(c[v>>2]|0,w,g,d[s>>0]|0,d[t>>0]|0,c[u>>2]|0);w=b+128|0;Ne(c[w>>2]|0,r,g,d[s>>0]|0,d[t>>0]|0,c[u>>2]|0);Qa[c[b+248>>2]&7](b+200|0,e,m,c[v>>2]|0,c[w>>2]|0,g,k)}else if(!n)Qa[c[b+248>>2]&7](b+200|0,e,m,0,0,g,k);else{w=-1;i=h;return w|0}a:do if(!(a[b+31>>0]|0)){if(a[j>>0]|0){if(!(a[b+29>>0]|0)){if((g|0)<=0)break;b=e+3|0;e=0;while(1){a[b>>0]=-1;e=e+1|0;if((e|0)==(g|0))break a;else b=b+4|0}}j=c[b+104>>2]|0;k=$(c[b+120>>2]|0,l)|0;o=e+3|0;if((c[b+240>>2]|0)==8){if((g|0)>0){l=0;while(1){a[o>>0]=a[j+(l+k)>>0]|0;l=l+1|0;if((l|0)==(g|0))break;else o=o+4|0}}}else{l=c[b+208>>2]|0;m=c[b+204>>2]|0;n=c[b+200>>2]|0;if((g|0)>0){p=0;while(1){a[o>>0]=($(d[j+(p+k)>>0]|0,l)|0)+m>>n;p=p+1|0;if((p|0)==(g|0))break;else o=o+4|0}}}if(a[b+33>>0]|0){if(!(c[1306]|0)){c[1306]=1;b=1;do{c[5232+(b<<2)>>2]=(((b|0)/2|0)+16711808|0)/(b|0)|0;b=b+1|0}while((b|0)!=256)}if((g|0)>0){b=0;while(1){k=a[e+3>>0]|0;if(!(k<<24>>24)){a[e>>0]=-1;a[e+1>>0]=-1;a[e+2>>0]=-1}else{j=c[5232+((k&255)<<2)>>2]|0;l=a[e>>0]|0;if((l&255)<(k&255))l=(($(l&255,j)|0)+32768|0)>>>16&255;else l=-1;a[e>>0]=l;l=e+1|0;m=a[l>>0]|0;if((m&255)<(k&255))m=(($(m&255,j)|0)+32768|0)>>>16&255;else m=-1;a[l>>0]=m;l=e+2|0;m=a[l>>0]|0;if((m&255)<(k&255))j=(($(m&255,j)|0)+32768|0)>>>16&255;else j=-1;a[l>>0]=j}b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}}}else{m=c[b+104>>2]|0;l=$(c[b+120>>2]|0,l)|0;b=c[b+240>>2]|0;q=1<0;if(p){o=e;n=0;while(1){v=d[m+(n+l)>>0]|0;a[o>>0]=($(d[o>>0]|0,v)|0)+q>>b;w=o+1|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;w=o+2|0;a[w>>0]=($(d[w>>0]|0,v)|0)+q>>b;n=n+1|0;if((n|0)==(g|0))break;else o=o+k|0}}if(!((a[j>>0]|0)==0|p^1)){e=e+3|0;b=0;while(1){a[e>>0]=-1;b=b+1|0;if((b|0)==(g|0))break;else e=e+4|0}}}while(0);c[f>>2]=(c[f>>2]|0)+1;w=0;i=h;return w|0}function Me(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;n=i;p=c[f+((h+5&7)<<2)>>2]|0;t=c[f+((h+6&7)<<2)>>2]|0;q=c[f+((h+7&7)<<2)>>2]|0;s=c[f+((h&7)<<2)>>2]|0;r=c[f+((h+1&7)<<2)>>2]|0;o=c[f+((h+2&7)<<2)>>2]|0;f=c[f+((h+3&7)<<2)>>2]|0;u=k+ -8|0;v=1<>1;h=(g+1|0)/2|0;w=(g|0)>0;if(!l){if(w){l=0;do{y=$(d[t+l>>0]|0,-6)|0;z=$(d[r+l>>0]|0,-10)|0;b[j+(l+3<<1)>>1]=(d[p+l>>0]<<1)+v+y+((d[q+l>>0]|0)*18|0)+((d[s+l>>0]|0)*57|0)+z+(d[o+l>>0]<<2)-(d[f+l>>0]|0)>>u;l=l+1|0}while((l|0)<(h|0))}}else if(w){l=0;do{y=$(d[q+l>>0]|0,-10)|0;z=$(d[o+l>>0]|0,-6)|0;b[j+(l+3<<1)>>1]=v-(d[p+l>>0]|0)+(d[t+l>>0]<<2)+y+((d[s+l>>0]|0)*57|0)+((d[r+l>>0]|0)*18|0)+z+(d[f+l>>0]<<1)>>u;l=l+1|0}while((l|0)<(h|0))}o=j+6|0;z=b[o>>1]|0;b[j>>1]=z;q=j+2|0;b[q>>1]=z;p=j+4|0;b[p>>1]=z;z=b[j+(h+2<<1)>>1]|0;b[j+(h+3<<1)>>1]=z;b[j+(h+4<<1)>>1]=z;b[j+(h+5<<1)>>1]=z;b[j+(h+6<<1)>>1]=z;h=(1<>1;t=20-k|0;s=1<1){r=g+ -2|0;k=r>>>1;q=k<<1;f=e;while(1){u=(b[o>>1]|0)+m>>p;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f>>0]=u;z=$((b[o+4>>1]|0)+(b[o+ -2>>1]|0)|0,-11)|0;u=o;o=o+2|0;u=s-(b[u+ -6>>1]|0)-(b[u+8>>1]|0)+((b[u+6>>1]|0)+(b[u+ -4>>1]|0)<<2)+z+(((b[o>>1]|0)+(b[u>>1]|0)|0)*40|0)>>t;if((u|0)<0)u=0;else u=((u|0)>(h|0)?h:u)&255;a[f+1>>0]=u;g=g+ -2|0;if((g|0)<=1)break;else f=f+2|0}e=e+(q+2)|0;g=r-q|0;o=j+(k+4<<1)|0}if(!g){i=n;return}j=(b[o>>1]|0)+m>>p;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}else{k=20-k|0;m=1<>1]|0;v=b[q>>1]|0;u=b[p>>1]|0;f=b[o>>1]|0;s=b[j+8>>1]|0;t=b[j+10>>1]|0;if((g|0)>1){r=g+ -2|0;p=r>>>1;q=p<<1;x=e;while(1){w=b[o+6>>1]|0;y=f*57|0;z=(t<<2)+m+($(s,-10)|0)+y+(u*18|0)+($(v,-6)|0)+(l<<1)-w>>k;if((z|0)<0)z=0;else z=((z|0)>(h|0)?h:z)&255;a[x>>0]=z;l=($(t,-6)|0)+m+(s*18|0)+y+($(u,-10)|0)-l+(v<<2)+(w<<1)>>k;if((l|0)<0)l=0;else l=((l|0)>(h|0)?h:l)&255;a[x+1>>0]=l;g=g+ -2|0;if((g|0)<=1)break;else{B=t;A=s;y=f;z=u;l=v;t=w;x=x+2|0;o=o+2|0;s=B;f=A;u=y;v=z}}l=v;v=u;u=f;f=s;s=t;t=w;e=e+(q+2)|0;g=r-q|0;o=j+(p+4<<1)|0}if(!g){i=n;return}j=(t<<2)+m+($(s,-10)|0)+(f*57|0)+(u*18|0)+($(v,-6)|0)+(l<<1)-(b[o+6>>1]|0)>>k;if((j|0)<0)j=0;else j=((j|0)>(h|0)?h:j)&255;a[e>>0]=j;i=n;return}}function Ne(b,c,e,f,g,h){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;j=i;v=(e+1|0)/2|0;k=h+3|0;mf(k|0,c|0,v|0)|0;jf(h|0,a[c>>0]|0,3)|0;jf(h+(v+3)|0,a[c+(v+ -1)>>0]|0,4)|0;c=(1<1){f=e+ -2|0;g=f>>>1;l=g<<1;m=b;while(1){a[m>>0]=a[k>>0]|0;v=$((d[k+2>>0]|0)+(d[k+ -1>>0]|0)|0,-11)|0;n=k;k=k+1|0;n=32-(d[n+ -3>>0]|0)-(d[n+4>>0]|0)+((d[n+3>>0]|0)+(d[n+ -2>>0]|0)<<2)+v+(((d[k>>0]|0)+(d[n>>0]|0)|0)*40|0)>>6;if((n|0)<0)n=0;else n=((n|0)>(c|0)?c:n)&255;a[m+1>>0]=n;e=e+ -2|0;if((e|0)<=1)break;else m=m+2|0}b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}a[b>>0]=a[k>>0]|0;i=j;return}q=d[h>>0]|0;r=d[h+1>>0]|0;m=d[h+2>>0]|0;p=d[k>>0]|0;o=d[h+4>>0]|0;n=d[h+5>>0]|0;if((e|0)>1){f=e+ -2|0;g=f>>>1;l=g<<1;t=b;while(1){s=d[k+3>>0]|0;u=p*57|0;v=(n<<2)+32+($(o,-10)|0)+u+(m*18|0)+($(r,-6)|0)+(q<<1)-s>>6;if((v|0)<0)v=0;else v=((v|0)>(c|0)?c:v)&255;a[t>>0]=v;q=($(n,-6)|0)+32+(o*18|0)+u+($(m,-10)|0)-q+(r<<2)+(s<<1)>>6;if((q|0)<0)q=0;else q=((q|0)>(c|0)?c:q)&255;a[t+1>>0]=q;e=e+ -2|0;if((e|0)<=1)break;else{x=n;w=o;u=p;v=m;q=r;n=s;t=t+2|0;k=k+1|0;o=x;p=w;m=u;r=v}}q=r;r=m;m=p;p=o;o=n;n=s;b=b+(l+2)|0;e=f-l|0;k=h+(g+4)|0}if(!e){i=j;return}h=(n<<2)+32+($(o,-10)|0)+(p*57|0)+(m*18|0)+($(r,-6)|0)+(q<<1)-(d[k+3>>0]|0)>>6;if((h|0)<0)h=0;else h=((h|0)>(c|0)?c:h)&255;a[b>>0]=h;i=j;return}function Oe(){var a=0,b=0;a=i;b=le(252)|0;if(!b)b=0;i=a;return b|0}function Pe(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;g=i;i=i+80|0;h=g+64|0;j=g+52|0;u=g+48|0;s=g+44|0;r=g+40|0;w=g+36|0;n=g;y=a[d+40>>0]|0;a:do if(((((((f|0)>=6?(a[e>>0]|0)==66:0)?(a[e+1>>0]|0)==80:0)?(a[e+2>>0]|0)==71:0)?(a[e+3>>0]|0)==-5:0)?(R=a[e+4>>0]|0,P=R&255,z=P>>>5,c[n+8>>2]=z,(R&255)<=191):0)?(R=(P&15)+8|0,a[n+13>>0]=R,(R&255)>>>0<=14):0){H=a[e+5>>0]|0;v=H&255;I=v>>>4;c[n+24>>2]=I;A=v&8;N=v>>>2&1;a[n+16>>0]=v>>>1&1;p=n+17|0;a[p>>0]=v&1;v=n+18|0;b[v>>1]=0;q=n+20|0;b[q>>1]=0;t=n+22|0;b[t>>1]=0;Q=n+12|0;a[Q>>0]=0;R=n+14|0;a[R>>0]=0;O=n+15|0;a[O>>0]=0;if(!(P&16))if(!N)N=0;else{a[Q>>0]=1;a[R>>0]=1;N=1}else{a[Q>>0]=1;a[O>>0]=N;N=0}if((((((((((H&255)<=79?(z|0)!=0|(I|0)==0:0)?!(N<<24>>24!=0&(z|0)==0):0)?(G=We(n,e+6|0,f+ -6|0)|0,(G|0)>=0):0)?(F=(c[n>>2]|0)>>>0>1073741823?-1:G,(F|0)>=0):0)?(L=F+6|0,J=n+4|0,E=We(J,e+L|0,f-L|0)|0,(E|0)>=0):0)?(B=c[J>>2]|0,K=B>>>0>1073741823?-1:E,(K|0)>=0):0)?(C=K+L|0,!((c[n>>2]|0)==0|(B|0)==0)):0)?(o=n+28|0,D=We(o,e+C|0,f-C|0)|0,(D|0)>=0):0)?(M=(c[o>>2]|0)>>>0>1073741823?-1:D,(M|0)>=0):0){z=M+C|0;c[h>>2]=0;do if(!A){c[n+32>>2]=0;x=48}else{A=We(h,e+z|0,f-z|0)|0;if((A|0)<0){z=-1;break a}C=c[h>>2]|0;A=C>>>0>1073741823?-1:A;if((A|0)<0){z=-1;break a}B=A+z|0;A=n+32|0;c[A>>2]=0;z=B+C|0;if((z|0)>(f|0)){z=-1;break a}y=y<<24>>24!=0;if(!y?(a[p>>0]|0)==0:0)break;if((B|0)<(z|0))x=A;else{z=B;x=48;break}while(1){A=We(j,e+B|0,z-B|0)|0;if((A|0)<0){z=-1;break a}B=A+B|0;C=We(u,e+B|0,z-B|0)|0;if((C|0)<0){z=-1;break a}A=c[u>>2]|0;C=A>>>0>1073741823?-1:C;if((C|0)<0){z=-1;break a}C=C+B|0;B=C+A|0;if(B>>>0>z>>>0){z=-1;break a}do if(a[p>>0]|0){if((c[j>>2]|0)!=5)break;E=We(s,e+C|0,z-C|0)|0;if((E|0)<0){z=-1;break a}D=c[s>>2]|0;E=D>>>0>1073741823?-1:E;if((E|0)<0){z=-1;break a}F=E+C|0;G=We(r,e+F|0,z-F|0)|0;if((G|0)<0){z=-1;break a}E=c[r>>2]|0;G=E>>>0>1073741823?-1:G;if((G|0)<0){z=-1;break a}R=G+F|0;if((We(w,e+R|0,z-R|0)|0)<0){z=-1;break a}F=c[w>>2]|0;if(!((E&65535|0)==(E|0)&((F>>>0>1073741823|(E|0)==0|(F|0)==0)^1))){z=-1;break a}if((F&65535|0)!=(F|0)){z=-1;break a}if((D&65535|0)!=(D|0)){z=-1;break a}b[v>>1]=D;b[q>>1]=E;b[t>>1]=F}while(0);if(y){P=ee(16)|0;c[P>>2]=c[j>>2];Q=P+4|0;c[Q>>2]=A;R=P+12|0;c[R>>2]=0;c[x>>2]=P;x=ee(A)|0;c[P+8>>2]=x;mf(x|0,e+C|0,c[Q>>2]|0)|0;x=R}if((B|0)>=(z|0)){z=B;x=48;break}}}while(0);do if((x|0)==48){if(!(a[p>>0]|0))break;if(!(b[q>>1]|0)){z=-1;break a}}while(0);if(c[o>>2]|0)break;c[o>>2]=f-z}else z=-1}else z=-1;while(0);if((z|0)<0){R=z;i=g;return R|0}q=c[n>>2]|0;r=c[n+4>>2]|0;u=c[n+12>>2]|0;v=u&255;w=c[n+24>>2]|0;s=(u&65535)>>>8;x=s&255;s=s&65535;o=d+16|0;c[o>>2]=q;p=d+20|0;c[p>>2]=r;t=c[n+8>>2]|0;A=d+24|0;c[A>>2]=t;y=u>>>24&255;u=u>>>16&255;if((t|0)==5){c[A>>2]=2;a[d+28>>0]=0;t=2}else if((t|0)==4){c[A>>2]=1;a[d+28>>0]=0;t=1}else{c[A>>2]=t;a[d+28>>0]=1}a[d+29>>0]=v;a[d+33>>0]=y;a[d+31>>0]=u;u=c[n+16>>2]|0;a[d+32>>0]=u;c[d+36>>2]=w;a[d+30>>0]=x;w=d+34|0;a[w>>0]=(u&65535)>>>8;b[d+48>>1]=u>>>16;u=c[n+20>>2]|0;b[d+50>>1]=u;b[d+52>>1]=u>>>16;u=d+44|0;c[u>>2]=c[n+32>>2];do if(((c[n+28>>2]|0)+z|0)>>>0<=f>>>0){x=e+z|0;n=f-z|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;if(!(v<<24>>24))y=n;else{v=Se(h,d+12|0,d+4|0,x,n,q,r,0,s)|0;if((v|0)<0)break;x=e+(v+z)|0;y=n-v|0}v=d+8|0;q=Se(j,v,d,x,y,q,r,t,s)|0;if(((q|0)>=0?(l=y-q|0,k=Te(d,h,j,x+q|0,l,1)|0,he(c[h>>2]|0),he(c[j>>2]|0),(k|0)>=0):0)?(m=k+(n-l)|0,(m|0)>=0):0){h=m+z|0;a[d+41>>0]=1;if(!(a[w>>0]|0))Qe(d);else{j=f-h|0;f=ee(j)|0;c[d+56>>2]=f;if(!f)break;mf(f|0,e+h|0,j|0)|0;c[d+64>>2]=j;c[d+60>>2]=0}R=c[v>>2]|0;if((c[R+64>>2]|0)>=(c[o>>2]|0)?(c[R+68>>2]|0)>=(c[p>>2]|0):0){c[d+80>>2]=-1;R=0;i=g;return R|0}}}while(0);Ce(d+8|0);Ce(d+12|0);c[u>>2]=0;R=-1;i=g;return R|0}function Qe(a){a=a|0;var b=0,d=0,e=0;b=i;d=a+4|0;e=c[d>>2]|0;if(e){Fd(e)|0;he(c[d>>2]|0);c[d>>2]=0}d=c[a>>2]|0;if(!d){i=b;return}Fd(d)|0;he(c[a>>2]|0);c[a>>2]=0;i=b;return}function Re(a){a=a|0;var b=0,d=0;b=i;he(c[a+124>>2]|0);he(c[a+128>>2]|0);d=0;do{he(c[a+(d<<2)+132>>2]|0);he(c[a+(d<<2)+164>>2]|0);d=d+1|0}while((d|0)!=8);he(c[a+196>>2]|0);he(c[a+56>>2]|0);Qe(a);Ce(a+8|0);Ce(a+12|0);he(a);i=b;return}function Se(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=i;i=i+16|0;q=n+4|0;m=n;p=We(q,f,g)|0;if((p|0)<0){t=-1;i=n;return t|0}r=c[q>>2]|0;t=r>>>0>1073741823?-1:p;if((t|0)<0){t=-1;i=n;return t|0}s=g-t|0;if(r>>>0>s>>>0){t=-1;i=n;return t|0}q=r+10|0;p=ee(q)|0;a[p>>0]=k;a[p+1>>0]=h>>>24;a[p+2>>0]=h>>>16;a[p+3>>0]=h>>>8;a[p+4>>0]=h;a[p+5>>0]=j>>>24;a[p+6>>0]=j>>>16;a[p+7>>0]=j>>>8;a[p+8>>0]=j;a[p+9>>0]=l+248;mf(p+10|0,f+t|0,r|0)|0;l=s-r|0;k=ee(10-r+(q<<1)+l|0)|0;a[k>>0]=0;a[k+1>>0]=0;a[k+2>>0]=0;a[k+3>>0]=1;a[k+4>>0]=96;a[k+5>>0]=1;if((q|0)>0){r=0;f=6;do{j=r+1|0;h=a[p+r>>0]|0;if((j|0)<(q|0)&h<<24>>24==0)if(!(a[p+j>>0]|0)){a[k+f>>0]=0;a[k+(f+1)>>0]=0;a[k+(f+2)>>0]=3;r=r+2|0;f=f+3|0}else{h=0;o=8}else o=8;if((o|0)==8){o=0;a[k+f>>0]=h;r=j;f=f+1|0}}while((r|0)<(q|0));if(!f){f=0;o=12}else o=11}else{f=6;o=11}if((o|0)==11)if(!(a[k+(f+ -1)>>0]|0))o=12;if((o|0)==12){a[k+f>>0]=-128;f=f+1|0}he(p);o=g-l|0;if((o|0)<0){t=-1;i=n;return t|0}g=b+8|0;if((Ue(b,(c[g>>2]|0)+f|0)|0)<0){he(k);t=-1;i=n;return t|0}mf((c[b>>2]|0)+(c[g>>2]|0)|0,k|0,f|0)|0;c[g>>2]=(c[g>>2]|0)+f;he(k);b=Kd(1488)|0;if(!b){t=-1;i=n;return t|0}g=Be()|0;c[m>>2]=g;if(!g){t=-1;i=n;return t|0}t=b+688|0;c[t>>2]=c[t>>2]|1;if((Ed(b,1488,0)|0)<0){Ce(m);t=-1;i=n;return t|0}else{c[e>>2]=b;c[d>>2]=g;t=o;i=n;return t|0}return 0}function Te(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;k=i;i=i+16|0;p=k;l=b+4|0;n=(c[l>>2]|0)!=0;c[p>>2]=0;o=p+4|0;c[o>>2]=0;a:do if((h|0)>0){q=p+((n&1)<<2)|0;t=0;x=0;r=h;w=(j|0)!=0;b:while(1){if((r|0)<((w?5:2)|0)){m=48;break}if(w)v=0;else v=(a[g+2>>0]|0)==0?4:3;if((r|0)<(v+3|0)){m=48;break}s=g+v|0;j=d[s>>0]|0;u=j<<5&32|(d[g+(v+1)>>0]|0)>>>3;j=j>>>1&63;do if((j+ -32|0)>>>0<4|(j|0)==39|j>>>0>40)if(t)if(!(c[q>>2]|0))j=x;else break a;else{j=x;t=0}else if((j>>>0<10|(j+ -16|0)>>>0<6?(m=v+2|0,(m|0)<(r|0)):0)?(a[g+m>>0]|0)<0:0){if((x|0)!=0?(c[q>>2]|0)!=0:0)break a;if(n&(u|0)==1){c[o>>2]=1;j=x;t=x;break}else{c[p>>2]=1;j=1;t=1;break}}else j=x;while(0);do if(!w){if(((((r|0)>3?(a[g>>0]|0)==0:0)?(a[g+1>>0]|0)==0:0)?(a[g+2>>0]|0)==0:0)?(a[g+3>>0]|0)==1:0){w=4;break}if((r|0)<=2){m=48;break b}if(a[g>>0]|0){m=48;break b}if(a[g+1>>0]|0){m=48;break b}if((a[g+2>>0]|0)==1)w=3;else{m=48;break b}}else w=0;while(0);x=w+2|0;if((x|0)>(r|0)){m=48;break}c:do if((x|0)<(r|0))while(1){z=(a[g+w>>0]|0)==0;if((z?(a[g+(w+1)>>0]|0)==0:0)?(a[g+x>>0]|0)==1:0)break c;A=x;x=w+3|0;if((x|0)>=(r|0)){w=r;break c}y=w+1|0;if(!z){w=y;continue}if(a[g+y>>0]|0){w=y;continue}if(a[g+A>>0]|0){w=y;continue}z=(a[g+x>>0]|0)==1;if(z){w=z?w:r;break}else w=y}else w=r;while(0);if((w|0)<0){m=48;break}v=w-v|0;x=v+3|0;u=n&(u|0)==1;z=u?e:f;y=z+8|0;if((Ue(z,(c[y>>2]|0)+x|0)|0)<0){m=48;break}A=c[z>>2]|0;z=c[y>>2]|0;a[A+z>>0]=0;a[A+(z+1)>>0]=0;a[A+(z+2)>>0]=1;mf(A+(z+3)|0,s|0,v|0)|0;if(u){A=A+(z+4)|0;a[A>>0]=d[A>>0]&7}c[y>>2]=(c[y>>2]|0)+x;r=r-w|0;if((r|0)>0){x=j;g=g+w|0;w=0}else break a}if((m|0)==48){i=k;return-1}}else r=h;while(0);if(c[l>>2]|0){m=e+8|0;if((Ue(e,(c[m>>2]|0)+32|0)|0)<0){i=k;return-1}if((Ve(c[l>>2]|0,c[b+12>>2]|0,c[e>>2]|0,c[m>>2]|0)|0)<0){i=k;return-1}}l=f+8|0;if((Ue(f,(c[l>>2]|0)+32|0)|0)<0){i=k;return-1}else{A=(Ve(c[b>>2]|0,c[b+8>>2]|0,c[f>>2]|0,c[l>>2]|0)|0)<0;i=k;return(A?-1:h-r|0)|0}return 0}function Ue(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;e=a+4|0;f=c[e>>2]|0;if((f|0)<(b|0)){f=(f*3|0)/2|0;f=(f|0)<(b|0)?b:f;b=fe(c[a>>2]|0,f)|0;if(!b)a=-1;else{c[a>>2]=b;c[e>>2]=f;a=0}}else a=0;i=d;return a|0}function Ve(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+96|0;h=j;g=j+80|0;Ud(h);c[h+24>>2]=e;c[h+28>>2]=f;e=e+f+0|0;f=e+32|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0));e=(Ld(b,d,g,h)|0)<0;i=j;return(e|(c[g>>2]|0)==0)<<31>>31|0}function We(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;a:do if((f|0)>=1){j=a[e>>0]|0;h=j&255;if(j<<24>>24>-1){c[b>>2]=h;b=1;break}if(j<<24>>24!=-128){j=e+1|0;h=h&127;while(1){if((f|0)<2){b=-1;break a}k=j;j=j+1|0;k=d[k>>0]|0;h=k&127|h<<7;if(!(k&128))break;else f=f+ -1|0}c[b>>2]=h;b=j-e|0}else b=-1}else b=-1;while(0);i=g;return b|0}function Xe(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0;h=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)g=0;else{i=h;return}while(1){n=a[f+g>>0]|0;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;g=g+1|0;if((g|0)==(j|0))break;else e=e+k|0}i=h;return}l=c[b+12>>2]|0;g=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)m=0;else{i=h;return}while(1){n=($(d[f+m>>0]|0,l)|0)+g>>b;if((n|0)<0)n=0;else n=(n|0)>255?-1:n&255;a[e>>0]=n;a[e+1>>0]=n;a[e+2>>0]=n;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=h;return}function Ye(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;q=i;s=c[b+20>>2]|0;n=c[b+24>>2]|0;o=c[b+28>>2]|0;l=c[b+32>>2]|0;p=c[b+12>>2]|0;r=c[b+16>>2]|0;m=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)t=0;else{i=q;return}while(1){v=$(d[f+t>>0]|0,p)|0;u=(d[g+t>>0]|0)-b|0;w=(d[h+t>>0]|0)-b|0;v=v+r|0;x=v+($(w,s)|0)>>m;if((x|0)<0)x=0;else x=(x|0)>255?-1:x&255;a[e>>0]=x;w=v-($(u,n)|0)-($(w,o)|0)>>m;if((w|0)<0)w=0;else w=(w|0)>255?-1:w&255;a[e+1>>0]=w;u=v+($(u,l)|0)>>m;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e+2>>0]=u;t=t+1|0;if((t|0)==(j|0))break;else e=e+k|0}i=q;return}function Ze(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;l=i;if((c[b+40>>2]|0)==8?(c[b+44>>2]|0)==0:0){if((j|0)>0)m=0;else{i=l;return}while(1){a[e>>0]=a[h+m>>0]|0;a[e+1>>0]=a[f+m>>0]|0;a[e+2>>0]=a[g+m>>0]|0;m=m+1|0;if((m|0)==(j|0))break;else e=e+k|0}i=l;return}n=c[b+12>>2]|0;m=c[b+16>>2]|0;b=c[b>>2]|0;if((j|0)>0)o=0;else{i=l;return}while(1){p=($(d[h+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e>>0]=p;p=($(d[f+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+1>>0]=p;p=($(d[g+o>>0]|0,n)|0)+m>>b;if((p|0)<0)p=0;else p=(p|0)>255?-1:p&255;a[e+2>>0]=p;o=o+1|0;if((o|0)==(j|0))break;else e=e+k|0}i=l;return}function _e(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;l=c[b+12>>2]|0;m=c[b+16>>2]|0;n=c[b>>2]|0;b=c[b+36>>2]|0;if((j|0)>0)p=0;else{i=o;return}while(1){t=d[f+p>>0]|0;s=(d[g+p>>0]|0)-b|0;r=(d[h+p>>0]|0)-b|0;q=t-s|0;u=($(q+r|0,l)|0)+m>>n;if((u|0)<0)u=0;else u=(u|0)>255?-1:u&255;a[e>>0]=u;s=($(s+t|0,l)|0)+m>>n;if((s|0)<0)s=0;else s=(s|0)>255?-1:s&255;a[e+1>>0]=s;q=($(q-r|0,l)|0)+m>>n;if((q|0)<0)q=0;else q=(q|0)>255?-1:q&255;a[e+2>>0]=q;p=p+1|0;if((p|0)==(j|0))break;else e=e+k|0}i=o;return}function $e(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;if((b|0)==0|b>>>0>2147483583){k=0;i=d;return k|0}do if(!(c[1571]|0)){e=ua(64)|0;if((e|0)==(-1|0)){k=0;i=d;return k|0}else{c[1572]=ua(0)|0;c[1571]=6280;c[1570]=6280;c[1575]=6296;c[1574]=6296;k=e+16|0;a[e+15>>0]=-86;j=c[1575]|0;c[1575]=k;c[k>>2]=6296;c[e+20>>2]=j;c[j>>2]=k;j=e+24|0;k=c[1571]|0;c[1571]=j;c[j>>2]=6280;c[e+28>>2]=k;c[k>>2]=j;break}}while(0);e=b+40&-32;h=c[1572]|0;g=c[1570]|0;k=6284|0;while(1){f=c[k>>2]|0;b=f+ -8|0;k=c[f+ -4>>2]|0;if((k|0)==6296)j=h;else j=k;j=j-b|0;if(e>>>0>>0){h=12;break}if((f|0)==(g|0)){h=10;break}k=f+4|0;if((e|0)==(j|0)){h=15;break}}do if((h|0)==10)if((ua(e+32-j|0)|0)==(-1|0)){k=0;i=d;return k|0}else{c[1572]=ua(0)|0;k=c[g+ -4>>2]|0;f=g;h=12;break}else if((h|0)==15){j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}while(0);if((h|0)==12){h=b+e|0;c[f+ -4>>2]=h;c[h>>2]=b;c[b+(e|4)>>2]=k;c[k>>2]=h;h=b+(e|8)|0;k=f+4|0;j=c[k>>2]|0;c[k>>2]=h;c[h>>2]=f;c[b+(e|12)>>2]=j;c[j>>2]=h;a[b+(e+ -1)>>0]=-86;j=c[f>>2]|0;k=c[k>>2]|0;c[j+4>>2]=k;c[k>>2]=j}a[b+ -1>>0]=85;k=f;i=d;return k|0}function af(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;if(!b){i=d;return}g=b+ -8|0;e=c[1571]|0;c[1571]=b;c[b>>2]=6280;f=b+4|0;c[f>>2]=e;c[e>>2]=b;a[b+ -9>>0]=-86;e=c[g>>2]|0;if((e|0)!=6296?(a[e+ -1>>0]|0)==-86:0){g=c[b+ -4>>2]|0;c[e+4>>2]=g;c[g>>2]=e;b=c[b>>2]|0;g=c[f>>2]|0;c[b+4>>2]=g;c[g>>2]=b}else e=g;b=c[e+4>>2]|0;if((b|0)==6296){i=d;return}if((a[b+ -1>>0]|0)!=-86){i=d;return}g=c[b>>2]|0;h=c[b+4>>2]|0;c[g+4>>2]=h;c[h>>2]=g;h=e+8|0;g=c[h>>2]|0;j=e+12|0;f=c[j>>2]|0;c[g+4>>2]=f;c[f>>2]=g;f=b+8|0;g=b+12|0;e=c[g>>2]|0;c[g>>2]=h;c[h>>2]=f;c[j>>2]=e;c[e>>2]=h;f=c[f>>2]|0;g=c[g>>2]|0;c[f+4>>2]=g;c[g>>2]=f;i=d;return}function bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;do if(a){if(!b){af(a);e=0;break}e=$e(b)|0;if(!e)e=0;else{f=(c[a+ -4>>2]|0)-a+ -1|0;mf(e|0,a|0,(f>>>0>b>>>0?b:f)|0)|0;af(a)}}else e=$e(b)|0;while(0);i=d;return e|0}function cf(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;if(!d){h=0;i=f;return h|0}while(1){g=a[b>>0]|0;h=a[c>>0]|0;if(g<<24>>24!=h<<24>>24)break;d=d+ -1|0;if(!d){b=0;e=5;break}else{b=b+1|0;c=c+1|0}}if((e|0)==5){i=f;return b|0}h=(g&255)-(h&255)|0;i=f;return h|0}function df(){}function ef(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>c;return a>>>c|(b&(1<>c-32|0}function ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(D=b,a-c>>>0|0)|0}function gf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(D=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function hf(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function jf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function kf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b<>>32-c;return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function mf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return xa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function nf(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D=b>>>c;return a>>>c|(b&(1<>>c-32|0}function of(b){b=b|0;var c=0;c=a[n+(b>>>24)>>0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)>>0]|0)+24|0}function pf(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=$(d,f)|0;e=a>>>16;d=(c>>>16)+($(d,e)|0)|0;b=b>>>16;a=$(b,f)|0;return(D=(d>>>16)+($(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=qf(e,f)|0;c=D;return(D=($(b,f)|0)+($(d,e)|0)+c|c&0,a|0|0)|0}function sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Aa[a&1](b|0,c|0,d|0)|0}function tf(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;Ba[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0)}function uf(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;Ca[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function vf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Da[a&3](b|0,c|0,d|0,e|0,f|0)}function wf(a,b){a=a|0;b=b|0;Ea[a&7](b|0)}function xf(a,b,c){a=a|0;b=b|0;c=c|0;Fa[a&15](b|0,c|0)}function yf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ga[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function zf(a,b,c,d,e,f,g,h,i,j){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;j=j|0;Ha[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Af(a,b,c,d,e,f,g,h,i,j,k,l,m){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;j=j|0;k=k|0;l=l|0;m=m|0;Ia[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function Bf(a,b){a=a|0;b=b|0;return Ja[a&7](b|0)|0}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ka[a&7](b|0,c|0,d|0)}function Df(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;La[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Ef(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Ma[a&1](b|0,c|0,d|0,e|0)|0}function Ff(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Na[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;return Oa[a&1](b|0,c|0)|0}function Hf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Pa[a&1](b|0,c|0,d|0,e|0,f|0)|0}function If(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Qa[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Jf(a,b,c){a=a|0;b=b|0;c=c|0;aa(0);return 0}function Kf(a,b,c,d,e,f,g,h,i,j,k){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;j=j|0;k=k|0;aa(1)}function Lf(a,b,c,d,e,f,g,h,i,j){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;j=j|0;aa(2)}function Mf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(3)}function Nf(a){a=a|0;aa(4)}function Of(a,b){a=a|0;b=b|0;aa(5)}function Pf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(6);return 0}function Qf(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;aa(7)}function Rf(a,b,c,d,e,f,g,h,i,j,k,l){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;j=j|0;k=k|0;l=l|0;aa(8)}function Sf(a){a=a|0;aa(9);return 0}function Tf(a,b,c){a=a|0;b=b|0;c=c|0;aa(10)}function Uf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;aa(11)}function Vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;aa(12);return 0}function Wf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;aa(13)}function Xf(a,b){a=a|0;b=b|0;aa(14);return 0}function Yf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;aa(15);return 0}function Zf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;aa(16)} diff --git a/libbpg.c b/libbpg.c index cea41fd..82ba273 100644 --- a/libbpg.c +++ b/libbpg.c @@ -1786,6 +1786,7 @@ static int bpg_decode_header(BPGHeaderData *h, md = av_malloc(sizeof(BPGExtensionData)); md->tag = tag; md->buf_len = buf_len; + md->next = NULL; *plast_md = md; plast_md = &md->next; diff --git a/x265/COPYING b/x265/COPYING new file mode 100644 index 0000000..d5457c9 --- /dev/null +++ b/x265/COPYING @@ -0,0 +1,343 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +This program is also available under a commercial proprietary license. +For more information, contact us at license @ x265.com. diff --git a/x265/build/README.txt b/x265/build/README.txt new file mode 100644 index 0000000..d131884 --- /dev/null +++ b/x265/build/README.txt @@ -0,0 +1,71 @@ += Mandatory Prerequisites = + +* GCC, MSVC (9, 10, 11, 12), Xcode or Intel C/C++ +* CMake 2.8.8 or later http://www.cmake.org +* On linux, ccmake is helpful, usually a package named cmake-curses-gui + +Note: MSVC12 requires cmake 2.8.11 or later + + += Optional Prerequisites = + +1. Yasm 1.2.0 or later, to compile assembly primitives (performance) + + For Windows, download the latest yasm executable + http://yasm.tortall.net/Download.html and copy the EXE into + C:\Windows or somewhere else in your %PATH% that a 32-bit app (cmake) + can find it. If it is not in the path, you must manually tell cmake + where to find it. Note: you do not need the vsyasm packages, x265 + does not use them. You only need the yasm executable itself. + + On Linux, the packaged yasm may be older than 1.2, in which case + so you will need get the latest source and build it yourself. + + Once YASM is properly installed, run cmake to regenerate projects. If you + do not see the below line in the cmake output, YASM is not in the PATH. + + -- Found Yasm 1.3.0 to build assembly primitives + + Now build the encoder and run x265 -V: + + x265 [info]: using cpu capabilities: MMX, SSE2, ... + + If cpu capabilities line says 'none!', then the encoder was built + without yasm. + +2. VisualLeakDetector (Windows Only) + + Download from https://vld.codeplex.com/releases and install. May need + to re-login in order for it to be in your %PATH%. Cmake will find it + and enable leak detection in debug builds without any additional work. + + If VisualLeakDetector is not installed, cmake will complain a bit, but + it is completely harmless. + + += Build Instructions Linux = + +1. Use cmake to generate Makefiles: cmake ../source +2. Build x265: make + + Or use our shell script which runs cmake then opens the curses GUI to + configure build options + +1. cd build/linux ; ./make-Makefiles.bash +2. make + + += Build Instructions Windows = + +We recommend you use one of the make-solutions.bat files in the appropriate +build/ sub-folder for your preferred compiler. They will open the cmake-gui +to configure build options, click configure until no more red options remain, +then click generate and exit. There should now be an x265.sln file in the +same folder, open this in Visual Studio and build it. + += Version number considerations = + +Note that cmake will update X265_VERSION each time cmake runs, if you are +building out of a Mercurial source repository. If you are building out of +a release source package, the version will not change. If Mercurial is not +found, the version will be "unknown". diff --git a/x265/build/linux/make-Makefiles.bash b/x265/build/linux/make-Makefiles.bash new file mode 100755 index 0000000..4315d61 --- /dev/null +++ b/x265/build/linux/make-Makefiles.bash @@ -0,0 +1,3 @@ +#!/bin/bash +# Run this from within a bash shell +cmake -G "Unix Makefiles" ../../source && ccmake ../../source diff --git a/x265/build/linux/multilib.sh b/x265/build/linux/multilib.sh new file mode 100755 index 0000000..6fbeaaf --- /dev/null +++ b/x265/build/linux/multilib.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +mkdir -p 8bit 10bit 12bit + +cd 12bit +cmake ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON +make ${MAKEFLAGS} + +cd ../10bit +cmake ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF +make ${MAKEFLAGS} + +cd ../8bit +ln -sf ../10bit/libx265.a libx265_main10.a +ln -sf ../12bit/libx265.a libx265_main12.a +cmake ../../../source -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON +make ${MAKEFLAGS} + +# rename the 8bit library, then combine all three into libx265.a +mv libx265.a libx265_main.a + +uname=`uname` +if [ "$uname" = "Linux" ] +then + +# On Linux, we use GNU ar to combine the static libraries together +ar -M </dev/null + +fi diff --git a/x265/build/msys/make-Makefiles.sh b/x265/build/msys/make-Makefiles.sh new file mode 100644 index 0000000..32fa3af --- /dev/null +++ b/x265/build/msys/make-Makefiles.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# Run this from within an MSYS bash shell +cmake -G "MSYS Makefiles" ../../source && cmake-gui ../../source diff --git a/x265/build/msys/make-x86_64-w64-mingw32-Makefiles.sh b/x265/build/msys/make-x86_64-w64-mingw32-Makefiles.sh new file mode 100644 index 0000000..d98eced --- /dev/null +++ b/x265/build/msys/make-x86_64-w64-mingw32-Makefiles.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# This will generate a cross-compile environment, compiling an x86_64 +# Win64 target from a 32bit MinGW32 host environment. If your MinGW +# install is 64bit, you can use the native compiler batch file: +# make-Makefiles.sh + +cmake -G "MSYS Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-x86_64-w64-mingw32.cmake ../../source && cmake-gui ../../source diff --git a/x265/build/msys/multilib.sh b/x265/build/msys/multilib.sh new file mode 100755 index 0000000..048e5c4 --- /dev/null +++ b/x265/build/msys/multilib.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +mkdir -p 8bit 10bit 12bit + +cd 12bit +cmake -G "MSYS Makefiles" ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON +make ${MAKEFLAGS} +cp libx265.a ../8bit/libx265_main12.a + +cd ../10bit +cmake -G "MSYS Makefiles" ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF +make ${MAKEFLAGS} +cp libx265.a ../8bit/libx265_main10.a + +cd ../8bit +cmake -G "MSYS Makefiles" ../../../source -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON +make ${MAKEFLAGS} + +# rename the 8bit library, then combine all three into libx265.a using GNU ar +mv libx265.a libx265_main.a + +ar -M <' where is one of" + @echo " html to make standalone HTML files" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " qhc to make QHC file" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " man to make manpages" + @echo " changes to make an overview over all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + +clean: + -rm -rf build/* + +distclean: clean + -rmdir build/ + +html: + mkdir -p build/html build/doctrees + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html + @echo + @echo "Build finished. The HTML pages are in build/html." + +zip: html + (cd build ; zip TortoiseHg.html.zip -r html) + +pickle: + mkdir -p build/pickle build/doctrees + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +web: pickle + +json: + mkdir -p build/json build/doctrees + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + mkdir -p build/htmlhelp build/doctrees + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in build/htmlhelp." + +qthelp: + mkdir -p build/qthelp build/doctrees + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in build/qthelp, like this:" + @echo "# qcollectiongenerator build/qthelp/foo.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile build/qthelp/foo.qhc" + +qhc: qthelp + $(QCOLLECTIONGENERATOR) build/qthelp/TortoiseHg.qhcp + @echo "Build finished. To view the help file:" + @echo "# assistant -collectionFile build/qthelp/TortoiseHg.qhc" + +latex: + mkdir -p build/latex build/doctrees + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex + @echo + @echo "Build finished; the LaTeX files are in build/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +man: + mkdir -p build/man build/doctrees + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) build/man + @echo + @echo "Build finished; the manpages are in build/man." + @echo "Run \`man -l build/man/x265.1' or \`man -l build/man/libx265.3'" \ + "to view them." + +changes: + mkdir -p build/changes build/doctrees + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes + @echo + @echo "The overview file is in build/changes." + +linkcheck: + mkdir -p build/linkcheck build/doctrees + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in build/linkcheck/output.txt." diff --git a/x265/doc/reST/api.rst b/x265/doc/reST/api.rst new file mode 100644 index 0000000..fac8c09 --- /dev/null +++ b/x265/doc/reST/api.rst @@ -0,0 +1,511 @@ +********************************* +Application Programming Interface +********************************* + +Introduction +============ + +x265 is written primarily in C++ and x86 assembly language but the +public facing programming interface is C for the widest possible +portability. This C interface is wholly defined within :file:`x265.h` +in the source/ folder of our source tree. All of the functions and +variables and enumerations meant to be used by the end-user are present +in this header. + +Where possible, x265 has tried to keep its public API as close as +possible to x264's public API. So those familiar with using x264 through +its C interface will find x265 quite familiar. + +This file is meant to be read in-order; the narrative follows linearly +through the various sections + +Build Considerations +==================== + +The choice of Main or Main10 profile encodes is made at compile time; +the internal pixel depth influences a great deal of variable sizes and +thus 8 and 10bit pixels are handled as different build options +(primarily to maintain the performance of the 8bit builds). libx265 +exports a variable **x265_max_bit_depth** which indicates how the +library was compiled (it will contain a value of 8 or 10). Further, +**x265_version_str** is a pointer to a string indicating the version of +x265 which was compiled, and **x265_build_info_str** is a pointer to a +string identifying the compiler and build options. + +.. Note:: + + **x265_version_str** is only updated when **cmake** runs. If you are + making binaries for others to use, it is recommended to run + **cmake** prior to **make** in your build scripts. + +x265 will accept input pixels of any depth between 8 and 16 bits +regardless of the depth of its internal pixels (8 or 10). It will shift +and mask input pixels as required to reach the internal depth. If +downshifting is being performed using our CLI application (to 8 bits), +the :option:`--dither` option may be enabled to reduce banding. This +feature is not available through the C interface. + +Encoder +======= + +The primary object in x265 is the encoder object, and this is +represented in the public API as an opaque typedef **x265_encoder**. +Pointers of this type are passed to most encoder functions. + +A single encoder generates a single output bitstream from a sequence of +raw input pictures. Thus if you need multiple output bitstreams you +must allocate multiple encoders. You may pass the same input pictures +to multiple encoders, the encode function does not modify the input +picture structures (the pictures are copied into the encoder as the +first step of encode). + +Encoder allocation is a reentrant function, so multiple encoders may be +safely allocated in a single process. The encoder access functions are +not reentrant for a single encoder, so the recommended use case is to +allocate one client thread per encoder instance (one thread for all +encoder instances is possible, but some encoder access functions are +blocking and thus this would be less efficient). + +.. Note:: + + There is one caveat to having multiple encoders within a single + process. All of the encoders must use the same maximum CTU size + because many global variables are configured based on this size. + Encoder allocation will fail if a mis-matched CTU size is attempted. + If no encoders are open, **x265_cleanup()** can be called to reset + the configured CTU size so a new size can be used. + +An encoder is allocated by calling **x265_encoder_open()**:: + + /* x265_encoder_open: + * create a new encoder handler, all parameters from x265_param are copied */ + x265_encoder* x265_encoder_open(x265_param *); + +The returned pointer is then passed to all of the functions pertaining +to this encode. A large amount of memory is allocated during this +function call, but the encoder will continue to allocate memory as the +first pictures are passed to the encoder; until its pool of picture +structures is large enough to handle all of the pictures it must keep +internally. The pool size is determined by the lookahead depth, the +number of frame threads, and the maximum number of references. + +As indicated in the comment, **x265_param** is copied internally so the user +may release their copy after allocating the encoder. Changes made to +their copy of the param structure have no affect on the encoder after it +has been allocated. + +Param +===== + +The **x265_param** structure describes everything the encoder needs to +know about the input pictures and the output bitstream and most +everything in between. + +The recommended way to handle these param structures is to allocate them +from libx265 via:: + + /* x265_param_alloc: + * Allocates an x265_param instance. The returned param structure is not + * special in any way, but using this method together with x265_param_free() + * and x265_param_parse() to set values by name allows the application to treat + * x265_param as an opaque data struct for version safety */ + x265_param *x265_param_alloc(); + +In this way, your application does not need to know the exact size of +the param structure (the build of x265 could potentially be a bit newer +than the copy of :file:`x265.h` that your application compiled against). + +Next you perform the initial *rough cut* configuration of the encoder by +chosing a performance preset and optional tune factor +**x265_preset_names** and **x265_tune_names** respectively hold the +string names of the presets and tune factors (see :ref:`presets +` for more detail on presets and tune factors):: + + /* returns 0 on success, negative on failure (e.g. invalid preset/tune name). */ + int x265_param_default_preset(x265_param *, const char *preset, const char *tune); + +Now you may optionally specify a profile. **x265_profile_names** +contains the string names this function accepts:: + + /* (can be NULL, in which case the function will do nothing) + * returns 0 on success, negative on failure (e.g. invalid profile name). */ + int x265_param_apply_profile(x265_param *, const char *profile); + +Finally you configure any remaining options by name using repeated calls to:: + + /* x265_param_parse: + * set one parameter by name. + * returns 0 on success, or returns one of the following errors. + * note: BAD_VALUE occurs only if it can't even parse the value, + * numerical range is not checked until x265_encoder_open(). + * value=NULL means "true" for boolean options, but is a BAD_VALUE for non-booleans. */ + #define X265_PARAM_BAD_NAME (-1) + #define X265_PARAM_BAD_VALUE (-2) + int x265_param_parse(x265_param *p, const char *name, const char *value); + +See :ref:`string options ` for the list of options (and their +descriptions) which can be set by **x265_param_parse()**. + +After the encoder has been created, you may release the param structure:: + + /* x265_param_free: + * Use x265_param_free() to release storage for an x265_param instance + * allocated by x265_param_alloc() */ + void x265_param_free(x265_param *); + +.. Note:: + + Using these methods to allocate and release the param structures + helps future-proof your code in many ways, but the x265 API is + versioned in such a way that we prevent linkage against a build of + x265 that does not match the version of the header you are compiling + against (unless you use x265_api_query() to acquire the library's + interfaces). This is function of the X265_BUILD macro. + +**x265_encoder_parameters()** may be used to get a copy of the param +structure from the encoder after it has been opened, in order to see the +changes made to the parameters for auto-detection and other reasons:: + + /* x265_encoder_parameters: + * copies the current internal set of parameters to the pointer provided + * by the caller. useful when the calling application needs to know + * how x265_encoder_open has changed the parameters. + * note that the data accessible through pointers in the returned param struct + * (e.g. filenames) should not be modified by the calling application. */ + void x265_encoder_parameters(x265_encoder *, x265_param *); + +**x265_encoder_reconfig()** may be used to reconfigure encoder parameters mid-encode:: + + /* x265_encoder_reconfig: + * used to modify encoder parameters. + * various parameters from x265_param are copied. + * this takes effect immediately, on whichever frame is encoded next; + * returns 0 on success, negative on parameter validation error. + * + * not all parameters can be changed; see the actual function for a + * detailed breakdown. since not all parameters can be changed, moving + * from preset to preset may not always fully copy all relevant parameters, + * but should still work usably in practice. however, more so than for + * other presets, many of the speed shortcuts used in ultrafast cannot be + * switched out of; using reconfig to switch between ultrafast and other + * presets is not recommended without a more fine-grained breakdown of + * parameters to take this into account. */ + int x265_encoder_reconfig(x265_encoder *, x265_param *); + +Pictures +======== + +Raw pictures are passed to the encoder via the **x265_picture** structure. +Just like the param structure we recommend you allocate this structure +from the encoder to avoid potential size mismatches:: + + /* x265_picture_alloc: + * Allocates an x265_picture instance. The returned picture structure is not + * special in any way, but using this method together with x265_picture_free() + * and x265_picture_init() allows some version safety. New picture fields will + * always be added to the end of x265_picture */ + x265_picture *x265_picture_alloc(); + +Regardless of whether you allocate your picture structure this way or +whether you simply declare it on the stack, your next step is to +initialize the structure via:: + + /*** + * Initialize an x265_picture structure to default values. It sets the pixel + * depth and color space to the encoder's internal values and sets the slice + * type to auto - so the lookahead will determine slice type. + */ + void x265_picture_init(x265_param *param, x265_picture *pic); + +x265 does not perform any color space conversions, so the raw picture's +color space (chroma sampling) must match the color space specified in +the param structure used to allocate the encoder. **x265_picture_init** +initializes this field to the internal color space and it is best to +leave it unmodified. + +The picture bit depth is initialized to be the encoder's internal bit +depth but this value should be changed to the actual depth of the pixels +being passed into the encoder. If the picture bit depth is more than 8, +the encoder assumes two bytes are used to represent each sample +(little-endian shorts). + +The user is responsible for setting the plane pointers and plane strides +(in units of bytes, not pixels). The presentation time stamp (**pts**) +is optional, depending on whether you need accurate decode time stamps +(**dts**) on output. + +If you wish to override the lookahead or rate control for a given +picture you may specify a slicetype other than X265_TYPE_AUTO, or a +forceQP value other than 0. + +x265 does not modify the picture structure provided as input, so you may +reuse a single **x265_picture** for all pictures passed to a single +encoder, or even all pictures passed to multiple encoders. + +Structures allocated from the library should eventually be released:: + + /* x265_picture_free: + * Use x265_picture_free() to release storage for an x265_picture instance + * allocated by x265_picture_alloc() */ + void x265_picture_free(x265_picture *); + + +Analysis Buffers +================ + +Analysis information can be saved and reused to between encodes of the +same video sequence (generally for multiple bitrate encodes). The best +results are attained by saving the analysis information of the highest +bitrate encode and reuse it in lower bitrate encodes. + +When saving or loading analysis data, buffers must be allocated for +every picture passed into the encoder using:: + + /* x265_alloc_analysis_data: + * Allocate memory to hold analysis meta data, returns 1 on success else 0 */ + int x265_alloc_analysis_data(x265_picture*); + +Note that this is very different from the typical semantics of +**x265_picture**, which can be reused many times. The analysis buffers must +be re-allocated for every input picture. + +Analysis buffers passed to the encoder are owned by the encoder until +they pass the buffers back via an output **x265_picture**. The user is +responsible for releasing the buffers when they are finished with them +via:: + + /* x265_free_analysis_data: + * Use x265_free_analysis_data to release storage of members allocated by + * x265_alloc_analysis_data */ + void x265_free_analysis_data(x265_picture*); + + +Encode Process +============== + +The output of the encoder is a series of NAL packets, which are always +returned concatenated in consecutive memory. HEVC streams have SPS and +PPS and VPS headers which describe how the following packets are to be +decoded. If you specified :option:`--repeat-headers` then those headers +will be output with every keyframe. Otherwise you must explicitly query +those headers using:: + + /* x265_encoder_headers: + * return the SPS and PPS that will be used for the whole stream. + * *pi_nal is the number of NAL units outputted in pp_nal. + * returns negative on error, total byte size of payload data on success + * the payloads of all output NALs are guaranteed to be sequential in memory. */ + int x265_encoder_headers(x265_encoder *, x265_nal **pp_nal, uint32_t *pi_nal); + +Now we get to the main encode loop. Raw input pictures are passed to the +encoder in display order via:: + + /* x265_encoder_encode: + * encode one picture. + * *pi_nal is the number of NAL units outputted in pp_nal. + * returns negative on error, zero if no NAL units returned. + * the payloads of all output NALs are guaranteed to be sequential in memory. */ + int x265_encoder_encode(x265_encoder *encoder, x265_nal **pp_nal, uint32_t *pi_nal, x265_picture *pic_in, x265_picture *pic_out); + +These pictures are queued up until the lookahead is full, and then the +frame encoders in turn are filled, and then finally you begin receiving +a output NALs (corresponding to a single output picture) with each input +picture you pass into the encoder. + +Once the pipeline is completely full, **x265_encoder_encode()** will +block until the next output picture is complete. + +.. note:: + + Optionally, if the pointer of a second **x265_picture** structure is + provided, the encoder will fill it with data pertaining to the + output picture corresponding to the output NALs, including the + recontructed image, POC and decode timestamp. These pictures will be + in encode (or decode) order. + +When the last of the raw input pictures has been sent to the encoder, +**x265_encoder_encode()** must still be called repeatedly with a +*pic_in* argument of 0, indicating a pipeline flush, until the function +returns a value less than or equal to 0 (indicating the output bitstream +is complete). + +At any time during this process, the application may query running +statistics from the encoder:: + + /* x265_encoder_get_stats: + * returns encoder statistics */ + void x265_encoder_get_stats(x265_encoder *encoder, x265_stats *, uint32_t statsSizeBytes); + +Cleanup +======= + +Finally, the encoder must be closed in order to free all of its +resources. An encoder that has been flushed cannot be restarted and +reused. Once **x265_encoder_close()** has been called, the encoder +handle must be discarded:: + + /* x265_encoder_close: + * close an encoder handler */ + void x265_encoder_close(x265_encoder *); + +When the application has completed all encodes, it should call +**x265_cleanup()** to free process global, particularly if a memory-leak +detection tool is being used. **x265_cleanup()** also resets the saved +CTU size so it will be possible to create a new encoder with a different +CTU size:: + + /* x265_cleanup: + * release library static allocations, reset configured CTU size */ + void x265_cleanup(void); + + +Multi-library Interface +======================= + +If your application might want to make a runtime bit-depth selection, it +will need to use one of these bit-depth introspection interfaces which +returns an API structure containing the public function entry points and +constants. + +Instead of directly using all of the **x265_** methods documented above, +you query an x265_api structure from your libx265 and then use the +function pointers of the same name (minus the **x265_** prefix) within +that structure. For instance **x265_param_default()** becomes +**api->param_default()**. + +x265_api_get +------------ + +The first bit-depth instrospecton method is x265_api_get(). It designed +for applications that might statically link with libx265, or will at +least be tied to a particular SONAME or API version:: + + /* x265_api_get: + * Retrieve the programming interface for a linked x265 library. + * May return NULL if no library is available that supports the + * requested bit depth. If bitDepth is 0, the function is guarunteed + * to return a non-NULL x265_api pointer from the system default + * libx265 */ + const x265_api* x265_api_get(int bitDepth); + +Like **x265_encoder_encode()**, this function has the build number +automatically appended to the function name via macros. This ties your +application to a particular binary API version of libx265 (the one you +compile against). If you attempt to link with a libx265 with a different +API version number, the link will fail. + +Obviously this has no meaningful effect on applications which statically +link to libx265. + +x265_api_query +-------------- + +The second bit-depth introspection method is designed for applications +which need more flexibility in API versioning. If you use +**x265_api_query()** and dynamically link to libx265 at runtime (using +dlopen() on POSIX or LoadLibrary() on Windows) your application is no +longer directly tied to the API version that it was compiled against:: + + /* x265_api_query: + * Retrieve the programming interface for a linked x265 library, like + * x265_api_get(), except this function accepts X265_BUILD as the second + * argument rather than using the build number as part of the function name. + * Applications which dynamically link to libx265 can use this interface to + * query the library API and achieve a relative amount of version skew + * flexibility. The function may return NULL if the library determines that + * the apiVersion that your application was compiled against is not compatible + * with the library you have linked with. + * + * api_major_version will be incremented any time non-backward compatible + * changes are made to any public structures or functions. If + * api_major_version does not match X265_MAJOR_VERSION from the x265.h your + * application compiled against, your application must not use the returned + * x265_api pointer. + * + * Users of this API *must* also validate the sizes of any structures which + * are not treated as opaque in application code. For instance, if your + * application dereferences a x265_param pointer, then it must check that + * api->sizeof_param matches the sizeof(x265_param) that your application + * compiled with. */ + const x265_api* x265_api_query(int bitDepth, int apiVersion, int* err); + +A number of validations must be performed on the returned API structure +in order to determine if it is safe for use by your application. If you +do not perform these checks, your application is liable to crash:: + + if (api->api_major_version != X265_MAJOR_VERSION) /* do not use */ + if (api->sizeof_param != sizeof(x265_param)) /* do not use */ + if (api->sizeof_picture != sizeof(x265_picture)) /* do not use */ + if (api->sizeof_stats != sizeof(x265_stats)) /* do not use */ + if (api->sizeof_zone != sizeof(x265_zone)) /* do not use */ + etc. + +Note that if your application does not directly allocate or dereference +one of these structures, if it treats the structure as opaque or does +not use it at all, then it can skip the size check for that structure. + +In particular, if your application uses api->param_alloc(), +api->param_free(), api->param_parse(), etc and never directly accesses +any x265_param fields, then it can skip the check on the +sizeof(x265_parm) and thereby ignore changes to that structure (which +account for a large percentage of X265_BUILD bumps). + +Build Implications +------------------ + +By default libx265 will place all of its internal C++ classes and +functions within an x265 namespace and export all of the C functions +documented in this file. Obviously this prevents 8bit and 10bit builds +of libx265 from being statically linked into a single binary, all of +those symbols would collide. + +However, if you set the EXPORT_C_API cmake option to OFF then libx265 +will use a bit-depth specific namespace and prefix for its assembly +functions (x265_8bit, x265_10bit or x265_12bit) and export no C +functions. + +In this way you can build one or more libx265 libraries without any +exported C interface and link them into a libx265 build that does export +a C interface. The build which exported the C functions becomes the +*default* bit depth for the combined library, and the other bit depths +are available via the bit-depth introspection methods. + +.. Note:: + + When setting EXPORT_C_API cmake option to OFF, it is recommended to + also set ENABLE_SHARED and ENABLE_CLI to OFF to prevent build + problems. We only need the static library from these builds. + +If an application requests a bit-depth that is not supported by the +default library or any of the additionally linked libraries, the +introspection method will fall-back to an attempt to dynamically bind a +shared library with a name appropriate for the requested bit-depth:: + + 8-bit: libx265_main + 10-bit: libx265_main10 + 12-bit: libx265_main12 + +If the profile-named library is not found, it will then try to bind a +generic libx265 in the hopes that it is a multilib library with all bit +depths. + +Packaging and Distribution +-------------------------- + +We recommend that packagers distribute a single combined shared/static +library build which includes all the bit depth libraries linked +together. See the multilib scripts in our :file:`build/` subdirectories +for examples of how to affect these combined library builds. It is the +packager's discretion which bit-depth exports the public C functions and +thus becomes the default bit-depth for the combined library. + +.. Note:: + + Windows packagers might want to build libx265 with WINXP_SUPPORT + enabled. This makes the resulting binaries functional on XP and + Vista. Without this flag, the minimum supported host O/S is Windows + 7. Also note that binaries built with WINXP_SUPPORT will *not* have + NUMA support and they will have slightly less performance. + + STATIC_LINK_CRT is also recommended so end-users will not need to + install any additional MSVC C runtime libraries. diff --git a/x265/doc/reST/cli.rst b/x265/doc/reST/cli.rst new file mode 100644 index 0000000..7158b6d --- /dev/null +++ b/x265/doc/reST/cli.rst @@ -0,0 +1,1770 @@ +********************* +Command Line Options +********************* + +.. _string-options-ref: + +Note that unless an option is listed as **CLI ONLY** the option is also +supported by x265_param_parse(). The CLI uses getopt to parse the +command line options so the short or long versions may be used and the +long options may be truncated to the shortest unambiguous abbreviation. +Users of the API must pass x265_param_parse() the full option name. + +Preset and tune have special implications. The API user must call +x265_param_default_preset() with the preset and tune parameters they +wish to use, prior to calling x265_param_parse() to set any additional +fields. The CLI does this for the user implicitly, so all CLI options +are applied after the user's preset and tune choices, regardless of the +order of the arguments on the command line. + +If there is an extra command line argument (not an option or an option +value) the CLI will treat it as the input filename. This effectively +makes the :option:`--input` specifier optional for the input file. If +there are two extra arguments, the second is treated as the output +bitstream filename, making :option:`--output` also optional if the input +filename was implied. This makes :command:`x265 in.y4m out.hevc` a valid +command line. If there are more than two extra arguments, the CLI will +consider this an error and abort. + +Generally, when an option expects a string value from a list of strings +the user may specify the integer ordinal of the value they desire. ie: +:option:`--log-level` 3 is equivalent to :option:`--log-level` debug. + +Executable Options +================== + +.. option:: --help, -h + + Display help text + + **CLI ONLY** + +.. option:: --version, -V + + Display version details + + **CLI ONLY** + +Command line executable return codes:: + + 0. encode successful + 1. unable to parse command line + 2. unable to open encoder + 3. unable to generate stream headers + 4. encoder abort + 5. unable to open csv file + +Logging/Statistic Options +========================= + +.. option:: --log-level + + Logging level. Debug level enables per-frame QP, metric, and bitrate + logging. If a CSV file is being generated, frame level makes the log + be per-frame rather than per-encode. Full level enables hash and + weight logging. -1 disables all logging, except certain fatal + errors, and can be specified by the string "none". + + 0. error + 1. warning + 2. info **(default)** + 3. debug + 4. full + +.. option:: --no-progress + + Disable periodic progress reports from the CLI + + **CLI ONLY** + +.. option:: --csv + + Writes encoding results to a comma separated value log file. Creates + the file if it doesnt already exist. If :option:`--csv-log-level` is 0, + it adds one line per run. If :option:`--csv-log-level` is greater than + 0, it writes one line per frame. Default none + + Several frame performance statistics are available when + :option:`--csv-log-level` is greater than or equal to 2: + + **DecideWait ms** number of milliseconds the frame encoder had to + wait, since the previous frame was retrieved by the API thread, + before a new frame has been given to it. This is the latency + introduced by slicetype decisions (lookahead). + + **Row0Wait ms** number of milliseconds since the frame encoder + received a frame to encode before its first row of CTUs is allowed + to begin compression. This is the latency introduced by reference + frames making reconstructed and filtered rows available. + + **Wall time ms** number of milliseconds between the first CTU + being ready to be compressed and the entire frame being compressed + and the output NALs being completed. + + **Ref Wait Wall ms** number of milliseconds between the first + reference row being available and the last reference row becoming + available. + + **Total CTU time ms** the total time (measured in milliseconds) + spent by worker threads compressing and filtering CTUs for this + frame. + + **Stall Time ms** the number of milliseconds of the reported wall + time that were spent with zero worker threads, aka all compression + was completely stalled. + + **Avg WPP** the average number of worker threads working on this + frame, at any given time. This value is sampled at the completion of + each CTU. This shows the effectiveness of Wavefront Parallel + Processing. + + **Row Blocks** the number of times a worker thread had to abandon + the row of CTUs it was encoding because the row above it was not far + enough ahead for the necessary reference data to be available. This + is more of a problem for P frames where some blocks are much more + expensive than others. + + **CLI ONLY** + +.. option:: --csv-log-level + + CSV logging level. Default 0 + 0. summary + 1. frame level logging + 2. frame level logging with performance statistics + + **CLI ONLY** + +.. option:: --ssim, --no-ssim + + Calculate and report Structural Similarity values. It is + recommended to use :option:`--tune` ssim if you are measuring ssim, + else the results should not be used for comparison purposes. + Default disabled + +.. option:: --psnr, --no-psnr + + Calculate and report Peak Signal to Noise Ratio. It is recommended + to use :option:`--tune` psnr if you are measuring PSNR, else the + results should not be used for comparison purposes. Default + disabled + +Performance Options +=================== + +.. option:: --asm , --no-asm + + x265 will use all detected CPU SIMD architectures by default. You can + disable all assembly by using :option:`--no-asm` or you can specify + a comma separated list of SIMD architectures to use, matching these + strings: MMX2, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, XOP, FMA4, AVX2, FMA3 + + Some higher architectures imply lower ones being present, this is + handled implicitly. + + One may also directly supply the CPU capability bitmap as an integer. + + Note that by specifying this option you are overriding x265's CPU + detection and it is possible to do this wrong. You can cause encoder + crashes by specifying SIMD architectures which are not supported on + your CPU. + + Default: auto-detected SIMD architectures + +.. option:: --frame-threads, -F + + Number of concurrently encoded frames. Using a single frame thread + gives a slight improvement in compression, since the entire reference + frames are always available for motion compensation, but it has + severe performance implications. Default is an autodetected count + based on the number of CPU cores and whether WPP is enabled or not. + + Over-allocation of frame threads will not improve performance, it + will generally just increase memory use. + + **Values:** any value between 0 and 16. Default is 0, auto-detect + +.. option:: --pools , --numa-pools + + Comma seperated list of threads per NUMA node. If "none", then no worker + pools are created and only frame parallelism is possible. If NULL or "" + (default) x265 will use all available threads on each NUMA node:: + + '+' is a special value indicating all cores detected on the node + '*' is a special value indicating all cores detected on the node and all remaining nodes + '-' is a special value indicating no cores on the node, same as '0' + + example strings for a 4-node system:: + + "" - default, unspecified, all numa nodes are used for thread pools + "*" - same as default + "none" - no thread pools are created, only frame parallelism possible + "-" - same as "none" + "10" - allocate one pool, using up to 10 cores on node 0 + "-,+" - allocate one pool, using all cores on node 1 + "+,-,+" - allocate one pool, using only cores on nodes 0 and 2 + "+,-,+,-" - allocate one pool, using only cores on nodes 0 and 2 + "-,*" - allocate one pool, using all cores on nodes 1, 2 and 3 + "8,8,8,8" - allocate four pools with up to 8 threads in each pool + "8,+,+,+" - allocate two pools, the first with 8 threads on node 0, and the second with all cores on node 1,2,3 + + A thread pool dedicated to a given NUMA node is enabled only when the + number of threads to be created on that NUMA node is explicitly mentioned + in that corresponding position with the --pools option. Else, all threads + are spawned from a single pool. The total number of threads will be + determined by the number of threads assigned to the enabled NUMA nodes for + that pool. The worker threads are be given affinity to all the enabled + NUMA nodes for that pool and may migrate between them, unless explicitly + specified as described above. + + In the case that any threadpool has more than 64 threads, the threadpool + may be broken down into multiple pools of 64 threads each; on 32-bit + machines, this number is 32. All pools are given affinity to the NUMA + nodes on which the original pool had affinity. For performance reasons, + the last thread pool is spawned only if it has more than 32 threads for + 64-bit machines, or 16 for 32-bit machines. If the total number of threads + in the system doesn't obey this constraint, we may spawn fewer threads + than cores which has been emperically shown to be better for performance. + + If the four pool features: :option:`--wpp`, :option:`--pmode`, + :option:`--pme` and :option:`--lookahead-slices` are all disabled, + then :option:`--pools` is ignored and no thread pools are created. + + If "none" is specified, then all four of the thread pool features are + implicitly disabled. + + Frame encoders are distributed between the available thread pools, + and the encoder will never generate more thread pools than + :option:`--frame-threads`. The pools are used for WPP and for + distributed analysis and motion search. + + On Windows, the native APIs offer sufficient functionality to + discover the NUMA topology and enforce the thread affinity that + libx265 needs (so long as you have not chosen to target XP or + Vista), but on POSIX systems it relies on libnuma for this + functionality. If your target POSIX system is single socket, then + building without libnuma is a perfectly reasonable option, as it + will have no effect on the runtime behavior. On a multiple-socket + system, a POSIX build of libx265 without libnuma will be less work + efficient. See :ref:`thread pools ` for more detail. + + Default "", one pool is created across all available NUMA nodes, with + one thread allocated per detected hardware thread + (logical CPU cores). In the case that the total number of threads is more + than the maximum size that ATOMIC operations can handle (32 for 32-bit + compiles, and 64 for 64-bit compiles), multiple thread pools may be + spawned subject to the performance constraint described above. + + Note that the string value will need to be escaped or quoted to + protect against shell expansion on many platforms + +.. option:: --wpp, --no-wpp + + Enable Wavefront Parallel Processing. The encoder may begin encoding + a row as soon as the row above it is at least two CTUs ahead in the + encode process. This gives a 3-5x gain in parallelism for about 1% + overhead in compression efficiency. + + This feature is implicitly disabled when no thread pool is present. + + Default: Enabled + +.. option:: --pmode, --no-pmode + + Parallel mode decision, or distributed mode analysis. When enabled + the encoder will distribute the analysis work of each CU (merge, + inter, intra) across multiple worker threads. Only recommended if + x265 is not already saturating the CPU cores. In RD levels 3 and 4 + it will be most effective if --rect is enabled. At RD levels 5 and + 6 there is generally always enough work to distribute to warrant the + overhead, assuming your CPUs are not already saturated. + + --pmode will increase utilization without reducing compression + efficiency. In fact, since the modes are all measured in parallel it + makes certain early-outs impractical and thus you usually get + slightly better compression when it is enabled (at the expense of + not skipping improbable modes). This bypassing of early-outs can + cause pmode to slow down encodes, especially at faster presets. + + This feature is implicitly disabled when no thread pool is present. + + Default disabled + +.. option:: --pme, --no-pme + + Parallel motion estimation. When enabled the encoder will distribute + motion estimation across multiple worker threads when more than two + references require motion searches for a given CU. Only recommended + if x265 is not already saturating CPU cores. :option:`--pmode` is + much more effective than this option, since the amount of work it + distributes is substantially higher. With --pme it is not unusual + for the overhead of distributing the work to outweigh the + parallelism benefits. + + This feature is implicitly disabled when no thread pool is present. + + --pme will increase utilization on many core systems with no effect + on the output bitstream. + + Default disabled + +.. option:: --preset, -p + + Sets parameters to preselected values, trading off compression efficiency against + encoding speed. These parameters are applied before all other input parameters are + applied, and so you can override any parameters that these values control. See + :ref:`presets ` for more detail. + + 0. ultrafast + 1. superfast + 2. veryfast + 3. faster + 4. fast + 5. medium **(default)** + 6. slow + 7. slower + 8. veryslow + 9. placebo + +.. option:: --tune, -t + + Tune the settings for a particular type of source or situation. The changes will + be applied after :option:`--preset` but before all other parameters. Default none. + See :ref:`tunings ` for more detail. + + **Values:** psnr, ssim, grain, zero-latency, fast-decode. + +Input/Output File Options +========================= + +These options all describe the input video sequence or, in the case of +:option:`--dither`, operations that are performed on the sequence prior +to encode. All options dealing with files (names, formats, offsets or +frame counts) are only applicable to the CLI application. + +.. option:: --input + + Input filename, only raw YUV or Y4M supported. Use single dash for + stdin. This option name will be implied for the first "extra" + command line argument. + + **CLI ONLY** + +.. option:: --y4m + + Parse input stream as YUV4MPEG2 regardless of file extension, + primarily intended for use with stdin (ie: :option:`--input` - + :option:`--y4m`). This option is implied if the input filename has + a ".y4m" extension + + **CLI ONLY** + +.. option:: --input-depth + + YUV only: Bit-depth of input file or stream + + **Values:** any value between 8 and 16. Default is internal depth. + + **CLI ONLY** + +.. option:: --total-frames + + The number of frames intended to be encoded. It may be left + unspecified, but when it is specified rate control can make use of + this information. It is also used to determine if an encode is + actually a stillpicture profile encode (single frame) + +.. option:: --dither + + Enable high quality downscaling. Dithering is based on the diffusion + of errors from one row of pixels to the next row of pixels in a + picture. Only applicable when the input bit depth is larger than + 8bits and internal bit depth is 8bits. Default disabled + + **CLI ONLY** + +.. option:: --input-res + + YUV only: Source picture size [w x h] + + **CLI ONLY** + +.. option:: --input-csp + + YUV only: Source color space. Only i420, i422, and i444 are + supported at this time. The internal color space is always the + same as the source color space (libx265 does not support any color + space conversions). + + 0. i400 + 1. i420 **(default)** + 2. i422 + 3. i444 + 4. nv12 + 5. nv16 + +.. option:: --fps + + YUV only: Source frame rate + + **Range of values:** positive int or float, or num/denom + +.. option:: --interlace , --no-interlace + + 0. progressive pictures **(default)** + 1. top field first + 2. bottom field first + + HEVC encodes interlaced content as fields. Fields must be provided to + the encoder in the correct temporal order. The source dimensions + must be field dimensions and the FPS must be in units of fields per + second. The decoder must re-combine the fields in their correct + orientation for display. + +.. option:: --seek + + Number of frames to skip at start of input file. Default 0 + + **CLI ONLY** + +.. option:: --frames, -f + + Number of frames of input sequence to be encoded. Default 0 (all) + + **CLI ONLY** + +.. option:: --output, -o + + Bitstream output file name. If there are two extra CLI options, the + first is implicitly the input filename and the second is the output + filename, making the :option:`--output` option optional. + + The output file will always contain a raw HEVC bitstream, the CLI + does not support any container file formats. + + **CLI ONLY** + +.. option:: --output-depth, -D 8|10|12 + + Bitdepth of output HEVC bitstream, which is also the internal bit + depth of the encoder. If the requested bit depth is not the bit + depth of the linked libx265, it will attempt to bind libx265_main + for an 8bit encoder, libx265_main10 for a 10bit encoder, or + libx265_main12 for a 12bit encoder, with the same API version as the + linked libx265. + + If the output depth is not specified but :option:`--profile` is + specified, the output depth will be derived from the profile name. + + **CLI ONLY** + +Profile, Level, Tier +==================== + +.. option:: --profile, -P + + Enforce the requirements of the specified profile, ensuring the + output stream will be decodable by a decoder which supports that + profile. May abort the encode if the specified profile is + impossible to be supported by the compile options chosen for the + encoder (a high bit depth encoder will be unable to output + bitstreams compliant with Main or MainStillPicture). + + The first version of the HEVC specification only described Main, + Main10, and MainStillPicture. All other profiles were added by the + Range Extensions additions in HEVC version two. + + 8bit profiles:: + + main, main-intra, mainstillpicture (or msp for short) + main444-8 main444-intra main444-stillpicture + + 10bit profiles:: + + main10, main10-intra + main422-10, main422-10-intra + main444-10, main444-10-intra + + 12bit profiles:: + + main12, main12-intra + main422-12, main422-12-intra + main444-12, main444-12-intra + + 16bit profiles:: + + main444-16-intra main444-16-stillpicture + + **CLI ONLY** + + API users must call x265_param_apply_profile() after configuring + their param structure. Any changes made to the param structure after + this call might make the encode non-compliant. + + The CLI application will derive the output bit depth from the + profile name if :option:`--output-depth` is not specified. + +.. option:: --level-idc + + Minimum decoder requirement level. Defaults to 0, which implies + auto-detection by the encoder. If specified, the encoder will + attempt to bring the encode specifications within that specified + level. If the encoder is unable to reach the level it issues a + warning and aborts the encode. If the requested requirement level is + higher than the actual level, the actual requirement level is + signaled. + + Beware, specifying a decoder level will force the encoder to enable + VBV for constant rate factor encodes, which may introduce + non-determinism. + + The value is specified as a float or as an integer with the level + times 10, for example level **5.1** is specified as "5.1" or "51", + and level **5.0** is specified as "5.0" or "50". + + Annex A levels: 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2, 8.5 + +.. option:: --high-tier, --no-high-tier + + If :option:`--level-idc` has been specified, the option adds the + intention to support the High tier of that level. If your specified + level does not support a High tier, a warning is issued and this + modifier flag is ignored. If :option:`--level-idc` has been specified, + but not --high-tier, then the encoder will attempt to encode at the + specified level, main tier first, turning on high tier only if + necessary and available at that level. + + If :option:`--level-idc` has not been specified, this argument is + ignored. + +.. option:: --ref <1..16> + + Max number of L0 references to be allowed. This number has a linear + multiplier effect on the amount of work performed in motion search, + but will generally have a beneficial affect on compression and + distortion. + + Note that x265 allows up to 16 L0 references but the HEVC + specification only allows a maximum of 8 total reference frames. So + if you have B frames enabled only 7 L0 refs are valid and if you + have :option:`--b-pyramid` enabled (which is enabled by default in + all presets), then only 6 L0 refs are the maximum allowed by the + HEVC specification. If x265 detects that the total reference count + is greater than 8, it will issue a warning that the resulting stream + is non-compliant and it signals the stream as profile NONE and level + NONE and will abort the encode unless + :option:`--allow-non-conformance` it specified. Compliant HEVC + decoders may refuse to decode such streams. + + Default 3 + +.. option:: --allow-non-conformance, --no-allow-non-conformance + + Allow libx265 to generate a bitstream with profile and level NONE. + By default it will abort any encode which does not meet strict level + compliance. The two most likely causes for non-conformance are + :option:`--ctu` being too small, :option:`--ref` being too high, + or the bitrate or resolution being out of specification. + + Default: disabled + +.. note:: + + :option:`--profile`, :option:`--level-idc`, and + :option:`--high-tier` are only intended for use when you are + targeting a particular decoder (or decoders) with fixed resource + limitations and must constrain the bitstream within those limits. + Specifying a profile or level may lower the encode quality + parameters to meet those requirements but it will never raise + them. It may enable VBV constraints on a CRF encode. + + Also note that x265 determines the decoder requirement profile and + level in three steps. First, the user configures an x265_param + structure with their suggested encoder options and then optionally + calls x265_param_apply_profile() to enforce a specific profile + (main, main10, etc). Second, an encoder is created from this + x265_param instance and the :option:`--level-idc` and + :option:`--high-tier` parameters are used to reduce bitrate or other + features in order to enforce the target level. Finally, the encoder + re-examines the final set of parameters and detects the actual + minimum decoder requirement level and this is what is signaled in + the bitstream headers. The detected decoder level will only use High + tier if the user specified a High tier level. + + The signaled profile will be determined by the encoder's internal + bitdepth and input color space. If :option:`--keyint` is 0 or 1, + then an intra variant of the profile will be signaled. + + If :option:`--total-frames` is 1, then a stillpicture variant will + be signaled, but this parameter is not always set by applications, + particularly not when the CLI uses stdin streaming or when libx265 + is used by third-party applications. + + +Mode decision / Analysis +======================== + +.. option:: --rd <0..6> + + Level of RDO in mode decision. The higher the value, the more + exhaustive the analysis and the more rate distortion optimization is + used. The lower the value the faster the encode, the higher the + value the smaller the bitstream (in general). Default 3 + + Note that this table aims for accuracy, but is not necessarily our + final target behavior for each mode. + + +-------+---------------------------------------------------------------+ + | Level | Description | + +=======+===============================================================+ + | 0 | sa8d mode and split decisions, intra w/ source pixels | + +-------+---------------------------------------------------------------+ + | 1 | recon generated (better intra), RDO merge/skip selection | + +-------+---------------------------------------------------------------+ + | 2 | RDO splits and merge/skip selection | + +-------+---------------------------------------------------------------+ + | 3 | RDO mode and split decisions, chroma residual used for sa8d | + +-------+---------------------------------------------------------------+ + | 4 | Currently same as 3 | + +-------+---------------------------------------------------------------+ + | 5 | Adds RDO prediction decisions | + +-------+---------------------------------------------------------------+ + | 6 | Currently same as 5 | + +-------+---------------------------------------------------------------+ + + **Range of values:** 0: least .. 6: full RDO analysis + +Options which affect the coding unit quad-tree, sometimes referred to as +the prediction quad-tree. + +.. option:: --ctu, -s <64|32|16> + + Maximum CU size (width and height). The larger the maximum CU size, + the more efficiently x265 can encode flat areas of the picture, + giving large reductions in bitrate. However this comes at a loss of + parallelism with fewer rows of CUs that can be encoded in parallel, + and less frame parallelism as well. Because of this the faster + presets use a CU size of 32. Default: 64 + +.. option:: --min-cu-size <64|32|16|8> + + Minimum CU size (width and height). By using 16 or 32 the encoder + will not analyze the cost of CUs below that minimum threshold, + saving considerable amounts of compute with a predictable increase + in bitrate. This setting has a large effect on performance on the + faster presets. + + Default: 8 (minimum 8x8 CU for HEVC, best compression efficiency) + +.. note:: + + All encoders within a single process must use the same settings for + the CU size range. :option:`--ctu` and :option:`--min-cu-size` must + be consistent for all of them since the encoder configures several + key global data structures based on this range. + +.. option:: --limit-refs <0|1|2|3> + + When set to X265_REF_LIMIT_DEPTH (1) x265 will limit the references + analyzed at the current depth based on the references used to code + the 4 sub-blocks at the next depth. For example, a 16x16 CU will + only use the references used to code its four 8x8 CUs. + + When set to X265_REF_LIMIT_CU (2), the rectangular and asymmetrical + partitions will only use references selected by the 2Nx2N motion + search (including at the lowest depth which is otherwise unaffected + by the depth limit). + + When set to 3 (X265_REF_LIMIT_DEPTH && X265_REF_LIMIT_CU), the 2Nx2N + motion search at each depth will only use references from the split + CUs and the rect/amp motion searches at that depth will only use the + reference(s) selected by 2Nx2N. + + For all non-zero values of limit-refs, the current depth will evaluate + intra mode (in inter slices), only if intra mode was chosen as the best + mode for atleast one of the 4 sub-blocks. + + You can often increase the number of references you are using + (within your decoder level limits) if you enable one or + both of these flags. + + This feature is EXPERIMENTAL and functional at all RD levels. + +.. option:: --rect, --no-rect + + Enable analysis of rectangular motion partitions Nx2N and 2NxN + (50/50 splits, two directions). Default disabled + +.. option:: --amp, --no-amp + + Enable analysis of asymmetric motion partitions (75/25 splits, four + directions). At RD levels 0 through 4, AMP partitions are only + considered at CU sizes 32x32 and below. At RD levels 5 and 6, it + will only consider AMP partitions as merge candidates (no motion + search) at 64x64, and as merge or inter candidates below 64x64. + + The AMP partitions which are searched are derived from the current + best inter partition. If Nx2N (vertical rectangular) is the best + current prediction, then left and right asymmetrical splits will be + evaluated. If 2NxN (horizontal rectangular) is the best current + prediction, then top and bottom asymmetrical splits will be + evaluated, If 2Nx2N is the best prediction, and the block is not a + merge/skip, then all four AMP partitions are evaluated. + + This setting has no effect if rectangular partitions are disabled. + Default disabled + +.. option:: --early-skip, --no-early-skip + + Measure full CU size (2Nx2N) merge candidates first; if no residual + is found the analysis is short circuited. Default disabled + +.. option:: --fast-intra, --no-fast-intra + + Perform an initial scan of every fifth intra angular mode, then + check modes +/- 2 distance from the best mode, then +/- 1 distance + from the best mode, effectively performing a gradient descent. When + enabled 10 modes in total are checked. When disabled all 33 angular + modes are checked. Only applicable for :option:`--rd` levels 4 and + below (medium preset and faster). + +.. option:: --b-intra, --no-b-intra + + Enables the evaluation of intra modes in B slices. Default disabled. + +.. option:: --cu-lossless, --no-cu-lossless + + For each CU, evaluate lossless (transform and quant bypass) encode + of the best non-lossless mode option as a potential rate distortion + optimization. If the global option :option:`--lossless` has been + specified, all CUs will be encoded as lossless unconditionally + regardless of whether this option was enabled. Default disabled. + + Only effective at RD levels 3 and above, which perform RDO mode + decisions. + +.. option:: --tskip-fast, --no-tskip-fast + + Only evaluate transform skip for NxN intra predictions (4x4 blocks). + Only applicable if transform skip is enabled. For chroma, only + evaluate if luma used tskip. Inter block tskip analysis is + unmodified. Default disabled + +Analysis re-use options, to improve performance when encoding the same +sequence multiple times (presumably at varying bitrates). The encoder +will not reuse analysis if the resolution and slice type parameters do +not match. + +.. option:: --analysis-mode + + Specify whether analysis information of each frame is output by encoder + or input for reuse. By reading the analysis data writen by an + earlier encode of the same sequence, substantial redundant work may + be avoided. + + The following data may be stored and reused: + I frames - split decisions and luma intra directions of all CUs. + P/B frames - motion vectors are dumped at each depth for all CUs. + + **Values:** off(0), save(1): dump analysis data, load(2): read analysis data + +.. option:: --analysis-file + + Specify a filename for analysis data (see :option:`--analysis-mode`) + If no filename is specified, x265_analysis.dat is used. + +Options which affect the transform unit quad-tree, sometimes referred to +as the residual quad-tree (RQT). + +.. option:: --rdoq-level <0|1|2>, --no-rdoq-level + + Specify the amount of rate-distortion analysis to use within + quantization:: + + At level 0 rate-distortion cost is not considered in quant + + At level 1 rate-distortion cost is used to find optimal rounding + values for each level (and allows psy-rdoq to be effective). It + trades-off the signaling cost of the coefficient vs its post-inverse + quant distortion from the pre-quant coefficient. When + :option:`--psy-rdoq` is enabled, this formula is biased in favor of + more energy in the residual (larger coefficient absolute levels) + + At level 2 rate-distortion cost is used to make decimate decisions + on each 4x4 coding group, including the cost of signaling the group + within the group bitmap. If the total distortion of not signaling + the entire coding group is less than the rate cost, the block is + decimated. Next, it applies rate-distortion cost analysis to the + last non-zero coefficient, which can result in many (or all) of the + coding groups being decimated. Psy-rdoq is less effective at + preserving energy when RDOQ is at level 2, since it only has + influence over the level distortion costs. + +.. option:: --tu-intra-depth <1..4> + + The transform unit (residual) quad-tree begins with the same depth + as the coding unit quad-tree, but the encoder may decide to further + split the transform unit tree if it improves compression efficiency. + This setting limits the number of extra recursion depth which can be + attempted for intra coded units. Default: 1, which means the + residual quad-tree is always at the same depth as the coded unit + quad-tree + + Note that when the CU intra prediction is NxN (only possible with + 8x8 CUs), a TU split is implied, and thus the residual quad-tree + begins at 4x4 and cannot split any futhrer. + +.. option:: --tu-inter-depth <1..4> + + The transform unit (residual) quad-tree begins with the same depth + as the coding unit quad-tree, but the encoder may decide to further + split the transform unit tree if it improves compression efficiency. + This setting limits the number of extra recursion depth which can be + attempted for inter coded units. Default: 1. which means the + residual quad-tree is always at the same depth as the coded unit + quad-tree unless the CU was coded with rectangular or AMP + partitions, in which case a TU split is implied and thus the + residual quad-tree begins one layer below the CU quad-tree. + +.. option:: --nr-intra , --nr-inter + + Noise reduction - an adaptive deadzone applied after DCT + (subtracting from DCT coefficients), before quantization. It does + no pixel-level filtering, doesn't cross DCT block boundaries, has no + overlap, The higher the strength value parameter, the more + aggressively it will reduce noise. + + Enabling noise reduction will make outputs diverge between different + numbers of frame threads. Outputs will be deterministic but the + outputs of -F2 will no longer match the outputs of -F3, etc. + + **Values:** any value in range of 0 to 2000. Default 0 (disabled). + +.. option:: --tskip, --no-tskip + + Enable evaluation of transform skip (bypass DCT but still use + quantization) coding for 4x4 TU coded blocks. + + Only effective at RD levels 3 and above, which perform RDO mode + decisions. Default disabled + +.. option:: --rdpenalty <0..2> + + When set to 1, transform units of size 32x32 are given a 4x bit cost + penalty compared to smaller transform units, in intra coded CUs in P + or B slices. + + When set to 2, transform units of size 32x32 are not even attempted, + unless otherwise required by the maximum recursion depth. For this + option to be effective with 32x32 intra CUs, + :option:`--tu-intra-depth` must be at least 2. For it to be + effective with 64x64 intra CUs, :option:`--tu-intra-depth` must be + at least 3. + + Note that in HEVC an intra transform unit (a block of the residual + quad-tree) is also a prediction unit, meaning that the intra + prediction signal is generated for each TU block, the residual + subtracted and then coded. The coding unit simply provides the + prediction modes that will be used when predicting all of the + transform units within the CU. This means that when you prevent + 32x32 intra transform units, you are preventing 32x32 intra + predictions. + + Default 0, disabled. + + **Values:** 0:disabled 1:4x cost penalty 2:force splits + +.. option:: --max-tu-size <32|16|8|4> + + Maximum TU size (width and height). The residual can be more + efficiently compressed by the DCT transform when the max TU size + is larger, but at the expense of more computation. Transform unit + quad-tree begins at the same depth of the coded tree unit, but if the + maximum TU size is smaller than the CU size then transform QT begins + at the depth of the max-tu-size. Default: 32. + +Temporal / motion search options +================================ + +.. option:: --max-merge <1..5> + + Maximum number of neighbor (spatial and temporal) candidate blocks + that the encoder may consider for merging motion predictions. If a + merge candidate results in no residual, it is immediately selected + as a "skip". Otherwise the merge candidates are tested as part of + motion estimation when searching for the least cost inter option. + The max candidate number is encoded in the SPS and determines the + bit cost of signaling merge CUs. Default 2 + +.. option:: --me + + Motion search method. Generally, the higher the number the harder + the ME method will try to find an optimal match. Diamond search is + the simplest. Hexagon search is a little better. Uneven + Multi-Hexegon is an adaption of the search method used by x264 for + slower presets. Star is a three step search adapted from the HM + encoder: a star-pattern search followed by an optional radix scan + followed by an optional star-search refinement. Full is an + exhaustive search; an order of magnitude slower than all other + searches but not much better than umh or star. + + 0. dia + 1. hex **(default)** + 2. umh + 3. star + 4. full + +.. option:: --subme, -m <0..7> + + Amount of subpel refinement to perform. The higher the number the + more subpel iterations and steps are performed. Default 2 + + +----+------------+-----------+------------+-----------+-----------+ + | -m | HPEL iters | HPEL dirs | QPEL iters | QPEL dirs | HPEL SATD | + +====+============+===========+============+===========+===========+ + | 0 | 1 | 4 | 0 | 4 | false | + +----+------------+-----------+------------+-----------+-----------+ + | 1 | 1 | 4 | 1 | 4 | false | + +----+------------+-----------+------------+-----------+-----------+ + | 2 | 1 | 4 | 1 | 4 | true | + +----+------------+-----------+------------+-----------+-----------+ + | 3 | 2 | 4 | 1 | 4 | true | + +----+------------+-----------+------------+-----------+-----------+ + | 4 | 2 | 4 | 2 | 4 | true | + +----+------------+-----------+------------+-----------+-----------+ + | 5 | 1 | 8 | 1 | 8 | true | + +----+------------+-----------+------------+-----------+-----------+ + | 6 | 2 | 8 | 1 | 8 | true | + +----+------------+-----------+------------+-----------+-----------+ + | 7 | 2 | 8 | 2 | 8 | true | + +----+------------+-----------+------------+-----------+-----------+ + + At --subme values larger than 2, chroma residual cost is included + in all subpel refinement steps and chroma residual is included in + all motion estimation decisions (selecting the best reference + picture in each list, and chosing between merge, uni-directional + motion and bi-directional motion). The 'slow' preset is the first + preset to enable the use of chroma residual. + +.. option:: --merange + + Motion search range. Default 57 + + The default is derived from the default CTU size (64) minus the luma + interpolation half-length (4) minus maximum subpel distance (2) + minus one extra pixel just in case the hex search method is used. If + the search range were any larger than this, another CTU row of + latency would be required for reference frames. + + **Range of values:** an integer from 0 to 32768 + +.. option:: --temporal-mvp, --no-temporal-mvp + + Enable temporal motion vector predictors in P and B slices. + This enables the use of the motion vector from the collocated block + in the previous frame to be used as a predictor. Default is enabled + +.. option:: --weightp, -w, --no-weightp + + Enable weighted prediction in P slices. This enables weighting + analysis in the lookahead, which influences slice decisions, and + enables weighting analysis in the main encoder which allows P + reference samples to have a weight function applied to them prior to + using them for motion compensation. In video which has lighting + changes, it can give a large improvement in compression efficiency. + Default is enabled + +.. option:: --weightb, --no-weightb + + Enable weighted prediction in B slices. Default disabled + +Spatial/intra options +===================== + +.. option:: --strong-intra-smoothing, --no-strong-intra-smoothing + + Enable strong intra smoothing for 32x32 intra blocks. This flag + performs bi-linear interpolation of the corner reference samples + for a strong smoothing effect. The purpose is to prevent blocking + or banding artifacts in regions with few/zero AC coefficients. + Default enabled + +.. option:: --constrained-intra, --no-constrained-intra + + Constrained intra prediction. When generating intra predictions for + blocks in inter slices, only intra-coded reference pixels are used. + Inter-coded reference pixels are replaced with intra-coded neighbor + pixels or default values. The general idea is to block the + propagation of reference errors that may have resulted from lossy + signals. Default disabled + +Psycho-visual options +===================== + +Left to its own devices, the encoder will make mode decisions based on a +simple rate distortion formula, trading distortion for bitrate. This is +generally effective except for the manner in which this distortion is +measured. It tends to favor blurred reconstructed blocks over blocks +which have wrong motion. The human eye generally prefers the wrong +motion over the blur and thus x265 offers psycho-visual adjustments to +the rate distortion algorithm. + +:option:`--psy-rd` will add an extra cost to reconstructed blocks which +do not match the visual energy of the source block. The higher the +strength of :option:`--psy-rd` the more strongly it will favor similar +energy over blur and the more aggressively it will ignore rate +distortion. If it is too high, it will introduce visal artifacts and +increase bitrate enough for rate control to increase quantization +globally, reducing overall quality. psy-rd will tend to reduce the use +of blurred prediction modes, like DC and planar intra and bi-directional +inter prediction. + +:option:`--psy-rdoq` will adjust the distortion cost used in +rate-distortion optimized quantization (RDO quant), enabled by +:option:`--rdoq-level` 1 or 2, favoring the preservation of energy in the +reconstructed image. :option:`--psy-rdoq` prevents RDOQ from blurring +all of the encoding options which psy-rd has to chose from. At low +strength levels, psy-rdoq will influence the quantization level +decisions, favoring higher AC energy in the reconstructed image. As +psy-rdoq strength is increased, more non-zero coefficient levels are +added and fewer coefficients are zeroed by RDOQ's rate distortion +analysis. High levels of psy-rdoq can double the bitrate which can have +a drastic effect on rate control, forcing higher overall QP, and can +cause ringing artifacts. psy-rdoq is less accurate than psy-rd, it is +biasing towards energy in general while psy-rd biases towards the energy +of the source image. But very large psy-rdoq values can sometimes be +beneficial, preserving film grain for instance. + +As a general rule, when both psycho-visual features are disabled, the +encoder will tend to blur blocks in areas of difficult motion. Turning +on small amounts of psy-rd and psy-rdoq will improve the perceived +visual quality. Increasing psycho-visual strength further will improve +quality and begin introducing artifacts and increase bitrate, which may +force rate control to increase global QP. Finding the optimal +psycho-visual parameters for a given video requires experimentation. Our +recommended defaults (1.0 for both) are generally on the low end of the +spectrum. + +The lower the bitrate, the lower the optimal psycho-visual settings. If +the bitrate is too low for the psycho-visual settings, you will begin to +see temporal artifacts (motion judder). This is caused when the encoder +is forced to code skip blocks (no residual) in areas of difficult motion +because it is the best option psycho-visually (they have great amounts +of energy and no residual cost). One can lower psy-rd settings when +judder is happening, and allow the encoder to use some blur in these +areas of high motion. + +.. option:: --psy-rd + + Influence rate distortion optimizated mode decision to preserve the + energy of the source image in the encoded image at the expense of + compression efficiency. It only has effect on presets which use + RDO-based mode decisions (:option:`--rd` 3 and above). 1.0 is a + typical value. Default 0.3 + + **Range of values:** 0 .. 2.0 + +.. option:: --psy-rdoq + + Influence rate distortion optimized quantization by favoring higher + energy in the reconstructed image. This generally improves perceived + visual quality at the cost of lower quality metric scores. It only + has effect when :option:`--rdoq-level` is 1 or 2. High values can + be beneficial in preserving high-frequency detail like film grain. + Default: 1.0 + + **Range of values:** 0 .. 50.0 + + +Slice decision options +====================== + +.. option:: --open-gop, --no-open-gop + + Enable open GOP, allow I-slices to be non-IDR. Default enabled + +.. option:: --keyint, -I + + Max intra period in frames. A special case of infinite-gop (single + keyframe at the beginning of the stream) can be triggered with + argument -1. Use 1 to force all-intra. Default 250 + +.. option:: --min-keyint, -i + + Minimum GOP size. Scenecuts closer together than this are coded as I + or P, not IDR. Minimum keyint is clamped to be at least half of + :option:`--keyint`. If you wish to force regular keyframe intervals + and disable adaptive I frame placement, you must use + :option:`--no-scenecut`. + + **Range of values:** >=0 (0: auto) + +.. option:: --scenecut , --no-scenecut + + How aggressively I-frames need to be inserted. The higher the + threshold value, the more aggressive the I-frame placement. + :option:`--scenecut` 0 or :option:`--no-scenecut` disables adaptive + I frame placement. Default 40 + +.. option:: --rc-lookahead + + Number of frames for slice-type decision lookahead (a key + determining factor for encoder latency). The longer the lookahead + buffer the more accurate scenecut decisions will be, and the more + effective cuTree will be at improving adaptive quant. Having a + lookahead larger than the max keyframe interval is not helpful. + Default 20 + + **Range of values:** Between the maximum consecutive bframe count (:option:`--bframes`) and 250 + +.. option:: --lookahead-slices <0..16> + + Use multiple worker threads to measure the estimated cost of each + frame within the lookahead. When :option:`--b-adapt` is 2, most + frame cost estimates will be performed in batch mode, many cost + estimates at the same time, and lookahead-slices is ignored for + batched estimates. The effect on performance can be quite small. + The higher this parameter, the less accurate the frame costs will be + (since context is lost across slice boundaries) which will result in + less accurate B-frame and scene-cut decisions. + + The encoder may internally lower the number of slices to ensure + each slice codes at least 10 16x16 rows of lowres blocks. If slices + are used in lookahead, they are logged in the list of tools as + *lslices*. + + **Values:** 0 - disabled (default). 1 is the same as 0. Max 16 + +.. option:: --b-adapt + + Set the level of effort in determining B frame placement. + + With b-adapt 0, the GOP structure is fixed based on the values of + :option:`--keyint` and :option:`--bframes`. + + With b-adapt 1 a light lookahead is used to choose B frame placement. + + With b-adapt 2 (trellis) a viterbi B path selection is performed + + **Values:** 0:none; 1:fast; 2:full(trellis) **default** + +.. option:: --bframes, -b <0..16> + + Maximum number of consecutive b-frames. Use :option:`--bframes` 0 to + force all P/I low-latency encodes. Default 4. This parameter has a + quadratic effect on the amount of memory allocated and the amount of + work performed by the full trellis version of :option:`--b-adapt` + lookahead. + +.. option:: --bframe-bias + + Bias towards B frames in slicetype decision. The higher the bias the + more likely x265 is to use B frames. Can be any value between -90 + and 100 and is clipped to that range. Default 0 + +.. option:: --b-pyramid, --no-b-pyramid + + Use B-frames as references, when possible. Default enabled + +Quality, rate control and rate distortion options +================================================= + +.. option:: --bitrate + + Enables single-pass ABR rate control. Specify the target bitrate in + kbps. Default is 0 (CRF) + + **Range of values:** An integer greater than 0 + +.. option:: --crf <0..51.0> + + Quality-controlled variable bitrate. CRF is the default rate control + method; it does not try to reach any particular bitrate target, + instead it tries to achieve a given uniform quality and the size of + the bitstream is determined by the complexity of the source video. + The higher the rate factor the higher the quantization and the lower + the quality. Default rate factor is 28.0. + +.. option:: --crf-max <0..51.0> + + Specify an upper limit to the rate factor which may be assigned to + any given frame (ensuring a max QP). This is dangerous when CRF is + used in combination with VBV as it may result in buffer underruns. + Default disabled + +.. option:: --crf-min <0..51.0> + + Specify an lower limit to the rate factor which may be assigned to + any given frame (ensuring a min compression factor). + +.. option:: --vbv-bufsize + + Specify the size of the VBV buffer (kbits). Enables VBV in ABR + mode. In CRF mode, :option:`--vbv-maxrate` must also be specified. + Default 0 (vbv disabled) + +.. option:: --vbv-maxrate + + Maximum local bitrate (kbits/sec). Will be used only if vbv-bufsize + is also non-zero. Both vbv-bufsize and vbv-maxrate are required to + enable VBV in CRF mode. Default 0 (disabled) + + Note that when VBV is enabled (with a valid :option:`--vbv-bufsize`), + VBV emergency denoising is turned on. This will turn on aggressive + denoising at the frame level when frame QP > QP_MAX_SPEC (51), drastically + reducing bitrate and allowing ratecontrol to assign lower QPs for + the following frames. The visual effect is blurring, but removes + significant blocking/displacement artifacts. + +.. option:: --vbv-init + + Initial buffer occupancy. The portion of the decode buffer which + must be full before the decoder will begin decoding. Determines + absolute maximum frame size. May be specified as a fractional value + between 0 and 1, or in kbits. In other words these two option pairs + are equivalent:: + + --vbv-bufsize 1000 --vbv-init 900 + --vbv-bufsize 1000 --vbv-init 0.9 + + Default 0.9 + + **Range of values:** fractional: 0 - 1.0, or kbits: 2 .. bufsize + +.. option:: --qp, -q + + Specify base quantization parameter for Constant QP rate control. + Using this option enables Constant QP rate control. The specified QP + is assigned to P slices. I and B slices are given QPs relative to P + slices using param->rc.ipFactor and param->rc.pbFactor unless QP 0 + is specified, in which case QP 0 is used for all slice types. Note + that QP 0 does not cause lossless encoding, it only disables + quantization. Default disabled (CRF) + + **Range of values:** an integer from 0 to 51 + +.. option:: --lossless, --no-lossless + + Enables true lossless coding by bypassing scaling, transform, + quantization and in-loop filter processes. This is used for + ultra-high bitrates with zero loss of quality. Reconstructed output + pictures are bit-exact to the input pictures. Lossless encodes + implicitly have no rate control, all rate control options are + ignored. Slower presets will generally achieve better compression + efficiency (and generate smaller bitstreams). Default disabled. + +.. option:: --aq-mode <0|1|2|3> + + Adaptive Quantization operating mode. Raise or lower per-block + quantization based on complexity analysis of the source image. The + more complex the block, the more quantization is used. This offsets + the tendency of the encoder to spend too many bits on complex areas + and not enough in flat areas. + + 0. disabled + 1. AQ enabled **(default)** + 2. AQ enabled with auto-variance + 3. AQ enabled with auto-variance and bias to dark scenes + +.. option:: --aq-strength + + Adjust the strength of the adaptive quantization offsets. Setting + :option:`--aq-strength` to 0 disables AQ. Default 1.0. + + **Range of values:** 0.0 to 3.0 + +.. option:: --qg-size <64|32|16> + + Enable adaptive quantization for sub-CTUs. This parameter specifies + the minimum CU size at which QP can be adjusted, ie. Quantization Group + size. Allowed range of values are 64, 32, 16 provided this falls within + the inclusive range [maxCUSize, minCUSize]. Experimental. + Default: same as maxCUSize + +.. option:: --cutree, --no-cutree + + Enable the use of lookahead's lowres motion vector fields to + determine the amount of reuse of each block to tune adaptive + quantization factors. CU blocks which are heavily reused as motion + reference for later frames are given a lower QP (more bits) while CU + blocks which are quickly changed and are not referenced are given + less bits. This tends to improve detail in the backgrounds of video + with less detail in areas of high motion. Default enabled + +.. option:: --pass + + Enable multi-pass rate control mode. Input is encoded multiple times, + storing the encoded information of each pass in a stats file from which + the consecutive pass tunes the qp of each frame to improve the quality + of the output. Default disabled + + 1. First pass, creates stats file + 2. Last pass, does not overwrite stats file + 3. Nth pass, overwrites stats file + + **Range of values:** 1 to 3 + +.. option:: --stats + + Specify file name of of the multi-pass stats file. If unspecified + the encoder will use x265_2pass.log + +.. option:: --slow-firstpass, --no-slow-firstpass + + Enable a slow and more detailed first pass encode in multi-pass rate + control mode. Speed of the first pass encode is slightly lesser and + quality midly improved when compared to the default settings in a + multi-pass encode. Default disabled (turbo mode enabled) + + When **turbo** first pass is not disabled, these options are + set on the first pass to improve performance: + + * :option:`--fast-intra` + * :option:`--no-rect` + * :option:`--no-amp` + * :option:`--early-skip` + * :option:`--ref` = 1 + * :option:`--max-merge` = 1 + * :option:`--me` = DIA + * :option:`--subme` = MIN(2, :option:`--subme`) + * :option:`--rd` = MIN(2, :option:`--rd`) + +.. option:: --strict-cbr, --no-strict-cbr + + Enables stricter conditions to control bitrate deviance from the + target bitrate in ABR mode. Bit rate adherence is prioritised + over quality. Rate tolerance is reduced to 50%. Default disabled. + + This option is for use-cases which require the final average bitrate + to be within very strict limits of the target; preventing overshoots, + while keeping the bit rate within 5% of the target setting, + especially in short segment encodes. Typically, the encoder stays + conservative, waiting until there is enough feedback in terms of + encoded frames to control QP. strict-cbr allows the encoder to be + more aggressive in hitting the target bitrate even for short segment + videos. Experimental. + +.. option:: --cbqpoffs + + Offset of Cb chroma QP from the luma QP selected by rate control. + This is a general way to spend more or less bits on the chroma + channel. Default 0 + + **Range of values:** -12 to 12 + +.. option:: --crqpoffs + + Offset of Cr chroma QP from the luma QP selected by rate control. + This is a general way to spend more or less bits on the chroma + channel. Default 0 + + **Range of values:** -12 to 12 + +.. option:: --ipratio + + QP ratio factor between I and P slices. This ratio is used in all of + the rate control modes. Some :option:`--tune` options may change the + default value. It is not typically manually specified. Default 1.4 + +.. option:: --pbratio + + QP ratio factor between P and B slices. This ratio is used in all of + the rate control modes. Some :option:`--tune` options may change the + default value. It is not typically manually specified. Default 1.3 + +.. option:: --qcomp + + qComp sets the quantizer curve compression factor. It weights the + frame quantizer based on the complexity of residual (measured by + lookahead). Default value is 0.6. Increasing it to 1 will + effectively generate CQP + +.. option:: --qpstep + + The maximum single adjustment in QP allowed to rate control. Default + 4 + +.. option:: --qblur + + Temporally blur quants. Default 0.5 + +.. option:: --cplxblur + + temporally blur complexity. default 20 + +.. option:: --zones //... + + Tweak the bitrate of regions of the video. Each zone takes the form: + + ,,