diff --git a/docs/_data/plugins.json b/docs/_data/plugins.json index d8e9ebb5c5f..f120f1921fc 100644 --- a/docs/_data/plugins.json +++ b/docs/_data/plugins.json @@ -199,5 +199,16 @@ ] } } + }, + "mapbox-gl-rtl-text": { + "prefix": "mapbox-gl-rtl-text", + "latest": "0.1.0", + "v": { + "0.1.0": { + "files": [ + "mapbox-gl-rtl-text.js" + ] + } + } } } diff --git a/docs/_layouts/pages.html b/docs/_layouts/pages.html index 76454f6e17c..cd6ca7886ca 100644 --- a/docs/_layouts/pages.html +++ b/docs/_layouts/pages.html @@ -17,6 +17,8 @@ id: controls-and-overlays - name: Browser support id: browser-support + - name: Internationalization support + id: internationalization --- @@ -96,4 +98,4 @@
{% if plugin.js %}<script src='https://api.mapbox.com/mapbox-gl-js/plugins/{{plugin.prefix}}/v{{site.data.plugins[plugin.prefix].latest}}/{{plugin.prefix}}.js'></script>{% endif %} diff --git a/documentation.yml b/documentation.yml index 14d9a6a644b..058ccfa37e8 100644 --- a/documentation.yml +++ b/documentation.yml @@ -3,6 +3,7 @@ toc: - accessToken - supported - version + - setRTLTextPlugin - name: Geography description: | These are Mapbox GL JS's ways of representing locations diff --git a/js/data/bucket/symbol_bucket.js b/js/data/bucket/symbol_bucket.js index 6946a8463fc..f11ab5d2f79 100644 --- a/js/data/bucket/symbol_bucket.js +++ b/js/data/bucket/symbol_bucket.js @@ -21,6 +21,7 @@ const CollisionFeature = require('../../symbol/collision_feature'); const findPoleOfInaccessibility = require('../../util/find_pole_of_inaccessibility'); const classifyRings = require('../../util/classify_rings'); const VectorTileFeature = require('vector-tile').VectorTileFeature; +const rtlTextPlugin = require('../../source/rtl_text_plugin'); const shapeText = Shaping.shapeText; const shapeIcon = Shaping.shapeIcon; @@ -143,7 +144,11 @@ class SymbolBucket { let text; if (hasText) { - text = resolveText(feature, layout); + if (rtlTextPlugin.applyArabicShaping) { + text = rtlTextPlugin.applyArabicShaping(resolveText(feature, layout)); + } else { + text = resolveText(feature, layout); + } } let icon; diff --git a/js/mapbox-gl.js b/js/mapbox-gl.js index 163412774e6..8530bae6f5a 100644 --- a/js/mapbox-gl.js +++ b/js/mapbox-gl.js @@ -34,6 +34,22 @@ mapboxgl.util.getArrayBuffer = ajax.getArrayBuffer; const config = require('./util/config'); mapboxgl.config = config; +const rtlTextPlugin = require('./source/rtl_text_plugin'); + +mapboxgl.setRTLTextPlugin = rtlTextPlugin.setRTLTextPlugin; + + /** + * Sets the map's [RTL text plugin](https://www.mapbox.com/mapbox-gl-js/plugins/#mapbox-gl-rtl-text). + * Necessary for supporting languages like Arabic and Hebrew that are written right-to-left. + * + * @function setRTLTextPlugin + * @param {string} pluginURL URL pointing to the Mapbox RTL text plugin source. + * @param {Function} callback Called with an error argument if there is an error. + * @example + * mapboxgl.setRTLTextPlugin('https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.1/mapbox-gl-rtl-text.js'); + * @see [Displaying Arabic text](https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-rtl-text/) + */ + Object.defineProperty(mapboxgl, 'accessToken', { get: function() { return config.ACCESS_TOKEN; }, set: function(token) { config.ACCESS_TOKEN = token; } diff --git a/js/source/rtl_text_plugin.js b/js/source/rtl_text_plugin.js new file mode 100644 index 00000000000..3559b93a423 --- /dev/null +++ b/js/source/rtl_text_plugin.js @@ -0,0 +1,38 @@ +'use strict'; + +const ajax = require('../util/ajax'); +const window = require('../util/window'); + +const pluginAvailableCallbacks = []; +let pluginRequested = false; +let pluginBlobURL = null; + +module.exports.registerForPluginAvailability = function(callback) { + if (pluginBlobURL) { + callback(pluginBlobURL); + } else { + pluginAvailableCallbacks.push(callback); + } +}; + +module.exports.errorCallback = null; + +module.exports.setRTLTextPlugin = function(pluginURL, callback) { + if (pluginRequested) { + throw new Error('setRTLTextPlugin cannot be called multiple times.'); + } + pluginRequested = true; + module.exports.errorCallback = callback; + ajax.getArrayBuffer(pluginURL, (err, response) => { + if (err) { + callback(err); + } else { + pluginBlobURL = + window.URL.createObjectURL(new window.Blob([response]), {type: "text/javascript"}); + + for (const pluginAvailableCallback of pluginAvailableCallbacks) { + pluginAvailableCallback(pluginBlobURL); + } + } + }); +}; diff --git a/js/source/worker.js b/js/source/worker.js index aa4e22eca97..49dbb2bafb8 100644 --- a/js/source/worker.js +++ b/js/source/worker.js @@ -7,6 +7,8 @@ const VectorTileWorkerSource = require('./vector_tile_worker_source'); const GeoJSONWorkerSource = require('./geojson_worker_source'); const assert = require('assert'); +const globalRTLTextPlugin = require('./rtl_text_plugin'); + /** * @private */ @@ -31,6 +33,14 @@ class Worker { } this.workerSourceTypes[name] = WorkerSource; }; + + this.self.registerRTLTextPlugin = (rtlTextPlugin) => { + if (globalRTLTextPlugin.applyArabicShaping || globalRTLTextPlugin.processBidirectionalText) { + throw new Error('RTL text plugin already registered.'); + } + globalRTLTextPlugin['applyArabicShaping'] = rtlTextPlugin.applyArabicShaping; + globalRTLTextPlugin['processBidirectionalText'] = rtlTextPlugin.processBidirectionalText; + }; } setLayers(mapId, layers) { @@ -89,6 +99,16 @@ class Worker { } } + loadRTLTextPlugin(map, pluginURL, callback) { + try { + if (!globalRTLTextPlugin.applyArabicShaping && !globalRTLTextPlugin.processBidirectionalText) { + this.self.importScripts(pluginURL); + } + } catch (e) { + callback(e); + } + } + getLayerIndex(mapId) { let layerIndexes = this.layerIndexes[mapId]; if (!layerIndexes) { diff --git a/js/style/style.js b/js/style/style.js index baf3134695b..9c642e53ce6 100644 --- a/js/style/style.js +++ b/js/style/style.js @@ -23,6 +23,7 @@ const MapboxGLFunction = require('mapbox-gl-function'); const getWorkerPool = require('../global_worker_pool'); const deref = require('mapbox-gl-style-spec/lib/deref'); const diff = require('mapbox-gl-style-spec/lib/diff'); +const rtlTextPlugin = require('../source/rtl_text_plugin'); const supportedDiffOperations = util.pick(diff.operations, [ 'addLayer', @@ -76,6 +77,14 @@ class Style extends Evented { this.setEventedParent(map); this.fire('dataloading', {dataType: 'style'}); + const self = this; + rtlTextPlugin.registerForPluginAvailability((pluginBlobURL) => { + self.dispatcher.broadcast('loadRTLTextPlugin', pluginBlobURL, rtlTextPlugin.errorCallback); + for (const id in self.sourceCaches) { + self.sourceCaches[id].reload(); // Should be a no-op if the plugin loads before any tiles load + } + }); + const stylesheetLoaded = (err, stylesheet) => { if (err) { this.fire('error', {error: err}); diff --git a/js/symbol/shaping.js b/js/symbol/shaping.js index fdbf9b3f505..e2446b0a0ed 100644 --- a/js/symbol/shaping.js +++ b/js/symbol/shaping.js @@ -2,7 +2,7 @@ const scriptDetection = require('../util/script_detection'); const verticalizePunctuation = require('../util/verticalize_punctuation'); - +const rtlTextPlugin = require('../source/rtl_text_plugin'); const WritingMode = { horizontal: 1, @@ -36,8 +36,6 @@ function Shaping(positionedGlyphs, text, top, bottom, left, right, writingMode) this.writingMode = writingMode; } -const newLine = 0x0a; - function breakLines(text, lineBreakPoints) { const lines = []; let start = 0; @@ -53,15 +51,18 @@ function breakLines(text, lineBreakPoints) { } function shapeText(text, glyphs, maxWidth, lineHeight, horizontalAlign, verticalAlign, justify, spacing, translate, verticalHeight, writingMode) { - text = text.trim(); - if (writingMode === WritingMode.vertical) text = verticalizePunctuation(text); + let logicalInput = text.trim(); + if (writingMode === WritingMode.vertical) logicalInput = verticalizePunctuation(logicalInput); const positionedGlyphs = []; - const shaping = new Shaping(positionedGlyphs, text, translate[1], translate[1], translate[0], translate[0], writingMode); + const shaping = new Shaping(positionedGlyphs, logicalInput, translate[1], translate[1], translate[0], translate[0], writingMode); - const lines = (writingMode === WritingMode.horizontal && maxWidth) ? - breakLines(text, determineLineBreaks(text, spacing, maxWidth, glyphs)) : - [text]; + let lines; + if (rtlTextPlugin.processBidirectionalText) { + lines = rtlTextPlugin.processBidirectionalText(logicalInput, determineLineBreaks(logicalInput, spacing, maxWidth, glyphs)); + } else { + lines = breakLines(logicalInput, determineLineBreaks(logicalInput, spacing, maxWidth, glyphs)); + } shapeLines(shaping, glyphs, lines, lineHeight, horizontalAlign, verticalAlign, justify, translate, writingMode, spacing, verticalHeight); @@ -81,6 +82,7 @@ const whitespace = { }; const breakable = { + 0x0a: true, // newline 0x20: true, // space 0x26: true, // ampersand 0x28: true, // left parenthesis @@ -99,8 +101,6 @@ const breakable = { // See https://github.com/mapbox/mapbox-gl-js/issues/3658 }; -breakable[newLine] = true; - function determineAverageLineWidth(logicalInput, spacing, maxWidth, glyphs) { let totalWidth = 0; diff --git a/js/ui/map.js b/js/ui/map.js index 1d38328a6f9..04ab4f27d6e 100755 --- a/js/ui/map.js +++ b/js/ui/map.js @@ -741,7 +741,7 @@ class Map extends Camera { * @param {Function} SourceType A {@link Source} constructor. * @param {Function} callback Called when the source type is ready or with an error argument if there is an error. */ - addSourceType (name, SourceType, callback) { + addSourceType(name, SourceType, callback) { return this.style.addSourceType(name, SourceType, callback); } diff --git a/package.json b/package.json index 85bc285fe3c..9e655382490 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "jsdom": "^9.4.2", "jsonlint": "^1.6.2", "lodash.template": "^4.4.0", + "mapbox-gl-rtl-text": "mapbox/mapbox-gl-rtl-text#497a92962075ea35eec22d4344d6310040551b7e", "minifyify": "^7.0.1", "npm-run-all": "^3.0.0", "nyc": "^8.3.0", diff --git a/plugins/src/mapbox-gl-rtl-text/v0.1.0/mapbox-gl-rtl-text.js b/plugins/src/mapbox-gl-rtl-text/v0.1.0/mapbox-gl-rtl-text.js new file mode 100644 index 00000000000..6de75bff30f --- /dev/null +++ b/plugins/src/mapbox-gl-rtl-text/v0.1.0/mapbox-gl-rtl-text.js @@ -0,0 +1,20 @@ +(function(){var Module={TOTAL_MEMORY:8*1024*1024,TOTAL_STACK:2*1024*1024,preRun:[],postRun:[],print:function(text){console.log(text)},printErr:function(text){text=Array.prototype.slice.call(arguments).join(" ");if(text.indexOf("pre-main prep time")>=0){return}console.error(text)}};var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if(!ret&&filename!=nodePath["resolve"](filename)){filename=path.join(__dirname,"..","src",filename);ret=nodeFS["readFileSync"](filename)}if(ret&&!binary)ret=ret.toString();return ret};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available (jsc?)"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.log(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?function(x){dump(x)}:function(x){}}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=function(title){document.title=title}}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=function(){}}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}var Runtime={setTempRet0:function(value){tempRet0=value},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(stackTop){STACKTOP=stackTop},getNativeTypeSize:function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));return bits/8}else{return 0}}}},getNativeFieldSize:function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){ptr+=4}}else{}return ptr},getAlignSize:function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)},dynCall:function(sig,ptr,args){if(args&&args.length){if(!args.splice)args=Array.prototype.slice.call(args);args.splice(0,0,ptr);return Module["dynCall_"+sig].apply(null,args)}else{return Module["dynCall_"+sig].call(null,ptr)}},functionPointers:[],addFunction:function(func){for(var i=0;i=TOTAL_MEMORY){var success=enlargeMemory();if(!success){DYNAMICTOP=ret;return 0}}return ret},alignMemory:function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret},makeBigInt:function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};var __THREW__=0;var ABORT=false;var EXITSTATUS=0;var undef=0;var tempValue,tempInt,tempBigInt,tempInt2,tempBigInt2,tempPair,tempBigIntI,tempBigIntR,tempBigIntS,tempBigIntP,tempBigIntD,tempDouble,tempFloat;var tempI64,tempI64b;var tempRet0,tempRet1,tempRet2,tempRet3,tempRet4,tempRet5,tempRet6,tempRet7,tempRet8,tempRet9;function assert_em(condition,text){if(!condition){abort("Assertion failed: "+text)}}var globalScope=this;function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}return func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret},stringToC:function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=Runtime.stackAlloc((str.length<<2)+1);writeStringToMemory(str,ret)}return ret}};var toC={string:JSfuncs["stringToC"],array:JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i >0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;stop=ret+(size&~3);for(;ptr >2]=0}stop=ret+size;while(ptr >0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i >0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}function UTF8ArrayToString(u8Array,idx){var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i =55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i =55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}function UTF16ToString(ptr){var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)return str;++i;str+=String.fromCharCode(codeUnit)}}Module["UTF16ToString"]=UTF16ToString;function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite >1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}Module["stringToUTF16"]=stringToUTF16;function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr){var i=0;var str="";while(1){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)return str;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i =55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i =55296&&codeUnit<=57343)++i;len+=4}return len}function demangle(func){var hasLibcxxabi=!!Module["___cxa_demangle"];if(hasLibcxxabi){try{var buf=_malloc(func.length);writeStringToMemory(func.substr(1),buf);var status=_malloc(4);var ret=Module["___cxa_demangle"](buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}}var i=3;var basicTypes={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."};var subs=[];var first=true;function dump(x){if(x)Module.print(x);Module.print(func);var pre="";for(var a=0;a"}else{ret=name}paramLoop:while(i 0){var c=func[i++];if(c in basicTypes){list.push(basicTypes[c])}else{switch(c){case"P":list.push(parse(true,1,true)[0]+"*");break;case"R":list.push(parse(true,1,true)[0]+"&");break;case"L":{i++;var end=func.indexOf("E",i);var size=end-i;list.push(func.substr(i,size));i+=size+2;break}case"A":{var size=parseInt(func.substr(i));i+=size.toString().length;if(func[i]!=="_")throw"?";i++;list.push(parse(true,1,true)[0]+" ["+size+"]");break}case"E":break paramLoop;default:ret+="?"+c;break paramLoop}}}if(!allowVoid&&list.length===1&&list[0]==="void")list=[];if(rawList){if(ret){list.push(ret+"?")}return list}else{return ret+flushList()}}var parsed=func;try{if(func=="Object._main"||func=="_main"){return"main()"}if(typeof func==="number")func=Pointer_stringify(func);if(func[0]!=="_")return func;if(func[1]!=="_")return func;if(func[2]!=="Z")return func;switch(func[3]){case"n":return"operator new()";case"d":return"operator delete()"}parsed=parse()}catch(e){parsed+="?"}if(parsed.indexOf("?")>=0&&!hasLibcxxabi){Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling")}return parsed}function demangleAll(text){return text.replace(/__Z[\w\d_]+/g,function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}var PAGE_SIZE=4096;function alignMemoryPage(x){if(x%4096>0){x+=4096-x%4096}return x}var HEAP;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var STATIC_BASE=0,STATICTOP=0,staticSealed=false;var STACK_BASE=0,STACKTOP=0,STACK_MAX=0;var DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){var OLD_TOTAL_MEMORY=TOTAL_MEMORY;var LIMIT=Math.pow(2,31);if(DYNAMICTOP>=LIMIT)return false;while(TOTAL_MEMORY<=DYNAMICTOP){if(TOTAL_MEMORY =LIMIT)return false;try{if(ArrayBuffer.transfer){buffer=ArrayBuffer.transfer(buffer,TOTAL_MEMORY)}else{var oldHEAP8=HEAP8;buffer=new ArrayBuffer(TOTAL_MEMORY)}}catch(e){return false}var success=_emscripten_replace_memory(buffer);if(!success)return false;Module["buffer"]=buffer;Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer);if(!ArrayBuffer.transfer){HEAP8.set(oldHEAP8)}return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=function(buffer){return buffer.byteLength}}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;var totalMemory=64*1024;while(totalMemory 0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Runtime.dynCall("v",func)}else{Runtime.dynCall("vi",func,[callback.arg])}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnExit(cb){__ATEXIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i 255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function writeStringToMemory(string,buffer,dontAddNull){var array=intArrayFromString(string,dontAddNull);var i=0;while(i >0]=chr;i=i+1}}function writeArrayToMemory(array,buffer){for(var i=0;i >0]=array[i]}}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i >0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function unSign(value,bits,ignore){if(value>=0){return value}return bits<=32?2*Math.abs(1< =half&&(bits<=32||value>half)){value=-2*half+value}return value}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32};Math.clz32=Math["clz32"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_min=Math.min;var Math_clz32=Math.clz32;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+69200;__ATINIT__.push();allocate([24,2,0,0,152,13,1,0,64,2,0,0,165,13,1,0,8,0,0,0,0,0,0,0,64,2,0,0,198,13,1,0,16,0,0,0,0,0,0,0,64,2,0,0,12,14,1,0,16,0,0,0,0,0,0,0,64,2,0,0,232,13,1,0,48,0,0,0,0,0,0,0,64,2,0,0,46,14,1,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,16,0,0,0,128,0,0,0,8,0,0,0,64,0,0,141,7,1,0,173,8,1,0,23,7,1,0,23,7,1,0,183,6,1,0,173,8,1,0,23,7,1,0,23,7,1,0,85,8,1,0,133,8,1,0,23,7,1,0,23,7,1,0,245,7,1,0,37,8,1,0,23,7,1,0,23,7,1,0,189,7,1,0,72,7,1,0,128,7,1,0,135,7,1,0,141,7,1,0,223,6,1,0,23,7,1,0,28,7,1,0,32,7,1,0,72,7,1,0,128,7,1,0,135,7,1,0,183,6,1,0,223,6,1,0,23,7,1,0,28,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,1,0,0,168,1,0,0,200,10,1,0,104,13,1,0,182,170,0,0,6,198,0,0,0,0,0,0,168,13,0,0,140,31,0,0,160,1,40,14,0,0,0,0,0,0,0,0,0,0,17,0,48,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,16,0,0,0,240,93,0,0,120,90,0,0,26,0,0,0,32,6,0,0,192,8,0,0,192,10,1,0,240,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,182,2,88,0,171,0,32,0,187,0,0,0,21,34,160,2,67,34,32,1,152,34,128,2,166,34,192,2,168,34,0,3,169,34,224,2,171,34,32,3,205,34,96,0,242,34,224,1,243,34,0,2,244,34,32,2,246,34,64,2,247,34,96,2,250,34,64,1,251,34,96,1,252,34,128,1,253,34,160,1,254,34,192,1,184,41,128,0,245,41,64,0,222,42,160,0,227,42,224,0,228,42,192,0,229,42,0,1,0,0,0,0,32,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,113,6,113,6,123,6,123,6,123,6,123,6,126,6,126,6,126,6,126,6,0,0,0,0,0,0,0,0,122,6,122,6,122,6,122,6,0,0,0,0,0,0,0,0,121,6,121,6,121,6,121,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,6,134,6,134,6,134,6,0,0,0,0,0,0,0,0,141,6,141,6,140,6,140,6,142,6,142,6,136,6,136,6,152,6,152,6,145,6,145,6,169,6,169,6,169,6,169,6,175,6,175,6,175,6,175,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,186,6,186,6,187,6,187,6,187,6,187,6,192,6,192,6,193,6,193,6,193,6,193,6,190,6,190,6,190,6,190,6,210,6,210,6,211,6,211,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,6,199,6,198,6,198,6,200,6,200,6,0,0,203,6,203,6,197,6,197,6,201,6,201,6,208,6,208,6,208,6,208,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,204,6,204,6,204,6,204,6,75,6,75,6,76,6,76,6,77,6,77,6,78,6,78,6,79,6,79,6,80,6,80,6,81,6,81,6,82,6,82,6,33,6,34,6,34,6,35,6,35,6,36,6,36,6,37,6,37,6,38,6,38,6,38,6,38,6,39,6,39,6,40,6,40,6,40,6,40,6,41,6,41,6,42,6,42,6,42,6,42,6,43,6,43,6,43,6,43,6,44,6,44,6,44,6,44,6,45,6,45,6,45,6,45,6,46,6,46,6,46,6,46,6,47,6,47,6,48,6,48,6,49,6,49,6,50,6,50,6,51,6,51,6,51,6,51,6,52,6,52,6,52,6,52,6,53,6,53,6,53,6,53,6,54,6,54,6,54,6,54,6,55,6,55,6,55,6,55,6,56,6,56,6,56,6,56,6,57,6,57,6,57,6,57,6,58,6,58,6,58,6,58,6,65,6,65,6,65,6,65,6,66,6,66,6,66,6,66,6,67,6,67,6,67,6,67,6,68,6,68,6,68,6,68,6,69,6,69,6,69,6,69,6,70,6,70,6,70,6,70,6,71,6,71,6,71,6,71,6,72,6,72,6,73,6,73,6,74,6,74,6,74,6,74,6,92,6,92,6,93,6,93,6,94,6,94,6,95,6,95,6,33,17,33,19,1,21,33,23,3,25,33,29,3,31,1,35,3,37,3,41,3,45,3,49,3,53,1,57,1,59,1,61,1,63,3,65,3,69,3,73,3,77,3,81,3,85,3,89,3,93,0,0,0,0,0,0,0,0,0,0,3,0,3,97,3,101,3,105,19,109,3,113,3,117,3,121,1,125,1,127,3,129,4,1,132,1,132,1,132,1,132,1,132,1,68,3,4,1,4,7,4,8,4,8,4,1,0,0,0,0,0,0,0,0,0,0,1,133,1,135,1,137,1,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,9,0,33,0,33,0,0,0,33,0,1,0,1,0,3,0,11,22,11,14,11,2,3,0,3,0,11,6,3,0,3,0,3,0,3,0,3,0,3,0,3,0,11,42,3,0,9,56,1,0,1,0,1,0,9,52,9,50,9,54,1,0,1,0,9,60,1,0,1,0,1,0,1,0,1,0,1,0,9,58,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,11,62,3,0,3,0,3,0,3,0,3,0,11,66,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,9,78,11,80,3,0,3,0,11,90,3,0,9,84,11,86,1,0,1,0,1,0,9,144,9,137,9,135,9,139,9,146,1,0,9,142,11,172,1,0,3,0,3,0,11,148,3,0,9,94,9,96,78,4,86,4,94,4,102,4,126,4,134,4,142,4,150,4,158,4,166,4,172,4,180,4,188,4,196,4,204,4,212,4,218,4,226,4,234,4,242,4,245,4,253,4,5,5,13,5,21,5,29,5,25,5,33,5,41,5,49,5,54,5,62,5,70,5,78,5,82,5,90,5,98,5,106,5,114,5,122,5,118,5,126,5,131,5,139,5,145,5,153,5,161,5,169,5,177,5,185,5,193,5,201,5,206,5,214,5,217,5,225,5,233,5,241,5,247,5,255,5,254,5,6,6,14,6,22,6,38,6,30,6,46,6,110,4,110,4,62,6,70,6,54,6,86,6,88,6,96,6,78,6,112,6,118,6,126,6,104,6,142,6,148,6,156,6,134,6,172,6,178,6,186,6,164,6,202,6,208,6,216,6,194,6,232,6,240,6,248,6,224,6,8,7,14,7,22,7,0,7,38,7,44,7,52,7,30,7,68,7,73,7,81,7,60,7,97,7,104,7,112,7,89,7,250,5,120,7,128,7,110,4,136,7,144,7,152,7,110,4,160,7,168,7,176,7,181,7,189,7,196,7,204,7,110,4,185,5,212,7,220,7,228,7,236,7,70,5,252,7,244,7,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,2,8,185,5,10,8,0,8,18,8,185,5,14,8,185,5,24,8,32,8,40,8,70,5,70,5,48,8,56,8,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,61,8,69,8,185,5,185,5,77,8,85,8,93,8,101,8,109,8,185,5,117,8,125,8,133,8,149,8,185,5,157,8,159,8,167,8,141,8,185,5,170,8,190,8,178,8,186,8,198,8,185,5,206,8,212,8,220,8,228,8,185,5,244,8,252,8,4,9,236,8,110,4,110,4,20,9,23,9,31,9,12,9,47,9,39,9,185,5,54,9,185,5,69,9,62,9,77,9,85,9,110,4,93,9,101,9,238,4,109,9,112,9,118,9,125,9,112,9,21,5,133,9,158,4,158,4,158,4,158,4,141,9,158,4,158,4,158,4,157,9,165,9,173,9,181,9,189,9,193,9,201,9,149,9,225,9,233,9,209,9,217,9,241,9,249,9,1,10,9,10,33,10,17,10,25,10,41,10,49,10,64,10,69,10,56,10,77,10,77,10,77,10,77,10,77,10,77,10,77,10,77,10,85,10,93,10,220,8,96,10,104,10,111,10,116,10,124,10,220,8,130,10,129,10,146,10,149,10,220,8,220,8,138,10,220,8,220,8,220,8,220,8,220,8,164,10,172,10,156,10,220,8,220,8,220,8,177,10,220,8,220,8,220,8,220,8,220,8,220,8,220,8,183,10,191,10,220,8,199,10,206,10,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,77,10,77,10,77,10,77,10,214,10,77,10,221,10,228,10,77,10,77,10,77,10,77,10,77,10,77,10,77,10,77,10,220,8,236,10,243,10,247,10,253,10,3,11,11,11,16,11,70,5,32,11,24,11,40,11,158,4,158,4,158,4,48,11,238,4,56,11,185,5,62,11,78,11,70,11,70,11,21,5,86,11,94,11,102,11,110,4,110,11,220,8,220,8,117,11,220,8,220,8,220,8,220,8,220,8,220,8,125,11,131,11,147,11,139,11,250,5,185,5,155,11,56,8,185,5,163,11,171,11,176,11,185,5,185,5,181,11,165,5,220,8,188,11,196,11,204,11,210,11,220,8,204,11,218,11,220,8,196,11,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,226,11,185,5,185,5,185,5,234,11,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,240,11,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,245,11,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,170,8,220,8,220,8,253,11,185,5,0,12,185,5,8,12,14,12,22,12,30,12,35,12,185,5,185,5,39,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,46,12,185,5,53,12,59,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,67,12,185,5,185,5,185,5,75,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,77,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,84,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,91,12,185,5,185,5,185,5,98,12,106,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,111,12,185,5,185,5,119,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,123,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,126,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,129,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,135,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,143,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,148,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,153,12,185,5,185,5,185,5,158,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,166,12,173,12,177,12,185,5,185,5,185,5,184,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,170,8,110,4,198,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,190,12,220,8,206,12,77,9,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,211,12,219,12,158,4,235,12,227,12,185,5,185,5,243,12,251,12,11,13,158,4,16,13,24,13,30,13,110,4,3,13,38,13,46,13,185,5,54,13,70,13,73,13,62,13,81,13,14,6,89,13,96,13,104,13,86,6,120,13,112,13,128,13,185,5,136,13,144,13,152,13,185,5,160,13,168,13,176,13,184,13,192,13,196,13,204,13,238,4,238,4,185,5,212,13,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,220,13,227,13,158,8,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,185,5,185,5,185,5,251,13,185,5,185,12,2,14,7,14,185,5,185,5,185,5,15,14,185,5,185,5,169,8,110,4,37,14,21,14,29,14,185,5,185,5,45,14,53,14,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,58,14,66,14,185,5,70,14,185,5,76,14,80,14,88,14,96,14,103,14,111,14,185,5,185,5,185,5,117,14,141,14,94,4,149,14,157,14,162,14,190,8,125,14,133,14,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,235,13,184,17,184,17,248,17,56,18,120,18,176,18,240,18,48,19,104,19,168,19,212,19,20,20,84,20,100,20,164,20,216,20,24,21,72,21,136,21,200,21,216,21,12,22,68,22,132,22,196,22,4,23,56,23,100,23,164,23,220,23,248,23,56,24,128,10,192,10,0,11,59,11,123,11,64,10,187,11,64,10,221,11,64,10,64,10,64,10,64,10,29,12,219,1,219,1,93,12,157,12,64,10,64,10,64,10,64,10,221,12,253,12,64,10,64,10,61,13,125,13,189,13,253,13,61,14,125,14,189,14,244,14,219,1,219,1,24,15,76,15,219,1,116,15,219,1,219,1,219,1,219,1,161,15,219,1,219,1,219,1,219,1,219,1,219,1,219,1,181,15,219,1,237,15,45,16,219,1,56,16,64,10,64,10,64,10,64,10,64,10,120,16,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,184,16,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,64,10,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,248,16,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,248,16,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,170,14,177,14,185,14,110,4,185,5,185,5,185,5,165,5,201,14,193,14,224,14,209,14,216,14,232,14,106,11,240,14,110,4,110,4,110,4,110,4,104,13,185,5,248,14,0,15,185,5,8,15,16,15,20,15,28,15,185,5,36,15,110,4,70,5,80,5,44,15,185,5,48,15,56,15,72,15,64,15,185,5,80,15,185,5,87,15,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,78,11,170,8,76,14,110,4,110,4,110,4,110,4,103,15,95,15,106,15,114,15,190,8,122,15,110,4,130,15,138,15,146,15,110,4,110,4,185,5,162,15,170,15,154,15,186,15,193,15,178,15,201,15,209,15,110,4,225,15,217,15,185,5,228,15,236,15,244,15,252,15,4,16,110,4,110,4,185,5,185,5,12,16,110,4,70,5,20,16,238,4,28,16,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,36,16,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,52,16,239,5,60,16,44,16,47,9,68,16,76,16,82,16,106,16,90,16,98,16,110,16,47,9,126,16,118,16,134,16,150,16,142,16,110,4,110,4,157,16,165,16,17,6,173,16,189,16,178,6,197,16,181,16,110,4,110,4,110,4,110,4,185,5,205,16,213,16,110,4,185,5,221,16,229,16,110,4,110,4,110,4,110,4,110,4,185,5,237,16,245,16,110,4,185,5,253,16,5,17,13,17,185,5,29,17,21,17,110,4,45,17,37,17,110,4,110,4,110,4,110,4,110,4,110,4,70,5,238,4,53,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,61,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,83,17,88,17,69,17,77,17,104,17,96,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,169,8,110,4,110,4,110,4,120,17,128,17,136,17,112,17,185,5,185,5,185,5,185,5,185,5,185,5,144,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,152,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,154,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,61,17,190,8,162,17,110,4,110,4,66,14,170,17,185,5,186,17,194,17,202,17,178,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,210,17,215,17,223,17,110,4,110,4,231,17,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,239,17,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,247,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,255,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,7,18,12,18,20,18,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,220,8,220,8,220,8,220,8,220,8,220,8,220,8,125,11,220,8,28,18,220,8,35,18,43,18,49,18,220,8,55,18,220,8,220,8,63,18,110,4,110,4,110,4,110,4,110,4,220,8,220,8,126,10,71,18,110,4,110,4,110,4,110,4,87,18,94,18,99,18,105,18,113,18,121,18,129,18,91,18,137,18,145,18,153,18,158,18,112,18,87,18,94,18,90,18,105,18,166,18,88,18,169,18,91,18,177,18,185,18,193,18,200,18,180,18,188,18,196,18,203,18,183,18,211,18,79,18,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,21,5,227,18,21,5,234,18,241,18,219,18,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,248,18,0,19,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,185,5,185,5,8,19,110,4,70,5,24,19,16,19,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,40,19,48,19,56,19,64,19,72,19,80,19,110,4,32,19,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,220,8,88,19,220,8,220,8,117,11,93,19,97,19,125,11,105,19,110,19,220,8,88,19,220,8,54,18,110,4,118,19,126,19,130,19,138,19,110,4,110,4,110,4,110,4,110,4,220,8,220,8,220,8,220,8,220,8,220,8,220,8,146,19,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,220,8,127,10,154,19,220,8,220,8,220,8,117,11,220,8,220,8,162,19,110,4,88,19,220,8,170,19,220,8,178,19,127,11,110,4,110,4,186,19,194,19,202,19,110,4,126,11,110,4,232,14,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,210,19,185,5,185,5,217,19,185,5,185,5,185,5,225,19,185,5,233,19,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,95,12,185,5,185,5,241,19,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,249,19,1,20,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,158,12,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,8,20,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,15,20,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,22,20,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE); + +allocate([185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,78,11,110,4,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,26,20,185,5,185,5,185,5,185,5,185,5,185,5,48,15,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,255,17,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,185,5,185,5,185,5,185,5,34,20,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,185,5,48,15,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,50,20,42,20,42,20,42,20,110,4,110,4,110,4,110,4,21,5,21,5,21,5,21,5,21,5,21,5,21,5,58,20,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,110,4,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,243,13,66,20,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,12,0,23,0,23,0,23,0,25,0,23,0,23,0,23,0,20,0,21,0,23,0,24,0,23,0,19,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,24,0,24,0,24,0,23,0,23,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,20,0,23,0,21,0,26,0,22,0,26,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,20,0,24,0,21,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,12,0,23,0,25,0,25,0,25,0,25,0,27,0,23,0,26,0,27,0,5,0,28,0,24,0,16,0,27,0,26,0,27,0,24,0,75,3,139,3,26,0,2,0,23,0,23,0,26,0,11,3,5,0,29,0,203,52,75,52,203,60,23,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,24,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,2,0,5,0,1,0,2,0,2,0,2,0,5,0,5,0,5,0,5,0,1,0,3,0,2,0,1,0,3,0,2,0,1,0,3,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,1,0,3,0,2,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,5,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,26,0,26,0,26,0,26,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,4,0,4,0,4,0,4,0,4,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,4,0,26,0,4,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,1,0,2,0,1,0,2,0,4,0,26,0,1,0,2,0,0,0,0,0,4,0,2,0,2,0,2,0,23,0,1,0,0,0,0,0,0,0,0,0,26,0,26,0,1,0,23,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,24,0,1,0,2,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,27,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,4,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,23,0,19,0,0,0,0,0,27,0,27,0,25,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,19,0,6,0,23,0,6,0,6,0,23,0,6,0,6,0,23,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,16,0,16,0,16,0,16,0,24,0,24,0,24,0,23,0,23,0,25,0,23,0,23,0,27,0,27,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,16,0,0,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,23,0,23,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,16,0,27,0,6,0,6,0,6,0,6,0,6,0,6,0,4,0,4,0,6,0,6,0,27,0,6,0,6,0,6,0,6,0,5,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,27,0,27,0,5,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,16,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,4,0,4,0,27,0,23,0,23,0,23,0,4,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,4,0,6,0,6,0,6,0,4,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,4,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,0,0,0,0,23,0,0,0,6,0,6,0,16,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,6,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,8,0,8,0,6,0,8,0,8,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,25,0,25,0,203,55,203,53,203,63,203,52,203,60,75,9,27,0,25,0,0,0,0,0,0,0,0,0,5,0,6,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,0,0,0,0,8,0,8,0,0,0,0,0,8,0,8,0,6,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,6,0,6,0,5,0,5,0,5,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,0,0,0,0,6,0,0,0,8,0,8,0,8,0,6,0,6,0,0,0,0,0,0,0,0,0,6,0,6,0,0,0,0,0,6,0,6,0,6,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,8,0,0,0,8,0,8,0,6,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,27,0,5,0,203,52,75,52,203,60,203,55,203,53,203,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,5,0,8,0,6,0,8,0,6,0,6,0,6,0,6,0,0,0,0,0,8,0,8,0,0,0,0,0,8,0,8,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,8,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,203,7,75,30,75,120,27,0,27,0,27,0,27,0,27,0,27,0,25,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,8,0,8,0,6,0,8,0,8,0,0,0,0,0,0,0,8,0,8,0,8,0,0,0,8,0,8,0,8,0,6,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,5,139,5,203,5,11,6,139,5,203,5,11,6,27,0,6,0,8,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,6,0,6,0,6,0,8,0,8,0,8,0,8,0,0,0,6,0,6,0,6,0,0,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,6,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,5,0,8,0,6,0,8,0,8,0,8,0,8,0,8,0,0,0,6,0,8,0,8,0,0,0,8,0,8,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,5,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,203,7,75,30,75,120,203,52,75,52,203,60,203,55,203,53,203,63,27,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,6,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,0,0,8,0,8,0,8,0,0,0,8,0,8,0,8,0,6,0,5,0,27,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,8,0,11,204,11,202,75,203,11,201,75,54,75,201,11,53,5,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,8,0,8,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,6,0,6,0,6,0,0,0,6,0,0,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,25,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,4,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,27,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,27,0,23,0,27,0,27,0,27,0,6,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,75,52,75,60,75,68,75,76,75,84,75,92,75,100,75,108,75,116,75,44,27,0,6,0,27,0,6,0,27,0,6,0,20,0,21,0,20,0,21,0,8,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,23,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,23,0,23,0,23,0,23,0,23,0,27,0,27,0,27,0,27,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,8,0,8,0,6,0,6,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,23,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0,8,0,8,0,8,0,5,0,5,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,8,0,6,0,6,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,5,0,8,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,8,0,8,0,8,0,6,0,27,0,27,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,4,0,5,0,5,0,5,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,139,120,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,19,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,12,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,20,0,21,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,138,9,202,9,10,10,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,23,0,23,0,4,0,23,0,23,0,23,0,25,0,5,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,75,5,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,23,0,23,0,23,0,19,0,23,0,23,0,23,0,23,0,6,0,6,0,6,0,16,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,8,0,8,0,8,0,8,0,6,0,6,0,8,0,8,0,8,0,0,0,0,0,0,0,0,0,8,0,8,0,6,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,11,3,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,8,0,8,0,6,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,4,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,0,0,5,0,5,0,5,0,5,0,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,8,0,6,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,6,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,23,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,8,0,8,0,8,0,8,0,8,0,6,0,8,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,23,0,23,0,23,0,23,0,5,0,8,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,6,0,8,0,6,0,6,0,6,0,5,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,6,0,6,0,8,0,8,0,8,0,6,0,8,0,6,0,6,0,6,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,5,0,5,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,6,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,4,0,4,0,4,0,4,0,23,0,23,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,23,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,8,0,8,0,6,0,5,0,5,0,0,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4,0,4,0,4,0,4,0,4,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,26,0,26,0,26,0,0,0,0,0,2,0,2,0,2,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,26,0,26,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,2,0,2,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,26,0,2,0,26,0,26,0,26,0,2,0,2,0,2,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,3,0,26,0,26,0,26,0,2,0,2,0,2,0,2,0,0,0,0,0,2,0,2,0,1,0,1,0,1,0,1,0,0,0,26,0,26,0,26,0,22,0,23,0,23,0,23,0,24,0,20,0,21,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,24,0,23,0,22,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,12,0,16,0,16,0,16,0,16,0,16,0,0,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,203,2,4,0,0,0,0,0,203,3,11,4,75,4,139,4,203,4,11,5,24,0,24,0,24,0,20,0,21,0,4,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,16,0,16,0,16,0,16,0,16,0,19,0,19,0,19,0,19,0,19,0,19,0,23,0,23,0,28,0,29,0,20,0,28,0,28,0,29,0,20,0,28,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,13,0,14,0,16,0,16,0,16,0,16,0,16,0,12,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,28,0,29,0,23,0,23,0,23,0,23,0,22,0,203,2,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,24,0,24,0,24,0,20,0,21,0,0,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,0,0,0,0,0,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,7,0,7,0,7,0,7,0,6,0,7,0,7,0,7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,1,0,27,0,1,0,27,0,1,0,27,0,1,0,1,0,1,0,1,0,27,0,2,0,1,0,1,0,1,0,1,0,2,0,5,0,5,0,5,0,5,0,2,0,27,0,27,0,2,0,2,0,1,0,1,0,24,0,24,0,24,0,24,0,24,0,1,0,2,0,2,0,2,0,2,0,27,0,24,0,27,0,27,0,2,0,27,0,139,53,11,54,75,54,139,52,139,56,11,53,11,57,11,61,11,65,75,53,75,69,203,53,203,61,203,69,203,77,139,5,27,0,27,0,1,0,27,0,27,0,27,0,27,0,1,0,27,0,27,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,1,0,1,0,2,0,27,0,1,0,27,0,27,0,24,0,1,0,1,0,1,0,1,0,1,0,27,0,27,0,138,5,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,202,7,10,8,74,8,202,17,74,30,10,152,74,120,138,5,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,202,7,10,8,74,8,202,17,74,30,10,152,74,120,74,120,74,152,138,120,1,0,2,0,202,6,202,17,138,152,202,120,75,5,27,0,27,0,0,0,0,0,0,0,0,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,24,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,27,0,27,0,24,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,20,0,21,0,20,0,21,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,20,0,21,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,203,2,11,8,75,8,139,8,203,8,11,9,75,9,139,9,203,9,11,10,75,10,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,203,2,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,11,8,75,8,139,8,203,8,11,9,75,9,139,9,203,9,11,10,75,10,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,11,8,75,8,139,8,203,8,11,9,75,9,139,9,203,9,11,10,75,10,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,20,0,21,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,20,0,21,0,20,0,21,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,20,0,21,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,24,0,24,0,24,0,24,0,24,0,24,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,1,0,1,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,4,0,4,0,1,0,1,0,1,0,2,0,1,0,2,0,2,0,27,0,27,0,27,0,27,0,27,0,27,0,1,0,2,0,1,0,2,0,6,0,6,0,6,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,75,52,23,0,23,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,28,0,29,0,28,0,29,0,23,0,23,0,23,0,28,0,29,0,23,0,28,0,29,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,19,0,23,0,23,0,19,0,23,0,28,0,29,0,23,0,23,0,28,0,29,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,23,0,23,0,23,0,23,0,23,0,4,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,19,0,19,0,23,0,23,0,23,0,23,0,19,0,23,0,20,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,27,0,138,5,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,6,0,6,0,6,0,6,0,8,0,8,0,19,0,4,0,4,0,4,0,4,0,4,0,27,0,27,0,202,7,74,10,202,12,4,0,5,0,23,0,27,0,27,0,12,0,23,0,23,0,23,0,27,0,4,0,5,0,74,5,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,27,0,27,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,19,0,20,0,21,0,21,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,6,0,26,0,26,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,4,0,4,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,27,0,27,0,139,5,203,5,11,6,75,6,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,27,0,139,10,203,10,11,11,75,11,139,11,203,11,11,12,75,12,139,12,203,12,11,13,75,13,139,13,203,13,11,14,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,75,14,139,14,203,14,11,15,75,15,139,15,203,15,11,16,75,16,139,16,203,16,11,17,75,17,139,17,203,17,5,0,5,0,5,0,5,0,5,0,133,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,5,5,0,5,0,5,7,5,0,5,0,5,0,133,120,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,6,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,121,197,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,30,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,121,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,122,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,5,5,0,69,7,5,0,197,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,7,5,0,69,120,69,10,197,12,5,0,5,0,5,0,5,0,5,0,5,0,69,15,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,6,5,6,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,7,69,10,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,5,197,5,5,6,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,30,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,6,5,0,5,0,5,0,5,0,5,0,69,30,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,4,0,4,0,6,0,6,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,5,0,6,0,7,0,7,0,7,0,23,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,138,5,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,74,5,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,4,0,4,0,2,0,5,0,5,0,5,0,5,0,5,0,26,0,26,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,4,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,4,0,26,0,26,0,1,0,2,0,1,0,2,0,5,0,1,0,2,0,1,0,2,0,2,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,6,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,6,0,6,0,8,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,203,52,75,52,203,60,203,55,203,53,203,63,27,0,27,0,25,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,5,0,23,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,8,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,4,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,8,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,8,0,8,0,8,0,5,0,5,0,5,0,5,0,5,0,6,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,6,0,8,0,8,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,23,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,27,0,5,0,8,0,6,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,5,0,6,0,6,0,6,0,5,0,5,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,5,0,6,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,4,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,6,0,6,0,8,0,8,0,23,0,23,0,5,0,4,0,4,0,8,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,26,0,4,0,4,0,4,0,4,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,5,0,5,0,5,0,8,0,8,0,6,0,8,0,8,0,6,0,8,0,8,0,23,0,8,0,6,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480); + +allocate([17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,7,5,0,5,0,5,0,5,0,197,5,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,6,5,0,197,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,24,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,5,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,21,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,25,0,27,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,20,0,21,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,19,0,19,0,22,0,22,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,20,0,21,0,23,0,23,0,20,0,21,0,23,0,23,0,23,0,23,0,22,0,22,0,22,0,23,0,23,0,23,0,0,0,23,0,23,0,23,0,23,0,19,0,20,0,21,0,20,0,21,0,20,0,21,0,23,0,23,0,23,0,24,0,19,0,24,0,24,0,24,0,0,0,23,0,25,0,23,0,23,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,16,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,0,0,0,0,0,0,25,0,25,0,24,0,26,0,27,0,25,0,25,0,0,0,27,0,24,0,24,0,24,0,24,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,16,0,27,0,27,0,0,0,0,0,0,0,23,0,23,0,23,0,25,0,23,0,23,0,23,0,20,0,21,0,23,0,24,0,23,0,19,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,24,0,24,0,24,0,23,0,26,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,20,0,24,0,21,0,24,0,20,0,21,0,23,0,20,0,21,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,4,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,11,176,11,184,75,120,75,128,75,136,75,144,75,152,75,160,75,168,75,176,75,184,139,120,139,128,139,136,139,144,139,152,139,160,139,168,139,176,139,184,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,11,128,11,136,11,144,11,152,11,160,11,168,202,7,202,7,202,7,202,7,202,7,202,12,202,17,202,17,202,17,202,17,74,30,10,136,10,152,10,152,10,152,10,152,10,152,74,120,74,152,138,6,202,17,75,52,75,52,139,56,203,60,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,75,5,203,52,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,202,52,74,52,138,5,138,6,202,17,10,152,74,152,138,152,138,6,202,7,202,17,74,30,10,152,74,120,74,152,138,6,202,7,202,17,74,30,10,152,74,120,138,120,138,152,202,7,138,5,138,5,138,5,202,5,202,5,202,5,202,5,138,6,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,0,0,0,0,0,0,0,0,139,5,139,6,203,7,203,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,202,27,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,10,184,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,23,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,138,5,202,5,202,7,74,10,74,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,23,0,139,5,203,5,11,6,203,7,75,10,75,30,75,120,139,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,27,0,139,5,203,5,11,6,75,6,139,6,203,7,75,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,5,203,5,11,6,75,6,75,6,139,6,203,7,75,10,75,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,139,5,139,6,203,7,75,10,75,30,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,139,5,203,7,75,10,75,30,203,5,11,6,0,0,0,0,0,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,23,0,75,160,75,168,75,176,75,184,139,120,139,128,139,136,139,144,139,152,139,160,139,168,139,176,139,184,203,120,203,128,203,136,203,144,203,152,203,160,203,168,203,176,203,184,203,54,75,53,203,52,139,52,203,70,75,52,203,78,139,56,203,60,75,69,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,203,94,75,52,5,0,5,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,0,0,0,0,75,30,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,75,120,75,128,75,136,75,144,75,152,11,3,75,3,139,3,203,3,203,7,75,10,75,30,75,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,6,0,6,0,6,0,0,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,139,5,203,17,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,139,5,203,7,75,10,5,0,5,0,5,0,5,0,5,0,6,0,6,0,0,0,0,0,0,0,0,0,139,5,139,6,203,7,75,10,75,30,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,27,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,139,5,203,5,11,6,75,6,203,7,75,10,75,30,75,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,139,5,203,5,11,6,75,6,203,7,75,10,75,30,75,120,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,5,203,5,11,6,75,6,203,7,75,10,75,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,5,139,6,203,7,203,17,75,30,75,120,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,75,52,203,52,139,52,139,56,0,0,75,20,203,22,75,25,203,27,75,30,75,120,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,8,0,6,0,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,203,7,75,10,203,12,75,15,203,17,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,6,0,23,0,23,0,16,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,23,0,23,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,23,0,23,0,6,0,6,0,6,0,23,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,5,0,23,0,5,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,0,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,75,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,8,0,8,0,6,0,8,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,6,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,8,0,8,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,8,0,8,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,8,0,8,0,8,0,0,0,0,0,8,0,8,0,0,0,0,0,8,0,8,0,8,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,6,0,6,0,8,0,6,0,5,0,5,0,5,0,5,0,23,0,23,0,23,0,23,0,23,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,23,0,0,0,23,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,8,0,8,0,8,0,8,0,6,0,6,0,8,0,6,0,6,0,5,0,5,0,23,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,0,0,0,0,8,0,8,0,8,0,8,0,6,0,6,0,8,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,5,0,5,0,5,0,5,0,6,0,6,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,8,0,6,0,8,0,6,0,6,0,23,0,23,0,23,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,0,6,0,8,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,203,7,75,10,23,0,23,0,23,0,27,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,6,0,6,0,6,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,75,30,0,0,0,0,0,0,23,0,23,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,8,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,8,0,6,0,6,0,8,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,202,52,74,53,202,52,202,52,74,52,138,52,138,56,74,15,202,17,74,6,138,6,202,6,10,7,74,7,138,7,0,0,23,0,23,0,23,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,10,6,74,6,138,6,202,6,10,7,74,7,138,7,74,6,138,6,202,6,10,7,74,7,138,7,138,5,202,5,10,6,74,6,138,6,202,6,10,7,74,7,138,7,138,5,202,5,10,6,74,6,138,6,202,5,10,6,10,6,74,6,138,6,202,6,10,7,74,7,138,7,138,5,202,5,10,6,10,6,74,6,138,6,138,192,138,193,138,5,202,5,10,6,10,6,74,6,138,6,10,6,10,6,74,6,74,6,74,6,74,6,202,6,10,7,10,7,10,7,74,7,74,7,138,7,138,7,138,7,138,7,202,5,10,6,74,6,138,6,202,6,138,5,202,5,10,6,74,6,74,6,138,6,138,6,202,5,10,6,138,5,202,5,138,52,138,56,74,69,138,52,138,56,202,53,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,23,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,23,0,23,0,23,0,23,0,23,0,27,0,27,0,27,0,27,0,4,0,4,0,4,0,4,0,23,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,203,7,75,30,139,120,11,121,139,121,11,122,139,122,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,27,0,6,0,6,0,23,0,16,0,16,0,16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,8,0,8,0,6,0,6,0,6,0,27,0,27,0,27,0,8,0,8,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,27,0,27,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,6,0,6,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,6,0,6,0,6,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,203,7,75,10,203,12,75,15,203,17,75,20,203,22,75,25,203,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,2,137,2,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,0,0,2,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,24,0,2,0,2,0,2,0,2,0,2,0,2,0,1,0,2,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,27,0,27,0,27,0,27,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,6,0,27,0,27,0,23,0,23,0,23,0,23,0,23],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);allocate([6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,6,0,6,0,0,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,139,5,203,5,11,6,75,6,139,6,203,6,11,7,75,7,139,7,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,73,0,137,0,201,0,9,1,73,1,137,1,201,1,9,2,73,2,137,2,0,0,0,0,0,0,0,0,23,0,23,0,1,0,1,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,0,5,0,0,0,5,0,0,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,0,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,203,2,203,2,11,3,75,3,139,3,203,3,11,4,75,4,139,4,203,4,11,5,75,5,75,5,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,26,0,26,0,26,0,26,0,26,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,0,0,0,0,0,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,0,0,5,0,5,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,12,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,15,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,15,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,197,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,69,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,133,7,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,106,3,114,3,122,3,130,3,154,3,162,3,170,3,178,3,138,3,146,3,138,3,146,3,138,3,146,3,138,3,146,3,138,3,146,3,138,3,146,3,184,3,192,3,200,3,208,3,216,3,224,3,220,3,228,3,236,3,244,3,239,3,247,3,138,3,146,3,138,3,146,3,255,3,7,4,138,3,146,3,138,3,146,3,138,3,146,3,13,4,21,4,29,4,37,4,45,4,53,4,61,4,69,4,75,4,83,4,91,4,99,4,107,4,115,4,121,4,129,4,137,4,145,4,153,4,161,4,173,4,169,4,181,4,31,4,31,4,197,4,205,4,189,4,213,4,215,4,223,4,231,4,239,4,240,4,248,4,0,5,8,5,240,4,16,5,21,5,8,5,240,4,29,5,37,5,239,4,42,5,50,5,231,4,55,5,138,3,63,5,67,5,75,5,76,5,84,5,92,5,239,4,100,5,108,5,231,4,239,4,138,3,248,4,231,4,138,3,138,3,114,5,138,3,138,3,120,5,128,5,138,3,138,3,132,5,140,5,138,3,144,5,151,5,138,3,159,5,167,5,174,5,54,5,138,3,138,3,182,5,190,5,198,5,206,5,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,214,5,138,3,222,5,138,3,138,3,138,3,230,5,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,238,5,138,3,138,3,138,3,246,5,246,5,252,4,252,4,138,3,252,5,4,6,222,5,26,6,12,6,12,6,34,6,41,6,18,6,138,3,138,3,138,3,49,6,57,6,138,3,138,3,138,3,59,6,67,6,75,6,138,3,82,6,90,6,138,3,98,6,138,3,138,3,106,6,109,6,55,5,117,6,1,4,125,6,138,3,132,6,138,3,137,6,138,3,138,3,138,3,138,3,143,6,151,6,138,3,138,3,138,3,138,3,138,3,138,3,216,3,159,6,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,167,6,175,6,179,6,203,6,209,6,187,6,195,6,217,6,225,6,229,6,177,5,237,6,245,6,253,6,138,3,5,7,67,6,67,6,67,6,21,7,29,7,37,7,45,7,50,7,58,7,66,7,13,7,74,7,82,7,138,3,88,7,95,7,67,6,67,6,101,7,67,6,98,5,106,7,67,6,114,7,138,3,138,3,64,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,122,7,67,6,67,6,67,6,67,6,67,6,128,7,67,6,67,6,136,7,144,7,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,67,6,67,6,67,6,67,6,160,7,167,7,175,7,152,7,191,7,199,7,207,7,214,7,222,7,230,7,237,7,183,7,67,6,67,6,67,6,245,7,251,7,1,8,9,8,14,8,138,3,138,3,138,3,138,3,138,3,138,3,138,3,21,8,138,3,138,3,138,3,29,8,138,3,138,3,138,3,216,3,37,8,45,8,52,8,138,3,60,8,67,6,67,6,70,6,67,6,67,6,67,6,67,6,67,6,67,6,67,8,73,8,89,8,81,8,138,3,138,3,97,8,230,5,138,3,177,3,138,3,138,3,138,3,138,3,138,3,138,3,67,6,28,8,191,3,138,3,56,8,105,8,138,3,113,8,14,8,138,3,138,3,138,3,138,3,121,8,138,3,138,3,59,6,176,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,67,6,67,6,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,56,8,67,6,98,5,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,128,8,138,3,138,3,133,8,76,5,138,3,138,3,146,5,67,6,58,6,138,3,138,3,141,8,138,3,138,3,138,3,149,8,156,8,12,6,164,8,138,3,138,3,171,8,179,8,138,3,186,8,193,8,138,3,213,4,198,8,138,3,238,4,138,3,206,8,214,8,240,4,138,3,218,8,239,4,226,8,138,3,138,3,138,3,138,3,138,3,138,3,138,3,233,8,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,253,8,241,8,245,8,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,5,9,137,4,137,4,137,4,137,4,13,9,17,9,25,9,33,9,37,9,45,9,137,4,137,4,137,4,49,9,57,9,122,3,65,9,73,9,138,3,138,3,138,3,81,9,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,40,14,40,14,104,14,168,14,40,14,40,14,40,14,40,14,40,14,40,14,224,14,32,15,96,15,112,15,176,15,188,15,40,14,40,14,252,15,40,14,40,14,40,14,52,16,116,16,180,16,244,16,44,17,108,17,172,17,228,17,36,18,100,18,64,10,128,10,192,10,250,10,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,35,11,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,96,11,160,1,160,1,149,11,213,11,21,12,85,12,149,12,213,12,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,85,13,101,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,21,13,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,89,9,138,3,67,6,67,6,97,9,230,5,138,3,232,4,138,3,138,3,138,3,138,3,138,3,138,3,138,3,105,9,138,3,138,3,138,3,112,9,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,120,9,31,4,31,4,31,4,31,4,31,4,31,4,31,4,128,9,132,9,31,4,31,4,31,4,31,4,148,9,140,9,31,4,156,9,31,4,31,4,164,9,170,9,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,178,9,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,239,4,173,8,186,9,193,9,1,4,196,9,138,3,138,3,213,4,204,9,138,3,210,9,1,4,215,9,248,5,138,3,138,3,223,9,138,3,138,3,138,3,138,3,29,8,231,9,1,4,240,4,75,5,238,9,138,3,138,3,138,3,138,3,138,3,173,8,246,9,138,3,138,3,250,9,2,10,138,3,138,3,138,3,138,3,138,3,138,3,6,10,14,10,138,3,138,3,22,10,75,5,50,8,138,3,30,10,138,3,138,3,214,5,38,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,42,10,138,3,138,3,50,10,56,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,62,10,138,3,68,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,74,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,9,5,82,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,89,10,97,10,103,10,138,3,138,3,67,6,67,6,111,10,138,3,138,3,138,3,138,3,138,3,67,6,67,6,103,7,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,113,10,138,3,120,10,138,3,116,10,138,3,123,10,138,3,131,10,135,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,216,3,143,10,216,3,150,10,157,10,165,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,173,10,181,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,31,4,31,4,31,4,31,4,31,4,31,4,189,10,31,4,197,10,197,10,204,10,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,137,4,137,4,137,4,137,4,137,4,137,4,137,4,212,10,31,4,31,4,31,4,31,4,31,4,31,4,31,4,31,4,67,6,220,10,67,6,67,6,70,6,225,10,229,10,67,8,237,10,138,3,138,3,243,10,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,67,6,104,7,251,10,67,6,67,6,67,6,70,6,67,6,67,6,48,8,138,3,220,10,67,6,3,11,67,6,11,11,69,8,138,3,138,3,27,11,35,11,43,11,138,3,68,8,138,3,230,5,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,19,11,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,138,3,19,11,59,11,51,11,51,11,51,11,60,11,60,11,60,11,60,11,216,3,216,3,216,3,216,3,216,3,216,3,216,3,68,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,60,11,105,3,105,3,105,3,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,8,0,7,0,8,0,9,0,7,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,7,0,7,0,7,0,8,0,9,0,10,0,10,0,4,0,4,0,4,0,10,0,10,0,10,49,10,242,10,0,3,0,6,0,3,0,6,0,6,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,6,0,10,0,10,80,10,0,10,208,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,81,10,0,10,210,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,81,10,0,10,210,10,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,18,0,18,0,18,0,18,0,7,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,6,0,10,0,4,0,4,0,4,0,4,0,10,0,10,0,10,0,10,0,0,0,10,144,10,0,178,0,10,0,10,0,4,0,4,0,2,0,2,0,10,0,0,0,10,0,10,0,10,0,2,0,0,0,10,144,10,0,10,0,10,0,10],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+40980); + +allocate([10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,10,0,10,0,4,0,1,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,1,0,177,0,1,0,177,0,177,0,1,0,177,0,177,0,1,0,177,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,5,0,5,0,5,0,5,0,5,0,5,0,10,0,10,0,13,0,4,0,4,0,13,0,6,0,13,0,10,0,10,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,13,0,173,8,13,0,13,0,13,0,77,0,13,0,141,0,141,0,141,0,141,0,77,0,141,0,77,0,141,0,77,0,77,0,77,0,77,0,77,0,141,0,141,0,141,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,45,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,77,0,77,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,4,0,5,0,5,0,13,0,77,0,77,0,177,0,141,0,141,0,141,0,13,0,141,0,141,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,77,0,77,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,77,0,141,0,77,0,141,0,77,0,77,0,141,0,141,0,13,0,141,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,5,0,10,0,177,0,177,0,177,0,177,0,177,0,177,0,13,0,13,0,177,0,177,0,10,0,177,0,177,0,177,0,177,0,141,0,141,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,77,0,77,0,77,0,13,0,13,0,77,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,173,0,141,0,177,0,77,0,77,0,77,0,141,0,141,0,141,0,141,0,141,0,77,0,77,0,77,0,77,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,77,0,141,0,77,0,141,0,77,0,77,0,141,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,13,0,13,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,141,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,141,0,77,0,77,0,77,0,77,0,141,0,77,0,141,0,141,0,77,0,77,0,77,0,141,0,141,0,77,0,77,0,77,0,77,0,77,0,77,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,1,0,1,0,10,0,10,0,10,0,10,0,33,0,1,0,1,0,1,0,1,0,1,0,177,0,177,0,177,0,177,0,1,0,177,0,177,0,177,0,1,0,177,0,177,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,177,0,177,0,177,0,177,0,1,0,177,0,177,0,177,0,177,0,177,0,129,0,65,0,65,0,65,0,65,0,65,0,129,0,129,0,65,0,129,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,129,0,65,0,1,0,1,0,1,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,177,0,177,0,5,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,141,0,141,0,141,0,13,0,141,0,77,0,77,0,141,0,141,0,77,0,77,0,13,0,77,0,77,0,77,0,141,0,77,0,77,0,77,0,77,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,4,0,10,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,0,0,177,0,10,49,10,242,10,49,10,242,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,49,10,242,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,177,0,0,0,0,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,177,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,74,0,10,0,10,0,42,0,177,0,177,0,177,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,177,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,6,0,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,178,0,178,0,178,0,178,0,178,0,18,0,20,8,21,8,19,8,22,8,178,0,178,0,178,0,178,0,178,0,178,0,2,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,10,0,10,49,10,242,0,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,178,0,18,4,50,4,160,8,161,8,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,9,0,7,0,171,8,174,8,176,8,172,8,175,8,6,0,4,0,4,0,4,0,4,0,4,0,10,0,10,0,10,0,10,0,10,48,10,240,10,0,10,0,10,0,10,0,10,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,3,0,3,0,10,0,10,49,10,242,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,10,16,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,0,10,0,10,48,10,240,10,144,10,144,10,144,10,16,10,144,10,144,10,16,10,16,10,144,10,144,10,144,10,144,10,144,10,16,10,0,10,16,10,16,10,16,10,16,10,0,10,0,10,0,10,112,10,112,10,112,10,176,10,176,10,176,10,0,10,0,10,0,10,16,3,0,4,0,10,0,10,144,10,16,10,0,10,0,10,0,10,16,10,16,10,16,10,16,10,0,10,16,10,16,10,16,10,16,10,0,10,16,10,0,10,16,10,0,10,0,10,0,10,0,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,16,10,0,10,16,10,48,10,240,10,16,10,16,10,16,10,16,10,16,10,144,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,0,10,16,10,0,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,0,10,0,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,16,10,0,10,0,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,144,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,0,10,0,10,144,10,16,10,144,10,144,10,16,10,144,10,16,10,16,10,16,10,16,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,16,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,144,10,0,10,0,10,48,10,240,10,0,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,49,10,242,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,0,10,0,10,48,10,240,10,49,10,242,10,0,10,48,10,240,10,0,10,80,10,16,10,208,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,16,10,48,10,240,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,0,10,16,10,16,10,16,10,0,10,0,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,144,10,16,10,16,10,48,10,240,10,0,10,0,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,113,10,50,10,241,10,178,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,144,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,16,10,16,10,48,10,240,10,0,10,0,10,0,10,16,10,0,10,0,10,0,10,0,10,16,10,48,10,240,10,48,10,240,10,0,10,48,10,240,10,0,10,0,10,49,10,242,10,49,10,242,10,16,10,0,10,0,10,0,10,0,10,0,10,16,10,144,10,144,10,144,10,16,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,16,10,0,10,0,10,0,10,0,10,16,10,0,10,0,10,0,10,48,10,240,10,48,10,240,10,16,10,0,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,16,10,0,10,16,10,16,10,16,10,16,10,0,10,0,10,16,10,0,10,16,10,0,10,0,10,16,10,0,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,16,10,16,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,0,10,0,10,0,10,0,10,16,10,16,10,16,10,16,10,0,10,16,10,16,10,0,10,0,10,16,10,16,10,0,10,0,10,0,10,0,10,48,10,240,10,16,10,16,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,16,10,16,10,16,10,16,10,16,10,16,10,48,10,240,10,16,10,16,10,16,10,16,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,16,10,16,10,16,10,16,10,48,10,240,10,16,10,0,10,0,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,0,10,48,10,240,10,16,10,16,10,48,10,240,10,16,10,16,10,16,10,16,10,16,10,16,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,16,10,16,10,16,10,16,10,16,10,16,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,16,10,0,10,144,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,10,0,10,0,10,48,10,240,10,48,10,240,10,0,10,0,10,0,10,48,10,240,10,0,10,48,10,240,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,48,10,240,10,0,10,0,10,48,10,240,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,9,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,49,10,242,10,49,10,242,10,49,10,242,10,49,10,242,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,10,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,96,0,0,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+51244);allocate([177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,177,0,1,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,10,0,10,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,10,0,13,0,13,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,6,0,10,0,6,0,0,0,10,0,6,0,10,0,10,0,10,0,10,49,10,242,10,49,10,242,10,49,10,242,4,0,10,0,10,0,3,0,3,0,10,48,10,240,10,0,0,0,10,0,4,0,4,0,10,0,0,0,0,0,0,0,0,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,178,0,0,0,10,0,10,0,4,0,4,0,4,0,10,0,10,0,10,49,10,242,10,0,3,0,6,0,3,0,6,0,6,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,6,0,10,0,10,80,10,0,10,208,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,81,10,0,10,210,10,0,10,49,10,242,10,0,10,49,10,242,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,10,0,10,0,10,0,4,0,4,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,170,0,170,0,170,0,10,0,10,0,18,0,18,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,177,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,10,0,1,0,177,0,177,0,177,0,1,0,177,0,177,0,1,0,1,0,1,0,1,0,1,0,177,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,177,0,65,0,129,0,1,0,1,0,129,0,177,0,177,0,1,0,1,0,1,0,1,0,65,0,65,0,65,0,65,0,129,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,65,0,65,0,65,0,65,0,65,0,129,0,1,0,129,0,1,0,129,0,129,0,1,0,1,0,97,0,129,0,129,0,129,0,129,0,129,0,65,0,65,0,65,0,65,0,97,0,65,0,65,0,65,0,65,0,65,0,129,0,65,0,65,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,65,0,129,0,65,0,129,0,129,0,129,0,65,0,65,0,65,0,129,0,65,0,65,0,129,0,65,0,129,0,129,0,65,0,129,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,129,0,129,0,129,0,129,0,65,0,65,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,1,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,0,0,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,178,0,178,0,178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,177,0,177,0,177,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,0,0,177,0,177,0,0,0,177,0,177,0,177,0,177,0,177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,65,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,10,0,10,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,0,0,0,0,0,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,10,0,0,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,178,0,18,0,178,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,177,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,18,0,0,0,0,0,0,0,0,0,0,1,2,7,8,3,9,6,5,4,4,10,10,12,10,10,10,11,10,4,4,4,4,13,14,1,2,4,5,7,15,17,7,9,7,0,7,3,18,21,4,1,34,36,37,39,47,49,39,41,39,1,1,35,50,53,0,33,2,36,37,39,47,49,39,41,39,2,2,35,50,53,1,33,34,38,38,40,48,49,40,40,40,3,3,3,50,53,1,33,34,4,37,39,47,49,74,11,74,4,4,35,18,21,2,33,34,36,5,39,47,49,39,41,76,5,5,35,50,53,3,33,34,6,6,40,48,49,40,40,77,6,6,35,18,21,3,33,34,36,37,7,47,49,7,78,7,7,7,35,50,53,4,33,34,38,38,8,48,49,8,8,8,8,8,35,50,53,4,33,34,4,37,7,47,49,7,9,7,9,9,35,18,21,4,97,98,4,101,135,111,113,135,142,135,10,135,99,18,21,2,33,34,4,37,39,47,49,39,11,39,11,11,35,18,21,2,97,98,100,5,135,111,113,135,142,135,12,135,99,114,117,3,97,98,6,6,136,112,113,136,136,136,13,136,99,18,21,3,33,34,132,37,7,47,49,7,14,7,14,14,35,146,149,4,33,34,36,37,39,15,49,39,41,39,15,39,35,50,53,5,33,34,38,38,40,16,49,40,40,40,16,40,35,50,53,5,33,34,36,37,39,47,17,39,41,39,17,39,35,50,53,6,33,34,18,37,39,47,49,83,20,83,18,18,35,18,21,0,97,98,18,101,135,111,113,135,142,135,19,135,99,18,21,0,33,34,18,37,39,47,49,39,20,39,20,20,35,18,21,0,33,34,21,37,39,47,49,86,23,86,21,21,35,18,21,3,97,98,21,101,135,111,113,135,142,135,22,135,99,18,21,3,33,34,21,37,39,47,49,39,23,39,23,23,35,18,21,3,0,2,17,17,0,0,0,0,0,66,1,1,0,0,0,0,0,2,4,4,19,19,0,1,0,34,52,52,3,3,0,0,0,2,4,4,19,19,0,2,1,0,2,2,0,0,0,0,1,0,1,2,19,19,0,1,1,0,2,2,0,0,0,1,33,48,6,4,3,3,48,0,33,48,6,4,5,5,48,3,33,48,6,4,5,5,48,2,33,48,6,4,3,3,48,1,0,1,2,3,4,0,1,13,14,0,98,1,1,0,0,0,0,0,98,1,1,0,48,0,4,0,98,84,84,19,48,0,3,48,66,84,84,3,48,48,3,48,66,4,4,19,48,48,4,19,0,1,1,0,0,0,0,35,0,1,1,2,64,0,1,35,0,1,1,2,64,0,0,3,0,3,54,20,64,0,1,83,64,5,54,4,64,64,0,83,64,5,54,4,64,64,1,83,64,6,6,4,64,64,3,0,1,2,5,6,7,8,0,1,9,10,11,12,0,1,0,2,0,0,0,0,0,1,3,3,20,20,0,1,0,1,0,2,21,21,0,2,0,1,3,3,20,20,0,2,0,33,51,51,4,4,0,0,0,33,0,50,5,5,0,0,0,99,0,1,0,0,0,0,0,99,0,1,18,48,0,4,32,99,32,1,2,48,32,3,0,99,85,86,20,48,0,3,48,67,85,86,4,48,48,3,48,67,5,86,20,48,48,4,48,67,85,6,20,48,48,4,0,1,0,0,0,0,0,0,0,1,0,0,20,20,0,1,0,1,0,0,21,21,0,2,0,1,0,0,20,20,0,2,32,1,32,32,4,4,32,1,32,1,32,32,5,5,32,1,1,0,1,1,0,0,0,0,1,0,1,1,20,20,0,1,1,0,1,1,0,0,0,1,1,0,1,1,5,5,0,1,33,0,33,33,4,4,0,0,1,0,1,1,5,5,0,0,0,3,17,17,0,0,0,0,32,3,1,1,2,32,32,2,32,3,1,1,2,32,32,1,0,3,5,5,20,0,0,1,32,3,5,5,4,32,32,1,0,3,5,5,20,0,0,2,2,0,1,1,0,0,0,0,2,0,1,1,0,0,0,1,2,0,20,20,19,0,0,1,34,0,4,4,3,0,0,0,34,0,4,4,3,0,0,1,1,0,2,2,0,0,0,0,1,0,1,3,20,20,0,1,1,0,2,2,0,0,0,1,1,0,1,3,5,5,0,1,33,0,33,3,4,4,0,0,1,0,1,3,5,5,0,0,0,0,0,0,0,0,0,0,0,1,0,3,0,1,0,1,0,0,2,2,0,0,1,2,0,1,1,2,0,1,1,3,0,0,0,0,0,0,0,0,0,1,0,3,0,1,0,3,0,0,1,2,0,0,1,2,0,1,1,2,0,1,1,3,0,2,4,6,8,10,12,14,0,1,0,0,0,0,0,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,2,3,0,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,3,0,0,1,0,1,0,1,0,1,0,1,2,3,0,1,0,1,2,3,0,1,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,0,1,0,1,0,1,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,0,1,0,1,2,3,0,1,0,1,0,1,0,1,0,0,0,45,0,3,3,44,3,45,3,4,42,4,4,13,13,13,6,6,31,31,35,35,33,33,40,40,1,1,11,11,55,55,55,0,9,29,19,22,24,26,16,44,45,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,29,0,3,3,3,0,3,44,44,45,4,4,4,4,4,4,4,4,13,13,13,13,13,13,13,6,6,6,6,6,6,6,6,6,31,31,31,31,31,31,31,31,31,35,35,35,33,33,40,1,9,9,9,9,9,9,29,29,11,38,11,19,19,19,11,11,11,11,11,11,22,22,22,22,26,26,26,26,56,21,13,42,17,17,14,44,44,44,44,44,44,44,44,55,47,55,44,45,45,46,46,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,31,0,0,0,0,0,0,0,0,0,0,35,33,1,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,5,12,12,7,7,15,39,50,18,43,43,48,49,20,23,25,27,36,10,8,28,32,34,30,7,37,41,5,12,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,52,51,4,4,4,4,4,4,4,13,13,6,6,31,35,1,1,1,9,9,11,11,11,24,24,26,26,26,22,31,31,35,13,13,35,31,13,3,3,55,55,45,44,44,54,54,13,35,35,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,13,40,9,29,22,24,45,45,31,44,57,0,6,33,11,85,31,1,19,0,4,4,4,31,45,86,88,87,0,0,58,60,60,64,64,61,0,82,0,84,84,0,0,65,79,83,67,67,67,68,62,80,69,70,76,59,59,72,72,75,73,73,73,74,0,0,77,0,0,0,0,0,0,71,63,78,81,66,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+61510); + +var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function copyTempFloat(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3]}function copyTempDouble(ptr){HEAP8[tempDoublePtr]=HEAP8[ptr];HEAP8[tempDoublePtr+1]=HEAP8[ptr+1];HEAP8[tempDoublePtr+2]=HEAP8[ptr+2];HEAP8[tempDoublePtr+3]=HEAP8[ptr+3];HEAP8[tempDoublePtr+4]=HEAP8[ptr+4];HEAP8[tempDoublePtr+5]=HEAP8[ptr+5];HEAP8[tempDoublePtr+6]=HEAP8[ptr+6];HEAP8[tempDoublePtr+7]=HEAP8[ptr+7]}function _sbrk(bytes){var self=_sbrk;if(!self.called){DYNAMICTOP=alignMemoryPage(DYNAMICTOP);self.called=true;self.alloc=Runtime.dynamicAlloc;Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")}}var ret=DYNAMICTOP;if(bytes!=0){var success=self.alloc(bytes);if(!success)return-1>>>0}return ret}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:return totalMemory/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(ERRNO_CODES.EINVAL);return-1}Module["_memset"]=_memset;function _abort(){Module["abort"]()}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _pthread_self(){return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);staticSealed=true;STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX);function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;asm["setThrew"](1,0)}}Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity,byteLength:byteLength};Module.asmLibraryArg={abort:abort,assert_em:assert_em,invoke_viiiii:invoke_viiiii,invoke_vi:invoke_vi,invoke_iiii:invoke_iiii,invoke_viiiiii:invoke_viiiiii,invoke_iii:invoke_iii,invoke_viiii:invoke_viiii,_pthread_self:_pthread_self,_abort:_abort,___setErrNo:___setErrNo,_sbrk:_sbrk,_time:_time,_emscripten_memcpy_big:_emscripten_memcpy_big,_sysconf:_sysconf,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,tempDoublePtr:tempDoublePtr,ABORT:ABORT};var asm=function(global,env,buffer){"use asm";var Int8View=global.Int8Array;var Int16View=global.Int16Array;var Int32View=global.Int32Array;var Uint8View=global.Uint8Array;var Uint16View=global.Uint16Array;var Uint32View=global.Uint32Array;var Float32View=global.Float32Array;var Float64View=global.Float64Array;var HEAP8=new Int8View(buffer);var HEAP16=new Int16View(buffer);var HEAP32=new Int32View(buffer);var HEAPU8=new Uint8View(buffer);var HEAPU16=new Uint16View(buffer);var HEAPU32=new Uint32View(buffer);var HEAPF32=new Float32View(buffer);var HEAPF64=new Float64View(buffer);var byteLength=global.byteLength;var STACKTOP=env.STACKTOP|0;var STACK_MAX=env.STACK_MAX|0;var tempDoublePtr=env.tempDoublePtr|0;var ABORT=env.ABORT|0;var __THREW__=0;var threwValue=0;var setjmpId=0;var undef=0;var nan=global.NaN,inf=global.Infinity;var tempInt=0,tempBigInt=0,tempBigIntP=0,tempBigIntS=0,tempBigIntR=0,tempBigIntI=0,tempBigIntD=0,tempValue=0,tempDouble=0;var tempRet0=0;var tempRet1=0;var tempRet2=0;var tempRet3=0;var tempRet4=0;var tempRet5=0;var tempRet6=0;var tempRet7=0;var tempRet8=0;var tempRet9=0;var Math_floor=global.Math.floor;var Math_abs=global.Math.abs;var Math_sqrt=global.Math.sqrt;var Math_pow=global.Math.pow;var Math_cos=global.Math.cos;var Math_sin=global.Math.sin;var Math_tan=global.Math.tan;var Math_acos=global.Math.acos;var Math_asin=global.Math.asin;var Math_atan=global.Math.atan;var Math_atan2=global.Math.atan2;var Math_exp=global.Math.exp;var Math_log=global.Math.log;var Math_ceil=global.Math.ceil;var Math_imul=global.Math.imul;var Math_min=global.Math.min;var Math_clz32=global.Math.clz32;var abort=env.abort;var assert_em=env.assert_em;var invoke_viiiii=env.invoke_viiiii;var invoke_vi=env.invoke_vi;var invoke_iiii=env.invoke_iiii;var invoke_viiiiii=env.invoke_viiiiii;var invoke_iii=env.invoke_iii;var invoke_viiii=env.invoke_viiii;var _pthread_self=env._pthread_self;var _abort=env._abort;var ___setErrNo=env.___setErrNo;var _sbrk=env._sbrk;var _time=env._time;var _emscripten_memcpy_big=env._emscripten_memcpy_big;var _sysconf=env._sysconf;var tempFloat=0;function _emscripten_replace_memory(newBuffer){if(byteLength(newBuffer)&16777215||byteLength(newBuffer)<=16777215||byteLength(newBuffer)>2147483648)return false;HEAP8=new Int8View(newBuffer);HEAP16=new Int16View(newBuffer);HEAP32=new Int32View(newBuffer);HEAPU8=new Uint8View(newBuffer);HEAPU16=new Uint16View(newBuffer);HEAPU32=new Uint32View(newBuffer);HEAPF32=new Float32View(newBuffer);HEAPF64=new Float64View(newBuffer);buffer=newBuffer;return true}function _ubidi_setPara_58($pBiDi,$text,$length,$paraLevel,$pErrorCode){$pBiDi=$pBiDi|0;$text=$text|0;$length=$length|0;$paraLevel=$paraLevel|0;$pErrorCode=$pErrorCode|0;var $$0=0,$$0$i29=0,$$010$i=0,$$1$i=0,$$2$i39=0,$$3$i=0,$$4$i40=0,$$cast=0,$$flags$111$i=0,$$in=0,$$lcssa159=0,$$ph=0,$$pre=0,$$pre111=0,$$pre113=0,$$sink=0,$$sink$i=0,$$sink$i16=0,$$sink1$i=0,$$sink4=0,$$sink5=0,$$sink6=0,$$sink8$i=0,$$sink9$i=0,$$stackLast$0$i$lcssa=0,$105=0,$106=0,$107=0,$108=0,$110=0,$111=0,$113=0,$122=0,$124=0,$125=0,$126=0,$129=0,$130=0,$132=0,$133=0,$144=0,$152=0,$156=0,$16=0,$162=0,$170=0,$172=0,$174=0,$184=0,$192=0,$199=0,$200=0,$201=0,$202=0,$203=0,$204=0,$205=0,$206=0,$207=0,$208=0,$21=0,$210=0,$212=0,$214=0,$224=0,$225=0,$228=0,$229=0,$23=0,$231=0,$235=0,$236=0,$237=0,$238=0,$239=0,$24=0,$240=0,$243=0,$244=0,$245=0,$248=0,$249=0,$25=0,$250=0,$252=0,$254=0,$257=0,$258=0,$26=0,$261=0,$267=0,$274=0,$275=0,$277=0,$283=0,$284=0,$285=0,$286=0,$288=0,$291=0,$297=0,$304=0,$306=0,$308=0,$309=0,$31=0,$310=0,$340=0,$347=0,$35=0,$354=0,$359=0,$36=0,$360=0,$361=0,$364=0,$369=0,$37=0,$374=0,$38=0,$39=0,$390=0,$40=0,$41=0,$419=0,$42=0,$421=0,$427=0,$429=0,$437=0,$439=0,$440=0,$441=0,$442=0,$447=0,$448=0,$449=0,$450=0,$451=0,$454=0,$459=0,$462=0,$466=0,$47=0,$470=0,$474=0,$475=0,$48=0,$483=0,$486=0,$487=0,$488=0,$489=0,$490=0,$491=0,$492=0,$493=0,$497=0,$501=0,$502=0,$504=0,$505=0,$506=0,$507=0,$51=0,$512=0,$52=0,$526=0,$528=0,$529=0,$53=0,$530=0,$531=0,$532=0,$533=0,$534=0,$536=0,$537=0,$538=0,$539=0,$54=0,$541=0,$547=0,$553=0,$559=0,$568=0,$572=0,$576=0,$578=0,$58=0,$597=0,$6=0,$600=0,$604=0,$607=0,$608=0,$612=0,$614=0,$62=0,$63=0,$633=0,$636=0,$637=0,$638=0,$643=0,$647=0,$650=0,$656=0,$66=0,$666=0,$673=0,$674=0,$677=0,$68=0,$681=0,$684=0,$69=0,$720=0,$721=0,$724=0,$739=0,$743=0,$744=0,$750=0,$754=0,$755=0,$761=0,$768=0,$769=0,$772=0,$777=0,$780=0,$788=0,$796=0,$799=0,$800=0,$802=0,$812=0,$817=0,$819=0,$82=0,$824=0,$826=0,$833=0,$835=0,$836=0,$841=0,$842=0,$845=0,$847=0,$858=0,$864=0,$866=0,$868=0,$882=0,$894=0,$896=0,$898=0,$899=0,$909=0,$91=0,$911=0,$92=0,$926=0,$938=0,$939=0,$940=0,$941=0,$95=0,$96=0,$addedRuns$0$i$lcssa1=0,$addedRuns$0$i182=0,$addedRuns$1$i$ph=0,$addedRuns$3$i=0,$addedRuns$5$i$ph=0,$bracketData$i=0,$bracketData4$i=0,$controlCount$0$i$lcssa=0,$controlCount$0$i248=0,$controlCount$1$i=0,$embeddingLevel$0$i219=0,$embeddingLevel$1$in$i=0,$embeddingLevel$2$i=0,$eor$0=0,$flags$0$i$be=0,$flags$0$i$lcssa=0,$flags$0$i20215=0,$flags$0$i246=0,$flags$1$i=0,$flags$1$i24=0,$flags$2$i=0,$flags$3$i=0,$flags$4$i=0,$flags$5$i=0,$flags$5$i26=0,$flags$6$i=0,$flags$7$i=0,$flags$7$i28=0,$flags$8$i$lcssa=0,$flags$8$i238=0,$i$0$i$i261=0,$i$0$i11249=0,$i$0$i199=0,$i$0$i37180=0,$i$0190=0,$i$1$i$i=0,$i$1$i12=0,$i$1$i192=0,$i$1$i19208=0,$i$1$i38173179$in=0,$i$1$i38175=0,$i$1$i38175$in=0,$i$2$i15239=0,$i$2$i196=0,$i$2$i21216=0,$j$0$in$i=0,$j$0$in$i$ph=0,$j$0186=0,$j$1$i=0,$j$1$i$ph=0,$last$0=0,$last$1=0,$lastArabicPos$0$i$be=0,$lastArabicPos$0$i$lcssa=0,$lastArabicPos$0$i247=0,$lastCcPos$0$i221=0,$lastCcPos$1$i=0,$lastCcPos$2$i=0,$lastStrong$0$i$be=0,$lastStrong$0$i$lcssa=0,$lastStrong$0$i251=0,$lastStrong$0$ph$i=0,$limit$0=0,$newLevel$0$in$i=0,$newLevel$1$i=0,$newLevel$1$in$i=0,$nextLevel$0=0,$nextLevel$1=0,$overflowEmbeddingCount$0$i224=0,$overflowEmbeddingCount$1$i=0,$overflowEmbeddingCount$2$i=0,$overflowIsolateCount$0$i223=0,$overflowIsolateCount$1$i=0,$overflowIsolateCount$2$i=0,$paraIndex$0$i206=0,$paraIndex1$0$i212=0,$previousLevel$0$i220=0,$previousLevel$1$i=0,$result$0$i$i$be=0,$result$0$i$i260=0,$runs$0$i=0,$runsOnlyMemory$0$i=0,$sor$0$ph=0,$stackLast$0$i$be=0,$stackLast$0$i$lcssa=0,$stackLast$0$i22222=0,$stackLast$0$i252=0,$stackLast$1$i244=0,$stackLast$1$i25=0,$stackLast$2$i=0,$stackLast$3$i=0,$start$0=0,$start$0$i=0,$start2$0$i=0,$state$0$i$be=0,$state$0$i$lcssa=0,$state$0$i250=0,$state$0$ph$i=0,$state$2$i=0,$state$3$i=0,$state$5$i243=0,$storemerge=0,$t$0$i=0,$uchar$0$i=0,$uchar$0$i$i=0,$validIsolateCount$0$i225=0,$validIsolateCount$1$i=0,$validIsolateCount$2$i=0,$visualStart$0$i181=0,dest=0,label=0,sp=0,src=0,stop=0,$j$0$in$i$looptemp=0,$visualStart$0$i181$looptemp=0,$stackLast$1$i25$looptemp=0;sp=STACKTOP;STACKTOP=STACKTOP+5072|0;$bracketData$i=sp+2532|0;$bracketData4$i=sp;L1:do if($pErrorCode)if((HEAP32[$pErrorCode>>2]|0)<=0){if(!(($pBiDi|0)==0|($text|0)==0|($length|0)<-1)){$6=$paraLevel&255;if($paraLevel+-126<<24>>24<<24>>24<=-1){if(($length|0)==-1){$t$0$i=$text;while(1)if(!(HEAP16[$t$0$i>>1]|0))break;else $t$0$i=$t$0$i+2|0;$$0=$t$0$i-$text>>1}else $$0=$length;$16=$pBiDi+88|0;if((HEAP32[$16>>2]|0)==3){HEAP32[$16>>2]=0;do if(!$$0){_ubidi_setPara_58($pBiDi,$text,0,$paraLevel,$pErrorCode);$runsOnlyMemory$0$i=0}else{$21=_uprv_malloc_58($$0*7|0)|0;if(!$21){HEAP32[$pErrorCode>>2]=7;$runsOnlyMemory$0$i=0;break}$23=$21+($$0<<2)|0;$24=$23+($$0<<1)|0;$25=$pBiDi+92|0;$26=HEAP32[$25>>2]|0;if($26&1)HEAP32[$25>>2]=$26&-4|2;$31=$6&1;_ubidi_setPara_58($pBiDi,$text,$$0,$31&255,$pErrorCode);if((HEAP32[$pErrorCode>>2]|0)>0)$runsOnlyMemory$0$i=$21;else{$35=_ubidi_getLevels_58($pBiDi,$pErrorCode)|0;$36=$pBiDi+16|0;$37=HEAP32[$36>>2]|0;_memcpy($24|0,$35|0,$37|0)|0;$38=$pBiDi+132|0;$39=HEAP32[$38>>2]|0;$40=$pBiDi+120|0;$41=HEAP32[$40>>2]|0;$42=_ubidi_writeReordered_58($pBiDi,$23,$$0,2,$pErrorCode)|0;_ubidi_getVisualMap_58($pBiDi,$21,$pErrorCode);if((HEAP32[$pErrorCode>>2]|0)<=0){HEAP32[$25>>2]=$26;HEAP32[$16>>2]=5;$47=$pBiDi+72|0;$48=HEAP8[$47>>0]|0;HEAP8[$47>>0]=0;_ubidi_setPara_58($pBiDi,$23,$42,($31^1)&255,$pErrorCode);HEAP8[$47>>0]=$48;_ubidi_getRuns_58($pBiDi,$pErrorCode);L26:do if((HEAP32[$pErrorCode>>2]|0)<=0){$51=$pBiDi+224|0;$52=HEAP32[$51>>2]|0;$53=$pBiDi+228|0;$54=HEAP32[$53>>2]|0;if(($52|0)>0){$addedRuns$0$i182=0;$i$0$i37180=0;$visualStart$0$i181=0;while(1){$visualStart$0$i181$looptemp=$visualStart$0$i181;$visualStart$0$i181=HEAP32[$54+($i$0$i37180*12|0)+4>>2]|0;$58=$visualStart$0$i181-$visualStart$0$i181$looptemp|0;L30:do if(($58|0)<2)$addedRuns$3$i=$addedRuns$0$i182;else{$62=HEAP32[$54+($i$0$i37180*12|0)>>2]&2147483647;$63=$62+$58|0;$addedRuns$1$i$ph=$addedRuns$0$i182;$j$0$in$i$ph=$62;while(1){$j$0$in$i=$j$0$in$i$ph;do{$j$0$in$i$looptemp=$j$0$in$i;$j$0$in$i=$j$0$in$i+1|0;if(($j$0$in$i|0)>=($63|0)){$addedRuns$3$i=$addedRuns$1$i$ph;break L30}$66=HEAP32[$21+($j$0$in$i<<2)>>2]|0;$68=HEAP32[$21+($j$0$in$i$looptemp<<2)>>2]|0;$69=$66-$68|0;if(((($69|0)>-1?$69:0-$69|0)|0)!=1)break}while((HEAP8[$24+$66>>0]|0)==(HEAP8[$24+$68>>0]|0));$addedRuns$1$i$ph=$addedRuns$1$i$ph+1|0;$j$0$in$i$ph=$j$0$in$i}}while(0);$i$0$i37180=$i$0$i37180+1|0;if(($i$0$i37180|0)==($52|0))break;else $addedRuns$0$i182=$addedRuns$3$i}if(!$addedRuns$3$i){$addedRuns$0$i$lcssa1=0;$runs$0$i=$54}else{$82=$pBiDi+64|0;if(!((_ubidi_getMemory_58($82,$pBiDi+40|0,HEAP8[$pBiDi+73>>0]|0,($addedRuns$3$i+$52|0)*12|0)|0)<<24>>24))break;if(($52|0)==1){$91=HEAP32[$82>>2]|0;HEAP32[$91>>2]=HEAP32[$54>>2];HEAP32[$91+4>>2]=HEAP32[$54+4>>2];HEAP32[$91+8>>2]=HEAP32[$54+8>>2]}$92=HEAP32[$82>>2]|0;HEAP32[$53>>2]=$92;HEAP32[$51>>2]=(HEAP32[$51>>2]|0)+$addedRuns$3$i;$addedRuns$0$i$lcssa1=$addedRuns$3$i;$runs$0$i=$92}$95=$runs$0$i+4|0;$$in=$addedRuns$0$i$lcssa1;$i$1$i38173179$in=$52;while(1){$96=($$in|0)==0;$i$1$i38175$in=$i$1$i38173179$in;while(1){$i$1$i38175=$i$1$i38175$in+-1|0;if(!$i$1$i38175)$110=HEAP32[$95>>2]|0;else $110=(HEAP32[$runs$0$i+($i$1$i38175*12|0)+4>>2]|0)-(HEAP32[$runs$0$i+(($i$1$i38175$in+-2|0)*12|0)+4>>2]|0)|0;$105=$runs$0$i+($i$1$i38175*12|0)|0;$106=HEAP32[$105>>2]|0;$107=$106>>>31;$108=$106&2147483647;if(($110|0)>=2)break;$$pre111=$i$1$i38175+$$in|0;if(!$96){$111=$runs$0$i+($$pre111*12|0)|0;HEAP32[$111>>2]=HEAP32[$105>>2];HEAP32[$111+4>>2]=HEAP32[$105+4>>2];HEAP32[$111+8>>2]=HEAP32[$105+8>>2]}$113=HEAP32[$21+($108<<2)>>2]|0;HEAP32[$runs$0$i+($$pre111*12|0)>>2]=(HEAPU8[$24+$113>>0]^$107)<<31|$113;if(($i$1$i38175$in|0)>1)$i$1$i38175$in=$i$1$i38175;else break L26}$122=($107|0)==0;$124=$110+-1+$108|0;$$1$i=$122?$108:$124;$$2$i39=$122?-1:1;$125=$runs$0$i+($i$1$i38175*12|0)+4|0;$126=$runs$0$i+($i$1$i38175*12|0)+8|0;$addedRuns$5$i$ph=$$in;$j$1$i$ph=$122?$124:$108;L61:while(1){$j$1$i=$j$1$i$ph;while(1){if(($j$1$i|0)==($$1$i|0))break L61;$129=HEAP32[$21+($j$1$i<<2)>>2]|0;$130=$j$1$i+$$2$i39|0;$132=HEAP32[$21+($130<<2)>>2]|0;$133=$129-$132|0;if(((($133|0)>-1?$133:0-$133|0)|0)!=1)break;if((HEAP8[$24+$129>>0]|0)==(HEAP8[$24+$132>>0]|0))$j$1$i=$130;else break}$144=HEAP32[$21+($j$1$i$ph<<2)>>2]|0;$$3$i=($144|0)<($129|0)?$144:$129;$152=$addedRuns$5$i$ph+$i$1$i38175|0;HEAP32[$runs$0$i+($152*12|0)>>2]=(HEAPU8[$24+$$3$i>>0]^$107)<<31|$$3$i;HEAP32[$runs$0$i+($152*12|0)+4>>2]=HEAP32[$125>>2];$156=$j$1$i-$j$1$i$ph|0;HEAP32[$125>>2]=(HEAP32[$125>>2]|0)+~(($156|0)>-1?$156:0-$156|0);$162=HEAP32[$126>>2]|0;HEAP32[$runs$0$i+($152*12|0)+8>>2]=$162&10;HEAP32[$126>>2]=(($162|-11)^10)&HEAP32[$126>>2];$addedRuns$5$i$ph=$addedRuns$5$i$ph+-1|0;$j$1$i$ph=$130}$$pre113=$addedRuns$5$i$ph+$i$1$i38175|0;if($addedRuns$5$i$ph){$170=$runs$0$i+($$pre113*12|0)|0;HEAP32[$170>>2]=HEAP32[$105>>2];HEAP32[$170+4>>2]=HEAP32[$105+4>>2];HEAP32[$170+8>>2]=HEAP32[$105+8>>2]}$172=HEAP32[$21+($j$1$i$ph<<2)>>2]|0;$174=HEAP32[$21+($$1$i<<2)>>2]|0;$$4$i40=($172|0)<($174|0)?$172:$174;HEAP32[$runs$0$i+($$pre113*12|0)>>2]=(HEAPU8[$24+$$4$i40>>0]^$107)<<31|$$4$i40;if(($i$1$i38175$in|0)>1){$$in=$addedRuns$5$i$ph;$i$1$i38173179$in=$i$1$i38175}else break}}}while(0);$184=$pBiDi+97|0;HEAP8[$184>>0]=HEAPU8[$184>>0]^1}HEAP32[$pBiDi+8>>2]=$text;HEAP32[$36>>2]=$37;HEAP32[$pBiDi+12>>2]=$$0;HEAP32[$40>>2]=$41;$192=HEAP32[$pBiDi+28>>2]|0;_memcpy(HEAP32[$pBiDi+80>>2]|0,$24|0,(($37|0)>($192|0)?$192:$37)|0)|0;HEAP32[$38>>2]=$39;if((HEAP32[$pBiDi+224>>2]|0)>1){HEAP32[$40>>2]=2;$runsOnlyMemory$0$i=$21}else $runsOnlyMemory$0$i=$21}}while(0);_uprv_free_58($runsOnlyMemory$0$i);HEAP32[$16>>2]=3;break}HEAP32[$pBiDi>>2]=0;$199=$pBiDi+8|0;HEAP32[$199>>2]=$text;$200=$pBiDi+20|0;HEAP32[$200>>2]=$$0;$201=$pBiDi+12|0;HEAP32[$201>>2]=$$0;$202=$pBiDi+16|0;HEAP32[$202>>2]=$$0;$203=$pBiDi+97|0;HEAP8[$203>>0]=$paraLevel;$204=$6&1;$205=$pBiDi+120|0;HEAP32[$205>>2]=$204;$206=$pBiDi+136|0;HEAP32[$206>>2]=1;$207=$pBiDi+76|0;HEAP32[$207>>2]=0;$208=$pBiDi+80|0;HEAP32[$208>>2]=0;HEAP32[$pBiDi+228>>2]=0;$210=$pBiDi+336|0;HEAP32[$210>>2]=0;HEAP32[$pBiDi+340>>2]=0;$212=($paraLevel&255)>253;$214=$pBiDi+98|0;HEAP8[$214>>0]=$212&1;if(!$$0){if($212){HEAP8[$203>>0]=$204;HEAP8[$214>>0]=0}HEAP32[$pBiDi+124>>2]=HEAP32[104+($204<<2)>>2];HEAP32[$pBiDi+224>>2]=0;HEAP32[$206>>2]=0;HEAP32[$pBiDi+104>>2]=0;HEAP32[$pBiDi+112>>2]=0;HEAP32[$pBiDi>>2]=$pBiDi;break}HEAP32[$pBiDi+224>>2]=-1;$224=$pBiDi+60|0;$225=HEAP32[$224>>2]|0;$228=$pBiDi+140|0;HEAP32[$228>>2]=($225|0)==0?$pBiDi+144|0:$225;$229=$pBiDi+48|0;$231=$pBiDi+72|0;if(!((_ubidi_getMemory_58($229,$pBiDi+24|0,HEAP8[$231>>0]|0,$$0)|0)<<24>>24)){HEAP32[$pErrorCode>>2]=7;break}$235=HEAP32[$229>>2]|0;HEAP32[$207>>2]=$235;$236=HEAP32[$199>>2]|0;$237=$235;$238=HEAP32[$201>>2]|0;$239=HEAP8[$203>>0]|0;$240=($239&255)>253;if($240)$364=((HEAP32[$16>>2]|0)+-5|0)>>>0<2;else $364=0;$243=$pBiDi+92|0;$244=HEAP32[$243>>2]|0;$245=$244&2;if($244&4)HEAP32[$202>>2]=0;$248=$239&255;$249=$248&1;$250=$249&255;$252=(HEAP32[$228>>2]|0)+4|0;if($240){HEAP32[$252>>2]=$249;$254=HEAP32[$pBiDi+104>>2]|0;if(($254|0)>0){$257=HEAP32[$pBiDi+100>>2]|0;$i$0$i$i261=0;$result$0$i$i260=10;while(1){$258=$i$0$i$i261+1|0;$261=HEAPU16[$257+($i$0$i$i261<<1)>>1]|0;if(($258|0)==($254|0)|($261&64512|0)!=55296){$i$1$i$i=$258;$uchar$0$i$i=$261}else{$267=HEAPU16[$257+($258<<1)>>1]|0;if(($267&64512|0)==56320){$i$1$i$i=$i$0$i$i261+2|0;$uchar$0$i$i=($261<<10)+-56613888+$267|0}else{$i$1$i$i=$258;$uchar$0$i$i=$261}}$274=_ubidi_getCustomizedClass_58($pBiDi,$uchar$0$i$i)|0;$275=$274&255;$277=$274&255;L101:do if($result$0$i$i260<<24>>24==10){switch($277|0){case 13:case 1:case 0:break;default:{$result$0$i$i$be=10;break L101}}$result$0$i$i$be=$275}else $result$0$i$i$be=($277|0)==7?10:$result$0$i$i260;while(0);if(($i$1$i$i|0)<($254|0)){$i$0$i$i261=$i$1$i$i;$result$0$i$i260=$result$0$i$i$be}else break}if($result$0$i$i$be<<24>>24==10){$lastStrong$0$ph$i=$250;$state$0$ph$i=1}else{HEAP32[(HEAP32[$228>>2]|0)+4>>2]=$result$0$i$i$be<<24>>24!=0&1;$lastStrong$0$ph$i=$250;$state$0$ph$i=0}}else{$lastStrong$0$ph$i=$250;$state$0$ph$i=1}}else{HEAP32[$252>>2]=$248;$lastStrong$0$ph$i=10;$state$0$ph$i=0}$283=($245|0)==0;$284=$pBiDi+144|0;$285=$pBiDi+36|0;$286=$pBiDi+352|0;L110:do if(($238|0)>0){$controlCount$0$i248=0;$flags$0$i246=0;$i$0$i11249=0;$lastArabicPos$0$i247=-1;$lastStrong$0$i251=$lastStrong$0$ph$i;$stackLast$0$i252=-1;$state$0$i250=$state$0$ph$i;L111:while(1){$288=$i$0$i11249+1|0;$291=HEAPU16[$236+($i$0$i11249<<1)>>1]|0;if(($288|0)==($238|0)|($291&64512|0)!=55296){$i$1$i12=$288;$uchar$0$i=$291}else{$297=HEAPU16[$236+($288<<1)>>1]|0;if(($297&64512|0)==56320){$i$1$i12=$i$0$i11249+2|0;$uchar$0$i=($291<<10)+-56613888+$297|0}else{$i$1$i12=$288;$uchar$0$i=$291}}$304=_ubidi_getCustomizedClass_58($pBiDi,$uchar$0$i)|0;$306=$304&255;$308=1<<$306|$flags$0$i246;$309=$i$1$i12+-1|0;$310=$237+$309|0;HEAP8[$310>>0]=$304;if(($uchar$0$i|0)>65535){HEAP8[$237+($i$1$i12+-2)>>0]=18;$flags$1$i=$308|262144}else $flags$1$i=$308;if($283)$controlCount$1$i=$controlCount$0$i248;else $controlCount$1$i=((($uchar$0$i+-8294|0)>>>0<4|(($uchar$0$i&-4|0)==8204|($uchar$0$i+-8234|0)>>>0<5))&1)+$controlCount$0$i248|0;L123:do switch($306|0){case 0:{switch($state$0$i250|0){case 1:{HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)+4>>2]=0;$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=0;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=0;break L123;break}case 2:{$flags$0$i$be=($stackLast$0$i252|0)<126?$flags$1$i|1048576:$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=0;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=3;break L123;break}default:{$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=0;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$0$i250;break L123}}break}case 13:case 1:{L164:do switch($state$0$i250|0){case 1:{HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)+4>>2]=1;$flags$5$i=$flags$1$i;$state$2$i=0;break}case 2:{if(($stackLast$0$i252|0)>=126){$flags$5$i=$flags$1$i;$state$2$i=3;break L164}HEAP8[$237+(HEAP32[$bracketData$i+($stackLast$0$i252<<2)>>2]|0)>>0]=21;$flags$5$i=$flags$1$i|2097152;$state$2$i=3;break}default:{$flags$5$i=$flags$1$i;$state$2$i=$state$0$i250}}while(0);$flags$0$i$be=$flags$5$i;$lastArabicPos$0$i$be=($306|0)==13?$309:$lastArabicPos$0$i247;$lastStrong$0$i$be=1;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$2$i;break}default:{if(($306+-19|0)>>>0<3){$340=$stackLast$0$i252+1|0;if(($340|0)<126){HEAP32[$bracketData$i+($340<<2)>>2]=$309;HEAP8[$bracketData4$i+$340>>0]=$state$0$i250}if(($306|0)!=19){$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$340;$state$0$i$be=3;break L123}HEAP8[$310>>0]=20;$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$340;$state$0$i$be=2;break L123}switch($306|0){case 22:{$347=($stackLast$0$i252|0)<126;$$flags$111$i=$347&($state$0$i250|0)==2?$flags$1$i|1048576:$flags$1$i;if(($stackLast$0$i252|0)<=-1){$flags$0$i$be=$$flags$111$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$0$i250;break L123}if($347)$state$3$i=HEAP8[$bracketData4$i+$stackLast$0$i252>>0]|0;else $state$3$i=$state$0$i250;$flags$0$i$be=$$flags$111$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$stackLast$0$i252+-1|0;$state$0$i$be=$state$3$i;break L123;break}case 7:break;default:{$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$0$i250;break L123}}$354=($i$1$i12|0)<($238|0);if(($uchar$0$i|0)==13&$354)if((HEAP16[$236+($i$1$i12<<1)>>1]|0)==10){$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$0$i250;break L123}$359=HEAP32[$206>>2]|0;$360=$359+-1|0;$361=HEAP32[$228>>2]|0;HEAP32[$361+($360<<3)>>2]=$i$1$i12;if($364&$lastStrong$0$i251<<24>>24==1)HEAP32[$361+($360<<3)+4>>2]=1;if(HEAP32[$243>>2]&4){HEAP32[$202>>2]=$i$1$i12;HEAP32[$286>>2]=$controlCount$1$i}if(!$354){$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=$stackLast$0$i252;$state$0$i$be=$state$0$i250;break L123}$369=$359+1|0;HEAP32[$206>>2]=$369;do if(($361|0)==($284|0)){if(($369|0)<11)break;if(!((_ubidi_getMemory_58($224,$285,1,160)|0)<<24>>24))break L111;$374=HEAP32[$224>>2]|0;HEAP32[$228>>2]=$374;dest=$374;src=$284;stop=dest+80|0;do{HEAP32[dest>>2]=HEAP32[src>>2];dest=dest+4|0;src=src+4|0}while((dest|0)<(stop|0))}else{if(!((_ubidi_getMemory_58($224,$285,1,$369<<4)|0)<<24>>24))break L111;HEAP32[$228>>2]=HEAP32[$224>>2]}while(0);if($240){HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)+4>>2]=$249;$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$250;$stackLast$0$i$be=-1;$state$0$i$be=1;break L123}else{HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)+4>>2]=HEAPU8[$203>>0];$flags$0$i$be=$flags$1$i;$lastArabicPos$0$i$be=$lastArabicPos$0$i247;$lastStrong$0$i$be=$lastStrong$0$i251;$stackLast$0$i$be=-1;$state$0$i$be=0;break L123}}}while(0);if(($i$1$i12|0)<($238|0)){$controlCount$0$i248=$controlCount$1$i;$flags$0$i246=$flags$0$i$be;$i$0$i11249=$i$1$i12;$lastArabicPos$0$i247=$lastArabicPos$0$i$be;$lastStrong$0$i251=$lastStrong$0$i$be;$stackLast$0$i252=$stackLast$0$i$be;$state$0$i250=$state$0$i$be}else{$controlCount$0$i$lcssa=$controlCount$1$i;$flags$0$i$lcssa=$flags$0$i$be;$lastArabicPos$0$i$lcssa=$lastArabicPos$0$i$be;$lastStrong$0$i$lcssa=$lastStrong$0$i$be;$stackLast$0$i$lcssa=$stackLast$0$i$be;$state$0$i$lcssa=$state$0$i$be;break L110}}HEAP32[$pErrorCode>>2]=7;break L1}else{$controlCount$0$i$lcssa=0;$flags$0$i$lcssa=0;$lastArabicPos$0$i$lcssa=-1;$lastStrong$0$i$lcssa=$lastStrong$0$ph$i;$stackLast$0$i$lcssa=-1;$state$0$i$lcssa=$state$0$ph$i}while(0);$390=($stackLast$0$i$lcssa|0)>125;$$stackLast$0$i$lcssa=$390?125:$stackLast$0$i$lcssa;L172:do if(($$stackLast$0$i$lcssa|0)>-1){$stackLast$1$i244=$$stackLast$0$i$lcssa;$state$5$i243=$390?2:$state$0$i$lcssa;while(1){if(($state$5$i243|0)==2)break;$state$5$i243=HEAP8[$bracketData4$i+$stackLast$1$i244>>0]|0;if(($stackLast$1$i244|0)<=0){$flags$7$i=$flags$0$i$lcssa;break L172}else $stackLast$1$i244=$stackLast$1$i244+-1|0}$flags$7$i=$flags$0$i$lcssa|1048576}else $flags$7$i=$flags$0$i$lcssa;while(0);if(!(HEAP32[$243>>2]&4)){HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)>>2]=$238;HEAP32[$286>>2]=$controlCount$0$i$lcssa}else if((HEAP32[$202>>2]|0)<($238|0))HEAP32[$206>>2]=(HEAP32[$206>>2]|0)+-1;if($364&$lastStrong$0$i$lcssa<<24>>24==1)HEAP32[(HEAP32[$228>>2]|0)+((HEAP32[$206>>2]|0)+-1<<3)+4>>2]=1;if($240)HEAP8[$203>>0]=HEAP32[(HEAP32[$228>>2]|0)+4>>2];$419=HEAP32[$206>>2]|0;if(($419|0)>0){$421=HEAP32[$228>>2]|0;$flags$8$i238=$flags$7$i;$i$2$i15239=0;while(1){$427=HEAP32[104+((HEAP32[$421+($i$2$i15239<<3)+4>>2]&1)<<2)>>2]|$flags$8$i238;$i$2$i15239=$i$2$i15239+1|0;if(($i$2$i15239|0)==($419|0)){$flags$8$i$lcssa=$427;break}else $flags$8$i238=$427}}else $flags$8$i$lcssa=$flags$7$i;$429=$pBiDi+96|0;$437=$pBiDi+124|0;HEAP32[$437>>2]=((HEAP8[$429>>0]|0)==0|$flags$8$i$lcssa>>>7&1^1)^1|$flags$8$i$lcssa;HEAP32[$pBiDi+128>>2]=$lastArabicPos$0$i$lcssa;$439=HEAP32[$207>>2]|0;$440=HEAP32[$202>>2]|0;$441=$pBiDi+132|0;HEAP32[$441>>2]=$440;$442=$pBiDi+52|0;if(!((_ubidi_getMemory_58($442,$pBiDi+28|0,HEAP8[$231>>0]|0,$440)|0)<<24>>24)){HEAP32[$pErrorCode>>2]=7;break}$447=HEAP32[$442>>2]|0;HEAP32[$208>>2]=$447;$448=HEAP32[$207>>2]|0;$$cast=$447;$449=HEAP32[$199>>2]|0;$450=HEAP32[$202>>2]|0;$451=HEAP32[$437>>2]|0;do if(!(HEAP8[$214>>0]|0))label=143;else{$454=HEAP32[$228>>2]|0;if((HEAP32[$454>>2]|0)>0){label=143;break}$$sink$i16=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$454,0)|0}while(0);if((label|0)==143)$$sink$i16=HEAP8[$203>>0]|0;$459=$pBiDi+244|0;HEAP32[$459>>2]=0;if((HEAP32[$pErrorCode>>2]|0)>0)break;$462=_directionFromFlags($451)|0;L205:do if(($462|0)==2){if((HEAP32[$16>>2]|0)>>>0>1){$466=HEAP32[$206>>2]|0;if(($466|0)>0){$938=$466;$paraIndex$0$i206=0}else{$$ph=2;break}while(1){if(!$paraIndex$0$i206){$474=HEAP32[$228>>2]|0;$start$0$i=0}else{$470=HEAP32[$228>>2]|0;$474=$470;$start$0$i=HEAP32[$470+($paraIndex$0$i206+-1<<3)>>2]|0}$475=HEAP32[$474+($paraIndex$0$i206<<3)>>2]|0;if(($475|0)>($start$0$i|0)){_memset($$cast+$start$0$i|0,HEAP32[$474+($paraIndex$0$i206<<3)+4>>2]&255|0,$475-$start$0$i|0)|0;$483=HEAP32[$206>>2]|0}else $483=$938;$paraIndex$0$i206=$paraIndex$0$i206+1|0;if(($paraIndex$0$i206|0)>=($483|0)){$$ph=2;break L205}else $938=$483}}if(!($451&7985152)){_bracketInit($pBiDi,$bracketData$i);$486=$bracketData$i+492|0;$487=$bracketData$i+502|0;$488=$bracketData$i+504|0;$489=$bracketData$i+508|0;$490=$bracketData$i+506|0;$491=$bracketData$i+505|0;$492=$bracketData$i+496|0;$493=HEAP32[$206>>2]|0;L221:do if(($493|0)>0){$939=$493;$paraIndex1$0$i212=0;L222:while(1){if(!$paraIndex1$0$i212){$501=HEAP32[$228>>2]|0;$start2$0$i=0}else{$497=HEAP32[$228>>2]|0;$501=$497;$start2$0$i=HEAP32[$497+($paraIndex1$0$i212+-1<<3)>>2]|0}$502=HEAP32[$501+($paraIndex1$0$i212<<3)>>2]|0;$504=HEAP32[$501+($paraIndex1$0$i212<<3)+4>>2]|0;$505=$504&255;$506=$504&1;$507=$506&255;if(($start2$0$i|0)<($502|0)){$i$1$i19208=$start2$0$i;do{HEAP8[$$cast+$i$1$i19208>>0]=$505;L231:do switch(HEAP8[$448+$i$1$i19208>>0]|0){case 18:break;case 7:{$512=$i$1$i19208+1|0;if(($512|0)>=($450|0))break L231;if((HEAP16[$449+($i$1$i19208<<1)>>1]|0)==13)if((HEAP16[$449+($512<<1)>>1]|0)==10)break L231;HEAP32[$486>>2]=0;HEAP16[$487>>1]=0;HEAP8[$488>>0]=$505;HEAP32[$489>>2]=$506;HEAP8[$490>>0]=$507;HEAP8[$491>>0]=$507;HEAP32[$492>>2]=0;break}default:if(!((_bracketProcessChar($bracketData$i,$i$1$i19208)|0)<<24>>24))break L222}while(0);$i$1$i19208=$i$1$i19208+1|0}while(($i$1$i19208|0)<($502|0));$526=HEAP32[$206>>2]|0}else $526=$939;$paraIndex1$0$i212=$paraIndex1$0$i212+1|0;if(($paraIndex1$0$i212|0)>=($526|0)){$$010$i=2;break L221}else $939=$526}HEAP32[$pErrorCode>>2]=7;$$010$i=0}else $$010$i=2;while(0);$$ph=$$010$i;break}_bracketInit($pBiDi,$bracketData4$i);HEAP16[$bracketData$i>>1]=$$sink$i16&255;$528=$bracketData4$i+492|0;$529=$bracketData4$i+502|0;$530=$bracketData4$i+504|0;$531=$bracketData4$i+508|0;$532=$bracketData4$i+506|0;$533=$bracketData4$i+505|0;$534=$bracketData4$i+496|0;L244:do if(($450|0)>0){$embeddingLevel$0$i219=$$sink$i16;$flags$0$i20215=0;$i$2$i21216=0;$lastCcPos$0$i221=0;$overflowEmbeddingCount$0$i224=0;$overflowIsolateCount$0$i223=0;$previousLevel$0$i220=$$sink$i16;$stackLast$0$i22222=0;$validIsolateCount$0$i225=0;while(1){$536=$448+$i$2$i21216|0;$537=HEAP8[$536>>0]|0;$538=$537&255;L247:do switch($538|0){case 15:case 12:case 14:case 11:{$539=$flags$0$i20215|262144;HEAP8[$$cast+$i$2$i21216>>0]=$previousLevel$0$i220;$541=$embeddingLevel$0$i219&255;if(($537+-11&255)<2)$newLevel$0$in$i=$541+2&382;else $newLevel$0$in$i=($541&127)+1|1;$547=$newLevel$0$in$i&255;if(!(($overflowIsolateCount$0$i223|$overflowEmbeddingCount$0$i224|0)==0&$547>>>0<126)){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$539;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=(($overflowIsolateCount$0$i223|0)==0&1)+$overflowEmbeddingCount$0$i224|0; + +$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}switch($537<<24>>24){case 15:case 12:{$embeddingLevel$1$in$i=$547|128;break}default:$embeddingLevel$1$in$i=$newLevel$0$in$i}$553=$stackLast$0$i22222+1|0;HEAP16[$bracketData$i+($553<<1)>>1]=$embeddingLevel$1$in$i&255;$embeddingLevel$2$i=$embeddingLevel$1$in$i&255;$flags$5$i26=$539;$lastCcPos$2$i=$i$2$i21216;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$553;$validIsolateCount$2$i=$validIsolateCount$0$i225;break}case 16:{$559=$flags$0$i20215|262144;HEAP8[$$cast+$i$2$i21216>>0]=$previousLevel$0$i220;if($overflowIsolateCount$0$i223){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$559;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}if($overflowEmbeddingCount$0$i224){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$559;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224+-1|0;$overflowIsolateCount$2$i=0;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}if(!$stackLast$0$i22222){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$559;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=0;$overflowIsolateCount$2$i=0;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=0;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}if((HEAPU16[$bracketData$i+($stackLast$0$i22222<<1)>>1]|0)>=256){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$559;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=0;$overflowIsolateCount$2$i=0;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}$568=$stackLast$0$i22222+-1|0;$embeddingLevel$2$i=HEAP16[$bracketData$i+($568<<1)>>1]&255;$flags$5$i26=$559;$lastCcPos$2$i=$i$2$i21216;$overflowEmbeddingCount$2$i=0;$overflowIsolateCount$2$i=0;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$568;$validIsolateCount$2$i=$validIsolateCount$0$i225;break}case 21:case 20:{$572=$embeddingLevel$0$i219&255;$576=HEAP32[104+(($572&1)<<2)>>2]|$flags$0$i20215;$578=$572&127;HEAP8[$$cast+$i$2$i21216>>0]=$578;if(($578|0)==($previousLevel$0$i220&127|0))$flags$1$i24=$576|1024;else{_bracketProcessBoundary($bracketData4$i,$lastCcPos$0$i221,$previousLevel$0$i220,$embeddingLevel$0$i219);$flags$1$i24=$576|-2147482624}$newLevel$1$in$i=$537<<24>>24==20?$572+2&382:$578+1|1;$newLevel$1$i=$newLevel$1$in$i&255;if(!(($overflowIsolateCount$0$i223|$overflowEmbeddingCount$0$i224|0)==0&($newLevel$1$in$i&254)>>>0<126)){HEAP8[$536>>0]=9;$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$flags$1$i24;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223+1|0;$previousLevel$1$i=$embeddingLevel$0$i219;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}$597=$validIsolateCount$0$i225+1|0;if(($validIsolateCount$0$i225|0)>=(HEAP32[$459>>2]|0))HEAP32[$459>>2]=$597;$600=$stackLast$0$i22222+1|0;HEAP16[$bracketData$i+($600<<1)>>1]=$newLevel$1$in$i|256;$604=HEAP32[$528>>2]|0;HEAP8[$bracketData4$i+496+($604<<4)+10>>0]=10;$607=HEAP16[$bracketData4$i+496+($604<<4)+6>>1]|0;$608=$604+1|0;HEAP32[$528>>2]=$608;HEAP16[$bracketData4$i+496+($608<<4)+6>>1]=$607;HEAP16[$bracketData4$i+496+($608<<4)+4>>1]=$607;HEAP8[$bracketData4$i+496+($608<<4)+8>>0]=$newLevel$1$i;$612=$newLevel$1$in$i&1;HEAP32[$bracketData4$i+496+($608<<4)+12>>2]=$612;$614=$612&255;HEAP8[$bracketData4$i+496+($608<<4)+10>>0]=$614;HEAP8[$bracketData4$i+496+($608<<4)+9>>0]=$614;HEAP32[$bracketData4$i+496+($608<<4)>>2]=0;$embeddingLevel$2$i=$newLevel$1$i;$flags$5$i26=$flags$1$i24|1<<$538;$lastCcPos$2$i=$i$2$i21216;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$embeddingLevel$0$i219;$stackLast$3$i=$600;$validIsolateCount$2$i=$597;break}case 22:{if(!(($embeddingLevel$0$i219^$previousLevel$0$i220)&127))$flags$2$i=$flags$0$i20215;else{_bracketProcessBoundary($bracketData4$i,$lastCcPos$0$i221,$previousLevel$0$i220,$embeddingLevel$0$i219);$flags$2$i=$flags$0$i20215|-2147483648}do if(!$overflowIsolateCount$0$i223){if(!$validIsolateCount$0$i225){HEAP8[$536>>0]=9;$flags$3$i=$flags$2$i;$lastCcPos$1$i=$lastCcPos$0$i221;$overflowEmbeddingCount$1$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$1$i=0;$stackLast$2$i=$stackLast$0$i22222;$validIsolateCount$1$i=0;break}else $stackLast$1$i25=$stackLast$0$i22222;do{$stackLast$1$i25$looptemp=$stackLast$1$i25;$stackLast$1$i25=$stackLast$1$i25+-1|0}while((HEAPU16[$bracketData$i+($stackLast$1$i25$looptemp<<1)>>1]|0)<256);$633=(HEAP32[$528>>2]|0)+-1|0;HEAP32[$528>>2]=$633;HEAP8[$bracketData4$i+496+($633<<4)+10>>0]=10;$flags$3$i=$flags$2$i|4194304;$lastCcPos$1$i=$i$2$i21216;$overflowEmbeddingCount$1$i=0;$overflowIsolateCount$1$i=0;$stackLast$2$i=$stackLast$1$i25;$validIsolateCount$1$i=$validIsolateCount$0$i225+-1|0}else{HEAP8[$536>>0]=9;$flags$3$i=$flags$2$i;$lastCcPos$1$i=$lastCcPos$0$i221;$overflowEmbeddingCount$1$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$1$i=$overflowIsolateCount$0$i223+-1|0;$stackLast$2$i=$stackLast$0$i22222;$validIsolateCount$1$i=$validIsolateCount$0$i225}while(0);$636=HEAP16[$bracketData$i+($stackLast$2$i<<1)>>1]|0;$637=$636&255;$638=$636&255;$643=$flags$3$i|HEAP32[104+(($638&1)<<2)>>2]|1024;HEAP8[$$cast+$i$2$i21216>>0]=$638&127;$embeddingLevel$2$i=$637;$flags$5$i26=$643;$lastCcPos$2$i=$lastCcPos$1$i;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$1$i;$overflowIsolateCount$2$i=$overflowIsolateCount$1$i;$previousLevel$1$i=$637;$stackLast$3$i=$stackLast$2$i;$validIsolateCount$2$i=$validIsolateCount$1$i;break}case 7:{$647=$flags$0$i20215|128;do if(!(HEAP8[$214>>0]|0))label=206;else{$650=HEAP32[$228>>2]|0;if(($i$2$i21216|0)<(HEAP32[$650>>2]|0)){label=206;break}$$sink8$i=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$650,$i$2$i21216)|0}while(0);if((label|0)==206){label=0;$$sink8$i=HEAP8[$203>>0]|0}HEAP8[$$cast+$i$2$i21216>>0]=$$sink8$i;$656=$i$2$i21216+1|0;if(($656|0)>=($450|0)){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$647;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}if((HEAP16[$449+($i$2$i21216<<1)>>1]|0)==13)if((HEAP16[$449+($656<<1)>>1]|0)==10){$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$647;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break L247}do if(!(HEAP8[$214>>0]|0))label=213;else{$666=HEAP32[$228>>2]|0;if(($656|0)<(HEAP32[$666>>2]|0)){label=213;break}$$sink9$i=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$666,$656)|0}while(0);if((label|0)==213){label=0;$$sink9$i=HEAP8[$203>>0]|0}HEAP16[$bracketData$i>>1]=$$sink9$i&255;HEAP32[$528>>2]=0;HEAP16[$529>>1]=0;HEAP8[$530>>0]=$$sink9$i;$673=$$sink9$i&1;HEAP32[$531>>2]=$673;$674=$673&255;HEAP8[$532>>0]=$674;HEAP8[$533>>0]=$674;HEAP32[$534>>2]=0;$embeddingLevel$2$i=$$sink9$i;$flags$5$i26=$647;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=0;$overflowIsolateCount$2$i=0;$previousLevel$1$i=$$sink9$i;$stackLast$3$i=0;$validIsolateCount$2$i=0;break}case 18:{HEAP8[$$cast+$i$2$i21216>>0]=$previousLevel$0$i220;$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=$flags$0$i20215|262144;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$previousLevel$0$i220;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225;break}default:{$677=$embeddingLevel$0$i219&255;do if(!(($embeddingLevel$0$i219^$previousLevel$0$i220)&127))$flags$4$i=$flags$0$i20215;else{_bracketProcessBoundary($bracketData4$i,$lastCcPos$0$i221,$previousLevel$0$i220,$embeddingLevel$0$i219);$681=$flags$0$i20215|-2147483648;$684=$677&1;if(!($677&128)){$flags$4$i=HEAP32[120+($684<<2)>>2]|$681;break}else{$flags$4$i=HEAP32[112+($684<<2)>>2]|$681;break}}while(0);HEAP8[$$cast+$i$2$i21216>>0]=$embeddingLevel$0$i219;if(!((_bracketProcessChar($bracketData4$i,$i$2$i21216)|0)<<24>>24)){$$0$i29=-1;break L244}$embeddingLevel$2$i=$embeddingLevel$0$i219;$flags$5$i26=1< >0]|$flags$4$i;$lastCcPos$2$i=$lastCcPos$0$i221;$overflowEmbeddingCount$2$i=$overflowEmbeddingCount$0$i224;$overflowIsolateCount$2$i=$overflowIsolateCount$0$i223;$previousLevel$1$i=$embeddingLevel$0$i219;$stackLast$3$i=$stackLast$0$i22222;$validIsolateCount$2$i=$validIsolateCount$0$i225}}while(0);$i$2$i21216=$i$2$i21216+1|0;if(($i$2$i21216|0)>=($450|0))break;else{$embeddingLevel$0$i219=$embeddingLevel$2$i;$flags$0$i20215=$flags$5$i26;$lastCcPos$0$i221=$lastCcPos$2$i;$overflowEmbeddingCount$0$i224=$overflowEmbeddingCount$2$i;$overflowIsolateCount$0$i223=$overflowIsolateCount$2$i;$previousLevel$0$i220=$previousLevel$1$i;$stackLast$0$i22222=$stackLast$3$i;$validIsolateCount$0$i225=$validIsolateCount$2$i}}if(!($flags$5$i26&8380376)){$flags$6$i=$flags$5$i26;label=226;break}$flags$6$i=HEAP32[104+((HEAPU8[$203>>0]&1)<<2)>>2]|$flags$5$i26;label=226}else{$flags$6$i=0;label=226}while(0);if((label|0)==226){$flags$7$i28=((HEAP8[$429>>0]|0)==0|$flags$6$i>>>7&1^1)^1|$flags$6$i;HEAP32[$437>>2]=$flags$7$i28;$$0$i29=_directionFromFlags($flags$7$i28)|0}$$ph=$$0$i29}else $$ph=$462;while(0);if((HEAP32[$pErrorCode>>2]|0)>0)break;$$pre=HEAP32[$459>>2]|0;do if(($$pre|0)<6)HEAP32[$pBiDi+248>>2]=$pBiDi+252;else{$720=$$pre<<4;$721=$pBiDi+44|0;$724=$pBiDi+68|0;if(($720|0)<=(HEAP32[$721>>2]|0)){HEAP32[$pBiDi+248>>2]=HEAP32[$724>>2];break}if(!((_ubidi_getMemory_58($724,$721,1,$720)|0)<<24>>24)){HEAP32[$pErrorCode>>2]=7;break L1}else{HEAP32[$pBiDi+248>>2]=HEAP32[$724>>2];break}}while(0);HEAP32[$459>>2]=-1;HEAP32[$205>>2]=$$ph;L333:do switch($$ph|0){case 0:{HEAP32[$441>>2]=0;break}case 1:{HEAP32[$441>>2]=0;break}default:{L335:do switch(HEAP32[$16>>2]|0){case 0:{HEAP32[$pBiDi+116>>2]=128;break}case 1:{HEAP32[$pBiDi+116>>2]=144;break}case 2:{HEAP32[$pBiDi+116>>2]=160;break}case 4:{HEAP32[$pBiDi+116>>2]=176;break}case 5:{$739=$pBiDi+116|0;if(!(HEAP32[$243>>2]&1)){HEAP32[$739>>2]=208;break L335}else{HEAP32[$739>>2]=192;break L335}break}case 6:{$743=$pBiDi+116|0;if(!(HEAP32[$243>>2]&1)){HEAP32[$743>>2]=240;break L335}else{HEAP32[$743>>2]=224;break L335}break}default:{}}while(0);$744=HEAP32[$206>>2]|0;do if(($744|0)<2){if((HEAP32[$437>>2]|0)<0){label=262;break}do if(!(HEAP8[$214>>0]|0)){$750=HEAP8[$203>>0]|0;$$sink4=$750;$768=$750&1}else{$754=HEAP32[$228>>2]|0;$755=HEAP32[$754>>2]|0;if(($755|0)>0)$$sink=HEAP8[$203>>0]|0;else $$sink=_ubidi_getParaLevelAtIndex_58($744,$754,0)|0;$761=$$sink&1;if(($440|0)>($755|0)){$$sink4=_ubidi_getParaLevelAtIndex_58($744,$754,$440+-1|0)|0;$768=$761;break}else{$$sink4=HEAP8[$203>>0]|0;$768=$761;break}}while(0);_resolveImplicitLevels($pBiDi,0,$440,$768,$$sink4&1)}else label=262;while(0);if((label|0)==262){$769=HEAP32[$208>>2]|0;do if(!(HEAP8[$214>>0]|0))label=264;else{$772=HEAP32[$228>>2]|0;if((HEAP32[$772>>2]|0)>0){label=264;break}$$sink5=_ubidi_getParaLevelAtIndex_58($744,$772,0)|0}while(0);if((label|0)==264)$$sink5=HEAP8[$203>>0]|0;$777=HEAP8[$769>>0]|0;$780=$440+-1|0;$eor$0=(($$sink5&255)<($777&255)?$777:$$sink5)&1;$limit$0=0;$nextLevel$0=$777;while(1){do if(($limit$0|0)>0){if((HEAP8[$439+($limit$0+-1)>>0]|0)!=7){$sor$0$ph=$eor$0;break}do if(!(HEAP8[$214>>0]|0))label=271;else{$788=HEAP32[$228>>2]|0;if(($limit$0|0)<(HEAP32[$788>>2]|0)){label=271;break}$$sink6=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$788,$limit$0)|0}while(0);if((label|0)==271){label=0;$$sink6=HEAP8[$203>>0]|0}$sor$0$ph=$$sink6&1}else $sor$0$ph=$eor$0;while(0);$796=$limit$0+1|0;L383:do if(($796|0)<($440|0)){$799=$796;while(1){$800=HEAP8[$769+$799>>0]|0;if($800<<24>>24!=$nextLevel$0<<24>>24)if(!(1< >0]&382976)){$824=$799;$940=1;$nextLevel$1=$800;break L383}$802=$799+1|0;if(($802|0)<($440|0))$799=$802;else{$$lcssa159=$802;label=278;break}}}else{$$lcssa159=$796;label=278}while(0);L389:do if((label|0)==278){label=0;do if(HEAP8[$214>>0]|0){$812=HEAP32[$228>>2]|0;if(($440|0)<=(HEAP32[$812>>2]|0))break;$824=$$lcssa159;$940=0;$nextLevel$1=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$812,$780)|0;break L389}while(0);$824=$$lcssa159;$940=0;$nextLevel$1=HEAP8[$203>>0]|0}while(0);$817=$nextLevel$0&255;$819=$nextLevel$1&255;$eor$0=(($817&127)>>>0<($819&127)>>>0?$819:$817)&1;if(!($817&128))_resolveImplicitLevels($pBiDi,$limit$0,$824,$sor$0$ph,$eor$0);else{$start$0=$limit$0;do{$826=$769+$start$0|0;$start$0=$start$0+1|0;HEAP8[$826>>0]=HEAPU8[$826>>0]&127}while(($start$0|0)<($824|0))}if(!$940)break;else{$limit$0=$824;$nextLevel$0=$nextLevel$1}}}$833=HEAP32[$pBiDi+344>>2]|0;if(($833|0)>0){HEAP32[$pErrorCode>>2]=$833;break L1}$835=HEAP32[$207>>2]|0;$836=HEAP32[$208>>2]|0;if(!(HEAP32[$437>>2]&8248192))break L333;$841=HEAP32[$441>>2]|0;$842=(HEAP8[$429>>0]|0)!=0;if(($841|0)>0)$i$0$i199=$841;else break L333;while(1){if(($i$0$i199|0)>0)$i$1$i192=$i$0$i199;else break L333;while(1){$845=$i$1$i192+-1|0;$847=HEAP8[$835+$845>>0]|0;if(!(1<<($847&255)&8248192))break;if($842&$847<<24>>24==7)HEAP8[$836+$845>>0]=0;else{do if(!(HEAP8[$214>>0]|0))label=298;else{$858=HEAP32[$228>>2]|0;if(($i$1$i192|0)<=(HEAP32[$858>>2]|0)){label=298;break}$$sink$i=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$858,$845)|0}while(0);if((label|0)==298){label=0;$$sink$i=HEAP8[$203>>0]|0}HEAP8[$836+$845>>0]=$$sink$i}if(($i$1$i192|0)>1)$i$1$i192=$845;else break L333}if(($i$1$i192|0)>1)$i$2$i196=$845;else break L333;while(1){$864=$i$2$i196+-1|0;$866=HEAP8[$835+$864>>0]|0;$868=1<<($866&255);if(!($868&382976)){if($842&$866<<24>>24==7){label=305;break}if($868&384){label=308;break}}else HEAP8[$836+$864>>0]=HEAP8[$836+$i$2$i196>>0]|0;if(($i$2$i196|0)>1)$i$2$i196=$864;else break L333}if((label|0)==305){label=0;HEAP8[$836+$864>>0]=0}else if((label|0)==308){label=0;do if(!(HEAP8[$214>>0]|0))label=310;else{$882=HEAP32[$228>>2]|0;if(($i$2$i196|0)<=(HEAP32[$882>>2]|0)){label=310;break}$$sink1$i=_ubidi_getParaLevelAtIndex_58(HEAP32[$206>>2]|0,$882,$864)|0}while(0);if((label|0)==310){label=0;$$sink1$i=HEAP8[$203>>0]|0}HEAP8[$836+$864>>0]=$$sink1$i}if(($i$2$i196|0)>1)$i$0$i199=$864;else break}}}while(0);do if(HEAP8[$214>>0]|0){if(!(HEAP32[$243>>2]&1))break;if(((HEAP32[$16>>2]|0)+-5|0)>>>0>=2)break;$894=HEAP32[$206>>2]|0;if(($894|0)>0){$941=$894;$i$0190=0}else break;while(1){$896=HEAP32[$228>>2]|0;$898=HEAP32[$896+($i$0190<<3)>>2]|0;$899=$898+-1|0;L448:do if(!(HEAP32[$896+($i$0190<<3)+4>>2]&255))$926=$941;else{if(!$i$0190)$909=0;else $909=HEAP32[$896+($i$0190+-1<<3)>>2]|0;if(($898|0)>($909|0))$j$0186=$899;else{$926=$941;break}while(1){$911=HEAP8[$439+$j$0186>>0]|0;if(!($911<<24>>24))break;if(1<<($911&255)&8194){$926=$941;break L448}if(($j$0186|0)>($909|0))$j$0186=$j$0186+-1|0;else{$926=$941;break L448}}if(($j$0186|0)<($899|0)){$last$0=$899;while(1)if((HEAP8[$439+$last$0>>0]|0)==7)$last$0=$last$0+-1|0;else{$last$1=$last$0;break}}else $last$1=$899;_addPoint($pBiDi,$last$1,4);$926=HEAP32[$206>>2]|0}while(0);$i$0190=$i$0190+1|0;if(($i$0190|0)>=($926|0))break;else $941=$926}}while(0);if(!(HEAP32[$243>>2]&2))$storemerge=(HEAP32[$200>>2]|0)+(HEAP32[$210>>2]|0)|0;else $storemerge=(HEAP32[$200>>2]|0)-(HEAP32[$286>>2]|0)|0;HEAP32[$200>>2]=$storemerge;HEAP32[$pBiDi+104>>2]=0;HEAP32[$pBiDi+112>>2]=0;HEAP32[$pBiDi>>2]=$pBiDi;break}}HEAP32[$pErrorCode>>2]=1}while(0);STACKTOP=sp;return}function _malloc($bytes){$bytes=$bytes|0;var $$3$i=0,$$pre$phi$i$iZ2D=0,$$pre$phi$i23$iZ2D=0,$$pre$phi$i26Z2D=0,$$pre$phi$iZ2D=0,$$pre$phi58$i$iZ2D=0,$$pre$phiZ2D=0,$$rsize$3$i=0,$$sum$i19$i=0,$$sum2$i21$i=0,$$sum3132$i$i=0,$$sum67$i$i=0,$100=0,$1000=0,$1002=0,$1005=0,$1010=0,$1016=0,$1019=0,$1020=0,$1027=0,$1039=0,$1044=0,$1051=0,$1052=0,$1053=0,$106=0,$1060=0,$1062=0,$1063=0,$1070=0,$110=0,$112=0,$113=0,$115=0,$117=0,$119=0,$12=0,$121=0,$123=0,$125=0,$127=0,$13=0,$132=0,$138=0,$14=0,$141=0,$144=0,$147=0,$148=0,$149=0,$15=0,$151=0,$154=0,$156=0,$159=0,$16=0,$161=0,$164=0,$167=0,$168=0,$17=0,$170=0,$171=0,$173=0,$174=0,$176=0,$177=0,$18=0,$182=0,$183=0,$192=0,$197=0,$201=0,$207=0,$214=0,$217=0,$225=0,$227=0,$228=0,$229=0,$230=0,$231=0,$232=0,$236=0,$237=0,$245=0,$246=0,$247=0,$249=0,$25=0,$250=0,$255=0,$256=0,$259=0,$261=0,$264=0,$269=0,$276=0,$28=0,$285=0,$286=0,$290=0,$300=0,$303=0,$307=0,$309=0,$31=0,$310=0,$312=0,$314=0,$316=0,$318=0,$320=0,$322=0,$324=0,$334=0,$335=0,$337=0,$34=0,$346=0,$348=0,$351=0,$353=0,$356=0,$358=0,$361=0,$364=0,$365=0,$367=0,$368=0,$370=0,$371=0,$373=0,$374=0,$379=0,$38=0,$380=0,$389=0,$394=0,$398=0,$4=0,$404=0,$41=0,$411=0,$414=0,$422=0,$424=0,$425=0,$426=0,$427=0,$431=0,$432=0,$438=0,$44=0,$443=0,$444=0,$447=0,$449=0,$452=0,$457=0,$46=0,$463=0,$467=0,$468=0,$47=0,$475=0,$487=0,$49=0,$492=0,$499=0,$5=0,$500=0,$501=0,$509=0,$51=0,$511=0,$512=0,$522=0,$526=0,$528=0,$529=0,$53=0,$538=0,$544=0,$545=0,$546=0,$547=0,$548=0,$549=0,$55=0,$550=0,$552=0,$554=0,$555=0,$561=0,$563=0,$565=0,$57=0,$570=0,$572=0,$574=0,$575=0,$576=0,$584=0,$585=0,$588=0,$59=0,$592=0,$593=0,$596=0,$598=0,$6=0,$602=0,$604=0,$608=0,$61=0,$612=0,$621=0,$622=0,$628=0,$630=0,$632=0,$635=0,$637=0,$64=0,$641=0,$642=0,$648=0,$65=0,$653=0,$655=0,$66=0,$660=0,$661=0,$662=0,$666=0,$67=0,$676=0,$678=0,$68=0,$683=0,$685=0,$69=0,$690=0,$692=0,$696=0,$7=0,$70=0,$702=0,$706=0,$711=0,$714=0,$719=0,$720=0,$724=0,$725=0,$730=0,$736=0,$741=0,$744=0,$745=0,$748=0,$750=0,$752=0,$755=0,$766=0,$77=0,$771=0,$773=0,$776=0,$778=0,$781=0,$784=0,$785=0,$787=0,$788=0,$790=0,$791=0,$793=0,$794=0,$799=0,$80=0,$800=0,$809=0,$81=0,$814=0,$818=0,$824=0,$832=0,$838=0,$84=0,$840=0,$841=0,$842=0,$843=0,$847=0,$848=0,$854=0,$859=0,$860=0,$863=0,$865=0,$868=0,$873=0,$879=0,$883=0,$884=0,$89=0,$891=0,$90=0,$903=0,$908=0,$91=0,$915=0,$916=0,$917=0,$92=0,$925=0,$928=0,$929=0,$93=0,$934=0,$94=0,$940=0,$941=0,$943=0,$944=0,$947=0,$95=0,$952=0,$954=0,$959=0,$960=0,$964=0,$970=0,$975=0,$977=0,$978=0,$979=0,$980=0,$984=0,$985=0,$99=0,$991=0,$996=0,$997=0,$F$0$i$i=0,$F1$0$i=0,$F4$0=0,$F4$0$i$i=0,$F5$0$i=0,$I1$0$i$i=0,$I7$0$i=0,$I7$0$i$i=0,$K12$029$i=0,$K2$07$i$i=0,$K8$051$i$i=0,$R$0$i=0,$R$0$i$i=0,$R$0$i18=0,$R$1$i=0,$R$1$i$i=0,$R$1$i20=0,$RP$0$i=0,$RP$0$i$i=0,$RP$0$i17=0,$T$0$lcssa$i=0,$T$0$lcssa$i$i=0,$T$0$lcssa$i25$i=0,$T$028$i=0,$T$050$i$i=0,$T$06$i$i=0,$br$0$ph$i=0,$i$02$i$i=0,$idx$0$i=0,$mem$0=0,$nb$0=0,$oldfirst$0$i$i=0,$qsize$0$i$i=0,$rsize$0$i=0,$rsize$0$i15=0,$rsize$1$i=0,$rsize$2$i=0,$rsize$3$lcssa$i=0,$rsize$331$i=0,$rst$0$i=0,$rst$1$i=0,$sizebits$0$i=0,$sp$0$i$i=0,$sp$0$i$i$i=0,$sp$084$i=0,$sp$183$i=0,$ssize$0$$i=0,$ssize$0$i=0,$ssize$1$ph$i=0,$ssize$2$i=0,$t$0$i=0,$t$0$i14=0,$t$1$i=0,$t$2$ph$i=0,$t$2$v$3$i=0,$t$230$i=0,$tbase$255$i=0,$tsize$0$ph$i=0,$tsize$0323944$i=0,$tsize$1$i=0,$tsize$254$i=0,$v$0$i=0,$v$0$i16=0,$v$1$i=0,$v$2$i=0,$v$3$lcssa$i=0,$v$3$ph$i=0,$v$332$i=0,label=0,$964$looptemp=0;do if($bytes>>>0<245){$4=$bytes>>>0<11?16:$bytes+11&-8;$5=$4>>>3;$6=HEAP32[164]|0;$7=$6>>>$5;if($7&3){$12=($7&1^1)+$5|0;$13=$12<<1;$14=696+($13<<2)|0;$15=696+($13+2<<2)|0;$16=HEAP32[$15>>2]|0;$17=$16+8|0;$18=HEAP32[$17>>2]|0;do if(($14|0)==($18|0))HEAP32[164]=$6&~(1<<$12);else{if($18>>>0<(HEAP32[168]|0)>>>0)_abort();$25=$18+12|0;if((HEAP32[$25>>2]|0)==($16|0)){HEAP32[$25>>2]=$14;HEAP32[$15>>2]=$18;break}else _abort()}while(0);$28=$12<<3;HEAP32[$16+4>>2]=$28|3;$31=$16+($28|4)|0;HEAP32[$31>>2]=HEAP32[$31>>2]|1;$mem$0=$17;return $mem$0|0}$34=HEAP32[166]|0;if($4>>>0>$34>>>0){if($7){$38=2<<$5;$41=$7<<$5&($38|0-$38);$44=($41&0-$41)+-1|0;$46=$44>>>12&16;$47=$44>>>$46;$49=$47>>>5&8;$51=$47>>>$49;$53=$51>>>2&4;$55=$51>>>$53;$57=$55>>>1&2;$59=$55>>>$57;$61=$59>>>1&1;$64=($49|$46|$53|$57|$61)+($59>>>$61)|0;$65=$64<<1;$66=696+($65<<2)|0;$67=696+($65+2<<2)|0;$68=HEAP32[$67>>2]|0;$69=$68+8|0;$70=HEAP32[$69>>2]|0;do if(($66|0)==($70|0)){HEAP32[164]=$6&~(1<<$64);$89=$34}else{if($70>>>0<(HEAP32[168]|0)>>>0)_abort();$77=$70+12|0;if((HEAP32[$77>>2]|0)==($68|0)){HEAP32[$77>>2]=$66;HEAP32[$67>>2]=$70;$89=HEAP32[166]|0;break}else _abort()}while(0);$80=$64<<3;$81=$80-$4|0;HEAP32[$68+4>>2]=$4|3;$84=$68+$4|0;HEAP32[$68+($4|4)>>2]=$81|1;HEAP32[$68+$80>>2]=$81;if($89){$90=HEAP32[169]|0;$91=$89>>>3;$92=$91<<1;$93=696+($92<<2)|0;$94=HEAP32[164]|0;$95=1<<$91;if(!($94&$95)){HEAP32[164]=$94|$95;$$pre$phiZ2D=696+($92+2<<2)|0;$F4$0=$93}else{$99=696+($92+2<<2)|0;$100=HEAP32[$99>>2]|0;if($100>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phiZ2D=$99;$F4$0=$100}}HEAP32[$$pre$phiZ2D>>2]=$90;HEAP32[$F4$0+12>>2]=$90;HEAP32[$90+8>>2]=$F4$0;HEAP32[$90+12>>2]=$93}HEAP32[166]=$81;HEAP32[169]=$84;$mem$0=$69;return $mem$0|0}$106=HEAP32[165]|0;if(!$106)$nb$0=$4;else{$110=($106&0-$106)+-1|0;$112=$110>>>12&16;$113=$110>>>$112;$115=$113>>>5&8;$117=$113>>>$115;$119=$117>>>2&4;$121=$117>>>$119;$123=$121>>>1&2;$125=$121>>>$123;$127=$125>>>1&1;$132=HEAP32[960+(($115|$112|$119|$123|$127)+($125>>>$127)<<2)>>2]|0;$rsize$0$i=(HEAP32[$132+4>>2]&-8)-$4|0;$t$0$i=$132;$v$0$i=$132;while(1){$138=HEAP32[$t$0$i+16>>2]|0;if(!$138){$141=HEAP32[$t$0$i+20>>2]|0;if(!$141)break;else $144=$141}else $144=$138;$147=(HEAP32[$144+4>>2]&-8)-$4|0;$148=$147>>>0<$rsize$0$i>>>0;$rsize$0$i=$148?$147:$rsize$0$i;$t$0$i=$144;$v$0$i=$148?$144:$v$0$i}$149=HEAP32[168]|0;if($v$0$i>>>0<$149>>>0)_abort();$151=$v$0$i+$4|0;if($v$0$i>>>0>=$151>>>0)_abort();$154=HEAP32[$v$0$i+24>>2]|0;$156=HEAP32[$v$0$i+12>>2]|0;do if(($156|0)==($v$0$i|0)){$167=$v$0$i+20|0;$168=HEAP32[$167>>2]|0;if(!$168){$170=$v$0$i+16|0;$171=HEAP32[$170>>2]|0;if(!$171){$R$1$i=0;break}else{$R$0$i=$171;$RP$0$i=$170}}else{$R$0$i=$168;$RP$0$i=$167}while(1){$173=$R$0$i+20|0;$174=HEAP32[$173>>2]|0;if($174){$R$0$i=$174;$RP$0$i=$173;continue}$176=$R$0$i+16|0;$177=HEAP32[$176>>2]|0;if(!$177)break;else{$R$0$i=$177;$RP$0$i=$176}}if($RP$0$i>>>0<$149>>>0)_abort();else{HEAP32[$RP$0$i>>2]=0;$R$1$i=$R$0$i;break}}else{$159=HEAP32[$v$0$i+8>>2]|0;if($159>>>0<$149>>>0)_abort();$161=$159+12|0;if((HEAP32[$161>>2]|0)!=($v$0$i|0))_abort();$164=$156+8|0;if((HEAP32[$164>>2]|0)==($v$0$i|0)){HEAP32[$161>>2]=$156;HEAP32[$164>>2]=$159;$R$1$i=$156;break}else _abort()}while(0);do if($154){$182=HEAP32[$v$0$i+28>>2]|0;$183=960+($182<<2)|0;if(($v$0$i|0)==(HEAP32[$183>>2]|0)){HEAP32[$183>>2]=$R$1$i;if(!$R$1$i){HEAP32[165]=HEAP32[165]&~(1<<$182);break}}else{if($154>>>0<(HEAP32[168]|0)>>>0)_abort();$192=$154+16|0;if((HEAP32[$192>>2]|0)==($v$0$i|0))HEAP32[$192>>2]=$R$1$i;else HEAP32[$154+20>>2]=$R$1$i;if(!$R$1$i)break}$197=HEAP32[168]|0;if($R$1$i>>>0<$197>>>0)_abort();HEAP32[$R$1$i+24>>2]=$154;$201=HEAP32[$v$0$i+16>>2]|0;do if($201)if($201>>>0<$197>>>0)_abort();else{HEAP32[$R$1$i+16>>2]=$201;HEAP32[$201+24>>2]=$R$1$i;break}while(0);$207=HEAP32[$v$0$i+20>>2]|0;if($207)if($207>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1$i+20>>2]=$207;HEAP32[$207+24>>2]=$R$1$i;break}}while(0);if($rsize$0$i>>>0<16){$214=$rsize$0$i+$4|0;HEAP32[$v$0$i+4>>2]=$214|3;$217=$v$0$i+($214+4)|0;HEAP32[$217>>2]=HEAP32[$217>>2]|1}else{HEAP32[$v$0$i+4>>2]=$4|3;HEAP32[$v$0$i+($4|4)>>2]=$rsize$0$i|1;HEAP32[$v$0$i+($rsize$0$i+$4)>>2]=$rsize$0$i;$225=HEAP32[166]|0;if($225){$227=HEAP32[169]|0;$228=$225>>>3;$229=$228<<1;$230=696+($229<<2)|0;$231=HEAP32[164]|0;$232=1<<$228;if(!($231&$232)){HEAP32[164]=$231|$232;$$pre$phi$iZ2D=696+($229+2<<2)|0;$F1$0$i=$230}else{$236=696+($229+2<<2)|0;$237=HEAP32[$236>>2]|0;if($237>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phi$iZ2D=$236;$F1$0$i=$237}}HEAP32[$$pre$phi$iZ2D>>2]=$227;HEAP32[$F1$0$i+12>>2]=$227;HEAP32[$227+8>>2]=$F1$0$i;HEAP32[$227+12>>2]=$230}HEAP32[166]=$rsize$0$i;HEAP32[169]=$151}$mem$0=$v$0$i+8|0;return $mem$0|0}}else $nb$0=$4}else if($bytes>>>0>4294967231)$nb$0=-1;else{$245=$bytes+11|0;$246=$245&-8;$247=HEAP32[165]|0;if(!$247)$nb$0=$246;else{$249=0-$246|0;$250=$245>>>8;if(!$250)$idx$0$i=0;else if($246>>>0>16777215)$idx$0$i=31;else{$255=($250+1048320|0)>>>16&8;$256=$250<<$255;$259=($256+520192|0)>>>16&4;$261=$256<<$259;$264=($261+245760|0)>>>16&2;$269=14-($259|$255|$264)+($261<<$264>>>15)|0;$idx$0$i=$246>>>($269+7|0)&1|$269<<1}$276=HEAP32[960+($idx$0$i<<2)>>2]|0;L123:do if(!$276){$rsize$2$i=$249;$t$1$i=0;$v$2$i=0;label=86}else{$rsize$0$i15=$249;$rst$0$i=0;$sizebits$0$i=$246<<(($idx$0$i|0)==31?0:25-($idx$0$i>>>1)|0);$t$0$i14=$276;$v$0$i16=0;while(1){$285=HEAP32[$t$0$i14+4>>2]&-8;$286=$285-$246|0;if($286>>>0<$rsize$0$i15>>>0)if(($285|0)==($246|0)){$rsize$331$i=$286;$t$230$i=$t$0$i14;$v$332$i=$t$0$i14;label=90;break L123}else{$rsize$1$i=$286;$v$1$i=$t$0$i14}else{$rsize$1$i=$rsize$0$i15;$v$1$i=$v$0$i16}$290=HEAP32[$t$0$i14+20>>2]|0;$t$0$i14=HEAP32[$t$0$i14+16+($sizebits$0$i>>>31<<2)>>2]|0;$rst$1$i=($290|0)==0|($290|0)==($t$0$i14|0)?$rst$0$i:$290;if(!$t$0$i14){$rsize$2$i=$rsize$1$i;$t$1$i=$rst$1$i;$v$2$i=$v$1$i;label=86;break}else{$rsize$0$i15=$rsize$1$i;$rst$0$i=$rst$1$i;$sizebits$0$i=$sizebits$0$i<<1;$v$0$i16=$v$1$i}}}while(0);if((label|0)==86){if(($t$1$i|0)==0&($v$2$i|0)==0){$300=2<<$idx$0$i;$303=($300|0-$300)&$247;if(!$303){$nb$0=$246;break}$307=($303&0-$303)+-1|0;$309=$307>>>12&16;$310=$307>>>$309;$312=$310>>>5&8;$314=$310>>>$312;$316=$314>>>2&4;$318=$314>>>$316;$320=$318>>>1&2;$322=$318>>>$320;$324=$322>>>1&1;$t$2$ph$i=HEAP32[960+(($312|$309|$316|$320|$324)+($322>>>$324)<<2)>>2]|0;$v$3$ph$i=0}else{$t$2$ph$i=$t$1$i;$v$3$ph$i=$v$2$i}if(!$t$2$ph$i){$rsize$3$lcssa$i=$rsize$2$i;$v$3$lcssa$i=$v$3$ph$i}else{$rsize$331$i=$rsize$2$i;$t$230$i=$t$2$ph$i;$v$332$i=$v$3$ph$i;label=90}}if((label|0)==90)while(1){label=0;$334=(HEAP32[$t$230$i+4>>2]&-8)-$246|0;$335=$334>>>0<$rsize$331$i>>>0;$$rsize$3$i=$335?$334:$rsize$331$i;$t$2$v$3$i=$335?$t$230$i:$v$332$i;$337=HEAP32[$t$230$i+16>>2]|0;if($337){$rsize$331$i=$$rsize$3$i;$t$230$i=$337;$v$332$i=$t$2$v$3$i;label=90;continue}$t$230$i=HEAP32[$t$230$i+20>>2]|0;if(!$t$230$i){$rsize$3$lcssa$i=$$rsize$3$i;$v$3$lcssa$i=$t$2$v$3$i;break}else{$rsize$331$i=$$rsize$3$i;$v$332$i=$t$2$v$3$i;label=90}}if(!$v$3$lcssa$i)$nb$0=$246;else if($rsize$3$lcssa$i>>>0<((HEAP32[166]|0)-$246|0)>>>0){$346=HEAP32[168]|0;if($v$3$lcssa$i>>>0<$346>>>0)_abort();$348=$v$3$lcssa$i+$246|0;if($v$3$lcssa$i>>>0>=$348>>>0)_abort();$351=HEAP32[$v$3$lcssa$i+24>>2]|0;$353=HEAP32[$v$3$lcssa$i+12>>2]|0;do if(($353|0)==($v$3$lcssa$i|0)){$364=$v$3$lcssa$i+20|0;$365=HEAP32[$364>>2]|0;if(!$365){$367=$v$3$lcssa$i+16|0;$368=HEAP32[$367>>2]|0;if(!$368){$R$1$i20=0;break}else{$R$0$i18=$368;$RP$0$i17=$367}}else{$R$0$i18=$365;$RP$0$i17=$364}while(1){$370=$R$0$i18+20|0;$371=HEAP32[$370>>2]|0;if($371){$R$0$i18=$371;$RP$0$i17=$370;continue}$373=$R$0$i18+16|0;$374=HEAP32[$373>>2]|0;if(!$374)break;else{$R$0$i18=$374;$RP$0$i17=$373}}if($RP$0$i17>>>0<$346>>>0)_abort();else{HEAP32[$RP$0$i17>>2]=0;$R$1$i20=$R$0$i18;break}}else{$356=HEAP32[$v$3$lcssa$i+8>>2]|0;if($356>>>0<$346>>>0)_abort();$358=$356+12|0;if((HEAP32[$358>>2]|0)!=($v$3$lcssa$i|0))_abort();$361=$353+8|0;if((HEAP32[$361>>2]|0)==($v$3$lcssa$i|0)){HEAP32[$358>>2]=$353;HEAP32[$361>>2]=$356;$R$1$i20=$353;break}else _abort()}while(0);do if($351){$379=HEAP32[$v$3$lcssa$i+28>>2]|0;$380=960+($379<<2)|0;if(($v$3$lcssa$i|0)==(HEAP32[$380>>2]|0)){HEAP32[$380>>2]=$R$1$i20;if(!$R$1$i20){HEAP32[165]=HEAP32[165]&~(1<<$379);break}}else{if($351>>>0<(HEAP32[168]|0)>>>0)_abort();$389=$351+16|0;if((HEAP32[$389>>2]|0)==($v$3$lcssa$i|0))HEAP32[$389>>2]=$R$1$i20;else HEAP32[$351+20>>2]=$R$1$i20;if(!$R$1$i20)break}$394=HEAP32[168]|0;if($R$1$i20>>>0<$394>>>0)_abort();HEAP32[$R$1$i20+24>>2]=$351;$398=HEAP32[$v$3$lcssa$i+16>>2]|0;do if($398)if($398>>>0<$394>>>0)_abort();else{HEAP32[$R$1$i20+16>>2]=$398;HEAP32[$398+24>>2]=$R$1$i20;break}while(0);$404=HEAP32[$v$3$lcssa$i+20>>2]|0;if($404)if($404>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1$i20+20>>2]=$404;HEAP32[$404+24>>2]=$R$1$i20;break}}while(0);L199:do if($rsize$3$lcssa$i>>>0<16){$411=$rsize$3$lcssa$i+$246|0;HEAP32[$v$3$lcssa$i+4>>2]=$411|3;$414=$v$3$lcssa$i+($411+4)|0;HEAP32[$414>>2]=HEAP32[$414>>2]|1}else{HEAP32[$v$3$lcssa$i+4>>2]=$246|3;HEAP32[$v$3$lcssa$i+($246|4)>>2]=$rsize$3$lcssa$i|1;HEAP32[$v$3$lcssa$i+($rsize$3$lcssa$i+$246)>>2]=$rsize$3$lcssa$i;$422=$rsize$3$lcssa$i>>>3;if($rsize$3$lcssa$i>>>0<256){$424=$422<<1;$425=696+($424<<2)|0;$426=HEAP32[164]|0;$427=1<<$422;if(!($426&$427)){HEAP32[164]=$426|$427;$$pre$phi$i26Z2D=696+($424+2<<2)|0;$F5$0$i=$425}else{$431=696+($424+2<<2)|0;$432=HEAP32[$431>>2]|0;if($432>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phi$i26Z2D=$431;$F5$0$i=$432}}HEAP32[$$pre$phi$i26Z2D>>2]=$348;HEAP32[$F5$0$i+12>>2]=$348;HEAP32[$v$3$lcssa$i+($246+8)>>2]=$F5$0$i;HEAP32[$v$3$lcssa$i+($246+12)>>2]=$425;break}$438=$rsize$3$lcssa$i>>>8;if(!$438)$I7$0$i=0;else if($rsize$3$lcssa$i>>>0>16777215)$I7$0$i=31;else{$443=($438+1048320|0)>>>16&8;$444=$438<<$443;$447=($444+520192|0)>>>16&4;$449=$444<<$447;$452=($449+245760|0)>>>16&2;$457=14-($447|$443|$452)+($449<<$452>>>15)|0;$I7$0$i=$rsize$3$lcssa$i>>>($457+7|0)&1|$457<<1}$463=960+($I7$0$i<<2)|0;HEAP32[$v$3$lcssa$i+($246+28)>>2]=$I7$0$i;HEAP32[$v$3$lcssa$i+($246+20)>>2]=0;HEAP32[$v$3$lcssa$i+($246+16)>>2]=0;$467=HEAP32[165]|0;$468=1<<$I7$0$i;if(!($467&$468)){HEAP32[165]=$467|$468;HEAP32[$463>>2]=$348;HEAP32[$v$3$lcssa$i+($246+24)>>2]=$463;HEAP32[$v$3$lcssa$i+($246+12)>>2]=$348;HEAP32[$v$3$lcssa$i+($246+8)>>2]=$348;break}$475=HEAP32[$463>>2]|0;L217:do if((HEAP32[$475+4>>2]&-8|0)==($rsize$3$lcssa$i|0))$T$0$lcssa$i=$475;else{$K12$029$i=$rsize$3$lcssa$i<<(($I7$0$i|0)==31?0:25-($I7$0$i>>>1)|0);$T$028$i=$475;while(1){$492=$T$028$i+16+($K12$029$i>>>31<<2)|0;$487=HEAP32[$492>>2]|0;if(!$487)break;if((HEAP32[$487+4>>2]&-8|0)==($rsize$3$lcssa$i|0)){$T$0$lcssa$i=$487;break L217}else{$K12$029$i=$K12$029$i<<1;$T$028$i=$487}}if($492>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$492>>2]=$348;HEAP32[$v$3$lcssa$i+($246+24)>>2]=$T$028$i;HEAP32[$v$3$lcssa$i+($246+12)>>2]=$348;HEAP32[$v$3$lcssa$i+($246+8)>>2]=$348;break L199}}while(0);$499=$T$0$lcssa$i+8|0;$500=HEAP32[$499>>2]|0;$501=HEAP32[168]|0;if($500>>>0>=$501>>>0&$T$0$lcssa$i>>>0>=$501>>>0){HEAP32[$500+12>>2]=$348;HEAP32[$499>>2]=$348;HEAP32[$v$3$lcssa$i+($246+8)>>2]=$500;HEAP32[$v$3$lcssa$i+($246+12)>>2]=$T$0$lcssa$i;HEAP32[$v$3$lcssa$i+($246+24)>>2]=0;break}else _abort()}while(0);$mem$0=$v$3$lcssa$i+8|0;return $mem$0|0}else $nb$0=$246}}while(0);$509=HEAP32[166]|0;if($509>>>0>=$nb$0>>>0){$511=$509-$nb$0|0;$512=HEAP32[169]|0;if($511>>>0>15){HEAP32[169]=$512+$nb$0;HEAP32[166]=$511;HEAP32[$512+($nb$0+4)>>2]=$511|1;HEAP32[$512+$509>>2]=$511;HEAP32[$512+4>>2]=$nb$0|3}else{HEAP32[166]=0;HEAP32[169]=0;HEAP32[$512+4>>2]=$509|3;$522=$512+($509+4)|0;HEAP32[$522>>2]=HEAP32[$522>>2]|1}$mem$0=$512+8|0;return $mem$0|0}$526=HEAP32[167]|0;if($526>>>0>$nb$0>>>0){$528=$526-$nb$0|0;HEAP32[167]=$528;$529=HEAP32[170]|0;HEAP32[170]=$529+$nb$0;HEAP32[$529+($nb$0+4)>>2]=$528|1;HEAP32[$529+4>>2]=$nb$0|3;$mem$0=$529+8|0;return $mem$0|0}do if(!(HEAP32[282]|0)){$538=_sysconf(30)|0;if(!($538+-1&$538)){HEAP32[284]=$538;HEAP32[283]=$538;HEAP32[285]=-1;HEAP32[286]=-1;HEAP32[287]=0;HEAP32[275]=0;$544=(_time(0)|0)&-16^1431655768;HEAP32[282]=$544;break}else _abort()}while(0);$545=$nb$0+48|0;$546=HEAP32[284]|0;$547=$nb$0+47|0;$548=$546+$547|0;$549=0-$546|0;$550=$548&$549;if($550>>>0<=$nb$0>>>0){$mem$0=0;return $mem$0|0}$552=HEAP32[274]|0;if($552){$554=HEAP32[272]|0;$555=$554+$550|0;if($555>>>0<=$554>>>0|$555>>>0>$552>>>0){$mem$0=0;return $mem$0|0}}L258:do if(!(HEAP32[275]&4)){$561=HEAP32[170]|0;L260:do if(!$561)label=174;else{$sp$0$i$i=1104;while(1){$563=HEAP32[$sp$0$i$i>>2]|0; + +if($563>>>0<=$561>>>0){$565=$sp$0$i$i+4|0;if(($563+(HEAP32[$565>>2]|0)|0)>>>0>$561>>>0)break}$570=HEAP32[$sp$0$i$i+8>>2]|0;if(!$570){label=174;break L260}else $sp$0$i$i=$570}$596=$548-(HEAP32[167]|0)&$549;if($596>>>0<2147483647){$598=_sbrk($596|0)|0;$602=($598|0)==((HEAP32[$sp$0$i$i>>2]|0)+(HEAP32[$565>>2]|0)|0);$$3$i=$602?$596:0;if($602)if(($598|0)==(-1|0))$tsize$0323944$i=$$3$i;else{$tbase$255$i=$598;$tsize$254$i=$$3$i;label=194;break L258}else{$br$0$ph$i=$598;$ssize$1$ph$i=$596;$tsize$0$ph$i=$$3$i;label=184}}else $tsize$0323944$i=0}while(0);do if((label|0)==174){$572=_sbrk(0)|0;if(($572|0)==(-1|0))$tsize$0323944$i=0;else{$574=$572;$575=HEAP32[283]|0;$576=$575+-1|0;if(!($576&$574))$ssize$0$i=$550;else $ssize$0$i=$550-$574+($576+$574&0-$575)|0;$584=HEAP32[272]|0;$585=$584+$ssize$0$i|0;if($ssize$0$i>>>0>$nb$0>>>0&$ssize$0$i>>>0<2147483647){$588=HEAP32[274]|0;if($588)if($585>>>0<=$584>>>0|$585>>>0>$588>>>0){$tsize$0323944$i=0;break}$592=_sbrk($ssize$0$i|0)|0;$593=($592|0)==($572|0);$ssize$0$$i=$593?$ssize$0$i:0;if($593){$tbase$255$i=$572;$tsize$254$i=$ssize$0$$i;label=194;break L258}else{$br$0$ph$i=$592;$ssize$1$ph$i=$ssize$0$i;$tsize$0$ph$i=$ssize$0$$i;label=184}}else $tsize$0323944$i=0}}while(0);L280:do if((label|0)==184){$604=0-$ssize$1$ph$i|0;do if($545>>>0>$ssize$1$ph$i>>>0&($ssize$1$ph$i>>>0<2147483647&($br$0$ph$i|0)!=(-1|0))){$608=HEAP32[284]|0;$612=$547-$ssize$1$ph$i+$608&0-$608;if($612>>>0<2147483647)if((_sbrk($612|0)|0)==(-1|0)){_sbrk($604|0)|0;$tsize$0323944$i=$tsize$0$ph$i;break L280}else{$ssize$2$i=$612+$ssize$1$ph$i|0;break}else $ssize$2$i=$ssize$1$ph$i}else $ssize$2$i=$ssize$1$ph$i;while(0);if(($br$0$ph$i|0)==(-1|0))$tsize$0323944$i=$tsize$0$ph$i;else{$tbase$255$i=$br$0$ph$i;$tsize$254$i=$ssize$2$i;label=194;break L258}}while(0);HEAP32[275]=HEAP32[275]|4;$tsize$1$i=$tsize$0323944$i;label=191}else{$tsize$1$i=0;label=191}while(0);if((label|0)==191)if($550>>>0<2147483647){$621=_sbrk($550|0)|0;$622=_sbrk(0)|0;if($621>>>0<$622>>>0&(($621|0)!=(-1|0)&($622|0)!=(-1|0))){$628=$622-$621|0;$630=$628>>>0>($nb$0+40|0)>>>0;if($630){$tbase$255$i=$621;$tsize$254$i=$630?$628:$tsize$1$i;label=194}}}if((label|0)==194){$632=(HEAP32[272]|0)+$tsize$254$i|0;HEAP32[272]=$632;if($632>>>0>(HEAP32[273]|0)>>>0)HEAP32[273]=$632;$635=HEAP32[170]|0;L299:do if(!$635){$637=HEAP32[168]|0;if(($637|0)==0|$tbase$255$i>>>0<$637>>>0)HEAP32[168]=$tbase$255$i;HEAP32[276]=$tbase$255$i;HEAP32[277]=$tsize$254$i;HEAP32[279]=0;HEAP32[173]=HEAP32[282];HEAP32[172]=-1;$i$02$i$i=0;do{$641=$i$02$i$i<<1;$642=696+($641<<2)|0;HEAP32[696+($641+3<<2)>>2]=$642;HEAP32[696+($641+2<<2)>>2]=$642;$i$02$i$i=$i$02$i$i+1|0}while(($i$02$i$i|0)!=32);$648=$tbase$255$i+8|0;$653=($648&7|0)==0?0:0-$648&7;$655=$tsize$254$i+-40-$653|0;HEAP32[170]=$tbase$255$i+$653;HEAP32[167]=$655;HEAP32[$tbase$255$i+($653+4)>>2]=$655|1;HEAP32[$tbase$255$i+($tsize$254$i+-36)>>2]=40;HEAP32[171]=HEAP32[286]}else{$sp$084$i=1104;while(1){$660=HEAP32[$sp$084$i>>2]|0;$661=$sp$084$i+4|0;$662=HEAP32[$661>>2]|0;if(($tbase$255$i|0)==($660+$662|0)){label=204;break}$666=HEAP32[$sp$084$i+8>>2]|0;if(!$666)break;else $sp$084$i=$666}if((label|0)==204)if(!(HEAP32[$sp$084$i+12>>2]&8))if($635>>>0<$tbase$255$i>>>0&$635>>>0>=$660>>>0){HEAP32[$661>>2]=$662+$tsize$254$i;$676=(HEAP32[167]|0)+$tsize$254$i|0;$678=$635+8|0;$683=($678&7|0)==0?0:0-$678&7;$685=$676-$683|0;HEAP32[170]=$635+$683;HEAP32[167]=$685;HEAP32[$635+($683+4)>>2]=$685|1;HEAP32[$635+($676+4)>>2]=40;HEAP32[171]=HEAP32[286];break}$690=HEAP32[168]|0;if($tbase$255$i>>>0<$690>>>0){HEAP32[168]=$tbase$255$i;$755=$tbase$255$i}else $755=$690;$692=$tbase$255$i+$tsize$254$i|0;$sp$183$i=1104;while(1){if((HEAP32[$sp$183$i>>2]|0)==($692|0)){label=212;break}$696=HEAP32[$sp$183$i+8>>2]|0;if(!$696){$sp$0$i$i$i=1104;break}else $sp$183$i=$696}if((label|0)==212)if(!(HEAP32[$sp$183$i+12>>2]&8)){HEAP32[$sp$183$i>>2]=$tbase$255$i;$702=$sp$183$i+4|0;HEAP32[$702>>2]=(HEAP32[$702>>2]|0)+$tsize$254$i;$706=$tbase$255$i+8|0;$711=($706&7|0)==0?0:0-$706&7;$714=$tbase$255$i+($tsize$254$i+8)|0;$719=($714&7|0)==0?0:0-$714&7;$720=$tbase$255$i+($719+$tsize$254$i)|0;$$sum$i19$i=$711+$nb$0|0;$724=$tbase$255$i+$$sum$i19$i|0;$725=$720-($tbase$255$i+$711)-$nb$0|0;HEAP32[$tbase$255$i+($711+4)>>2]=$nb$0|3;L324:do if(($720|0)==($635|0)){$730=(HEAP32[167]|0)+$725|0;HEAP32[167]=$730;HEAP32[170]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+4)>>2]=$730|1}else{if(($720|0)==(HEAP32[169]|0)){$736=(HEAP32[166]|0)+$725|0;HEAP32[166]=$736;HEAP32[169]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+4)>>2]=$736|1;HEAP32[$tbase$255$i+($736+$$sum$i19$i)>>2]=$736;break}$$sum2$i21$i=$tsize$254$i+4|0;$741=HEAP32[$tbase$255$i+($719+$$sum2$i21$i)>>2]|0;if(($741&3|0)==1){$744=$741&-8;$745=$741>>>3;L332:do if($741>>>0<256){$748=HEAP32[$tbase$255$i+(($719|8)+$tsize$254$i)>>2]|0;$750=HEAP32[$tbase$255$i+($tsize$254$i+12+$719)>>2]|0;$752=696+($745<<1<<2)|0;do if(($748|0)!=($752|0)){if($748>>>0<$755>>>0)_abort();if((HEAP32[$748+12>>2]|0)==($720|0))break;_abort()}while(0);if(($750|0)==($748|0)){HEAP32[164]=HEAP32[164]&~(1<<$745);break}do if(($750|0)==($752|0))$$pre$phi58$i$iZ2D=$750+8|0;else{if($750>>>0<$755>>>0)_abort();$766=$750+8|0;if((HEAP32[$766>>2]|0)==($720|0)){$$pre$phi58$i$iZ2D=$766;break}_abort()}while(0);HEAP32[$748+12>>2]=$750;HEAP32[$$pre$phi58$i$iZ2D>>2]=$748}else{$771=HEAP32[$tbase$255$i+(($719|24)+$tsize$254$i)>>2]|0;$773=HEAP32[$tbase$255$i+($tsize$254$i+12+$719)>>2]|0;do if(($773|0)==($720|0)){$$sum67$i$i=$719|16;$784=$tbase$255$i+($$sum67$i$i+$$sum2$i21$i)|0;$785=HEAP32[$784>>2]|0;if(!$785){$787=$tbase$255$i+($$sum67$i$i+$tsize$254$i)|0;$788=HEAP32[$787>>2]|0;if(!$788){$R$1$i$i=0;break}else{$R$0$i$i=$788;$RP$0$i$i=$787}}else{$R$0$i$i=$785;$RP$0$i$i=$784}while(1){$790=$R$0$i$i+20|0;$791=HEAP32[$790>>2]|0;if($791){$R$0$i$i=$791;$RP$0$i$i=$790;continue}$793=$R$0$i$i+16|0;$794=HEAP32[$793>>2]|0;if(!$794)break;else{$R$0$i$i=$794;$RP$0$i$i=$793}}if($RP$0$i$i>>>0<$755>>>0)_abort();else{HEAP32[$RP$0$i$i>>2]=0;$R$1$i$i=$R$0$i$i;break}}else{$776=HEAP32[$tbase$255$i+(($719|8)+$tsize$254$i)>>2]|0;if($776>>>0<$755>>>0)_abort();$778=$776+12|0;if((HEAP32[$778>>2]|0)!=($720|0))_abort();$781=$773+8|0;if((HEAP32[$781>>2]|0)==($720|0)){HEAP32[$778>>2]=$773;HEAP32[$781>>2]=$776;$R$1$i$i=$773;break}else _abort()}while(0);if(!$771)break;$799=HEAP32[$tbase$255$i+($tsize$254$i+28+$719)>>2]|0;$800=960+($799<<2)|0;do if(($720|0)==(HEAP32[$800>>2]|0)){HEAP32[$800>>2]=$R$1$i$i;if($R$1$i$i)break;HEAP32[165]=HEAP32[165]&~(1<<$799);break L332}else{if($771>>>0<(HEAP32[168]|0)>>>0)_abort();$809=$771+16|0;if((HEAP32[$809>>2]|0)==($720|0))HEAP32[$809>>2]=$R$1$i$i;else HEAP32[$771+20>>2]=$R$1$i$i;if(!$R$1$i$i)break L332}while(0);$814=HEAP32[168]|0;if($R$1$i$i>>>0<$814>>>0)_abort();HEAP32[$R$1$i$i+24>>2]=$771;$$sum3132$i$i=$719|16;$818=HEAP32[$tbase$255$i+($$sum3132$i$i+$tsize$254$i)>>2]|0;do if($818)if($818>>>0<$814>>>0)_abort();else{HEAP32[$R$1$i$i+16>>2]=$818;HEAP32[$818+24>>2]=$R$1$i$i;break}while(0);$824=HEAP32[$tbase$255$i+($$sum3132$i$i+$$sum2$i21$i)>>2]|0;if(!$824)break;if($824>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1$i$i+20>>2]=$824;HEAP32[$824+24>>2]=$R$1$i$i;break}}while(0);$oldfirst$0$i$i=$tbase$255$i+(($744|$719)+$tsize$254$i)|0;$qsize$0$i$i=$744+$725|0}else{$oldfirst$0$i$i=$720;$qsize$0$i$i=$725}$832=$oldfirst$0$i$i+4|0;HEAP32[$832>>2]=HEAP32[$832>>2]&-2;HEAP32[$tbase$255$i+($$sum$i19$i+4)>>2]=$qsize$0$i$i|1;HEAP32[$tbase$255$i+($qsize$0$i$i+$$sum$i19$i)>>2]=$qsize$0$i$i;$838=$qsize$0$i$i>>>3;if($qsize$0$i$i>>>0<256){$840=$838<<1;$841=696+($840<<2)|0;$842=HEAP32[164]|0;$843=1<<$838;do if(!($842&$843)){HEAP32[164]=$842|$843;$$pre$phi$i23$iZ2D=696+($840+2<<2)|0;$F4$0$i$i=$841}else{$847=696+($840+2<<2)|0;$848=HEAP32[$847>>2]|0;if($848>>>0>=(HEAP32[168]|0)>>>0){$$pre$phi$i23$iZ2D=$847;$F4$0$i$i=$848;break}_abort()}while(0);HEAP32[$$pre$phi$i23$iZ2D>>2]=$724;HEAP32[$F4$0$i$i+12>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+8)>>2]=$F4$0$i$i;HEAP32[$tbase$255$i+($$sum$i19$i+12)>>2]=$841;break}$854=$qsize$0$i$i>>>8;do if(!$854)$I7$0$i$i=0;else{if($qsize$0$i$i>>>0>16777215){$I7$0$i$i=31;break}$859=($854+1048320|0)>>>16&8;$860=$854<<$859;$863=($860+520192|0)>>>16&4;$865=$860<<$863;$868=($865+245760|0)>>>16&2;$873=14-($863|$859|$868)+($865<<$868>>>15)|0;$I7$0$i$i=$qsize$0$i$i>>>($873+7|0)&1|$873<<1}while(0);$879=960+($I7$0$i$i<<2)|0;HEAP32[$tbase$255$i+($$sum$i19$i+28)>>2]=$I7$0$i$i;HEAP32[$tbase$255$i+($$sum$i19$i+20)>>2]=0;HEAP32[$tbase$255$i+($$sum$i19$i+16)>>2]=0;$883=HEAP32[165]|0;$884=1<<$I7$0$i$i;if(!($883&$884)){HEAP32[165]=$883|$884;HEAP32[$879>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+24)>>2]=$879;HEAP32[$tbase$255$i+($$sum$i19$i+12)>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+8)>>2]=$724;break}$891=HEAP32[$879>>2]|0;L418:do if((HEAP32[$891+4>>2]&-8|0)==($qsize$0$i$i|0))$T$0$lcssa$i25$i=$891;else{$K8$051$i$i=$qsize$0$i$i<<(($I7$0$i$i|0)==31?0:25-($I7$0$i$i>>>1)|0);$T$050$i$i=$891;while(1){$908=$T$050$i$i+16+($K8$051$i$i>>>31<<2)|0;$903=HEAP32[$908>>2]|0;if(!$903)break;if((HEAP32[$903+4>>2]&-8|0)==($qsize$0$i$i|0)){$T$0$lcssa$i25$i=$903;break L418}else{$K8$051$i$i=$K8$051$i$i<<1;$T$050$i$i=$903}}if($908>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$908>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+24)>>2]=$T$050$i$i;HEAP32[$tbase$255$i+($$sum$i19$i+12)>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+8)>>2]=$724;break L324}}while(0);$915=$T$0$lcssa$i25$i+8|0;$916=HEAP32[$915>>2]|0;$917=HEAP32[168]|0;if($916>>>0>=$917>>>0&$T$0$lcssa$i25$i>>>0>=$917>>>0){HEAP32[$916+12>>2]=$724;HEAP32[$915>>2]=$724;HEAP32[$tbase$255$i+($$sum$i19$i+8)>>2]=$916;HEAP32[$tbase$255$i+($$sum$i19$i+12)>>2]=$T$0$lcssa$i25$i;HEAP32[$tbase$255$i+($$sum$i19$i+24)>>2]=0;break}else _abort()}while(0);$mem$0=$tbase$255$i+($711|8)|0;return $mem$0|0}else $sp$0$i$i$i=1104;while(1){$925=HEAP32[$sp$0$i$i$i>>2]|0;if($925>>>0<=$635>>>0){$928=HEAP32[$sp$0$i$i$i+4>>2]|0;$929=$925+$928|0;if($929>>>0>$635>>>0)break}$sp$0$i$i$i=HEAP32[$sp$0$i$i$i+8>>2]|0}$934=$925+($928+-39)|0;$940=$925+($928+-47+(($934&7|0)==0?0:0-$934&7))|0;$941=$635+16|0;$943=$940>>>0<$941>>>0?$635:$940;$944=$943+8|0;$947=$tbase$255$i+8|0;$952=($947&7|0)==0?0:0-$947&7;$954=$tsize$254$i+-40-$952|0;HEAP32[170]=$tbase$255$i+$952;HEAP32[167]=$954;HEAP32[$tbase$255$i+($952+4)>>2]=$954|1;HEAP32[$tbase$255$i+($tsize$254$i+-36)>>2]=40;HEAP32[171]=HEAP32[286];$959=$943+4|0;HEAP32[$959>>2]=27;HEAP32[$944>>2]=HEAP32[276];HEAP32[$944+4>>2]=HEAP32[277];HEAP32[$944+8>>2]=HEAP32[278];HEAP32[$944+12>>2]=HEAP32[279];HEAP32[276]=$tbase$255$i;HEAP32[277]=$tsize$254$i;HEAP32[279]=0;HEAP32[278]=$944;$960=$943+28|0;HEAP32[$960>>2]=7;if(($943+32|0)>>>0<$929>>>0){$964=$960;do{$964$looptemp=$964;$964=$964+4|0;HEAP32[$964>>2]=7}while(($964$looptemp+8|0)>>>0<$929>>>0)}if(($943|0)!=($635|0)){$970=$943-$635|0;HEAP32[$959>>2]=HEAP32[$959>>2]&-2;HEAP32[$635+4>>2]=$970|1;HEAP32[$943>>2]=$970;$975=$970>>>3;if($970>>>0<256){$977=$975<<1;$978=696+($977<<2)|0;$979=HEAP32[164]|0;$980=1<<$975;if(!($979&$980)){HEAP32[164]=$979|$980;$$pre$phi$i$iZ2D=696+($977+2<<2)|0;$F$0$i$i=$978}else{$984=696+($977+2<<2)|0;$985=HEAP32[$984>>2]|0;if($985>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phi$i$iZ2D=$984;$F$0$i$i=$985}}HEAP32[$$pre$phi$i$iZ2D>>2]=$635;HEAP32[$F$0$i$i+12>>2]=$635;HEAP32[$635+8>>2]=$F$0$i$i;HEAP32[$635+12>>2]=$978;break}$991=$970>>>8;if(!$991)$I1$0$i$i=0;else if($970>>>0>16777215)$I1$0$i$i=31;else{$996=($991+1048320|0)>>>16&8;$997=$991<<$996;$1000=($997+520192|0)>>>16&4;$1002=$997<<$1000;$1005=($1002+245760|0)>>>16&2;$1010=14-($1000|$996|$1005)+($1002<<$1005>>>15)|0;$I1$0$i$i=$970>>>($1010+7|0)&1|$1010<<1}$1016=960+($I1$0$i$i<<2)|0;HEAP32[$635+28>>2]=$I1$0$i$i;HEAP32[$635+20>>2]=0;HEAP32[$941>>2]=0;$1019=HEAP32[165]|0;$1020=1<<$I1$0$i$i;if(!($1019&$1020)){HEAP32[165]=$1019|$1020;HEAP32[$1016>>2]=$635;HEAP32[$635+24>>2]=$1016;HEAP32[$635+12>>2]=$635;HEAP32[$635+8>>2]=$635;break}$1027=HEAP32[$1016>>2]|0;L459:do if((HEAP32[$1027+4>>2]&-8|0)==($970|0))$T$0$lcssa$i$i=$1027;else{$K2$07$i$i=$970<<(($I1$0$i$i|0)==31?0:25-($I1$0$i$i>>>1)|0);$T$06$i$i=$1027;while(1){$1044=$T$06$i$i+16+($K2$07$i$i>>>31<<2)|0;$1039=HEAP32[$1044>>2]|0;if(!$1039)break;if((HEAP32[$1039+4>>2]&-8|0)==($970|0)){$T$0$lcssa$i$i=$1039;break L459}else{$K2$07$i$i=$K2$07$i$i<<1;$T$06$i$i=$1039}}if($1044>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$1044>>2]=$635;HEAP32[$635+24>>2]=$T$06$i$i;HEAP32[$635+12>>2]=$635;HEAP32[$635+8>>2]=$635;break L299}}while(0);$1051=$T$0$lcssa$i$i+8|0;$1052=HEAP32[$1051>>2]|0;$1053=HEAP32[168]|0;if($1052>>>0>=$1053>>>0&$T$0$lcssa$i$i>>>0>=$1053>>>0){HEAP32[$1052+12>>2]=$635;HEAP32[$1051>>2]=$635;HEAP32[$635+8>>2]=$1052;HEAP32[$635+12>>2]=$T$0$lcssa$i$i;HEAP32[$635+24>>2]=0;break}else _abort()}}while(0);$1060=HEAP32[167]|0;if($1060>>>0>$nb$0>>>0){$1062=$1060-$nb$0|0;HEAP32[167]=$1062;$1063=HEAP32[170]|0;HEAP32[170]=$1063+$nb$0;HEAP32[$1063+($nb$0+4)>>2]=$1062|1;HEAP32[$1063+4>>2]=$nb$0|3;$mem$0=$1063+8|0;return $mem$0|0}}$1070=___errno_location()|0;HEAP32[$1070>>2]=12;$mem$0=0;return $mem$0|0}function __ZL12shapeUnicodePtiijP10UErrorCodei15uShapeVariables($dest,$sourceLength,$pErrorCode,$shapeVars){$dest=$dest|0;$sourceLength=$sourceLength|0;$pErrorCode=$pErrorCode|0;$shapeVars=$shapeVars|0;var $$0=0,$$0$i$ph=0,$$0$i21=0,$$1=0,$$2$i=0,$$3$i=0,$$814$i=0,$$mux=0,$$mux12=0,$$phi$trans$insert=0,$$pre$phi38Z2D=0,$0=0,$1=0,$105=0,$106=0,$108=0,$114=0,$116=0,$118=0,$120=0,$121=0,$122=0,$123=0,$126=0,$128=0,$14=0,$152=0,$154=0,$164=0,$165=0,$167=0,$169=0,$19=0,$2=0,$28=0,$3=0,$32=0,$34=0,$40=0,$51=0,$55=0,$58=0,$59=0,$60=0,$62=0,$66=0,$69=0,$7=0,$70=0,$80=0,$81=0,$94=0,$Nw$0=0,$Nw$0$=0,$Nw$0$ph=0,$Nx$080=0,$Nx$1$ph=0,$Nx$2=0,$Shape$0=0,$count$0$i$lcssa4=0,$count$0$i76=0,$count$1$i=0,$count$2$i71=0,$count$3$i64=0,$count$4$i=0,$count$5$i$lcssa5=0,$count$5$i57=0,$count$6$i=0,$count$7$i54=0,$currLink$087=0,$currLink$1=0,$currLink$2=0,$currLink$2$lastLink$2=0,$i$0$i74=0,$i$096=0,$i$1$i70=0,$i$190=0,$i$2=0,$i$3=0,$i$3$i62=0,$i$4=0,$i$4$i60=0,$i$4$lastPos$0=0,$i$5$i55=0,$i$6$i53=0,$j$0$i75=0,$j$1$i=0,$j$2$i63=0,$j$3$i=0,$j$4$i56=0,$j$5$i=0,$lamalef_found$081=0,$lamalef_found$1=0,$lamalef_found$2=0,$lastLink$086=0,$lastLink$1=0,$lastLink$2=0,$lastLink$2$prevLink$0=0,$lastPos$089=0,$nextLink$088=0,$nextLink$1=0,$nextLink$1$ph=0,$nextLink$2=0,$prevLink$085=0,$seenfamFound$0$lcssa3=0,$seenfamFound$082=0,$seenfamFound$1=0,$seenfamFound$2=0,$t$0$i$i=0,$yehhamzaFound$0$lcssa2=0,$yehhamzaFound$083=0,$yehhamzaFound$1=0,$yehhamzaFound$2=0,label=0;$0=($sourceLength|0)>0;if($0){$i$096=0;do{$1=$dest+($i$096<<1)|0;$2=HEAP16[$1>>1]|0;$3=$2&65535;do if(($2+1200&65535)<176){$7=HEAP16[1152+($3+-64336<<1)>>1]|0;if($7<<16>>16)HEAP16[$1>>1]=$7}else if(($2+400&65535)<141){HEAP16[$1>>1]=HEAP16[1504+($3+-65136<<1)>>1]|0;break}else{HEAP16[$1>>1]=$2;break}while(0);$i$096=$i$096+1|0}while(($i$096|0)!=($sourceLength|0))}$14=$sourceLength+-1|0;do if(!$sourceLength){$$0=0;$seenfamFound$0$lcssa3=0;$yehhamzaFound$0$lcssa2=0}else{$Nx$080=-2;$currLink$087=__ZL7getLinkt(HEAP16[$dest+($14<<1)>>1]|0)|0;$i$190=$14;$lamalef_found$081=0;$lastLink$086=0;$lastPos$089=$14;$nextLink$088=0;$prevLink$085=0;$seenfamFound$082=0;$yehhamzaFound$083=0;while(1){$19=$currLink$087&65535;if(!($19&65280))if(!((__ZL7getLinkt(HEAP16[$dest+($i$190<<1)>>1]|0)|0)&4)){$Nx$2=$Nx$080;$currLink$2=$currLink$087;$i$4=$i$190;$lamalef_found$2=$lamalef_found$081;$lastLink$2=$lastLink$086;$nextLink$2=$nextLink$088;$seenfamFound$2=$seenfamFound$082;$yehhamzaFound$2=$yehhamzaFound$083}else label=13;else label=13;do if((label|0)==13){label=0;$Nw$0$ph=$i$190+-1|0;$Nx$1$ph=$Nx$080;$nextLink$1$ph=$nextLink$088;L21:while(1){$28=($Nx$1$ph|0)<0;$Nw$0=$Nw$0$ph;$nextLink$1=$nextLink$1$ph;while(1){if(!$28)break L21;if(($Nw$0|0)==-1){$Nw$0$ph=-1;$Nx$1$ph=3e3;$nextLink$1$ph=0;continue L21}$32=__ZL7getLinkt(HEAP16[$dest+($Nw$0<<1)>>1]|0)|0;$34=($32&4)==0;$Nw$0$=(($34^1)<<31>>31)+$Nw$0|0;if($34){$Nw$0$ph=$Nw$0$;$Nx$1$ph=$Nw$0;$nextLink$1$ph=$32;continue L21}else{$Nw$0=$Nw$0$;$nextLink$1=$32}}}if(($lastLink$086&16)==0|($19&32|0)==0){$currLink$1=$currLink$087;$i$3=$i$190;$lamalef_found$1=$lamalef_found$081;$lastLink$1=$lastLink$086}else{$40=$dest+($i$190<<1)|0;switch(HEAPU16[$40>>1]|0){case 1570:{$$0$i$ph=1628;label=23;break}case 1571:{$$0$i$ph=1629;label=23;break}case 1573:{$$0$i$ph=1630;label=23;break}case 1575:{$$0$i$ph=1631;label=23;break}default:{$$0$i21=0;$i$2=$i$190}}if((label|0)==23){label=0;HEAP16[$40>>1]=-1;HEAP16[$dest+($lastPos$089<<1)>>1]=$$0$i$ph;$$0$i21=$$0$i$ph;$i$2=$lastPos$089}$currLink$1=__ZL7getLinkt($$0$i21)|0;$i$3=$i$2;$lamalef_found$1=1;$lastLink$1=$prevLink$085}if(($i$3|0)>0)if((HEAP16[$dest+($i$3+-1<<1)>>1]|0)==32){$51=HEAP16[$dest+($i$3<<1)>>1]|0;if(($51+-1587&65535)<4){$seenfamFound$1=1;$yehhamzaFound$1=$yehhamzaFound$083}else{$seenfamFound$1=$seenfamFound$082;$yehhamzaFound$1=$51<<16>>16==1574?1:$yehhamzaFound$083}}else{$seenfamFound$1=$seenfamFound$082;$yehhamzaFound$1=$yehhamzaFound$083}else if(!$i$3){$55=HEAP16[$dest>>1]|0;if(($55+-1587&65535)<4){$seenfamFound$1=1;$yehhamzaFound$1=$yehhamzaFound$083}else{$seenfamFound$1=$seenfamFound$082;$yehhamzaFound$1=$55<<16>>16==1574?1:$yehhamzaFound$083}}else{$seenfamFound$1=$seenfamFound$082;$yehhamzaFound$1=$yehhamzaFound$083}$58=$currLink$1&65535;$59=$58&3;$60=$lastLink$1&65535;$62=$nextLink$1&65535;$66=HEAPU8[67805+(($62&3)<<4)+(($60&3)<<2)+$59>>0]|0;if(($59|0)==1){$$phi$trans$insert=$dest+($i$3<<1)|0;$$pre$phi38Z2D=$$phi$trans$insert;$81=HEAP16[$$phi$trans$insert>>1]|0;$Shape$0=$66&1}else{$69=$dest+($i$3<<1)|0;$70=HEAP16[$69>>1]|0;if(($70+-1611&65535)<8)if(!($60&2)){$$pre$phi38Z2D=$69;$81=$70;$Shape$0=0}else if(($62&1|0)==0|($70&-2)<<16>>16==1612){$$pre$phi38Z2D=$69;$81=$70;$Shape$0=0}else{$$pre$phi38Z2D=$69;$81=$70;$Shape$0=$60>>>4&1^1|$62>>>5&1^1}else{$$pre$phi38Z2D=$69;$81=$70;$Shape$0=$66}}$80=$81&65535;if(($80^1536)>>>0<256){if(($81+-1611&65535)<8){HEAP16[$$pre$phi38Z2D>>1]=$Shape$0+65136+(HEAPU8[67869+($80+-1611)>>0]|0);$Nx$2=$Nx$1$ph;$currLink$2=$currLink$1;$i$4=$i$3;$lamalef_found$2=$lamalef_found$1;$lastLink$2=$lastLink$1;$nextLink$2=$nextLink$1;$seenfamFound$2=$seenfamFound$1;$yehhamzaFound$2=$yehhamzaFound$1;break}$94=$58>>>8;if($58&8){HEAP16[$$pre$phi38Z2D>>1]=$94+64336+$Shape$0;$Nx$2=$Nx$1$ph;$currLink$2=$currLink$1;$i$4=$i$3;$lamalef_found$2=$lamalef_found$1;$lastLink$2=$lastLink$1;$nextLink$2=$nextLink$1;$seenfamFound$2=$seenfamFound$1;$yehhamzaFound$2=$yehhamzaFound$1;break}if(($94|0)!=0&($58&4|0)==0){HEAP16[$$pre$phi38Z2D>>1]=$94+65136+$Shape$0;$Nx$2=$Nx$1$ph;$currLink$2=$currLink$1;$i$4=$i$3;$lamalef_found$2=$lamalef_found$1;$lastLink$2=$lastLink$1;$nextLink$2=$nextLink$1;$seenfamFound$2=$seenfamFound$1;$yehhamzaFound$2=$yehhamzaFound$1}else{$Nx$2=$Nx$1$ph;$currLink$2=$currLink$1;$i$4=$i$3;$lamalef_found$2=$lamalef_found$1;$lastLink$2=$lastLink$1;$nextLink$2=$nextLink$1;$seenfamFound$2=$seenfamFound$1;$yehhamzaFound$2=$yehhamzaFound$1}}else{$Nx$2=$Nx$1$ph;$currLink$2=$currLink$1;$i$4=$i$3;$lamalef_found$2=$lamalef_found$1;$lastLink$2=$lastLink$1;$nextLink$2=$nextLink$1;$seenfamFound$2=$seenfamFound$1;$yehhamzaFound$2=$yehhamzaFound$1}}while(0);$105=($currLink$2&4)==0;$lastLink$2$prevLink$0=$105?$lastLink$2:$prevLink$085;$currLink$2$lastLink$2=$105?$currLink$2:$lastLink$2;$i$4$lastPos$0=$105?$i$4:$lastPos$089;$106=$i$4+-1|0;$108=($i$4|0)==0;if(($106|0)==($Nx$2|0))if($108)break;else{$Nx$080=-2;$currLink$087=$nextLink$2;$i$190=$106;$lamalef_found$081=$lamalef_found$2;$lastLink$086=$currLink$2$lastLink$2;$lastPos$089=$i$4$lastPos$0;$nextLink$088=$nextLink$2;$prevLink$085=$lastLink$2$prevLink$0;$seenfamFound$082=$seenfamFound$2;$yehhamzaFound$083=$yehhamzaFound$2;continue}if($108)break;$Nx$080=$Nx$2;$currLink$087=__ZL7getLinkt(HEAP16[$dest+($106<<1)>>1]|0)|0;$i$190=$106;$lamalef_found$081=$lamalef_found$2;$lastLink$086=$currLink$2$lastLink$2;$lastPos$089=$i$4$lastPos$0;$nextLink$088=$nextLink$2;$prevLink$085=$lastLink$2$prevLink$0;$seenfamFound$082=$seenfamFound$2;$yehhamzaFound$083=$yehhamzaFound$2}if(!$lamalef_found$2){$$0=$sourceLength;$seenfamFound$0$lcssa3=$seenfamFound$2;$yehhamzaFound$0$lcssa2=$yehhamzaFound$2}else{$114=HEAP32[$shapeVars+4>>2]|0;$116=HEAP32[$shapeVars+8>>2]|0;$118=HEAP32[$shapeVars+12>>2]|0;$120=HEAP32[$shapeVars+16>>2]|0;$121=$sourceLength<<1;$122=$121+2|0;$123=_uprv_malloc_58($122)|0;if(!$123){HEAP32[$pErrorCode>>2]=7;$$0=0;$seenfamFound$0$lcssa3=$seenfamFound$2;$yehhamzaFound$0$lcssa2=$yehhamzaFound$2;break}_memset($123|0,0,$122|0)|0;if($0){$count$0$i76=0;$i$0$i74=0;$j$0$i75=0;while(1){$128=HEAP16[$dest+($i$0$i74<<1)>>1]|0;if($128<<16>>16==-1){$count$1$i=$count$0$i76+1|0;$j$1$i=$j$0$i75+-1|0}else{HEAP16[$123+($j$0$i75<<1)>>1]=$128;$count$1$i=$count$0$i76;$j$1$i=$j$0$i75}$i$0$i74=$i$0$i74+1|0;if(($i$0$i74|0)==($sourceLength|0))break;else{$count$0$i76=$count$1$i;$j$0$i75=$j$1$i+1|0}}if(($count$1$i|0)>-1){$126=1;$count$0$i$lcssa4=$count$1$i;label=54}else label=61}else{$126=0;$count$0$i$lcssa4=0;label=54}if((label|0)==54){$count$2$i71=$count$0$i$lcssa4;$i$1$i70=$126?$sourceLength:0;while(1){HEAP16[$123+($i$1$i70<<1)>>1]=0;if(($count$2$i71|0)>0){$count$2$i71=$count$2$i71+-1|0;$i$1$i70=$i$1$i70+-1|0}else break}if($126)label=61;else $t$0$i$i=$dest}if((label|0)==61){_memcpy($dest|0,$123|0,$121|0)|0;$t$0$i$i=$dest}while(1)if(!(HEAP16[$t$0$i$i>>1]|0))break;else $t$0$i$i=$t$0$i$i+2|0;if(!$114){$$814$i=($118|0)==0;$154=1;label=66}else if(!$118){$$814$i=1;$154=0;label=66}else $$2$i=$t$0$i$i-$dest>>1;if((label|0)==66){_memset($123|0,0,$122|0)|0;if(($sourceLength|0)>-1){$count$3$i64=0;$i$3$i62=$sourceLength;$j$2$i63=$sourceLength;while(1){$152=HEAP16[$dest+($i$3$i62<<1)>>1]|0;if($154&$152<<16>>16==-1|$$814$i&$152<<16>>16==-2){$count$4$i=$count$3$i64+1|0;$j$3$i=$j$2$i63+1|0}else{HEAP16[$123+($j$2$i63<<1)>>1]=$152;$count$4$i=$count$3$i64;$j$3$i=$j$2$i63}if(($i$3$i62|0)>0){$count$3$i64=$count$4$i;$i$3$i62=$i$3$i62+-1|0;$j$2$i63=$j$3$i+-1|0}else break}if(($count$4$i|0)>0){$i$4$i60=0;do{HEAP16[$123+($i$4$i60<<1)>>1]=32;$i$4$i60=$i$4$i60+1|0}while(($i$4$i60|0)!=($count$4$i|0))}if($0){_memcpy($dest|0,$123|0,$121|0)|0;$$2$i=$sourceLength}else $$2$i=$sourceLength}else $$2$i=$sourceLength}$164=($116|0)==0;$165=($120|0)==0;$$mux=$164?1:0;$$mux12=$164?$165:1;do if($164|$165){_memset($123|0,0,$122|0)|0;if($0){$count$5$i57=0;$i$5$i55=0;$j$4$i56=0;while(1){$169=HEAP16[$dest+($i$5$i55<<1)>>1]|0;if($$mux&$169<<16>>16==-1|$$mux12&$169<<16>>16==-2){$count$6$i=$count$5$i57+1|0;$j$5$i=$j$4$i56+-1|0}else{HEAP16[$123+($j$4$i56<<1)>>1]=$169;$count$6$i=$count$5$i57;$j$5$i=$j$4$i56}$i$5$i55=$i$5$i55+1|0;if(($i$5$i55|0)==($sourceLength|0))break;else{$count$5$i57=$count$6$i;$j$4$i56=$j$5$i+1|0}}if(($count$6$i|0)>-1){$167=1;$count$5$i$lcssa5=$count$6$i;label=78}}else{$167=0;$count$5$i$lcssa5=0;label=78}if((label|0)==78){$count$7$i54=$count$5$i$lcssa5;$i$6$i53=$167?$sourceLength:0;while(1){HEAP16[$123+($i$6$i53<<1)>>1]=32;if(($count$7$i54|0)>0){$count$7$i54=$count$7$i54+-1|0;$i$6$i53=$i$6$i53+-1|0}else break}if(!$167){$$3$i=$sourceLength;break}}_memcpy($dest|0,$123|0,$121|0)|0;$$3$i=$sourceLength}else $$3$i=$$2$i;while(0);_uprv_free_58($123);$$0=$$3$i;$seenfamFound$0$lcssa3=$seenfamFound$2;$yehhamzaFound$0$lcssa2=$yehhamzaFound$2}}while(0);if(!($yehhamzaFound$0$lcssa2|$seenfamFound$0$lcssa3)){$$1=$$0;return $$1|0}$$1=__ZL18expandCompositCharPtiijP10UErrorCodei15uShapeVariables($$0)|0;return $$1|0}function _free($mem){$mem=$mem|0;var $$pre$phi59Z2D=0,$$pre$phi61Z2D=0,$$pre$phiZ2D=0,$$sum2=0,$1=0,$103=0,$104=0,$111=0,$112=0,$12=0,$120=0,$128=0,$133=0,$134=0,$137=0,$139=0,$14=0,$141=0,$15=0,$156=0,$161=0,$163=0,$166=0,$169=0,$172=0,$175=0,$176=0,$178=0,$179=0,$181=0,$182=0,$184=0,$185=0,$19=0,$191=0,$192=0,$2=0,$201=0,$206=0,$210=0,$216=0,$22=0,$231=0,$233=0,$234=0,$235=0,$236=0,$24=0,$240=0,$241=0,$247=0,$252=0,$253=0,$256=0,$258=0,$26=0,$261=0,$266=0,$272=0,$276=0,$277=0,$284=0,$296=0,$301=0,$308=0,$309=0,$310=0,$318=0,$39=0,$44=0,$46=0,$49=0,$5=0,$51=0,$54=0,$57=0,$58=0,$6=0,$60=0,$61=0,$63=0,$64=0,$66=0,$67=0,$72=0,$73=0,$8=0,$82=0,$87=0,$9=0,$91=0,$97=0,$F16$0=0,$I18$0=0,$K19$052=0,$R$0=0,$R$1=0,$R7$0=0,$R7$1=0,$RP$0=0,$RP9$0=0,$T$0$lcssa=0,$T$051=0,$p$0=0,$psize$0=0,$psize$1=0,$sp$0$i=0,$sp$0$in$i=0;if(!$mem)return;$1=$mem+-8|0;$2=HEAP32[168]|0;if($1>>>0<$2>>>0)_abort();$5=HEAP32[$mem+-4>>2]|0;$6=$5&3;if(($6|0)==1)_abort();$8=$5&-8;$9=$mem+($8+-8)|0;do if(!($5&1)){$12=HEAP32[$1>>2]|0;if(!$6)return;$$sum2=-8-$12|0;$14=$mem+$$sum2|0;$15=$12+$8|0;if($14>>>0<$2>>>0)_abort();if(($14|0)==(HEAP32[169]|0)){$103=$mem+($8+-4)|0;$104=HEAP32[$103>>2]|0;if(($104&3|0)!=3){$p$0=$14;$psize$0=$15;break}HEAP32[166]=$15;HEAP32[$103>>2]=$104&-2;HEAP32[$mem+($$sum2+4)>>2]=$15|1;HEAP32[$9>>2]=$15;return}$19=$12>>>3;if($12>>>0<256){$22=HEAP32[$mem+($$sum2+8)>>2]|0;$24=HEAP32[$mem+($$sum2+12)>>2]|0;$26=696+($19<<1<<2)|0;if(($22|0)!=($26|0)){if($22>>>0<$2>>>0)_abort();if((HEAP32[$22+12>>2]|0)!=($14|0))_abort()}if(($24|0)==($22|0)){HEAP32[164]=HEAP32[164]&~(1<<$19);$p$0=$14;$psize$0=$15;break}if(($24|0)==($26|0))$$pre$phi61Z2D=$24+8|0;else{if($24>>>0<$2>>>0)_abort();$39=$24+8|0;if((HEAP32[$39>>2]|0)==($14|0))$$pre$phi61Z2D=$39;else _abort()}HEAP32[$22+12>>2]=$24;HEAP32[$$pre$phi61Z2D>>2]=$22;$p$0=$14;$psize$0=$15;break}$44=HEAP32[$mem+($$sum2+24)>>2]|0;$46=HEAP32[$mem+($$sum2+12)>>2]|0;do if(($46|0)==($14|0)){$57=$mem+($$sum2+20)|0;$58=HEAP32[$57>>2]|0;if(!$58){$60=$mem+($$sum2+16)|0;$61=HEAP32[$60>>2]|0;if(!$61){$R$1=0;break}else{$R$0=$61;$RP$0=$60}}else{$R$0=$58;$RP$0=$57}while(1){$63=$R$0+20|0;$64=HEAP32[$63>>2]|0;if($64){$R$0=$64;$RP$0=$63;continue}$66=$R$0+16|0;$67=HEAP32[$66>>2]|0;if(!$67)break;else{$R$0=$67;$RP$0=$66}}if($RP$0>>>0<$2>>>0)_abort();else{HEAP32[$RP$0>>2]=0;$R$1=$R$0;break}}else{$49=HEAP32[$mem+($$sum2+8)>>2]|0;if($49>>>0<$2>>>0)_abort();$51=$49+12|0;if((HEAP32[$51>>2]|0)!=($14|0))_abort();$54=$46+8|0;if((HEAP32[$54>>2]|0)==($14|0)){HEAP32[$51>>2]=$46;HEAP32[$54>>2]=$49;$R$1=$46;break}else _abort()}while(0);if(!$44){$p$0=$14;$psize$0=$15}else{$72=HEAP32[$mem+($$sum2+28)>>2]|0;$73=960+($72<<2)|0;if(($14|0)==(HEAP32[$73>>2]|0)){HEAP32[$73>>2]=$R$1;if(!$R$1){HEAP32[165]=HEAP32[165]&~(1<<$72);$p$0=$14;$psize$0=$15;break}}else{if($44>>>0<(HEAP32[168]|0)>>>0)_abort();$82=$44+16|0;if((HEAP32[$82>>2]|0)==($14|0))HEAP32[$82>>2]=$R$1;else HEAP32[$44+20>>2]=$R$1;if(!$R$1){$p$0=$14;$psize$0=$15;break}}$87=HEAP32[168]|0;if($R$1>>>0<$87>>>0)_abort();HEAP32[$R$1+24>>2]=$44;$91=HEAP32[$mem+($$sum2+16)>>2]|0;do if($91)if($91>>>0<$87>>>0)_abort();else{HEAP32[$R$1+16>>2]=$91;HEAP32[$91+24>>2]=$R$1;break}while(0);$97=HEAP32[$mem+($$sum2+20)>>2]|0;if(!$97){$p$0=$14;$psize$0=$15}else if($97>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1+20>>2]=$97;HEAP32[$97+24>>2]=$R$1;$p$0=$14;$psize$0=$15;break}}}else{$p$0=$1;$psize$0=$8}while(0);if($p$0>>>0>=$9>>>0)_abort();$111=$mem+($8+-4)|0;$112=HEAP32[$111>>2]|0;if(!($112&1))_abort();if(!($112&2)){if(($9|0)==(HEAP32[170]|0)){$120=(HEAP32[167]|0)+$psize$0|0;HEAP32[167]=$120;HEAP32[170]=$p$0;HEAP32[$p$0+4>>2]=$120|1;if(($p$0|0)!=(HEAP32[169]|0))return;HEAP32[169]=0;HEAP32[166]=0;return}if(($9|0)==(HEAP32[169]|0)){$128=(HEAP32[166]|0)+$psize$0|0;HEAP32[166]=$128;HEAP32[169]=$p$0;HEAP32[$p$0+4>>2]=$128|1;HEAP32[$p$0+$128>>2]=$128;return}$133=($112&-8)+$psize$0|0;$134=$112>>>3;do if($112>>>0<256){$137=HEAP32[$mem+$8>>2]|0;$139=HEAP32[$mem+($8|4)>>2]|0;$141=696+($134<<1<<2)|0;if(($137|0)!=($141|0)){if($137>>>0<(HEAP32[168]|0)>>>0)_abort();if((HEAP32[$137+12>>2]|0)!=($9|0))_abort()}if(($139|0)==($137|0)){HEAP32[164]=HEAP32[164]&~(1<<$134);break}if(($139|0)==($141|0))$$pre$phi59Z2D=$139+8|0;else{if($139>>>0<(HEAP32[168]|0)>>>0)_abort();$156=$139+8|0;if((HEAP32[$156>>2]|0)==($9|0))$$pre$phi59Z2D=$156;else _abort()}HEAP32[$137+12>>2]=$139;HEAP32[$$pre$phi59Z2D>>2]=$137}else{$161=HEAP32[$mem+($8+16)>>2]|0;$163=HEAP32[$mem+($8|4)>>2]|0;do if(($163|0)==($9|0)){$175=$mem+($8+12)|0;$176=HEAP32[$175>>2]|0;if(!$176){$178=$mem+($8+8)|0;$179=HEAP32[$178>>2]|0;if(!$179){$R7$1=0;break}else{$R7$0=$179;$RP9$0=$178}}else{$R7$0=$176;$RP9$0=$175}while(1){$181=$R7$0+20|0;$182=HEAP32[$181>>2]|0;if($182){$R7$0=$182;$RP9$0=$181;continue}$184=$R7$0+16|0;$185=HEAP32[$184>>2]|0;if(!$185)break;else{$R7$0=$185;$RP9$0=$184}}if($RP9$0>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$RP9$0>>2]=0;$R7$1=$R7$0;break}}else{$166=HEAP32[$mem+$8>>2]|0;if($166>>>0<(HEAP32[168]|0)>>>0)_abort();$169=$166+12|0;if((HEAP32[$169>>2]|0)!=($9|0))_abort();$172=$163+8|0;if((HEAP32[$172>>2]|0)==($9|0)){HEAP32[$169>>2]=$163;HEAP32[$172>>2]=$166;$R7$1=$163;break}else _abort()}while(0);if($161){$191=HEAP32[$mem+($8+20)>>2]|0;$192=960+($191<<2)|0;if(($9|0)==(HEAP32[$192>>2]|0)){HEAP32[$192>>2]=$R7$1;if(!$R7$1){HEAP32[165]=HEAP32[165]&~(1<<$191);break}}else{if($161>>>0<(HEAP32[168]|0)>>>0)_abort();$201=$161+16|0;if((HEAP32[$201>>2]|0)==($9|0))HEAP32[$201>>2]=$R7$1;else HEAP32[$161+20>>2]=$R7$1;if(!$R7$1)break}$206=HEAP32[168]|0;if($R7$1>>>0<$206>>>0)_abort();HEAP32[$R7$1+24>>2]=$161;$210=HEAP32[$mem+($8+8)>>2]|0;do if($210)if($210>>>0<$206>>>0)_abort();else{HEAP32[$R7$1+16>>2]=$210;HEAP32[$210+24>>2]=$R7$1;break}while(0);$216=HEAP32[$mem+($8+12)>>2]|0;if($216)if($216>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R7$1+20>>2]=$216;HEAP32[$216+24>>2]=$R7$1;break}}}while(0);HEAP32[$p$0+4>>2]=$133|1;HEAP32[$p$0+$133>>2]=$133;if(($p$0|0)==(HEAP32[169]|0)){HEAP32[166]=$133;return}else $psize$1=$133}else{HEAP32[$111>>2]=$112&-2;HEAP32[$p$0+4>>2]=$psize$0|1;HEAP32[$p$0+$psize$0>>2]=$psize$0;$psize$1=$psize$0}$231=$psize$1>>>3;if($psize$1>>>0<256){$233=$231<<1;$234=696+($233<<2)|0;$235=HEAP32[164]|0;$236=1<<$231;if(!($235&$236)){HEAP32[164]=$235|$236;$$pre$phiZ2D=696+($233+2<<2)|0;$F16$0=$234}else{$240=696+($233+2<<2)|0;$241=HEAP32[$240>>2]|0;if($241>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phiZ2D=$240;$F16$0=$241}}HEAP32[$$pre$phiZ2D>>2]=$p$0;HEAP32[$F16$0+12>>2]=$p$0;HEAP32[$p$0+8>>2]=$F16$0;HEAP32[$p$0+12>>2]=$234;return}$247=$psize$1>>>8;if(!$247)$I18$0=0;else if($psize$1>>>0>16777215)$I18$0=31;else{$252=($247+1048320|0)>>>16&8;$253=$247<<$252;$256=($253+520192|0)>>>16&4;$258=$253<<$256;$261=($258+245760|0)>>>16&2;$266=14-($256|$252|$261)+($258<<$261>>>15)|0;$I18$0=$psize$1>>>($266+7|0)&1|$266<<1}$272=960+($I18$0<<2)|0;HEAP32[$p$0+28>>2]=$I18$0;HEAP32[$p$0+20>>2]=0;HEAP32[$p$0+16>>2]=0;$276=HEAP32[165]|0;$277=1<<$I18$0;L199:do if(!($276&$277)){HEAP32[165]=$276|$277;HEAP32[$272>>2]=$p$0;HEAP32[$p$0+24>>2]=$272;HEAP32[$p$0+12>>2]=$p$0;HEAP32[$p$0+8>>2]=$p$0}else{$284=HEAP32[$272>>2]|0;L202:do if((HEAP32[$284+4>>2]&-8|0)==($psize$1|0))$T$0$lcssa=$284;else{$K19$052=$psize$1<<(($I18$0|0)==31?0:25-($I18$0>>>1)|0);$T$051=$284;while(1){$301=$T$051+16+($K19$052>>>31<<2)|0;$296=HEAP32[$301>>2]|0;if(!$296)break;if((HEAP32[$296+4>>2]&-8|0)==($psize$1|0)){$T$0$lcssa=$296;break L202}else{$K19$052=$K19$052<<1;$T$051=$296}}if($301>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$301>>2]=$p$0;HEAP32[$p$0+24>>2]=$T$051;HEAP32[$p$0+12>>2]=$p$0;HEAP32[$p$0+8>>2]=$p$0;break L199}}while(0);$308=$T$0$lcssa+8|0;$309=HEAP32[$308>>2]|0;$310=HEAP32[168]|0;if($309>>>0>=$310>>>0&$T$0$lcssa>>>0>=$310>>>0){HEAP32[$309+12>>2]=$p$0;HEAP32[$308>>2]=$p$0;HEAP32[$p$0+8>>2]=$309;HEAP32[$p$0+12>>2]=$T$0$lcssa;HEAP32[$p$0+24>>2]=0;break}else _abort()}while(0);$318=(HEAP32[172]|0)+-1|0;HEAP32[172]=$318;if(!$318)$sp$0$in$i=1112;else return;while(1){$sp$0$i=HEAP32[$sp$0$in$i>>2]|0;if(!$sp$0$i)break;else $sp$0$in$i=$sp$0$i+8|0}HEAP32[172]=-1;return}function _ubidi_writeReordered_58($pBiDi,$dest,$destSize,$options,$pErrorCode){$pBiDi=$pBiDi|0;$dest=$dest|0;$destSize=$destSize|0;$options=$options|0;$pErrorCode=$pErrorCode|0;var $$=0,$$0=0,$$019=0,$$0448=0,$$0547=0,$$10=0,$$11=0,$$11044=0,$$120=0,$$1256=0,$$14$be=0,$$1452=0,$$15=0,$$16=0,$$16$=0,$$18=0,$$19=0,$$20=0,$$20$=0,$$211=0,$$22=0,$$221=0,$$245=0,$$3=0,$$312=0,$$4=0,$$4$=0,$$413=0,$$51455=0,$$6=0,$$615$be=0,$$61551=0,$$7=0,$$716=0,$$8=0,$$8$=0,$$817=0,$$918=0,$$in=0,$$in59=0,$12=0,$130=0,$133=0,$153=0,$157=0,$159=0,$160=0,$165=0,$168=0,$170=0,$173=0,$174=0,$175=0,$177=0,$186=0,$189=0,$207=0,$210=0,$23=0,$27=0,$45=0,$49=0,$5=0,$51=0,$54=0,$56=0,$57=0,$62=0,$65=0,$66=0,$67=0,$69=0,$71=0,$72=0,$73=0,$76=0,$8=0,$80=0,$92=0,$95=0,$logicalStart=0,$markFlag$0=0,$markFlag$1=0,$markFlag$2=0,$markFlag$3=0,$run$046=0,$run$143=0,$runLength=0,$storemerge=0,$storemerge22=0,$uc$0$ph=0,$uc$1$ph=0,$uc$2$ph=0,$uc$3$ph=0,label=0,sp=0,$$in$looptemp=0,$$in59$looptemp=0; + +sp=STACKTOP;STACKTOP=STACKTOP+16|0;$logicalStart=sp+4|0;$runLength=sp;L1:do if(!$pErrorCode)$$0=0;else if((HEAP32[$pErrorCode>>2]|0)>0)$$0=0;else{if($pBiDi){$5=HEAP32[$pBiDi+8>>2]|0;if($5){$8=HEAP32[$pBiDi+16>>2]|0;if(($8|$destSize|0)>=0){$12=($dest|0)==0;if(!($12&($destSize|0)>0)){do if(!$12){if(!($5>>>0>=$dest>>>0&$5>>>0<($dest+($destSize<<1)|0)>>>0)){if($5>>>0>$dest>>>0)break;if(($5+(HEAP32[$pBiDi+12>>2]<<1)|0)>>>0<=$dest>>>0)break}HEAP32[$pErrorCode>>2]=1;$$0=0;break L1}while(0);if(!$8){$$0=_u_terminateUChars_58($dest,$destSize,0,$pErrorCode)|0;break}$23=_ubidi_countRuns_58($pBiDi,$pErrorCode)|0;if((HEAP32[$pErrorCode>>2]|0)>0){$$0=0;break}$27=HEAP32[$pBiDi+92>>2]|0;if(!($27&1))$$019=$options;else $$019=($options&65523|4)&65535;if(!($27&2))$$120=$$019;else $$120=($$019&65523|8)&65535;if(((HEAP32[$pBiDi+88>>2]|0)+-3|0)>>>0<4)$$221=$$120;else $$221=$$120&65531;$45=$$221&65535;$49=($45&4|0)!=0;L29:do if(!($45&16)){if(!$49){$51=$45&65533;if(($23|0)>0){$$0448=$dest;$$0547=$destSize;$run$046=0}else{$$918=$destSize;break}while(1){$54=(_ubidi_getVisualRun_58($pBiDi,$run$046,$logicalStart,$runLength)|0)==0;$56=$5+(HEAP32[$logicalStart>>2]<<1)|0;$57=HEAP32[$runLength>>2]|0;if($54)$storemerge=_doWriteForward($56,$57,$$0448,$$0547,$51,$pErrorCode)|0;else $storemerge=_doWriteReverse($56,$57,$$0448,$$0547,$$221,$pErrorCode)|0;HEAP32[$runLength>>2]=$storemerge;$62=$$0547-$storemerge|0;$run$046=$run$046+1|0;if(($run$046|0)==($23|0)){$$918=$62;break L29}else{$$0448=($$0448|0)==0?0:$$0448+($storemerge<<1)|0;$$0547=$62}}}$65=HEAP32[$pBiDi+76>>2]|0;$66=$pBiDi+228|0;$67=$pBiDi+84|0;$69=$45&65533;if(($23|0)>0){$$11044=$destSize;$$245=$dest;$run$143=0;while(1){$71=_ubidi_getVisualRun_58($pBiDi,$run$143,$logicalStart,$runLength)|0;$72=HEAP32[$logicalStart>>2]|0;$73=$5+($72<<1)|0;$76=HEAP32[(HEAP32[$66>>2]|0)+($run$143*12|0)+8>>2]|0;$$=($76|0)<0?0:$76;$80=(HEAP8[$67>>0]|0)!=0;do if(!$71){if($80)$markFlag$0=(HEAP8[$65+$72>>0]|0)!=0|$$;else $markFlag$0=$$;if(!($markFlag$0&1))if(!($markFlag$0&4)){$$211=$$11044;$$4=$$245}else{$uc$0$ph=8207;label=35}else{$uc$0$ph=8206;label=35}if((label|0)==35){label=0;if(($$11044|0)>0){HEAP16[$$245>>1]=$uc$0$ph;$$3=$$245+2|0}else $$3=$$245;$$211=$$11044+-1|0;$$4=$$3}$92=_doWriteForward($73,HEAP32[$runLength>>2]|0,$$4,$$211,$69,$pErrorCode)|0;HEAP32[$runLength>>2]=$92;$$4$=($$4|0)==0?0:$$4+($92<<1)|0;$95=$$211-$92|0;if(!(HEAP8[$67>>0]|0))$markFlag$1=$markFlag$0;else $markFlag$1=(HEAP8[$65+($92+-1+(HEAP32[$logicalStart>>2]|0))>>0]|0)==0?$markFlag$0:$markFlag$0|2;if(!($markFlag$1&2))if(!($markFlag$1&8)){$$11=$$4$;$$413=$95;break}else $uc$1$ph=8207;else $uc$1$ph=8206;if(($95|0)>0){HEAP16[$$4$>>1]=$uc$1$ph;$$6=$$4$+2|0}else $$6=$$4$;$$11=$$6;$$413=$95+-1|0}else{if($80)$markFlag$2=(1< >2]|0))>>0]&8194|0)==0?$$|4:$$;else $markFlag$2=$$;if(!($markFlag$2&1))if(!($markFlag$2&4)){$$312=$$11044;$$8=$$245}else{$uc$2$ph=8207;label=49}else{$uc$2$ph=8206;label=49}if((label|0)==49){label=0;if(($$11044|0)>0){HEAP16[$$245>>1]=$uc$2$ph;$$7=$$245+2|0}else $$7=$$245;$$312=$$11044+-1|0;$$8=$$7}$130=_doWriteReverse($73,HEAP32[$runLength>>2]|0,$$8,$$312,$$221,$pErrorCode)|0;HEAP32[$runLength>>2]=$130;$$8$=($$8|0)==0?0:$$8+($130<<1)|0;$133=$$312-$130|0;if(!(HEAP8[$67>>0]|0))$markFlag$3=$markFlag$2;else $markFlag$3=(1< >2]|0)>>0]&8194|0)==0?$markFlag$2|8:$markFlag$2;if(!($markFlag$3&2))if(!($markFlag$3&8)){$$11=$$8$;$$413=$133;break}else $uc$3$ph=8207;else $uc$3$ph=8206;if(($133|0)>0){HEAP16[$$8$>>1]=$uc$3$ph;$$10=$$8$+2|0}else $$10=$$8$;$$11=$$10;$$413=$133+-1|0}while(0);$run$143=$run$143+1|0;if(($run$143|0)==($23|0)){$$918=$$413;break}else{$$11044=$$413;$$245=$$11}}}else $$918=$destSize}else{if(!$49){$153=$45&65533;if(($23|0)>0){$$1256=$dest;$$51455=$destSize;$$in=$23}else{$$918=$destSize;break}while(1){$$in$looptemp=$$in;$$in=$$in+-1|0;$157=(_ubidi_getVisualRun_58($pBiDi,$$in,$logicalStart,$runLength)|0)==0;$159=$5+(HEAP32[$logicalStart>>2]<<1)|0;$160=HEAP32[$runLength>>2]|0;if($157)$storemerge22=_doWriteReverse($159,$160,$$1256,$$51455,$153,$pErrorCode)|0;else $storemerge22=_doWriteForward($159,$160,$$1256,$$51455,$$221,$pErrorCode)|0;HEAP32[$runLength>>2]=$storemerge22;$165=$$51455-$storemerge22|0;if(($$in$looptemp|0)<=1){$$918=$165;break L29}else{$$1256=($$1256|0)==0?0:$$1256+($storemerge22<<1)|0;$$51455=$165}}}$168=HEAP32[$pBiDi+76>>2]|0;$170=$45&65533;if(($23|0)>0){$$1452=$dest;$$61551=$destSize;$$in59=$23;while(1){$$in59$looptemp=$$in59;$$in59=$$in59+-1|0;$173=_ubidi_getVisualRun_58($pBiDi,$$in59,$logicalStart,$runLength)|0;$174=HEAP32[$logicalStart>>2]|0;$175=$5+($174<<1)|0;do if(!$173){$177=HEAP32[$runLength>>2]|0;if(!(HEAP8[$168+($174+-1+$177)>>0]|0)){$$16=$$1452;$$716=$$61551}else{if(($$61551|0)>0){HEAP16[$$1452>>1]=8206;$$15=$$1452+2|0}else $$15=$$1452;$$16=$$15;$$716=$$61551+-1|0}$186=_doWriteReverse($175,$177,$$16,$$716,$170,$pErrorCode)|0;HEAP32[$runLength>>2]=$186;$$16$=($$16|0)==0?0:$$16+($186<<1)|0;$189=$$716-$186|0;if(!(HEAP8[$168+(HEAP32[$logicalStart>>2]|0)>>0]|0)){$$14$be=$$16$;$$615$be=$189;break}if(($189|0)>0){HEAP16[$$16$>>1]=8206;$$18=$$16$+2|0}else $$18=$$16$;$$14$be=$$18;$$615$be=$189+-1|0}else{if(!(1< >0]&8194)){if(($$61551|0)>0){HEAP16[$$1452>>1]=8207;$$19=$$1452+2|0}else $$19=$$1452;$$20=$$19;$$817=$$61551+-1|0}else{$$20=$$1452;$$817=$$61551}$207=_doWriteForward($175,HEAP32[$runLength>>2]|0,$$20,$$817,$$221,$pErrorCode)|0;HEAP32[$runLength>>2]=$207;$$20$=($$20|0)==0?0:$$20+($207<<1)|0;$210=$$817-$207|0;if(1< >2]|0))>>0]&8194){$$14$be=$$20$;$$615$be=$210;break}if(($210|0)>0){HEAP16[$$20$>>1]=8207;$$22=$$20$+2|0}else $$22=$$20$;$$14$be=$$22;$$615$be=$210+-1|0}while(0);if(($$in59$looptemp|0)<=1){$$918=$$615$be;break}else{$$1452=$$14$be;$$61551=$$615$be}}}else $$918=$destSize}while(0);$$0=_u_terminateUChars_58($dest,$destSize,$destSize-$$918|0,$pErrorCode)|0;break}}}}HEAP32[$pErrorCode>>2]=1;$$0=0}while(0);STACKTOP=sp;return $$0|0}function _dispose_chunk($p,$psize){$p=$p|0;$psize=$psize|0;var $$0=0,$$02=0,$$1=0,$$pre$phi50Z2D=0,$$pre$phi52Z2D=0,$$pre$phiZ2D=0,$$sum18=0,$$sum21=0,$0=0,$10=0,$100=0,$106=0,$108=0,$109=0,$11=0,$115=0,$123=0,$128=0,$129=0,$132=0,$134=0,$136=0,$149=0,$15=0,$154=0,$156=0,$159=0,$161=0,$164=0,$167=0,$168=0,$170=0,$171=0,$173=0,$174=0,$176=0,$177=0,$18=0,$182=0,$183=0,$192=0,$197=0,$2=0,$20=0,$201=0,$207=0,$22=0,$222=0,$224=0,$225=0,$226=0,$227=0,$231=0,$232=0,$238=0,$243=0,$244=0,$247=0,$249=0,$252=0,$257=0,$263=0,$267=0,$268=0,$275=0,$287=0,$292=0,$299=0,$300=0,$301=0,$35=0,$40=0,$42=0,$45=0,$47=0,$5=0,$50=0,$53=0,$54=0,$56=0,$57=0,$59=0,$60=0,$62=0,$63=0,$68=0,$69=0,$78=0,$83=0,$87=0,$9=0,$93=0,$99=0,$F16$0=0,$I19$0=0,$K20$043=0,$R$0=0,$R$1=0,$R7$0=0,$R7$1=0,$RP$0=0,$RP9$0=0,$T$0$lcssa=0,$T$042=0;$0=$p+$psize|0;$2=HEAP32[$p+4>>2]|0;do if(!($2&1)){$5=HEAP32[$p>>2]|0;if(!($2&3))return;$9=$p+(0-$5)|0;$10=$5+$psize|0;$11=HEAP32[168]|0;if($9>>>0<$11>>>0)_abort();if(($9|0)==(HEAP32[169]|0)){$99=$p+($psize+4)|0;$100=HEAP32[$99>>2]|0;if(($100&3|0)!=3){$$0=$9;$$02=$10;break}HEAP32[166]=$10;HEAP32[$99>>2]=$100&-2;HEAP32[$p+(4-$5)>>2]=$10|1;HEAP32[$0>>2]=$10;return}$15=$5>>>3;if($5>>>0<256){$18=HEAP32[$p+(8-$5)>>2]|0;$20=HEAP32[$p+(12-$5)>>2]|0;$22=696+($15<<1<<2)|0;if(($18|0)!=($22|0)){if($18>>>0<$11>>>0)_abort();if((HEAP32[$18+12>>2]|0)!=($9|0))_abort()}if(($20|0)==($18|0)){HEAP32[164]=HEAP32[164]&~(1<<$15);$$0=$9;$$02=$10;break}if(($20|0)==($22|0))$$pre$phi52Z2D=$20+8|0;else{if($20>>>0<$11>>>0)_abort();$35=$20+8|0;if((HEAP32[$35>>2]|0)==($9|0))$$pre$phi52Z2D=$35;else _abort()}HEAP32[$18+12>>2]=$20;HEAP32[$$pre$phi52Z2D>>2]=$18;$$0=$9;$$02=$10;break}$40=HEAP32[$p+(24-$5)>>2]|0;$42=HEAP32[$p+(12-$5)>>2]|0;do if(($42|0)==($9|0)){$$sum18=16-$5|0;$53=$p+($$sum18+4)|0;$54=HEAP32[$53>>2]|0;if(!$54){$56=$p+$$sum18|0;$57=HEAP32[$56>>2]|0;if(!$57){$R$1=0;break}else{$R$0=$57;$RP$0=$56}}else{$R$0=$54;$RP$0=$53}while(1){$59=$R$0+20|0;$60=HEAP32[$59>>2]|0;if($60){$R$0=$60;$RP$0=$59;continue}$62=$R$0+16|0;$63=HEAP32[$62>>2]|0;if(!$63)break;else{$R$0=$63;$RP$0=$62}}if($RP$0>>>0<$11>>>0)_abort();else{HEAP32[$RP$0>>2]=0;$R$1=$R$0;break}}else{$45=HEAP32[$p+(8-$5)>>2]|0;if($45>>>0<$11>>>0)_abort();$47=$45+12|0;if((HEAP32[$47>>2]|0)!=($9|0))_abort();$50=$42+8|0;if((HEAP32[$50>>2]|0)==($9|0)){HEAP32[$47>>2]=$42;HEAP32[$50>>2]=$45;$R$1=$42;break}else _abort()}while(0);if(!$40){$$0=$9;$$02=$10}else{$68=HEAP32[$p+(28-$5)>>2]|0;$69=960+($68<<2)|0;if(($9|0)==(HEAP32[$69>>2]|0)){HEAP32[$69>>2]=$R$1;if(!$R$1){HEAP32[165]=HEAP32[165]&~(1<<$68);$$0=$9;$$02=$10;break}}else{if($40>>>0<(HEAP32[168]|0)>>>0)_abort();$78=$40+16|0;if((HEAP32[$78>>2]|0)==($9|0))HEAP32[$78>>2]=$R$1;else HEAP32[$40+20>>2]=$R$1;if(!$R$1){$$0=$9;$$02=$10;break}}$83=HEAP32[168]|0;if($R$1>>>0<$83>>>0)_abort();HEAP32[$R$1+24>>2]=$40;$$sum21=16-$5|0;$87=HEAP32[$p+$$sum21>>2]|0;do if($87)if($87>>>0<$83>>>0)_abort();else{HEAP32[$R$1+16>>2]=$87;HEAP32[$87+24>>2]=$R$1;break}while(0);$93=HEAP32[$p+($$sum21+4)>>2]|0;if(!$93){$$0=$9;$$02=$10}else if($93>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1+20>>2]=$93;HEAP32[$93+24>>2]=$R$1;$$0=$9;$$02=$10;break}}}else{$$0=$p;$$02=$psize}while(0);$106=HEAP32[168]|0;if($0>>>0<$106>>>0)_abort();$108=$p+($psize+4)|0;$109=HEAP32[$108>>2]|0;if(!($109&2)){if(($0|0)==(HEAP32[170]|0)){$115=(HEAP32[167]|0)+$$02|0;HEAP32[167]=$115;HEAP32[170]=$$0;HEAP32[$$0+4>>2]=$115|1;if(($$0|0)!=(HEAP32[169]|0))return;HEAP32[169]=0;HEAP32[166]=0;return}if(($0|0)==(HEAP32[169]|0)){$123=(HEAP32[166]|0)+$$02|0;HEAP32[166]=$123;HEAP32[169]=$$0;HEAP32[$$0+4>>2]=$123|1;HEAP32[$$0+$123>>2]=$123;return}$128=($109&-8)+$$02|0;$129=$109>>>3;do if($109>>>0<256){$132=HEAP32[$p+($psize+8)>>2]|0;$134=HEAP32[$p+($psize+12)>>2]|0;$136=696+($129<<1<<2)|0;if(($132|0)!=($136|0)){if($132>>>0<$106>>>0)_abort();if((HEAP32[$132+12>>2]|0)!=($0|0))_abort()}if(($134|0)==($132|0)){HEAP32[164]=HEAP32[164]&~(1<<$129);break}if(($134|0)==($136|0))$$pre$phi50Z2D=$134+8|0;else{if($134>>>0<$106>>>0)_abort();$149=$134+8|0;if((HEAP32[$149>>2]|0)==($0|0))$$pre$phi50Z2D=$149;else _abort()}HEAP32[$132+12>>2]=$134;HEAP32[$$pre$phi50Z2D>>2]=$132}else{$154=HEAP32[$p+($psize+24)>>2]|0;$156=HEAP32[$p+($psize+12)>>2]|0;do if(($156|0)==($0|0)){$167=$p+($psize+20)|0;$168=HEAP32[$167>>2]|0;if(!$168){$170=$p+($psize+16)|0;$171=HEAP32[$170>>2]|0;if(!$171){$R7$1=0;break}else{$R7$0=$171;$RP9$0=$170}}else{$R7$0=$168;$RP9$0=$167}while(1){$173=$R7$0+20|0;$174=HEAP32[$173>>2]|0;if($174){$R7$0=$174;$RP9$0=$173;continue}$176=$R7$0+16|0;$177=HEAP32[$176>>2]|0;if(!$177)break;else{$R7$0=$177;$RP9$0=$176}}if($RP9$0>>>0<$106>>>0)_abort();else{HEAP32[$RP9$0>>2]=0;$R7$1=$R7$0;break}}else{$159=HEAP32[$p+($psize+8)>>2]|0;if($159>>>0<$106>>>0)_abort();$161=$159+12|0;if((HEAP32[$161>>2]|0)!=($0|0))_abort();$164=$156+8|0;if((HEAP32[$164>>2]|0)==($0|0)){HEAP32[$161>>2]=$156;HEAP32[$164>>2]=$159;$R7$1=$156;break}else _abort()}while(0);if($154){$182=HEAP32[$p+($psize+28)>>2]|0;$183=960+($182<<2)|0;if(($0|0)==(HEAP32[$183>>2]|0)){HEAP32[$183>>2]=$R7$1;if(!$R7$1){HEAP32[165]=HEAP32[165]&~(1<<$182);break}}else{if($154>>>0<(HEAP32[168]|0)>>>0)_abort();$192=$154+16|0;if((HEAP32[$192>>2]|0)==($0|0))HEAP32[$192>>2]=$R7$1;else HEAP32[$154+20>>2]=$R7$1;if(!$R7$1)break}$197=HEAP32[168]|0;if($R7$1>>>0<$197>>>0)_abort();HEAP32[$R7$1+24>>2]=$154;$201=HEAP32[$p+($psize+16)>>2]|0;do if($201)if($201>>>0<$197>>>0)_abort();else{HEAP32[$R7$1+16>>2]=$201;HEAP32[$201+24>>2]=$R7$1;break}while(0);$207=HEAP32[$p+($psize+20)>>2]|0;if($207)if($207>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R7$1+20>>2]=$207;HEAP32[$207+24>>2]=$R7$1;break}}}while(0);HEAP32[$$0+4>>2]=$128|1;HEAP32[$$0+$128>>2]=$128;if(($$0|0)==(HEAP32[169]|0)){HEAP32[166]=$128;return}else $$1=$128}else{HEAP32[$108>>2]=$109&-2;HEAP32[$$0+4>>2]=$$02|1;HEAP32[$$0+$$02>>2]=$$02;$$1=$$02}$222=$$1>>>3;if($$1>>>0<256){$224=$222<<1;$225=696+($224<<2)|0;$226=HEAP32[164]|0;$227=1<<$222;if(!($226&$227)){HEAP32[164]=$226|$227;$$pre$phiZ2D=696+($224+2<<2)|0;$F16$0=$225}else{$231=696+($224+2<<2)|0;$232=HEAP32[$231>>2]|0;if($232>>>0<(HEAP32[168]|0)>>>0)_abort();else{$$pre$phiZ2D=$231;$F16$0=$232}}HEAP32[$$pre$phiZ2D>>2]=$$0;HEAP32[$F16$0+12>>2]=$$0;HEAP32[$$0+8>>2]=$F16$0;HEAP32[$$0+12>>2]=$225;return}$238=$$1>>>8;if(!$238)$I19$0=0;else if($$1>>>0>16777215)$I19$0=31;else{$243=($238+1048320|0)>>>16&8;$244=$238<<$243;$247=($244+520192|0)>>>16&4;$249=$244<<$247;$252=($249+245760|0)>>>16&2;$257=14-($247|$243|$252)+($249<<$252>>>15)|0;$I19$0=$$1>>>($257+7|0)&1|$257<<1}$263=960+($I19$0<<2)|0;HEAP32[$$0+28>>2]=$I19$0;HEAP32[$$0+20>>2]=0;HEAP32[$$0+16>>2]=0;$267=HEAP32[165]|0;$268=1<<$I19$0;if(!($267&$268)){HEAP32[165]=$267|$268;HEAP32[$263>>2]=$$0;HEAP32[$$0+24>>2]=$263;HEAP32[$$0+12>>2]=$$0;HEAP32[$$0+8>>2]=$$0;return}$275=HEAP32[$263>>2]|0;L191:do if((HEAP32[$275+4>>2]&-8|0)==($$1|0))$T$0$lcssa=$275;else{$K20$043=$$1<<(($I19$0|0)==31?0:25-($I19$0>>>1)|0);$T$042=$275;while(1){$292=$T$042+16+($K20$043>>>31<<2)|0;$287=HEAP32[$292>>2]|0;if(!$287)break;if((HEAP32[$287+4>>2]&-8|0)==($$1|0)){$T$0$lcssa=$287;break L191}else{$K20$043=$K20$043<<1;$T$042=$287}}if($292>>>0<(HEAP32[168]|0)>>>0)_abort();HEAP32[$292>>2]=$$0;HEAP32[$$0+24>>2]=$T$042;HEAP32[$$0+12>>2]=$$0;HEAP32[$$0+8>>2]=$$0;return}while(0);$299=$T$0$lcssa+8|0;$300=HEAP32[$299>>2]|0;$301=HEAP32[168]|0;if(!($300>>>0>=$301>>>0&$T$0$lcssa>>>0>=$301>>>0))_abort();HEAP32[$300+12>>2]=$$0;HEAP32[$299>>2]=$$0;HEAP32[$$0+8>>2]=$300;HEAP32[$$0+12>>2]=$T$0$lcssa;HEAP32[$$0+24>>2]=0;return}function _resolveImplicitLevels($pBiDi,$start,$limit,$sor,$eor){$pBiDi=$pBiDi|0;$start=$start|0;$limit=$limit|0;$sor=$sor|0;$eor=$eor|0;var $$0=0,$$0$i=0,$$0$i$ph=0,$$0$i12=0,$$0$i12$ph=0,$$02=0,$$pre$phiZ2D=0,$$sink=0,$1=0,$100=0,$107=0,$113=0,$115=0,$118=0,$119=0,$125=0,$128=0,$132=0,$135=0,$137=0,$140=0,$146=0,$158=0,$167=0,$169=0,$178=0,$26=0,$29=0,$31=0,$39=0,$42=0,$44=0,$47=0,$51=0,$54=0,$63=0,$66=0,$67=0,$70=0,$75=0,$77=0,$9=0,$90=0,$93=0,$actionImp$0=0,$gprop$0=0,$i$0$i=0,$i$0$i6=0,$i$035=0,$i$1$i=0,$i$1$i9=0,$i$1$in=0,$j$0=0,$j$0$in=0,$k$0$in=0,$levState=0,$nextStrongPos$038=0,$nextStrongPos$1=0,$nextStrongPos$2=0,$nextStrongPos$3=0,$nextStrongProp$037=0,$nextStrongProp$1=0,$nextStrongProp$2=0,$nextStrongProp$3=0,$prop$0=0,$start1$1$lcssa=0,$start1$1$ph=0,$start1$133=0,$start1$2=0,$start2$032=0,$start2$1=0,$stateImp$0=0,$stateImp$2$lcssa=0,$stateImp$2$ph=0,$stateImp$230=0,$uchar$0$i=0,$uchar$0$i8=0,label=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+32|0;$levState=sp;$1=HEAP32[$pBiDi+76>>2]|0;if((HEAP32[$pBiDi+128>>2]|0)>($start|0)){if(!(HEAP8[$pBiDi+98>>0]|0))label=4;else{$9=HEAP32[$pBiDi+140>>2]|0;if((HEAP32[$9>>2]|0)>($start|0))label=4;else $$sink=_ubidi_getParaLevelAtIndex_58(HEAP32[$pBiDi+136>>2]|0,$9,$start)|0}if((label|0)==4)$$sink=HEAP8[$pBiDi+97>>0]|0;if(!($$sink&1))$178=0;else $178=((HEAP32[$pBiDi+88>>2]|0)+-5|0)>>>0<2}else $178=0;HEAP32[$levState+12>>2]=-1;HEAP32[$levState+16>>2]=-1;HEAP32[$levState+24>>2]=$start;$26=HEAP8[(HEAP32[$pBiDi+80>>2]|0)+$start>>0]|0;HEAP8[$levState+28>>0]=$26;$29=$26&1;$31=HEAP32[$pBiDi+116>>2]|0;HEAP32[$levState>>2]=HEAP32[$31+($29<<2)>>2];HEAP32[$levState+4>>2]=HEAP32[$31+8+($29<<2)>>2];if(!$start){$39=HEAP32[$pBiDi+104>>2]|0;if(($39|0)>0){$42=HEAP32[$pBiDi+100>>2]|0;$i$0$i=$39;L14:while(1){if(($i$0$i|0)<=0){$$0$i$ph=4;label=16;break}$44=$i$0$i+-1|0;$47=HEAPU16[$42+($44<<1)>>1]|0;if(($i$0$i|0)>1&($47&64512|0)==56320){$51=$i$0$i+-2|0;$54=HEAPU16[$42+($51<<1)>>1]|0;if(($54&64512|0)==55296){$i$1$i=$51;$uchar$0$i=$47+-56613888+($54<<10)|0}else{$i$1$i=$44;$uchar$0$i=$47}}else{$i$1$i=$44;$uchar$0$i=$47}switch((_ubidi_getCustomizedClass_58($pBiDi,$uchar$0$i)|0)&255|0){case 0:{$$0$i$ph=0;label=16;break L14;break}case 13:case 1:{label=17;break L14;break}case 7:{$$0$i=4;break L14;break}default:$i$0$i=$i$1$i}}if((label|0)==16)$$0$i=$$0$i$ph;else if((label|0)==17)$$0$i=1;$$0=$$0$i<<24>>24==4?$sor:$$0$i}else $$0=$sor}else $$0=$sor;$63=$1+$start|0;if((HEAP8[$63>>0]|0)==22){$66=$pBiDi+244|0;$67=HEAP32[$66>>2]|0;if(($67|0)>-1){$70=HEAP32[$pBiDi+248>>2]|0;HEAP32[$levState+8>>2]=HEAP32[$70+($67<<4)>>2];$75=HEAP32[$70+($67<<4)+4>>2]|0;$77=HEAP16[$70+($67<<4)+12>>1]|0;HEAP32[$levState+20>>2]=HEAP32[$70+($67<<4)+8>>2];HEAP32[$66>>2]=$67+-1;$$pre$phiZ2D=$66;$start1$1$ph=$75;$stateImp$2$ph=$77}else label=22}else label=22;if((label|0)==22){HEAP32[$levState+8>>2]=-1;if((HEAP8[$63>>0]|0)==17)$stateImp$0=($$0&255)+1&65535;else $stateImp$0=0;HEAP32[$levState+20>>2]=0;_processPropertySeq($pBiDi,$levState,$$0,$start,$start);$$pre$phiZ2D=$pBiDi+244|0;$start1$1$ph=$start;$stateImp$2$ph=$stateImp$0}L35:do if(($start|0)>($limit|0)){$start1$1$lcssa=$start1$1$ph;$stateImp$2$lcssa=$stateImp$2$ph}else{$i$035=$start;$nextStrongPos$038=-1;$nextStrongProp$037=1;$start1$133=$start1$1$ph;$start2$032=$start;$stateImp$230=$stateImp$2$ph;while(1){$90=($i$035|0)<($limit|0);if($90){$100=HEAP8[$1+$i$035>>0]|0;if($100<<24>>24==7)HEAP32[$$pre$phiZ2D>>2]=-1;if($178)if($100<<24>>24==13){$nextStrongPos$2=$nextStrongPos$038;$nextStrongProp$2=$nextStrongProp$037;$prop$0=1}else if($100<<24>>24==2){L47:do if(($nextStrongPos$038|0)>($i$035|0)){$nextStrongPos$1=$nextStrongPos$038;$nextStrongProp$1=$nextStrongProp$037}else{$j$0$in=$i$035;while(1){$j$0=$j$0$in+1|0;if(($j$0|0)>=($limit|0)){$nextStrongPos$1=$limit;$nextStrongProp$1=1;break L47}$107=HEAP8[$1+$j$0>>0]|0;switch($107<<24>>24){case 13:case 1:case 0:{$nextStrongPos$1=$j$0;$nextStrongProp$1=$107;break L47;break}default:$j$0$in=$j$0}}}while(0);$nextStrongPos$2=$nextStrongPos$1;$nextStrongProp$2=$nextStrongProp$1;$prop$0=$nextStrongProp$1<<24>>24==13?5:2}else{$nextStrongPos$2=$nextStrongPos$038;$nextStrongProp$2=$nextStrongProp$037;$prop$0=$100}else{$nextStrongPos$2=$nextStrongPos$038;$nextStrongProp$2=$nextStrongProp$037;$prop$0=$100}$gprop$0=HEAP8[66846+($prop$0&255)>>0]|0;$nextStrongPos$3=$nextStrongPos$2;$nextStrongProp$3=$nextStrongProp$2}else{$k$0$in=$limit;do{$k$0$in=$k$0$in+-1|0;$93=HEAP8[$1+$k$0$in>>0]|0;if(($k$0$in|0)<=($start|0))break}while((1<<($93&255)&382976|0)!=0);if(($93&-2)<<24>>24==20){$start1$1$lcssa=$start1$133;$stateImp$2$lcssa=$stateImp$230;break L35}else{$gprop$0=$eor;$nextStrongPos$3=$nextStrongPos$038;$nextStrongProp$3=$nextStrongProp$037}}$113=$stateImp$230&65535;$115=HEAP8[($gprop$0&255)+(66871+($113<<4))>>0]|0;$118=$115&31;$119=($115&255)>>>5;$actionImp$0=($i$035|0)==($limit|0)&$119<<24>>24==0?1:$119&255;L58:do if(!($actionImp$0<<16>>16)){$start1$2=$start1$133;$start2$1=$start2$032}else{$125=HEAP8[66871+($113<<4)+15>>0]|0;switch($actionImp$0&65535|0){case 1:{_processPropertySeq($pBiDi,$levState,$125,$start1$133,$i$035);$start1$2=$i$035;$start2$1=$start2$032;break L58;break}case 2:{$start1$2=$start1$133;$start2$1=$i$035;break L58;break}case 3:{_processPropertySeq($pBiDi,$levState,$125,$start1$133,$start2$032);_processPropertySeq($pBiDi,$levState,4,$start2$032,$i$035);$start1$2=$i$035;$start2$1=$start2$032;break L58;break}case 4:{_processPropertySeq($pBiDi,$levState,$125,$start1$133,$start2$032);$start1$2=$start2$032;$start2$1=$i$035;break L58;break}default:{$start1$2=$start1$133;$start2$1=$start2$032;break L58}}}while(0);if($90){$i$035=$i$035+1|0;$nextStrongPos$038=$nextStrongPos$3;$nextStrongProp$037=$nextStrongProp$3;$start1$133=$start1$2;$start2$032=$start2$1;$stateImp$230=$118}else{$start1$1$lcssa=$start1$2;$stateImp$2$lcssa=$118;break}}}while(0);$128=$pBiDi+16|0;if((HEAP32[$128>>2]|0)==($limit|0)){$132=HEAP32[$pBiDi+112>>2]|0;if(($132|0)>0){$135=HEAP32[$pBiDi+108>>2]|0;$i$0$i6=0;L70:while(1){if(($i$0$i6|0)>=($132|0)){$$0$i12$ph=4;label=55;break}$137=$i$0$i6+1|0;$140=HEAPU16[$135+($i$0$i6<<1)>>1]|0;if(($137|0)==($132|0)|($140&64512|0)!=55296){$i$1$i9=$137;$uchar$0$i8=$140}else{$146=HEAPU16[$135+($137<<1)>>1]|0;if(($146&64512|0)==56320){$i$1$i9=$i$0$i6+2|0;$uchar$0$i8=($140<<10)+-56613888+$146|0}else{$i$1$i9=$137;$uchar$0$i8=$140}}switch((_ubidi_getCustomizedClass_58($pBiDi,$uchar$0$i8)|0)&255|0){case 0:{$$0$i12$ph=0;label=55;break L70;break}case 13:case 1:{label=56;break L70;break}case 2:{label=57;break L70;break}case 5:{$$0$i12=3;break L70;break}default:$i$0$i6=$i$1$i9}}if((label|0)==55)$$0$i12=$$0$i12$ph;else if((label|0)==56)$$0$i12=1;else if((label|0)==57)$$0$i12=2;$$02=$$0$i12<<24>>24==4?$eor:$$0$i12}else $$02=$eor}else $$02=$eor;$i$1$in=$limit;do{$i$1$in=$i$1$in+-1|0;$158=HEAP8[$1+$i$1$in>>0]|0;if(($i$1$in|0)<=($start|0))break}while((1<<($158&255)&382976|0)!=0);if(($158&-2)<<24>>24==20)if((HEAP32[$128>>2]|0)>($limit|0)){$167=(HEAP32[$$pre$phiZ2D>>2]|0)+1|0;HEAP32[$$pre$phiZ2D>>2]=$167;$169=HEAP32[$pBiDi+248>>2]|0;HEAP16[$169+($167<<4)+12>>1]=$stateImp$2$lcssa;HEAP32[$169+($167<<4)+8>>2]=HEAP32[$levState+20>>2];HEAP32[$169+($167<<4)+4>>2]=$start1$1$lcssa;HEAP32[$169+($167<<4)>>2]=HEAP32[$levState+8>>2]}else label=65;else label=65;if((label|0)==65)_processPropertySeq($pBiDi,$levState,$$02,$limit,$limit);STACKTOP=sp;return}function _ubidi_getRuns_58($pBiDi,$pErrorCode){$pBiDi=$pBiDi|0;$pErrorCode=$pErrorCode|0;var $$$i=0,$$lcssa10=0,$$runCount$0=0,$$runCount$0$i=0,$0=0,$112=0,$113=0,$118=0,$119=0,$125=0,$132=0,$137=0,$141=0,$144=0,$145=0,$146=0,$148=0,$152=0,$16=0,$161=0,$163=0,$164=0,$165=0,$166=0,$169=0,$17=0,$175=0,$177=0,$18=0,$19=0,$20=0,$21=0,$29=0,$30=0,$36=0,$38=0,$45=0,$47=0,$64=0,$7=0,$71=0,$72=0,$77=0,$79=0,$8=0,$81=0,$90=0,$98=0,$99=0,$endRun$0$i27=0,$firstRun$0$i$be=0,$firstRun$0$i29=0,$firstRun$1$i26=0,$firstRun$2$i22=0,$i$033=0,$i$1=0,$i$2=0,$i$319=0,$level$031=0,$limit$020=0,$limitRun$0$i=0,$maxLevel$0=0,$minLevel$0=0,$minLevel$2=0,$pBiDi$idx3$val=0,$point$017=0,$pu$016=0,$runCount$0$lcssa2=0,$runCount$032=0,$runCount$1$i23=0,$runIndex$0=0,$tempRun$i=0,label=0,sp=0,$level$031$looptemp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$tempRun$i=sp;$0=$pBiDi+224|0;L1:do if((HEAP32[$0>>2]|0)<=-1){do if((HEAP32[$pBiDi+120>>2]|0)==2){$16=$pBiDi+16|0;$17=HEAP32[$16>>2]|0;$18=$pBiDi+80|0;$19=HEAP32[$18>>2]|0;$20=$pBiDi+132|0;$21=HEAP32[$20>>2]|0;if(($21|0)>0){$i$033=0;$level$031=-2;$runCount$032=0;do{$level$031$looptemp=$level$031;$level$031=HEAP8[$19+$i$033>>0]|0;$runCount$032=($level$031<<24>>24!=$level$031$looptemp<<24>>24&1)+$runCount$032|0;$i$033=$i$033+1|0}while(($i$033|0)!=($21|0));if(($17|0)==($21|0)&($runCount$032|0)==1){$29=HEAP8[$19>>0]|0;$30=$pBiDi+232|0;HEAP32[$pBiDi+228>>2]=$30;HEAP32[$0>>2]=1;HEAP32[$30>>2]=($29&255)<<31;HEAP32[$pBiDi+236>>2]=$17;HEAP32[$pBiDi+240>>2]=0;break}else $runCount$0$lcssa2=$runCount$032}else $runCount$0$lcssa2=0;$36=($17|0)>($21|0);$$runCount$0=$runCount$0$lcssa2+($36&1)|0;$38=$pBiDi+64|0;if(!((_ubidi_getMemory_58($38,$pBiDi+40|0,HEAP8[$pBiDi+73>>0]|0,$$runCount$0*12|0)|0)<<24>>24))break L1;$45=HEAP32[$38>>2]|0;$i$1=0;$maxLevel$0=0;$minLevel$0=126;$runIndex$0=0;while(1){$47=HEAP8[$19+$i$1>>0]|0;$minLevel$0=($47&255)<($minLevel$0&255)?$47:$minLevel$0;$maxLevel$0=($47&255)>($maxLevel$0&255)?$47:$maxLevel$0;$i$2=$i$1;while(1){$i$2=$i$2+1|0;if(($i$2|0)>=($21|0)){$$lcssa10=0;break}if((HEAP8[$19+$i$2>>0]|0)!=$47<<24>>24){$$lcssa10=1;break}}HEAP32[$45+($runIndex$0*12|0)>>2]=$i$1;HEAP32[$45+($runIndex$0*12|0)+4>>2]=$i$2-$i$1;HEAP32[$45+($runIndex$0*12|0)+8>>2]=0;$runIndex$0=$runIndex$0+1|0;if(!$$lcssa10)break;else $i$1=$i$2}if($36){HEAP32[$45+($runIndex$0*12|0)>>2]=$21;HEAP32[$45+($runIndex$0*12|0)+4>>2]=$17-$21;$64=HEAP8[$pBiDi+97>>0]|0;$minLevel$2=($64&255)<($minLevel$0&255)?$64:$minLevel$0}else $minLevel$2=$minLevel$0;HEAP32[$pBiDi+228>>2]=$45;HEAP32[$0>>2]=$$runCount$0;if(($maxLevel$0&255)>>>0>($minLevel$2&255|1)>>>0){$71=$minLevel$2+1<<24>>24;$72=HEAP32[$18>>2]|0;$$$i=(((HEAP32[$20>>2]|0)<(HEAP32[$16>>2]|0))<<31>>31)+$$runCount$0|0;$77=$maxLevel$0+-1<<24>>24;if(($77&255)>=($71&255)){$79=($$$i|0)>0;$81=$77;do{L28:do if($79){$firstRun$0$i29=0;while(1){if((HEAPU8[$72+(HEAP32[$45+($firstRun$0$i29*12|0)>>2]|0)>>0]|0)<($81&255))$firstRun$0$i$be=$firstRun$0$i29+1|0;else{$limitRun$0$i=$firstRun$0$i29;while(1){$90=$limitRun$0$i+1|0;if(($90|0)>=($$$i|0))break;if((HEAPU8[$72+(HEAP32[$45+($90*12|0)>>2]|0)>>0]|0)<($81&255))break;else $limitRun$0$i=$90}if(($firstRun$0$i29|0)<($limitRun$0$i|0)){$endRun$0$i27=$limitRun$0$i;$firstRun$1$i26=$firstRun$0$i29;do{$98=$45+($firstRun$1$i26*12|0)|0;HEAP32[$tempRun$i>>2]=HEAP32[$98>>2];HEAP32[$tempRun$i+4>>2]=HEAP32[$98+4>>2];HEAP32[$tempRun$i+8>>2]=HEAP32[$98+8>>2];$99=$45+($endRun$0$i27*12|0)|0;HEAP32[$98>>2]=HEAP32[$99>>2];HEAP32[$98+4>>2]=HEAP32[$99+4>>2];HEAP32[$98+8>>2]=HEAP32[$99+8>>2];HEAP32[$99>>2]=HEAP32[$tempRun$i>>2];HEAP32[$99+4>>2]=HEAP32[$tempRun$i+4>>2];HEAP32[$99+8>>2]=HEAP32[$tempRun$i+8>>2];$firstRun$1$i26=$firstRun$1$i26+1|0;$endRun$0$i27=$endRun$0$i27+-1|0}while(($firstRun$1$i26|0)<($endRun$0$i27|0))}if(($90|0)==($$$i|0))break L28;$firstRun$0$i$be=$limitRun$0$i+2|0}if(($firstRun$0$i$be|0)<($$$i|0))$firstRun$0$i29=$firstRun$0$i$be;else break}}while(0);$81=$81+-1<<24>>24}while(($81&255)>=($71&255))}if(!($71&1)){$$runCount$0$i=(((HEAP32[$20>>2]|0)==(HEAP32[$16>>2]|0))<<31>>31)+$$$i|0;if(($$runCount$0$i|0)>0){$firstRun$2$i22=0;$runCount$1$i23=$$runCount$0$i;do{$112=$45+($firstRun$2$i22*12|0)|0;HEAP32[$tempRun$i>>2]=HEAP32[$112>>2];HEAP32[$tempRun$i+4>>2]=HEAP32[$112+4>>2];HEAP32[$tempRun$i+8>>2]=HEAP32[$112+8>>2];$113=$45+($runCount$1$i23*12|0)|0;HEAP32[$112>>2]=HEAP32[$113>>2];HEAP32[$112+4>>2]=HEAP32[$113+4>>2];HEAP32[$112+8>>2]=HEAP32[$113+8>>2];HEAP32[$113>>2]=HEAP32[$tempRun$i>>2];HEAP32[$113+4>>2]=HEAP32[$tempRun$i+4>>2];HEAP32[$113+8>>2]=HEAP32[$tempRun$i+8>>2];$firstRun$2$i22=$firstRun$2$i22+1|0;$runCount$1$i23=$runCount$1$i23+-1|0}while(($firstRun$2$i22|0)<($runCount$1$i23|0))}}}if(($$runCount$0|0)>0){$i$319=0;$limit$020=0;do{$118=$45+($i$319*12|0)|0;$119=HEAP32[$118>>2]|0;HEAP32[$118>>2]=HEAPU8[$19+$119>>0]<<31|$119;$125=$45+($i$319*12|0)+4|0;$limit$020=(HEAP32[$125>>2]|0)+$limit$020|0;HEAP32[$125>>2]=$limit$020;$i$319=$i$319+1|0}while(($i$319|0)!=($$runCount$0|0))}if(($runIndex$0|0)<($$runCount$0|0)){$132=HEAPU8[$pBiDi+97>>0]|0;$137=$45+((($132&1|0)!=0?0:$runIndex$0)*12|0)|0;HEAP32[$137>>2]=$132<<31|HEAP32[$137>>2]}}else{$7=HEAP8[$pBiDi+97>>0]|0;$8=$pBiDi+232|0;HEAP32[$pBiDi+228>>2]=$8;HEAP32[$0>>2]=1;HEAP32[$8>>2]=($7&255)<<31;HEAP32[$pBiDi+236>>2]=HEAP32[$pBiDi+16>>2];HEAP32[$pBiDi+240>>2]=0}while(0);$141=HEAP32[$pBiDi+336>>2]|0;if(($141|0)>0){$144=HEAP32[$pBiDi+348>>2]|0;$145=$144+($141<<3)|0;$146=$pBiDi+228|0;$pBiDi$idx3$val=HEAP32[$146>>2]|0;$point$017=$144;do{$148=_getRunFromLogicalIndex(HEAP32[$0>>2]|0,$pBiDi$idx3$val,HEAP32[$point$017>>2]|0,$pErrorCode)|0;$pBiDi$idx3$val=HEAP32[$146>>2]|0;$152=$pBiDi$idx3$val+($148*12|0)+8|0;HEAP32[$152>>2]=HEAP32[$152>>2]|HEAP32[$point$017+4>>2];$point$017=$point$017+8|0}while($point$017>>>0<$145>>>0)}if((HEAP32[$pBiDi+352>>2]|0)>0){$161=HEAP32[$pBiDi+8>>2]|0;$163=HEAP32[$pBiDi+16>>2]|0;$164=$161+($163<<1)|0;$165=$161;$166=$pBiDi+228|0;if(($163|0)>0){$pu$016=$161;do{$169=HEAPU16[$pu$016>>1]|0;if(($169&65532|0)==8204)label=44;else switch($169|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{label=44;break}default:{}}if((label|0)==44){label=0;$175=_getRunFromLogicalIndex(HEAP32[$0>>2]|0,HEAP32[$166>>2]|0,$pu$016-$165>>1,$pErrorCode)|0;$177=(HEAP32[$166>>2]|0)+($175*12|0)+8|0;HEAP32[$177>>2]=(HEAP32[$177>>2]|0)+-1}$pu$016=$pu$016+2|0}while($pu$016>>>0<$164>>>0)}}}while(0);STACKTOP=sp;return}function _bracketProcessChar($bd,$position){$bd=$bd|0;$position=$position|0;var $$0=0,$$pre$i=0,$1=0,$100=0,$101=0,$114=0,$115=0,$12=0,$122=0,$13=0,$139=0,$142=0,$143=0,$16=0,$163=0,$167=0,$169=0,$171=0,$172=0,$176=0,$18=0,$180=0,$19=0,$2=0,$20=0,$22=0,$23=0,$29=0,$3=0,$31=0,$41=0,$5=0,$6=0,$60=0,$61=0,$63=0,$64=0,$69=0,$7=0,$71=0,$77=0,$87=0,$88=0,$90=0,$93=0,$96=0,$97=0,$98=0,$i$025=0,$i1$024=0,$idx$0=0,$idx$0$in=0,$k$0$i31=0,$k$1$i28=0,$newProp$0=0,$newProp$0$i=0,$newProp$0$in$i=0,$newProp$07=0,$not$1=0,$stable$0$i=0,$storemerge=0,$storemerge$i=0,label=0;$1=HEAP32[$bd+492>>2]|0;$2=$bd+496+($1<<4)|0;$3=HEAP32[$bd>>2]|0;$5=HEAP32[$3+76>>2]|0;$6=$5+$position|0;$7=HEAP8[$6>>0]|0;L1:do if($7<<24>>24==10){$12=HEAP16[(HEAP32[$3+8>>2]|0)+($position<<1)>>1]|0;$13=$bd+496+($1<<4)+6|0;$16=$bd+496+($1<<4)+4|0;$18=HEAPU16[$16>>1]|0;$19=$bd+484|0;$20=$12&65535;$idx$0$in=HEAPU16[$13>>1]|0;while(1){$idx$0=$idx$0$in+-1|0;if(($idx$0$in|0)<=($18|0)){label=32;break}$22=HEAP32[$19>>2]|0;$23=$22+($idx$0*24|0)+4|0;if((HEAP32[$23>>2]|0)==($20|0))break;else $idx$0$in=$idx$0}if((label|0)==32){if(!($12<<16>>16)){label=39;break}$122=(_ubidi_getPairedBracket_58($20)|0)&65535;if($122<<16>>16==$12<<16>>16){label=39;break}if((_ubidi_getPairedBracketType_58(HEAP32[$3+4>>2]|0,$20)|0)!=1){label=39;break}L11:do if($122<<16>>16<12297){switch($122<<16>>16){case 9002:break;default:break L11}if(!((_bracketAddOpening($bd,12297,$position)|0)<<24>>24)){$$0=0;break L1}}else{switch($122<<16>>16){case 12297:break;default:break L11}if(!((_bracketAddOpening($bd,9002,$position)|0)<<24>>24)){$$0=0;break L1}}while(0);if(!((_bracketAddOpening($bd,$122,$position)|0)<<24>>24)){$$0=0;break}else{label=39;break}}$29=HEAPU8[$bd+496+($1<<4)+8>>0]&1;$31=HEAP16[$22+($idx$0*24|0)+12>>1]|0;if(!$29)if(!($31&1))label=8;else{$newProp$0$in$i=0;$stable$0$i=0}else if(!($31&2))label=8;else{$newProp$0$in$i=$29;$stable$0$i=0}do if((label|0)==8)if(!($31&3)){HEAP16[$13>>1]=$idx$0;label=39;break L1}else{$newProp$0$in$i=HEAP32[$22+($idx$0*24|0)+16>>2]|0;$stable$0$i=($18|0)!=($idx$0|0);break}while(0);$newProp$0$i=$newProp$0$in$i&255;$41=$22+($idx$0*24|0)|0;HEAP8[$5+(HEAP32[$41>>2]|0)>>0]=$newProp$0$i;HEAP8[(HEAP32[(HEAP32[$bd>>2]|0)+76>>2]|0)+$position>>0]=$newProp$0$i;_fixN0c($bd,$idx$0,HEAP32[$41>>2]|0,$newProp$0$i);L27:do if($stable$0$i){HEAP32[$23>>2]=0-$position;$60=HEAP16[$16>>1]|0;$61=$60&65535;L29:do if(($idx$0|0)>($61|0)){$63=HEAP32[$19>>2]|0;$64=HEAP32[$41>>2]|0;$k$0$i31=$idx$0$in+-2|0;while(1){if((HEAP32[$63+($k$0$i31*24|0)>>2]|0)!=($64|0))break L29;HEAP32[$63+($k$0$i31*24|0)+4>>2]=0;if(($k$0$i31|0)>($61|0))$k$0$i31=$k$0$i31+-1|0;else break}}while(0);$69=HEAPU16[$13>>1]|0;if(($idx$0$in|0)<($69|0)){$71=HEAP32[$19>>2]|0;$k$1$i28=$idx$0$in;while(1){if((HEAP32[$71+($k$1$i28*24|0)>>2]|0)>=($position|0)){$98=$60;break L27}$77=$71+($k$1$i28*24|0)+4|0;if((HEAP32[$77>>2]|0)>0)HEAP32[$77>>2]=0;$k$1$i28=$k$1$i28+1|0;if(($k$1$i28|0)>=($69|0)){$98=$60;break}}}else $98=$60}else{$$pre$i=HEAP16[$16>>1]|0;$storemerge$i=$idx$0&65535;while(1){HEAP16[$13>>1]=$storemerge$i;if(($storemerge$i&65535)<=($$pre$i&65535)){$98=$$pre$i;break L27}if((HEAP32[(HEAP32[$19>>2]|0)+((($storemerge$i&65535)+-1|0)*24|0)>>2]|0)==(HEAP32[$41>>2]|0))$storemerge$i=$storemerge$i+-1<<16>>16;else{$98=$$pre$i;break}}}while(0);if($newProp$0$i<<24>>24==10)label=39;else{HEAP8[$bd+496+($1<<4)+10>>0]=10;HEAP32[$bd+496+($1<<4)+12>>2]=$newProp$0$in$i&255;HEAP32[$2>>2]=$position;$87=HEAP32[(HEAP32[$bd>>2]|0)+80>>2]|0;$88=$87+$position|0;$90=HEAPU8[$88>>0]|0;if(!($90&128))$115=$87;else{$93=$90&1;HEAP8[$bd+496+($1<<4)+9>>0]=$93;$96=1<<$93;$97=$98&65535;if(($97|0)<($idx$0|0)){$100=HEAP32[$19>>2]|0;$i$025=$97;do{$101=$100+($i$025*24|0)+12|0;HEAP16[$101>>1]=HEAPU16[$101>>1]|$96;$i$025=$i$025+1|0}while(($i$025|0)!=($idx$0|0))}HEAP8[$88>>0]=HEAPU8[$88>>0]&127;$115=HEAP32[(HEAP32[$bd>>2]|0)+80>>2]|0}$114=$115+(HEAP32[(HEAP32[$19>>2]|0)+($idx$0*24|0)>>2]|0)|0;HEAP8[$114>>0]=HEAPU8[$114>>0]&127;$$0=1}}else label=39;while(0);L56:do if((label|0)==39){$139=HEAPU8[(HEAP32[(HEAP32[$bd>>2]|0)+80>>2]|0)+$position>>0]|0;L58:do if(!($139&128))switch($7<<24>>24){case 0:case 1:case 13:{$not$1=$7<<24>>24!=0;HEAP8[$bd+496+($1<<4)+10>>0]=$7;HEAP8[$bd+496+($1<<4)+9>>0]=$7;HEAP32[$bd+496+($1<<4)+12>>2]=$not$1&1;HEAP32[$2>>2]=$position;$newProp$0=$not$1&1;label=55;break L58;break}case 2:{HEAP8[$bd+496+($1<<4)+10>>0]=2;switch(HEAP8[$bd+496+($1<<4)+9>>0]|0){case 0:{if(!(HEAP8[$bd+2528>>0]|0))HEAP8[$6>>0]=23;HEAP32[$bd+496+($1<<4)+12>>2]=0;HEAP32[$2>>2]=$position;$newProp$07=0;break L58;break}case 13:{$storemerge=5;break}default:$storemerge=24}HEAP8[$6>>0]=$storemerge;HEAP32[$bd+496+($1<<4)+12>>2]=1;HEAP32[$2>>2]=$position;$newProp$07=1;break L58;break}case 5:{HEAP8[$bd+496+($1<<4)+10>>0]=5;HEAP32[$bd+496+($1<<4)+12>>2]=1;HEAP32[$2>>2]=$position;$newProp$07=1;break L58;break}case 17:{$163=HEAP8[$bd+496+($1<<4)+10>>0]|0; + +if($163<<24>>24!=10){$newProp$0=$163;label=55;break L58}HEAP8[$6>>0]=10;$$0=1;break L56;break}default:{HEAP8[$bd+496+($1<<4)+10>>0]=$7;$newProp$0=$7;label=55;break L58}}else{$142=$139&1;$143=$142&255;if(($7+-8&255)>=3)HEAP8[$6>>0]=$143;HEAP8[$bd+496+($1<<4)+10>>0]=$143;HEAP8[$bd+496+($1<<4)+9>>0]=$143;HEAP32[$bd+496+($1<<4)+12>>2]=$142;HEAP32[$2>>2]=$position;$newProp$0=$143;label=55}while(0);if((label|0)==55)switch($newProp$0<<24>>24){case 0:case 1:case 13:{$newProp$07=$newProp$0;break}default:{$$0=1;break L56}}$167=1<<($newProp$07<<24>>24!=0&1);$169=HEAP16[$bd+496+($1<<4)+4>>1]|0;$171=HEAP16[$bd+496+($1<<4)+6>>1]|0;$172=$171&65535;if(($169&65535)<($171&65535)){$176=HEAP32[$bd+484>>2]|0;$i1$024=$169&65535;do{if((HEAP32[$176+($i1$024*24|0)>>2]|0)<($position|0)){$180=$176+($i1$024*24|0)+12|0;HEAP16[$180>>1]=HEAPU16[$180>>1]|$167}$i1$024=$i1$024+1|0}while(($i1$024|0)<($172|0));$$0=1}else $$0=1}while(0);return $$0|0}function _processPropertySeq($pBiDi,$pLevState,$_prop,$start,$limit){$pBiDi=$pBiDi|0;$pLevState=$pLevState|0;$_prop=$_prop|0;$start=$start|0;$limit=$limit|0;var $$0=0,$$1=0,$$in=0,$$pre=0,$$pre11=0,$0=0,$11=0,$112=0,$114=0,$12=0,$121=0,$122=0,$123=0,$124=0,$125=0,$127=0,$136=0,$137=0,$138=0,$139=0,$140=0,$142=0,$146=0,$15=0,$154=0,$158=0,$166=0,$167=0,$168=0,$17=0,$170=0,$172=0,$175=0,$185=0,$191=0,$2=0,$3=0,$37=0,$38=0,$4=0,$43=0,$44=0,$45=0,$5=0,$54=0,$60=0,$63=0,$69=0,$8=0,$91=0,$92=0,$97=0,$k$019=0,$k$020=0,$k$1$in=0,$k$224=0,$k$334=0,$k$334$in=0,$k$428=0,$k$6=0,$k$738$in=0,label=0,$k$1$in$looptemp=0,$k$428$looptemp=0;$0=HEAP32[$pLevState>>2]|0;$2=HEAP32[$pLevState+4>>2]|0;$3=$pBiDi+80|0;$4=HEAP32[$3>>2]|0;$5=$pLevState+20|0;$8=HEAP32[$5>>2]&255;$11=HEAPU8[($_prop&255)+($0+($8<<3))>>0]|0;$12=$11&15;HEAP32[$5>>2]=$12;$15=HEAP8[$2+($11>>>4)>>0]|0;$17=HEAP8[$0+($12<<3)+7>>0]|0;L1:do if(!($15<<24>>24))$$1=$start;else do switch($15&255|0){case 1:{HEAP32[$pLevState+8>>2]=$start;$$1=$start;break L1;break}case 2:{$$1=HEAP32[$pLevState+8>>2]|0;break L1;break}case 3:{_setLevelsOutsideIsolates(HEAP32[$pBiDi+76>>2]|0,$4,HEAP32[$pLevState+8>>2]|0,$start,(HEAPU8[$pLevState+28>>0]|0)+1&255);$$1=$start;break L1;break}case 4:{_setLevelsOutsideIsolates(HEAP32[$pBiDi+76>>2]|0,$4,HEAP32[$pLevState+8>>2]|0,$start,(HEAPU8[$pLevState+28>>0]|0)+2&255);$$1=$start;break L1;break}case 5:{$37=$pLevState+12|0;$38=HEAP32[$37>>2]|0;if(($38|0)>-1)_addPoint($pBiDi,$38,1);HEAP32[$37>>2]=-1;if(HEAP32[$pBiDi+332>>2]|0){$43=$pBiDi+336|0;$44=HEAP32[$43>>2]|0;$45=$pBiDi+340|0;if(($44|0)>(HEAP32[$45>>2]|0)){$60=$pLevState+16|0;$k$019=(HEAP32[$60>>2]|0)+1|0;if(($k$019|0)<($start|0)){$k$020=$k$019;do{$63=$4+$k$020|0;HEAP8[$63>>0]=(HEAPU8[$63>>0]|0)+254&254;$k$020=$k$020+1|0}while(($k$020|0)!=($start|0));$69=HEAP32[$43>>2]|0}else $69=$44;HEAP32[$45>>2]=$69;HEAP32[$60>>2]=-1;if($_prop<<24>>24!=5){$$1=$start;break L1}_addPoint($pBiDi,$start,1);HEAP32[$45>>2]=HEAP32[$43>>2];$$1=$start;break L1}}HEAP32[$pLevState+16>>2]=-1;if(!(HEAP8[$0+($8<<3)+7>>0]&1))$$0=$start;else{$54=HEAP32[$pLevState+8>>2]|0;$$0=($54|0)>0?$54:$start}if($_prop<<24>>24!=5){$$1=$$0;break L1}_addPoint($pBiDi,$start,1);HEAP32[$pBiDi+340>>2]=HEAP32[$pBiDi+336>>2];$$1=$$0;break L1;break}case 6:{if((HEAP32[$pBiDi+332>>2]|0)>0)HEAP32[$pBiDi+336>>2]=HEAP32[$pBiDi+340>>2];HEAP32[$pLevState+8>>2]=-1;HEAP32[$pLevState+12>>2]=-1;HEAP32[$pLevState+16>>2]=$limit+-1;$$1=$start;break L1;break}case 7:{if($_prop<<24>>24==3)if((HEAP8[(HEAP32[$pBiDi+76>>2]|0)+$start>>0]|0)==5)if((HEAP32[$pBiDi+88>>2]|0)!=6){$91=$pLevState+12|0;$92=HEAP32[$91>>2]|0;if(($92|0)==-1){HEAP32[$pLevState+16>>2]=$limit+-1;$$1=$start;break L1}if(($92|0)>-1){_addPoint($pBiDi,$92,1);HEAP32[$91>>2]=-2}_addPoint($pBiDi,$start,1);$$1=$start;break L1}$97=$pLevState+12|0;if((HEAP32[$97>>2]|0)!=-1){$$1=$start;break L1}HEAP32[$97>>2]=$start;$$1=$start;break L1;break}case 8:{HEAP32[$pLevState+16>>2]=$limit+-1;HEAP32[$pLevState+8>>2]=-1;$$1=$start;break L1;break}case 9:{$k$1$in=$start;while(1){$k$1$in$looptemp=$k$1$in;$k$1$in=$k$1$in+-1|0;if(($k$1$in$looptemp|0)<=0)break;if(HEAP8[$4+$k$1$in>>0]&1){label=36;break}}if((label|0)==36){_addPoint($pBiDi,$k$1$in,4);HEAP32[$pBiDi+340>>2]=HEAP32[$pBiDi+336>>2]}HEAP32[$pLevState+8>>2]=$start;$$1=$start;break L1;break}case 10:{_addPoint($pBiDi,$start,1);_addPoint($pBiDi,$start,2);$$1=$start;break L1;break}case 11:{$112=$pBiDi+340|0;$114=$pBiDi+336|0;HEAP32[$114>>2]=HEAP32[$112>>2];if($_prop<<24>>24!=5){$$1=$start;break L1}_addPoint($pBiDi,$start,4);HEAP32[$112>>2]=HEAP32[$114>>2];$$1=$start;break L1;break}case 12:{$121=(HEAPU8[$pLevState+28>>0]|0)+($17&255)|0;$122=$121&255;$123=$pLevState+8|0;$124=HEAP32[$123>>2]|0;$125=$121&255;if(($124|0)<($start|0)){$k$224=$124;do{$127=$4+$k$224|0;if((HEAPU8[$127>>0]|0)>>>0<$125>>>0)HEAP8[$127>>0]=$122;$k$224=$k$224+1|0}while(($k$224|0)!=($start|0))}HEAP32[$pBiDi+340>>2]=HEAP32[$pBiDi+336>>2];HEAP32[$123>>2]=$start;$$1=$start;break L1;break}case 13:{$136=HEAP8[$pLevState+28>>0]|0;$137=$pLevState+8|0;$138=$136&255;$139=$138+3|0;$140=$138+2|0;$142=$138+1&255;if((HEAP32[$137>>2]|0)<($start|0))$k$334$in=$start;else{$$1=$start;break L1}while(1){$k$334=$k$334$in+-1|0;$146=HEAP8[$4+$k$334>>0]|0;if(($146&255|0)==($139|0)){$k$428=$k$334;do{$k$428$looptemp=$k$428;$k$428=$k$428+-1|0;HEAP8[$4+$k$428$looptemp>>0]=$142;$$pre=HEAP8[$4+$k$428>>0]|0}while(($$pre&255|0)==($139|0));if($$pre<<24>>24==$136<<24>>24){$$in=$k$428;while(1){$154=$$in+-1|0;$$pre11=HEAP8[$4+$154>>0]|0;if($$pre11<<24>>24==$136<<24>>24)$$in=$154;else{$158=$$pre11;$k$6=$154;break}}}else{$158=$$pre;$k$6=$k$428}}else{$158=$146;$k$6=$k$334}HEAP8[$4+$k$6>>0]=($158&255|0)==($140|0)?$136:$142;if(($k$6|0)>(HEAP32[$137>>2]|0))$k$334$in=$k$6;else{$$1=$start;break}}break}case 14:{$166=$pLevState+8|0;$167=(HEAPU8[$pLevState+28>>0]|0)+1&255;$168=HEAP32[$166>>2]|0;if(($168|0)<($start|0)){$191=$168;$k$738$in=$start}else{$$1=$start;break L1}while(1){$k$738$in=$k$738$in+-1|0;$170=$4+$k$738$in|0;$172=HEAPU8[$170>>0]|0;if($172>>>0>$167>>>0){HEAP8[$170>>0]=$172+254;$175=HEAP32[$166>>2]|0}else $175=$191;if(($k$738$in|0)<=($175|0)){$$1=$start;break}else $191=$175}break}default:{$$1=$start;break L1}}while(0);while(0);do if($17<<24>>24!=0|($$1|0)<($start|0)){$185=(HEAPU8[$pLevState+28>>0]|0)+($17&255)&255;if(($$1|0)<(HEAP32[$pLevState+24>>2]|0)){_setLevelsOutsideIsolates(HEAP32[$pBiDi+76>>2]|0,HEAP32[$3>>2]|0,$$1,$limit,$185);break}if(($$1|0)<($limit|0))_memset($4+$$1|0,$185|0,$limit-$$1|0)|0}while(0);return}function _ubidi_getVisualMap_58($pBiDi,$indexMap,$pErrorCode){$pBiDi=$pBiDi|0;$indexMap=$indexMap|0;$pErrorCode=$pErrorCode|0;var $10=0,$102=0,$103=0,$104=0,$106=0,$108=0,$11=0,$111=0,$114=0,$15=0,$17=0,$19=0,$27=0,$39=0,$42=0,$51=0,$54=0,$57=0,$62=0,$65=0,$67=0,$7=0,$78=0,$8=0,$84=0,$85=0,$89=0,$9=0,$92=0,$i$036=0,$i$133$in=0,$i3$050=0,$j$028$in=0,$j4$047=0,$j4$142=0,$k$0$be=0,$k$031=0,$k$1=0,$k$2$lcssa=0,$k$227=0,$k5$051=0,$k5$148=0,$k5$243=0,$k5$3=0,$k5$4=0,$logicalStart$0=0,$logicalStart$1=0,$markFound$037=0,$markFound$3$be=0,$markFound$332=0,$markFound$4=0,$pi$055=0,$pi$1=0,$pi$2=0,$runs$057=0,$smax=0,$smax20$pn=0,$visualStart$056=0,$visualStart$1=0,$visualStart$2=0,$visualStart$452=0,$visualStart$452$looptemp=0,$i$133$in$looptemp=0;L1:do if($pErrorCode)if((HEAP32[$pErrorCode>>2]|0)<=0){if(!$indexMap){HEAP32[$pErrorCode>>2]=1;break}_ubidi_countRuns_58($pBiDi,$pErrorCode)|0;if((HEAP32[$pErrorCode>>2]|0)<1){$7=HEAP32[$pBiDi+228>>2]|0;$8=$pBiDi+224|0;$9=HEAP32[$8>>2]|0;$10=$7+($9*12|0)|0;$11=$pBiDi+20|0;if((HEAP32[$11>>2]|0)>=1){if(($9|0)>0){$pi$055=$indexMap;$runs$057=$7;$visualStart$056=0;while(1){$15=HEAP32[$runs$057>>2]|0;$17=HEAP32[$runs$057+4>>2]|0;if(($15|0)>-1){$19=$visualStart$056+1|0;$logicalStart$0=$15;$pi$1=$pi$055;$visualStart$1=$visualStart$056;while(1){HEAP32[$pi$1>>2]=$logicalStart$0;$visualStart$1=$visualStart$1+1|0;if(($visualStart$1|0)>=($17|0))break;else{$logicalStart$0=$logicalStart$0+1|0;$pi$1=$pi$1+4|0}}$smax20$pn=($17|0)>($19|0)?$17:$19}else{$27=$visualStart$056+1|0;$logicalStart$1=$17-$visualStart$056+($15&2147483647)|0;$pi$2=$pi$055;$visualStart$2=$visualStart$056;while(1){$logicalStart$1=$logicalStart$1+-1|0;HEAP32[$pi$2>>2]=$logicalStart$1;$visualStart$2=$visualStart$2+1|0;if(($visualStart$2|0)>=($17|0))break;else $pi$2=$pi$2+4|0}$smax20$pn=($17|0)>($27|0)?$17:$27}$runs$057=$runs$057+12|0;if($runs$057>>>0>=$10>>>0)break;else{$pi$055=$pi$055+($smax20$pn-$visualStart$056<<2)|0;$visualStart$056=$smax20$pn}}}if((HEAP32[$pBiDi+336>>2]|0)<=0){if((HEAP32[$pBiDi+352>>2]|0)<=0)break;$84=HEAP32[$8>>2]|0;$85=$pBiDi+8|0;if(($84|0)>0){$i3$050=0;$k5$051=0;$visualStart$452=0}else break;while(1){$visualStart$452$looptemp=$visualStart$452;$visualStart$452=HEAP32[$7+($i3$050*12|0)+4>>2]|0;$89=$visualStart$452-$visualStart$452$looptemp|0;$92=(HEAP32[$7+($i3$050*12|0)+8>>2]|0)==0;do if(($k5$051|0)==($visualStart$452$looptemp|0)&$92)$k5$4=$visualStart$452;else{if($92){$smax=($visualStart$452|0)<($visualStart$452$looptemp|0)?$visualStart$452$looptemp:$visualStart$452;if(($visualStart$452|0)>($visualStart$452$looptemp|0)){$j4$047=$visualStart$452$looptemp;$k5$148=$k5$051;while(1){HEAP32[$indexMap+($k5$148<<2)>>2]=HEAP32[$indexMap+($j4$047<<2)>>2];$j4$047=$j4$047+1|0;if(($j4$047|0)==($visualStart$452|0))break;else $k5$148=$k5$148+1|0}}$k5$4=$k5$051-$visualStart$452$looptemp+$smax|0;break}$102=HEAP32[$7+($i3$050*12|0)>>2]|0;$103=$102&2147483647;$104=($102|0)>-1;$106=$89+-1+$103|0;if(($89|0)>0){$108=HEAP32[$85>>2]|0;$j4$142=0;$k5$243=$k5$051;while(1){$111=$104?$j4$142+$103|0:$106-$j4$142|0;$114=HEAPU16[$108+($111<<1)>>1]|0;L40:do if(($114&65532|0)==8204)$k5$3=$k5$243;else{switch($114|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{$k5$3=$k5$243;break L40;break}default:{}}HEAP32[$indexMap+($k5$243<<2)>>2]=$111;$k5$3=$k5$243+1|0}while(0);$j4$142=$j4$142+1|0;if(($j4$142|0)==($89|0)){$k5$4=$k5$3;break}else $k5$243=$k5$3}}else $k5$4=$k5$051}while(0);$i3$050=$i3$050+1|0;if(($i3$050|0)==($84|0))break L1;else $k5$051=$k5$4}}$39=HEAP32[$8>>2]|0;if(($39|0)>0){$i$036=0;$markFound$037=0;do{$42=HEAP32[$7+($i$036*12|0)+8>>2]|0;$markFound$037=(($42&5|0)!=0&1)+$markFound$037+(($42&10|0)!=0&1)|0;$i$036=$i$036+1|0}while(($i$036|0)!=($39|0));if(($markFound$037|0)>0){$i$133$in=$39;$k$031=HEAP32[$11>>2]|0;$markFound$332=$markFound$037;while(1){$i$133$in$looptemp=$i$133$in;$i$133$in=$i$133$in+-1|0;$51=HEAP32[$7+($i$133$in*12|0)+8>>2]|0;if(!($51&10)){$k$1=$k$031;$markFound$4=$markFound$332}else{$54=$k$031+-1|0;HEAP32[$indexMap+($54<<2)>>2]=-1;$k$1=$54;$markFound$4=$markFound$332+-1|0}$57=($i$133$in$looptemp|0)>1;if($57)$65=HEAP32[$7+(($i$133$in$looptemp+-2|0)*12|0)+4>>2]|0;else $65=0;$62=HEAP32[$7+($i$133$in*12|0)+4>>2]|0;if(($markFound$4|0)>0&($62|0)>($65|0)){$67=$65+$k$1|0;$j$028$in=$62;$k$227=$k$1;do{$j$028$in=$j$028$in+-1|0;$k$227=$k$227+-1|0;HEAP32[$indexMap+($k$227<<2)>>2]=HEAP32[$indexMap+($j$028$in<<2)>>2]}while(($j$028$in|0)>($65|0));$k$2$lcssa=$67-$62|0}else $k$2$lcssa=$k$1;if(!($51&5)){$k$0$be=$k$2$lcssa;$markFound$3$be=$markFound$4}else{$78=$k$2$lcssa+-1|0;HEAP32[$indexMap+($78<<2)>>2]=-1;$k$0$be=$78;$markFound$3$be=$markFound$4+-1|0}if(!($57&($markFound$3$be|0)>0))break;else{$k$031=$k$0$be;$markFound$332=$markFound$3$be}}}}}}}while(0);return}function _doWriteReverse($src,$srcLength,$dest,$destSize,$options,$pErrorCode){$src=$src|0;$srcLength=$srcLength|0;$dest=$dest|0;$destSize=$destSize|0;$options=$options|0;$pErrorCode=$pErrorCode|0;var $$0=0,$$012=0,$$013=0,$$015=0,$$1=0,$$114=0,$$116=0,$$2=0,$$217=0,$$3=0,$$318=0,$$4=0,$$419=0,$$5=0,$$520$ph=0,$$52056=0,$$6=0,$$621=0,$$7=0,$$8=0,$$9=0,$$lcssa41=0,$0=0,$101=0,$105=0,$108=0,$116=0,$129=0,$14=0,$15=0,$24=0,$27=0,$3=0,$31=0,$34=0,$46=0,$47=0,$55=0,$58=0,$73=0,$75=0,$76=0,$79=0,$83=0,$86=0,$9=0,$98=0,$c$0=0,$c$1=0,$c$2=0,$c$3=0,$c$4=0,$i$0=0,$i$2=0,$j$0=0,$j$1=0,$j$2$ph=0,$j$255=0,$k$0=0,$length$0=0,label=0;$0=$options&65535;L1:do switch($0&11|0){case 0:{if(($destSize|0)<($srcLength|0)){HEAP32[$pErrorCode>>2]=15;$$0=$srcLength;break L1}else{$$013=$srcLength;$$015=$dest}while(1){$3=$$013+-1|0;if(($$013|0)>1?(HEAP16[$src+($3<<1)>>1]&-1024)<<16>>16==-9216:0){$9=$$013+-2|0;$$114=(HEAP16[$src+($9<<1)>>1]&-1024)<<16>>16==-10240?$9:$3}else $$114=$3;$14=$$114+1|0;$15=($$013|0)>($14|0);$$116=$$015;$j$0=$$114;while(1){HEAP16[$$116>>1]=HEAP16[$src+($j$0<<1)>>1]|0;$j$0=$j$0+1|0;if(($j$0|0)>=($$013|0))break;else $$116=$$116+2|0}$$015=$$015+(($15?$$013:$14)-$$114<<1)|0;if(($$114|0)<=0){$$0=$srcLength;break}else $$013=$$114}break}case 1:{if(($destSize|0)<($srcLength|0)){HEAP32[$pErrorCode>>2]=15;$$0=$srcLength;break L1}else{$$2=$srcLength;$$217=$dest}while(1){$$3=$$2;while(1){$24=$$3+-1|0;$27=HEAPU16[$src+($24<<1)>>1]|0;if(($$3|0)>1&($27&64512|0)==56320){$31=$$3+-2|0;$34=HEAPU16[$src+($31<<1)>>1]|0;if(($34&64512|0)==55296){$$4=$31;$c$0=$27+-56613888+($34<<10)|0}else{$$4=$24;$c$0=$27}}else{$$4=$24;$c$0=$27}if(($$4|0)<=0){$$lcssa41=0;break}if(!(1<<((_u_charType_58($c$0)|0)<<24>>24)&448)){$$lcssa41=1;break}else $$3=$$4}$46=$$4+1|0;$47=($$2|0)>($46|0);$$318=$$217;$j$1=$$4;while(1){HEAP16[$$318>>1]=HEAP16[$src+($j$1<<1)>>1]|0;$j$1=$j$1+1|0;if(($j$1|0)>=($$2|0))break;else $$318=$$318+2|0}$$217=$$217+(($47?$$2:$46)-$$4<<1)|0;if(!$$lcssa41){$$0=$srcLength;break}else $$2=$$4}break}default:{$55=($0&8|0)!=0;if($55){$$012=$src;$i$0=0;$length$0=$srcLength;while(1){$58=HEAPU16[$$012>>1]|0;$i$0=((($58+-8294|0)>>>0<4|(($58&65532|0)==8204|($58+-8234|0)>>>0<5))&1^1)+$i$0|0;if(($length$0|0)<=1)break;else{$$012=$$012+2|0;$length$0=$length$0+-1|0}}$$1=$src+((($srcLength|0)<1?1-$srcLength|0:0)<<1)|0;$i$2=$i$0}else{$$1=$src;$i$2=$srcLength}if(($i$2|0)>($destSize|0)){HEAP32[$pErrorCode>>2]=15;$$0=$i$2;break L1}$73=($0&1|0)!=0;$75=($0&2|0)==0;$$419=$dest;$$5=$srcLength;while(1){$76=$$5+-1|0;$79=HEAPU16[$$1+($76<<1)>>1]|0;if(($$5|0)>1&($79&64512|0)==56320){$83=$$5+-2|0;$86=HEAPU16[$$1+($83<<1)>>1]|0;if(($86&64512|0)==55296){$$6=$83;$c$1=$79+-56613888+($86<<10)|0}else{$$6=$76;$c$1=$79}}else{$$6=$76;$c$1=$79}L17:do if($73&($$6|0)>0){$$8=$$6;$c$3=$c$1;while(1){if(!(1<<((_u_charType_58($c$3)|0)<<24>>24)&448)){$$9=$$8;$c$4=$c$3;break L17}$98=$$8+-1|0;$101=HEAPU16[$$1+($98<<1)>>1]|0;if(($$8|0)>1&($101&64512|0)==56320){$105=$$8+-2|0;$108=HEAPU16[$$1+($105<<1)>>1]|0;if(($108&64512|0)==55296){$$7=$105;$c$2=$101+-56613888+($108<<10)|0}else{$$7=$98;$c$2=$101}}else{$$7=$98;$c$2=$101}if(($$7|0)>0){$$8=$$7;$c$3=$c$2}else{$$9=$$7;$c$4=$c$2;break}}}else{$$9=$$6;$c$4=$c$1}while(0);if($55)if(($c$4&-4|0)==8204)$$621=$$419;else switch($c$4|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{$$621=$$419;break}default:label=38}else label=38;if((label|0)==38){label=0;if($75){$$520$ph=$$419;$j$2$ph=$$9}else{$116=_ubidi_getMirror_58($c$4)|0;if($116>>>0<65536){HEAP16[$$419>>1]=$116;$k$0=1}else{HEAP16[$$419>>1]=($116>>>10)+55232;HEAP16[$$419+2>>1]=$116&1023|56320;$k$0=2}$$520$ph=$$419+($k$0<<1)|0;$j$2$ph=$k$0+$$9|0}$129=(($j$2$ph|0)>($$5|0)?$j$2$ph:$$5)-$j$2$ph|0;if(($j$2$ph|0)<($$5|0)){$$52056=$$520$ph;$j$255=$j$2$ph;while(1){HEAP16[$$52056>>1]=HEAP16[$$1+($j$255<<1)>>1]|0;$j$255=$j$255+1|0;if(($j$255|0)==($$5|0))break;else $$52056=$$52056+2|0}}$$621=$$520$ph+($129<<1)|0}if(($$9|0)>0){$$419=$$621;$$5=$$9}else{$$0=$i$2;break}}}}while(0);return $$0|0}function _doWriteForward($src,$srcLength,$dest,$destSize,$options,$pErrorCode){$src=$src|0;$srcLength=$srcLength|0;$dest=$dest|0;$destSize=$destSize|0;$options=$options|0;$pErrorCode=$pErrorCode|0;var $$0=0,$$01=0,$$02=0,$$06=0,$$1=0,$$1372=0,$$17=0,$$24=0,$$273=0,$$28=0,$$3=0,$$3569=0,$$470=0,$$sink$in=0,$12=0,$18=0,$25=0,$39=0,$40=0,$43=0,$49=0,$64=0,$70=0,$80=0,$85=0,$9=0,$96=0,$c$0=0,$c5$0=0,$i$0=0,$i$1=0,$i3$0=0,$j$0=0,$j$1=0,$j4$0=0,$j4$1=0,$length$0=0,$remaining$0=0,$remaining$1$=0,$remaining$1$lcssa=0,$remaining$174=0,$remaining$2=0,$remaining2$0=0,$remaining2$1$lcssa=0,$remaining2$171=0,$remaining2$2=0,$remaining2$3=0,label=0,$$1$looptemp=0;L1:do switch($options&10|0){case 0:{if(($destSize|0)<($srcLength|0)){HEAP32[$pErrorCode>>2]=15;$$0=$srcLength;break L1}else{$$01=$src;$$06=$dest;$length$0=$srcLength;while(1){HEAP16[$$06>>1]=HEAP16[$$01>>1]|0;if(($length$0|0)>1){$$01=$$01+2|0;$$06=$$06+2|0;$length$0=$length$0+-1|0}else{$$0=$srcLength;break}}}break}case 2:{if(($destSize|0)<($srcLength|0)){HEAP32[$pErrorCode>>2]=15;$$0=$srcLength;break L1}else{$i$0=0;$j$0=0}while(1){$9=$i$0+1|0;$12=HEAPU16[$src+($i$0<<1)>>1]|0;if(($9|0)==($srcLength|0)|($12&64512|0)!=55296){$c$0=$12;$i$1=$9}else{$18=HEAPU16[$src+($9<<1)>>1]|0;if(($18&64512|0)==56320){$c$0=($12<<10)+-56613888+$18|0;$i$1=$i$0+2|0}else{$c$0=$12;$i$1=$9}}$25=_ubidi_getMirror_58($c$0)|0;if($25>>>0<65536){$$sink$in=$25;$j$1=$j$0+1|0}else{HEAP16[$dest+($j$0+1<<1)>>1]=$25&1023|56320;$$sink$in=($25>>>10)+55232|0;$j$1=$j$0+2|0}HEAP16[$dest+($j$0<<1)>>1]=$$sink$in;if(($i$1|0)<($srcLength|0)){$i$0=$i$1;$j$0=$j$1}else{$$0=$srcLength;break}}break}case 8:{$$02=$srcLength;$$1=$src;$$17=$dest;$remaining$0=$destSize;L39:while(1){$$1$looptemp=$$1;$$1=$$1+2|0;$39=HEAP16[$$1$looptemp>>1]|0;$40=$39&65535;L41:do if(($40&65532|0)==8204){$$28=$$17;$remaining$2=$remaining$0}else{switch($40|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{$$28=$$17;$remaining$2=$remaining$0;break L41;break}default:{}}$43=$remaining$0+-1|0;if(($remaining$0|0)<1)break L39;HEAP16[$$17>>1]=$39;$$28=$$17+2|0;$remaining$2=$43}while(0);if(($$02|0)<=1){label=22;break}else{$$02=$$02+-1|0;$$17=$$28;$remaining$0=$remaining$2}}if((label|0)==22){$$0=$destSize-$remaining$2|0;break L1}HEAP32[$pErrorCode>>2]=15;if(($$02|0)>1){$$1372=$$02;$$273=$$1;$remaining$174=$43;while(1){$$1372=$$1372+-1|0;$49=HEAPU16[$$273>>1]|0;$remaining$1$=(((($49+-8294|0)>>>0<4|(($49&65532|0)==8204|($49+-8234|0)>>>0<5))^1)<<31>>31)+$remaining$174|0;if(($$1372|0)<=1){$remaining$1$lcssa=$remaining$1$;break}else{$$273=$$273+2|0;$remaining$174=$remaining$1$}}}else $remaining$1$lcssa=$43;$$0=$destSize-$remaining$1$lcssa|0;break}default:{$$24=$srcLength;$$3=$src;$j4$0=0;$remaining2$0=$destSize;L2:while(1){$64=HEAPU16[$$3>>1]|0;if(($$24|0)==1|($64&64512|0)!=55296){$c5$0=$64;$i3$0=1}else{$70=HEAPU16[$$3+2>>1]|0;if(($70&64512|0)==56320){$c5$0=($64<<10)+-56613888+$70|0;$i3$0=2}else{$c5$0=$64;$i3$0=1}}$$3=$$3+($i3$0<<1)|0;$$24=$$24-$i3$0|0;L8:do if(($c5$0&-4|0)==8204){$j4$1=$j4$0;$remaining2$3=$remaining2$0}else{switch($c5$0|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{$j4$1=$j4$0;$remaining2$3=$remaining2$0;break L8;break}default:{}}$80=$remaining2$0-$i3$0|0;if(($80|0)<0)break L2;$96=_ubidi_getMirror_58($c5$0)|0;if($96>>>0<65536){HEAP16[$dest+($j4$0<<1)>>1]=$96;$j4$1=$j4$0+1|0;$remaining2$3=$80;break}else{HEAP16[$dest+($j4$0<<1)>>1]=($96>>>10)+55232;HEAP16[$dest+($j4$0+1<<1)>>1]=$96&1023|56320;$j4$1=$j4$0+2|0;$remaining2$3=$80;break}}while(0);if(($$24|0)<=0){$$0=$j4$1;break L1}else{$j4$0=$j4$1;$remaining2$0=$remaining2$3}}HEAP32[$pErrorCode>>2]=15;if(($$24|0)>0){$$3569=$$24;$$470=$$3;$remaining2$171=$80;while(1){$85=HEAPU16[$$470>>1]|0;$remaining2$2=(((($85+-8294|0)>>>0<4|(($85&65532|0)==8204|($85+-8234|0)>>>0<5))^1)<<31>>31)+$remaining2$171|0;if(($$3569|0)>1){$$3569=$$3569+-1|0;$$470=$$470+2|0;$remaining2$171=$remaining2$2}else{$remaining2$1$lcssa=$remaining2$2;break}}}else $remaining2$1$lcssa=$80;$$0=$destSize-$remaining2$1$lcssa|0}}while(0);return $$0|0}function _ubidi_setLine_58($pParaBiDi,$start,$limit,$pLineBiDi,$pErrorCode){$pParaBiDi=$pParaBiDi|0;$start=$start|0;$limit=$limit|0;$pLineBiDi=$pLineBiDi|0;$pErrorCode=$pErrorCode|0;var $$pre$phiZ2D=0,$100=0,$102=0,$104=0,$108=0,$123=0,$13=0,$14=0,$17=0,$21=0,$24=0,$29=0,$35=0,$36=0,$38=0,$47=0,$51=0,$54=0,$57=0,$58=0,$61=0,$63=0,$67=0,$68=0,$72=0,$76=0,$86=0,$88=0,$96=0,$i$0=0,$j$010=0,$pParaBiDi$idx$val=0,$start$0$i=0,$start$1$i=0,label=0;do if($pErrorCode)if((HEAP32[$pErrorCode>>2]|0)<=0){if($pParaBiDi)if((HEAP32[$pParaBiDi>>2]|0)==($pParaBiDi|0)){if(!(($start|0)>-1&($limit|0)>($start|0))){HEAP32[$pErrorCode>>2]=1;break}if(($limit|0)>=0)if((HEAP32[$pParaBiDi+16>>2]|0)>=($limit|0)){if(!$pLineBiDi){HEAP32[$pErrorCode>>2]=1;break}$13=_ubidi_getParagraph_58($pParaBiDi,$start,$pErrorCode)|0;$14=$limit+-1|0;if(($13|0)!=(_ubidi_getParagraph_58($pParaBiDi,$14,$pErrorCode)|0)){HEAP32[$pErrorCode>>2]=1;break}HEAP32[$pLineBiDi>>2]=0;$17=$pParaBiDi+8|0;HEAP32[$pLineBiDi+8>>2]=(HEAP32[$17>>2]|0)+($start<<1);$21=$limit-$start|0;HEAP32[$pLineBiDi+16>>2]=$21;HEAP32[$pLineBiDi+12>>2]=$21;$24=$pLineBiDi+20|0;HEAP32[$24>>2]=$21;if(!(HEAP8[$pParaBiDi+98>>0]|0))label=17;else{$29=HEAP32[$pParaBiDi+140>>2]|0;if((HEAP32[$29>>2]|0)>($start|0))label=17;else{$pParaBiDi$idx$val=HEAP32[$pParaBiDi+136>>2]|0;$36=_ubidi_getParaLevelAtIndex_58($pParaBiDi$idx$val,$29,$start)|0;$38=$pParaBiDi$idx$val}}if((label|0)==17){$36=HEAP8[$pParaBiDi+97>>0]|0;$38=HEAP32[$pParaBiDi+136>>2]|0}$35=$pLineBiDi+97|0;HEAP8[$35>>0]=$36;HEAP32[$pLineBiDi+136>>2]=$38;HEAP32[$pLineBiDi+228>>2]=0;HEAP32[$pLineBiDi+124>>2]=0;HEAP32[$pLineBiDi+88>>2]=HEAP32[$pParaBiDi+88>>2];HEAP32[$pLineBiDi+92>>2]=HEAP32[$pParaBiDi+92>>2];$47=$pLineBiDi+352|0;HEAP32[$47>>2]=0;if((HEAP32[$pParaBiDi+352>>2]|0)>0){$51=HEAP32[$17>>2]|0;$58=0;$j$010=$start;while(1){$54=HEAPU16[$51+($j$010<<1)>>1]|0;if(($54&65532|0)==8204)label=23;else switch($54|0){case 8234:case 8235:case 8236:case 8237:case 8238:case 8294:case 8295:case 8296:case 8297:{label=23;break}default:$61=$58}if((label|0)==23){label=0;$57=$58+1|0;HEAP32[$47>>2]=$57;$61=$57}$j$010=$j$010+1|0;if(($j$010|0)==($limit|0))break;else $58=$61}HEAP32[$24>>2]=$21-$61}$63=HEAP32[$pParaBiDi+76>>2]|0;HEAP32[$pLineBiDi+76>>2]=$63+$start;$67=HEAP32[$pParaBiDi+80>>2]|0;$68=$67+$start|0;HEAP32[$pLineBiDi+80>>2]=$68;HEAP32[$pLineBiDi+224>>2]=-1;$72=HEAP32[$pParaBiDi+120>>2]|0;L36:do if(($72|0)==2){if((HEAP8[$63+$14>>0]|0)==7){$86=$pLineBiDi+132|0;HEAP32[$86>>2]=$21;$$pre$phiZ2D=$86;$102=$21}else{$start$0$i=$21;while(1){if(($start$0$i|0)<=0){$start$1$i=$start$0$i;break}$88=$start$0$i+-1|0;if(!(1< >0]&8248192)){$start$1$i=$start$0$i;break}else $start$0$i=$88}while(1){if(($start$1$i|0)<=0)break;$96=$start$1$i+-1|0;if((HEAP8[$67+($96+$start)>>0]|0)==$36<<24>>24)$start$1$i=$96;else break}$100=$pLineBiDi+132|0;HEAP32[$100>>2]=$start$1$i;$$pre$phiZ2D=$100;$102=$start$1$i}do if(!$102){$104=$36&1;HEAP32[$pLineBiDi+120>>2]=$104;$123=$104}else{$108=HEAPU8[$68>>0]&1;do if(($102|0)<($21|0)){if(($36&1|0)==($108|0)){$i$0=1;break}HEAP32[$pLineBiDi+120>>2]=2;break L36}else $i$0=1;while(0);while(1){if(($i$0|0)==($102|0)){label=45;break}if((HEAPU8[$67+($i$0+$start)>>0]&1|0)==($108|0))$i$0=$i$0+1|0;else{label=47;break}}if((label|0)==45){HEAP32[$pLineBiDi+120>>2]=$108;$123=$108;break}else if((label|0)==47){HEAP32[$pLineBiDi+120>>2]=2;break L36}}while(0);switch($123|0){case 0:{HEAP8[$35>>0]=($36&255)+1&254;HEAP32[$$pre$phiZ2D>>2]=0;break L36;break}case 1:{HEAP8[$35>>0]=$36&255|1;HEAP32[$$pre$phiZ2D>>2]=0;break L36;break}default:break L36}}else{HEAP32[$pLineBiDi+120>>2]=$72;$76=HEAP32[$pParaBiDi+132>>2]|0;if(($76|0)<=($start|0)){HEAP32[$pLineBiDi+132>>2]=0;break}if(($76|0)<($limit|0)){HEAP32[$pLineBiDi+132>>2]=$76-$start;break}else{HEAP32[$pLineBiDi+132>>2]=$21;break}}while(0);HEAP32[$pLineBiDi>>2]=$pParaBiDi;break}HEAP32[$pErrorCode>>2]=1;break}HEAP32[$pErrorCode>>2]=27}while(0);return}function _try_realloc_chunk($p,$nb){$p=$p|0;$nb=$nb|0;var $$pre$phiZ2D=0,$0=0,$1=0,$101=0,$103=0,$106=0,$109=0,$110=0,$112=0,$113=0,$115=0,$116=0,$118=0,$119=0,$124=0,$125=0,$134=0,$139=0,$143=0,$149=0,$159=0,$168=0,$2=0,$20=0,$3=0,$33=0,$35=0,$4=0,$45=0,$47=0,$5=0,$56=0,$62=0,$68=0,$7=0,$70=0,$71=0,$74=0,$76=0,$78=0,$8=0,$91=0,$96=0,$98=0,$R$0=0,$R$1=0,$RP$0=0,$newp$0=0,$storemerge=0,$storemerge21=0;$0=$p+4|0;$1=HEAP32[$0>>2]|0;$2=$1&-8;$3=$p+$2|0;$4=HEAP32[168]|0;$5=$1&3;if(!(($5|0)!=1&$p>>>0>=$4>>>0&$p>>>0<$3>>>0))_abort();$7=$p+($2|4)|0;$8=HEAP32[$7>>2]|0;if(!($8&1))_abort();if(!$5){if($nb>>>0<256){$newp$0=0;return $newp$0|0}if($2>>>0>=($nb+4|0)>>>0)if(($2-$nb|0)>>>0<=HEAP32[284]<<1>>>0){$newp$0=$p;return $newp$0|0}$newp$0=0;return $newp$0|0}if($2>>>0>=$nb>>>0){$20=$2-$nb|0;if($20>>>0<=15){$newp$0=$p;return $newp$0|0}HEAP32[$0>>2]=$1&1|$nb|2;HEAP32[$p+($nb+4)>>2]=$20|3;HEAP32[$7>>2]=HEAP32[$7>>2]|1;_dispose_chunk($p+$nb|0,$20);$newp$0=$p;return $newp$0|0}if(($3|0)==(HEAP32[170]|0)){$33=(HEAP32[167]|0)+$2|0;if($33>>>0<=$nb>>>0){$newp$0=0;return $newp$0|0}$35=$33-$nb|0;HEAP32[$0>>2]=$1&1|$nb|2;HEAP32[$p+($nb+4)>>2]=$35|1;HEAP32[170]=$p+$nb;HEAP32[167]=$35;$newp$0=$p;return $newp$0|0}if(($3|0)==(HEAP32[169]|0)){$45=(HEAP32[166]|0)+$2|0;if($45>>>0<$nb>>>0){$newp$0=0;return $newp$0|0}$47=$45-$nb|0;if($47>>>0>15){HEAP32[$0>>2]=$1&1|$nb|2;HEAP32[$p+($nb+4)>>2]=$47|1;HEAP32[$p+$45>>2]=$47;$56=$p+($45+4)|0;HEAP32[$56>>2]=HEAP32[$56>>2]&-2;$storemerge=$p+$nb|0;$storemerge21=$47}else{HEAP32[$0>>2]=$1&1|$45|2;$62=$p+($45+4)|0;HEAP32[$62>>2]=HEAP32[$62>>2]|1;$storemerge=0;$storemerge21=0}HEAP32[166]=$storemerge21;HEAP32[169]=$storemerge;$newp$0=$p;return $newp$0|0}if($8&2){$newp$0=0;return $newp$0|0}$68=($8&-8)+$2|0;if($68>>>0<$nb>>>0){$newp$0=0;return $newp$0|0}$70=$68-$nb|0;$71=$8>>>3;do if($8>>>0<256){$74=HEAP32[$p+($2+8)>>2]|0;$76=HEAP32[$p+($2+12)>>2]|0;$78=696+($71<<1<<2)|0;if(($74|0)!=($78|0)){if($74>>>0<$4>>>0)_abort();if((HEAP32[$74+12>>2]|0)!=($3|0))_abort()}if(($76|0)==($74|0)){HEAP32[164]=HEAP32[164]&~(1<<$71);break}if(($76|0)==($78|0))$$pre$phiZ2D=$76+8|0;else{if($76>>>0<$4>>>0)_abort();$91=$76+8|0;if((HEAP32[$91>>2]|0)==($3|0))$$pre$phiZ2D=$91;else _abort()}HEAP32[$74+12>>2]=$76;HEAP32[$$pre$phiZ2D>>2]=$74}else{$96=HEAP32[$p+($2+24)>>2]|0;$98=HEAP32[$p+($2+12)>>2]|0;do if(($98|0)==($3|0)){$109=$p+($2+20)|0;$110=HEAP32[$109>>2]|0;if(!$110){$112=$p+($2+16)|0;$113=HEAP32[$112>>2]|0;if(!$113){$R$1=0;break}else{$R$0=$113;$RP$0=$112}}else{$R$0=$110;$RP$0=$109}while(1){$115=$R$0+20|0;$116=HEAP32[$115>>2]|0;if($116){$R$0=$116;$RP$0=$115;continue}$118=$R$0+16|0;$119=HEAP32[$118>>2]|0;if(!$119)break;else{$R$0=$119;$RP$0=$118}}if($RP$0>>>0<$4>>>0)_abort();else{HEAP32[$RP$0>>2]=0;$R$1=$R$0;break}}else{$101=HEAP32[$p+($2+8)>>2]|0;if($101>>>0<$4>>>0)_abort();$103=$101+12|0;if((HEAP32[$103>>2]|0)!=($3|0))_abort();$106=$98+8|0;if((HEAP32[$106>>2]|0)==($3|0)){HEAP32[$103>>2]=$98;HEAP32[$106>>2]=$101;$R$1=$98;break}else _abort()}while(0);if($96){$124=HEAP32[$p+($2+28)>>2]|0;$125=960+($124<<2)|0;if(($3|0)==(HEAP32[$125>>2]|0)){HEAP32[$125>>2]=$R$1;if(!$R$1){HEAP32[165]=HEAP32[165]&~(1<<$124);break}}else{if($96>>>0<(HEAP32[168]|0)>>>0)_abort();$134=$96+16|0;if((HEAP32[$134>>2]|0)==($3|0))HEAP32[$134>>2]=$R$1;else HEAP32[$96+20>>2]=$R$1;if(!$R$1)break}$139=HEAP32[168]|0;if($R$1>>>0<$139>>>0)_abort();HEAP32[$R$1+24>>2]=$96;$143=HEAP32[$p+($2+16)>>2]|0;do if($143)if($143>>>0<$139>>>0)_abort();else{HEAP32[$R$1+16>>2]=$143;HEAP32[$143+24>>2]=$R$1;break}while(0);$149=HEAP32[$p+($2+20)>>2]|0;if($149)if($149>>>0<(HEAP32[168]|0)>>>0)_abort();else{HEAP32[$R$1+20>>2]=$149;HEAP32[$149+24>>2]=$R$1;break}}}while(0);if($70>>>0<16){HEAP32[$0>>2]=$1&1|$68|2;$159=$p+($68|4)|0;HEAP32[$159>>2]=HEAP32[$159>>2]|1;$newp$0=$p;return $newp$0|0}else{HEAP32[$0>>2]=$1&1|$nb|2;HEAP32[$p+($nb+4)>>2]=$70|3;$168=$p+($68|4)|0;HEAP32[$168>>2]=HEAP32[$168>>2]|1;_dispose_chunk($p+$nb|0,$70);$newp$0=$p;return $newp$0|0}return 0}function _u_shapeArabic_58($source,$sourceLength,$dest,$destCapacity,$pErrorCode){$source=$source|0;$sourceLength=$sourceLength|0;$dest=$dest|0;$destCapacity=$destCapacity|0;$pErrorCode=$pErrorCode|0;var $$0=0,$$010=0,$$1$outputSize$0=0,$$byval_copy=0,$0=0,$25=0,$30=0,$45=0,$48=0,$49=0,$6=0,$buffer=0,$outputSize$2=0,$spacesCountl=0,$spacesCountr=0,$t$0$i=0,$tempbuffer$0=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+656|0;$$byval_copy=sp+32|0;$buffer=sp+56|0;$spacesCountl=sp+28|0;$spacesCountr=sp+24|0;$0=sp;if(!$pErrorCode){$$0=0;STACKTOP=sp;return $$0|0}if((HEAP32[$pErrorCode>>2]|0)>0){$$0=0;STACKTOP=sp;return $$0|0}if(!(($source|0)==0|($sourceLength|0)<-1)){$6=($dest|0)==0;if(!(($destCapacity|0)<0|$6&($destCapacity|0)!=0)){if(($sourceLength|0)==-1){$t$0$i=$source;while(1)if(!(HEAP16[$t$0$i>>1]|0))break;else $t$0$i=$t$0$i+2|0;$$010=$t$0$i-$source>>1}else $$010=$sourceLength;if(($$010|0)<1){$$0=_u_terminateUChars_58($dest,$destCapacity,0,$pErrorCode)|0;STACKTOP=sp;return $$0|0}do if(!$6){if(!($source>>>0<=$dest>>>0&($source+($$010<<1)|0)>>>0>$dest>>>0))if(!($dest>>>0<=$source>>>0&($dest+($destCapacity<<1)|0)>>>0>$source>>>0))break;HEAP32[$pErrorCode>>2]=1;$$0=0;STACKTOP=sp;return $$0|0}while(0);HEAP32[$spacesCountl>>2]=0;HEAP32[$spacesCountr>>2]=0;$25=__ZL13calculateSizePKtiij($source,$$010)|0;if(($25|0)>($destCapacity|0)){HEAP32[$pErrorCode>>2]=15;$$0=$25;STACKTOP=sp;return $$0|0}$$1$outputSize$0=($$010|0)>($25|0)?$$010:$25;if(($$1$outputSize$0|0)<301){$outputSize$2=300;$tempbuffer$0=$buffer}else{$30=_uprv_malloc_58($$1$outputSize$0<<1)|0;if(!$30){HEAP32[$pErrorCode>>2]=7;$$0=0;STACKTOP=sp;return $$0|0}else{$outputSize$2=$$1$outputSize$0;$tempbuffer$0=$30}}_memcpy($tempbuffer$0|0,$source|0,$$010<<1|0)|0;if(($outputSize$2|0)>($$010|0))_memset($tempbuffer$0+($$010<<1)|0,0,$outputSize$2-$$010<<1|0)|0;__ZL11countSpacesPtijPiS0_($tempbuffer$0,$$010,$spacesCountl,$spacesCountr);__ZL12invertBufferPtijii($tempbuffer$0,$$010,HEAP32[$spacesCountl>>2]|0,HEAP32[$spacesCountr>>2]|0);HEAP16[$0>>1]=8203;HEAP16[$0+2>>1]=0;HEAP32[$0+4>>2]=3;HEAP32[$0+8>>2]=2;HEAP32[$0+12>>2]=262144;HEAP32[$0+16>>2]=393216;HEAP32[$0+20>>2]=0;HEAP32[$$byval_copy>>2]=HEAP32[$0>>2];HEAP32[$$byval_copy+4>>2]=HEAP32[$0+4>>2];HEAP32[$$byval_copy+8>>2]=HEAP32[$0+8>>2];HEAP32[$$byval_copy+12>>2]=HEAP32[$0+12>>2];HEAP32[$$byval_copy+16>>2]=HEAP32[$0+16>>2];HEAP32[$$byval_copy+20>>2]=HEAP32[$0+20>>2];$45=__ZL12shapeUnicodePtiijP10UErrorCodei15uShapeVariables($tempbuffer$0,$$010,$pErrorCode,$$byval_copy)|0;__ZL11countSpacesPtijPiS0_($tempbuffer$0,$45,$spacesCountl,$spacesCountr);__ZL12invertBufferPtijii($tempbuffer$0,$45,HEAP32[$spacesCountl>>2]|0,HEAP32[$spacesCountr>>2]|0);$48=($45|0)>($destCapacity|0);$49=$48?$destCapacity:$45;if(($49|0)>0)_memcpy($dest|0,$tempbuffer$0|0,$49<<1|0)|0;if(($tempbuffer$0|0)!=($buffer|0))_uprv_free_58($tempbuffer$0);if($48){HEAP32[$pErrorCode>>2]=15;$$0=$45;STACKTOP=sp;return $$0|0}else{$$0=_u_terminateUChars_58($dest,$destCapacity,$45,$pErrorCode)|0;STACKTOP=sp;return $$0|0}}}HEAP32[$pErrorCode>>2]=1;$$0=0;STACKTOP=sp;return $$0|0}function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp){$this=$this|0;$info=$info|0;$current_ptr=$current_ptr|0;$path_below=$path_below|0;$use_strcmp=$use_strcmp|0;var $14=0,$20=0,$23=0,$24=0,$26=0,$33=0,$44=0,$6=0,$is_dst_type_derived_from_static_type$0$off01=0,label=0;L1:do if(($this|0)==(HEAP32[$info+8>>2]|0)){if((HEAP32[$info+4>>2]|0)==($current_ptr|0)){$6=$info+28|0;if((HEAP32[$6>>2]|0)!=1)HEAP32[$6>>2]=$path_below}}else{if(($this|0)!=(HEAP32[$info>>2]|0)){$44=HEAP32[$this+8>>2]|0;FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$44>>2]|0)+24>>2]&3]($44,$info,$current_ptr,$path_below,$use_strcmp);break}if((HEAP32[$info+16>>2]|0)!=($current_ptr|0)){$14=$info+20|0;if((HEAP32[$14>>2]|0)!=($current_ptr|0)){HEAP32[$info+32>>2]=$path_below;$20=$info+44|0;if((HEAP32[$20>>2]|0)==4)break;$23=$info+52|0;HEAP8[$23>>0]=0;$24=$info+53|0;HEAP8[$24>>0]=0;$26=HEAP32[$this+8>>2]|0;FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$26>>2]|0)+20>>2]&3]($26,$info,$current_ptr,$current_ptr,1,$use_strcmp);if(!(HEAP8[$24>>0]|0)){$is_dst_type_derived_from_static_type$0$off01=0;label=13}else if(!(HEAP8[$23>>0]|0)){$is_dst_type_derived_from_static_type$0$off01=1;label=13}do if((label|0)==13){HEAP32[$14>>2]=$current_ptr;$33=$info+40|0;HEAP32[$33>>2]=(HEAP32[$33>>2]|0)+1;if((HEAP32[$info+36>>2]|0)==1)if((HEAP32[$info+24>>2]|0)==2){HEAP8[$info+54>>0]=1;if($is_dst_type_derived_from_static_type$0$off01)break}else label=16;else label=16;if((label|0)==16)if($is_dst_type_derived_from_static_type$0$off01)break;HEAP32[$20>>2]=4;break L1}while(0);HEAP32[$20>>2]=3;break}}if(($path_below|0)==1)HEAP32[$info+32>>2]=1}while(0);return}function ___dynamic_cast($static_ptr,$dst_type){$static_ptr=$static_ptr|0;$dst_type=$dst_type|0; + +var $0=0,$10=0,$11=0,$12=0,$13=0,$14=0,$15=0,$16=0,$4=0,$6=0,$9=0,$dst_ptr$0=0,$info=0,dest=0,sp=0,stop=0;sp=STACKTOP;STACKTOP=STACKTOP+64|0;$info=sp;$0=HEAP32[$static_ptr>>2]|0;$4=$static_ptr+(HEAP32[$0+-8>>2]|0)|0;$6=HEAP32[$0+-4>>2]|0;HEAP32[$info>>2]=$dst_type;HEAP32[$info+4>>2]=$static_ptr;HEAP32[$info+8>>2]=16;$9=$info+12|0;$10=$info+16|0;$11=$info+20|0;$12=$info+24|0;$13=$info+28|0;$14=$info+32|0;$15=$info+40|0;$16=($6|0)==($dst_type|0);dest=$9;stop=dest+40|0;do{HEAP32[dest>>2]=0;dest=dest+4|0}while((dest|0)<(stop|0));HEAP16[$9+40>>1]=0;HEAP8[$9+42>>0]=0;L1:do if($16){HEAP32[$info+48>>2]=1;FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$dst_type>>2]|0)+20>>2]&3]($dst_type,$info,$4,$4,1,0);$dst_ptr$0=(HEAP32[$12>>2]|0)==1?$4:0}else{FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[$6>>2]|0)+24>>2]&3]($6,$info,$4,1,0);switch(HEAP32[$info+36>>2]|0){case 0:{$dst_ptr$0=(HEAP32[$15>>2]|0)==1&(HEAP32[$13>>2]|0)==1&(HEAP32[$14>>2]|0)==1?HEAP32[$11>>2]|0:0;break L1;break}case 1:break;default:{$dst_ptr$0=0;break L1}}if((HEAP32[$12>>2]|0)!=1)if(!((HEAP32[$15>>2]|0)==0&(HEAP32[$13>>2]|0)==1&(HEAP32[$14>>2]|0)==1)){$dst_ptr$0=0;break}$dst_ptr$0=HEAP32[$10>>2]|0}while(0);STACKTOP=sp;return $dst_ptr$0|0}function _bracketInit($pBiDi,$bd){$pBiDi=$pBiDi|0;$bd=$bd|0;var $$sink=0,$$sink1=0,$$sink2=0,$$sink3=0,$10=0,$17=0,$22=0,$24=0,$29=0,$38=0,$7=0,$9=0;HEAP32[$bd>>2]=$pBiDi;HEAP32[$bd+492>>2]=0;HEAP16[$bd+500>>1]=0;HEAP16[$bd+502>>1]=0;do if(!(HEAP8[$pBiDi+98>>0]|0)){$7=HEAP8[$pBiDi+97>>0]|0;HEAP8[$bd+504>>0]=$7;$$sink1=$7}else{$9=$pBiDi+140|0;$10=HEAP32[$9>>2]|0;if((HEAP32[$10>>2]|0)>0)$$sink=HEAP8[$pBiDi+97>>0]|0;else $$sink=_ubidi_getParaLevelAtIndex_58(HEAP32[$pBiDi+136>>2]|0,$10,0)|0;HEAP8[$bd+504>>0]=$$sink;$17=HEAP32[$9>>2]|0;if((HEAP32[$17>>2]|0)>0){$$sink1=HEAP8[$pBiDi+97>>0]|0;break}else{$$sink1=_ubidi_getParaLevelAtIndex_58(HEAP32[$pBiDi+136>>2]|0,$17,0)|0;break}}while(0);$22=$$sink1&1;HEAP32[$bd+508>>2]=$22;$24=$22&255;HEAP8[$bd+506>>0]=$24;HEAP8[$bd+505>>0]=$24;HEAP32[$bd+496>>2]=0;$29=HEAP32[$pBiDi+56>>2]|0;if(!$29){$$sink2=20;$$sink3=$bd+4|0}else{$$sink2=((HEAP32[$pBiDi+32>>2]|0)>>>0)/24|0;$$sink3=$29}HEAP32[$bd+484>>2]=$$sink3;HEAP32[$bd+488>>2]=$$sink2;$38=HEAP32[$pBiDi+88>>2]|0;HEAP8[$bd+2528>>0]=($38|0)==1?1:($38|0)==6&1;return}function _addPoint($pBiDi,$pos,$flag){$pBiDi=$pBiDi|0;$pos=$pos|0;$flag=$flag|0;var $$phi$trans$insert$pre$phiZZZZ2D=0,$0=0,$1=0,$10=0,$11=0,$13=0,$19=0,$20=0,$3=0,$4=0,$7=0,$8=0,label=0;$0=$pBiDi+332|0;$1=HEAP32[$0>>2]|0;do if(!$1){$3=_uprv_malloc_58(80)|0;$4=$pBiDi+348|0;HEAP32[$4>>2]=$3;if(!$3){HEAP32[$pBiDi+344>>2]=7;break}else{HEAP32[$0>>2]=10;$$phi$trans$insert$pre$phiZZZZ2D=$4;$10=10;label=6;break}}else{$$phi$trans$insert$pre$phiZZZZ2D=$pBiDi+348|0;$10=$1;label=6}while(0);L7:do if((label|0)==6){$7=$pBiDi+336|0;$8=HEAP32[$7>>2]|0;do if(($8|0)<($10|0)){$19=HEAP32[$$phi$trans$insert$pre$phiZZZZ2D>>2]|0;$20=$8}else{$11=HEAP32[$$phi$trans$insert$pre$phiZZZZ2D>>2]|0;$13=_uprv_realloc_58($11,$10<<4)|0;HEAP32[$$phi$trans$insert$pre$phiZZZZ2D>>2]=$13;if(!$13){HEAP32[$$phi$trans$insert$pre$phiZZZZ2D>>2]=$11;HEAP32[$pBiDi+344>>2]=7;break L7}else{HEAP32[$0>>2]=HEAP32[$0>>2]<<1;$19=$13;$20=HEAP32[$7>>2]|0;break}}while(0);HEAP32[$19+($20<<3)>>2]=$pos;HEAP32[$19+($20<<3)+4>>2]=$flag;HEAP32[$7>>2]=(HEAP32[$7>>2]|0)+1}while(0);return}function _ubidi_getVisualRun_58($pBiDi,$runIndex,$pLogicalStart,$pLength){$pBiDi=$pBiDi|0;$runIndex=$runIndex|0;$pLogicalStart=$pLogicalStart|0;$pLength=$pLength|0;var $$0=0,$1=0,$13=0,$15=0,$errorCode=0,label=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp;HEAP32[$errorCode>>2]=0;do if(!$pBiDi)label=5;else{$1=HEAP32[$pBiDi>>2]|0;if(($1|0)!=($pBiDi|0)){if(!$1){label=5;break}if((HEAP32[$1>>2]|0)!=($1|0)){label=5;break}}_ubidi_getRuns_58($pBiDi,$errorCode);if((HEAP32[$errorCode>>2]|0)>0)$$0=0;else{if(($runIndex|0)>=0)if((HEAP32[$pBiDi+224>>2]|0)>($runIndex|0)){$13=HEAP32[$pBiDi+228>>2]|0;$15=HEAP32[$13+($runIndex*12|0)>>2]|0;if($pLogicalStart)HEAP32[$pLogicalStart>>2]=$15&2147483647;do if($pLength)if(($runIndex|0)>0){HEAP32[$pLength>>2]=(HEAP32[$13+($runIndex*12|0)+4>>2]|0)-(HEAP32[$13+(($runIndex+-1|0)*12|0)+4>>2]|0);break}else{HEAP32[$pLength>>2]=HEAP32[$13+4>>2];break}while(0);$$0=$15>>>31;break}HEAP32[$errorCode>>2]=1;$$0=0}}while(0);if((label|0)==5){HEAP32[$errorCode>>2]=27;$$0=0}STACKTOP=sp;return $$0|0}function _bracketAddOpening($bd,$match,$position){$bd=$bd|0;$match=$match|0;$position=$position|0;var $$0=0,$1=0,$10=0,$14=0,$16=0,$19=0,$2=0,$23=0,$24=0,$26=0,$3=0,$4=0,$5=0,$8=0,$9=0,label=0;$1=HEAP32[$bd+492>>2]|0;$2=$bd+496+($1<<4)+6|0;$3=HEAP16[$2>>1]|0;$4=$3&65535;$5=$bd+488|0;if(($4|0)<(HEAP32[$5>>2]|0)){$24=$3;$26=HEAP32[$bd+484>>2]|0;label=7}else{$8=HEAP32[$bd>>2]|0;$9=$8+56|0;$10=$8+32|0;if(!((_ubidi_getMemory_58($9,$10,1,$4*48|0)|0)<<24>>24))$$0=0;else{$14=$bd+484|0;$16=$bd+4|0;if((HEAP32[$14>>2]|0)==($16|0))_memcpy(HEAP32[$9>>2]|0,$16|0,480)|0;$19=HEAP32[$9>>2]|0;HEAP32[$14>>2]=$19;HEAP32[$5>>2]=((HEAP32[$10>>2]|0)>>>0)/24|0;$24=HEAP16[$2>>1]|0;$26=$19;label=7}}if((label|0)==7){$23=$24&65535;HEAP32[$26+($23*24|0)>>2]=$position;HEAP32[$26+($23*24|0)+4>>2]=$match&65535;HEAP32[$26+($23*24|0)+16>>2]=HEAP32[$bd+496+($1<<4)+12>>2];HEAP32[$26+($23*24|0)+8>>2]=HEAP32[$bd+496+($1<<4)>>2];HEAP16[$26+($23*24|0)+12>>1]=0;HEAP16[$2>>1]=$24+1<<16>>16;$$0=1}return $$0|0}function _fixN0c($bd,$openingIndex,$newPropPosition,$newProp){$bd=$bd|0;$openingIndex=$openingIndex|0;$newPropPosition=$newPropPosition|0;$newProp=$newProp|0;var $14=0,$20=0,$27=0,$32=0,$34=0,$4=0,$5=0,$6=0,$7=0,$8=0,$k$01=0,$qOpening$02=0;$4=HEAP32[(HEAP32[$bd>>2]|0)+76>>2]|0;$5=$openingIndex+1|0;$6=$newProp&255;$7=$bd+496+(HEAP32[$bd+492>>2]<<4)+6|0;$8=HEAP16[$7>>1]|0;L1:do if(($5|0)<($8&65535|0)){$34=$8;$k$01=$5;$qOpening$02=(HEAP32[$bd+484>>2]|0)+($5*24|0)|0;while(1){$14=$qOpening$02+4|0;if((HEAP32[$14>>2]|0)>-1)$32=$34;else{if((HEAP32[$qOpening$02+8>>2]|0)>($newPropPosition|0))break L1;$20=HEAP32[$qOpening$02>>2]|0;if(($20|0)>($newPropPosition|0)){if(($6|0)==(HEAP32[$qOpening$02+16>>2]|0))break L1;HEAP8[$4+$20>>0]=$newProp;$27=0-(HEAP32[$14>>2]|0)|0;HEAP8[$4+$27>>0]=$newProp;HEAP32[$14>>2]=0;_fixN0c($bd,$k$01,$20,$newProp);_fixN0c($bd,$k$01,$27,$newProp);$32=HEAP16[$7>>1]|0}else $32=$34}$k$01=$k$01+1|0;if(($k$01|0)>=($32&65535|0))break;else{$34=$32;$qOpening$02=$qOpening$02+24|0}}}while(0);return}function _ubidi_getLevels_58($pBiDi,$pErrorCode){$pBiDi=$pBiDi|0;$pErrorCode=$pErrorCode|0;var $$0=0,$10=0,$12=0,$13=0,$17=0,$23=0,$25=0,$26=0,$4=0;L1:do if(!$pErrorCode)$$0=0;else if((HEAP32[$pErrorCode>>2]|0)>0)$$0=0;else{do if($pBiDi){$4=HEAP32[$pBiDi>>2]|0;if(($4|0)!=($pBiDi|0)){if(!$4)break;if((HEAP32[$4>>2]|0)!=($4|0))break}$10=HEAP32[$pBiDi+16>>2]|0;if(($10|0)<1){HEAP32[$pErrorCode>>2]=1;$$0=0;break L1}$12=$pBiDi+132|0;$13=HEAP32[$12>>2]|0;if(($10|0)==($13|0)){$$0=HEAP32[$pBiDi+80>>2]|0;break L1}$17=$pBiDi+52|0;if(!((_ubidi_getMemory_58($17,$pBiDi+28|0,HEAP8[$pBiDi+72>>0]|0,$10)|0)<<24>>24)){HEAP32[$pErrorCode>>2]=7;$$0=0;break L1}$23=HEAP32[$17>>2]|0;$25=$pBiDi+80|0;if(($13|0)>0){$26=HEAP32[$25>>2]|0;if(($23|0)!=($26|0))_memcpy($23|0,$26|0,$13|0)|0}_memset($23+$13|0,HEAP8[$pBiDi+97>>0]|0,$10-$13|0)|0;HEAP32[$12>>2]=$10;HEAP32[$25>>2]=$23;$$0=$23;break L1}while(0);HEAP32[$pErrorCode>>2]=27;$$0=0}while(0);return $$0|0}function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($info,$dst_ptr,$current_ptr,$path_below){$info=$info|0;$dst_ptr=$dst_ptr|0;$current_ptr=$current_ptr|0;$path_below=$path_below|0;var $16=0,$17=0,$23=0,$25=0,$5=0,$6=0;HEAP8[$info+53>>0]=1;do if((HEAP32[$info+4>>2]|0)==($current_ptr|0)){HEAP8[$info+52>>0]=1;$5=$info+16|0;$6=HEAP32[$5>>2]|0;if(!$6){HEAP32[$5>>2]=$dst_ptr;HEAP32[$info+24>>2]=$path_below;HEAP32[$info+36>>2]=1;if(!(($path_below|0)==1?(HEAP32[$info+48>>2]|0)==1:0))break;HEAP8[$info+54>>0]=1;break}if(($6|0)!=($dst_ptr|0)){$25=$info+36|0;HEAP32[$25>>2]=(HEAP32[$25>>2]|0)+1;HEAP8[$info+54>>0]=1;break}$16=$info+24|0;$17=HEAP32[$16>>2]|0;if(($17|0)==2){HEAP32[$16>>2]=$path_below;$23=$path_below}else $23=$17;if(($23|0)==1?(HEAP32[$info+48>>2]|0)==1:0)HEAP8[$info+54>>0]=1}while(0);return}function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($this,$info,$current_ptr,$path_below,$use_strcmp){$this=$this|0;$info=$info|0;$current_ptr=$current_ptr|0;$path_below=$path_below|0;$use_strcmp=$use_strcmp|0;var $14=0,$20=0,$6=0;do if(($this|0)==(HEAP32[$info+8>>2]|0)){if((HEAP32[$info+4>>2]|0)==($current_ptr|0)){$6=$info+28|0;if((HEAP32[$6>>2]|0)!=1)HEAP32[$6>>2]=$path_below}}else if(($this|0)==(HEAP32[$info>>2]|0)){if((HEAP32[$info+16>>2]|0)!=($current_ptr|0)){$14=$info+20|0;if((HEAP32[$14>>2]|0)!=($current_ptr|0)){HEAP32[$info+32>>2]=$path_below;HEAP32[$14>>2]=$current_ptr;$20=$info+40|0;HEAP32[$20>>2]=(HEAP32[$20>>2]|0)+1;if((HEAP32[$info+36>>2]|0)==1)if((HEAP32[$info+24>>2]|0)==2)HEAP8[$info+54>>0]=1;HEAP32[$info+44>>2]=4;break}}if(($path_below|0)==1)HEAP32[$info+32>>2]=1}while(0);return}function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($this,$thrown_type,$adjustedPtr){$this=$this|0;$thrown_type=$thrown_type|0;$adjustedPtr=$adjustedPtr|0;var $$0=0,$$1=0,$2=0,$info=0,dest=0,sp=0,stop=0;sp=STACKTOP;STACKTOP=STACKTOP+64|0;$info=sp;if(($this|0)==($thrown_type|0))$$1=1;else if(!$thrown_type)$$1=0;else{$2=___dynamic_cast($thrown_type,32)|0;if(!$2)$$1=0;else{dest=$info;stop=dest+56|0;do{HEAP32[dest>>2]=0;dest=dest+4|0}while((dest|0)<(stop|0));HEAP32[$info>>2]=$2;HEAP32[$info+8>>2]=$this;HEAP32[$info+12>>2]=-1;HEAP32[$info+48>>2]=1;FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$2>>2]|0)+28>>2]&3]($2,$info,HEAP32[$adjustedPtr>>2]|0,1);if((HEAP32[$info+24>>2]|0)==1){HEAP32[$adjustedPtr>>2]=HEAP32[$info+16>>2];$$0=1}else $$0=0;$$1=$$0}}STACKTOP=sp;return $$1|0}function __ZL13calculateSizePKtiij($source,$sourceLength){$source=$source|0;$sourceLength=$sourceLength|0;var $$233=0,$$3=0,$$4=0,$0=0,$3=0,$i$135=0,$switch$tableidx$i12=0,label=0;$0=$sourceLength+-1|0;if(($sourceLength|0)>0){$$233=$sourceLength;$i$135=0}else{$$4=$sourceLength;return $$4|0}while(1){$3=HEAP16[$source+($i$135<<1)>>1]|0;if(($i$135|0)<($0|0)&$3<<16>>16==1604){$switch$tableidx$i12=(HEAP16[$source+($i$135+1<<1)>>1]|0)+-1570<<16>>16;if(($switch$tableidx$i12&65535)<6)if(!(43>>>($switch$tableidx$i12&63)&1))$$3=$$233;else label=6;else label=5}else label=5;if((label|0)==5){label=0;if(($3&-16)<<16>>16==-400)label=6;else $$3=$$233}if((label|0)==6){label=0;$$3=$$233+-1|0}$i$135=$i$135+1|0;if(($i$135|0)==($sourceLength|0)){$$4=$$3;break}else $$233=$$3}return $$4|0}function _getRunFromLogicalIndex($pBiDi$0$40$val,$pBiDi$0$41$val,$logicalIndex,$pErrorCode){$pBiDi$0$40$val=$pBiDi$0$40$val|0;$pBiDi$0$41$val=$pBiDi$0$41$val|0;$logicalIndex=$logicalIndex|0;$pErrorCode=$pErrorCode|0;var $$0=0,$5=0,$i$05=0,$visualStart$06=0,label=0,$visualStart$06$looptemp=0;L1:do if(($pBiDi$0$40$val|0)>0){$i$05=0;$visualStart$06=0;while(1){$visualStart$06$looptemp=$visualStart$06;$visualStart$06=HEAP32[$pBiDi$0$41$val+($i$05*12|0)+4>>2]|0;$5=HEAP32[$pBiDi$0$41$val+($i$05*12|0)>>2]&2147483647;if(($5|0)<=($logicalIndex|0))if(($visualStart$06-$visualStart$06$looptemp+$5|0)>($logicalIndex|0)){$$0=$i$05;break L1}$i$05=$i$05+1|0;if(($i$05|0)>=($pBiDi$0$40$val|0)){label=5;break}}}else label=5;while(0);if((label|0)==5){HEAP32[$pErrorCode>>2]=27;$$0=0}return $$0|0}function _ubidi_getParagraph_58($pBiDi,$charIndex,$pErrorCode){$pBiDi=$pBiDi|0;$charIndex=$charIndex|0;$pErrorCode=$pErrorCode|0;var $$0=0,$14=0,$4=0,$paraIndex$0=0;L1:do if(!$pErrorCode)$$0=-1;else if((HEAP32[$pErrorCode>>2]|0)>0)$$0=-1;else{do if($pBiDi){$4=HEAP32[$pBiDi>>2]|0;if(($4|0)!=($pBiDi|0)){if(!$4)break;if((HEAP32[$4>>2]|0)!=($4|0))break}if(($charIndex|0)>=0)if((HEAP32[$4+16>>2]|0)>($charIndex|0)){$14=HEAP32[$4+140>>2]|0;$paraIndex$0=0;while(1)if((HEAP32[$14+($paraIndex$0<<3)>>2]|0)>($charIndex|0))break;else $paraIndex$0=$paraIndex$0+1|0;_ubidi_getParagraphByIndex_58($4,$paraIndex$0,0,$pErrorCode);$$0=$paraIndex$0;break L1}HEAP32[$pErrorCode>>2]=1;$$0=-1;break L1}while(0);HEAP32[$pErrorCode>>2]=27;$$0=-1}while(0);return $$0|0}function _ubidi_getPairedBracketType_58($bdp,$c){$bdp=$bdp|0;$c=$c|0;var $35=0,$51=0;do if($c>>>0<55296)$51=((HEAPU16[(HEAP32[$bdp+20>>2]|0)+($c>>5<<1)>>1]|0)<<2)+($c&31)|0;else{if($c>>>0<65536){$51=((HEAPU16[(HEAP32[$bdp+20>>2]|0)+((($c|0)<56320?320:0)+($c>>5)<<1)>>1]|0)<<2)+($c&31)|0;break}if($c>>>0>1114111){$51=(HEAP32[$bdp+32>>2]|0)+128|0;break}if((HEAP32[$bdp+52>>2]|0)>($c|0)){$35=HEAP32[$bdp+20>>2]|0;$51=((HEAPU16[$35+((HEAPU16[$35+(($c>>11)+2080<<1)>>1]|0)+($c>>>5&63)<<1)>>1]|0)<<2)+($c&31)|0;break}else{$51=HEAP32[$bdp+56>>2]|0;break}}while(0);return(HEAPU16[(HEAP32[$bdp+20>>2]|0)+($51<<1)>>1]|0)>>>8&3|0}function _ubidi_getClass_58($bdp,$c){$bdp=$bdp|0;$c=$c|0;var $35=0,$51=0;do if($c>>>0<55296)$51=((HEAPU16[(HEAP32[$bdp+20>>2]|0)+($c>>5<<1)>>1]|0)<<2)+($c&31)|0;else{if($c>>>0<65536){$51=((HEAPU16[(HEAP32[$bdp+20>>2]|0)+((($c|0)<56320?320:0)+($c>>5)<<1)>>1]|0)<<2)+($c&31)|0;break}if($c>>>0>1114111){$51=(HEAP32[$bdp+32>>2]|0)+128|0;break}if((HEAP32[$bdp+52>>2]|0)>($c|0)){$35=HEAP32[$bdp+20>>2]|0;$51=((HEAPU16[$35+((HEAPU16[$35+(($c>>11)+2080<<1)>>1]|0)+($c>>>5&63)<<1)>>1]|0)<<2)+($c&31)|0;break}else{$51=HEAP32[$bdp+56>>2]|0;break}}while(0);return(HEAPU16[(HEAP32[$bdp+20>>2]|0)+($51<<1)>>1]|0)&31|0}function _bracketProcessBoundary($bd,$lastCcPos,$contextLevel,$embeddingLevel){$bd=$bd|0;$lastCcPos=$lastCcPos|0;$contextLevel=$contextLevel|0;$embeddingLevel=$embeddingLevel|0;var $1=0,$21=0,$23=0;$1=HEAP32[$bd+492>>2]|0;if(!(1<<(HEAPU8[(HEAP32[(HEAP32[$bd>>2]|0)+76>>2]|0)+$lastCcPos>>0]|0)&7864320)){HEAP16[$bd+496+($1<<4)+6>>1]=HEAP16[$bd+496+($1<<4)+4>>1]|0;HEAP8[$bd+496+($1<<4)+8>>0]=$embeddingLevel;$21=(($embeddingLevel&127)>>>0>($contextLevel&127)>>>0?$embeddingLevel:$contextLevel)&1;HEAP32[$bd+496+($1<<4)+12>>2]=$21;$23=$21&255;HEAP8[$bd+496+($1<<4)+10>>0]=$23;HEAP8[$bd+496+($1<<4)+9>>0]=$23;HEAP32[$bd+496+($1<<4)>>2]=$lastCcPos}return}function _bidi_getLine($start,$end){$start=$start|0;$end=$end|0;var $$0=0,$0=0,$10=0,$2=0,$4=0,$7=0,$8=0,$errorCode=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp;HEAP32[$errorCode>>2]=0;$0=HEAP32[25]|0;if(!$0){$2=_ubidi_open_58()|0;HEAP32[25]=$2;$4=$2}else $4=$0;_ubidi_setLine_58(HEAP32[24]|0,$start,$end,$4,$errorCode);if((HEAP32[$errorCode>>2]|0)>0)$$0=0;else{$7=_ubidi_getProcessedLength_58($4)|0;$8=$7+1|0;$10=_malloc($8<<1)|0;_ubidi_writeReordered_58(HEAP32[25]|0,$10,$8,10,$errorCode)|0;if((HEAP32[$errorCode>>2]|0)>0)$$0=0;else{HEAP16[$10+($7<<1)>>1]=0;$$0=$10}}STACKTOP=sp;return $$0|0}function _realloc($oldmem,$bytes){$oldmem=$oldmem|0;$bytes=$bytes|0;var $12=0,$15=0,$20=0,$3=0,$9=0,$mem$0=0;if(!$oldmem){$mem$0=_malloc($bytes)|0;return $mem$0|0}if($bytes>>>0>4294967231){$3=___errno_location()|0;HEAP32[$3>>2]=12;$mem$0=0;return $mem$0|0}$9=_try_realloc_chunk($oldmem+-8|0,$bytes>>>0<11?16:$bytes+11&-8)|0;if($9){$mem$0=$9+8|0;return $mem$0|0}$12=_malloc($bytes)|0;if(!$12){$mem$0=0;return $mem$0|0}$15=HEAP32[$oldmem+-4>>2]|0;$20=($15&-8)-(($15&3|0)==0?8:4)|0;_memcpy($12|0,$oldmem|0,($20>>>0<$bytes>>>0?$20:$bytes)|0)|0;_free($oldmem);$mem$0=$12;return $mem$0|0}function _ubidi_getParagraphByIndex_58($pBiDi,$paraIndex,$pParaLimit,$pErrorCode){$pBiDi=$pBiDi|0;$paraIndex=$paraIndex|0;$pParaLimit=$pParaLimit|0;$pErrorCode=$pErrorCode|0;var $4=0;L1:do if($pErrorCode)if((HEAP32[$pErrorCode>>2]|0)<=0){do if($pBiDi){$4=HEAP32[$pBiDi>>2]|0;if(($4|0)!=($pBiDi|0)){if(!$4)break;if((HEAP32[$4>>2]|0)!=($4|0))break}if(($paraIndex|0)>=0)if((HEAP32[$pBiDi+136>>2]|0)>($paraIndex|0)){if(!$pParaLimit)break L1;HEAP32[$pParaLimit>>2]=HEAP32[(HEAP32[$4+140>>2]|0)+($paraIndex<<3)>>2];break L1}HEAP32[$pErrorCode>>2]=1;break L1}while(0);HEAP32[$pErrorCode>>2]=27}while(0);return}function _ubidi_getMemory_58($bidiMem,$pSize,$mayAllocate,$sizeNeeded){$bidiMem=$bidiMem|0;$pSize=$pSize|0;$mayAllocate=$mayAllocate|0;$sizeNeeded=$sizeNeeded|0;var $$0=0,$0=0,$3=0,$8=0;$0=HEAP32[$bidiMem>>2]|0;if(!$0)if(!($mayAllocate<<24>>24))$$0=0;else{$3=_uprv_malloc_58($sizeNeeded)|0;HEAP32[$bidiMem>>2]=$3;if(!$3)$$0=0;else{HEAP32[$pSize>>2]=$sizeNeeded;$$0=1}}else if((HEAP32[$pSize>>2]|0)<($sizeNeeded|0))if(!($mayAllocate<<24>>24))$$0=0;else{$8=_uprv_realloc_58($0,$sizeNeeded)|0;if(!$8)$$0=0;else{HEAP32[$bidiMem>>2]=$8;HEAP32[$pSize>>2]=$sizeNeeded;$$0=1}}else $$0=1;return $$0|0}function _setLevelsOutsideIsolates($pBiDi$0$20$val,$pBiDi$0$21$val,$start,$limit,$level){$pBiDi$0$20$val=$pBiDi$0$20$val|0;$pBiDi$0$21$val=$pBiDi$0$21$val|0;$start=$start|0;$limit=$limit|0;$level=$level|0;var $$isolateCount$0=0,$2=0,$isolateCount$01=0,$k$02=0;if(($start|0)<($limit|0)){$isolateCount$01=0;$k$02=$start;while(1){$2=HEAP8[$pBiDi$0$20$val+$k$02>>0]|0;$$isolateCount$0=(($2<<24>>24==22)<<31>>31)+$isolateCount$01|0;if(!$$isolateCount$0)HEAP8[$pBiDi$0$21$val+$k$02>>0]=$level;$k$02=$k$02+1|0;if(($k$02|0)==($limit|0))break;else $isolateCount$01=$$isolateCount$0+(($2&-2)<<24>>24==20&1)|0}}return}function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($info,$adjustedPtr,$path_below){$info=$info|0;$adjustedPtr=$adjustedPtr|0;$path_below=$path_below|0;var $0=0,$1=0,$6=0,$9=0;$0=$info+16|0;$1=HEAP32[$0>>2]|0;do if(!$1){HEAP32[$0>>2]=$adjustedPtr;HEAP32[$info+24>>2]=$path_below;HEAP32[$info+36>>2]=1}else{if(($1|0)!=($adjustedPtr|0)){$9=$info+36|0;HEAP32[$9>>2]=(HEAP32[$9>>2]|0)+1;HEAP32[$info+24>>2]=2;HEAP8[$info+54>>0]=1;break}$6=$info+24|0;if((HEAP32[$6>>2]|0)==2)HEAP32[$6>>2]=$path_below}while(0);return}function __ZL11countSpacesPtijPiS0_($dest,$size,$spacesCountl,$spacesCountr){$dest=$dest|0;$size=$size|0;$spacesCountl=$spacesCountl|0;$spacesCountr=$spacesCountr|0;var $$0=0,$3=0,$countr$0=0,$countr$1=0,$i$0=0;$i$0=0;while(1){$3=($i$0|0)<($size|0);if($3&(HEAP16[$dest+($i$0<<1)>>1]|0)==32)$i$0=$i$0+1|0;else break}if($3){$$0=$size;$countr$0=0;while(1){$$0=$$0+-1|0;if((HEAP16[$dest+($$0<<1)>>1]|0)!=32){$countr$1=$countr$0;break}else $countr$0=$countr$0+1|0}}else $countr$1=0;HEAP32[$spacesCountl>>2]=$i$0;HEAP32[$spacesCountr>>2]=$countr$1;return}function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp){$this=$this|0;$info=$info|0;$dst_ptr=$dst_ptr|0;$current_ptr=$current_ptr|0;$path_below=$path_below|0;$use_strcmp=$use_strcmp|0;var $4=0;if(($this|0)==(HEAP32[$info+8>>2]|0))__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($info,$dst_ptr,$current_ptr,$path_below);else{$4=HEAP32[$this+8>>2]|0;FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[$4>>2]|0)+20>>2]&3]($4,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp)}return}function _ubidi_getParaLevelAtIndex_58($pBiDi$0$37$val,$pBiDi$0$38$val,$pindex){$pBiDi$0$37$val=$pBiDi$0$37$val|0;$pBiDi$0$38$val=$pBiDi$0$38$val|0;$pindex=$pindex|0;var $4=0,$7=0,$i$06=0,$i$09=0;L1:do if(($pBiDi$0$37$val|0)>0){$i$09=0;while(1){if((HEAP32[$pBiDi$0$38$val+($i$09<<3)>>2]|0)>($pindex|0)){$7=1;$i$06=$i$09;break L1}$4=$i$09+1|0;if(($4|0)<($pBiDi$0$37$val|0))$i$09=$4;else{$7=0;$i$06=$4;break}}}else{$7=0;$i$06=0}while(0);return HEAP32[$pBiDi$0$38$val+(($7?$i$06:$pBiDi$0$37$val+-1|0)<<3)+4>>2]&255|0}function runPostSets(){}function _memset(ptr,value,num){ptr=ptr|0;value=value|0;num=num|0;var stop=0,value4=0,stop4=0,unaligned=0;stop=ptr+num|0;if((num|0)>=20){value=value&255;unaligned=ptr&3;value4=value|value<<8|value<<16|value<<24;stop4=stop&~3;if(unaligned){unaligned=ptr+4-unaligned|0;while((ptr|0)<(unaligned|0)){HEAP8[ptr>>0]=value;ptr=ptr+1|0}}while((ptr|0)<(stop4|0)){HEAP32[ptr>>2]=value4;ptr=ptr+4|0}}while((ptr|0)<(stop|0)){HEAP8[ptr>>0]=value;ptr=ptr+1|0}return ptr-num|0}function _memcpy(dest,src,num){dest=dest|0;src=src|0;num=num|0;var ret=0;if((num|0)>=4096)return _emscripten_memcpy_big(dest|0,src|0,num|0)|0;ret=dest|0;if((dest&3)==(src&3)){while(dest&3){if(!num)return ret|0;HEAP8[dest>>0]=HEAP8[src>>0]|0;dest=dest+1|0;src=src+1|0;num=num-1|0}while((num|0)>=4){HEAP32[dest>>2]=HEAP32[src>>2];dest=dest+4|0;src=src+4|0;num=num-4|0}}while((num|0)>0){HEAP8[dest>>0]=HEAP8[src>>0]|0;dest=dest+1|0;src=src+1|0;num=num-1|0}return ret|0}function _ubidi_close_58($pBiDi){$pBiDi=$pBiDi|0;var $11=0,$14=0,$17=0,$2=0,$20=0,$5=0,$8=0;if($pBiDi){HEAP32[$pBiDi>>2]=0;$2=HEAP32[$pBiDi+48>>2]|0;if($2)_uprv_free_58($2);$5=HEAP32[$pBiDi+52>>2]|0;if($5)_uprv_free_58($5);$8=HEAP32[$pBiDi+56>>2]|0;if($8)_uprv_free_58($8);$11=HEAP32[$pBiDi+60>>2]|0;if($11)_uprv_free_58($11);$14=HEAP32[$pBiDi+64>>2]|0;if($14)_uprv_free_58($14);$17=HEAP32[$pBiDi+68>>2]|0;if($17)_uprv_free_58($17);$20=HEAP32[$pBiDi+348>>2]|0;if($20)_uprv_free_58($20);_uprv_free_58($pBiDi)}return}function _ubidi_getPairedBracket_58($c){$c=$c|0;var $$0=0,$35=0,$36=0;do if($c>>>0<55296)$35=((HEAPU16[43702+($c>>5<<1)>>1]|0)<<2)+($c&31)|0;else{if($c>>>0<65536){$35=((HEAPU16[43702+((($c|0)<56320?320:0)+($c>>5)<<1)>>1]|0)<<2)+($c&31)|0;break}if($c>>>0>1114111)$35=3624;else $35=((HEAPU16[43702+((HEAPU16[43702+(($c>>11)+2080<<1)>>1]|0)+($c>>>5&63)<<1)>>1]|0)<<2)+($c&31)|0}while(0);$36=HEAP16[43702+($35<<1)>>1]|0;if(!($36&768))$$0=$c;else $$0=_getMirror($c,$36)|0;return $$0|0}function _ubidi_countRuns_58($pBiDi,$pErrorCode){$pBiDi=$pBiDi|0;$pErrorCode=$pErrorCode|0;var $$0=0,$4=0;L1:do if(!$pErrorCode)$$0=-1;else if((HEAP32[$pErrorCode>>2]|0)>0)$$0=-1;else{do if($pBiDi){$4=HEAP32[$pBiDi>>2]|0;if(($4|0)!=($pBiDi|0)){if(!$4)break;if((HEAP32[$4>>2]|0)!=($4|0))break}_ubidi_getRuns_58($pBiDi,$pErrorCode);if((HEAP32[$pErrorCode>>2]|0)>0){$$0=-1;break L1}$$0=HEAP32[$pBiDi+224>>2]|0;break L1}while(0);HEAP32[$pErrorCode>>2]=27;$$0=-1}while(0);return $$0|0}function _u_terminateUChars_58($dest,$destCapacity,$length,$pErrorCode){$dest=$dest|0;$destCapacity=$destCapacity|0;$length=$length|0;$pErrorCode=$pErrorCode|0;do if($pErrorCode)if(!(($length|0)<0|(HEAP32[$pErrorCode>>2]|0)>0)){if(($length|0)<($destCapacity|0)){HEAP16[$dest+($length<<1)>>1]=0;if((HEAP32[$pErrorCode>>2]|0)!=-124)break;HEAP32[$pErrorCode>>2]=0;break}if(($length|0)==($destCapacity|0)){HEAP32[$pErrorCode>>2]=-124;break}else{HEAP32[$pErrorCode>>2]=15;break}}while(0);return $length|0}function _ushape_arabic($input,$input_length){$input=$input|0;$input_length=$input_length|0;var $$0=0,$0=0,$1=0,$3=0,$errorCode=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp;HEAP32[$errorCode>>2]=0;$0=_u_shapeArabic_58($input,$input_length,0,0,$errorCode)|0;$1=$0+1|0;HEAP32[$errorCode>>2]=0;$3=_malloc($1<<1)|0;_u_shapeArabic_58($input,$input_length,$3,$1,$errorCode)|0;if((HEAP32[$errorCode>>2]|0)>0){_free($3);$$0=0}else{HEAP16[$3+($0<<1)>>1]=0;$$0=$3}STACKTOP=sp;return $$0|0}function __ZL12invertBufferPtijii($buffer,$size,$lowlimit,$highlimit){$buffer=$buffer|0;$size=$size|0;$lowlimit=$lowlimit|0;$highlimit=$highlimit|0;var $2=0,$3=0,$4=0,$i$02=0,$j$01=0,$j$03=0;$j$01=$size-$highlimit+-1|0;if(($j$01|0)>($lowlimit|0)){$i$02=$lowlimit;$j$03=$j$01}else return;do{$2=$buffer+($i$02<<1)|0;$3=HEAP16[$2>>1]|0;$4=$buffer+($j$03<<1)|0;HEAP16[$2>>1]=HEAP16[$4>>1]|0;HEAP16[$4>>1]=$3;$i$02=$i$02+1|0;$j$03=$j$03+-1|0}while(($i$02|0)<($j$03|0));return}function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below){$this=$this|0;$info=$info|0;$adjustedPtr=$adjustedPtr|0;$path_below=$path_below|0;var $4=0;if(($this|0)==(HEAP32[$info+8>>2]|0))__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($info,$adjustedPtr,$path_below);else{$4=HEAP32[$this+8>>2]|0;FUNCTION_TABLE_viiii[HEAP32[(HEAP32[$4>>2]|0)+28>>2]&3]($4,$info,$adjustedPtr,$path_below)}return}function _bidi_processText($input,$input_length){$input=$input|0;$input_length=$input_length|0;var $$0=0,$0=0,$2=0,$3=0,$errorCode=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp;$0=HEAP32[24]|0;if(!$0){$2=_ubidi_open_58()|0;HEAP32[24]=$2;$3=$2}else $3=$0;HEAP32[$errorCode>>2]=0;_ubidi_setPara_58($3,$input,$input_length,-2,$errorCode);if((HEAP32[$errorCode>>2]|0)>0)$$0=0;else $$0=_ubidi_countParagraphs_58(HEAP32[24]|0)|0;STACKTOP=sp;return $$0|0}function _ubidi_getMirror_58($c){$c=$c|0;var $35=0;do if($c>>>0<55296)$35=((HEAPU16[43702+($c>>5<<1)>>1]|0)<<2)+($c&31)|0;else{if($c>>>0<65536){$35=((HEAPU16[43702+((($c|0)<56320?320:0)+($c>>5)<<1)>>1]|0)<<2)+($c&31)|0;break}if($c>>>0>1114111)$35=3624;else $35=((HEAPU16[43702+((HEAPU16[43702+(($c>>11)+2080<<1)>>1]|0)+($c>>>5&63)<<1)>>1]|0)<<2)+($c&31)|0}while(0);return _getMirror($c,HEAP16[43702+($35<<1)>>1]|0)|0}function _getMirror($c,$props){$c=$c|0;$props=$props|0;var $$0=0,$1=0,$6=0,$7=0,$i$0=0;$1=$props<<16>>16>>13;L1:do if(($1|0)==-4){$i$0=0;while(1){if(($i$0|0)>=26){$$0=$c;break L1}$6=HEAP32[424+($i$0<<2)>>2]|0;$7=$6&2097151;if(($7|0)==($c|0))break;if(($7|0)>($c|0)){$$0=$c;break L1}else $i$0=$i$0+1|0}$$0=HEAP32[424+($6>>>21<<2)>>2]&2097151}else $$0=$1+$c|0;while(0);return $$0|0}function __ZL7getLinkt($ch){$ch=$ch|0;var $$0=0,$0=0;$0=$ch&65535;if(($ch+-1570&65535)<178){$$0=HEAP16[1786+($0+-1570<<1)>>1]|0;return $$0|0}if($ch<<16>>16==8205){$$0=3;return $$0|0}if(($ch+-8301&65535)<3){$$0=4;return $$0|0}if(($ch+1200&65535)<275){$$0=HEAPU8[67877+($0+-64336)>>0]|0;return $$0|0}if(($ch+400&65535)>=141){$$0=0;return $$0|0}$$0=HEAPU8[68152+($0+-65136)>>0]|0;return $$0|0}function _u_charType_58($c){$c=$c|0;var $35=0;do if($c>>>0<55296)$35=((HEAPU16[2142+($c>>5<<1)>>1]|0)<<2)+($c&31)|0;else{if($c>>>0<65536){$35=((HEAPU16[2142+((($c|0)<56320?320:0)+($c>>5)<<1)>>1]|0)<<2)+($c&31)|0;break}if($c>>>0>1114111)$35=4536;else $35=((HEAPU16[2142+((HEAPU16[2142+(($c>>11)+2080<<1)>>1]|0)+($c>>>5&63)<<1)>>1]|0)<<2)+($c&31)|0}while(0);return(HEAPU16[2142+($35<<1)>>1]|0)&31|0}function _ubidi_openSized_58($pErrorCode){$pErrorCode=$pErrorCode|0;var $$0=0,$3=0;do if(!$pErrorCode)$$0=0;else if((HEAP32[$pErrorCode>>2]|0)>0)$$0=0;else{$3=_uprv_malloc_58(364)|0;if(!$3){HEAP32[$pErrorCode>>2]=7;$$0=0;break}_memset($3|0,0,364)|0;HEAP32[$3+4>>2]=280;HEAP8[$3+72>>0]=1;HEAP8[$3+73>>0]=1;if((HEAP32[$pErrorCode>>2]|0)<1)$$0=$3;else{_ubidi_close_58($3);$$0=0}}while(0);return $$0|0}function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($this,$info,$dst_ptr,$current_ptr,$path_below,$use_strcmp){$this=$this|0;$info=$info|0;$dst_ptr=$dst_ptr|0;$current_ptr=$current_ptr|0;$path_below=$path_below|0;$use_strcmp=$use_strcmp|0;if(($this|0)==(HEAP32[$info+8>>2]|0))__ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($info,$dst_ptr,$current_ptr,$path_below);return}function _bidi_getParagraphEndIndex($paragraphIndex){$paragraphIndex=$paragraphIndex|0;var $errorCode=0,$paragraphEndIndex=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp+4|0;$paragraphEndIndex=sp;HEAP32[$errorCode>>2]=0;HEAP32[$paragraphEndIndex>>2]=0;_ubidi_getParagraphByIndex_58(HEAP32[24]|0,$paragraphIndex,$paragraphEndIndex,$errorCode);STACKTOP=sp;return((HEAP32[$errorCode>>2]|0)>0?0:HEAP32[$paragraphEndIndex>>2]|0)|0}function ___cxa_can_catch($catchType,$excpType,$thrown){$catchType=$catchType|0;$excpType=$excpType|0;$thrown=$thrown|0;var $4=0,$temp=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$temp=sp;HEAP32[$temp>>2]=HEAP32[$thrown>>2];$4=FUNCTION_TABLE_iiii[HEAP32[(HEAP32[$catchType>>2]|0)+16>>2]&1]($catchType,$excpType,$temp)|0;if($4)HEAP32[$thrown>>2]=HEAP32[$temp>>2];STACKTOP=sp;return $4&1|0}function copyTempDouble(ptr){ptr=ptr|0;HEAP8[tempDoublePtr>>0]=HEAP8[ptr>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[ptr+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[ptr+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[ptr+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[ptr+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[ptr+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[ptr+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[ptr+7>>0]}function _ubidi_getCustomizedClass_58($pBiDi,$c){$pBiDi=$pBiDi|0;$c=$c|0;var $1=0,$5=0,$dir$0=0,label=0;$1=HEAP32[$pBiDi+356>>2]|0;if(!$1)label=3;else{$5=FUNCTION_TABLE_iii[$1&0](HEAP32[$pBiDi+360>>2]|0,$c)|0;if(($5|0)==23)label=3;else $dir$0=$5}if((label|0)==3)$dir$0=_ubidi_getClass_58(HEAP32[$pBiDi+4>>2]|0,$c)|0;return($dir$0>>>0>22?10:$dir$0)|0}function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($this,$info,$adjustedPtr,$path_below){$this=$this|0;$info=$info|0;$adjustedPtr=$adjustedPtr|0;$path_below=$path_below|0;if(($this|0)==(HEAP32[$info+8>>2]|0))__ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($info,$adjustedPtr,$path_below);return}function _ubidi_getProcessedLength_58($pBiDi){$pBiDi=$pBiDi|0;var $$0=0,$1=0;do if(!$pBiDi)$$0=0;else{$1=HEAP32[$pBiDi>>2]|0;if(($1|0)!=($pBiDi|0)){if(!$1){$$0=0;break}if((HEAP32[$1>>2]|0)!=($1|0)){$$0=0;break}}$$0=HEAP32[$pBiDi+16>>2]|0}while(0);return $$0|0}function _ubidi_countParagraphs_58($pBiDi){$pBiDi=$pBiDi|0;var $$0=0,$1=0;do if(!$pBiDi)$$0=0;else{$1=HEAP32[$pBiDi>>2]|0;if(($1|0)!=($pBiDi|0)){if(!$1){$$0=0;break}if((HEAP32[$1>>2]|0)!=($1|0)){$$0=0;break}}$$0=HEAP32[$pBiDi+136>>2]|0}while(0);return $$0|0}function _directionFromFlags($pBiDi$0$34$val){$pBiDi$0$34$val=$pBiDi$0$34$val|0;var $$0=0,label=0;if(!($pBiDi$0$34$val&2154498))if(($pBiDi$0$34$val&32|0)==0|($pBiDi$0$34$val&8249304|0)==0)$$0=0;else label=3;else label=3;if((label|0)==3)$$0=($pBiDi$0$34$val&26220581|0)==0?1:2;return $$0|0}function _uprv_realloc_58($buffer,$size){$buffer=$buffer|0;$size=$size|0;var $$0=0;do if(($buffer|0)==256)$$0=_uprv_malloc_58($size)|0;else if(!$size){_free($buffer);$$0=256;break}else{$$0=_realloc($buffer,$size)|0;break}while(0);return $$0|0}function copyTempFloat(ptr){ptr=ptr|0;HEAP8[tempDoublePtr>>0]=HEAP8[ptr>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[ptr+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[ptr+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[ptr+3>>0]}function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6){index=index|0;a1=a1|0;a2=a2|0;a3=a3|0;a4=a4|0;a5=a5|0;a6=a6|0;FUNCTION_TABLE_viiiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0)}function _ubidi_open_58(){var $0=0,$errorCode=0,sp=0;sp=STACKTOP;STACKTOP=STACKTOP+16|0;$errorCode=sp;HEAP32[$errorCode>>2]=0;$0=_ubidi_openSized_58($errorCode)|0;STACKTOP=sp;return $0|0}function dynCall_viiiii(index,a1,a2,a3,a4,a5){index=index|0;a1=a1|0;a2=a2|0;a3=a3|0;a4=a4|0;a5=a5|0;FUNCTION_TABLE_viiiii[index&3](a1|0,a2|0,a3|0,a4|0,a5|0)}function dynCall_viiii(index,a1,a2,a3,a4){index=index|0;a1=a1|0;a2=a2|0;a3=a3|0;a4=a4|0;FUNCTION_TABLE_viiii[index&3](a1|0,a2|0,a3|0,a4|0)}function ___errno_location(){var $$0=0,$3=0;if(!(HEAP32[152]|0))$$0=652;else{$3=(_pthread_self()|0)+60|0;$$0=HEAP32[$3>>2]|0}return $$0|0}function dynCall_iiii(index,a1,a2,a3){index=index|0;a1=a1|0;a2=a2|0;a3=a3|0;return FUNCTION_TABLE_iiii[index&1](a1|0,a2|0,a3|0)|0}function ___cxa_is_pointer_type($type){$type=$type|0;var $3=0;if(!$type)$3=0;else $3=(___dynamic_cast($type,64)|0)!=0;return $3&1|0}function stackAlloc(size){size=size|0;var ret=0;ret=STACKTOP;STACKTOP=STACKTOP+size|0;STACKTOP=STACKTOP+15&-16;return ret|0}function establishStackSpace(stackBase,stackMax){stackBase=stackBase|0;stackMax=stackMax|0;STACKTOP=stackBase;STACK_MAX=stackMax}function dynCall_iii(index,a1,a2){index=index|0;a1=a1|0;a2=a2|0;return FUNCTION_TABLE_iii[index&0](a1|0,a2|0)|0}function setThrew(threw,value){threw=threw|0;value=value|0;if(!__THREW__){__THREW__=threw;threwValue=value}}function __ZL18expandCompositCharPtiijP10UErrorCodei15uShapeVariables($destSize){$destSize=$destSize|0;return $destSize|0}function b3(p0,p1,p2,p3,p4,p5){p0=p0|0;p1=p1|0;p2=p2|0;p3=p3|0;p4=p4|0;p5=p5|0;abort(3)}function _uprv_malloc_58($s){$s=$s|0;var $$0=0;if(!$s)$$0=256;else $$0=_malloc($s)|0;return $$0|0}function b0(p0,p1,p2,p3,p4){p0=p0|0;p1=p1|0;p2=p2|0;p3=p3|0;p4=p4|0;abort(0)}function _uprv_free_58($buffer){$buffer=$buffer|0;if(($buffer|0)!=256)_free($buffer);return}function __ZN10__cxxabiv120__si_class_type_infoD0Ev($this){$this=$this|0;__ZdlPv($this);return}function dynCall_vi(index,a1){index=index|0;a1=a1|0;FUNCTION_TABLE_vi[index&7](a1|0)}function __ZN10__cxxabiv117__class_type_infoD0Ev($this){$this=$this|0;__ZdlPv($this);return}function b5(p0,p1,p2,p3){ +p0=p0|0;p1=p1|0;p2=p2|0;p3=p3|0;abort(5)}function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($this){$this=$this|0;return}function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($this){$this=$this|0;return}function b2(p0,p1,p2){p0=p0|0;p1=p1|0;p2=p2|0;abort(2);return 0}function __ZN10__cxxabiv116__shim_type_infoD2Ev($this){$this=$this|0;return}function b4(p0,p1){p0=p0|0;p1=p1|0;abort(4);return 0}function setTempRet0(value){value=value|0;tempRet0=value}function __ZdlPv($ptr){$ptr=$ptr|0;_free($ptr);return}function stackRestore(top){top=top|0;STACKTOP=top}function getTempRet0(){return tempRet0|0}function stackSave(){return STACKTOP|0}function b1(p0){p0=p0|0;abort(1)}var FUNCTION_TABLE_viiiii=[b0,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b0];var FUNCTION_TABLE_vi=[b1,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b1,b1];var FUNCTION_TABLE_iiii=[b2,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv];var FUNCTION_TABLE_viiiiii=[b3,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b3];var FUNCTION_TABLE_iii=[b4];var FUNCTION_TABLE_viiii=[b5,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b5];return{_bidi_getParagraphEndIndex:_bidi_getParagraphEndIndex,___cxa_can_catch:___cxa_can_catch,_free:_free,___cxa_is_pointer_type:___cxa_is_pointer_type,_memset:_memset,_malloc:_malloc,_memcpy:_memcpy,_bidi_getLine:_bidi_getLine,_ushape_arabic:_ushape_arabic,_bidi_processText:_bidi_processText,runPostSets:runPostSets,_emscripten_replace_memory:_emscripten_replace_memory,stackAlloc:stackAlloc,stackSave:stackSave,stackRestore:stackRestore,establishStackSpace:establishStackSpace,setThrew:setThrew,setTempRet0:setTempRet0,getTempRet0:getTempRet0,dynCall_viiiii:dynCall_viiiii,dynCall_vi:dynCall_vi,dynCall_iiii:dynCall_iiii,dynCall_viiiiii:dynCall_viiiiii,dynCall_iii:dynCall_iii,dynCall_viiii:dynCall_viiii}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _bidi_getParagraphEndIndex=Module["_bidi_getParagraphEndIndex"]=asm["_bidi_getParagraphEndIndex"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var _bidi_getLine=Module["_bidi_getLine"]=asm["_bidi_getLine"];var _memset=Module["_memset"]=asm["_memset"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _ushape_arabic=Module["_ushape_arabic"]=asm["_ushape_arabic"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _bidi_processText=Module["_bidi_processText"]=asm["_bidi_processText"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];Runtime.stackAlloc=asm["stackAlloc"];Runtime.stackSave=asm["stackSave"];Runtime.stackRestore=asm["stackRestore"];Runtime.establishStackSpace=asm["establishStackSpace"];Runtime.setTempRet0=asm["setTempRet0"];Runtime.getTempRet0=asm["getTempRet0"];function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i 0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["stdout"]["once"]("drain",function(){process["exit"](status)});console.log(" ");setTimeout(function(){process["exit"](status)},500)}else if(ENVIRONMENT_IS_SHELL&&typeof quit==="function"){quit(status)}throw new ExitStatus(status)}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach(function(decorator){output=decorator(output,what)})}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run();"use strict";function applyArabicShaping(input){if(!input){return input}var nDataBytes=(input.length+1)*2;var stringInputPtr=Module._malloc(nDataBytes);Module.stringToUTF16(input,stringInputPtr,nDataBytes);var returnStringPtr=Module.ccall("ushape_arabic","number",["number","number"],[stringInputPtr,input.length]);Module._free(stringInputPtr);if(returnStringPtr===0){return input}var result=Module.UTF16ToString(returnStringPtr);Module._free(returnStringPtr);return result}function mergeParagraphLineBreakPoints(lineBreakPoints,paragraphCount){var mergedParagraphLineBreakPoints=[];for(var i=0;i mergedParagraphLineBreakPoints[mergedParagraphLineBreakPoints.length-1])){mergedParagraphLineBreakPoints.push(lineBreakPoint)}}mergedParagraphLineBreakPoints.push(paragraphEndIndex)}for(var i$2=0,list$1=lineBreakPoints;i$2 mergedParagraphLineBreakPoints[mergedParagraphLineBreakPoints.length-1]){mergedParagraphLineBreakPoints.push(lineBreakPoint$1)}}return mergedParagraphLineBreakPoints}function processBidirectionalText(input,lineBreakPoints){if(!input){return[input]}var nDataBytes=(input.length+1)*2;var stringInputPtr=Module._malloc(nDataBytes);Module.stringToUTF16(input,stringInputPtr,nDataBytes);var paragraphCount=Module.ccall("bidi_processText","number",["number","number"],[stringInputPtr,input.length]);if(paragraphCount===0){Module._free(stringInputPtr);return[input]}var mergedParagraphLineBreakPoints=mergeParagraphLineBreakPoints(lineBreakPoints,paragraphCount);var startIndex=0;var lines=[];for(var i=0,list=mergedParagraphLineBreakPoints;i