diff --git a/web-service/public/index.html b/web-service/public/index.html index 35f2223a2a432e423021276ce3887d53d97cdc0f..ab2a6db71824e35217a8b501626f5b781404f6f0 100644 --- a/web-service/public/index.html +++ b/web-service/public/index.html @@ -8,6 +8,5 @@ <body onload='checkIfLoggedIn();'> <div id="container" style="padding-top: 150px; text-align: center"></div> </body> - <script src="./js/lib/libde265min.js"></script> <script src="./js/bundle.js"></script> </html> \ No newline at end of file diff --git a/web-service/public/js/bundle.js b/web-service/public/js/bundle.js index 5629c0f18acd7468f526c70044388327abe9ca28..30fcb365ecd5bedbfd497552b018b70c5e529449 100644 --- a/web-service/public/js/bundle.js +++ b/web-service/public/js/bundle.js @@ -1,11 +1,11 @@ (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ const Peer = require('../../server/src/peer') -const VideoPlayer = require('./lib/VideoPlayer') +const VideoConverter = require('./lib/dist/video-converter'); let current_data = {}; let peer; -let decoder; let player; +console.log(VideoConverter); /** * Validates that the user is logged in @@ -56,13 +56,13 @@ getAvailableStreams = async () => { createVideoPlayer = () => { const containerDiv = document.getElementById('container') - containerDiv.innerHTML = `<h1>Stream ${current_data.uri} is live right here!</h1><br><button onclick="renderThumbnails(); closeStream()">Go back</button> <button onclick="connectToStream()">Start Stream</button><br> + containerDiv.innerHTML = `<h1>Stream ${current_data.uri} is live right here!</h1><br> + <button onclick="renderThumbnails(); closeStream()">Go back</button> + <button onclick="connectToStream()">Start Stream</button><br> <canvas id="ftlab-stream-video" width="640" height="360"></canvas>`; containerDiv.innerHTML += '<br>' containerDiv.innerHTML += '' createPeer(); - const canvas = document.getElementById("ftlab-stream-video") - player = new VideoPlayer(canvas) console.log("PLAYER", player) connectToStream(); } @@ -149,9 +149,37 @@ createPeer = () => { connectToStream = () => { - const uri = current_data.uri - const decodedURI = decodeURIComponent(current_data.uri); - player.playback(peer, decodedURI, uri); + const element = document.getElementById('ftlab-stream-video'); + console.log(VideoConverter) + const converter = new VideoConverter.default(element, 30, 6); + + // start streaming + fetch('/h264/raw/stream').then((res) => { + if (res.body) { + const reader = res.body.getReader(); + reader.read().then(function processResult(result) { + function decode(value) { + converter.appendRawData(value); + } + + if (result.done) { + decode([]); + console.log('Video Stream is done.'); + return Promise.resolve(); + } + decode(result.value); + + return reader.read().then(processResult); + }); + converter.play(); + this.canceler = (message) => { + reader.cancel(); + console.log('Video Stream Request Canceled', message); + }; + } + }).catch((err) => { + console.error('Video Stream Request error', err); + }); } closeStream = () => { @@ -212,211 +240,1342 @@ saveConfigs = async () => { const content = await rawResp.json(); console.log(content) } -},{"../../server/src/peer":27,"./lib/VideoPlayer":2}],2:[function(require,module,exports){ - -/** - * VideoPlayer for our stream - * - */ - +},{"../../server/src/peer":34,"./lib/dist/video-converter":9}],2:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var bit_stream_1 = require("./util/bit-stream"); +var debug = require("./util/debug"); +var NALU_1 = require("./util/NALU"); +var H264Parser = (function () { + function H264Parser(remuxer) { + this.remuxer = remuxer; + this.track = remuxer.mp4track; + } + H264Parser.prototype.parseSEI = function (sei) { + var messages = H264Parser.readSEI(sei); + for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { + var m = messages_1[_i]; + switch (m.type) { + case 0: + this.track.seiBuffering = true; + break; + case 5: + return true; + default: + break; + } + } + return false; + }; + H264Parser.prototype.parseSPS = function (sps) { + var config = H264Parser.readSPS(sps); + this.track.width = config.width; + this.track.height = config.height; + this.track.sps = [sps]; + this.track.codec = 'avc1.'; + var codecArray = new DataView(sps.buffer, sps.byteOffset + 1, 4); + for (var i = 0; i < 3; ++i) { + var h = codecArray.getUint8(i).toString(16); + if (h.length < 2) { + h = '0' + h; + } + this.track.codec += h; + } + }; + H264Parser.prototype.parsePPS = function (pps) { + this.track.pps = [pps]; + }; + H264Parser.prototype.parseNAL = function (unit) { + if (!unit) { + return false; + } + var push = false; + switch (unit.type()) { + case NALU_1.default.NDR: + case NALU_1.default.IDR: + push = true; + break; + case NALU_1.default.SEI: + push = this.parseSEI(unit.getData().subarray(4)); + break; + case NALU_1.default.SPS: + if (this.track.sps.length === 0) { + this.parseSPS(unit.getData().subarray(4)); + debug.log(" Found SPS type NALU frame."); + if (!this.remuxer.readyToDecode && this.track.pps.length > 0 && this.track.sps.length > 0) { + this.remuxer.readyToDecode = true; + } + } + break; + case NALU_1.default.PPS: + if (this.track.pps.length === 0) { + this.parsePPS(unit.getData().subarray(4)); + debug.log(" Found PPS type NALU frame."); + if (!this.remuxer.readyToDecode && this.track.pps.length > 0 && this.track.sps.length > 0) { + this.remuxer.readyToDecode = true; + } + } + break; + default: + debug.log(" Found Unknown type NALU frame. type=" + unit.type()); + break; + } + return push; + }; + H264Parser.skipScalingList = function (decoder, count) { + var lastScale = 8; + var nextScale = 8; + for (var j = 0; j < count; j++) { + if (nextScale !== 0) { + var deltaScale = decoder.readEG(); + nextScale = (lastScale + deltaScale + 256) % 256; + } + lastScale = (nextScale === 0) ? lastScale : nextScale; + } + }; + H264Parser.readSPS = function (data) { + var decoder = new bit_stream_1.default(data); + var frameCropLeftOffset = 0; + var frameCropRightOffset = 0; + var frameCropTopOffset = 0; + var frameCropBottomOffset = 0; + var sarScale = 1; + decoder.readUByte(); + var profileIdc = decoder.readUByte(); + decoder.skipBits(5); + decoder.skipBits(3); + decoder.skipBits(8); + decoder.skipUEG(); + if (profileIdc === 100 || + profileIdc === 110 || + profileIdc === 122 || + profileIdc === 244 || + profileIdc === 44 || + profileIdc === 83 || + profileIdc === 86 || + profileIdc === 118 || + profileIdc === 128) { + var chromaFormatIdc = decoder.readUEG(); + if (chromaFormatIdc === 3) { + decoder.skipBits(1); + } + decoder.skipUEG(); + decoder.skipUEG(); + decoder.skipBits(1); + if (decoder.readBoolean()) { + var scalingListCount = (chromaFormatIdc !== 3) ? 8 : 12; + for (var i = 0; i < scalingListCount; ++i) { + if (decoder.readBoolean()) { + if (i < 6) { + H264Parser.skipScalingList(decoder, 16); + } + else { + H264Parser.skipScalingList(decoder, 64); + } + } + } + } + } + decoder.skipUEG(); + var picOrderCntType = decoder.readUEG(); + if (picOrderCntType === 0) { + decoder.readUEG(); + } + else if (picOrderCntType === 1) { + decoder.skipBits(1); + decoder.skipEG(); + decoder.skipEG(); + var numRefFramesInPicOrderCntCycle = decoder.readUEG(); + for (var i = 0; i < numRefFramesInPicOrderCntCycle; ++i) { + decoder.skipEG(); + } + } + decoder.skipUEG(); + decoder.skipBits(1); + var picWidthInMbsMinus1 = decoder.readUEG(); + var picHeightInMapUnitsMinus1 = decoder.readUEG(); + var frameMbsOnlyFlag = decoder.readBits(1); + if (frameMbsOnlyFlag === 0) { + decoder.skipBits(1); + } + decoder.skipBits(1); + if (decoder.readBoolean()) { + frameCropLeftOffset = decoder.readUEG(); + frameCropRightOffset = decoder.readUEG(); + frameCropTopOffset = decoder.readUEG(); + frameCropBottomOffset = decoder.readUEG(); + } + if (decoder.readBoolean()) { + if (decoder.readBoolean()) { + var sarRatio = void 0; + var aspectRatioIdc = decoder.readUByte(); + switch (aspectRatioIdc) { + case 1: + sarRatio = [1, 1]; + break; + case 2: + sarRatio = [12, 11]; + break; + case 3: + sarRatio = [10, 11]; + break; + case 4: + sarRatio = [16, 11]; + break; + case 5: + sarRatio = [40, 33]; + break; + case 6: + sarRatio = [24, 11]; + break; + case 7: + sarRatio = [20, 11]; + break; + case 8: + sarRatio = [32, 11]; + break; + case 9: + sarRatio = [80, 33]; + break; + case 10: + sarRatio = [18, 11]; + break; + case 11: + sarRatio = [15, 11]; + break; + case 12: + sarRatio = [64, 33]; + break; + case 13: + sarRatio = [160, 99]; + break; + case 14: + sarRatio = [4, 3]; + break; + case 15: + sarRatio = [3, 2]; + break; + case 16: + sarRatio = [2, 1]; + break; + case 255: { + sarRatio = [decoder.readUByte() << 8 | decoder.readUByte(), decoder.readUByte() << 8 | decoder.readUByte()]; + break; + } + default: { + debug.error(" H264: Unknown aspectRatioIdc=" + aspectRatioIdc); + } + } + if (sarRatio) { + sarScale = sarRatio[0] / sarRatio[1]; + } + } + if (decoder.readBoolean()) { + decoder.skipBits(1); + } + if (decoder.readBoolean()) { + decoder.skipBits(4); + if (decoder.readBoolean()) { + decoder.skipBits(24); + } + } + if (decoder.readBoolean()) { + decoder.skipUEG(); + decoder.skipUEG(); + } + if (decoder.readBoolean()) { + var unitsInTick = decoder.readUInt(); + var timeScale = decoder.readUInt(); + var fixedFrameRate = decoder.readBoolean(); + var frameDuration = timeScale / (2 * unitsInTick); + debug.log("timescale: " + timeScale + "; unitsInTick: " + unitsInTick + "; " + + ("fixedFramerate: " + fixedFrameRate + "; avgFrameDuration: " + frameDuration)); + } + } + return { + width: Math.ceil((((picWidthInMbsMinus1 + 1) * 16) - frameCropLeftOffset * 2 - frameCropRightOffset * 2) * sarScale), + height: ((2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16) - + ((frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset)), + }; + }; + H264Parser.readSEI = function (data) { + var decoder = new bit_stream_1.default(data); + decoder.skipBits(8); + var result = []; + while (decoder.bitsAvailable > 3 * 8) { + result.push(this.readSEIMessage(decoder)); + } + return result; + }; + H264Parser.readSEIMessage = function (decoder) { + function get() { + var result = 0; + while (true) { + var value = decoder.readUByte(); + result += value; + if (value !== 0xff) { + break; + } + } + return result; + } + var payloadType = get(); + var payloadSize = get(); + return this.readSEIPayload(decoder, payloadType, payloadSize); + }; + H264Parser.readSEIPayload = function (decoder, type, size) { + var result; + switch (type) { + default: + result = { type: type }; + decoder.skipBits(size * 8); + } + decoder.skipBits(decoder.bitsAvailable % 8); + return result; + }; + return H264Parser; +}()); +exports.default = H264Parser; + +},{"./util/NALU":5,"./util/bit-stream":6,"./util/debug":7}],3:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_parser_1 = require("./h264-parser"); +var debug = require("./util/debug"); +var NALU_1 = require("./util/NALU"); +var trackId = 1; +var H264Remuxer = (function () { + function H264Remuxer(fps, framePerFragment, timescale) { + this.fps = fps; + this.framePerFragment = framePerFragment; + this.timescale = timescale; + this.readyToDecode = false; + this.totalDTS = 0; + this.stepDTS = Math.round(this.timescale / this.fps); + this.frameCount = 0; + this.seq = 1; + this.mp4track = { + id: H264Remuxer.getTrackID(), + type: 'video', + len: 0, + codec: '', + sps: [], + pps: [], + seiBuffering: false, + width: 0, + height: 0, + timescale: timescale, + duration: timescale, + samples: [], + isKeyFrame: true, + }; + this.unitSamples = [[]]; + this.parser = new h264_parser_1.default(this); + } + H264Remuxer.getTrackID = function () { + return trackId++; + }; + Object.defineProperty(H264Remuxer.prototype, "seqNum", { + get: function () { + return this.seq; + }, + enumerable: true, + configurable: true + }); + H264Remuxer.prototype.remux = function (nalu) { + if (this.mp4track.seiBuffering && nalu.type() === NALU_1.default.SEI) { + return this.createNextFrame(); + } + if (this.parser.parseNAL(nalu)) { + this.unitSamples[this.unitSamples.length - 1].push(nalu); + this.mp4track.len += nalu.getSize(); + } + if (!this.mp4track.seiBuffering && (nalu.type() === NALU_1.default.IDR || nalu.type() === NALU_1.default.NDR)) { + return this.createNextFrame(); + } + return; + }; + H264Remuxer.prototype.createNextFrame = function () { + if (this.mp4track.len > 0) { + this.frameCount++; + if (this.frameCount % this.framePerFragment === 0) { + var fragment = this.getFragment(); + if (fragment) { + var dts = this.totalDTS; + this.totalDTS = this.stepDTS * this.frameCount; + return [dts, fragment]; + } + else { + debug.log("No mp4 sample data."); + } + } + this.unitSamples.push([]); + } + return; + }; + H264Remuxer.prototype.flush = function () { + this.seq++; + this.mp4track.len = 0; + this.mp4track.samples = []; + this.mp4track.isKeyFrame = false; + this.unitSamples = [[]]; + }; + H264Remuxer.prototype.getFragment = function () { + if (!this.checkReadyToDecode()) { + return undefined; + } + var payload = new Uint8Array(this.mp4track.len); + this.mp4track.samples = []; + var offset = 0; + for (var i = 0, len = this.unitSamples.length; i < len; i++) { + var units = this.unitSamples[i]; + if (units.length === 0) { + continue; + } + var mp4Sample = { + size: 0, + cts: this.stepDTS * i, + }; + for (var _i = 0, units_1 = units; _i < units_1.length; _i++) { + var unit = units_1[_i]; + mp4Sample.size += unit.getSize(); + payload.set(unit.getData(), offset); + offset += unit.getSize(); + } + this.mp4track.samples.push(mp4Sample); + } + if (offset === 0) { + return undefined; + } + return payload; + }; + H264Remuxer.prototype.checkReadyToDecode = function () { + if (!this.readyToDecode || this.unitSamples.filter(function (array) { return array.length > 0; }).length === 0) { + debug.log("Not ready to decode! readyToDecode(" + this.readyToDecode + ") is false or units is empty."); + return false; + } + return true; + }; + return H264Remuxer; +}()); +exports.default = H264Remuxer; + +},{"./h264-parser":2,"./util/NALU":5,"./util/debug":7}],4:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var MP4 = (function () { + function MP4() { + } + MP4.init = function () { + MP4.initalized = true; + MP4.types = { + avc1: [], + avcC: [], + btrt: [], + dinf: [], + dref: [], + esds: [], + ftyp: [], + hdlr: [], + mdat: [], + mdhd: [], + mdia: [], + mfhd: [], + minf: [], + moof: [], + moov: [], + mp4a: [], + mvex: [], + mvhd: [], + sdtp: [], + stbl: [], + stco: [], + stsc: [], + stsd: [], + stsz: [], + stts: [], + styp: [], + tfdt: [], + tfhd: [], + traf: [], + trak: [], + trun: [], + trep: [], + trex: [], + tkhd: [], + vmhd: [], + smhd: [], + }; + for (var type in MP4.types) { + if (MP4.types.hasOwnProperty(type)) { + MP4.types[type] = [ + type.charCodeAt(0), + type.charCodeAt(1), + type.charCodeAt(2), + type.charCodeAt(3), + ]; + } + } + var hdlr = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x76, 0x69, 0x64, 0x65, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x00, + ]); + var dref = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0c, + 0x75, 0x72, 0x6c, 0x20, + 0x00, + 0x00, 0x00, 0x01, + ]); + var stco = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]); + MP4.STTS = MP4.STSC = MP4.STCO = stco; + MP4.STSZ = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]); + MP4.VMHD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x01, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + ]); + MP4.SMHD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + ]); + MP4.STSD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01 + ]); + MP4.FTYP = MP4.box(MP4.types.ftyp, new Uint8Array([ + 0x69, 0x73, 0x6f, 0x35, + 0x00, 0x00, 0x00, 0x01, + 0x61, 0x76, 0x63, 0x31, + 0x69, 0x73, 0x6f, 0x35, + 0x64, 0x61, 0x73, 0x68, + ])); + MP4.STYP = MP4.box(MP4.types.styp, new Uint8Array([ + 0x6d, 0x73, 0x64, 0x68, + 0x00, 0x00, 0x00, 0x00, + 0x6d, 0x73, 0x64, 0x68, + 0x6d, 0x73, 0x69, 0x78, + ])); + MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref)); + MP4.HDLR = MP4.box(MP4.types.hdlr, hdlr); + }; + MP4.box = function (type) { + var payload = []; + for (var _i = 1; _i < arguments.length; _i++) { + payload[_i - 1] = arguments[_i]; + } + var size = 8; + for (var _a = 0, payload_1 = payload; _a < payload_1.length; _a++) { + var p = payload_1[_a]; + size += p.byteLength; + } + var result = new Uint8Array(size); + result[0] = (size >> 24) & 0xff; + result[1] = (size >> 16) & 0xff; + result[2] = (size >> 8) & 0xff; + result[3] = size & 0xff; + result.set(type, 4); + size = 8; + for (var _b = 0, payload_2 = payload; _b < payload_2.length; _b++) { + var box = payload_2[_b]; + result.set(box, size); + size += box.byteLength; + } + return result; + }; + MP4.mdat = function (data) { + return MP4.box(MP4.types.mdat, data); + }; + MP4.mdhd = function (timescale) { + return MP4.box(MP4.types.mdhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (timescale >> 24) & 0xFF, + (timescale >> 16) & 0xFF, + (timescale >> 8) & 0xFF, + timescale & 0xFF, + 0x00, 0x00, 0x00, 0x00, + 0x55, 0xc4, + 0x00, 0x00, + ])); + }; + MP4.mdia = function (track) { + return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale), MP4.HDLR, MP4.minf(track)); + }; + MP4.mfhd = function (sequenceNumber) { + return MP4.box(MP4.types.mfhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (sequenceNumber >> 24), + (sequenceNumber >> 16) & 0xFF, + (sequenceNumber >> 8) & 0xFF, + sequenceNumber & 0xFF, + ])); + }; + MP4.minf = function (track) { + return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track)); + }; + MP4.moof = function (sn, baseMediaDecodeTime, track) { + return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime)); + }; + MP4.moov = function (tracks, duration, timescale) { + var boxes = []; + for (var _i = 0, tracks_1 = tracks; _i < tracks_1.length; _i++) { + var track = tracks_1[_i]; + boxes.push(MP4.trak(track)); + } + return MP4.box.apply(MP4, [MP4.types.moov, MP4.mvhd(timescale, duration), MP4.mvex(tracks)].concat(boxes)); + }; + MP4.mvhd = function (timescale, duration) { + var bytes = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (timescale >> 24) & 0xFF, + (timescale >> 16) & 0xFF, + (timescale >> 8) & 0xFF, + timescale & 0xFF, + (duration >> 24) & 0xFF, + (duration >> 16) & 0xFF, + (duration >> 8) & 0xFF, + duration & 0xFF, + 0x00, 0x01, 0x00, 0x00, + 0x01, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, + ]); + return MP4.box(MP4.types.mvhd, bytes); + }; + MP4.mvex = function (tracks) { + var boxes = []; + for (var _i = 0, tracks_2 = tracks; _i < tracks_2.length; _i++) { + var track = tracks_2[_i]; + boxes.push(MP4.trex(track)); + } + return MP4.box.apply(MP4, [MP4.types.mvex].concat(boxes, [MP4.trep()])); + }; + MP4.trep = function () { + return MP4.box(MP4.types.trep, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + ])); + }; + MP4.stbl = function (track) { + return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO)); + }; + MP4.avc1 = function (track) { + var sps = []; + var pps = []; + for (var _i = 0, _a = track.sps; _i < _a.length; _i++) { + var data = _a[_i]; + var len = data.byteLength; + sps.push((len >>> 8) & 0xFF); + sps.push((len & 0xFF)); + sps = sps.concat(Array.prototype.slice.call(data)); + } + for (var _b = 0, _c = track.pps; _b < _c.length; _b++) { + var data = _c[_b]; + var len = data.byteLength; + pps.push((len >>> 8) & 0xFF); + pps.push((len & 0xFF)); + pps = pps.concat(Array.prototype.slice.call(data)); + } + var avcc = MP4.box(MP4.types.avcC, new Uint8Array([ + 0x01, + sps[3], + sps[4], + sps[5], + 0xfc | 3, + 0xE0 | track.sps.length, + ].concat(sps).concat([ + track.pps.length, + ]).concat(pps))); + var width = track.width; + var height = track.height; + return MP4.box(MP4.types.avc1, new Uint8Array([ + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x01, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + (width >> 8) & 0xFF, + width & 0xff, + (height >> 8) & 0xFF, + height & 0xff, + 0x00, 0x48, 0x00, 0x00, + 0x00, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, + 0x12, + 0x62, 0x69, 0x6E, 0x65, + 0x6C, 0x70, 0x72, 0x6F, + 0x2E, 0x72, 0x75, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x18, + 0x11, 0x11 + ]), avcc, MP4.box(MP4.types.btrt, new Uint8Array([ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2d, 0xc6, 0xc0, + 0x00, 0x2d, 0xc6, 0xc0, + ]))); + }; + MP4.stsd = function (track) { + return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track)); + }; + MP4.tkhd = function (track) { + var id = track.id; + var width = track.width; + var height = track.height; + return MP4.box(MP4.types.tkhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (id >> 24) & 0xFF, + (id >> 16) & 0xFF, + (id >> 8) & 0xFF, + id & 0xFF, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + (track.type === 'audio' ? 0x01 : 0x00), 0x00, + 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, + (width >> 8) & 0xFF, + width & 0xFF, + 0x00, 0x00, + (height >> 8) & 0xFF, + height & 0xFF, + 0x00, 0x00, + ])); + }; + MP4.traf = function (track, baseMediaDecodeTime) { + var id = track.id; + return MP4.box(MP4.types.traf, MP4.box(MP4.types.tfhd, new Uint8Array([ + 0x00, + 0x02, 0x00, 0x00, + (id >> 24), + (id >> 16) & 0XFF, + (id >> 8) & 0XFF, + (id & 0xFF), + ])), MP4.box(MP4.types.tfdt, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (baseMediaDecodeTime >> 24), + (baseMediaDecodeTime >> 16) & 0XFF, + (baseMediaDecodeTime >> 8) & 0XFF, + (baseMediaDecodeTime & 0xFF), + ])), MP4.trun(track, 16 + + 16 + + 8 + + 16 + + 8 + + 8)); + }; + MP4.trak = function (track) { + track.duration = track.duration || 0xffffffff; + return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track)); + }; + MP4.trex = function (track) { + var id = track.id; + return MP4.box(MP4.types.trex, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (id >> 24), + (id >> 16) & 0XFF, + (id >> 8) & 0XFF, + (id & 0xFF), + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + ])); + }; + MP4.trun = function (track, offset) { + var samples = track.samples || []; + var len = samples.length; + var additionalLen = track.isKeyFrame ? 4 : 0; + var arraylen = 12 + additionalLen + (4 * len); + var array = new Uint8Array(arraylen); + offset += 8 + arraylen; + array.set([ + 0x00, + 0x00, 0x02, (track.isKeyFrame ? 0x05 : 0x01), + (len >>> 24) & 0xFF, + (len >>> 16) & 0xFF, + (len >>> 8) & 0xFF, + len & 0xFF, + (offset >>> 24) & 0xFF, + (offset >>> 16) & 0xFF, + (offset >>> 8) & 0xFF, + offset & 0xFF, + ], 0); + if (track.isKeyFrame) { + array.set([ + 0x00, 0x00, 0x00, 0x00, + ], 12); + } + for (var i = 0; i < len; i++) { + var sample = samples[i]; + var size = sample.size; + array.set([ + (size >>> 24) & 0xFF, + (size >>> 16) & 0xFF, + (size >>> 8) & 0xFF, + size & 0xFF, + ], 12 + additionalLen + 4 * i); + } + return MP4.box(MP4.types.trun, array); + }; + MP4.initSegment = function (tracks, duration, timescale) { + if (!MP4.initalized) { + MP4.init(); + } + var movie = MP4.moov(tracks, duration, timescale); + var result = new Uint8Array(MP4.FTYP.byteLength + movie.byteLength); + result.set(MP4.FTYP); + result.set(movie, MP4.FTYP.byteLength); + return result; + }; + MP4.fragmentSegment = function (sn, baseMediaDecodeTime, track, payload) { + var moof = MP4.moof(sn, baseMediaDecodeTime, track); + var mdat = MP4.mdat(payload); + var result = new Uint8Array(MP4.STYP.byteLength + moof.byteLength + mdat.byteLength); + result.set(MP4.STYP); + result.set(moof, MP4.STYP.byteLength); + result.set(mdat, MP4.STYP.byteLength + moof.byteLength); + return result; + }; + return MP4; +}()); +MP4.types = {}; +MP4.initalized = false; +exports.default = MP4; + +},{}],5:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var NALU = (function () { + function NALU(data) { + this.data = data; + this.nri = (data[0] & 0x60) >> 5; + this.ntype = data[0] & 0x1f; + } + Object.defineProperty(NALU, "NDR", { + get: function () { return 1; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "IDR", { + get: function () { return 5; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "SEI", { + get: function () { return 6; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "SPS", { + get: function () { return 7; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "PPS", { + get: function () { return 8; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "TYPES", { + get: function () { + return _a = {}, + _a[NALU.IDR] = 'IDR', + _a[NALU.SEI] = 'SEI', + _a[NALU.SPS] = 'SPS', + _a[NALU.PPS] = 'PPS', + _a[NALU.NDR] = 'NDR', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + NALU.type = function (nalu) { + if (nalu.ntype in NALU.TYPES) { + return NALU.TYPES[nalu.ntype]; + } + else { + return 'UNKNOWN'; + } + }; + NALU.prototype.type = function () { + return this.ntype; + }; + NALU.prototype.isKeyframe = function () { + return this.ntype === NALU.IDR; + }; + NALU.prototype.getSize = function () { + return 4 + this.data.byteLength; + }; + NALU.prototype.getData = function () { + var result = new Uint8Array(this.getSize()); + var view = new DataView(result.buffer); + view.setUint32(0, this.getSize() - 4); + result.set(this.data, 4); + return result; + }; + return NALU; +}()); +exports.default = NALU; +},{}],6:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var BitStream = (function () { + function BitStream(data) { + this.data = data; + this.index = 0; + this.bitLength = data.byteLength * 8; + } + Object.defineProperty(BitStream.prototype, "bitsAvailable", { + get: function () { + return this.bitLength - this.index; + }, + enumerable: true, + configurable: true + }); + BitStream.prototype.skipBits = function (size) { + if (this.bitsAvailable < size) { + throw new Error('no bytes available'); + } + this.index += size; + }; + BitStream.prototype.readBits = function (size) { + var result = this.getBits(size, this.index); + return result; + }; + BitStream.prototype.getBits = function (size, offsetBits, moveIndex) { + if (moveIndex === void 0) { moveIndex = true; } + if (this.bitsAvailable < size) { + throw new Error('no bytes available'); + } + var offset = offsetBits % 8; + var byte = this.data[(offsetBits / 8) | 0] & (0xff >>> offset); + var bits = 8 - offset; + if (bits >= size) { + if (moveIndex) { + this.index += size; + } + return byte >> (bits - size); + } + else { + if (moveIndex) { + this.index += bits; + } + var nextSize = size - bits; + return (byte << nextSize) | this.getBits(nextSize, offsetBits + bits, moveIndex); + } + }; + BitStream.prototype.skipLZ = function () { + var leadingZeroCount; + for (leadingZeroCount = 0; leadingZeroCount < this.bitLength - this.index; ++leadingZeroCount) { + if (0 !== this.getBits(1, this.index + leadingZeroCount, false)) { + this.index += leadingZeroCount; + return leadingZeroCount; + } + } + return leadingZeroCount; + }; + BitStream.prototype.skipUEG = function () { + this.skipBits(1 + this.skipLZ()); + }; + BitStream.prototype.skipEG = function () { + this.skipBits(1 + this.skipLZ()); + }; + BitStream.prototype.readUEG = function () { + var prefix = this.skipLZ(); + return this.readBits(prefix + 1) - 1; + }; + BitStream.prototype.readEG = function () { + var value = this.readUEG(); + if (0x01 & value) { + return (1 + value) >>> 1; + } + else { + return -1 * (value >>> 1); + } + }; + BitStream.prototype.readBoolean = function () { + return 1 === this.readBits(1); + }; + BitStream.prototype.readUByte = function () { + return this.readBits(8); + }; + BitStream.prototype.readUShort = function () { + return this.readBits(16); + }; + BitStream.prototype.readUInt = function () { + return this.readBits(32); + }; + return BitStream; +}()); +exports.default = BitStream; -function VideoPlayer(canvas) { - this.canvas = canvas; - this.ctx = canvas.getContext("2d"); - this.status_cb = null; - this.error_cb = null; - this.ratio = null; - this.filters = false; - this._reset() +},{}],7:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var logger; +var errorLogger; +function setLogger(log, error) { + logger = log; + errorLogger = error != null ? error : log; } - -VideoPlayer.prototype._reset = function() { - this.start = null; - this.frames = 0; - this.image_data = null; - this.running = false; - this.pending_image_data = null; +exports.setLogger = setLogger; +function isEnable() { + return logger != null; } - - -/** @expose */ -VideoPlayer.prototype.set_status_callback = function(callback) { - this.status_cb = callback; -}; - -VideoPlayer.prototype._set_status = function() { - if (this.status_cb) { - this.status_cb.apply(this.status_cb, arguments); +exports.isEnable = isEnable; +function log(message) { + var optionalParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + optionalParams[_i - 1] = arguments[_i]; } -}; - -/** @expose */ -VideoPlayer.prototype.set_error_callback = function(callback) { - this.error_cb = callback; -}; - -VideoPlayer.prototype._set_error = function(error, message) { - if (this.error_cb) { - this.error_cb(error, message); + if (logger) { + logger.apply(void 0, [message].concat(optionalParams)); } -}; - -VideoPlayer.prototype._display_image = function(image) { - if (!this.start) { - this.start = new Date(); - this._set_status("playing"); - } else { - this.frames += 1; - var duration = (new Date()) - this.start; - if (duration > 1000) { - this._set_status("fps", this.frames / (duration * 0.001)); - } +} +exports.log = log; +function error(message) { + var optionalParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + optionalParams[_i - 1] = arguments[_i]; } - - var w = image.get_width(); - var h = image.get_height(); - if (w != this.canvas.width || h != this.canvas.height || !this.image_data) { - this.canvas.width = w; - this.canvas.height = h; - this.image_data = this.ctx.createImageData(w, h); - var image_data = this.image_data.data; - for (var i=0; i<w*h; i++) { - image_data[i*4+3] = 255; - } + if (errorLogger) { + errorLogger.apply(void 0, [message].concat(optionalParams)); } +} +exports.error = error; - var that = this; - image.display(this.image_data, function(display_image_data) { - if (window.requestAnimationFrame) { - that.pending_image_data = display_image_data; - window.requestAnimationFrame(function() { - if (that.pending_image_data) { - that.ctx.putImageData(that.pending_image_data, 0, 0); - that.pending_image_data = null; +},{}],8:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var NALU_1 = require("./NALU"); +var VideoStreamBuffer = (function () { + function VideoStreamBuffer() { + } + VideoStreamBuffer.prototype.clear = function () { + this.buffer = undefined; + }; + VideoStreamBuffer.prototype.append = function (value) { + var nextNalHeader = function (b) { + var i = 3; + return function () { + var count = 0; + for (; i < b.length; i++) { + switch (b[i]) { + case 0: + count++; + break; + case 1: + if (count === 3) { + return i - 3; + } + default: + count = 0; + } } - }); - } else { - that.ctx.putImageData(display_image_data, 0, 0); - } - }); -}; - - - - -VideoPlayer.prototype._handle_onload = function(peer, decodedURI, uri) { - var that = this; - this._set_status("initializing"); - - var decoder = new libde265.Decoder(); - decoder.set_image_callback(function(image) { - that._display_image(image); - image.free(); - }); - var ratio = null; - var filters = false; - - - var decode = function(pckg) { - if (!that.running) { return; } - // console.log("PACKAGE", pckg) - var err; - if (pckg == null) { - return; - } else { - try { - var tmp = pckg - err = decoder.push_data(tmp); - } catch(e) { - console.log(e); - err = decoder.flush(); return; + }; + }; + var result = []; + var buffer; + if (this.buffer) { + if (value[3] === 1 && value[2] === 0 && value[1] === 0 && value[0] === 0) { + result.push(new NALU_1.default(this.buffer.subarray(4))); + buffer = Uint8Array.from(value); + } + } + if (buffer == null) { + buffer = this.mergeBuffer(value); + } + var lastIndex = 0; + var f = nextNalHeader(buffer); + for (var index = f(); index != null; index = f()) { + result.push(new NALU_1.default(buffer.subarray(lastIndex + 4, index))); + lastIndex = index; + } + this.buffer = buffer.subarray(lastIndex); + return result; + }; + VideoStreamBuffer.prototype.mergeBuffer = function (value) { + if (this.buffer == null) { + return Uint8Array.from(value); + } + else { + var newBuffer = new Uint8Array(this.buffer.byteLength + value.length); + if (this.buffer.byteLength > 0) { + newBuffer.set(this.buffer, 0); } + newBuffer.set(value, this.buffer.byteLength); + return newBuffer; } - if (!libde265.de265_isOK(err)) { - that._set_error(err, libde265.de265_get_error_text(err)); + }; + return VideoStreamBuffer; +}()); +exports.default = VideoStreamBuffer; + +},{"./NALU":5}],9:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_remuxer_1 = require("./h264-remuxer"); +var mp4_generator_1 = require("./mp4-generator"); +var debug = require("./util/debug"); +var nalu_stream_buffer_1 = require("./util/nalu-stream-buffer"); +exports.mimeType = 'video/mp4; codecs="avc1.42E01E"'; +var VideoConverter = (function () { + function VideoConverter(element, fps, fpf) { + if (fps === void 0) { fps = 60; } + if (fpf === void 0) { fpf = fps; } + this.element = element; + this.fps = fps; + this.fpf = fpf; + this.receiveBuffer = new nalu_stream_buffer_1.default(); + this.queue = []; + if (!MediaSource || !MediaSource.isTypeSupported(exports.mimeType)) { + throw new Error("Your browser is not supported: " + exports.mimeType); + } + this.reset(); + } + Object.defineProperty(VideoConverter, "errorNotes", { + get: function () { + return _a = {}, + _a[MediaError.MEDIA_ERR_ABORTED] = 'fetching process aborted by user', + _a[MediaError.MEDIA_ERR_NETWORK] = 'error occurred when downloading', + _a[MediaError.MEDIA_ERR_DECODE] = 'error occurred when decoding', + _a[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED] = 'audio/video not supported', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + VideoConverter.prototype.setup = function () { + var _this = this; + this.mediaReadyPromise = new Promise(function (resolve, _reject) { + _this.mediaSource.addEventListener('sourceopen', function () { + debug.log("Media Source opened."); + _this.sourceBuffer = _this.mediaSource.addSourceBuffer(exports.mimeType); + _this.sourceBuffer.addEventListener('updateend', function () { + debug.log(" SourceBuffer updateend"); + debug.log(" sourceBuffer.buffered.length=" + _this.sourceBuffer.buffered.length); + for (var i = 0, len = _this.sourceBuffer.buffered.length; i < len; i++) { + debug.log(" sourceBuffer.buffered [" + i + "]: " + + (_this.sourceBuffer.buffered.start(i) + ", " + _this.sourceBuffer.buffered.end(i))); + } + debug.log(" mediasource.duration=" + _this.mediaSource.duration); + debug.log(" mediasource.readyState=" + _this.mediaSource.readyState); + debug.log(" video.duration=" + _this.element.duration); + debug.log(" video.buffered.length=" + _this.element.buffered.length); + if (debug.isEnable()) { + for (var i = 0, len = _this.element.buffered.length; i < len; i++) { + debug.log(" video.buffered [" + i + "]: " + _this.element.buffered.start(i) + ", " + _this.element.buffered.end(i)); + } + } + debug.log(" video.currentTime=" + _this.element.currentTime); + debug.log(" video.readyState=" + _this.element.readyState); + var data = _this.queue.shift(); + if (data) { + _this.writeBuffer(data); + } + }); + _this.sourceBuffer.addEventListener('error', function () { + debug.error(' SourceBuffer errored!'); + }); + _this.mediaReady = true; + resolve(); + }, false); + _this.mediaSource.addEventListener('sourceclose', function () { + debug.log("Media Source closed."); + _this.mediaReady = false; + }, false); + _this.element.src = URL.createObjectURL(_this.mediaSource); + }); + return this.mediaReadyPromise; + }; + VideoConverter.prototype.play = function () { + var _this = this; + if (!this.element.paused) { return; } - - if (that.ratio !== ratio) { - decoder.set_framerate_ratio(that.ratio); - ratio = that.ratio; + if (this.mediaReady && this.element.readyState >= 2) { + this.element.play(); } - - if (that.filters !== filters) { - decoder.disable_filters(that.filters); - filters = that.filters; + else { + var handler_1 = function () { + _this.play(); + _this.element.removeEventListener('canplaythrough', handler_1); + }; + this.element.addEventListener('canplaythrough', handler_1); } - - /** - * Here's the bug - * For some reason the decode function evaluates cbErr - * to number 13 which is the case number for waiting for input data - */ - decoder.decode(function(cbErr) { - // console.log("paramErr SHOULD BE 0, BUT IT'S", cbErr) - switch(cbErr) { - case libde265.DE265_ERROR_WAITING_FOR_INPUT_DATA: - // console.log("DE265_ERROR_WAITING_FOR_INPUT_DATA"); - return; - default: - if (!libde265.de265_isOK(cbErr)) { - that._set_error(err, libde265.de265_get_error_text(paramErr)); - return; - } + }; + VideoConverter.prototype.pause = function () { + if (this.element.paused) { + return; + } + this.element.pause(); + }; + VideoConverter.prototype.reset = function () { + this.receiveBuffer.clear(); + if (this.mediaSource && this.mediaSource.readyState === 'open') { + this.mediaSource.duration = 0; + this.mediaSource.endOfStream(); + } + this.mediaSource = new MediaSource(); + this.remuxer = new h264_remuxer_1.default(this.fps, this.fpf, this.fps * 60); + this.mediaReady = false; + this.mediaReadyPromise = undefined; + this.queue = []; + this.isFirstFrame = true; + this.setup(); + }; + VideoConverter.prototype.appendRawData = function (data) { + var nalus = this.receiveBuffer.append(data); + for (var _i = 0, nalus_1 = nalus; _i < nalus_1.length; _i++) { + var nalu = nalus_1[_i]; + var ret = this.remuxer.remux(nalu); + if (ret) { + this.writeFragment(ret[0], ret[1]); } - - if (decoder.has_more()) { - // console.log("has more"); - return; + } + }; + VideoConverter.prototype.writeFragment = function (dts, pay) { + var remuxer = this.remuxer; + if (remuxer.mp4track.isKeyFrame) { + this.writeBuffer(mp4_generator_1.default.initSegment([remuxer.mp4track], Infinity, remuxer.timescale)); + } + if (pay && pay.byteLength) { + debug.log(" Put fragment: " + remuxer.seqNum + ", frames=" + remuxer.mp4track.samples.length + ", size=" + pay.byteLength); + var fragment = mp4_generator_1.default.fragmentSegment(remuxer.seqNum, dts, remuxer.mp4track, pay); + this.writeBuffer(fragment); + remuxer.flush(); + } + else { + debug.error("Nothing payload!"); + } + }; + VideoConverter.prototype.writeBuffer = function (data) { + var _this = this; + if (this.mediaReady) { + if (this.sourceBuffer.updating) { + this.queue.push(data); } + else { + this.doAppend(data); + } + } + else { + this.queue.push(data); + if (this.mediaReadyPromise) { + this.mediaReadyPromise.then(function () { + if (!_this.sourceBuffer.updating) { + var d = _this.queue.shift(); + if (d) { + _this.writeBuffer(d); + } + } + }); + this.mediaReadyPromise = undefined; + } + } + }; + VideoConverter.prototype.doAppend = function (data) { + var error = this.element.error; + if (error) { + debug.error("MSE Error Occured: " + VideoConverter.errorNotes[error.code]); + this.element.pause(); + if (this.mediaSource.readyState === 'open') { + this.mediaSource.endOfStream(); + } + } + else { + try { + this.sourceBuffer.appendBuffer(data); + debug.log(" appended buffer: size=" + data.byteLength); + } + catch (err) { + debug.error("MSE Error occured while appending buffer. " + err.name + ": " + err.message); + } + } + }; + return VideoConverter; +}()); +exports.default = VideoConverter; - decoder.free(); - that.stop(); - // console.log("SHOULD LOG THIS"); - }); - } - - - peer.bind(decodedURI, (latency, streampckg, pckg) => { - if(pckg[0] === 3){ - decode(pckg[5]); - }; - }) - // Start the transaction - peer.send("get_stream", (uri, 10, 0, uri)); -}; - -/** @expose */ -VideoPlayer.prototype.playback = function(peer, decodedURI, uri) { - this._reset(); - - console.log(peer); - console.log(uri) - this._handle_onload(peer, decodedURI, uri) - this._set_status("loading"); - this.running = true; -}; - -/** @expose */ -VideoPlayer.prototype.stop = function() { - this._set_status("stopped"); - this._reset(); -}; - -/** @expose */ -VideoPlayer.prototype.set_framerate_ratio = function(ratio) { - this.ratio = ratio; -}; - -/** @expose */ -VideoPlayer.prototype.disable_filters = function(disable) { - this.filters = disable; -}; - -module.exports = VideoPlayer; -},{}],3:[function(require,module,exports){ +},{"./h264-remuxer":3,"./mp4-generator":4,"./util/debug":7,"./util/nalu-stream-buffer":8}],10:[function(require,module,exports){ 'use strict' var DuplexStream = require('readable-stream').Duplex , util = require('util') @@ -801,7 +1960,7 @@ BufferList.prototype._match = function(offset, search) { module.exports = BufferList -},{"readable-stream":21,"safe-buffer":22,"util":44}],4:[function(require,module,exports){ +},{"readable-stream":28,"safe-buffer":29,"util":51}],11:[function(require,module,exports){ (function (Buffer){ // Copyright Joyent, Inc. and other Node contributors. // @@ -912,7 +2071,7 @@ function objectToString(o) { } }).call(this,{"isBuffer":require("../../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js")}) -},{"../../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js":38}],5:[function(require,module,exports){ +},{"../../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js":45}],12:[function(require,module,exports){ if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { @@ -937,14 +2096,14 @@ if (typeof Object.create === 'function') { } } -},{}],6:[function(require,module,exports){ +},{}],13:[function(require,module,exports){ var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; -},{}],7:[function(require,module,exports){ +},{}],14:[function(require,module,exports){ 'use strict' var Buffer = require('safe-buffer').Buffer @@ -1031,7 +2190,7 @@ function msgpack (options) { module.exports = msgpack -},{"./lib/decoder":8,"./lib/encoder":9,"./lib/streams":10,"assert":29,"bl":3,"safe-buffer":22}],8:[function(require,module,exports){ +},{"./lib/decoder":15,"./lib/encoder":16,"./lib/streams":17,"assert":36,"bl":10,"safe-buffer":29}],15:[function(require,module,exports){ 'use strict' var bl = require('bl') @@ -1469,7 +2628,7 @@ module.exports = function buildDecode (decodingTypes) { module.exports.IncompleteBufferError = IncompleteBufferError -},{"bl":3,"util":44}],9:[function(require,module,exports){ +},{"bl":10,"util":51}],16:[function(require,module,exports){ 'use strict' var Buffer = require('safe-buffer').Buffer @@ -1814,7 +2973,7 @@ function encodeFloat (obj, forceFloat64) { return buf } -},{"bl":3,"safe-buffer":22}],10:[function(require,module,exports){ +},{"bl":10,"safe-buffer":29}],17:[function(require,module,exports){ 'use strict' var Transform = require('readable-stream').Transform @@ -1906,7 +3065,7 @@ Decoder.prototype._transform = function (buf, enc, done) { module.exports.decoder = Decoder module.exports.encoder = Encoder -},{"bl":3,"inherits":5,"readable-stream":21}],11:[function(require,module,exports){ +},{"bl":10,"inherits":12,"readable-stream":28}],18:[function(require,module,exports){ (function (process){ 'use strict'; @@ -1955,7 +3114,7 @@ function nextTick(fn, arg1, arg2, arg3) { }).call(this,require('_process')) -},{"_process":40}],12:[function(require,module,exports){ +},{"_process":47}],19:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -2087,7 +3246,7 @@ Duplex.prototype._destroy = function (err, cb) { pna.nextTick(cb, err); }; -},{"./_stream_readable":14,"./_stream_writable":16,"core-util-is":4,"inherits":5,"process-nextick-args":11}],13:[function(require,module,exports){ +},{"./_stream_readable":21,"./_stream_writable":23,"core-util-is":11,"inherits":12,"process-nextick-args":18}],20:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -2135,7 +3294,7 @@ function PassThrough(options) { PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; -},{"./_stream_transform":15,"core-util-is":4,"inherits":5}],14:[function(require,module,exports){ +},{"./_stream_transform":22,"core-util-is":11,"inherits":12}],21:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -3157,7 +4316,7 @@ function indexOf(xs, x) { return -1; } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":12,"./internal/streams/BufferList":17,"./internal/streams/destroy":18,"./internal/streams/stream":19,"_process":40,"core-util-is":4,"events":36,"inherits":5,"isarray":6,"process-nextick-args":11,"safe-buffer":22,"string_decoder/":20,"util":34}],15:[function(require,module,exports){ +},{"./_stream_duplex":19,"./internal/streams/BufferList":24,"./internal/streams/destroy":25,"./internal/streams/stream":26,"_process":47,"core-util-is":11,"events":43,"inherits":12,"isarray":13,"process-nextick-args":18,"safe-buffer":29,"string_decoder/":27,"util":41}],22:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -3372,7 +4531,7 @@ function done(stream, er, data) { return stream.push(null); } -},{"./_stream_duplex":12,"core-util-is":4,"inherits":5}],16:[function(require,module,exports){ +},{"./_stream_duplex":19,"core-util-is":11,"inherits":12}],23:[function(require,module,exports){ (function (process,global,setImmediate){ // Copyright Joyent, Inc. and other Node contributors. // @@ -4062,7 +5221,7 @@ Writable.prototype._destroy = function (err, cb) { cb(err); }; }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("timers").setImmediate) -},{"./_stream_duplex":12,"./internal/streams/destroy":18,"./internal/streams/stream":19,"_process":40,"core-util-is":4,"inherits":5,"process-nextick-args":11,"safe-buffer":22,"timers":41,"util-deprecate":23}],17:[function(require,module,exports){ +},{"./_stream_duplex":19,"./internal/streams/destroy":25,"./internal/streams/stream":26,"_process":47,"core-util-is":11,"inherits":12,"process-nextick-args":18,"safe-buffer":29,"timers":48,"util-deprecate":30}],24:[function(require,module,exports){ 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -4142,7 +5301,7 @@ if (util && util.inspect && util.inspect.custom) { return this.constructor.name + ' ' + obj; }; } -},{"safe-buffer":22,"util":34}],18:[function(require,module,exports){ +},{"safe-buffer":29,"util":41}],25:[function(require,module,exports){ 'use strict'; /*<replacement>*/ @@ -4217,10 +5376,10 @@ module.exports = { destroy: destroy, undestroy: undestroy }; -},{"process-nextick-args":11}],19:[function(require,module,exports){ +},{"process-nextick-args":18}],26:[function(require,module,exports){ module.exports = require('events').EventEmitter; -},{"events":36}],20:[function(require,module,exports){ +},{"events":43}],27:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -4517,7 +5676,7 @@ function simpleWrite(buf) { function simpleEnd(buf) { return buf && buf.length ? this.write(buf) : ''; } -},{"safe-buffer":22}],21:[function(require,module,exports){ +},{"safe-buffer":29}],28:[function(require,module,exports){ exports = module.exports = require('./lib/_stream_readable.js'); exports.Stream = exports; exports.Readable = exports; @@ -4526,7 +5685,7 @@ exports.Duplex = require('./lib/_stream_duplex.js'); exports.Transform = require('./lib/_stream_transform.js'); exports.PassThrough = require('./lib/_stream_passthrough.js'); -},{"./lib/_stream_duplex.js":12,"./lib/_stream_passthrough.js":13,"./lib/_stream_readable.js":14,"./lib/_stream_transform.js":15,"./lib/_stream_writable.js":16}],22:[function(require,module,exports){ +},{"./lib/_stream_duplex.js":19,"./lib/_stream_passthrough.js":20,"./lib/_stream_readable.js":21,"./lib/_stream_transform.js":22,"./lib/_stream_writable.js":23}],29:[function(require,module,exports){ /* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') var Buffer = buffer.Buffer @@ -4590,7 +5749,7 @@ SafeBuffer.allocUnsafeSlow = function (size) { return buffer.SlowBuffer(size) } -},{"buffer":35}],23:[function(require,module,exports){ +},{"buffer":42}],30:[function(require,module,exports){ (function (global){ /** @@ -4661,7 +5820,7 @@ function config (name) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],24:[function(require,module,exports){ +},{}],31:[function(require,module,exports){ /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX @@ -4687,7 +5846,7 @@ function bytesToUuid(buf, offset) { module.exports = bytesToUuid; -},{}],25:[function(require,module,exports){ +},{}],32:[function(require,module,exports){ // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() // and inconsistent support for the `crypto` API. We do the best we can via @@ -4723,7 +5882,7 @@ if (getRandomValues) { }; } -},{}],26:[function(require,module,exports){ +},{}],33:[function(require,module,exports){ var rng = require('./lib/rng'); var bytesToUuid = require('./lib/bytesToUuid'); @@ -4754,7 +5913,7 @@ function v4(options, buf, offset) { module.exports = v4; -},{"./lib/bytesToUuid":24,"./lib/rng":25}],27:[function(require,module,exports){ +},{"./lib/bytesToUuid":31,"./lib/rng":32}],34:[function(require,module,exports){ (function (Buffer){ const msgpack = require('msgpack5')() , encode = msgpack.encode @@ -4767,9 +5926,8 @@ const kConnected = 2; const kDisconnected = 3; // Generate a unique id for this webservice -let cpp_my_uuid = uuidv4(); -console.log(cpp_my_uuid) -let my_uuid = uuidParser.parse(cpp_my_uuid) +let uuid = uuidv4(); +let my_uuid = uuidParser.parse(uuid) my_uuid = new Uint8Array(my_uuid); // my_uuid[0] = 44; // console.log(my_uuid) @@ -5038,16 +6196,13 @@ Peer.prototype.on = function(evt, f) { * Returns a UUID in a string form */ Peer.prototype.getUuid = function() { - const digits = "0123456789abcdef"; - let uuid = ""; - - return cpp_my_uuid; + return uuid; } module.exports = Peer; }).call(this,require("buffer").Buffer) -},{"./utils/uuidParser":28,"buffer":35,"msgpack5":7,"uuid/v4":26}],28:[function(require,module,exports){ +},{"./utils/uuidParser":35,"buffer":42,"msgpack5":14,"uuid/v4":33}],35:[function(require,module,exports){ // Maps for number <-> hex string conversion var _byteToHex = []; var _hexToByte = {}; @@ -5102,7 +6257,7 @@ module.exports = { parse: parse, unparse: unparse }; -},{}],29:[function(require,module,exports){ +},{}],36:[function(require,module,exports){ (function (global){ 'use strict'; @@ -5612,16 +6767,16 @@ var objectKeys = Object.keys || function (obj) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"object-assign":39,"util/":32}],30:[function(require,module,exports){ -arguments[4][5][0].apply(exports,arguments) -},{"dup":5}],31:[function(require,module,exports){ +},{"object-assign":46,"util/":39}],37:[function(require,module,exports){ +arguments[4][12][0].apply(exports,arguments) +},{"dup":12}],38:[function(require,module,exports){ module.exports = function isBuffer(arg) { return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function'; } -},{}],32:[function(require,module,exports){ +},{}],39:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -6211,7 +7366,7 @@ function hasOwnProperty(obj, prop) { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":31,"_process":40,"inherits":30}],33:[function(require,module,exports){ +},{"./support/isBuffer":38,"_process":47,"inherits":37}],40:[function(require,module,exports){ 'use strict' exports.byteLength = byteLength @@ -6365,9 +7520,9 @@ function fromByteArray (uint8) { return parts.join('') } -},{}],34:[function(require,module,exports){ +},{}],41:[function(require,module,exports){ -},{}],35:[function(require,module,exports){ +},{}],42:[function(require,module,exports){ (function (Buffer){ /*! * The buffer module from node.js, for the browser. @@ -8170,7 +9325,7 @@ var hexSliceLookupTable = (function () { })() }).call(this,require("buffer").Buffer) -},{"base64-js":33,"buffer":35,"ieee754":37}],36:[function(require,module,exports){ +},{"base64-js":40,"buffer":42,"ieee754":44}],43:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -8695,7 +9850,7 @@ function functionBindPolyfill(context) { }; } -},{}],37:[function(require,module,exports){ +},{}],44:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = (nBytes * 8) - mLen - 1 @@ -8781,7 +9936,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],38:[function(require,module,exports){ +},{}],45:[function(require,module,exports){ /*! * Determine if an object is a Buffer * @@ -8804,7 +9959,7 @@ function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } -},{}],39:[function(require,module,exports){ +},{}],46:[function(require,module,exports){ /* object-assign (c) Sindre Sorhus @@ -8896,7 +10051,7 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) { return to; }; -},{}],40:[function(require,module,exports){ +},{}],47:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -9082,7 +10237,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],41:[function(require,module,exports){ +},{}],48:[function(require,module,exports){ (function (setImmediate,clearImmediate){ var nextTick = require('process/browser.js').nextTick; var apply = Function.prototype.apply; @@ -9161,10 +10316,10 @@ exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : delete immediateIds[id]; }; }).call(this,require("timers").setImmediate,require("timers").clearImmediate) -},{"process/browser.js":40,"timers":41}],42:[function(require,module,exports){ -arguments[4][5][0].apply(exports,arguments) -},{"dup":5}],43:[function(require,module,exports){ -arguments[4][31][0].apply(exports,arguments) -},{"dup":31}],44:[function(require,module,exports){ -arguments[4][32][0].apply(exports,arguments) -},{"./support/isBuffer":43,"_process":40,"dup":32,"inherits":42}]},{},[1]); +},{"process/browser.js":47,"timers":48}],49:[function(require,module,exports){ +arguments[4][12][0].apply(exports,arguments) +},{"dup":12}],50:[function(require,module,exports){ +arguments[4][38][0].apply(exports,arguments) +},{"dup":38}],51:[function(require,module,exports){ +arguments[4][39][0].apply(exports,arguments) +},{"./support/isBuffer":50,"_process":47,"dup":39,"inherits":49}]},{},[1]); diff --git a/web-service/public/js/index.js b/web-service/public/js/index.js index ed99d81286221f7cedd4a557242356e129715292..e616660804f1f354835cd4e656dbe5c8c1b12897 100644 --- a/web-service/public/js/index.js +++ b/web-service/public/js/index.js @@ -1,10 +1,10 @@ const Peer = require('../../server/src/peer') -const VideoPlayer = require('./lib/VideoPlayer') +const VideoConverter = require('./lib/dist/video-converter'); let current_data = {}; let peer; -let decoder; let player; +console.log(VideoConverter); /** * Validates that the user is logged in @@ -55,13 +55,13 @@ getAvailableStreams = async () => { createVideoPlayer = () => { const containerDiv = document.getElementById('container') - containerDiv.innerHTML = `<h1>Stream ${current_data.uri} is live right here!</h1><br><button onclick="renderThumbnails(); closeStream()">Go back</button> <button onclick="connectToStream()">Start Stream</button><br> + containerDiv.innerHTML = `<h1>Stream ${current_data.uri} is live right here!</h1><br> + <button onclick="renderThumbnails(); closeStream()">Go back</button> + <button onclick="connectToStream()">Start Stream</button><br> <canvas id="ftlab-stream-video" width="640" height="360"></canvas>`; containerDiv.innerHTML += '<br>' containerDiv.innerHTML += '' createPeer(); - const canvas = document.getElementById("ftlab-stream-video") - player = new VideoPlayer(canvas) console.log("PLAYER", player) connectToStream(); } @@ -148,9 +148,37 @@ createPeer = () => { connectToStream = () => { - const uri = current_data.uri - const decodedURI = decodeURIComponent(current_data.uri); - player.playback(peer, decodedURI, uri); + const element = document.getElementById('ftlab-stream-video'); + console.log(VideoConverter) + const converter = new VideoConverter.default(element, 30, 6); + + // start streaming + fetch('/h264/raw/stream').then((res) => { + if (res.body) { + const reader = res.body.getReader(); + reader.read().then(function processResult(result) { + function decode(value) { + converter.appendRawData(value); + } + + if (result.done) { + decode([]); + console.log('Video Stream is done.'); + return Promise.resolve(); + } + decode(result.value); + + return reader.read().then(processResult); + }); + converter.play(); + this.canceler = (message) => { + reader.cancel(); + console.log('Video Stream Request Canceled', message); + }; + } + }).catch((err) => { + console.error('Video Stream Request error', err); + }); } closeStream = () => { diff --git a/web-service/public/js/lib/VideoPlayer.js b/web-service/public/js/lib/VideoPlayer.js deleted file mode 100644 index c2efaa9f8fb15b823bcff709ea60d191170b115c..0000000000000000000000000000000000000000 --- a/web-service/public/js/lib/VideoPlayer.js +++ /dev/null @@ -1,201 +0,0 @@ - -/** - * VideoPlayer for our stream - * - */ - - - -function VideoPlayer(canvas) { - this.canvas = canvas; - this.ctx = canvas.getContext("2d"); - this.status_cb = null; - this.error_cb = null; - this.ratio = null; - this.filters = false; - this._reset() -} - -VideoPlayer.prototype._reset = function() { - this.start = null; - this.frames = 0; - this.image_data = null; - this.running = false; - this.pending_image_data = null; -} - - -/** @expose */ -VideoPlayer.prototype.set_status_callback = function(callback) { - this.status_cb = callback; -}; - -VideoPlayer.prototype._set_status = function() { - if (this.status_cb) { - this.status_cb.apply(this.status_cb, arguments); - } -}; - -/** @expose */ -VideoPlayer.prototype.set_error_callback = function(callback) { - this.error_cb = callback; -}; - -VideoPlayer.prototype._set_error = function(error, message) { - if (this.error_cb) { - this.error_cb(error, message); - } -}; - -VideoPlayer.prototype._display_image = function(image) { - if (!this.start) { - this.start = new Date(); - this._set_status("playing"); - } else { - this.frames += 1; - var duration = (new Date()) - this.start; - if (duration > 1000) { - this._set_status("fps", this.frames / (duration * 0.001)); - } - } - - var w = image.get_width(); - var h = image.get_height(); - if (w != this.canvas.width || h != this.canvas.height || !this.image_data) { - this.canvas.width = w; - this.canvas.height = h; - this.image_data = this.ctx.createImageData(w, h); - var image_data = this.image_data.data; - for (var i=0; i<w*h; i++) { - image_data[i*4+3] = 255; - } - } - - var that = this; - image.display(this.image_data, function(display_image_data) { - if (window.requestAnimationFrame) { - that.pending_image_data = display_image_data; - window.requestAnimationFrame(function() { - if (that.pending_image_data) { - that.ctx.putImageData(that.pending_image_data, 0, 0); - that.pending_image_data = null; - } - }); - } else { - that.ctx.putImageData(display_image_data, 0, 0); - } - }); -}; - - -VideoPlayer.prototype._handle_onload = function(peer, decodedURI, uri) { - var that = this; - this._set_status("initializing"); - - var decoder = new libde265.Decoder(); - decoder.set_image_callback(function(image) { - that._display_image(image); - image.free(); - }); - var ratio = null; - var filters = false; - - - var decode = function(pckg) { - if (!that.running) { return; } - // console.log("PACKAGE", pckg) - var err; - if (pckg == null) { - return; - } else { - try { - var tmp = pckg - err = decoder.push_data(tmp); - } catch(e) { - console.log(e); - err = decoder.flush(); - return; - } - } - if (!libde265.de265_isOK(err)) { - that._set_error(err, libde265.de265_get_error_text(err)); - return; - } - - if (that.ratio !== ratio) { - decoder.set_framerate_ratio(that.ratio); - ratio = that.ratio; - } - - if (that.filters !== filters) { - decoder.disable_filters(that.filters); - filters = that.filters; - } - - /** - * Here's the bug - * For some reason the decode function evaluates cbErr - * to number 13 which is the case number for waiting for input data - */ - decoder.decode(function(cbErr) { - // console.log("paramErr SHOULD BE 0, BUT IT'S", cbErr) - switch(cbErr) { - case libde265.DE265_ERROR_WAITING_FOR_INPUT_DATA: - // console.log("DE265_ERROR_WAITING_FOR_INPUT_DATA"); - return; - default: - if (!libde265.de265_isOK(cbErr)) { - that._set_error(err, libde265.de265_get_error_text(paramErr)); - return; - } - } - - if (decoder.has_more()) { - // console.log("has more"); - return; - } - - decoder.free(); - that.stop(); - // console.log("SHOULD LOG THIS"); - }); - } - - - peer.bind(decodedURI, (latency, streampckg, pckg) => { - if(pckg[0] === 3){ - decode(pckg[5]); - }; - }) - // Start the transaction - peer.send("get_stream", (uri, 10, 0, uri)); -}; - -/** @expose */ -VideoPlayer.prototype.playback = function(peer, decodedURI, uri) { - this._reset(); - - console.log(peer); - console.log(uri) - this._handle_onload(peer, decodedURI, uri) - this._set_status("loading"); - this.running = true; -}; - -/** @expose */ -VideoPlayer.prototype.stop = function() { - this._set_status("stopped"); - this._reset(); -}; - -/** @expose */ -VideoPlayer.prototype.set_framerate_ratio = function(ratio) { - this.ratio = ratio; -}; - -/** @expose */ -VideoPlayer.prototype.disable_filters = function(disable) { - this.filters = disable; -}; - -module.exports = VideoPlayer; \ No newline at end of file diff --git a/web-service/public/js/lib/dist/controller.d.ts b/web-service/public/js/lib/dist/controller.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9d88fa431d98d570ab9c5e6721092a7596aca00 --- /dev/null +++ b/web-service/public/js/lib/dist/controller.d.ts @@ -0,0 +1,24 @@ +export declare const mimeType = "video/mp4; codecs=\"avc1.42E01E\""; +export declare class VideoController { + private element; + private mediaSource; + private sourceBuffer; + private receiveBuffer; + private remuxer; + private mediaReady; + private mediaReadyPromise; + private queue; + private isFirstFrame; + static readonly errorNotes: { + [x: number]: string; + }; + constructor(element: HTMLVideoElement); + setup(): Promise<void>; + play(): void; + pause(): void; + reset(): void; + appendRawData(data: ArrayLike<number>): void; + private writeFragment(dts, pay); + private writeBuffer(data); + private doAppend(data); +} diff --git a/web-service/public/js/lib/dist/controller.js b/web-service/public/js/lib/dist/controller.js new file mode 100644 index 0000000000000000000000000000000000000000..b944a55db158280547417f5bf829b1e2e43cf5df --- /dev/null +++ b/web-service/public/js/lib/dist/controller.js @@ -0,0 +1,241 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_1 = require("./h264"); +var mp4_generator_1 = require("./mp4-generator"); +var NALU_1 = require("./util/NALU"); +exports.mimeType = 'video/mp4; codecs="avc1.42E01E"'; +var fps = 30; +var fpf = 6; +var VideoController = (function () { + function VideoController(element) { + this.element = element; + this.receiveBuffer = new VideoStreamBuffer(); + this.queue = []; + if (!MediaSource || !MediaSource.isTypeSupported(exports.mimeType)) { + throw new Error("Your browser is not supported: " + exports.mimeType); + } + this.reset(); + } + Object.defineProperty(VideoController, "errorNotes", { + get: function () { + return _a = {}, + _a[MediaError.MEDIA_ERR_ABORTED] = 'fetching process aborted by user', + _a[MediaError.MEDIA_ERR_NETWORK] = 'error occurred when downloading', + _a[MediaError.MEDIA_ERR_DECODE] = 'error occurred when decoding', + _a[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED] = 'audio/video not supported', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + VideoController.prototype.setup = function () { + var _this = this; + this.mediaReadyPromise = new Promise(function (resolve, _reject) { + _this.mediaSource.addEventListener('sourceopen', function () { + console.log("Media Source opened."); + _this.sourceBuffer = _this.mediaSource.addSourceBuffer(exports.mimeType); + _this.sourceBuffer.addEventListener('updateend', function () { + console.log(" SourceBuffer updateend"); + console.log(" sourceBuffer.buffered.length=" + _this.sourceBuffer.buffered.length); + for (var i = 0, len = _this.sourceBuffer.buffered.length; i < len; i++) { + console.log(" sourceBuffer.buffered [" + i + "]: " + _this.sourceBuffer.buffered.start(i) + ", " + _this.sourceBuffer.buffered.end(i)); + } + console.log(" mediasource.duration=" + _this.mediaSource.duration); + console.log(" mediasource.readyState=" + _this.mediaSource.readyState); + console.log(" video.duration=" + _this.element.duration); + console.log(" video.buffered.length=" + _this.element.buffered.length); + for (var i = 0, len = _this.element.buffered.length; i < len; i++) { + console.log(" video.buffered [" + i + "]: " + _this.element.buffered.start(i) + ", " + _this.element.buffered.end(i)); + } + console.log(" video.currentTimen=" + _this.element.currentTime); + console.log(" video.readyState=" + _this.element.readyState); + var data = _this.queue.shift(); + if (data) { + _this.writeBuffer(data); + } + }); + _this.sourceBuffer.addEventListener('error', function () { + console.error(' SourceBuffer errored!'); + }); + _this.mediaReady = true; + resolve(); + }, false); + _this.mediaSource.addEventListener('sourceclose', function () { + console.log("Media Source closed."); + _this.mediaReady = false; + }, false); + _this.element.src = URL.createObjectURL(_this.mediaSource); + }); + return this.mediaReadyPromise; + }; + VideoController.prototype.play = function () { + var _this = this; + if (!this.element.paused) { + return; + } + if (this.mediaReady && this.element.readyState >= 2) { + this.element.play(); + } + else { + var handler_1 = function () { + _this.play(); + _this.element.removeEventListener('canplaythrough', handler_1); + }; + this.element.addEventListener('canplaythrough', handler_1); + } + }; + VideoController.prototype.pause = function () { + if (this.element.paused) { + return; + } + this.element.pause(); + }; + VideoController.prototype.reset = function () { + this.receiveBuffer.clear(); + if (this.mediaSource && this.mediaSource.readyState === 'open') { + this.mediaSource.duration = 0; + this.mediaSource.endOfStream(); + } + this.mediaSource = new MediaSource(); + this.remuxer = new h264_1.H264Remuxer(fps, fpf, fps * 60); + this.mediaReady = false; + this.mediaReadyPromise = undefined; + this.queue = []; + this.isFirstFrame = true; + }; + VideoController.prototype.appendRawData = function (data) { + var nalus = this.receiveBuffer.append(data); + for (var _i = 0, nalus_1 = nalus; _i < nalus_1.length; _i++) { + var nalu = nalus_1[_i]; + var ret = this.remuxer.remux(nalu); + if (ret) { + this.writeFragment(ret[0], ret[1]); + } + } + }; + VideoController.prototype.writeFragment = function (dts, pay) { + var remuxer = this.remuxer; + if (remuxer.mp4track.isKeyFrame) { + this.writeBuffer(mp4_generator_1.MP4.initSegment([remuxer.mp4track], Infinity, remuxer.timescale)); + } + if (pay && pay.byteLength) { + console.log(" Put framgment: " + remuxer.seq + ", frames=" + remuxer.mp4track.samples.length + ", size=" + pay.byteLength); + var fragment = mp4_generator_1.MP4.fragmentSegment(remuxer.seq, dts, remuxer.mp4track, pay); + this.writeBuffer(fragment); + remuxer.flush(); + } + else { + console.error("Nothing payload!"); + } + }; + VideoController.prototype.writeBuffer = function (data) { + var _this = this; + if (this.mediaReady) { + if (this.sourceBuffer.updating) { + this.queue.push(data); + } + else { + this.doAppend(data); + } + } + else { + this.queue.push(data); + if (this.mediaReadyPromise) { + this.mediaReadyPromise.then(function () { + if (!_this.sourceBuffer.updating) { + var d = _this.queue.shift(); + if (d) { + _this.writeBuffer(d); + } + } + }); + this.mediaReadyPromise = undefined; + } + } + }; + VideoController.prototype.doAppend = function (data) { + var error = this.element.error; + if (error) { + console.error("MSE Error Occured: " + VideoController.errorNotes[error.code]); + this.element.pause(); + if (this.mediaSource.readyState === 'open') { + this.mediaSource.endOfStream(); + } + } + else { + try { + this.sourceBuffer.appendBuffer(data); + console.log(" appended buffer: size=" + data.byteLength); + } + catch (err) { + console.error("MSE Error occured while appending buffer. " + err.name + ": " + err.message); + } + } + }; + return VideoController; +}()); +exports.VideoController = VideoController; +var VideoStreamBuffer = (function () { + function VideoStreamBuffer() { + } + VideoStreamBuffer.prototype.clear = function () { + this.buffer = undefined; + }; + VideoStreamBuffer.prototype.append = function (value) { + var nextNalHeader = function (b) { + var i = 3; + return function () { + var count = 0; + for (; i < b.length; i++) { + switch (b[i]) { + case 0: + count++; + break; + case 1: + if (count === 3) { + return i - 3; + } + default: + count = 0; + } + } + return; + }; + }; + var result = []; + var buffer; + if (this.buffer) { + if (value[3] === 1 && value[2] === 0 && value[1] === 0 && value[0] === 0) { + result.push(new NALU_1.NALU(this.buffer.subarray(4))); + buffer = Uint8Array.from(value); + } + } + if (buffer == null) { + buffer = this.mergeBuffer(value); + } + var index; + var lastIndex = 0; + var f = nextNalHeader(buffer); + while (index = f()) { + result.push(new NALU_1.NALU(buffer.subarray(lastIndex + 4, index))); + lastIndex = index; + } + this.buffer = buffer.subarray(lastIndex); + return result; + }; + VideoStreamBuffer.prototype.mergeBuffer = function (value) { + if (this.buffer == null) { + return Uint8Array.from(value); + } + else { + var newBuffer = new Uint8Array(this.buffer.byteLength + value.length); + if (this.buffer.byteLength > 0) { + newBuffer.set(this.buffer, 0); + } + newBuffer.set(value, this.buffer.byteLength); + return newBuffer; + } + }; + return VideoStreamBuffer; +}()); diff --git a/web-service/public/js/lib/dist/h264-parser.d.ts b/web-service/public/js/lib/dist/h264-parser.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..8bea94fb4455a7ea35f76402744136828d306d24 --- /dev/null +++ b/web-service/public/js/lib/dist/h264-parser.d.ts @@ -0,0 +1,19 @@ +import H264Remuxer from './h264-remuxer'; +import NALU from './util/NALU'; +export interface SEIMessage { + type: number; +} +export default class H264Parser { + private remuxer; + private track; + constructor(remuxer: H264Remuxer); + private parseSEI(sei); + private parseSPS(sps); + private parsePPS(pps); + parseNAL(unit: NALU): boolean; + private static skipScalingList(decoder, count); + private static readSPS(data); + private static readSEI(data); + private static readSEIMessage(decoder); + private static readSEIPayload(decoder, type, size); +} diff --git a/web-service/public/js/lib/dist/h264-parser.js b/web-service/public/js/lib/dist/h264-parser.js new file mode 100644 index 0000000000000000000000000000000000000000..2cb5245f880a9508d1c4560546ed05f9f1041c7f --- /dev/null +++ b/web-service/public/js/lib/dist/h264-parser.js @@ -0,0 +1,295 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var bit_stream_1 = require("./util/bit-stream"); +var debug = require("./util/debug"); +var NALU_1 = require("./util/NALU"); +var H264Parser = (function () { + function H264Parser(remuxer) { + this.remuxer = remuxer; + this.track = remuxer.mp4track; + } + H264Parser.prototype.parseSEI = function (sei) { + var messages = H264Parser.readSEI(sei); + for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { + var m = messages_1[_i]; + switch (m.type) { + case 0: + this.track.seiBuffering = true; + break; + case 5: + return true; + default: + break; + } + } + return false; + }; + H264Parser.prototype.parseSPS = function (sps) { + var config = H264Parser.readSPS(sps); + this.track.width = config.width; + this.track.height = config.height; + this.track.sps = [sps]; + this.track.codec = 'avc1.'; + var codecArray = new DataView(sps.buffer, sps.byteOffset + 1, 4); + for (var i = 0; i < 3; ++i) { + var h = codecArray.getUint8(i).toString(16); + if (h.length < 2) { + h = '0' + h; + } + this.track.codec += h; + } + }; + H264Parser.prototype.parsePPS = function (pps) { + this.track.pps = [pps]; + }; + H264Parser.prototype.parseNAL = function (unit) { + if (!unit) { + return false; + } + var push = false; + switch (unit.type()) { + case NALU_1.default.NDR: + case NALU_1.default.IDR: + push = true; + break; + case NALU_1.default.SEI: + push = this.parseSEI(unit.getData().subarray(4)); + break; + case NALU_1.default.SPS: + if (this.track.sps.length === 0) { + this.parseSPS(unit.getData().subarray(4)); + debug.log(" Found SPS type NALU frame."); + if (!this.remuxer.readyToDecode && this.track.pps.length > 0 && this.track.sps.length > 0) { + this.remuxer.readyToDecode = true; + } + } + break; + case NALU_1.default.PPS: + if (this.track.pps.length === 0) { + this.parsePPS(unit.getData().subarray(4)); + debug.log(" Found PPS type NALU frame."); + if (!this.remuxer.readyToDecode && this.track.pps.length > 0 && this.track.sps.length > 0) { + this.remuxer.readyToDecode = true; + } + } + break; + default: + debug.log(" Found Unknown type NALU frame. type=" + unit.type()); + break; + } + return push; + }; + H264Parser.skipScalingList = function (decoder, count) { + var lastScale = 8; + var nextScale = 8; + for (var j = 0; j < count; j++) { + if (nextScale !== 0) { + var deltaScale = decoder.readEG(); + nextScale = (lastScale + deltaScale + 256) % 256; + } + lastScale = (nextScale === 0) ? lastScale : nextScale; + } + }; + H264Parser.readSPS = function (data) { + var decoder = new bit_stream_1.default(data); + var frameCropLeftOffset = 0; + var frameCropRightOffset = 0; + var frameCropTopOffset = 0; + var frameCropBottomOffset = 0; + var sarScale = 1; + decoder.readUByte(); + var profileIdc = decoder.readUByte(); + decoder.skipBits(5); + decoder.skipBits(3); + decoder.skipBits(8); + decoder.skipUEG(); + if (profileIdc === 100 || + profileIdc === 110 || + profileIdc === 122 || + profileIdc === 244 || + profileIdc === 44 || + profileIdc === 83 || + profileIdc === 86 || + profileIdc === 118 || + profileIdc === 128) { + var chromaFormatIdc = decoder.readUEG(); + if (chromaFormatIdc === 3) { + decoder.skipBits(1); + } + decoder.skipUEG(); + decoder.skipUEG(); + decoder.skipBits(1); + if (decoder.readBoolean()) { + var scalingListCount = (chromaFormatIdc !== 3) ? 8 : 12; + for (var i = 0; i < scalingListCount; ++i) { + if (decoder.readBoolean()) { + if (i < 6) { + H264Parser.skipScalingList(decoder, 16); + } + else { + H264Parser.skipScalingList(decoder, 64); + } + } + } + } + } + decoder.skipUEG(); + var picOrderCntType = decoder.readUEG(); + if (picOrderCntType === 0) { + decoder.readUEG(); + } + else if (picOrderCntType === 1) { + decoder.skipBits(1); + decoder.skipEG(); + decoder.skipEG(); + var numRefFramesInPicOrderCntCycle = decoder.readUEG(); + for (var i = 0; i < numRefFramesInPicOrderCntCycle; ++i) { + decoder.skipEG(); + } + } + decoder.skipUEG(); + decoder.skipBits(1); + var picWidthInMbsMinus1 = decoder.readUEG(); + var picHeightInMapUnitsMinus1 = decoder.readUEG(); + var frameMbsOnlyFlag = decoder.readBits(1); + if (frameMbsOnlyFlag === 0) { + decoder.skipBits(1); + } + decoder.skipBits(1); + if (decoder.readBoolean()) { + frameCropLeftOffset = decoder.readUEG(); + frameCropRightOffset = decoder.readUEG(); + frameCropTopOffset = decoder.readUEG(); + frameCropBottomOffset = decoder.readUEG(); + } + if (decoder.readBoolean()) { + if (decoder.readBoolean()) { + var sarRatio = void 0; + var aspectRatioIdc = decoder.readUByte(); + switch (aspectRatioIdc) { + case 1: + sarRatio = [1, 1]; + break; + case 2: + sarRatio = [12, 11]; + break; + case 3: + sarRatio = [10, 11]; + break; + case 4: + sarRatio = [16, 11]; + break; + case 5: + sarRatio = [40, 33]; + break; + case 6: + sarRatio = [24, 11]; + break; + case 7: + sarRatio = [20, 11]; + break; + case 8: + sarRatio = [32, 11]; + break; + case 9: + sarRatio = [80, 33]; + break; + case 10: + sarRatio = [18, 11]; + break; + case 11: + sarRatio = [15, 11]; + break; + case 12: + sarRatio = [64, 33]; + break; + case 13: + sarRatio = [160, 99]; + break; + case 14: + sarRatio = [4, 3]; + break; + case 15: + sarRatio = [3, 2]; + break; + case 16: + sarRatio = [2, 1]; + break; + case 255: { + sarRatio = [decoder.readUByte() << 8 | decoder.readUByte(), decoder.readUByte() << 8 | decoder.readUByte()]; + break; + } + default: { + debug.error(" H264: Unknown aspectRatioIdc=" + aspectRatioIdc); + } + } + if (sarRatio) { + sarScale = sarRatio[0] / sarRatio[1]; + } + } + if (decoder.readBoolean()) { + decoder.skipBits(1); + } + if (decoder.readBoolean()) { + decoder.skipBits(4); + if (decoder.readBoolean()) { + decoder.skipBits(24); + } + } + if (decoder.readBoolean()) { + decoder.skipUEG(); + decoder.skipUEG(); + } + if (decoder.readBoolean()) { + var unitsInTick = decoder.readUInt(); + var timeScale = decoder.readUInt(); + var fixedFrameRate = decoder.readBoolean(); + var frameDuration = timeScale / (2 * unitsInTick); + debug.log("timescale: " + timeScale + "; unitsInTick: " + unitsInTick + "; " + + ("fixedFramerate: " + fixedFrameRate + "; avgFrameDuration: " + frameDuration)); + } + } + return { + width: Math.ceil((((picWidthInMbsMinus1 + 1) * 16) - frameCropLeftOffset * 2 - frameCropRightOffset * 2) * sarScale), + height: ((2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16) - + ((frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset)), + }; + }; + H264Parser.readSEI = function (data) { + var decoder = new bit_stream_1.default(data); + decoder.skipBits(8); + var result = []; + while (decoder.bitsAvailable > 3 * 8) { + result.push(this.readSEIMessage(decoder)); + } + return result; + }; + H264Parser.readSEIMessage = function (decoder) { + function get() { + var result = 0; + while (true) { + var value = decoder.readUByte(); + result += value; + if (value !== 0xff) { + break; + } + } + return result; + } + var payloadType = get(); + var payloadSize = get(); + return this.readSEIPayload(decoder, payloadType, payloadSize); + }; + H264Parser.readSEIPayload = function (decoder, type, size) { + var result; + switch (type) { + default: + result = { type: type }; + decoder.skipBits(size * 8); + } + decoder.skipBits(decoder.bitsAvailable % 8); + return result; + }; + return H264Parser; +}()); +exports.default = H264Parser; diff --git a/web-service/public/js/lib/dist/h264-remuxer.d.ts b/web-service/public/js/lib/dist/h264-remuxer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0042feddbb3ab7ffc01027f330988d477e7c8f91 --- /dev/null +++ b/web-service/public/js/lib/dist/h264-remuxer.d.ts @@ -0,0 +1,23 @@ +import { Track } from './types'; +import NALU from './util/NALU'; +export default class H264Remuxer { + fps: number; + framePerFragment: number; + timescale: number; + readyToDecode: boolean; + private totalDTS; + private stepDTS; + private frameCount; + private seq; + mp4track: Track; + private unitSamples; + private parser; + private static getTrackID(); + constructor(fps: number, framePerFragment: number, timescale: number); + readonly seqNum: number; + remux(nalu: NALU): [number, Uint8Array] | undefined; + private createNextFrame(); + flush(): void; + private getFragment(); + private checkReadyToDecode(); +} diff --git a/web-service/public/js/lib/dist/h264-remuxer.js b/web-service/public/js/lib/dist/h264-remuxer.js new file mode 100644 index 0000000000000000000000000000000000000000..f3d181c811e3bb19da2415c2fce5315b500a0f71 --- /dev/null +++ b/web-service/public/js/lib/dist/h264-remuxer.js @@ -0,0 +1,121 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_parser_1 = require("./h264-parser"); +var debug = require("./util/debug"); +var NALU_1 = require("./util/NALU"); +var trackId = 1; +var H264Remuxer = (function () { + function H264Remuxer(fps, framePerFragment, timescale) { + this.fps = fps; + this.framePerFragment = framePerFragment; + this.timescale = timescale; + this.readyToDecode = false; + this.totalDTS = 0; + this.stepDTS = Math.round(this.timescale / this.fps); + this.frameCount = 0; + this.seq = 1; + this.mp4track = { + id: H264Remuxer.getTrackID(), + type: 'video', + len: 0, + codec: '', + sps: [], + pps: [], + seiBuffering: false, + width: 0, + height: 0, + timescale: timescale, + duration: timescale, + samples: [], + isKeyFrame: true, + }; + this.unitSamples = [[]]; + this.parser = new h264_parser_1.default(this); + } + H264Remuxer.getTrackID = function () { + return trackId++; + }; + Object.defineProperty(H264Remuxer.prototype, "seqNum", { + get: function () { + return this.seq; + }, + enumerable: true, + configurable: true + }); + H264Remuxer.prototype.remux = function (nalu) { + if (this.mp4track.seiBuffering && nalu.type() === NALU_1.default.SEI) { + return this.createNextFrame(); + } + if (this.parser.parseNAL(nalu)) { + this.unitSamples[this.unitSamples.length - 1].push(nalu); + this.mp4track.len += nalu.getSize(); + } + if (!this.mp4track.seiBuffering && (nalu.type() === NALU_1.default.IDR || nalu.type() === NALU_1.default.NDR)) { + return this.createNextFrame(); + } + return; + }; + H264Remuxer.prototype.createNextFrame = function () { + if (this.mp4track.len > 0) { + this.frameCount++; + if (this.frameCount % this.framePerFragment === 0) { + var fragment = this.getFragment(); + if (fragment) { + var dts = this.totalDTS; + this.totalDTS = this.stepDTS * this.frameCount; + return [dts, fragment]; + } + else { + debug.log("No mp4 sample data."); + } + } + this.unitSamples.push([]); + } + return; + }; + H264Remuxer.prototype.flush = function () { + this.seq++; + this.mp4track.len = 0; + this.mp4track.samples = []; + this.mp4track.isKeyFrame = false; + this.unitSamples = [[]]; + }; + H264Remuxer.prototype.getFragment = function () { + if (!this.checkReadyToDecode()) { + return undefined; + } + var payload = new Uint8Array(this.mp4track.len); + this.mp4track.samples = []; + var offset = 0; + for (var i = 0, len = this.unitSamples.length; i < len; i++) { + var units = this.unitSamples[i]; + if (units.length === 0) { + continue; + } + var mp4Sample = { + size: 0, + cts: this.stepDTS * i, + }; + for (var _i = 0, units_1 = units; _i < units_1.length; _i++) { + var unit = units_1[_i]; + mp4Sample.size += unit.getSize(); + payload.set(unit.getData(), offset); + offset += unit.getSize(); + } + this.mp4track.samples.push(mp4Sample); + } + if (offset === 0) { + return undefined; + } + return payload; + }; + H264Remuxer.prototype.checkReadyToDecode = function () { + if (!this.readyToDecode || this.unitSamples.filter(function (array) { return array.length > 0; }).length === 0) { + debug.log("Not ready to decode! readyToDecode(" + this.readyToDecode + ") is false or units is empty."); + return false; + } + return true; + }; + return H264Remuxer; +}()); +exports.default = H264Remuxer; diff --git a/web-service/public/js/lib/dist/h264.d.ts b/web-service/public/js/lib/dist/h264.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b55d9904fbe5b408ae079622fdc2ed1c6e2f80a --- /dev/null +++ b/web-service/public/js/lib/dist/h264.d.ts @@ -0,0 +1,23 @@ +import { Track } from './types'; +import { NALU } from './util/NALU'; +export default class H264Remuxer { + fps: number; + framePerFragment: number; + timescale: number; + readyToDecode: boolean; + private totalDTS; + private stepDTS; + private frameCount; + private seq; + mp4track: Track; + private unitSamples; + private parser; + private static getTrackID(); + constructor(fps: number, framePerFragment: number, timescale: number); + readonly seqNum: number; + remux(nalu: NALU): [number, Uint8Array] | undefined; + private createNextFrame(); + flush(): void; + private getFragment(); + private checkReadyToDecode(); +} diff --git a/web-service/public/js/lib/dist/h264.js b/web-service/public/js/lib/dist/h264.js new file mode 100644 index 0000000000000000000000000000000000000000..206ad79f4a12725e18662d249e0d3fb64d13616d --- /dev/null +++ b/web-service/public/js/lib/dist/h264.js @@ -0,0 +1,118 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_parser_1 = require("./h264-parser"); +var NALU_1 = require("./util/NALU"); +var trackId = 1; +var H264Remuxer = (function () { + function H264Remuxer(fps, framePerFragment, timescale) { + this.fps = fps; + this.framePerFragment = framePerFragment; + this.timescale = timescale; + this.readyToDecode = false; + this.totalDTS = 0; + this.stepDTS = Math.round(this.timescale / this.fps); + this.frameCount = 0; + this.seq = 1; + this.mp4track = { + id: H264Remuxer.getTrackID(), + type: 'video', + len: 0, + codec: '', + sps: [], + pps: [], + seiBuffering: false, + width: 0, + height: 0, + timescale: timescale, + duration: timescale, + samples: [], + isKeyFrame: true, + }; + this.unitSamples = [[]]; + this.parser = new h264_parser_1.H264Parser(this); + } + H264Remuxer.getTrackID = function () { + return trackId++; + }; + Object.defineProperty(H264Remuxer.prototype, "seqNum", { + get: function () { + return this.seq; + }, + enumerable: true, + configurable: true + }); + H264Remuxer.prototype.remux = function (nalu) { + if (this.mp4track.seiBuffering && nalu.type() === NALU_1.NALU.SEI) { + return this.createNextFrame(); + } + if (this.parser.parseNAL(nalu)) { + this.unitSamples[this.unitSamples.length - 1].push(nalu); + this.mp4track.len += nalu.getSize(); + } + if (!this.mp4track.seiBuffering && (nalu.type() === NALU_1.NALU.IDR || nalu.type() === NALU_1.NALU.NDR)) { + return this.createNextFrame(); + } + return; + }; + H264Remuxer.prototype.createNextFrame = function () { + if (this.mp4track.len > 0) { + this.frameCount++; + if (this.frameCount % this.framePerFragment === 0) { + var fragment = this.getFragment(); + if (fragment) { + var dts = this.totalDTS; + this.totalDTS = this.stepDTS * this.frameCount; + return [dts, fragment]; + } + } + this.unitSamples.push([]); + } + return; + }; + H264Remuxer.prototype.flush = function () { + this.seq++; + this.mp4track.len = 0; + this.mp4track.samples = []; + this.mp4track.isKeyFrame = false; + this.unitSamples = [[]]; + }; + H264Remuxer.prototype.getFragment = function () { + if (!this.checkReadyToDecode()) { + return undefined; + } + var payload = new Uint8Array(this.mp4track.len); + this.mp4track.samples = []; + var offset = 0; + for (var i = 0, len = this.unitSamples.length; i < len; i++) { + var units = this.unitSamples[i]; + if (units.length === 0) { + continue; + } + var mp4Sample = { + size: 0, + cts: this.stepDTS * i, + }; + for (var _i = 0, units_1 = units; _i < units_1.length; _i++) { + var unit = units_1[_i]; + mp4Sample.size += unit.getSize(); + payload.set(unit.getData(), offset); + offset += unit.getSize(); + } + this.mp4track.samples.push(mp4Sample); + } + if (offset === 0) { + console.log("No mp4 sample data."); + return undefined; + } + return payload; + }; + H264Remuxer.prototype.checkReadyToDecode = function () { + if (!this.readyToDecode || this.unitSamples.filter(function (array) { return array.length > 0; }).length === 0) { + console.log("Not ready to decode! readyToDecode(" + this.readyToDecode + ") is false or units is empty."); + return false; + } + return true; + }; + return H264Remuxer; +}()); +exports.default = H264Remuxer; diff --git a/web-service/public/js/lib/dist/index.d.ts b/web-service/public/js/lib/dist/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..12f0901b72982089e0fcdaab54fd95f6dcccb58c --- /dev/null +++ b/web-service/public/js/lib/dist/index.d.ts @@ -0,0 +1,27 @@ +export declare const mimeType = "video/mp4; codecs=\"avc1.42E01E\""; +export { setLogger } from './util/debug'; +export default class VideoConverter { + private element; + private fps; + private fpf; + private mediaSource; + private sourceBuffer; + private receiveBuffer; + private remuxer; + private mediaReady; + private mediaReadyPromise; + private queue; + private isFirstFrame; + static readonly errorNotes: { + [x: number]: string; + }; + constructor(element: HTMLVideoElement, fps?: number, fpf?: number); + private setup(); + play(): void; + pause(): void; + reset(): void; + appendRawData(data: ArrayLike<number>): void; + private writeFragment(dts, pay); + private writeBuffer(data); + private doAppend(data); +} diff --git a/web-service/public/js/lib/dist/index.js b/web-service/public/js/lib/dist/index.js new file mode 100644 index 0000000000000000000000000000000000000000..cefdec014662f8021818d7618c37bbaa28277787 --- /dev/null +++ b/web-service/public/js/lib/dist/index.js @@ -0,0 +1,187 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_remuxer_1 = require("./h264-remuxer"); +var mp4_generator_1 = require("./mp4-generator"); +var debug = require("./util/debug"); +var nalu_stream_buffer_1 = require("./util/nalu-stream-buffer"); +exports.mimeType = 'video/mp4; codecs="avc1.42E01E"'; +var debug_1 = require("./util/debug"); +exports.setLogger = debug_1.setLogger; +var VideoConverter = (function () { + function VideoConverter(element, fps, fpf) { + if (fps === void 0) { fps = 60; } + if (fpf === void 0) { fpf = fps; } + this.element = element; + this.fps = fps; + this.fpf = fpf; + this.receiveBuffer = new nalu_stream_buffer_1.default(); + this.queue = []; + if (!MediaSource || !MediaSource.isTypeSupported(exports.mimeType)) { + throw new Error("Your browser is not supported: " + exports.mimeType); + } + this.reset(); + } + Object.defineProperty(VideoConverter, "errorNotes", { + get: function () { + return _a = {}, + _a[MediaError.MEDIA_ERR_ABORTED] = 'fetching process aborted by user', + _a[MediaError.MEDIA_ERR_NETWORK] = 'error occurred when downloading', + _a[MediaError.MEDIA_ERR_DECODE] = 'error occurred when decoding', + _a[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED] = 'audio/video not supported', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + VideoConverter.prototype.setup = function () { + var _this = this; + this.mediaReadyPromise = new Promise(function (resolve, _reject) { + _this.mediaSource.addEventListener('sourceopen', function () { + debug.log("Media Source opened."); + _this.sourceBuffer = _this.mediaSource.addSourceBuffer(exports.mimeType); + _this.sourceBuffer.addEventListener('updateend', function () { + debug.log(" SourceBuffer updateend"); + debug.log(" sourceBuffer.buffered.length=" + _this.sourceBuffer.buffered.length); + for (var i = 0, len = _this.sourceBuffer.buffered.length; i < len; i++) { + debug.log(" sourceBuffer.buffered [" + i + "]: " + + (_this.sourceBuffer.buffered.start(i) + ", " + _this.sourceBuffer.buffered.end(i))); + } + debug.log(" mediasource.duration=" + _this.mediaSource.duration); + debug.log(" mediasource.readyState=" + _this.mediaSource.readyState); + debug.log(" video.duration=" + _this.element.duration); + debug.log(" video.buffered.length=" + _this.element.buffered.length); + if (debug.isEnable()) { + for (var i = 0, len = _this.element.buffered.length; i < len; i++) { + debug.log(" video.buffered [" + i + "]: " + _this.element.buffered.start(i) + ", " + _this.element.buffered.end(i)); + } + } + debug.log(" video.currentTime=" + _this.element.currentTime); + debug.log(" video.readyState=" + _this.element.readyState); + var data = _this.queue.shift(); + if (data) { + _this.writeBuffer(data); + } + }); + _this.sourceBuffer.addEventListener('error', function () { + debug.error(' SourceBuffer errored!'); + }); + _this.mediaReady = true; + resolve(); + }, false); + _this.mediaSource.addEventListener('sourceclose', function () { + debug.log("Media Source closed."); + _this.mediaReady = false; + }, false); + _this.element.src = URL.createObjectURL(_this.mediaSource); + }); + return this.mediaReadyPromise; + }; + VideoConverter.prototype.play = function () { + var _this = this; + if (!this.element.paused) { + return; + } + if (this.mediaReady && this.element.readyState >= 2) { + this.element.play(); + } + else { + var handler_1 = function () { + _this.play(); + _this.element.removeEventListener('canplaythrough', handler_1); + }; + this.element.addEventListener('canplaythrough', handler_1); + } + }; + VideoConverter.prototype.pause = function () { + if (this.element.paused) { + return; + } + this.element.pause(); + }; + VideoConverter.prototype.reset = function () { + this.receiveBuffer.clear(); + if (this.mediaSource && this.mediaSource.readyState === 'open') { + this.mediaSource.duration = 0; + this.mediaSource.endOfStream(); + } + this.mediaSource = new MediaSource(); + this.remuxer = new h264_remuxer_1.default(this.fps, this.fpf, this.fps * 60); + this.mediaReady = false; + this.mediaReadyPromise = undefined; + this.queue = []; + this.isFirstFrame = true; + this.setup(); + }; + VideoConverter.prototype.appendRawData = function (data) { + var nalus = this.receiveBuffer.append(data); + for (var _i = 0, nalus_1 = nalus; _i < nalus_1.length; _i++) { + var nalu = nalus_1[_i]; + var ret = this.remuxer.remux(nalu); + if (ret) { + this.writeFragment(ret[0], ret[1]); + } + } + }; + VideoConverter.prototype.writeFragment = function (dts, pay) { + var remuxer = this.remuxer; + if (remuxer.mp4track.isKeyFrame) { + this.writeBuffer(mp4_generator_1.default.initSegment([remuxer.mp4track], Infinity, remuxer.timescale)); + } + if (pay && pay.byteLength) { + debug.log(" Put fragment: " + remuxer.seqNum + ", frames=" + remuxer.mp4track.samples.length + ", size=" + pay.byteLength); + var fragment = mp4_generator_1.default.fragmentSegment(remuxer.seqNum, dts, remuxer.mp4track, pay); + this.writeBuffer(fragment); + remuxer.flush(); + } + else { + debug.error("Nothing payload!"); + } + }; + VideoConverter.prototype.writeBuffer = function (data) { + var _this = this; + if (this.mediaReady) { + if (this.sourceBuffer.updating) { + this.queue.push(data); + } + else { + this.doAppend(data); + } + } + else { + this.queue.push(data); + if (this.mediaReadyPromise) { + this.mediaReadyPromise.then(function () { + if (!_this.sourceBuffer.updating) { + var d = _this.queue.shift(); + if (d) { + _this.writeBuffer(d); + } + } + }); + this.mediaReadyPromise = undefined; + } + } + }; + VideoConverter.prototype.doAppend = function (data) { + var error = this.element.error; + if (error) { + debug.error("MSE Error Occured: " + VideoConverter.errorNotes[error.code]); + this.element.pause(); + if (this.mediaSource.readyState === 'open') { + this.mediaSource.endOfStream(); + } + } + else { + try { + this.sourceBuffer.appendBuffer(data); + debug.log(" appended buffer: size=" + data.byteLength); + } + catch (err) { + debug.error("MSE Error occured while appending buffer. " + err.name + ": " + err.message); + } + } + }; + return VideoConverter; +}()); +exports.default = VideoConverter; diff --git a/web-service/public/js/lib/dist/mp4-generator.d.ts b/web-service/public/js/lib/dist/mp4-generator.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c3ac851fa3c1c3ec72fe3918fe0552379abe2a42 --- /dev/null +++ b/web-service/public/js/lib/dist/mp4-generator.d.ts @@ -0,0 +1,38 @@ +import { Track } from './types'; +export default class MP4 { + private static types; + private static initalized; + private static FTYP; + private static HDLR; + private static DINF; + private static STSD; + private static SMHD; + private static VMHD; + private static STSZ; + private static STTS; + private static STSC; + private static STCO; + private static STYP; + private static init(); + static box(type: number[], ...payload: Uint8Array[]): Uint8Array; + static mdat(data: Uint8Array): Uint8Array; + static mdhd(timescale: number): Uint8Array; + static mdia(track: Track): Uint8Array; + static mfhd(sequenceNumber: number): Uint8Array; + static minf(track: Track): Uint8Array; + static moof(sn: number, baseMediaDecodeTime: number, track: Track): Uint8Array; + static moov(tracks: Track[], duration: number, timescale: number): Uint8Array; + static mvhd(timescale: number, duration: number): Uint8Array; + static mvex(tracks: Track[]): Uint8Array; + static trep(): Uint8Array; + static stbl(track: Track): Uint8Array; + static avc1(track: Track): Uint8Array; + static stsd(track: Track): Uint8Array; + static tkhd(track: Track): Uint8Array; + static traf(track: Track, baseMediaDecodeTime: number): Uint8Array; + static trak(track: Track): Uint8Array; + static trex(track: Track): Uint8Array; + static trun(track: Track, offset: number): Uint8Array; + static initSegment(tracks: Track[], duration: number, timescale: number): Uint8Array; + static fragmentSegment(sn: number, baseMediaDecodeTime: number, track: Track, payload: Uint8Array): Uint8Array; +} diff --git a/web-service/public/js/lib/dist/mp4-generator.js b/web-service/public/js/lib/dist/mp4-generator.js new file mode 100644 index 0000000000000000000000000000000000000000..a91748998c479aa7a398b66379c8a0c0bfdd43b0 --- /dev/null +++ b/web-service/public/js/lib/dist/mp4-generator.js @@ -0,0 +1,454 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var MP4 = (function () { + function MP4() { + } + MP4.init = function () { + MP4.initalized = true; + MP4.types = { + avc1: [], + avcC: [], + btrt: [], + dinf: [], + dref: [], + esds: [], + ftyp: [], + hdlr: [], + mdat: [], + mdhd: [], + mdia: [], + mfhd: [], + minf: [], + moof: [], + moov: [], + mp4a: [], + mvex: [], + mvhd: [], + sdtp: [], + stbl: [], + stco: [], + stsc: [], + stsd: [], + stsz: [], + stts: [], + styp: [], + tfdt: [], + tfhd: [], + traf: [], + trak: [], + trun: [], + trep: [], + trex: [], + tkhd: [], + vmhd: [], + smhd: [], + }; + for (var type in MP4.types) { + if (MP4.types.hasOwnProperty(type)) { + MP4.types[type] = [ + type.charCodeAt(0), + type.charCodeAt(1), + type.charCodeAt(2), + type.charCodeAt(3), + ]; + } + } + var hdlr = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x76, 0x69, 0x64, 0x65, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x00, + ]); + var dref = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x0c, + 0x75, 0x72, 0x6c, 0x20, + 0x00, + 0x00, 0x00, 0x01, + ]); + var stco = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]); + MP4.STTS = MP4.STSC = MP4.STCO = stco; + MP4.STSZ = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + ]); + MP4.VMHD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x01, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + ]); + MP4.SMHD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + ]); + MP4.STSD = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01 + ]); + MP4.FTYP = MP4.box(MP4.types.ftyp, new Uint8Array([ + 0x69, 0x73, 0x6f, 0x35, + 0x00, 0x00, 0x00, 0x01, + 0x61, 0x76, 0x63, 0x31, + 0x69, 0x73, 0x6f, 0x35, + 0x64, 0x61, 0x73, 0x68, + ])); + MP4.STYP = MP4.box(MP4.types.styp, new Uint8Array([ + 0x6d, 0x73, 0x64, 0x68, + 0x00, 0x00, 0x00, 0x00, + 0x6d, 0x73, 0x64, 0x68, + 0x6d, 0x73, 0x69, 0x78, + ])); + MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref)); + MP4.HDLR = MP4.box(MP4.types.hdlr, hdlr); + }; + MP4.box = function (type) { + var payload = []; + for (var _i = 1; _i < arguments.length; _i++) { + payload[_i - 1] = arguments[_i]; + } + var size = 8; + for (var _a = 0, payload_1 = payload; _a < payload_1.length; _a++) { + var p = payload_1[_a]; + size += p.byteLength; + } + var result = new Uint8Array(size); + result[0] = (size >> 24) & 0xff; + result[1] = (size >> 16) & 0xff; + result[2] = (size >> 8) & 0xff; + result[3] = size & 0xff; + result.set(type, 4); + size = 8; + for (var _b = 0, payload_2 = payload; _b < payload_2.length; _b++) { + var box = payload_2[_b]; + result.set(box, size); + size += box.byteLength; + } + return result; + }; + MP4.mdat = function (data) { + return MP4.box(MP4.types.mdat, data); + }; + MP4.mdhd = function (timescale) { + return MP4.box(MP4.types.mdhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (timescale >> 24) & 0xFF, + (timescale >> 16) & 0xFF, + (timescale >> 8) & 0xFF, + timescale & 0xFF, + 0x00, 0x00, 0x00, 0x00, + 0x55, 0xc4, + 0x00, 0x00, + ])); + }; + MP4.mdia = function (track) { + return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale), MP4.HDLR, MP4.minf(track)); + }; + MP4.mfhd = function (sequenceNumber) { + return MP4.box(MP4.types.mfhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (sequenceNumber >> 24), + (sequenceNumber >> 16) & 0xFF, + (sequenceNumber >> 8) & 0xFF, + sequenceNumber & 0xFF, + ])); + }; + MP4.minf = function (track) { + return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track)); + }; + MP4.moof = function (sn, baseMediaDecodeTime, track) { + return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime)); + }; + MP4.moov = function (tracks, duration, timescale) { + var boxes = []; + for (var _i = 0, tracks_1 = tracks; _i < tracks_1.length; _i++) { + var track = tracks_1[_i]; + boxes.push(MP4.trak(track)); + } + return MP4.box.apply(MP4, [MP4.types.moov, MP4.mvhd(timescale, duration), MP4.mvex(tracks)].concat(boxes)); + }; + MP4.mvhd = function (timescale, duration) { + var bytes = new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (timescale >> 24) & 0xFF, + (timescale >> 16) & 0xFF, + (timescale >> 8) & 0xFF, + timescale & 0xFF, + (duration >> 24) & 0xFF, + (duration >> 16) & 0xFF, + (duration >> 8) & 0xFF, + duration & 0xFF, + 0x00, 0x01, 0x00, 0x00, + 0x01, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, + ]); + return MP4.box(MP4.types.mvhd, bytes); + }; + MP4.mvex = function (tracks) { + var boxes = []; + for (var _i = 0, tracks_2 = tracks; _i < tracks_2.length; _i++) { + var track = tracks_2[_i]; + boxes.push(MP4.trex(track)); + } + return MP4.box.apply(MP4, [MP4.types.mvex].concat(boxes, [MP4.trep()])); + }; + MP4.trep = function () { + return MP4.box(MP4.types.trep, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, + ])); + }; + MP4.stbl = function (track) { + return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO)); + }; + MP4.avc1 = function (track) { + var sps = []; + var pps = []; + for (var _i = 0, _a = track.sps; _i < _a.length; _i++) { + var data = _a[_i]; + var len = data.byteLength; + sps.push((len >>> 8) & 0xFF); + sps.push((len & 0xFF)); + sps = sps.concat(Array.prototype.slice.call(data)); + } + for (var _b = 0, _c = track.pps; _b < _c.length; _b++) { + var data = _c[_b]; + var len = data.byteLength; + pps.push((len >>> 8) & 0xFF); + pps.push((len & 0xFF)); + pps = pps.concat(Array.prototype.slice.call(data)); + } + var avcc = MP4.box(MP4.types.avcC, new Uint8Array([ + 0x01, + sps[3], + sps[4], + sps[5], + 0xfc | 3, + 0xE0 | track.sps.length, + ].concat(sps).concat([ + track.pps.length, + ]).concat(pps))); + var width = track.width; + var height = track.height; + return MP4.box(MP4.types.avc1, new Uint8Array([ + 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x01, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + (width >> 8) & 0xFF, + width & 0xff, + (height >> 8) & 0xFF, + height & 0xff, + 0x00, 0x48, 0x00, 0x00, + 0x00, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, + 0x12, + 0x62, 0x69, 0x6E, 0x65, + 0x6C, 0x70, 0x72, 0x6F, + 0x2E, 0x72, 0x75, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, + 0x00, 0x18, + 0x11, 0x11 + ]), avcc, MP4.box(MP4.types.btrt, new Uint8Array([ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x2d, 0xc6, 0xc0, + 0x00, 0x2d, 0xc6, 0xc0, + ]))); + }; + MP4.stsd = function (track) { + return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track)); + }; + MP4.tkhd = function (track) { + var id = track.id; + var width = track.width; + var height = track.height; + return MP4.box(MP4.types.tkhd, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x02, + (id >> 24) & 0xFF, + (id >> 16) & 0xFF, + (id >> 8) & 0xFF, + id & 0xFF, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + (track.type === 'audio' ? 0x01 : 0x00), 0x00, + 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, + (width >> 8) & 0xFF, + width & 0xFF, + 0x00, 0x00, + (height >> 8) & 0xFF, + height & 0xFF, + 0x00, 0x00, + ])); + }; + MP4.traf = function (track, baseMediaDecodeTime) { + var id = track.id; + return MP4.box(MP4.types.traf, MP4.box(MP4.types.tfhd, new Uint8Array([ + 0x00, + 0x02, 0x00, 0x00, + (id >> 24), + (id >> 16) & 0XFF, + (id >> 8) & 0XFF, + (id & 0xFF), + ])), MP4.box(MP4.types.tfdt, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (baseMediaDecodeTime >> 24), + (baseMediaDecodeTime >> 16) & 0XFF, + (baseMediaDecodeTime >> 8) & 0XFF, + (baseMediaDecodeTime & 0xFF), + ])), MP4.trun(track, 16 + + 16 + + 8 + + 16 + + 8 + + 8)); + }; + MP4.trak = function (track) { + track.duration = track.duration || 0xffffffff; + return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track)); + }; + MP4.trex = function (track) { + var id = track.id; + return MP4.box(MP4.types.trex, new Uint8Array([ + 0x00, + 0x00, 0x00, 0x00, + (id >> 24), + (id >> 16) & 0XFF, + (id >> 8) & 0XFF, + (id & 0xFF), + 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, + ])); + }; + MP4.trun = function (track, offset) { + var samples = track.samples || []; + var len = samples.length; + var additionalLen = track.isKeyFrame ? 4 : 0; + var arraylen = 12 + additionalLen + (4 * len); + var array = new Uint8Array(arraylen); + offset += 8 + arraylen; + array.set([ + 0x00, + 0x00, 0x02, (track.isKeyFrame ? 0x05 : 0x01), + (len >>> 24) & 0xFF, + (len >>> 16) & 0xFF, + (len >>> 8) & 0xFF, + len & 0xFF, + (offset >>> 24) & 0xFF, + (offset >>> 16) & 0xFF, + (offset >>> 8) & 0xFF, + offset & 0xFF, + ], 0); + if (track.isKeyFrame) { + array.set([ + 0x00, 0x00, 0x00, 0x00, + ], 12); + } + for (var i = 0; i < len; i++) { + var sample = samples[i]; + var size = sample.size; + array.set([ + (size >>> 24) & 0xFF, + (size >>> 16) & 0xFF, + (size >>> 8) & 0xFF, + size & 0xFF, + ], 12 + additionalLen + 4 * i); + } + return MP4.box(MP4.types.trun, array); + }; + MP4.initSegment = function (tracks, duration, timescale) { + if (!MP4.initalized) { + MP4.init(); + } + var movie = MP4.moov(tracks, duration, timescale); + var result = new Uint8Array(MP4.FTYP.byteLength + movie.byteLength); + result.set(MP4.FTYP); + result.set(movie, MP4.FTYP.byteLength); + return result; + }; + MP4.fragmentSegment = function (sn, baseMediaDecodeTime, track, payload) { + var moof = MP4.moof(sn, baseMediaDecodeTime, track); + var mdat = MP4.mdat(payload); + var result = new Uint8Array(MP4.STYP.byteLength + moof.byteLength + mdat.byteLength); + result.set(MP4.STYP); + result.set(moof, MP4.STYP.byteLength); + result.set(mdat, MP4.STYP.byteLength + moof.byteLength); + return result; + }; + return MP4; +}()); +MP4.types = {}; +MP4.initalized = false; +exports.default = MP4; diff --git a/web-service/public/js/lib/dist/types.d.ts b/web-service/public/js/lib/dist/types.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9805ff829dd34868f2bf97357420c37044b5b8fb --- /dev/null +++ b/web-service/public/js/lib/dist/types.d.ts @@ -0,0 +1,18 @@ +export interface Track { + id: number; + type: 'video' | 'audio'; + len: number; + codec: string; + sps: Uint8Array[]; + pps: Uint8Array[]; + seiBuffering: boolean; + width: number; + height: number; + timescale: number; + duration: number; + samples: TrackSample[]; + isKeyFrame: boolean; +} +export interface TrackSample { + size: number; +} diff --git a/web-service/public/js/lib/dist/types.js b/web-service/public/js/lib/dist/types.js new file mode 100644 index 0000000000000000000000000000000000000000..c8ad2e549bdc6801e0d1c80b0308d4b9bd4985ce --- /dev/null +++ b/web-service/public/js/lib/dist/types.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/web-service/public/js/lib/dist/util/NALU.d.ts b/web-service/public/js/lib/dist/util/NALU.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..10d1b657a1c59ca9a35d465c7d5cf09bfa802017 --- /dev/null +++ b/web-service/public/js/lib/dist/util/NALU.d.ts @@ -0,0 +1,19 @@ +export default class NALU { + data: Uint8Array; + nri: number; + ntype: number; + static readonly NDR: number; + static readonly IDR: number; + static readonly SEI: number; + static readonly SPS: number; + static readonly PPS: number; + static readonly TYPES: { + [x: number]: string; + }; + static type(nalu: NALU): string; + constructor(data: Uint8Array); + type(): number; + isKeyframe(): boolean; + getSize(): number; + getData(): Uint8Array; +} diff --git a/web-service/public/js/lib/dist/util/NALU.js b/web-service/public/js/lib/dist/util/NALU.js new file mode 100644 index 0000000000000000000000000000000000000000..f9c66be6a79aa16971997f6066bedecf585937c4 --- /dev/null +++ b/web-service/public/js/lib/dist/util/NALU.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var NALU = (function () { + function NALU(data) { + this.data = data; + this.nri = (data[0] & 0x60) >> 5; + this.ntype = data[0] & 0x1f; + } + Object.defineProperty(NALU, "NDR", { + get: function () { return 1; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "IDR", { + get: function () { return 5; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "SEI", { + get: function () { return 6; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "SPS", { + get: function () { return 7; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "PPS", { + get: function () { return 8; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NALU, "TYPES", { + get: function () { + return _a = {}, + _a[NALU.IDR] = 'IDR', + _a[NALU.SEI] = 'SEI', + _a[NALU.SPS] = 'SPS', + _a[NALU.PPS] = 'PPS', + _a[NALU.NDR] = 'NDR', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + NALU.type = function (nalu) { + if (nalu.ntype in NALU.TYPES) { + return NALU.TYPES[nalu.ntype]; + } + else { + return 'UNKNOWN'; + } + }; + NALU.prototype.type = function () { + return this.ntype; + }; + NALU.prototype.isKeyframe = function () { + return this.ntype === NALU.IDR; + }; + NALU.prototype.getSize = function () { + return 4 + this.data.byteLength; + }; + NALU.prototype.getData = function () { + var result = new Uint8Array(this.getSize()); + var view = new DataView(result.buffer); + view.setUint32(0, this.getSize() - 4); + result.set(this.data, 4); + return result; + }; + return NALU; +}()); +exports.default = NALU; diff --git a/web-service/public/js/lib/dist/util/bit-stream.d.ts b/web-service/public/js/lib/dist/util/bit-stream.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d2a1b9c1013ebf799f2bce6fa28cdac8830eb4d2 --- /dev/null +++ b/web-service/public/js/lib/dist/util/bit-stream.d.ts @@ -0,0 +1,19 @@ +export default class BitStream { + private data; + private index; + private bitLength; + constructor(data: Uint8Array); + readonly bitsAvailable: number; + skipBits(size: number): void; + readBits(size: number): number; + private getBits(size, offsetBits, moveIndex?); + skipLZ(): number; + skipUEG(): void; + skipEG(): void; + readUEG(): number; + readEG(): number; + readBoolean(): boolean; + readUByte(): number; + readUShort(): number; + readUInt(): number; +} diff --git a/web-service/public/js/lib/dist/util/bit-stream.js b/web-service/public/js/lib/dist/util/bit-stream.js new file mode 100644 index 0000000000000000000000000000000000000000..6983ed17d9192d6cabfdc9766ce9bc37b4a660af --- /dev/null +++ b/web-service/public/js/lib/dist/util/bit-stream.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var BitStream = (function () { + function BitStream(data) { + this.data = data; + this.index = 0; + this.bitLength = data.byteLength * 8; + } + Object.defineProperty(BitStream.prototype, "bitsAvailable", { + get: function () { + return this.bitLength - this.index; + }, + enumerable: true, + configurable: true + }); + BitStream.prototype.skipBits = function (size) { + if (this.bitsAvailable < size) { + throw new Error('no bytes available'); + } + this.index += size; + }; + BitStream.prototype.readBits = function (size) { + var result = this.getBits(size, this.index); + return result; + }; + BitStream.prototype.getBits = function (size, offsetBits, moveIndex) { + if (moveIndex === void 0) { moveIndex = true; } + if (this.bitsAvailable < size) { + throw new Error('no bytes available'); + } + var offset = offsetBits % 8; + var byte = this.data[(offsetBits / 8) | 0] & (0xff >>> offset); + var bits = 8 - offset; + if (bits >= size) { + if (moveIndex) { + this.index += size; + } + return byte >> (bits - size); + } + else { + if (moveIndex) { + this.index += bits; + } + var nextSize = size - bits; + return (byte << nextSize) | this.getBits(nextSize, offsetBits + bits, moveIndex); + } + }; + BitStream.prototype.skipLZ = function () { + var leadingZeroCount; + for (leadingZeroCount = 0; leadingZeroCount < this.bitLength - this.index; ++leadingZeroCount) { + if (0 !== this.getBits(1, this.index + leadingZeroCount, false)) { + this.index += leadingZeroCount; + return leadingZeroCount; + } + } + return leadingZeroCount; + }; + BitStream.prototype.skipUEG = function () { + this.skipBits(1 + this.skipLZ()); + }; + BitStream.prototype.skipEG = function () { + this.skipBits(1 + this.skipLZ()); + }; + BitStream.prototype.readUEG = function () { + var prefix = this.skipLZ(); + return this.readBits(prefix + 1) - 1; + }; + BitStream.prototype.readEG = function () { + var value = this.readUEG(); + if (0x01 & value) { + return (1 + value) >>> 1; + } + else { + return -1 * (value >>> 1); + } + }; + BitStream.prototype.readBoolean = function () { + return 1 === this.readBits(1); + }; + BitStream.prototype.readUByte = function () { + return this.readBits(8); + }; + BitStream.prototype.readUShort = function () { + return this.readBits(16); + }; + BitStream.prototype.readUInt = function () { + return this.readBits(32); + }; + return BitStream; +}()); +exports.default = BitStream; diff --git a/web-service/public/js/lib/dist/util/debug.d.ts b/web-service/public/js/lib/dist/util/debug.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c7801f1030732d051a163064646352216c66502d --- /dev/null +++ b/web-service/public/js/lib/dist/util/debug.d.ts @@ -0,0 +1,5 @@ +export declare type Logger = (message?: any, ...optionalParams: any[]) => void; +export declare function setLogger(log: Logger, error?: Logger): void; +export declare function isEnable(): boolean; +export declare function log(message?: any, ...optionalParams: any[]): void; +export declare function error(message?: any, ...optionalParams: any[]): void; diff --git a/web-service/public/js/lib/dist/util/debug.js b/web-service/public/js/lib/dist/util/debug.js new file mode 100644 index 0000000000000000000000000000000000000000..6e4354cf09a7414c655324df9843453f1e707de5 --- /dev/null +++ b/web-service/public/js/lib/dist/util/debug.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var logger; +var errorLogger; +function setLogger(log, error) { + logger = log; + errorLogger = error != null ? error : log; +} +exports.setLogger = setLogger; +function isEnable() { + return logger != null; +} +exports.isEnable = isEnable; +function log(message) { + var optionalParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + optionalParams[_i - 1] = arguments[_i]; + } + if (logger) { + logger.apply(void 0, [message].concat(optionalParams)); + } +} +exports.log = log; +function error(message) { + var optionalParams = []; + for (var _i = 1; _i < arguments.length; _i++) { + optionalParams[_i - 1] = arguments[_i]; + } + if (errorLogger) { + errorLogger.apply(void 0, [message].concat(optionalParams)); + } +} +exports.error = error; diff --git a/web-service/public/js/lib/dist/util/nalu-stream-buffer.d.ts b/web-service/public/js/lib/dist/util/nalu-stream-buffer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..591ab4aae4c4e07fd15e59a915a9166b8d478b2e --- /dev/null +++ b/web-service/public/js/lib/dist/util/nalu-stream-buffer.d.ts @@ -0,0 +1,7 @@ +import NALU from './NALU'; +export default class VideoStreamBuffer { + private buffer; + clear(): void; + append(value: ArrayLike<number>): NALU[]; + private mergeBuffer(value); +} diff --git a/web-service/public/js/lib/dist/util/nalu-stream-buffer.js b/web-service/public/js/lib/dist/util/nalu-stream-buffer.js new file mode 100644 index 0000000000000000000000000000000000000000..9d76aa0f657a9b0a77ab1e6b69c746cfcb2d3c72 --- /dev/null +++ b/web-service/public/js/lib/dist/util/nalu-stream-buffer.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var NALU_1 = require("./NALU"); +var VideoStreamBuffer = (function () { + function VideoStreamBuffer() { + } + VideoStreamBuffer.prototype.clear = function () { + this.buffer = undefined; + }; + VideoStreamBuffer.prototype.append = function (value) { + var nextNalHeader = function (b) { + var i = 3; + return function () { + var count = 0; + for (; i < b.length; i++) { + switch (b[i]) { + case 0: + count++; + break; + case 1: + if (count === 3) { + return i - 3; + } + default: + count = 0; + } + } + return; + }; + }; + var result = []; + var buffer; + if (this.buffer) { + if (value[3] === 1 && value[2] === 0 && value[1] === 0 && value[0] === 0) { + result.push(new NALU_1.default(this.buffer.subarray(4))); + buffer = Uint8Array.from(value); + } + } + if (buffer == null) { + buffer = this.mergeBuffer(value); + } + var lastIndex = 0; + var f = nextNalHeader(buffer); + for (var index = f(); index != null; index = f()) { + result.push(new NALU_1.default(buffer.subarray(lastIndex + 4, index))); + lastIndex = index; + } + this.buffer = buffer.subarray(lastIndex); + return result; + }; + VideoStreamBuffer.prototype.mergeBuffer = function (value) { + if (this.buffer == null) { + return Uint8Array.from(value); + } + else { + var newBuffer = new Uint8Array(this.buffer.byteLength + value.length); + if (this.buffer.byteLength > 0) { + newBuffer.set(this.buffer, 0); + } + newBuffer.set(value, this.buffer.byteLength); + return newBuffer; + } + }; + return VideoStreamBuffer; +}()); +exports.default = VideoStreamBuffer; diff --git a/web-service/public/js/lib/dist/video-converter.d.ts b/web-service/public/js/lib/dist/video-converter.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa02344c1c60c8fda36923659b5a35631453169a --- /dev/null +++ b/web-service/public/js/lib/dist/video-converter.d.ts @@ -0,0 +1,26 @@ +export declare const mimeType = "video/mp4; codecs=\"avc1.42E01E\""; +export default class VideoConverter { + private element; + private fps; + private fpf; + private mediaSource; + private sourceBuffer; + private receiveBuffer; + private remuxer; + private mediaReady; + private mediaReadyPromise; + private queue; + private isFirstFrame; + static readonly errorNotes: { + [x: number]: string; + }; + constructor(element: HTMLVideoElement, fps?: number, fpf?: number); + private setup(); + play(): void; + pause(): void; + reset(): void; + appendRawData(data: ArrayLike<number>): void; + private writeFragment(dts, pay); + private writeBuffer(data); + private doAppend(data); +} diff --git a/web-service/public/js/lib/dist/video-converter.js b/web-service/public/js/lib/dist/video-converter.js new file mode 100644 index 0000000000000000000000000000000000000000..c0d768fec8655cef6d336e77d881d374c03d2d3a --- /dev/null +++ b/web-service/public/js/lib/dist/video-converter.js @@ -0,0 +1,185 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var h264_remuxer_1 = require("./h264-remuxer"); +var mp4_generator_1 = require("./mp4-generator"); +var debug = require("./util/debug"); +var nalu_stream_buffer_1 = require("./util/nalu-stream-buffer"); +exports.mimeType = 'video/mp4; codecs="avc1.42E01E"'; +var VideoConverter = (function () { + function VideoConverter(element, fps, fpf) { + if (fps === void 0) { fps = 60; } + if (fpf === void 0) { fpf = fps; } + this.element = element; + this.fps = fps; + this.fpf = fpf; + this.receiveBuffer = new nalu_stream_buffer_1.default(); + this.queue = []; + if (!MediaSource || !MediaSource.isTypeSupported(exports.mimeType)) { + throw new Error("Your browser is not supported: " + exports.mimeType); + } + this.reset(); + } + Object.defineProperty(VideoConverter, "errorNotes", { + get: function () { + return _a = {}, + _a[MediaError.MEDIA_ERR_ABORTED] = 'fetching process aborted by user', + _a[MediaError.MEDIA_ERR_NETWORK] = 'error occurred when downloading', + _a[MediaError.MEDIA_ERR_DECODE] = 'error occurred when decoding', + _a[MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED] = 'audio/video not supported', + _a; + var _a; + }, + enumerable: true, + configurable: true + }); + VideoConverter.prototype.setup = function () { + var _this = this; + this.mediaReadyPromise = new Promise(function (resolve, _reject) { + _this.mediaSource.addEventListener('sourceopen', function () { + debug.log("Media Source opened."); + _this.sourceBuffer = _this.mediaSource.addSourceBuffer(exports.mimeType); + _this.sourceBuffer.addEventListener('updateend', function () { + debug.log(" SourceBuffer updateend"); + debug.log(" sourceBuffer.buffered.length=" + _this.sourceBuffer.buffered.length); + for (var i = 0, len = _this.sourceBuffer.buffered.length; i < len; i++) { + debug.log(" sourceBuffer.buffered [" + i + "]: " + + (_this.sourceBuffer.buffered.start(i) + ", " + _this.sourceBuffer.buffered.end(i))); + } + debug.log(" mediasource.duration=" + _this.mediaSource.duration); + debug.log(" mediasource.readyState=" + _this.mediaSource.readyState); + debug.log(" video.duration=" + _this.element.duration); + debug.log(" video.buffered.length=" + _this.element.buffered.length); + if (debug.isEnable()) { + for (var i = 0, len = _this.element.buffered.length; i < len; i++) { + debug.log(" video.buffered [" + i + "]: " + _this.element.buffered.start(i) + ", " + _this.element.buffered.end(i)); + } + } + debug.log(" video.currentTime=" + _this.element.currentTime); + debug.log(" video.readyState=" + _this.element.readyState); + var data = _this.queue.shift(); + if (data) { + _this.writeBuffer(data); + } + }); + _this.sourceBuffer.addEventListener('error', function () { + debug.error(' SourceBuffer errored!'); + }); + _this.mediaReady = true; + resolve(); + }, false); + _this.mediaSource.addEventListener('sourceclose', function () { + debug.log("Media Source closed."); + _this.mediaReady = false; + }, false); + _this.element.src = URL.createObjectURL(_this.mediaSource); + }); + return this.mediaReadyPromise; + }; + VideoConverter.prototype.play = function () { + var _this = this; + if (!this.element.paused) { + return; + } + if (this.mediaReady && this.element.readyState >= 2) { + this.element.play(); + } + else { + var handler_1 = function () { + _this.play(); + _this.element.removeEventListener('canplaythrough', handler_1); + }; + this.element.addEventListener('canplaythrough', handler_1); + } + }; + VideoConverter.prototype.pause = function () { + if (this.element.paused) { + return; + } + this.element.pause(); + }; + VideoConverter.prototype.reset = function () { + this.receiveBuffer.clear(); + if (this.mediaSource && this.mediaSource.readyState === 'open') { + this.mediaSource.duration = 0; + this.mediaSource.endOfStream(); + } + this.mediaSource = new MediaSource(); + this.remuxer = new h264_remuxer_1.default(this.fps, this.fpf, this.fps * 60); + this.mediaReady = false; + this.mediaReadyPromise = undefined; + this.queue = []; + this.isFirstFrame = true; + this.setup(); + }; + VideoConverter.prototype.appendRawData = function (data) { + var nalus = this.receiveBuffer.append(data); + for (var _i = 0, nalus_1 = nalus; _i < nalus_1.length; _i++) { + var nalu = nalus_1[_i]; + var ret = this.remuxer.remux(nalu); + if (ret) { + this.writeFragment(ret[0], ret[1]); + } + } + }; + VideoConverter.prototype.writeFragment = function (dts, pay) { + var remuxer = this.remuxer; + if (remuxer.mp4track.isKeyFrame) { + this.writeBuffer(mp4_generator_1.default.initSegment([remuxer.mp4track], Infinity, remuxer.timescale)); + } + if (pay && pay.byteLength) { + debug.log(" Put fragment: " + remuxer.seqNum + ", frames=" + remuxer.mp4track.samples.length + ", size=" + pay.byteLength); + var fragment = mp4_generator_1.default.fragmentSegment(remuxer.seqNum, dts, remuxer.mp4track, pay); + this.writeBuffer(fragment); + remuxer.flush(); + } + else { + debug.error("Nothing payload!"); + } + }; + VideoConverter.prototype.writeBuffer = function (data) { + var _this = this; + if (this.mediaReady) { + if (this.sourceBuffer.updating) { + this.queue.push(data); + } + else { + this.doAppend(data); + } + } + else { + this.queue.push(data); + if (this.mediaReadyPromise) { + this.mediaReadyPromise.then(function () { + if (!_this.sourceBuffer.updating) { + var d = _this.queue.shift(); + if (d) { + _this.writeBuffer(d); + } + } + }); + this.mediaReadyPromise = undefined; + } + } + }; + VideoConverter.prototype.doAppend = function (data) { + var error = this.element.error; + if (error) { + debug.error("MSE Error Occured: " + VideoConverter.errorNotes[error.code]); + this.element.pause(); + if (this.mediaSource.readyState === 'open') { + this.mediaSource.endOfStream(); + } + } + else { + try { + this.sourceBuffer.appendBuffer(data); + debug.log(" appended buffer: size=" + data.byteLength); + } + catch (err) { + debug.error("MSE Error occured while appending buffer. " + err.name + ": " + err.message); + } + } + }; + return VideoConverter; +}()); +exports.default = VideoConverter; diff --git a/web-service/public/js/lib/libde265min.js b/web-service/public/js/lib/libde265min.js deleted file mode 100644 index 566919e527bdc11f6c2845578c4654e3ac92d755..0000000000000000000000000000000000000000 --- a/web-service/public/js/lib/libde265min.js +++ /dev/null @@ -1,462 +0,0 @@ -/* - libde265.js HEVC/H.265 decoder - (c)2014 struktur AG, http://www.struktur.de, opensource@struktur.de - - This file is part of libde265.js - https://github.com/strukturag/libde265.js - - libde265.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - libde265.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with libde265.js. If not, see <http://www.gnu.org/licenses/>. -*/ -function l(M){throw M;}var p=void 0,s=!0,v=null,G=!1;function H(){return function(){}}function la(M){return function(T){this[M]=T}}function U(M){return function(){return M}} -(function(){function M(a){this.canvas=a;this.Q=a.getContext("2d");this.mc=this.Ic=this.nc=v;this.Zb=G;this.xc()}function T(){this.Sc=v;this.Na=W(2);this.stop=G;this.Q=F.de265_new_decoder();this.Tb="undefined"!==typeof Worker&&"undefined"!==typeof Uint8ClampedArray&&"undefined"!==typeof Blob?new ab:new bb}function bb(){}function ab(){this.tb=[];if(cb===v){var a=Fb.toString(),b=Fb.name;b||(b=/^function\s+([\w\$]+)\s*\(/.exec(a)[1]);a=new Blob(["(function() {\n",Gb.toString()+";\n",db.toString()+";\n", -a+";\n",b+"();\n","}).call(this);"],{type:"text/javascript"});cb=window.URL.createObjectURL(a)}var c=this;this.kb=new Worker(cb);this.kb.addEventListener("message",function(a){switch(a.data.cmd){case "converted":var b=c.tb[0];c.tb=c.tb.splice(1);b(a.data.data.image);break;case "stopped":c=c.tb=v}},G);this.kb.postMessage({cmd:"start"})}function Ba(a,b){this.mf=a;this.ra=b;this.height=this.width=v}function Hb(a){eval.call(v,a)}function K(a,b){a||ga("Assertion failed: "+b)}function Ib(a){try{var b=e["_"+ -a];b||(b=eval("_"+a))}catch(c){}K(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}function Jb(a,b,c,f){function d(a,b){if("string"==b){if(a===v||a===p||0===a)return 0;a=X(a);b="array"}if("array"==b){h||(h=t.gd());var c=t.ed(a.length);eb(a,c);return c}return a}var h=0,e=0,f=f?f.map(function(a){return d(a,c[e++])}):[];a=a.apply(v,f);"string"==b?b=Y(a):(K("array"!=b),b=a);h&&t.fd(h);return b}function E(a,b,c){var f=Ib(a);return function(){return Jb(f, -b,c,Array.prototype.slice.call(arguments))}}function Ja(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":x[a]=b;break;case "i8":x[a]=b;break;case "i16":Z[a>>1]=b;break;case "i32":u[a>>2]=b;break;case "i64":sa=[b>>>0,(V=b,1<=+fb(V)?0<V?(Ka(+Kb(V/4294967296),4294967295)|0)>>>0:~~+Lb((V-+(~~V>>>0))/4294967296)>>>0:0)];u[a>>2]=sa[0];u[a+4>>2]=sa[1];break;case "float":na[a>>2]=b;break;case "double":ha[a>>3]=b;break;default:ga("invalid type for setValue: "+c)}}function ta(a,b){b= -b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return x[a];case "i8":return x[a];case "i16":return Z[a>>1];case "i32":return u[a>>2];case "i64":return u[a>>2];case "float":return na[a>>2];case "double":return ha[a>>3];default:ga("invalid type for setValue: "+b)}return v}function I(a,b,c,f){var d,h;"number"===typeof a?(d=s,h=a):(d=G,h=a.length);var e="string"===typeof b?b:v,c=c==ua?f:[W,t.ed,t.we,t.Xb][c===p?Q:c](Math.max(h,e?1:b.length));if(d){f=c;K(0==(c&3));for(a=c+(h&-4);f<a;f+= -4)u[f>>2]=0;for(a=c+h;f<a;)x[f++|0]=0;return c}if("i8"===e)return a.subarray||a.slice?N.set(a,c):N.set(new Uint8Array(a),c),c;for(var f=0,j,n;f<h;){var r=a[f];"function"===typeof r&&(r=t.Ci(r));d=e||b[f];0===d?f++:("i64"==d&&(d="i32"),Ja(c+f,r,d),n!==d&&(j=t.Pc(d),n=d),f+=j)}return c}function Y(a,b){for(var c=G,f,d=0;;){f=N[a+d|0];if(128<=f)c=s;else if(0==f&&!b)break;d++;if(b&&d==b)break}b||(b=d);var h="";if(!c){for(;0<b;)f=String.fromCharCode.apply(String,N.subarray(a,a+Math.min(b,1024))),h=h?h+ -f:f,a+=1024,b-=1024;return h}c=new t.pb;for(d=0;d<b;d++)f=N[a+d|0],h+=c.kc(f);return h}function vc(a){function b(e,g,r){var g=g||Infinity,m="",q=[],w;if("N"===a[c]){c++;"K"===a[c]&&c++;for(w=[];"E"!==a[c];)if("S"===a[c]){c++;var B=a.indexOf("_",c);w.push(d[a.substring(c,B)||0]||"?");c=B+1}else if("C"===a[c])w.push(w[w.length-1]),c+=2;else{var B=parseInt(a.substr(c)),C=B.toString().length;if(!B||!C){c--;break}var i=a.substr(c+C,B);w.push(i);d.push(i);c+=C+B}c++;w=w.join("::");g--;if(0===g)return e? -[w]:w}else if(("K"===a[c]||h&&"L"===a[c])&&c++,B=parseInt(a.substr(c)))C=B.toString().length,w=a.substr(c+C,B),c+=C+B;h=G;"I"===a[c]?(c++,B=b(s),C=b(s,1,s),m+=C[0]+" "+w+"<"+B.join(", ")+">"):m=w;a:for(;c<a.length&&0<g--;)if(w=a[c++],w in f)q.push(f[w]);else switch(w){case "P":q.push(b(s,1,s)[0]+"*");break;case "R":q.push(b(s,1,s)[0]+"&");break;case "L":c++;B=a.indexOf("E",c)-c;q.push(a.substr(c,B));c+=B+2;break;case "A":B=parseInt(a.substr(c));c+=B.toString().length;"_"!==a[c]&&l("?");c++;q.push(b(s, -1,s)[0]+" ["+B+"]");break;case "E":break a;default:m+="?"+w;break a}!r&&(1===q.length&&"void"===q[0])&&(q=[]);return e?q:m+("("+q.join(", ")+")")}var c=3,f={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:"..."},d=[],h=s;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=Y(a));if("_"!==a[0]||"_"!==a[1]||"Z"!== -a[2])return a;switch(a[3]){case "n":return"operator new()";case "d":return"operator delete()"}return b()}catch(e){return a}}function gb(){var a=Error().stack;return a?a.replace(/__Z[\w\d_]+/g,function(a){var c=vc(a);return a===c?a:a+" ["+c+"]"}):"(no stack trace available)"}function va(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.qa;"number"===typeof c?b.Mb===p?t.Wb("v",c):t.Wb("vi",c,[b.Mb]):c(b.Mb===p?v:b.Mb)}}}function Mb(a){hb.unshift(a)}function Nb(a){Ob.unshift(a)} -function X(a,b,c){a=(new t.pb).oe(a);c&&(a.length=c);b||a.push(0);return a}function eb(a,b){for(var c=0;c<a.length;c++)x[b+c|0]=a[c]}function Pb(a,b,c){for(var f=0;f<a.length;f++)x[b+f|0]=a.charCodeAt(f);c||(x[b+a.length|0]=0)}function ib(a,b){return 0<=a?a:32>=b?2*Math.abs(1<<b-1)+a:Math.pow(2,b)+a}function Qb(a,b){if(0>=a)return a;var c=32>=b?Math.abs(1<<b-1):Math.pow(2,b-1);if(a>=c&&(32>=b||a>c))a=-2*c+a;return a}function Rb(){ia++;e.monitorRunDependencies&&e.monitorRunDependencies(ia)}function jb(){ia--; -e.monitorRunDependencies&&e.monitorRunDependencies(ia);if(0==ia&&(kb!==v&&(clearInterval(kb),kb=v),Ca)){var a=Ca;Ca=v;a()}}function wa(){return!!wa.kd}function lb(a){var b=G;try{a==__ZTIi&&(b=s)}catch(c){}try{a==__ZTIj&&(b=s)}catch(f){}try{a==__ZTIl&&(b=s)}catch(d){}try{a==__ZTIm&&(b=s)}catch(h){}try{a==__ZTIx&&(b=s)}catch(e){}try{a==__ZTIy&&(b=s)}catch(j){}try{a==__ZTIf&&(b=s)}catch(n){}try{a==__ZTId&&(b=s)}catch(r){}try{a==__ZTIe&&(b=s)}catch(m){}try{a==__ZTIc&&(b=s)}catch(q){}try{a==__ZTIa&&(b= -s)}catch(w){}try{a==__ZTIh&&(b=s)}catch(B){}try{a==__ZTIs&&(b=s)}catch(C){}try{a==__ZTIt&&(b=s)}catch(i){}return b}function La(a,b,c){if(0==c)return G;if(0==b||b==a)return s;switch(lb(b)?b:u[u[b>>2]-8>>2]){case 0:return 0==u[u[a>>2]-8>>2]?La(u[a+8>>2],u[b+8>>2],c):G;case 1:return G;case 2:return La(a,u[b+8>>2],c);default:return G}}function Sb(a){try{return Ma(a-xa)}catch(b){}}function mb(a,b,c){if(!mb.Xa){try{u[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(f){}try{u[nb>>2]=1}catch(d){}try{u[ob>> -2]=2}catch(e){}mb.Xa=s}var g=a-xa;u[g>>2]=b;u[g+4>>2]=c;ya=a;"uncaught_exception"in wa?wa.kd++:wa.kd=1;l(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")}function P(a){return u[Na>>2]=a}function Tb(){l("TODO")}function pb(a,b,c){a=d.Aa(a);if(!a)return P(i.S),-1;try{return d.write(a,x,b,c)}catch(f){return d.bc(f),-1}}function Ub(a){return d.ub(a).ba}function Vb(a,b,c,f){c*=b;if(0==c)return 0; -a=pb(Ub(f),a,c);if(-1==a){if(b=d.ub(f))b.error=s;return 0}return Math.floor(a/b)}function Oa(a){return 0>a||0===a&&-Infinity===1/a}function qb(a,b){function c(a){var c;"double"===a?c=ha[b+d>>3]:"i64"==a?(c=[u[b+d>>2],u[b+(d+8)>>2]],d+=8):(a="i32",c=u[b+d>>2]);d+=Math.max(t.Xd(a),t.ya(a,v,s));return c}for(var f=a,d=0,e=[],g,j;;){var n=f;g=x[f];if(0===g)break;j=x[f+1|0];if(37==g){var r=G,m=G,q=G,w=G,B=G;a:for(;;){switch(j){case 43:r=s;break;case 45:m=s;break;case 35:q=s;break;case 48:if(w)break a;else{w= -s;break}case 32:B=s;break;default:break a}f++;j=x[f+1|0]}var C=0;if(42==j)C=c("i32"),f++,j=x[f+1|0];else for(;48<=j&&57>=j;)C=10*C+(j-48),f++,j=x[f+1|0];var i=G,k=-1;if(46==j){k=0;i=s;f++;j=x[f+1|0];if(42==j)k=c("i32"),f++;else for(;;){j=x[f+1|0];if(48>j||57<j)break;k=10*k+(j-48);f++}j=x[f+1|0]}0>k&&(k=6,i=G);var D;switch(String.fromCharCode(j)){case "h":j=x[f+2|0];104==j?(f++,D=1):D=2;break;case "l":j=x[f+2|0];108==j?(f++,D=8):D=4;break;case "L":case "q":case "j":D=8;break;case "z":case "t":case "I":D= -4;break;default:D=v}D&&f++;j=x[f+1|0];switch(String.fromCharCode(j)){case "d":case "i":case "u":case "o":case "x":case "X":case "p":n=100==j||105==j;D=D||4;var R=g=c("i"+8*D),y;8==D&&(g=t.Nf(g[0],g[1],117==j));4>=D&&(g=(n?Qb:ib)(g&Math.pow(256,D)-1,8*D));var z=Math.abs(g),n="";if(100==j||105==j)y=8==D&&za?za.stringify(R[0],R[1],v):Qb(g,8*D).toString(10);else if(117==j)y=8==D&&za?za.stringify(R[0],R[1],s):ib(g,8*D).toString(10),g=Math.abs(g);else if(111==j)y=(q?"0":"")+z.toString(8);else if(120==j|| -88==j){n=q&&0!=g?"0x":"";if(8==D&&za)if(R[1]){y=(R[1]>>>0).toString(16);for(q=(R[0]>>>0).toString(16);8>q.length;)q="0"+q;y+=q}else y=(R[0]>>>0).toString(16);else if(0>g){g=-g;y=(z-1).toString(16);R=[];for(q=0;q<y.length;q++)R.push((15-parseInt(y[q],16)).toString(16));for(y=R.join("");y.length<2*D;)y="f"+y}else y=z.toString(16);88==j&&(n=n.toUpperCase(),y=y.toUpperCase())}else 112==j&&(0===z?y="(nil)":(n="0x",y=z.toString(16)));if(i)for(;y.length<k;)y="0"+y;0<=g&&(r?n="+"+n:B&&(n=" "+n));"-"==y.charAt(0)&& -(n="-"+n,y=y.substr(1));for(;n.length+y.length<C;)m?y+=" ":w?y="0"+y:n=" "+n;y=n+y;y.split("").forEach(function(a){e.push(a.charCodeAt(0))});break;case "f":case "F":case "e":case "E":case "g":case "G":g=c("double");if(isNaN(g))y="nan",w=G;else if(isFinite(g)){i=G;D=Math.min(k,20);if(103==j||71==j)i=s,k=k||1,D=parseInt(g.toExponential(D).split("e")[1],10),k>D&&-4<=D?(j=(103==j?"f":"F").charCodeAt(0),k-=D+1):(j=(103==j?"e":"E").charCodeAt(0),k--),D=Math.min(k,20);if(101==j||69==j)y=g.toExponential(D), -/[eE][-+]\d$/.test(y)&&(y=y.slice(0,-1)+"0"+y.slice(-1));else if(102==j||70==j)y=g.toFixed(D),0===g&&Oa(g)&&(y="-"+y);n=y.split("e");if(i&&!q)for(;1<n[0].length&&-1!=n[0].indexOf(".")&&("0"==n[0].slice(-1)||"."==n[0].slice(-1));)n[0]=n[0].slice(0,-1);else for(q&&-1==y.indexOf(".")&&(n[0]+=".");k>D++;)n[0]+="0";y=n[0]+(1<n.length?"e"+n[1]:"");69==j&&(y=y.toUpperCase());0<=g&&(r?y="+"+y:B&&(y=" "+y))}else y=(0>g?"-":"")+"inf",w=G;for(;y.length<C;)y=m?y+" ":w&&("-"==y[0]||"+"==y[0])?y[0]+"0"+y.slice(1): -(w?"0":" ")+y;97>j&&(y=y.toUpperCase());y.split("").forEach(function(a){e.push(a.charCodeAt(0))});break;case "s":w=(r=c("i8*"))?Wb(r):6;i&&(w=Math.min(w,k));if(!m)for(;w<C--;)e.push(32);if(r)for(q=0;q<w;q++)e.push(N[r++|0]);else e=e.concat(X("(null)".substr(0,w),s));if(m)for(;w<C--;)e.push(32);break;case "c":for(m&&e.push(c("i8"));0<--C;)e.push(32);m||e.push(c("i8"));break;case "n":m=c("i32*");u[m>>2]=e.length;break;case "%":e.push(g);break;default:for(q=n;q<f+2;q++)e.push(x[q])}f+=2}else e.push(g), -f+=1}return e}function rb(a,b,c){c=qb(b,c);b=t.gd();a=Vb(I(c,"i8",Xb),1,c.length,a);t.fd(b);return a}function sb(a){e.exit(a)}function Pa(){if(Pa.se)Pa.se=G;else{k.setThrew(0);var a=tb.pop();if(a){header=a-xa;var b=u[header+4>>2];b&&(t.Wb("vi",b,[a]),u[header+4>>2]=0);Sb(a);ya=0}}}function ub(a,b,c,f){c=qb(c,f);f=b===p?c.length:Math.min(c.length,Math.max(b-1,0));if(0>a)var a=-a,d=W(f+1),a=u[a>>2]=d;for(d=0;d<f;d++)x[a+d|0]=c[d];if(f<b||b===p)x[a+d|0]=0;return c.length}function Yb(a,b,c){return ub(a, -p,b,c)}function vb(a,b,c){a=d.Aa(a);if(!a)return P(i.S),-1;try{return d.O(a,x,b,c)}catch(f){return d.bc(f),-1}}function Zb(a,b,c,f){c*=b;if(0==c)return 0;var ma=0,f=d.ub(f);if(!f)return P(i.S),0;for(;f.qc.length&&0<c;)x[a++|0]=f.qc.pop(),c--,ma++;a=vb(f.ba,a,c);if(-1==a)return f&&(f.error=s),0;ma+=a;ma<c&&(f.Rd=s);return Math.floor(ma/b)}function Qa(a){var b=d.ub(a);if(!b||b.Rd||b.error)return-1;a=Zb(Qa.$,1,1,a);return 0==a?-1:-1==a?(b.error=s,-1):N[Qa.$|0]}function $b(a,b,c){if(a in Ra){if(Ra[a].length> -c-1)return P(i.rd);Pb(Ra[a],b);return 0}return P(i.C)}function Da(a){Da.buffer||(Da.buffer=W(256));$b(a,Da.buffer,256);return Da.buffer}function ac(a){return 48<=a&&57>=a||97<=a&&102>=a||65<=a&&70>=a}function bc(a){return 48<=a&&57>=a}function cc(a){return/^[+-]?[0-9]*\.?[0-9]+([eE][+-]?[0-9]+)?/.exec(a)}function S(a,b,c,f){S.whiteSpace||(S.whiteSpace={},S.whiteSpace[32]=1,S.whiteSpace[9]=1,S.whiteSpace[10]=1,S.whiteSpace[11]=1,S.whiteSpace[12]=1,S.whiteSpace[13]=1);var a=Y(a),d=0;if(0<=a.indexOf("%n"))var e= -b,b=function(){d++;return e()},g=c,c=function(){d--;return g()};var j=0,n=0,r=0,m,j=0;a:for(;j<a.length;)if("%"===a[j]&&"n"==a[j+1]){var q=u[f+r>>2],r=r+t.ya("void*",v,s);u[q>>2]=d;j+=2}else{if("%"===a[j]){var w=a.indexOf("c",j+1);if(0<w){var B=1;w>j+1&&(m=a.substring(j+1,w),B=parseInt(m),B!=m&&(B=0));if(B){q=u[f+r>>2];r+=t.ya("void*",v,s);n++;for(var C=0;C<B;C++)if(m=b(),x[q++|0]=m,0===m)return 0<C?n:n-1;j+=w-j+1;continue}}}if("%"===a[j]&&0<a.indexOf("[",j+1)&&(w=/\%([0-9]*)\[(\^)?(\]?[^\]]*)\]/.exec(a.substring(j)))){for(var B= -parseInt(w[1])||Infinity,i="^"===w[2],k=w[3];m=/([^\-])\-([^\-])/.exec(k);){for(var q=m[1].charCodeAt(0),C=m[2].charCodeAt(0),D="";q<=C;D+=String.fromCharCode(q++));k=k.replace(m[1]+"-"+m[2],D)}q=u[f+r>>2];r+=t.ya("void*",v,s);n++;for(C=0;C<B;C++)if(m=b(),i)if(0>k.indexOf(String.fromCharCode(m)))x[q++|0]=m;else{c();break}else if(0<=k.indexOf(String.fromCharCode(m)))x[q++|0]=m;else{c();break}x[q++|0]=0;j+=w[0].length;continue}for(;;){m=b();if(0==m)return n;if(!(m in S.whiteSpace))break}c();if("%"=== -a[j]){j++;q=G;"*"==a[j]&&(q=s,j++);for(m=j;48<=a[j].charCodeAt(0)&&57>=a[j].charCodeAt(0);)j++;var R;j!=m&&(R=parseInt(a.slice(m,j),10));i=B=w=G;"l"==a[j]?(w=s,j++,"l"==a[j]&&(i=s,j++)):"h"==a[j]&&(B=s,j++);k=a[j];j++;C=0;D=[];if("f"==k||"e"==k||"g"==k||"F"==k||"E"==k||"G"==k){for(m=b();0<m&&!(m in S.whiteSpace);)D.push(String.fromCharCode(m)),m=b();m=(m=cc(D.join("")))?m[0].length:0;for(C=0;C<D.length-m+1;C++)c();D.length=m}else{m=b();var y=s;if(("x"==k||"X"==k)&&48==m){var z=b();120==z||88==z?m= -b():c()}for(;(C<R||isNaN(R))&&0<m;)if(!(m in S.whiteSpace)&&("s"==k||("d"===k||"u"==k||"i"==k)&&(48<=m&&57>=m||y&&45==m)||("x"===k||"X"===k)&&(48<=m&&57>=m||97<=m&&102>=m||65<=m&&70>=m))&&(j>=a.length||m!==a[j].charCodeAt(0)))D.push(String.fromCharCode(m)),m=b(),C++,y=G;else break;c()}if(0===D.length)return 0;if(!q){m=D.join("");q=u[f+r>>2];r+=t.ya("void*",v,s);switch(k){case "d":case "u":case "i":B?Z[q>>1]=parseInt(m,10):i?(sa=[parseInt(m,10)>>>0,(V=parseInt(m,10),1<=+fb(V)?0<V?(Ka(+Kb(V/4294967296), -4294967295)|0)>>>0:~~+Lb((V-+(~~V>>>0))/4294967296)>>>0:0)],u[q>>2]=sa[0],u[q+4>>2]=sa[1]):u[q>>2]=parseInt(m,10);break;case "X":case "x":u[q>>2]=parseInt(m,16);break;case "F":case "f":case "E":case "e":case "G":case "g":case "E":w?ha[q>>3]=parseFloat(m):na[q>>2]=parseFloat(m);break;case "s":m=X(m);for(C=0;C<m.length;C++)x[q+C|0]=m[C]}n++}}else{if(a[j].charCodeAt(0)in S.whiteSpace){for(m=b();m in S.whiteSpace;){if(0>=m)break a;m=b()}c(m)}else if(m=b(),a[j].charCodeAt(0)!==m){c(m);break a}j++}}return n} -function dc(a,b,c){var f=0;return S(b,function(){return x[a+f++|0]},function(){f--},c)}function ec(){var a=ec;if(!a.$){for(var b=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,2,2,2,2,2,2,2,8195,8194,8194,8194,8194,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,24577,49156,49156,49156,49156,49156, -49156,49156,49156,49156,49156,49156,49156,49156,49156,49156,55304,55304,55304,55304,55304,55304,55304,55304,55304,55304,49156,49156,49156,49156,49156,49156,49156,54536,54536,54536,54536,54536,54536,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,50440,49156,49156,49156,49156,49156,49156,54792,54792,54792,54792,54792,54792,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696,50696, -50696,49156,49156,49156,49156,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],c=W(2*b.length),f=0;f<b.length;f++)Z[c+2*f>>1]=b[f];a.$=I([c+256],"i16*",oa)}return a.$}function fc(){var a=fc;if(!a.$){for(var b=[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148, -149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, -28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165, -166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],c=W(4*b.length),f=0;f<b.length;f++)u[c+4*f>>2]=b[f];a.$=I([c+512],"i32*",oa)}return a.$}function gc(){var a=gc;if(!a.$){for(var b=[128,129,130, -131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,-1,0, -1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158, -159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],c=W(4*b.length),f=0;f<b.length;f++)u[c+4*f>>2]=b[f];a.$=I([c+512],"i32*",oa)}return a.$}function Ea(a){return 0=== -a%4&&(0!==a%100||0===a%400)}function Sa(a,b){for(var c=0,f=0;f<=b;c+=a[f++]);return c}function Fa(a,b){for(var c=new Date(a.getTime());0<b;){var f=c.getMonth(),d=(Ea(c.getFullYear())?Ta:Ua)[f];if(b>d-c.getDate())b-=d-c.getDate()+1,c.setDate(1),11>f?c.setMonth(f+1):(c.setMonth(0),c.setFullYear(c.getFullYear()+1));else{c.setDate(c.getDate()+b);break}}return c}function hc(a,b,c,f){function d(a,b,c){for(a="number"===typeof a?a.toString():a||"";a.length<b;)a=c[0]+a;return a}function e(a,b){return d(a, -b,"0")}function g(a,b){var c;if(0===(c=0>a.getFullYear()-b.getFullYear()?-1:0<a.getFullYear()-b.getFullYear()?1:0))if(0===(c=0>a.getMonth()-b.getMonth()?-1:0<a.getMonth()-b.getMonth()?1:0))c=0>a.getDate()-b.getDate()?-1:0<a.getDate()-b.getDate()?1:0;return c}function j(a){switch(a.getDay()){case 0:return new Date(a.getFullYear()-1,11,29);case 1:return a;case 2:return new Date(a.getFullYear(),0,3);case 3:return new Date(a.getFullYear(),0,2);case 4:return new Date(a.getFullYear(),0,1);case 5:return new Date(a.getFullYear()- -1,11,31);case 6:return new Date(a.getFullYear()-1,11,30)}}function n(a){var a=Fa(new Date(a.P+1900,0,1),a.oc),b=j(new Date(a.getFullYear()+1,0,4));return 0>=g(j(new Date(a.getFullYear(),0,4)),a)?0>=g(b,a)?a.getFullYear()+1:a.getFullYear():a.getFullYear()-1}var f={fg:u[f>>2],eg:u[f+4>>2],jb:u[f+8>>2],Ta:u[f+12>>2],Da:u[f+16>>2],P:u[f+20>>2],ye:u[f+24>>2],oc:u[f+28>>2],jj:u[f+32>>2]},c=Y(c),r={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S", -"%x":"%m/%d/%y","%X":"%H:%M:%S"},m;for(m in r)c=c.replace(RegExp(m,"g"),r[m]);var q="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),w="January February March April May June July August September October November December".split(" "),r={"%a":function(a){return q[a.ye].substring(0,3)},"%A":function(a){return q[a.ye]},"%b":function(a){return w[a.Da].substring(0,3)},"%B":function(a){return w[a.Da]},"%C":function(a){return e(Math.floor((a.P+1900)/100),2)},"%d":function(a){return e(a.Ta, -2)},"%e":function(a){return d(a.Ta,2," ")},"%g":function(a){return n(a).toString().substring(2)},"%G":function(a){return n(a)},"%H":function(a){return e(a.jb,2)},"%I":function(a){return e(13>a.jb?a.jb:a.jb-12,2)},"%j":function(a){return e(a.Ta+Sa(Ea(a.P+1900)?Ta:Ua,a.Da-1),3)},"%m":function(a){return e(a.Da+1,2)},"%M":function(a){return e(a.eg,2)},"%n":U("\n"),"%p":function(a){return 0<a.jb&&13>a.jb?"AM":"PM"},"%S":function(a){return e(a.fg,2)},"%t":U("\t"),"%u":function(a){return(new Date(a.P+1900, -a.Da+1,a.Ta,0,0,0,0)).getDay()||7},"%U":function(a){var b=new Date(a.P+1900,0,1),c=0===b.getDay()?b:Fa(b,7-b.getDay()),a=new Date(a.P+1900,a.Da,a.Ta);return 0>g(c,a)?e(Math.ceil((31-c.getDate()+(Sa(Ea(a.getFullYear())?Ta:Ua,a.getMonth()-1)-31)+a.getDate())/7),2):0===g(c,b)?"01":"00"},"%V":function(a){var b=j(new Date(a.P+1900,0,4)),c=j(new Date(a.P+1901,0,4)),f=Fa(new Date(a.P+1900,0,1),a.oc);return 0>g(f,b)?"53":0>=g(c,f)?"01":e(Math.ceil((b.getFullYear()<a.P+1900?a.oc+32-b.getDate():a.oc+1-b.getDate())/ -7),2)},"%w":function(a){return(new Date(a.P+1900,a.Da+1,a.Ta,0,0,0,0)).getDay()},"%W":function(a){var b=new Date(a.P,0,1),c=1===b.getDay()?b:Fa(b,0===b.getDay()?1:7-b.getDay()+1),a=new Date(a.P+1900,a.Da,a.Ta);return 0>g(c,a)?e(Math.ceil((31-c.getDate()+(Sa(Ea(a.getFullYear())?Ta:Ua,a.getMonth()-1)-31)+a.getDate())/7),2):0===g(c,b)?"01":"00"},"%y":function(a){return(a.P+1900).toString().substring(2)},"%Y":function(a){return a.P+1900},"%z":U(""),"%Z":U(""),"%%":U("%")};for(m in r)0<=c.indexOf(m)&& -(c=c.replace(RegExp(m,"g"),r[m](f)));m=X(c,G);if(m.length>b)return 0;eb(m,a);return m.length-1}function ic(a){return 32==a||9<=a&&13>=a}function wb(a,b,c,f,d,e){for(var g=G;ic(x[a]);)a++;45==x[a]?(a++,g=s):43==x[a]&&a++;var j=G;if(c){if(16==c&&48==x[a]&&(120==x[a+1|0]||88==x[a+1|0]))a+=2}else 48==x[a]&&(120==x[a+1|0]||88==x[a+1|0]?(c=16,a+=2):(c=8,j=s));c||(c=10);for(var n=a,r;0!=(r=x[a])&&!isNaN(parseInt(String.fromCharCode(r),c));)a++,j=s;if(!j)return P(i.C),(k.setTempRet0(0),0)|0;b&&(u[b>>2]=a); -try{var m=g?"-"+Y(n,a-n):Y(n,a-n);za.N(m,c,f,d,e)}catch(q){P(i.rd)}return(k.setTempRet0(u[ja+4>>2]|0),u[ja>>2]|0)|0}function jc(a,b,c){return wb(a,b,c,0,"18446744073709551615",s)}function kc(a,b,c){return wb(a,b,c,"-9223372036854775808","9223372036854775807")}function lc(a,b,c){return Yb(-a,b,c)}function mc(a){var b=mc;b.Xe||($=$+4095&-4096,b.Xe=s,K(t.Xb),b.Ve=t.Xb,t.Xb=function(){ga("cannot dynamically allocate, sbrk now has control")});var c=$;0!=a&&b.Ve(a);return c}function xb(a){this.name="ExitStatus"; -this.message="Program terminated with exit("+a+")";this.status=a}function yb(a){function b(){if(!e.calledRun){e.calledRun=s;Va||(Va=s,va(pa));va(zb);e._main&&Ab&&e.callMain(a);if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)Nb(e.postRun.shift());va(Ob)}}a=a||e.arguments;Wa===v&&(Wa=Date.now());if(0<ia)e.Ca("run() called, but dependencies remain, so not running");else{if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)Mb(e.preRun.shift()); -va(hb);!(0<ia)&&!e.calledRun&&(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1);qa||b()},1)):b())}}function nc(a){qa=s;aa=oc;va(Ga);l(new xb(a))}function ga(a){a&&(e.print(a),e.Ca(a));qa=s;l("abort() at "+gb())}function Fb(){self.addEventListener("message",function(a){a=a.data;switch(a.cmd){case "stop":this.postMessage({cmd:"stopped"});self.close();break;case "convert":a=db(a.data.chroma,a.data.y,a.data.u,a.data.v,a.data.w,a.data.h,a.data.stridey, -a.data.strideu,a.data.stridev,a.data.bppy,a.data.bppu,a.data.bppv),this.postMessage({cmd:"converted",data:{image:a}})}},0)}function Gb(a,b,c,f,d,e,g,j,n,r,m,q){for(var w,r=n=0,f=f>>1,B=f*d,C=0,i=0,k=0,D,t,y=0;y<B;y++)t=y<<1,D=n<<1,d=1.164*(a[C+D]-16),m=b[i+n]-128,w=c[k+n]-128,q[(t<<2)+0]=d+1.596*w,q[(t<<2)+1]=d-0.813*w-0.391*m,q[(t<<2)+2]=d+2.018*m,q[(t<<2)+3]=255,d=1.164*(a[C+D+1]-16),q[(t+1<<2)+0]=d+1.596*w,q[(t+1<<2)+1]=d-0.813*w-0.391*m,q[(t+1<<2)+2]=d+2.018*m,q[(t+1<<2)+3]=255,n++,n===f&&(n= -0,r++,C+=e,i=(r>>1)*g,k=(r>>1)*j)}function db(a,b,c,f,d,e,g,j,n,r,m,q,w){w||(w=new Uint8ClampedArray(4*d*e));switch(a){case 0:console.log("Chroma format not implemented yet",a,r,m,q);break;case 1:8!==r||8!==m||8!==q?console.log("Chroma format not implemented yet",a,r,m,q):Gb(b,c,f,d,e,g,j,n,0,0,0,w);break;case 2:console.log("Chroma format not implemented yet",a,r,m,q);break;case 3:console.log("Chroma format not implemented yet",a,r,m,q);break;default:console.log("Unsupported chroma format",a,r,m, -q)}return w}var e={print:function(a){a=Array.prototype.slice.call(arguments).join(" ");console.log(a)},Ca:function(a){a=Array.prototype.slice.call(arguments).join(" ");console.error(a)},canvas:{},Ri:s},Xa={},ka;for(ka in e)e.hasOwnProperty(ka)&&(Xa[ka]=e[ka]);var ea="object"===typeof process&&"function"===typeof require,Ya="object"===typeof window,Bb="function"===typeof importScripts,wc=!Ya&&!ea&&!Bb;if(ea){e.print||(e.print=function(a){process.stdout.write(a+"\n")});e.printErr||(e.printErr=function(a){process.stderr.write(a+ -"\n")});var pc=require("fs"),qc=require("path");e.read=function(a,b){var a=qc.normalize(a),c=pc.readFileSync(a);!c&&a!=qc.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=pc.readFileSync(a));c&&!b&&(c=c.toString());return c};e.readBinary=function(a){return e.read(a,s)};e.load=function(a){Hb(read(a))};e.arguments=process.argv.slice(2);module.exports=e}else wc?(e.print||(e.print=print),"undefined"!=typeof printErr&&(e.printErr=printErr),e.read="undefined"!=typeof read?read:function(){l("no read() available (jsc?)")}, -e.readBinary=function(a){return read(a,"binary")},"undefined"!=typeof scriptArgs?e.arguments=scriptArgs:"undefined"!=typeof arguments&&(e.arguments=arguments),this.Module=e,eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined")):Ya||Bb?(e.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,G);b.send(v);return b.responseText},"undefined"!=typeof arguments&&(e.arguments=arguments),"undefined"!==typeof console?(e.print||(e.print=function(a){console.log(a)}), -e.printErr||(e.printErr=function(a){console.log(a)})):e.print||(e.print=H()),Ya?this.Module=e:e.load=importScripts):l("Unknown runtime environment. Where are we?");"undefined"==!e.load&&e.read&&(e.load=function(a){Hb(e.read(a))});e.print||(e.print=H());e.printErr||(e.printErr=e.print);e.arguments||(e.arguments=[]);e.print=e.print;e.Ca=e.printErr;e.preRun=[];e.postRun=[];for(ka in Xa)Xa.hasOwnProperty(ka)&&(e[ka]=Xa[ka]);var t={gd:function(){return aa},fd:function(a){aa=a},wi:function(a,b){b=b||4; -return 1==b?a:isNumber(a)&&isNumber(b)?Math.ceil(a/b)*b:isNumber(b)&&isPowerOfTwo(b)?"((("+a+")+"+(b-1)+")&"+-b+")":"Math.ceil(("+a+")/"+b+")*"+b},Hf:function(a){return a in t.Oe||a in t.Me},If:function(a){return"*"==a[a.length-1]},Kf:function(a){return isPointerType(a)?G:isArrayType(a)||/<?\{ ?[^}]* ?\}>?/.test(a)?s:"%"==a[0]},Oe:{i1:0,i8:0,i16:0,i32:0,i64:0},Me:{"float":0,"double":0},Ti:function(a,b){return(a|0|b|0)+4294967296*(Math.round(a/4294967296)|Math.round(b/4294967296))},ki:function(a,b){return((a| -0)&(b|0))+4294967296*(Math.round(a/4294967296)&Math.round(b/4294967296))},tj:function(a,b){return((a|0)^(b|0))+4294967296*(Math.round(a/4294967296)^Math.round(b/4294967296))},Pc:function(a){switch(a){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:return"*"===a[a.length-1]?t.vc:"i"===a[0]?(a=parseInt(a.substr(1)),K(0===a%8),a/8):0}},Xd:function(a){return Math.max(t.Pc(a),t.vc)},nf:function(a,b){var c={}; -return b?a.filter(function(a){return c[a[b]]?G:c[a[b]]=s}):a.filter(function(a){return c[a]?G:c[a]=s})},set:function(){for(var a="object"===typeof arguments[0]?arguments[0]:arguments,b={},c=0;c<a.length;c++)b[a[c]]=0;return b},Wh:8,ya:function(a,b,c){return c||!c&&("i64"==a||"double"==a)?8:!a?Math.min(b,8):Math.min(b||(a?t.Xd(a):0),t.vc)},We:function(a){a.ca=0;a.Wa=0;var b=[],c=-1,f=0;a.Ud=a.Kc.map(function(d){f++;var e,g;t.Hf(d)||t.If(d)?(e=t.Pc(d),g=t.ya(d,e)):t.Kf(d)?"0"===d[1]?(e=0,g=Types.types[d]? -t.ya(v,Types.types[d].Wa):a.Wa||QUANTUM_SIZE):(e=Types.types[d].ca,g=t.ya(v,Types.types[d].Wa)):"b"==d[0]?(e=d.substr(1)|0,g=1):"<"===d[0]?e=g=Types.types[d].ca:"i"===d[0]?(e=g=parseInt(d.substr(1))/8,K(0===e%1,"cannot handle non-byte-size field "+d)):K(G,"invalid type for calculateStructAlignment");a.Ui&&(g=1);a.Wa=Math.max(a.Wa,g);d=t.rb(a.ca,g);a.ca=d+e;0<=c&&b.push(d-c);return c=d});a.ke&&"["===a.ke[0]&&(a.ca=parseInt(a.ke.substr(1))*a.ca/2);a.ca=t.rb(a.ca,a.Wa);0==b.length?a.Td=a.ca:1==t.nf(b).length&& -(a.Td=b[0]);a.Qi=1!=a.Td;return a.Ud},xf:function(a,b,c){var f,d;if(b){c=c||0;f=("undefined"===typeof Types?t.lj:Types.types)[b];if(!f)return v;if(f.Kc.length!=a.length)return printErr("Number of named fields must match the type for "+b+": possibly duplicate struct names. Cannot return structInfo"),v;d=f.Ud}else f={Kc:a.map(function(a){return a[0]})},d=t.We(f);var e={ai:f.ca};b?a.forEach(function(a,b){if("string"===typeof a)e[a]=d[b]+c;else{var n,r;for(r in a)n=r;e[n]=t.xf(a[n],f.Kc[b],d[b])}}):a.forEach(function(a, -b){e[a[1]]=d[b]});return e},Wb:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),e["dynCall_"+a].apply(v,c)):e["dynCall_"+a].call(v,b)},$b:[],ci:function(a){for(var b=0;b<t.$b.length;b++)if(!t.$b[b])return t.$b[b]=a,2*(1+b);l("Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.")},$i:function(a){t.$b[(a-2)/2]=v},zi:function(a,b){t.Bc||(t.Bc={});var c=t.Bc[a];if(c)return c;for(var c=[],f=0;f<b;f++)c.push(String.fromCharCode(36)+ -f);a=Y(a);'"'===a[0]&&(a.indexOf('"',1)===a.length-1?a=a.substr(1,a.length-2):ga("invalid EM_ASM input |"+a+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));return t.Bc[a]=eval("(function("+c.join(",")+"){ "+a+" })")},rc:function(a){t.rc.cd||(t.rc.cd={});t.rc.cd[a]||(t.rc.cd[a]=1,e.Ca(a))},Nc:{},Bi:function(a,b){K(b);t.Nc[a]||(t.Nc[a]=function(){return t.Wb(b,a,arguments)});return t.Nc[a]},pb:function(){var a=[],b=0;this.kc=function(c){c&=255;if(0== -a.length){if(0==(c&128))return String.fromCharCode(c);a.push(c);b=192==(c&224)?1:224==(c&240)?2:3;return""}if(b&&(a.push(c),b--,0<b))return"";var c=a[0],f=a[1],d=a[2],e=a[3];2==a.length?c=String.fromCharCode((c&31)<<6|f&63):3==a.length?c=String.fromCharCode((c&15)<<12|(f&63)<<6|d&63):(c=(c&7)<<18|(f&63)<<12|(d&63)<<6|e&63,c=String.fromCharCode(Math.floor((c-65536)/1024)+55296,(c-65536)%1024+56320));a.length=0;return c};this.oe=function(a){for(var a=unescape(encodeURIComponent(a)),b=[],d=0;d<a.length;d++)b.push(a.charCodeAt(d)); -return b}},Ai:function(){l("You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work")},ed:function(a){var b=aa;aa=aa+a|0;aa=aa+7&-8;return b},we:function(a){var b=ra;ra=ra+a|0;ra=ra+7&-8;return b},Xb:function(a){var b=$;$=$+a|0;$=$+7&-8;if($>=ba){for(;ba<=$;)ba=2*ba+4095&-4096;K(ba<=Math.pow(2,30));var a=x,c=new ArrayBuffer(ba);e.HEAP8=x=new Int8Array(c);e.HEAP16=Z=new Int16Array(c);e.HEAP32=u=new Int32Array(c);e.HEAPU8=N=new Uint8Array(c); -e.HEAPU16=Za=new Uint16Array(c);e.HEAPU32=$a=new Uint32Array(c);e.HEAPF32=na=new Float32Array(c);e.HEAPF64=ha=new Float64Array(c);x.set(a);rc(x,Z,u,N,Za,$a,na,ha)}return b},rb:function(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)},Nf:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},Lb:8,vc:4,$h:0};e.Runtime=t;var qa=G,V,sa;e.ccall=function(a,b,c,f){return Jb(Ib(a),b,c,f)};e.cwrap=E;e.setValue=Ja;e.getValue=ta;var oa=0,Xb=1,Q=2,ua=4;e.ALLOC_NORMAL=oa;e.ALLOC_STACK=Xb;e.ALLOC_STATIC= -Q;e.ALLOC_DYNAMIC=3;e.ALLOC_NONE=ua;e.allocate=I;e.Pointer_stringify=Y;e.UTF16ToString=function(a){for(var b=0,c="";;){var f=Z[a+2*b>>1];if(0==f)return c;++b;c+=String.fromCharCode(f)}};e.stringToUTF16=function(a,b){for(var c=0;c<a.length;++c)Z[b+2*c>>1]=a.charCodeAt(c);Z[b+2*a.length>>1]=0};e.UTF32ToString=function(a){for(var b=0,c="";;){var f=u[a+4*b>>2];if(0==f)return c;++b;65536<=f?(f-=65536,c+=String.fromCharCode(55296|f>>10,56320|f&1023)):c+=String.fromCharCode(f)}};e.stringToUTF32=function(a, -b){for(var c=0,f=0;f<a.length;++f){var d=a.charCodeAt(f);if(55296<=d&&57343>=d)var e=a.charCodeAt(++f),d=65536+((d&1023)<<10)|e&1023;u[b+4*c>>2]=d;++c}u[b+4*c>>2]=0};for(var x,N,Z,Za,u,$a,na,ha,sc=0,ra=0,tc=0,aa=0,Cb=0,uc=0,$=0,xc=e.TOTAL_STACK||5242880,ba=e.TOTAL_MEMORY||16777216,fa=4096;fa<ba||fa<2*xc;)fa=16777216>fa?2*fa:fa+16777216;fa!==ba&&(e.Ca("increasing TOTAL_MEMORY to "+fa+" to be more reasonable"),ba=fa);K("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&& -!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var da=new ArrayBuffer(ba);x=new Int8Array(da);Z=new Int16Array(da);u=new Int32Array(da);N=new Uint8Array(da);Za=new Uint16Array(da);$a=new Uint32Array(da);na=new Float32Array(da);ha=new Float64Array(da);u[0]=255;K(255===N[0]&&0===N[3],"Typed arrays 2 must be run on a little-endian system");e.HEAP=p;e.HEAP8=x;e.HEAP16=Z;e.HEAP32=u;e.HEAPU8=N;e.HEAPU16=Za;e.HEAPU32=$a;e.HEAPF32=na;e.HEAPF64=ha;var hb=[],pa=[],zb=[],Ga= -[],Ob=[],Va=G;e.addOnPreRun=e.hi=Mb;e.addOnInit=e.ei=function(a){pa.unshift(a)};e.addOnPreMain=e.gi=function(a){zb.unshift(a)};e.addOnExit=e.di=function(a){Ga.unshift(a)};e.addOnPostRun=e.fi=Nb;e.intArrayFromString=X;e.intArrayToString=function(a){for(var b=[],c=0;c<a.length;c++){var f=a[c];255<f&&(f&=255);b.push(String.fromCharCode(f))}return b.join("")};e.writeStringToMemory=function(a,b,c){a=X(a,c);for(c=0;c<a.length;)x[b+c|0]=a[c],c+=1};e.writeArrayToMemory=eb;e.writeAsciiToMemory=Pb;Math.imul= -function(a,b){return a*b|0};Math.Ei=Math.imul;var fb=Math.abs,Lb=Math.ceil,Kb=Math.floor,Ka=Math.min,ia=0,kb=v,Ca=v;e.addRunDependency=Rb;e.removeRunDependency=jb;e.preloadedImages={};e.preloadedAudios={};var sc=8,ra=sc+51944,Aa;Aa=Aa=I(1,"i32*",Q);var Ha;Ha=Ha=I(1,"i32*",Q);var Ia;Ia=Ia=I(1,"i32*",Q);pa.push({qa:function(){yc()}},{qa:function(){zc()}});var Db;Db=Db=I(1,"i32*",Q);var ob;ob=I([0,0,0,0,160,105,0,0,250,0,0,0,172,0,0,0,70,0,0,0,178,0,0,0,8,0,0,0,10,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0, -0],"i8",Q);var nb;nb=I([0,0,0,0,176,105,0,0,250,0,0,0,38,1,0,0,70,0,0,0,178,0,0,0,8,0,0,0,28,0,0,0,8,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],"i8",Q);var Eb;Eb=Eb=I([I([1,0,0,0,0,0,0],"i8",Q)+8,0],"i32",Q);I([29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,26,0,0,0,21,0,0,0,17,0,0,0,13,0,0,0,9,0,0,0,5,0,0,0,2,0,0,0,0,0,0,0,254,255,255,255,251,255,255,255,247,255,255,255,243,255,255,255,239,255,255,255,235, -255,255,255,230,255,255,255,224,255,255,255,230,255,255,255,235,255,255,255,239,255,255,255,243,255,255,255,247,255,255,255,251,255,255,255,254,255,255,255,0,0,0,0,2,0,0,0,5,0,0,0,9,0,0,0,13,0,0,0,17,0,0,0,21,0,0,0,26,0,0,0,32,0,0,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,111,118,101,114,115,99,97,110,95,97,112,112,114,111,112,114,105,97,116,101,95,102,108,97,103,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,74,117,108,0,0,0, -0,0,118,112,115,95,109,97,120,95,115,117,98,95,108,97,121,101,114,115,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,80,80,83,32,37,100,32,104,97,115,32,110,111,116,32,98,101,101,110,32,114,101,97,100,10,0,0,0,0,0,0,0,74,117,110,0,0,0,0,0,52,58,50,58,48,0,0,0,65,112,114,0,0,0,0,0,77,97,114,0,0,0,0,0,70,101,98,0,0,0,0,0,99,111,110,116,101,120,116,32,62,61,32,48,32,38,38,32,99,111,110,116,101,120,116,32,60,61,32,50,0,0,0,0,108,111,103,50,95,115,97,111,95,111,102, -102,115,101,116,95,115,99,97,108,101,95,99,104,114,111,109,97,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,99,97,110,110,111,116,32,115,116,97,114,116,32,100,101,99,111,100,105,110,103,32,116,104,114,101,97,100,115,0,0,0,74,97,110,0,0,0,0,0,102,97,108,115,101,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,42,114,101, -102,99,110,116,62,49,0,0,0,0,0,0,0,68,101,99,101,109,98,101,114,0,0,0,0,0,0,0,0,105,100,120,60,105,110,116,114,97,80,114,101,100,77,111,100,101,67,46,100,97,116,97,95,115,105,122,101,0,0,0,0,99,111,109,112,111,110,101,110,116,0,0,0,0,0,0,0,78,111,118,101,109,98,101,114,0,0,0,0,0,0,0,0,121,60,115,112,115,46,80,105,99,72,101,105,103,104,116,73,110,77,105,110,80,85,115,0,79,99,116,111,98,101,114,0,117,110,115,117,112,112,111,114,116,101,100,32,108,111,99,97,108,101,32,102,111,114,32,115,116,97,110,100, -97,114,100,32,105,110,112,117,116,0,0,0,120,60,115,112,115,46,80,105,99,87,105,100,116,104,73,110,77,105,110,80,85,115,0,0,83,101,112,116,101,109,98,101,114,0,0,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,111,118,101,114,115,99,97,110,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,0,65,117,103,117,115,116,0,0,46,46,47,108,105,98,100,101,50,54, -53,47,105,109,97,103,101,46,104,0,0,0,0,0,118,112,115,95,109,97,120,95,108,97,121,101,114,115,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,104,100,114,45,62,110,117,109,95,114,101,102,95,105,100,120,95,108,49,95,97,99,116,105,118,101,32,60,61,32,49,54,0,0,0,0,0,0,0,0,74,117,108,121,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,74,117,110,101,0,0,0, -0,109,111,110,111,99,104,114,111,109,101,0,0,0,0,0,0,77,97,121,0,0,0,0,0,65,112,114,105,108,0,0,0,115,108,105,99,101,45,115,101,103,109,101,110,116,45,37,100,59,37,100,0,0,0,0,0,108,111,103,50,95,115,97,111,95,111,102,102,115,101,116,95,115,99,97,108,101,95,108,117,109,97,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,68,80,66,47,111,117,116,112,117,116,32,113,117,101,117,101,32,102,117,108,108,0,0,0,69,82,82,58,32,0,0,0,77,97,114,99,104,0,0,0,99,116,98,45,114,111,119,45,37,100,0, -0,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,70,101,98,114,117,97,114,121,0,0,0,0,0,0,0,0,37,112,32,97,115,115,105,103,110,32,61,32,37,112,10,0,98,97,115,105,99,95,115,116,114,105,110,103,0,0,0,0,33,40,116,114,97,102,111,68,101,112,116,104,61,61,48,32,38,38,32,108,111,103,50,84,114,97,102,111,83,105,122,101,61,61,50,41,0,0,0,0,74,97,110,117,97,114,121,0,80,114,101,100,77,111,100,101,32,61,61,32,99, -117,80,114,101,100,77,111,100,101,0,0,99,98,102,95,108,117,109,97,32,33,61,32,45,49,0,0,68,0,0,0,101,0,0,0,99,0,0,0,0,0,0,0,99,98,102,95,99,114,32,33,61,32,45,49,0,0,0,0,108,101,110,103,116,104,32,62,61,32,48,0,0,0,0,0,99,97,98,97,99,95,98,121,112,97,115,115,95,97,108,105,103,110,109,101,110,116,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,58,32,37,100,10,0,0,0,115,97,109,112,108,101,32,97,115,112,101,99,116,32,114,97,116,105,111,32,32,32,32,32,32,32,32,58,32,37,100,58,37,100,10, -0,0,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,0,0,0,0,99,98,102,95,99,98,32,33,61,32,45,49,0,0,0,0,112,101,114,115,105,115,116,101,110,116,95,114,105,99,101,95,97,100,97,112,116,97,116,105,111,110,95,101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,118,105,100,101,111,95,112,97,114,97,109,101,116,101,114,95,115,101,116,95,105,100,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,104,100,114,45,62,110,117,109,95,114,101,102,95,105,100,120,95,108,48,95,97,99,116, -105,118,101,32,60,61,32,49,54,0,0,0,0,0,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,0,0,0,0,99,116,120,73,100,120,76,111,111,107,117,112,91,108,111,103,50,119,45,50,93,91,99,73,100,120,93,91,115,99,97,110,73,100,120,93,91,112,114,101,118,67,115,98,102,93,91,120,67,43,40,121,67,60,60,108,111,103,50,119,41,93,32,61,61,32,99,116,120,73,100,120,73,110,99,0,0,0,0,0,104,105,103,104,95,112,114,101,99,105,115,105,111,110,95,111,102,102,115,101,116,115,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,58, -32,37,100,10,0,0,0,105,110,105,116,84,121,112,101,32,62,61,32,48,32,38,38,32,105,110,105,116,84,121,112,101,32,60,61,32,50,0,0,100,101,98,108,111,99,107,45,37,100,0,0,0,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,0,0,0,0,99,104,114,111,109,97,95,102,111,114,109,97,116,95,105,100,99,32,32,32,32,32,32,32,58,32,37,100,32,40,37,115,41,10,0,0,0,0,0,0,116,104,114,101,97,100,95,99,111,110,116,101,120,116,115,61,61,78,85,76,76,0,0,0,105,110,116,114,97,95,115,109,111,111,116,104,105,110,103,95,100,105,115,97,98,108, -101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,0,0,0,0,101,110,116,114,121,32,112,111,105,110,116,32,91,37,105,93,32,58,32,37,100,10,0,0,101,120,116,101,110,100,101,100,95,112,114,101,99,105,115,105,111,110,95,112,114,111,99,101,115,115,105,110,103,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,0,0,0,0,111,102,102,115,101,116,95,108,101,110,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32, -37,100,10,0,0,0,0,0,0,0,0,99,114,95,113,112,95,111,102,102,115,101,116,95,108,105,115,116,91,37,100,93,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,101,120,112,108,105,99,105,116,95,114,100,112,99,109,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,99,111,100,101,100,32,112,97,114,97,109,101,116,101,114,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,110,117, -109,95,101,110,116,114,121,95,112,111,105,110,116,95,111,102,102,115,101,116,115,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,110,117,109,77,86,80,67,97,110,100,76,88,61,61,50,0,105,109,112,108,105,99,105,116,95,114,100,112,99,109,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,110,84,104,114,101,97,100,115,82,117,110,110,105,110,103,32,62,61,32,48,0,0,0,0,77,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,99,111,110,116,101,120,116,109,111,100,101,108, -46,99,99,0,115,108,105,99,101,95,108,111,111,112,95,102,105,108,116,101,114,95,97,99,114,111,115,115,95,115,108,105,99,101,115,95,101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,116,114,97,110,115,102,111,114,109,95,115,107,105,112,95,99,111,110,116,101,120,116,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,58,32,37,100,10,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,0,0,0,0,115,108,105,99,101,95,116,99,95,111,102,102,115,101,116,32,32,32,32,58,32,37,100,10,0,0,0,0, -0,0,0,0,116,114,97,110,115,102,111,114,109,95,115,107,105,112,95,114,111,116,97,116,105,111,110,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,58,32,37,100,10,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,0,0,0,0,115,108,105,99,101,95,98,101,116,97,95,111,102,102,115,101,116,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,32,83,80,83,45,114,97,110,103,101,45,101,120,116,101,110,115,105,111,110,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0, -0,0,0,0,0,114,101,102,60,55,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,0,0,0,0,40,102,114,111,109,32,112,112,115,41,0,0,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,32,86,85,73,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,0,0,0,0,40,111,118,101,114,114,105,100,101,41,0,0,0,0,0,0,115,99,97,108,105,110,103,95,108,105,115,116,95,112,114,101,100,95,109,97,116,114,105,120,95,105,100,95,100,101,108,116,97,61,61,49,0,0,0,0,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,32,86,80,83,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,68,0,0,0,101,0,0,0,99,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,105,100,120,62,61,48,0,0,115,108,105,99,101,95,100,101,98,108,111,99,107,105,110,103,95,102,105,108,116,101,114,95,100,105,115,97,98,108,101,100,95,102,108, -97,103,32,58,32,37,100,32,37,115,10,0,0,48,0,0,0,0,0,0,0,100,101,98,108,111,99,107,105,110,103,95,102,105,108,116,101,114,95,111,118,101,114,114,105,100,101,95,102,108,97,103,32,58,32,37,100,10,0,0,0,78,0,0,0,111,0,0,0,118,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,0,0,0,0,115,101,113,95,112,97,114,97,109,101,116,101,114,95,115,101,116,95,105,100,32,32,32,32,58,32,37,100,10,0,0,0,114,101,102,80,105,99,81,48,61,61,114,101,102,80,105,99,81,49,0,0,0,0,0,0,83,117,98,72,101,105,103, -104,116,67,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,79,0,0,0,99,0,0,0,116,0,0,0,111,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,115,108,105,99,101,95,99,114,95,113,112,95,111,102,102,115,101,116,32,32,32,32,32,58,32,37,100,10,0,0,0,0,83,117,98,87,105,100,116,104,67,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,83,0,0,0,101,0,0,0,112,0,0,0,116,0,0,0,101,0,0,0,109,0,0,0,98,0,0,0,101,0,0,0,114,0,0,0,0,0,0,0,115, -108,105,99,101,95,99,98,95,113,112,95,111,102,102,115,101,116,32,32,32,32,32,58,32,37,100,10,0,0,0,0,99,98,95,113,112,95,111,102,102,115,101,116,95,108,105,115,116,91,37,100,93,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,80,105,99,72,101,105,103,104,116,73,110,67,116,98,115,89,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,111,117,116,32,111,102,32,109,101,109,111,114,121,0,0,0,65,0,0,0,117,0,0,0,103,0,0,0,117,0,0,0,115,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,115,108,105, -99,101,95,113,112,95,100,101,108,116,97,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,114,101,102,73,100,120,66,62,61,48,0,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,80,105,99,87,105,100,116,104,73,110,67,116,98,115,89,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,101,110,100,32,37,32,50,32,61,61,32,48,0,0,0,0,74,0,0,0,117,0,0,0,108,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,114,101,102,99,110,116, -0,0,102,105,118,101,95,109,105,110,117,115,95,109,97,120,95,110,117,109,95,109,101,114,103,101,95,99,97,110,100,32,32,58,32,37,100,10,0,0,0,0,77,97,120,84,66,83,105,122,101,89,32,32,32,58,32,37,100,10,0,0,0,0,0,0,74,0,0,0,117,0,0,0,110,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,67,104,114,111,109,97,79,102,102,115,101,116,95,76,37,100,91,37,100,93,91,37,100,93,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,77,105,110,84,66,83,105,122,101,89,32,32,32,58,32,37,100,10,0,0,0,0,0,0,67,104,114,111,109,97,87,101,105, -103,104,116,95,76,37,100,91,37,100,93,91,37,100,93,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,77,97,120,67,98,83,105,122,101,89,32,32,32,58,32,37,100,10,0,0,0,0,0,0,108,117,109,97,95,111,102,102,115,101,116,95,108,37,100,91,37,100,93,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,65,0,0,0,112,0,0,0,114,0,0,0,105,0,0,0,108,0,0,0,0,0,0,0,77,105,110,67,98,83,105,122,101,89,32,32,32,58,32,37,100,10,0,0,0,0,0,0,76,117,109,97,87,101,105,103,104,116,95,76,37,100,91,37,100,93,32,32,32,32, -32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,117,110,115,112,101,99,105,102,105,101,100,0,0,0,0,0,77,0,0,0,97,0,0,0,114,0,0,0,99,0,0,0,104,0,0,0,0,0,0,0,76,111,103,50,77,97,120,84,114,97,110,115,102,111,114,109,83,107,105,112,83,105,122,101,32,32,32,32,40,82,69,120,116,41,32,58,32,37,100,10,0,0,0,0,0,0,0,0,67,116,98,83,105,122,101,89,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,67,104,114,111,109,97,76,111,103,50,87,101,105,103,104,116,68,101,110,111,109,32,32,32,32,32,32,32,32,32,32,58,32,37, -100,10,0,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,99,116,120,45,62,100,112,98,46,104,97,115,95,102,114,101,101,95,100,112,98,95,112,105,99,116,117,114,101,40,116,114,117,101,41,0,0,0,0,0,70,0,0,0,101,0,0,0,98,0,0,0,114,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,76,111,103,50,77,105,110,67,117,67,104,114,111,109,97,81,112,79,102,102,115,101,116,83,105,122,101,32,40,82,69,120,116,41,32,58,32,37,100,10,0,0,0,0,0,0,0,0,115,112,115,95,101,120, -116,101,110,115,105,111,110,95,54,98,105,116,115,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,108,117,109,97,95,108,111,103,50,95,119,101,105,103,104,116,95,100,101,110,111,109,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,74,0,0,0,97,0,0,0,110,0,0,0,117,0,0,0,97,0,0,0,114,0,0,0,121,0,0,0,0,0,0,0,115,112,115,95,116,101,109,112,111,114,97,108, -95,105,100,95,110,101,115,116,105,110,103,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,76,111,103,50,77,105,110,67,117,81,112,68,101,108,116,97,83,105,122,101,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,115,112,115,95,109,117,108,116,105,108,97,121,101,114,95,101,120,116,101,110,115,105,111,110,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,99,111,108,108,111,99,97,116,101,100,95,114,101,102,95,105,100,120,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,112,112,115, -95,101,120,116,101,110,115,105,111,110,95,54,98,105,116,115,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,115,112,115,95,114,97,110,103,101,95,101,120,116,101,110,115,105,111,110,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,99,111,108,108,111,99,97,116,101,100,95,102,114,111,109,95,108,48,95,102,108,97,103,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,80,77,0,0,0,0,0,0,112,112,115,95,109,117,108,116,105,108,97,121,101,114,95,101,120,116,101,110,115,105,111,110,95,102, -108,97,103,32,58,32,37,100,10,0,0,0,0,0,99,104,114,111,109,97,95,113,112,95,111,102,102,115,101,116,95,108,105,115,116,95,108,101,110,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,115,112,115,95,101,120,116,101,110,115,105,111,110,95,112,114,101,115,101,110,116,95,102,108,97,103,32,32,32,32,58,32,37,100,10,0,0,0,0,0,99,97,98,97,99,95,105,110,105,116,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,67,84,66,32,111,117,116,115,105,100,101, -32,111,102,32,105,109,97,103,101,32,97,114,101,97,0,0,0,0,0,0,0,65,77,0,0,0,0,0,0,82,73,100,120,62,61,48,0,112,112,115,95,114,97,110,103,101,95,101,120,116,101,110,115,105,111,110,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,114,101,102,80,105,99,76,105,115,116,62,61,48,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,118,117,105,95,112,97,114,97,109,101,116,101,114,115,95,112,114,101,115,101,110,116,95,102,108,97,103,32,32,32,32,32,32,32,32,58,32, -37,100,10,0,0,0,0,0,0,0,0,109,118,100,95,108,49,95,122,101,114,111,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,102,105,114,115,116,32,37,32,50,32,61,61,32,48,0,0,112,112,115,95,101,120,116,101,110,115,105,111,110,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,37,112,32,100,101,99,111,117,112,108,101,32,40,37,112,41,10,0,0,0,0,0,0,0,115,116,114,111,110,103,95,105,110,116,114,97,95,115,109,111,111,116,104,105,110,103,95,101, -110,97,98,108,101,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,0,114,101,102,95,112,105,99,95,108,105,115,116,95,109,111,100,105,102,105,99,97,116,105,111,110,95,102,108,97,103,95,108,49,32,58,32,37,100,10,0,80,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,115,108,105,99,101,95,115,101,103,109,101,110,116,95,104,101,97,100,101,114,95,101,120,116,101,110,115,105,111,110,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,115,112,115,95,116,101,109,112,111,114,97,108,95,109,118, -112,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,37,100,58,32,37,100,10,0,0,0,0,0,0,0,65,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,110,117,109,95,101,120,116,114,97,95,115,108,105,99,101,95,104,101,97,100,101,114,95,98,105,116,115,32,32,32,32,58,32,37,100,10,0,0,0,0,40,117,110,107,110,111,119,110,41,0,0,0,0,0,0,0,108,116,95,114,101,102,95,112,105,99,95,112,111,99,95,108,115,98,95,115,112,115,91,37,100,93,32,58,32,37,100,32,32,32,40,117,115,101,100,95, -98,121,95,99,117,114,114,95,112,105,99,95,108,116,95,115,112,115,95,102,108,97,103,61,37,100,41,10,0,0,0,0,114,101,102,95,112,105,99,95,108,105,115,116,95,109,111,100,105,102,105,99,97,116,105,111,110,95,102,108,97,103,95,108,48,32,58,32,37,100,10,0,108,111,103,50,95,112,97,114,97,108,108,101,108,95,109,101,114,103,101,95,108,101,118,101,108,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,70,111,114,109,97,116,82,97,110,103,101,69,120,116,101,110,115,105,111,110,115,0,0,0,110,117,109,95,108,111,110,103, -95,116,101,114,109,95,114,101,102,95,112,105,99,115,95,115,112,115,32,58,32,37,100,10,0,0,0,0,0,0,0,0,110,117,109,95,114,101,102,95,105,100,120,95,108,49,95,97,99,116,105,118,101,32,32,32,32,32,32,32,32,32,32,58,32,37,100,32,37,115,10,0,108,105,115,116,115,95,109,111,100,105,102,105,99,97,116,105,111,110,95,112,114,101,115,101,110,116,95,102,108,97,103,58,32,37,100,10,0,0,0,0,77,65,67,0,0,0,0,0,99,104,97,110,110,101,108,62,61,48,32,38,38,32,99,104,97,110,110,101,108,32,60,61,32,50,0,0,0,0,0,0,77, -97,105,110,83,116,105,108,108,80,105,99,116,117,114,101,0,0,0,0,0,0,0,0,108,111,110,103,95,116,101,114,109,95,114,101,102,95,112,105,99,115,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,40,102,114,111,109,32,80,80,83,41,0,0,0,0,0,0,112,105,99,95,115,99,97,108,105,110,103,95,108,105,115,116,95,100,97,116,97,95,112,114,101,115,101,110,116,95,102,108,97,103,58,32,37,100,10,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105, -110,95,117,110,105,116,115,0,0,0,0,110,97,108,0,0,0,0,0,45,45,45,45,45,45,45,45,45,45,32,80,80,83,32,114,97,110,103,101,45,101,120,116,101,110,115,105,111,110,32,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,100,101,50,54,53,46,99,99,0,0,0,0,0,0,0,0,77,97,105,110,49,48,0,0,114,101,102,95,112,105,99,95,115,101,116,91,32,37,50,100,32,93,58,32,0,0,0,0,116,99,95,111,102,102,115,101,116,58,32,32,32,32,37,100,10,0,0,0,0,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,115, -112,115,95,109,97,120,95,115,117,98,95,108,97,121,101,114,115,32,32,32,32,32,32,58,32,37,100,10,0,0,0,102,97,108,115,101,0,0,0,77,97,105,110,0,0,0,0,110,117,109,95,115,104,111,114,116,95,116,101,114,109,95,114,101,102,95,112,105,99,95,115,101,116,115,32,58,32,37,100,10,0,0,0,0,0,0,0,110,117,109,95,114,101,102,95,105,100,120,95,108,48,95,97,99,116,105,118,101,32,32,32,32,32,32,32,32,32,32,58,32,37,100,32,37,115,10,0,98,101,116,97,95,111,102,102,115,101,116,58,32,32,37,100,10,0,0,0,0,0,0,0,117,110, -107,110,111,119,110,32,101,114,114,111,114,0,0,0,112,99,109,95,108,111,111,112,95,102,105,108,116,101,114,95,100,105,115,97,98,108,101,95,102,108,97,103,32,32,58,32,37,100,10,0,0,0,0,0,112,101,110,100,105,110,103,95,105,110,112,117,116,95,78,65,76,32,61,61,32,78,85,76,76,0,0,0,0,0,0,0,110,117,109,95,114,101,102,95,105,100,120,95,97,99,116,105,118,101,95,111,118,101,114,114,105,100,101,95,102,108,97,103,32,58,32,37,100,10,0,0,115,97,111,45,37,100,0,0,112,105,99,95,100,105,115,97,98,108,101,95,100, -101,98,108,111,99,107,105,110,103,95,102,105,108,116,101,114,95,102,108,97,103,58,32,37,100,10,0,99,111,108,108,111,99,97,116,101,100,32,109,111,116,105,111,110,45,118,101,99,116,111,114,32,105,115,32,111,117,116,115,105,100,101,32,105,109,97,103,101,32,97,114,101,97,0,0,32,32,80,114,111,102,105,108,101,47,84,105,101,114,47,76,101,118,101,108,32,91,76,97,121,101,114,32,37,100,93,10,0,0,0,0,0,0,0,0,100,105,102,102,95,99,117,95,99,104,114,111,109,97,95,113,112,95,111,102,102,115,101,116,95,100,101, -112,116,104,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,108,111,103,50,95,100,105,102,102,95,109,97,120,95,109,105,110,95,112,99,109,95,108,117,109,97,95,99,111,100,105,110,103,95,98,108,111,99,107,95,115,105,122,101,32,58,32,37,100,10,0,0,0,0,0,0,115,108,105,99,101,95,115,97,111,95,99,104,114,111,109,97,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,100,101,98,108,111,99,107,105,110,103,95,102,105,108,116,101,114,95,111,118,101,114,114,105,100,101,95,101,110,97, -98,108,101,100,95,102,108,97,103,58,32,37,100,10,0,0,0,0,105,109,97,103,101,32,99,104,101,99,107,115,117,109,32,109,105,115,109,97,116,99,104,0,83,80,83,32,104,101,97,100,101,114,32,109,105,115,115,105,110,103,44,32,99,97,110,110,111,116,32,100,101,99,111,100,101,32,83,69,73,0,0,0,32,32,37,115,95,108,101,118,101,108,95,105,100,99,32,32,32,32,32,32,32,32,32,58,32,37,100,32,40,37,52,46,50,102,41,10,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104, -95,105,110,95,117,110,105,116,115,0,0,0,0,108,111,103,50,95,109,105,110,95,112,99,109,95,108,117,109,97,95,99,111,100,105,110,103,95,98,108,111,99,107,95,115,105,122,101,32,58,32,37,100,10,0,0,0,0,0,0,0,115,108,105,99,101,95,115,97,111,95,108,117,109,97,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,115,116,100,58,58,98,97,100,95,99,97,115,116,0,0,0,100,101,98,108,111,99,107,105,110,103,95,102,105,108,116,101,114,95,99,111,110,116,114,111,108,95,112,114,101,115,101, -110,116,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,102,97,108,115,101,0,0,0,99,97,110,110,111,116,32,97,112,112,108,121,32,83,65,79,32,98,101,99,97,117,115,101,32,119,101,32,114,97,110,32,111,117,116,32,111,102,32,109,101,109,111,114,121,0,0,0,32,32,108,111,103,50,95,109,97,120,95,109,118,95,108,101,110,103,116,104,95,118,101,114,116,105,99,97,108,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,32,32,37,115,95,102,114,97,109,101,95,111,110,108,121,95,99,111,110,115,116,114,97,105,110,116, -95,102,108,97,103,32,58,32,37,100,10,0,37,112,32,114,101,108,101,97,115,101,32,37,112,10,0,0,112,99,109,95,115,97,109,112,108,101,95,98,105,116,95,100,101,112,116,104,95,99,104,114,111,109,97,32,32,32,58,32,37,100,10,0,0,0,0,0,115,108,105,99,101,95,116,101,109,112,111,114,97,108,95,109,118,112,95,101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,112,112,115,95,108,111,111,112,95,102,105,108,116,101,114,95,97,99,114,111,115,115,95,115,108,105,99,101,115,95,101,110,97,98,108,101, -100,95,102,108,97,103,58,32,37,100,10,0,110,111,110,45,101,120,105,115,116,105,110,103,32,108,111,110,103,45,116,101,114,109,32,114,101,102,101,114,101,110,99,101,32,99,97,110,100,105,100,97,116,101,32,115,112,101,99,105,102,105,101,100,32,105,110,32,115,108,105,99,101,32,104,101,97,100,101,114,0,0,0,0,32,32,108,111,103,50,95,109,97,120,95,109,118,95,108,101,110,103,116,104,95,104,111,114,105,122,111,110,116,97,108,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,32,32,37,115,95,110,111,110,95,112, -97,99,107,101,100,95,99,111,110,115,116,114,97,105,110,116,95,102,108,97,103,32,58,32,37,100,10,0,112,99,109,95,115,97,109,112,108,101,95,98,105,116,95,100,101,112,116,104,95,108,117,109,97,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,110,117,109,95,108,111,110,103,95,116,101,114,109,95,112,105,99,115,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,108,111,111,112,95,102,105,108,116,101,114,95,97,99,114,111,115,115,95,116,105,108,101,115,95,101,110,97,98,108,101, -100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,110,117,109,98,101,114,32,111,102,32,116,104,114,101,97,100,115,32,108,105,109,105,116,101,100,32,116,111,32,109,97,120,105,109,117,109,32,97,109,111,117,110,116,0,0,0,0,0,32,32,109,97,120,95,98,105,116,115,95,112,101,114,95,109,105,110,95,99,117,95,100,101,110,111,109,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,32,32,37,115,95,105,110,116,101,114,108,97,99,101,100,95,115,111,117,114,99,101,95,102,108,97,103,32,58,32,37,100,10,0, -0,0,0,0,112,99,109,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,110,117,109,95,108,111,110,103,95,116,101,114,109,95,115,112,115,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,116,105,108,101,32,114,111,119,32,98,111,117,110,100,97,114,105,101,115,58,32,0,0,0,100,101,112,101,110,100,101,110,116,32,115,108,105,99,101,32,119,105,116,104,32,97,100,100,114,101,115,115, -32,48,0,0,32,32,109,97,120,95,98,121,116,101,115,95,112,101,114,95,112,105,99,95,100,101,110,111,109,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,32,32,37,115,95,112,114,111,103,114,101,115,115,105,118,101,95,115,111,117,114,99,101,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,115,97,109,112,108,101,95,97,100,97,112,116,105,118,101,95,111,102,102,115,101,116,95,101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,115,108,105,99,101,32,115,101,103,109, -101,110,116,32,97,100,100,114,101,115,115,32,105,110,118,97,108,105,100,0,0,0,115,104,111,114,116,95,116,101,114,109,95,114,101,102,95,112,105,99,95,115,101,116,95,105,100,120,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,42,10,0,0,0,0,0,0,83,69,67,65,77,0,0,0,108,111,99,97,108,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,0,49,46,48,46,50,0,0,0,32,32,109,105,110,95,115,112,97,116,105,97,108,95,115,101,103,109,101,110,116,97,116,105,111,110,95,105,100,99,32,32,32, -32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,42,10,0,0,0,0,0,0,97,109,112,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,102,97,108,115,101,0,0,0,114,101,102,95,112,105,99,95,115,101,116,91,32,37,50,100,32,93,58,32,0,0,0,0,42,37,100,32,0,0,0,0,114,100,112,99,109,77,111,100,101,61,61,48,0,0,0,0,105,109,103,45,62,110,117,109,95,116,104,114,101,97,100,115,95,97,99,116,105,118,101,40,41,32,61,61,32,48,0,0,105,110,118,97, -108,105,100,32,99,104,114,111,109,97,32,102,111,114,109,97,116,32,105,110,32,83,80,83,32,104,101,97,100,101,114,0,0,0,0,0,32,32,114,101,115,116,114,105,99,116,101,100,95,114,101,102,95,112,105,99,95,108,105,115,116,115,95,102,108,97,103,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,42,37,100,0,0,0,0,0,115,104,100,114,45,62,115,108,105,99,101,95,116,121,112,101,32,61,61,32,83,76,73,67,69,95,84,89,80,69,95,66,0,0,0,0,0,0,0,0,115,99,97,108,105,110,103,32,108,105,115,116,32,108,111,103,103,105,110,103, -32,111,117,116,112,117,116,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,0,0,0,0,109,97,120,105,109,117,109,32,110,117,109,98,101,114,32,111,102,32,114,101,102,101,114,101,110,99,101,32,112,105,99,116,117,114,101,115,32,101,120,99,101,101,100,101,100,0,0,0,115,104,111,114,116,95,116,101,114,109,95,114,101,102,95,112,105,99,95,115,101,116,95,115,112,115,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,116,105,108,101,32,99,111,108,117,109,110,32,98,111,117,110,100, -97,114,105,101,115,58,32,0,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,102,97,108,115,101,0,0,0,118,105,100,101,111,95,112,97,114,97,109,101,116,101,114,95,115,101,116,95,105,100,32,32,58,32,37,100,10,0,0,0,32,32,109,111,116,105,111,110,95,118,101,99,116,111,114,115,95,111,118,101,114,95, -112,105,99,95,98,111,117,110,100,97,114,105,101,115,95,102,108,97,103,32,58,32,37,100,10,0,42,44,0,0,0,0,0,0,115,112,115,95,115,99,97,108,105,110,103,95,108,105,115,116,95,100,97,116,97,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,0,115,108,105,99,101,95,112,105,99,95,111,114,100,101,114,95,99,110,116,95,108,115,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,117,110,105,102,111,114,109,95,115,112,97,99,105,110,103,95,102,108,97,103,58, -32,37,100,10,0,0,0,0,0,0,0,37,73,58,37,77,58,37,83,32,37,112,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,101,110,100,95,111,102,95,115,117,98,95,115,116,114,101,97,109,95,111,110,101,95,98,105,116,32,110,111,116,32,115,101,116,32,116,111,32,49,32,119,104,101,110,32,105,116,32,115,104,111,117,108,100,32,98,101,0,0,0,0,0,0,0,0,32,32,116,105,108,101,115,95,102,105,120,101,100,95,115,116,114,117,99,116,117,114,101,95,102,108,97,103,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0, -0,32,32,37,115,95,112,114,111,102,105,108,101,95,99,111,109,112,97,116,105,98,105,108,105,116,121,95,102,108,97,103,115,58,32,0,0,0,0,0,0,115,99,97,108,105,110,103,95,108,105,115,116,95,101,110,97,98,108,101,95,102,108,97,103,32,58,32,37,100,10,0,0,99,111,108,111,117,114,95,112,108,97,110,101,95,105,100,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105, -110,95,117,110,105,116,115,0,0,0,110,117,109,95,116,105,108,101,95,114,111,119,115,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,106,62,61,48,32,38,38,32,106,32,60,32,77,65,88,95,78,85,77,95,82,69,70,95,80,73,67,83,0,0,0,0,37,0,0,0,97,0,0,0,32,0,0,0,37,0,0,0,98,0,0,0,32,0,0,0,37,0,0,0,100,0,0,0,32,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,89,0,0,0,0,0,0,0,0,0,0,0,102,97,117,108,116,121,32,114,101,102,101,114,101,110,99,101,32,112,105,99,116, -117,114,101,32,108,105,115,116,0,0,0,98,105,116,115,116,114,101,97,109,95,114,101,115,116,114,105,99,116,105,111,110,95,102,108,97,103,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,32,32,37,115,95,112,114,111,102,105,108,101,95,105,100,99,32,32,32,32,32,32,32,58,32,37,115,10,0,0,0,0,99,104,114,111,109,97,95,113,112,95,111,102,102,115,101,116,95,108,105,115,116,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,109,97,120,95,116,114,97,110,115,102,111, -114,109,95,104,105,101,114,97,114,99,104,121,95,100,101,112,116,104,95,105,110,116,114,97,32,58,32,37,100,10,0,0,0,0,0,0,0,112,105,99,95,111,117,116,112,117,116,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,110,117,109,95,116,105,108,101,95,99,111,108,117,109,110,115,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,99,111,101,102,102,105,99,105,101,110,116,32,111,117,116,32,111,102,32,105,109,97,103,101,32,98,111,117,110,100,115,0,37,97,32, -37,98,32,37,100,32,37,72,58,37,77,58,37,83,32,37,89,0,0,0,0,115,104,111,114,116,45,116,101,114,109,32,114,101,102,45,112,105,99,45,115,101,116,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,0,118,117,105,95,104,114,100,95,112,97,114,97,109,101,116,101,114,115,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,32,32,37,115,95,116,105,101,114,95,102,108,97,103,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,102,97,108,115,101,0,0,0,105,110, -116,114,97,80,114,101,100,77,111,100,101,62,61,50,0,0,0,0,0,0,0,0,109,97,120,95,116,114,97,110,115,102,111,114,109,95,104,105,101,114,97,114,99,104,121,95,100,101,112,116,104,95,105,110,116,101,114,32,58,32,37,100,10,0,0,0,0,0,0,0,115,108,105,99,101,95,116,121,112,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,99,10,0,0,0,0,0,0,101,110,116,114,111,112,121,95,99,111,100,105,110,103,95,115,121,110,99,95,101,110,97,98,108,101,100,95,102,108,97,103,58,32, -37,100,10,0,0,0,48,0,0,0,0,0,0,0,37,0,0,0,72],"i8",ua,t.Lb);I([58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,110,117,109,98,101,114,32,111,102,32,115,104,111,114,116,45,116,101,114,109,32,114,101,102,45,112,105,99,45,115,101,116,115,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,118,117,105,95,110,117,109,95,116,105,99,107,115,95,112,111,99,95,100,105,102,102,95,111,110,101,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,32,32,37,115,95,112,114,111,102,105, -108,101,95,115,112,97,99,101,32,32,32,32,32,58,32,37,100,10,0,0,0,0,108,111,103,50,95,100,105,102,102,95,109,97,120,95,109,105,110,95,116,114,97,110,115,102,111,114,109,95,98,108,111,99,107,95,115,105,122,101,32,58,32,37,100,10,0,0,0,0,37,112,32,105,110,105,116,10,0,0,0,0,0,0,0,0,115,108,105,99,101,95,115,101,103,109,101,110,116,95,97,100,100,114,101,115,115,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,116,105,108,101,115,95,101,110,97,98,108,101,100,95,102,108,97,103, -32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,37,72,58,37,77,58,37,83,0,0,0,0,0,0,0,0,110,117,109,77,86,95,80,32,33,61,32,110,117,109,77,86,95,81,32,105,110,32,100,101,98,108,111,99,107,105,110,103,0,0,0,0,0,0,0,0,118,117,105,95,112,111,99,95,112,114,111,112,111,114,116,105,111,110,97,108,95,116,111,95,116,105,109,105,110,103,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,115,117,98,95,108,97,121,101,114,0,0,0,0,0,0,0,108,111,103,50,95,109,105,110,95,116,114,97,110,115,102,111, -114,109,95,98,108,111,99,107,95,115,105,122,101,32,32,32,58,32,37,100,10,0,0,0,100,101,112,101,110,100,101,110,116,95,115,108,105,99,101,95,115,101,103,109,101,110,116,95,102,108,97,103,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,116,114,97,110,115,113,117,97,110,116,95,98,121,112,97,115,115,95,101,110,97,98,108,101,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,110,111,110,45,101,120,105,115,116, -105,110,103,32,114,101,102,101,114,101,110,99,101,32,112,105,99,116,117,114,101,32,97,99,99,101,115,115,101,100,0,32,32,118,117,105,95,116,105,109,101,95,115,99,97,108,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,103,101,110,101,114,97,108,0,108,111,103,50,95,100,105,102,102,95,109,97,120,95,109,105,110,95,108,117,109,97,95,99,111,100,105,110,103,95,98,108,111,99,107,95,115,105,122,101,32,58,32,37,100,10,0,0,115,108,105,99,101,95,112,105,99,95,112,97,114,97,109,101,116, -101,114,95,115,101,116,95,105,100,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,111,117,116,112,117,116,95,102,108,97,103,95,112,114,101,115,101,110,116,95,102,108,97,103,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,37,109,47,37,100,47,37,121,0,0,0,0,0,0,0,0,98,111,116,104,32,112,114,101,100,70,108,97,103,115,91,93,32,97,114,101,32,122,101,114,111,32,105,110,32,77,67,0,32,32,118,117,105,95,110,117,109,95,117,110,105,116,115,95,105,110,95,116,105,99,107,32,32,32,32,32,32,32,58,32,37,100, -10,0,0,0,0,0,118,112,115,95,101,120,116,101,110,115,105,111,110,95,102,108,97,103,32,61,32,37,100,10,0,0,0,0,0,0,0,0,108,111,103,50,95,109,105,110,95,108,117,109,97,95,99,111,100,105,110,103,95,98,108,111,99,107,95,115,105,122,101,32,58,32,37,100,10,0,0,0,110,111,95,111,117,116,112,117,116,95,111,102,95,112,114,105,111,114,95,112,105,99,115,95,102,108,97,103,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,119,101,105,103,104,116,101,100,95,98,105,112,114,101,100,95,102,108,97,103,32,32,32, -32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,78,84,83,67,0,0,0,0,33,114,101,111,114,100,101,114,95,111,117,116,112,117,116,95,113,117,101,117,101,46,101,109,112,116,121,40,41,0,0,0,110,111,110,45,101,120,105,115,116,105,110,103,32,83,80,83,32,114,101,102,101,114,101,110,99,101,100,0,0,0,0,0,118,117,105,95,116,105,109,105,110,103,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,32,32,58,32,37,100,10,0,0,0,0,0,32,32,115,112,115,95,109,97,120,95,108,97,116,101,110,99,121,95,105,110, -99,114,101,97,115,101,95,112,108,117,115,49,32,58,32,37,100,10,0,0,102,105,114,115,116,76,97,121,101,114,82,101,97,100,32,60,32,77,65,88,95,84,69,77,80,79,82,65,76,95,83,85,66,76,65,89,69,82,83,0,102,105,114,115,116,95,115,108,105,99,101,95,115,101,103,109,101,110,116,95,105,110,95,112,105,99,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,119,101,105,103,104,116,101,100,95,112,114,101,100,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,48,0,0,0,0,0, -0,0,102,0,0,0,97,0,0,0,108,0,0,0,115,0,0,0,101,0,0,0,0,0,0,0,110,111,110,45,101,120,105,115,116,105,110,103,32,80,80,83,32,114,101,102,101,114,101,110,99,101,100,0,0,0,0,0,32,32,100,101,102,95,100,105,115,112,95,119,105,110,95,98,111,116,116,111,109,95,111,102,102,115,101,116,32,32,58,32,37,100,10,0,0,0,0,0,102,97,108,115,101,0,0,0,104,114,100,95,108,97,121,101,114,95,115,101,116,95,105,100,120,91,37,100,93,32,61,32,37,100,10,0,0,0,0,0,37,112,0,0,0,0,0,0,32,32,115,112,115,95,109,97,120,95,110,117, -109,95,114,101,111,114,100,101,114,95,112,105,99,115,32,32,32,32,32,32,32,58,32,37,100,10,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,32,83,76,73,67,69,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,83,69,73,32,100,101,99,111,100,101,100,32,112,105,99,116,117,114,101,32,104,97,115,104,58,32,37,48,52,120,44,32,100,101,99,111,100,101,100,32,112,105,99,116,117,114,101,58,32,37,48,52,120,32,40,80,79,67,61,37,100,41,10,0,112,112,115,95,115,108,105,99,101,95,99,104,114, -111,109,97,95,113,112,95,111,102,102,115,101,116,115,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,102,97,108,115,101,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,32,83,80,83,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,0,0,105,109,112,111,115,115,105,98,108,101,32,109,111,116,105,111,110,32,118,101,99,116,111,114,32,115,99,97,108,105,110,103,0,0,0,0,0,0,0,0,32,32,100,101,102,95,100,105,115,112,95,119,105,110,95,116,111,112,95,111,102, -102,115,101,116,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,118,112,115,95,110,117,109,95,104,114,100,95,112,97,114,97,109,101,116,101,114,115,32,32,32,32,32,61,32,37,100,10,0,0,0,0,0,0,0,0,32,32,115,112,115,95,109,97,120,95,100,101,99,95,112,105,99,95,98,117,102,102,101,114,105,110,103,32,32,32,32,32,32,58,32,37,100,10,0,0,115,108,105,99,101,32,104,101,97,100,101,114,32,105,110,118,97,108,105,100,0,0,0,0,115,112,115,45,62,115,112,115,95,114,101,97,100,0,0,0,83,69,73,32,100,101,99,111,100,101,100,32, -112,105,99,116,117,114,101,32,77,68,53,32,109,105,115,109,97,116,99,104,32,40,80,79,67,61,37,100,41,10,0,0,0,0,0,0,112,105,99,95,99,114,95,113,112,95,111,102,102,115,101,116,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,116,0,0,0,114,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,0,0,0,0,118,97,108,117,101,62,48,0,32,32,100,101,102,95,100,105,115,112,95,119,105,110,95,114,105,103,104,116,95,111,102,102,115,101,116,32,32,32,58,32,37,100,10,0,0,0,0,0,118,112,115,95,110,117,109,95,116,105,99, -107,115,95,112,111,99,95,100,105,102,102,95,111,110,101,32,61,32,37,100,10,0,0,0,0,0,0,0,0,76,97,121,101,114,32,37,100,10,0,0,0,0,0,0,0,112,112,115,45,62,112,112,115,95,114,101,97,100,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,112,105,99,95,99,98,95,113,112,95,111,102,102,115,101,116,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,82,73,100,120,32,62,61,32,48,32,38,38,32,82,73,100,120,32,60,32,115,101,116,115,46,115,105,122,101,40,41,0,116, -114,117,101,0,0,0,0,112,112,115,32,104,101,97,100,101,114,32,105,110,118,97,108,105,100,0,0,0,0,0,0,32,32,100,101,102,95,100,105,115,112,95,119,105,110,95,108,101,102,116,95,111,102,102,115,101,116,32,32,32,32,58,32,37,100,10,0,0,0,0,0,118,112,115,95,112,111,99,95,112,114,111,112,111,114,116,105,111,110,97,108,95,116,111,95,116,105,109,105,110,103,95,102,108,97,103,32,61,32,37,100,10,0,0,0,0,0,0,0,99,114,111,115,115,95,99,111,109,112,111,110,101,110,116,95,112,114,101,100,105,99,116,105,111,110,95, -101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,115,112,115,95,115,117,98,95,108,97,121,101,114,95,111,114,100,101,114,105,110,103,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,115,112,115,32,104,101,97,100,101,114,32,105,110,118,97,108,105,100,0,0,0,0,0,0,100,105,102,102,95,99,117,95,113,112,95,100,101,108,116,97,95,100,101,112,116,104,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,58,32,0,0,0,0,0,0,110,111,32,115,117,99,104,32,102, -105,108,101,0,0,0,0,37,112,32,99,39,116,111,114,32,61,32,37,112,10,0,0,100,101,102,97,117,108,116,95,100,105,115,112,108,97,121,95,119,105,110,100,111,119,95,102,108,97,103,32,32,32,58,32,37,100,10,0,0,0,0,0,118,112,115,95,116,105,109,101,95,115,99,97,108,101,32,32,32,32,32,32,32,32,61,32,37,100,10,0,0,0,0,0,99,116,120,45,62,104,97,115,95,105,109,97,103,101,40,99,111,108,80,105,99,41,0,0,105,110,116,114,97,80,114,101,100,77,111,100,101,60,51,53,0,0,0,0,0,0,0,0,108,111,103,50,95,109,97,120,95,112, -105,99,95,111,114,100,101,114,95,99,110,116,95,108,115,98,32,58,32,37,100,10,0,0,0,0,0,0,0,0,67,84,66,32,111,117,116,115,105,100,101,32,111,102,32,105,109,97,103,101,32,97,114,101,97,32,40,99,111,110,99,101,97,108,105,110,103,32,115,116,114,101,97,109,32,101,114,114,111,114,46,46,46,41,0,0,99,117,95,113,112,95,100,101,108,116,97,95,101,110,97,98,108,101,100,95,102,108,97,103,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,115,112,115,0,0,0,0,0,102,114,97,109,101,95,102,105,101,108,100,95,105,110,102,111, -95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,48,0,0,0,0,0,0,0,118,112,115,95,110,117,109,95,117,110,105,116,115,95,105,110,95,116,105,99,107,32,61,32,37,100,10,0,0,0,0,0,98,105,116,95,100,101,112,116,104,95,99,104,114,111,109,97,32,58,32,37,100,10,0,0,73,110,99,111,114,114,101,99,116,32,101,110,116,114,121,45,112,111,105,110,116,32,111,102,102,115,101,116,115,0,0,0,109,102,114,101,101,32,37,112,10,0,0,0,0,0,0,0,116,114,97,110,115,102,111,114,109,95,115,107,105,112, -95,101,110,97,98,108,101,100,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,0,0,0,108,111,103,50,87,68,62,61,49,0,0,0,0,0,0,0,102,105,101,108,100,95,115,101,113,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,118,112,115,95,116,105,109,105,110,103,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,32,61,32,37,100,10,0,0,0,0,0,0,98,105,116,95,100,101,112,116,104,95,108,117,109,97,32,32,32,58,32,37,100,10,0,0,80,114,101,109,97,116,117,114,101, -32,101,110,100,32,111,102,32,115,108,105,99,101,32,115,101,103,109,101,110,116,0,0,99,111,110,115,116,114,97,105,110,101,100,95,105,110,116,114,97,95,112,114,101,100,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,0,0,0,105,111,115,95,98,97,115,101,58,58,99,108,101,97,114,0,110,101,117,116,114,97,108,95,99,104,114,111,109,97,95,105,110,100,105,99,97,116,105,111,110,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,108,97,121,101,114,95,105,100,95,105,110,99,108,117,100,101,100,95,102,108,97,103,91,37,100,93, -91,37,100,93,32,61,32,37,100,10,0,0,0,0,99,111,110,102,95,119,105,110,95,98,111,116,116,111,109,95,111,102,102,115,101,116,58,32,37,100,10,0,0,0,0,0,84,111,111,32,109,97,110,121,32,119,97,114,110,105,110,103,115,32,113,117,101,117,101,100,0,0,0,0,0,0,0,0,112,105,99,95,105,110,105,116,95,113,112,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,40,119,105,100,116,104,38,49,41,61,61,48,0,0,0,0,32,32,99,104,114,111,109,97,95,115,97,109,112,108,101,95,108,111,99,95,116,121, -112,101,95,98,111,116,116,111,109,95,102,105,101,108,100,58,32,37,100,10,0,0,0,0,0,0,118,112,115,95,110,117,109,95,108,97,121,101,114,95,115,101,116,115,32,61,32,37,100,10,0,0,0,0,0,0,0,0,99,111,110,102,95,119,105,110,95,116,111,112,95,111,102,102,115,101,116,32,32,32,58,32,37,100,10,0,0,0,0,0,67,97,110,110,111,116,32,114,117,110,32,100,101,99,111,100,101,114,32,109,117,108,116,105,45,116,104,114,101,97,100,101,100,32,98,101,99,97,117,115,101,32,115,116,114,101,97,109,32,100,111,101,115,32,110,111, -116,32,115,117,112,112,111,114,116,32,87,80,80,0,0,0,110,117,109,95,114,101,102,95,105,100,120,95,108,49,95,100,101,102,97,117,108,116,95,97,99,116,105,118,101,32,58,32,37,100,10,0,0,0,0,0,80,65,76,0,0,0,0,0,99,97,98,97,99,46,99,99,0,0,0,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,32,32,99,104,114,111,109,97,95,115,97,109,112,108,101,95,108,111,99,95,116,121,112,101,95,116,111,112,95,102,105,101, -108,100,32,32,32,58,32,37,100,10,0,0,0,0,0,0,118,112,115,95,109,97,120,95,108,97,121,101,114,95,105,100,32,32,32,61,32,37,100,10,0,0,0,0,0,0,0,0,99,111,110,102,95,119,105,110,95,114,105,103,104,116,95,111,102,102,115,101,116,32,58,32,37,100,10,0,0,0,0,0,118,112,115,46,99,99,0,0,48,0,0,0,0,0,0,0,117,110,115,112,101,99,105,102,105,101,100,32,100,101,99,111,100,105,110,103,32,101,114,114,111,114,0,0,0,0,0,0,110,117,109,95,114,101,102,95,105,100,120,95,108,48,95,100,101,102,97,117,108,116,95,97,99,116, -105,118,101,32,58,32,37,100,10,0,0,0,0,0,73,78,70,79,58,32,0,0,116,114,97,110,115,102,111,114,109,46,99,99,0,0,0,0,99,104,114,111,109,97,95,108,111,99,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,58,32,37,100,10,0,0,0,0,0,0,0,46,46,47,108,105,98,100,101,50,54,53,47,105,109,97,103,101,46,104,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,118,112,115,95,109,97,120,95,108,97,116,101,110,99,121,95,105,110,99,114,101,97,115,101,32,32,61,32,37,100,10,0,0,0,0,100,101,99,99,116,120, -46,99,99,0,0,0,0,0,0,0,99,111,110,102,95,119,105,110,95,108,101,102,116,95,111,102,102,115,101,116,32,32,58,32,37,100,10,0,0,0,0,0,110,97,110,0,0,0,0,0,112,114,101,109,97,116,117,114,101,32,101,110,100,32,111,102,32,115,108,105,99,101,32,100,97,116,97,0,0,0,0,0,99,97,98,97,99,95,105,110,105,116,95,112,114,101,115,101,110,116,95,102,108,97,103,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,67,0,0,0,0,0,0,0,115,112,115,46,99,99,0,0,32,32,109,97,116,114,105,120,95,99,111,101,102,102,115,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,118,112,115,95,109,97,120,95,110,117,109,95,114,101,111,114,100,101,114,95,112,105,99,115,32,32,61,32,37,100,10,0,0,0,0,100,101,98,108,111,99,107,46,99,99,0,0,0,0,0,0,99,111,110,102,111,114,109,97,110,99,101,95,119,105,110,100,111,119,95,102,108,97,103,32,32,32,32,58,32, -37,100,10,0,0,0,0,0,0,0,0,102,105,114,115,116,32,115,108,105,99,101,32,109,105,115,115,105,110,103,44,32,99,97,110,110,111,116,32,100,101,99,111,100,101,32,100,101,112,101,110,100,101,110,116,32,115,108,105,99,101,0,0,0,0,0,0,115,105,103,110,95,100,97,116,97,95,104,105,100,105,110,103,95,102,108,97,103,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,118,101,99,116,111,114,0,0,115,108,105,99,101,46,99,99,0,0,0,0,0,0,0,0,32,32,116,114,97,110,115,102,101,114,95,99,104,97,114,97,99,116,101,114,105, -115,116,105,99,115,32,32,32,32,58,32,37,100,10,0,0,0,0,0,108,97,121,101,114,32,40,97,108,108,41,58,32,118,112,115,95,109,97,120,95,100,101,99,95,112,105,99,95,98,117,102,102,101,114,105,110,103,32,61,32,37,100,10,0,0,0,0,112,105,99,95,104,101,105,103,104,116,95,105,110,95,108,117,109,97,95,115,97,109,112,108,101,115,32,58,32,37,100,10,0,0,0,0,0,0,0,0,117,110,105,116,88,32,62,61,32,48,32,38,38,32,117,110,105,116,88,32,60,32,119,105,100,116,104,95,105,110,95,117,110,105,116,115,0,0,0,0,99,111,109,109, -97,110,100,45,108,105,110,101,32,112,97,114,97,109,101,116,101,114,32,101,114,114,111,114,0,0,0,0,100,101,112,101,110,100,101,110,116,95,115,108,105,99,101,95,115,101,103,109,101,110,116,115,95,101,110,97,98,108,101,100,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,114,101,102,112,105,99,46,99,99,0,0,0,0,0,0,0,37,46,48,76,102,0,0,0,98,105,116,115,116,114,101,97,109,46,99,99,0,0,0,0,32,32,99,111,108,111,117,114,95,112,114,105,109,97,114,105,101,115,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,100, -10,0,0,0,0,0,32,32,32,32,32,32,32,32,32,118,112,115,95,109,97,120,95,108,97,116,101,110,99,121,95,105,110,99,114,101,97,115,101,32,32,61,32,37,100,10,0,0,0,0,0,0,0,0,108,111,103,50,95,109,97,120,95,116,114,97,110,115,102,111,114,109,95,115,107,105,112,95,98,108,111,99,107,95,115,105,122,101,32,32,32,32,32,32,58,32,37,100,10,0,0,0,112,105,99,95,119,105,100,116,104,95,105,110,95,108,117,109,97,95,115,97,109,112,108,101,115,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,110,97,108,45,112,97,114,115,101,114,46, -99,99,0,0,0,83,69,73,32,100,97,116,97,32,99,97,110,110,111,116,32,98,101,32,112,114,111,99,101,115,115,101,100,0,0,0,0,115,101,113,95,112,97,114,97,109,101,116,101,114,95,115,101,116,95,105,100,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,105,109,103,45,62,115,112,115,46,66,105,116,68,101,112,116,104,95,67,32,62,61,32,56,32,38,38,32,105,109,103,45,62,115,112,115,46,66,105,116,68,101,112,116,104,95,67,32,60,61,32,49,54,0,0,0,109,111,110,101,121,95,103,101,116,32,101,114,114,111,114,0,110,111, -32,101,114,114,111,114,0,0,0,0,0,0,0,0,32,32,99,111,108,111,117,114,95,100,101,115,99,114,105,112,116,105,111,110,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,46,47,100,101,99,99,116,120,46,104,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,118,112,115,95,109,97,120,95,110,117,109,95,114,101,111,114,100,101,114,95,112,105,99,115,32,32,61,32,37,100,10,0,0,0,0,0,0,0,0,109,111,116,105,111,110,46,99,99,0,0,0,0,0,0,0,105,110,116,114,97,112,114,101,100,46,99,99,0,0,0,0,115,101,112,97,114, -97,116,101,95,99,111,108,111,117,114,95,112,108,97,110,101,95,102,108,97,103,32,58,32,37,100,10,0,0,0,0,0,0,0,0,42,37,115,10,0,0,0,0,110,111,32,109,111,114,101,32,105,110,112,117,116,32,100,97,116,97,44,32,100,101,99,111,100,101,114,32,115,116,97,108,108,101,100,0,0,0,0,0,105,111,115,116,114,101,97,109,0,0,0,0,0,0,0,0,112,105,99,95,112,97,114,97,109,101,116,101,114,95,115,101,116,95,105,100,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,0,0,0,83,97,116,0,0,0,0,0,105,109,103,45,62,115,112,115,46,66, -105,116,68,101,112,116,104,95,89,32,62,61,32,56,32,38,38,32,105,109,103,45,62,115,112,115,46,66,105,116,68,101,112,116,104,95,89,32,60,61,32,49,54,0,0,0,70,114,105,0,0,0,0,0,37,76,102,0,0,0,0,0,105,109,97,103,101,46,99,99,0,0,0,0,0,0,0,0,84,104,117,0,0,0,0,0,87,101,100,0,0,0,0,0,84,117,101,0,0,0,0,0,32,32,118,105,100,101,111,95,102,117,108,108,95,114,97,110,103,101,95,102,108,97,103,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,100,112,98,46,99,99,0,0,110,32,60,32,110,84,104,114,101,97,100,67,111, -110,116,101,120,116,115,0,0,0,0,0,77,111,110,0,0,0,0,0,108,97,121,101,114,32,37,100,58,32,118,112,115,95,109,97,120,95,100,101,99,95,112,105,99,95,98,117,102,102,101,114,105,110,103,32,61,32,37,100,10,0,0,0,0,0,0,0,83,117,110,0,0,0,0,0,48,0,0,0,0,0,0,0,117,110,107,110,111,119,110,0,83,97,116,117,114,100,97,121,0,0,0,0,0,0,0,0,70,114,105,100,97,121,0,0,42,37,100,37,99,32,0,0,84,104,117,114,115,100,97,121,0,0,0,0,0,0,0,0,117,110,105,109,112,108,101,109,101,110,116,101,100,32,100,101,99,111,100,101, -114,32,102,101,97,116,117,114,101,0,0,0,37,112,32,100,101,115,116,114,117,99,116,111,114,10,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,32,80,80,83,32,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,0,0,0,0,0,0,0,0,87,101,100,110,101,115,100,97,121,0,0,0,0,0,0,0,109,111,100,101,108,91,105,93,46,115,116,97,116,101,32,60,61,32,54,50,0,0,0,0,84,117,101,115,100,97,121,0,77,111,110,100,97,121,0,0,83,117,110,100,97,121,0,0,102,97,108,108,98,97,99,107,45,109,111,116,105,111,110,46,99,99, -0,0,0,0,0,0,32,32,118,105,100,101,111,95,102,111,114,109,97,116,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,58,32,37,115,10,0,0,0,0,0,83,0,0,0,97,0,0,0,116,0,0,0,0,0,0,0,118,112,115,95,115,117,98,95,108,97,121,101,114,95,111,114,100,101,114,105,110,103,95,105,110,102,111,95,112,114,101,115,101,110,116,95,102,108,97,103,32,58,32,37,100,10,0,0,70,0,0,0,114,0,0,0,105,0,0,0,0,0,0,0,52,58,52,58,52,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,0,0,0,0,99,97,110,110,111,116, -32,102,114,101,101,32,108,105,98,114,97,114,121,32,100,97,116,97,32,40,110,111,116,32,105,110,105,116,105,97,108,105,122,101,100,0,0,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,0,0,0,0,112,112,115,46,99,99,0,0,77,0,0,0,111,0,0,0,110,0,0,0,0,0,0,0,117,110,115,112,101,99,105,102,105,101,100,32,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,32,101,114,114,111,114,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117, -110,105,116,115,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,0,0,0,0,102,97,108,108,98,97,99,107,45,100,99,116,46,99,99,0,83,0,0,0,97,0,0,0,116,0,0,0,117,0,0,0,114,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,114,0,0,0,105,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,104,0,0,0,117,0,0,0,114,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,118,105,100,101,111,95,115,105,103,110,97,108,95,116,121,112,101,95,112,114,101,115,101,110,116,95,102,108,97,103,58,32,37,100,10, -0,0,0,0,0,87,0,0,0,101,0,0,0,100,0,0,0,110,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,118,112,115,95,116,101,109,112,111,114,97,108,95,105,100,95,110,101,115,116,105,110,103,95,102,108,97,103,32,32,32,32,32,32,32,32,32,32,58,32,37,100,10,0,0,0,0,0,109,111,114,101,62,61,45,49,32,38,38,32,109,111,114,101,60,61,49,0,0,0,0,0,84,0,0,0,117,0,0,0,101,0,0,0,115,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,52,58,50,58,50,0,0,0,77,0,0,0,111,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0, -0,0,0,0,0,0,83,0,0,0,117,0,0,0,110,0,0,0,100,0,0,0,97,0,0,0,121,0,0,0,0,0,0,0,0,0,0,0,116,105,108,101,88,62,61,48,32,38,38,32,116,105,108,101,89,62,61,48,0,0,0,0,103,108,111,98,97,108,32,108,105,98,114,97,114,121,32,105,110,105,116,105,97,108,105,122,97,116,105,111,110,32,102,97,105,108,101,100,0,0,0,0,68,101,99,0,0,0,0,0,117,110,105,116,89,32,62,61,32,48,32,38,38,32,117,110,105,116,89,32,60,32,104,101,105,103,104,116,95,105,110,95,117,110,105,116,115,0,0,0,37,112,32,40,97,108,108,111,99,41,10,0, -0,0,0,0,46,47,105,109,97,103,101,46,104,0,0,0,0,0,0,0,78,111,118,0,0,0,0,0,79,99,116,0,0,0,0,0,83,101,112,0,0,0,0,0,65,117,103,0,0,0,0,0,100,101,50,54,53,95,115,101,116,95,112,97,114,97,109,101,116,101,114,95,105,110,116,0,100,101,50,54,53,95,115,101,116,95,112,97,114,97,109,101,116,101,114,95,98,111,111,108,0,0,0,0,0,0,0,0,100,101,50,54,53,95,103,101,116,95,112,97,114,97,109,101,116,101,114,95,98,111,111,108,0,0,0,0,0,0,0,0,100,101,50,54,53,95,103,101,116,95,105,109,97,103,101,95,112,108,97,110, -101,95,117,115,101,114,95,100,97,116,97,0,100,101,50,54,53,95,103,101,116,95,105,109,97,103,101,95,112,108,97,110,101,0,0,0,100,117,109,112,95,115,108,105,99,101,95,115,101,103,109,101,110,116,95,104,101,97,100,101,114,0,0,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,103,101,116,0,0,0,0,0,110,101,119,95,105,109,97,103,101,0,0,0,0,0,0,0,111,117,116,112,117,116,95,110,101,120,116,95, -112,105,99,116,117,114,101,95,105,110,95,114,101,111,114,100,101,114,95,98,117,102,102,101,114,0,0,0,114,101,97,100,0,0,0,0,100,101,99,111,117,112,108,101,0,0,0,0,0,0,0,0,100,101,99,111,117,112,108,101,95,111,114,95,97,108,108,111,99,95,119,105,116,104,95,101,109,112,116,121,95,100,97,116,97,0,0,0,0,0,0,0,114,101,97,100,0,0,0,0,115,101,116,95,100,101,114,105,118,101,100,95,118,97,108,117,101,115,0,0,0,0,0,0,100,101,99,111,100,101,0,0,103,101,110,101,114,97,116,101,95,117,110,97,118,97,105,108,97, -98,108,101,95,114,101,102,101,114,101,110,99,101,95,112,105,99,116,117,114,101,0,0,99,111,110,115,116,114,117,99,116,95,114,101,102,101,114,101,110,99,101,95,112,105,99,116,117,114,101,95,108,105,115,116,115,0,0,0,0,0,0,0,112,114,111,99,101,115,115,95,115,108,105,99,101,95,115,101,103,109,101,110,116,95,104,101,97,100,101,114,0,0,0,0,100,101,99,111,100,101,95,115,108,105,99,101,95,117,110,105,116,95,112,97,114,97,108,108,101,108,0,0,0,0,0,0,100,101,99,111,100,101,95,115,108,105,99,101,95,117,110, -105,116,95,116,105,108,101,115,0,100,101,99,111,100,101,95,115,108,105,99,101,95,117,110,105,116,95,87,80,80,0,0,0,99,104,97,110,103,101,95,102,114,97,109,101,114,97,116,101,0,0,0,0,0,0,0,0,115,101,116,95,73,110,116,114,97,80,114,101,100,77,111,100,101,67,0,0,0,0,0,0,116,104,114,101,97,100,95,102,105,110,105,115,104,101,115,0,99,111,112,121,95,108,105,110,101,115,95,102,114,111,109,0,97,108,108,111,99,95,105,109,97,103,101,0,0,0,0,0,97,108,108,111,99,97,116,101,95,116,104,114,101,97,100,95,99,111, -110,116,101,120,116,115,0,0,0,0,0,0,0,0,103,101,116,95,116,104,114,101,97,100,95,99,111,110,116,101,120,116,0,0,0,0,0,0,112,117,115,104,95,78,65,76,0,0,0,0,0,0,0,0,100,101,99,111,100,101,95,115,112,108,105,116,95,116,114,97,110,115,102,111,114,109,95,102,108,97,103,0,0,0,0,0,100,101,50,54,53,95,105,109,97,103,101,95,103,101,116,95,98,117,102,102,101,114,0,0,100,101,99,111,100,101,95,112,97,114,116,95,109,111,100,101,0,0,0,0,0,0,0,0,115,101,116,95,105,110,105,116,86,97,108,117,101,0,0,0,109,99,95, -99,104,114,111,109,97,0,0,0,0,0,0,0,103,101,116,95,117,118,108,99,0,0,0,0,0,0,0,0,97,108,108,111,99,95,97,110,100,95,105,110,105,116,95,115,105,103,110,105,102,105,99,97,110,116,95,99,111,101,102,102,95,99,116,120,73,100,120,95,108,111,111,107,117,112,84,97,98,108,101,0,0,0,0,0,100,101,114,105,118,101,95,99,111,109,98,105,110,101,100,95,98,105,112,114,101,100,105,99,116,105,118,101,95,109,101,114,103,105,110,103,95,99,97,110,100,105,100,97,116,101,115,0,100,101,114,105,118,101,95,115,112,97,116,105, -97,108,95,108,117,109,97,95,118,101,99,116,111,114,95,112,114,101,100,105,99,116,105,111,110,0,0,0,102,105,108,108,95,108,117,109,97,95,109,111,116,105,111,110,95,118,101,99,116,111,114,95,112,114,101,100,105,99,116,111,114,115,0,0,0,0,0,0,112,117,116,95,119,101,105,103,104,116,101,100,95,112,114,101,100,95,97,118,103,95,49,54,95,102,97,108,108,98,97,99,107,0,0,0,0,0,0,0,105,110,116,114,97,95,112,114,101,100,105,99,116,105,111,110,95,115,97,109,112,108,101,95,102,105,108,116,101,114,105,110,103,0, -0,0,0,0,0,0,103,101,110,101,114,97,116,101,95,105,110,116,101,114,95,112,114,101,100,105,99,116,105,111,110,95,115,97,109,112,108,101,115,0,0,0,0,0,0,0,112,117,116,95,119,101,105,103,104,116,101,100,95,112,114,101,100,95,97,118,103,95,56,95,102,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,100,101,114,105,118,101,95,99,111,108,108,111,99,97,116,101,100,95,109,111,116,105,111,110,95,118,101,99,116,111,114,115,0,0,0,0,0,0,0,0,112,117,116,95,119,101,105,103,104,116,101,100,95,98,105,112,114,101,100,95,49, -54,95,102,97,108,108,98,97,99,107,0,112,117,116,95,117,110,119,101,105,103,104,116,101,100,95,112,114,101,100,95,49,54,95,102,97,108,108,98,97,99,107,0,112,117,116,95,119,101,105,103,104,116,101,100,95,98,105,112,114,101,100,95,56,95,102,97,108,108,98,97,99,107,0,0,112,117,116,95,117,110,119,101,105,103,104,116,101,100,95,112,114,101,100,95,56,95,102,97,108,108,98,97,99,107,0,0,112,117,116,95,119,101,105,103,104,116,101,100,95,112,114,101,100,95,49,54,95,102,97,108,108,98,97,99,107,0,0,0,112,117, -116,95,119,101,105,103,104,116,101,100,95,112,114,101,100,95,56,95,102,97,108,108,98,97,99,107,0,0,0,0,115,99,97,108,101,95,99,111,101,102,102,105,99,105,101,110,116,115,95,105,110,116,101,114,110,97,108,0,0,0,0,0,114,101,97,100,95,115,104,111,114,116,95,116,101,114,109,95,114,101,102,95,112,105,99,95,115,101,116,0,0,0,0,0,116,114,97,110,115,102,111,114,109,95,115,107,105,112,95,49,54,95,102,97,108,108,98,97,99,107,0,0,0,0,0,0,116,114,97,110,115,102,111,114,109,95,115,107,105,112,95,56,95,102,97, -108,108,98,97,99,107,0,0,0,0,0,0,0,105,110,116,114,97,95,112,114,101,100,105,99,116,105,111,110,95,97,110,103,117,108,97,114,0,0,0,0,0,0,0,0,105,110,105,116,105,97,108,105,122,101,95,67,65,66,65,67,95,109,111,100,101,108,115,0,100,101,114,105,118,101,95,98,111,117,110,100,97,114,121,83,116,114,101,110,103,116,104,0,114,101,97,100,95,116,114,97,110,115,102,111,114,109,95,117,110,105,116,0,0,0,0,0,114,101,97,100,95,116,114,97,110,115,102,111,114,109,95,116,114,101,101,0,0,0,0,0,102,105,108,108,95,115, -99,97,108,105,110,103,95,102,97,99,116,111,114,0,0,0,0,0,105,110,105,116,95,67,65,66,65,67,95,100,101,99,111,100,101,114,0,0,0,0,0,0,114,101,97,100,95,115,99,97,108,105,110,103,95,108,105,115,116,0,0,0,0,0,0,0,114,101,97,100,95,99,111,100,105,110,103,95,117,110,105,116,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22, -0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,0,0,0,0,48,49,50,51,52,53,54,55,56,57,0,0,0,0,0,0,48,49,50,51,52,53,54,55,56,57,0,0,0,0,0,0,37,0,0,0,89,0,0,0,45,0,0,0,37,0,0,0,109,0,0,0,45,0,0,0,37,0,0,0,100,0,0,0,37,0,0, -0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,0,0,0,0,37,0,0,0,73,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,32,0,0,0,37,0,0,0,112,0,0,0,0,0,0,0,37,0,0,0,109,0,0,0,47,0,0,0,37,0,0,0,100,0,0,0,47,0,0,0,37,0,0,0,121,0,0,0,37,0,0,0,72,0,0,0,58,0,0,0,37,0,0,0,77,0,0,0,58,0,0,0,37,0,0,0,83,0,0,0,37,72,58,37,77,58,37,83,37,72,58,37,77,0,0,0,37,73,58,37,77,58,37,83,32,37,112,0,0,0,0,0,37,89,45,37,109,45,37,100,37,109,47,37, -100,47,37,121,37,72,58,37,77,58,37,83,37,0,0,0,0,0,0,0,37,112,0,0,0,0,0,0,0,0,0,0,26,0,0,0,10,0,0,0,1,0,0,0,0,0,0,0,184,99,0,0,174,0,0,0,138,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,99,0,0,236,0,0,0,190,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,99,0,0,76,0,0,0,62,1,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,99,0,0,110,0,0,0,8,0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,99,0,0,110,0,0,0,26,0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,100,0,0,228,0,0,0,90,0,0, -0,56,0,0,0,2,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,100,0,0,54,1,0,0,220,0,0,0,56,0,0,0,4,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,100,0,0,188,0,0,0,222,0,0,0,56,0,0,0,30,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,100,0,0,56,1,0,0,162,0,0,0,56,0,0,0,28,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,101,0,0,48,1,0,0,108,0,0,0,56,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,101,0,0,186,0,0,0,128,0,0,0,56,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,101,0,0,46,0,0,0,130,0,0, -0,56,0,0,0,120,0,0,0,4,0,0,0,60,0,0,0,10,0,0,0,38,0,0,0,88,0,0,0,4,0,0,0,248,255,255,255,80,101,0,0,22,0,0,0,10,0,0,0,34,0,0,0,16,0,0,0,2,0,0,0,32,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,101,0,0,36,1,0,0,20,1,0,0,56,0,0,0,20,0,0,0,24,0,0,0,92,0,0,0,54,0,0,0,34,0,0,0,2,0,0,0,8,0,0,0,248,255,255,255,120,101,0,0,64,0,0,0,100,0,0,0,114,0,0,0,44,0,0,0,88,0,0,0,42,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,101,0,0,84,0,0,0,226,0,0,0,56,0,0,0,46,0,0,0,122,0,0,0,8,0,0,0,50,0,0,0,58,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,101,0,0,68,0,0,0,72,0,0,0,56,0,0,0,40,0,0,0,76,0,0,0,12,0,0,0,64,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,101,0,0,40,1,0,0,2,0,0,0,56,0,0,0,24,0,0,0,32,0,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,101,0,0,54,0,0,0,6,1,0,0,56,0,0,0,38,0,0,0,14,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,0,0,10,1,0,0,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,102,0,0,38,0,0,0,160,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,102,0,0,6,0,0,0,202,0,0,0,56,0,0,0,8,0,0,0,6,0,0,0,18,0,0,0,4, -0,0,0,16,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,102,0,0,116,0,0,0,24,0,0,0,56,0,0,0,22,0,0,0,26,0,0,0,62,0,0,0,24,0,0,0,42,0,0,0,8,0,0,0,6,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,102,0,0,48,0,0,0,32,0,0,0,56,0,0,0,78,0,0,0,76,0,0,0,68,0,0,0,70,0,0,0,58,0,0,0,74,0,0,0,66,0,0,0,46,0,0,0,82,0,0,0,80,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,102,0,0,60,0,0,0,4],"i8",ua,t.Lb+10240);I([56,0,0,0,110,0,0,0,102,0,0,0,96,0,0,0,98,0,0,0,90,0,0,0,100,0,0,0,94,0,0,0,108,0, -0,0,106,0,0,0,104,0,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,102,0,0,78,0,0,0,106,0,0,0,56,0,0,0,6,0,0,0,32,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,102,0,0,36,0,0,0,204,0,0,0,56,0,0,0,16,0,0,0,38,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,102,0,0,14,0,0,0,218,0,0,0,56,0,0,0,2,0,0,0,10,0,0,0,14,0,0,0,118,0,0,0,94,0,0,0,24,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,102,0,0,210,0,0,0,154,0,0,0,56,0,0,0,14,0,0,0,16,0,0,0,18,0,0,0,50,0,0,0,8,0,0,0,20,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,102,0, -0,210,0,0,0,28,0,0,0,56,0,0,0,6,0,0,0,4,0,0,0,4,0,0,0,92,0,0,0,60,0,0,0,10,0,0,0,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,103,0,0,210,0,0,0,118,0,0,0,56,0,0,0,12,0,0,0,8,0,0,0,22,0,0,0,30,0,0,0,14,0,0,0,8,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,103,0,0,210,0,0,0,42,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,103,0,0,64,0,0,0,182,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,103,0,0,210,0,0,0,86,0,0,0,56,0,0,0,20,0,0,0,2,0,0,0,6,0,0,0,12,0,0,0,20,0,0,0,28,0,0,0,26,0,0,0,6,0,0,0,6,0,0,0,10, -0,0,0,10,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,103,0,0,60,1,0,0,44,0,0,0,56,0,0,0,14,0,0,0,4,0,0,0,2,0,0,0,36,0,0,0,10,0,0,0,8,0,0,0,26,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,103,0,0,74,0,0,0,94,0,0,0,70,0,0,0,34,0,0,0,14,0,0,0,32,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,103,0,0,210,0,0,0,92,0,0,0,56,0,0,0,12,0,0,0,8,0,0,0,22,0,0,0,30,0,0,0,14,0,0,0,8,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,103,0,0,210,0,0,0,192,0,0,0,56,0,0,0,12,0,0,0,8,0,0,0,22,0,0,0,30,0,0, -0,14,0,0,0,8,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,103,0,0,150,0,0,0,30,1,0,0,84,0,0,0,22,0,0,0,16,0,0,0,34,0,0,0,80,0,0,0,96,0,0,0,34,0,0,0,28,0,0,0,26,0,0,0,8,0,0,0,44,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,103,0,0,12,0,0,0,140,0,0,0,68,0,0,0,40,0,0,0,30,0,0,0,30,0,0,0,48,0,0,0,78,0,0,0,18,0,0,0,6,0,0,0,12,0,0,0,30,0,0,0,16,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,16,104,0,0,52,0,0,0,2,1,0,0,252,255,255,255,252,255,255,255,16,104,0,0,168,0,0,0,148,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, -0,0,0,40,104,0,0,12,1,0,0,32,1,0,0,252,255,255,255,252,255,255,255,40,104,0,0,126,0,0,0,240,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,64,104,0,0,98,0,0,0,44,1,0,0,248,255,255,255,248,255,255,255,64,104,0,0,212,0,0,0,28,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,88,104,0,0,124,0,0,0,248,0,0,0,248,255,255,255,248,255,255,255,88,104,0,0,158,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,0,0,244,0,0,0,214,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,104,0,0,42,1,0,0,216,0,0,0,18,0,0,0,22,0,0,0,16,0,0,0, -34,0,0,0,56,0,0,0,96,0,0,0,34,0,0,0,28,0,0,0,26,0,0,0,8,0,0,0,30,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,104,0,0,180,0,0,0,206,0,0,0,42,0,0,0,40,0,0,0,30,0,0,0,30,0,0,0,82,0,0,0,78,0,0,0,18,0,0,0,6,0,0,0,12,0,0,0,30,0,0,0,42,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,104,0,0,18,1,0,0,166,0,0,0,56,0,0,0,62,0,0,0,116,0,0,0,34,0,0,0,90,0,0,0,4,0,0,0,38,0,0,0,52,0,0,0,28,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,104,0,0,122,0,0,0,62,0,0,0,56,0,0,0,108,0,0,0,4,0,0,0,74,0,0,0,24,0,0,0,86,0,0,0,30,0, -0,0,112,0,0,0,60,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,105,0,0,22,1,0,0,134,0,0,0,56,0,0,0,18,0,0,0,58,0,0,0,6,0,0,0,54,0,0,0,92,0,0,0,62,0,0,0,86,0,0,0,66,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,105,0,0,82,0,0,0,200,0,0,0,56,0,0,0,98,0,0,0,102,0,0,0,36,0,0,0,82,0,0,0,32,0,0,0,26,0,0,0,72,0,0,0,80,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,105,0,0,100,0,0,0,22,0,0,0,44,0,0,0,22,0,0,0,16,0,0,0,34,0,0,0,80,0,0,0,96,0,0,0,34,0,0,0,66,0,0,0,74,0,0,0,16,0,0,0,44,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,128,105,0,0,18,0,0,0,14,1,0,0,70,0,0,0,40,0,0,0,30,0,0,0,30,0,0,0,48,0,0,0,78,0,0,0,18,0,0,0,90,0,0,0,24,0,0,0,4,0,0,0,16,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,105,0,0,250,0,0,0,238,0,0,0,70,0,0,0,178,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,105,0,0,50,1,0,0,26,1,0,0,0,1,0,0,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,105,0,0,4,1,0,0,8,1,0,0,246,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,105,0,0,46,1,0,0,80,0,0,0,104,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,0,0,34, -1,0,0,66,0,0,0,184,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,106,0,0,24,1,0,0,242,0,0,0,12,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,106,0,0,254,0,0,0,120,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,83,116,56,98,97,100,95,99,97,115,116,0,0,0,0,0,83,116,49,51,114,117,110,116,105,109,101,95,101,114,114,111,114,0,0,0,0,0,0,0,83,116,49,50,108,101,110,103,116,104,95,101,114,114,111,114,0,0,0,0,0,0,0,0,83,116, -49,49,108,111,103,105,99,95,101,114,114,111,114,0,78,83,116,51,95,95,49,57,116,105,109,101,95,98,97,115,101,69,0,0,0,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101, -114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,57,109,111,110,101,121,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116, -111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,57,98,97,115,105,99,95,105,111,115,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,112,117,116,73,119,69,69,0,0,0,78,83,116,51,95,95,49,57, -95,95,110,117,109,95,112,117,116,73,99,69,69,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,119,69,69,0,0,0,78,83,116,51,95,95,49,57,95,95,110,117,109,95,103,101,116,73,99,69,69,0,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,112,117, -116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,56,116,105,109,101,95,103,101,116,73,99,78,83, -95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,119,69,69,0,0,0,0,78,83,116,51,95,95,49,56,110,117,109,112,117,110,99,116,73,99,69,69,0,0,0,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,119,69,69,0,0,0,0,78,83,116,51,95,95,49,56,109,101,115,115,97,103,101,115,73,99,69,69,0,0,0,0,78,83,116,51,95,95,49, -56,105,111,115,95,98,97,115,101,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,56,105,111,115,95,98,97,115,101,55,102,97,105,108,117,114,101,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,119,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,112,117,116,73,99,78,83,95,49,57,111,115,116,114,101,97,109,98,117,102, -95,105,116,101,114,97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,119,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114,97,116,111,114,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,110,117,109,95,103,101,116,73,99,78,83,95,49,57,105,115,116,114,101,97,109,98,117,102,95,105,116,101,114, -97,116,111,114,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,119,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,108,108,97,116,101,73,99,69,69,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,119,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,99,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0, -0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,115,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,78,83,116,51,95,95,49,55,99,111,100,101,99,118,116,73,68,105,99,49,49,95,95,109,98,115,116,97,116,101,95,116,69,69,0,0,0,0,0,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,102,97,99,101,116,69,0,0,0,78,83,116,51,95,95,49,54,108,111,99,97,108,101,53,95,95,105,109,112,69,0,0,0,78,83,116,51,95,95,49,53,99,116,121,112,101,73,119,69,69,0,0,0,0,0,0,0,78,83,116,51,95, -95,49,53,99,116,121,112,101,73,99,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,119,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,50,48,95,95,116,105,109,101,95,103,101,116,95,99,95,115,116,111,114,97,103,101,73,99,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,57,95,95,105,111,115,116,114,101,97,109,95,99,97,116,101,103,111,114,121,69,0,0,0,78,83,116,51,95,95,49,49,55,95,95,119,105,100,101,110,95,102,114,111,109,95,117,116,102, -56,73,76,106,51,50,69,69,69,0,0,0,0,0,0,78,83,116,51,95,95,49,49,54,95,95,110,97,114,114,111,119,95,116,111,95,117,116,102,56,73,76,106,51,50,69,69,69,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,53,98,97,115,105,99,95,115,116,114,101,97,109,98,117,102,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69, -69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,101,114,114,111,114,95,99,97,116,101,103,111,114,121,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,95,95,115,104,97,114,101,100,95,99,111,117,110,116,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,112,117,116,95,98,97,115,101,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,52,95,95,110,117,109,95,103,101,116,95,98,97,115,101,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,51,109,101,115,115,97,103,101,115,95,98,97,115,101,69,0,78,83,116, -51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,111,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,78,83,116,51,95,95,49,49,51,98,97,115,105,99,95,105,115,116,114,101,97,109,73,119,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,119,69,69,69,69,0,0,78,83,116,51,95,95,49,49,51,98,97, -115,105,99,95,105,115,116,114,101,97,109,73,99,78,83,95,49,49,99,104,97,114,95,116,114,97,105,116,115,73,99,69,69,69,69,0,0,78,83,116,51,95,95,49,49,50,115,121,115,116,101,109,95,101,114,114,111,114,69,0,0,78,83,116,51,95,95,49,49,50,99,111,100,101,99,118,116,95,98,97,115,101,69,0,0,78,83,116,51,95,95,49,49,50,95,95,100,111,95,109,101,115,115,97,103,101,69,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116,100,111,117,116,98,117,102,73,119,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,49,95,95,115,116, -100,111,117,116,98,117,102,73,99,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,119,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,112,117,116,73,99,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,119,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,49,95,95,109,111,110,101,121,95,103,101,116,73,99,69,69,0,0,0,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117, -110,99,116,73,119,76,98,49,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,119,76,98,48,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,49,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,112,117,110,99,116,73,99,76,98,48,69,69,69,0,0,0,0,0,78,83,116,51,95,95,49,49,48,109,111,110,101,121,95,98,97,115,101,69,0,0,0,0,78,83,116,51,95,95,49,49,48,99,116,121,112,101,95,98,97,115,101,69,0,0,0,0, -78,83,116,51,95,95,49,49,48,95,95,116,105,109,101,95,112,117,116,69,0,0,0,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,119,69,69,0,78,83,116,51,95,95,49,49,48,95,95,115,116,100,105,110,98,117,102,73,99,69,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,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,0,0, -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,0,0,0,0,0,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,0,0,0,0,0,0,0,50,54,116,104,114,101,97,100,95,116,97,115,107,95,100,101,98,108,111,99,107,95,67,84,66,82,111,119,0,0,0,0,50,53,116,104,114,101,97,100,95,116,97,115,107,95,115,108,105,99,101,95,115,101,103,109,101,110,116,0,0,0,0,0,49,57,116,104,114,101,97,100, -95,116,97,115,107,95,99,116,98,95,114,111,119,0,0,0,49,53,116,104,114,101,97,100,95,116,97,115,107,95,115,97,111,0,0,0,0,0,0,0,49,53,100,101,99,111,100,101,114,95,99,111,110,116,101,120,116,0,0,0,0,0,0,0,49,50,98,97,115,101,95,99,111,110,116,101,120,116,0,0,49,49,116,104,114,101,97,100,95,116,97,115,107,0,0,0,49,49,101,114,114,111,114,95,113,117,101,117,101,0,0,0,0,0,0,0,96,87,0,0,0,0,0,0,112,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168, -87,0,0,248,99,0,0,0,0,0,0,0,0,0,0,192,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,87,0,0,120,86,0,0,232,87,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,184,104,0,0,0,0,0,0,120,86,0,0,48,88,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,192,104,0,0,0,0,0,0,120,86,0,0,120,88,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,200,104,0,0,0,0,0,0,120,86,0,0,192,88,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,208,104,0,0,0,0,0,0,0,0,0,0,8,89,0,0,0,102,0,0,0,0,0,0,0,0,0,0,56,89,0,0,0,102,0,0,0,0,0,0,120,86,0,0,104,89,0,0,0,0,0,0,1,0,0,0,248,103, -0,0,0,0,0,0,120,86,0,0,128,89,0,0,0,0,0,0,1,0,0,0,248,103,0,0,0,0,0,0,120,86,0,0,152,89,0,0,0,0,0,0,1,0,0,0,0,104,0,0,0,0,0,0,120,86,0,0,176,89,0,0,0,0,0,0,1,0,0,0,0,104,0,0,0,0,0,0,120,86,0,0,200,89,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,104,105,0,0,0,8,0,0,120,86,0,0,16,90,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,104,105,0,0,0,8,0,0,120,86,0,0,88,90,0,0,0,0,0,0,3,0,0,0,56,103,0,0,2,0,0,0,8,100,0,0,2,0,0,0,152,103,0,0,0,8,0,0,120,86,0,0,160,90,0,0,0,0,0,0,3,0,0,0,56,103,0,0,2,0,0,0,8,100,0,0,2,0,0, -0,160,103,0,0,0,8,0,0,0,0,0,0,232,90,0,0,56,103,0,0,0,0,0,0,0,0,0,0,0,91,0,0,56,103,0,0,0,0,0,0,120,86,0,0,24,91,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,8,104,0,0,2,0,0,0,120,86,0,0,48,91,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,8,104,0,0,2,0,0,0,0,0,0,0,72,91,0,0,0,0,0,0,96,91,0,0,112,104,0,0,0,0,0,0,120,86,0,0,128,91,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,176,100,0,0,0,0,0,0,120,86,0,0,200,91,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,200,100,0,0,0,0,0,0,120,86,0,0,16,92,0,0,0,0,0,0,2,0,0,0,56,103,0,0, -2,0,0,0,224,100,0,0,0,0,0,0,120,86,0,0,88,92,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,248,100,0,0,0,0,0,0,0,0,0,0,160,92,0,0,56,103,0,0,0,0,0,0,0,0,0,0,184,92,0,0,56,103,0,0,0,0,0,0,120,86,0,0,208,92,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,128,104,0,0,2,0,0,0,120,86,0,0,248,92,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,128,104,0,0,2,0,0,0,120,86,0,0,32,93,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,128,104,0,0,2,0,0,0,120,86,0,0,72,93,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,128,104,0,0,2,0,0,0,0,0,0,0,112,93, -0,0,240,103,0,0,0,0,0,0,0,0,0,0,136,93,0,0,56,103,0,0,0,0,0,0,120,86,0,0,160,93,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,96,105,0,0,2,0,0,0,120,86,0,0,184,93,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,96,105,0,0,2,0,0,0,0,0,0,0,208,93,0,0,0,0,0,0,248,93,0,0,0,0,0,0,32,94,0,0,136,104,0,0,0,0,0,0,0,0,0,0,64,94,0,0,24,103,0,0,0,0,0,0,0,0,0,0,104,94,0,0,24,103,0,0,0,0,0,0,0,0,0,0,144,94,0,0,0,0,0,0,200,94,0,0,0,0,0,0,0,95,0,0,0,0,0,0,32,95,0,0,0,0,0,0,64,95,0,0,0,0,0,0,96,95,0,0,0,0,0,0,128,95,0,0,120,86,0, -0,152,95,0,0,0,0,0,0,1,0,0,0,144,100,0,0,3,244,255,255,120,86,0,0,200,95,0,0,0,0,0,0,1,0,0,0,160,100,0,0,3,244,255,255,120,86,0,0,248,95,0,0,0,0,0,0,1,0,0,0,144,100,0,0,3,244,255,255,120,86,0,0,40,96,0,0,0,0,0,0,1,0,0,0,160,100,0,0,3,244,255,255,0,0,0,0,88,96,0,0,216,99,0,0,0,0,0,0,0,0,0,0,112,96,0,0,0,0,0,0,136,96,0,0,232,103,0,0,0,0,0,0,0,0,0,0,160,96,0,0,216,103,0,0,0,0,0,0,0,0,0,0,192,96,0,0,224,103,0,0,0,0,0,0,0,0,0,0,224,96,0,0,0,0,0,0,0,97,0,0,0,0,0,0,32,97,0,0,0,0,0,0,64,97,0,0,120,86,0,0, -96,97,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,88,105,0,0,2,0,0,0,120,86,0,0,128,97,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,88,105,0,0,2,0,0,0,120,86,0,0,160,97,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,88,105,0,0,2,0,0,0,120,86,0,0,192,97,0,0,0,0,0,0,2,0,0,0,56,103,0,0,2,0,0,0,88,105,0,0,2,0,0,0,0,0,0,0,224,97,0,0,0,0,0,0,248,97,0,0,0,0,0,0,16,98,0,0,0,0,0,0,40,98,0,0,216,103,0,0,0,0,0,0,0,0,0,0,64,98,0,0,224,103,0,0,0,0,0,0,0,0,0,0,88,98,0,0,176,105,0,0,0,0,0,0,0,0,0,0,128,98,0,0,176,105,0,0,0,0,0,0, -0,0,0,0,168,98,0,0,192,105,0,0,0,0,0,0,0,0,0,0,208,98,0,0,176,99,0,0,0,0,0,0,0,0,0,0,248,98,0,0,56,106,0,0,0,0,0,0,0,0,0,0,24,99,0,0,56,106,0,0,0,0,0,0,0,0,0,0,56,99,0,0,56,106,0,0,0,0,0,0,0,0,0,0,80,99,0,0,56,106,0,0,0,0,0,0,0,0,0,0,104,99,0,0,32,106,0,0,0,0,0,0,120,86,0,0,128,99,0,0,0,0,0,0,1,0,0,0,64,106,0,0,2,4,0,0,0,0,0,0,144,99,0,0,0,0,0,0,160,99,0,0,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,65,66,67,68,69,70,120,88,43,45,112,80,105,73,110,78,0,0,0,0,0,0,0,0,4,0,0,0,42,0,0,0,29,55, -74,84,74,74,0,182,84,227,182,55,55,172,74,227,0,1,4,5,2,3,4,5,6,6,8,8,7,7,8,99,128,176,208,240,128,167,197,227,128,158,187,216,123,150,178,205,116,142,169,195,111,135,160,185,105,128,152,175,100,122,144,166,95,116,137,158,90,110,130,150,85,104,123,142,81,99,117,135,77,94,111,128,73,89,105,122,69,85,100,116,66,80,95,110,62,76,90,104,59,72,86,99,56,69,81,94,53,65,77,89,51,62,73,85,48,59,69,80,46,56,66,76,43,53,63,72,41,50,59,69,39,48,56,65,37,45,54,62,35,43,51,59,33,41,48,56,32,39,46,53,30,37,43,50, -29,35,41,48,27,33,39,45,26,31,37,43,24,30,35,41,23,28,33,39,22,27,32,37,21,26,30,35,20,24,29,33,19,23,27,31,18,22,26,30,17,21,25,28,16,20,23,27,15,19,22,25,14,18,21,24,14,17,20,23,13,16,19,22,12,15,18,21,12,14,17,20,11,14,16,19,11,13,15,18,10,12,15,17,10,12,14,16,9,11,13,15,9,11,12,14,8,10,12,14,8,9,11,13,7,9,11,12,7,9,10,12,7,8,10,11,6,8,9,11,6,7,9,10,6,7,8,9,2,2,2,2,0,0,0,0,0,0,0,0,232,201,0,0,104,201,0,0,104,199,0,0,104,191,0,0,0,0,0,0,0,0,0,0,72,191,0,0,200,190,0,0,200,188,0,0,200,180,0,0,0,0, -0,0,0,0,0,0,168,180,0,0,40,180,0,0,40,178,0,0,40,170,0,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,90,90,88,85,82,78,73,67,61,54,46,38,31,22,13,4,252,243,234,225,218,210,202,195,189,183,178,174,171,168,166,166,90,87,80,70,57,43,25,9,247,231,213,199,186,176,169,166,166,169,176,186,199,213,231,247,9,25,43,57,70,80,87,90,90,82,67,46,22,252,225,202,183,171,166,168,178,195,218,243,13,38,61,78,88,90,85,73,54,31,4,234,210,189,174,166,89,75,50,18,238, -206,181,167,167,181,206,238,18,50,75,89,89,75,50,18,238,206,181,167,167,181,206,238,18,50,75,89,88,67,31,243,202,174,166,178,210,252,38,73,90,85,61,22,234,195,171,166,183,218,4,46,78,90,82,54,13,225,189,168,87,57,9,213,176,166,186,231,25,70,90,80,43,247,199,169,169,199,247,43,80,90,70,25,231,186,166,176,213,9,57,87,85,46,243,189,166,183,234,38,82,88,54,252,195,166,178,225,31,78,90,61,4,202,168,174,218,22,73,90,67,13,210,171,83,36,220,173,173,220,36,83,83,36,220,173,173,220,36,83,83,36,220,173,173, -220,36,83,83,36,220,173,173,220,36,83,82,22,202,166,195,13,78,85,31,210,166,189,4,73,88,38,218,168,183,252,67,90,46,225,171,178,243,61,90,54,234,174,80,9,186,169,231,57,90,43,213,166,199,25,87,70,247,176,176,247,70,87,25,199,166,213,43,90,57,231,169,186,9,80,78,252,174,183,13,85,67,234,168,195,31,90,54,218,166,210,46,90,38,202,166,225,61,88,22,189,171,243,73,82,4,178,75,238,167,206,50,89,18,181,181,18,89,50,206,167,238,75,75,238,167,206,50,89,18,181,181,18,89,50,206,167,238,75,73,225,166,234,78,67, -218,166,243,82,61,210,168,252,85,54,202,171,4,88,46,195,174,13,90,38,189,178,22,90,31,183,70,213,169,9,90,25,176,199,57,80,231,166,247,87,43,186,186,43,87,247,166,231,80,57,199,176,25,90,9,169,213,70,67,202,178,38,85,234,166,4,90,13,168,225,82,46,183,195,61,73,210,174,31,88,243,166,252,90,22,171,218,78,54,189,64,192,192,64,64,192,192,64,64,192,192,64,64,192,192,64,64,192,192,64,64,192,192,64,64,192,192,64,64,192,192,64,61,183,210,82,31,168,243,90,252,166,22,85,218,178,54,67,189,202,78,38,171,234, -90,4,166,13,88,225,174,46,73,195,57,176,231,90,247,169,43,70,186,213,87,9,166,25,80,199,199,80,25,166,9,87,213,186,70,43,169,247,90,231,176,57,54,171,252,88,210,195,82,13,166,38,67,178,234,90,225,183,73,31,166,22,78,189,218,90,243,174,61,46,168,4,85,202,50,167,18,75,181,238,89,206,206,89,238,181,75,18,167,50,50,167,18,75,181,238,89,206,206,89,238,181,75,18,167,50,46,166,38,54,166,31,61,168,22,67,171,13,73,174,4,78,178,252,82,183,243,85,189,234,88,195,225,90,202,218,90,210,43,166,57,25,169,70,9,176, -80,247,186,87,231,199,90,213,213,90,199,231,87,186,247,80,176,9,70,169,25,57,166,43,38,168,73,252,189,90,210,225,85,178,13,61,166,54,22,174,82,234,202,90,195,243,78,171,31,46,166,67,4,183,88,218,36,173,83,220,220,83,173,36,36,173,83,220,220,83,173,36,36,173,83,220,220,83,173,36,36,173,83,220,220,83,173,36,31,178,90,195,4,54,168,82,218,234,73,166,67,243,210,85,171,46,13,189,90,183,22,38,174,88,202,252,61,166,78,225,25,186,90,176,43,9,199,87,169,57,247,213,80,166,70,231,231,70,166,80,213,247,57,169, -87,199,9,43,176,90,186,25,22,195,85,166,73,218,252,46,178,90,174,54,243,225,67,168,88,189,31,13,202,82,166,78,210,4,38,183,90,171,61,234,18,206,75,167,89,181,50,238,238,50,181,89,167,75,206,18,18,206,75,167,89,181,50,238,238,50,181,89,167,75,206,18,13,218,61,178,88,166,85,183,54,225,4,22,210,67,174,90,166,82,189,46,234,252,31,202,73,171,90,168,78,195,38,243,9,231,43,199,70,176,87,166,90,169,80,186,57,213,25,247,247,25,213,57,186,80,169,90,166,87,176,70,199,43,231,9,4,243,22,225,38,210,54,195,67,183, -78,174,85,168,90,166,90,166,88,171,82,178,73,189,61,202,46,218,31,234,13,252,24,170,0,0,192,148,0,0,160,148,0,0,32,148,0,0,32,146,0,0,32,138,0,0,0,0,0,0,0,0,0,0,24,170,0,0,104,159,0,0,72,159,0,0,200,158,0,0,200,156,0,0,200,148,0,0,0,0,0,0,0,0,0,0,24,170,0,0,16,170,0,0,240,169,0,0,112,169,0,0,112,167,0,0,112,159,0,0,0,0,0,0,0,0,0,0,110,0,0,0,110,0,0,0,124,0,0,0,125,0,0,0,140,0,0,0,153,0,0,0,125,0,0,0,127,0,0,0,140,0,0,0,109,0,0,0,111,0,0,0,143,0,0,0,127,0,0,0,111,0,0,0,79,0,0,0,108,0,0,0,123,0,0,0, -63,0,0,0,125,0,0,0,110,0,0,0,94,0,0,0,110,0,0,0,95,0,0,0,79,0,0,0,125,0,0,0,111,0,0,0,110,0,0,0,78,0,0,0,110,0,0,0,111,0,0,0,111,0,0,0,95,0,0,0,94,0,0,0,108,0,0,0,123,0,0,0,108,0,0,0,125,0,0,0,110,0,0,0,124,0,0,0,110,0,0,0,95,0,0,0,94,0,0,0,125,0,0,0,111,0,0,0,111,0,0,0,79,0,0,0,125,0,0,0,126,0,0,0,111,0,0,0,111,0,0,0,79,0,0,0,108,0,0,0,123,0,0,0,93,0,0,0,141,0,0,0,111,0,0,0,140,0,0,0,140,0,0,0,140,0,0,0,140,0,0,0,138,0,0,0,153,0,0,0,136,0,0,0,167,0,0,0,152,0,0,0,152,0,0,0,107,0,0,0,167,0,0,0,91, -0,0,0,122,0,0,0,107,0,0,0,167,0,0,0,107,0,0,0,167,0,0,0,91,0,0,0,107,0,0,0,107,0,0,0,167,0,0,0,140,0,0,0,92,0,0,0,137,0,0,0,138,0,0,0,140,0,0,0,152,0,0,0,138,0,0,0,139,0,0,0,153,0,0,0,74,0,0,0,149,0,0,0,92,0,0,0,139,0,0,0,107,0,0,0,122,0,0,0,152,0,0,0,140,0,0,0,179,0,0,0,166,0,0,0,182,0,0,0,140,0,0,0,227,0,0,0,122,0,0,0,197,0,0,0,154,0,0,0,196,0,0,0,196,0,0,0,167,0,0,0,154,0,0,0,152,0,0,0,167,0,0,0,182,0,0,0,182,0,0,0,134,0,0,0,149,0,0,0,136,0,0,0,153,0,0,0,121,0,0,0,136,0,0,0,137,0,0,0,169,0,0,0, -194,0,0,0,166,0,0,0,167,0,0,0,154,0,0,0,167,0,0,0,137,0,0,0,182,0,0,0,154,0,0,0,196,0,0,0,167,0,0,0,167,0,0,0,154,0,0,0,152,0,0,0,167,0,0,0,182,0,0,0,182,0,0,0,134,0,0,0,149,0,0,0,136,0,0,0,153,0,0,0,121,0,0,0,136,0,0,0,122,0,0,0,169,0,0,0,208,0,0,0,166,0,0,0,167,0,0,0,154,0,0,0,152,0,0,0,167,0,0,0,182,0,0,0,200,0,0,0,185,0,0,0,160,0,0,0,0,0,0,0,184,0,0,0,154,0,0,0,183,0,0,0,0,0,0,0,154,0,0,0,154,0,0,0,154,0,0,0,0,0,0,0,111,0,0,0,111,0,0,0,125,0,0,0,110,0,0,0,110,0,0,0,94,0,0,0,124,0,0,0,108,0,0, -0,124,0,0,0,107,0,0,0,125,0,0,0,141,0,0,0,179,0,0,0,153,0,0,0,125,0,0,0,107,0,0,0,125,0,0,0,141,0,0,0,179,0,0,0,153,0,0,0,125,0,0,0,107,0,0,0,125,0,0,0,141,0,0,0,179,0,0,0,153,0,0,0,125,0,0,0,140,0,0,0,139,0,0,0,182,0,0,0,182,0,0,0,152,0,0,0,136,0,0,0,152,0,0,0,136,0,0,0,153,0,0,0,136,0,0,0,139,0,0,0,111,0,0,0,136,0,0,0,139,0,0,0,111,0,0,0,155,0,0,0,154,0,0,0,139,0,0,0,153,0,0,0,139,0,0,0,123,0,0,0,123,0,0,0,63,0,0,0,153,0,0,0,166,0,0,0,183,0,0,0,140,0,0,0,136,0,0,0,153,0,0,0,154,0,0,0,166,0,0,0, -183,0,0,0,140,0,0,0,136,0,0,0,153,0,0,0,154,0,0,0,166,0,0,0,183,0,0,0,140,0,0,0,136,0,0,0,153,0,0,0,154,0,0,0,170,0,0,0,153,0,0,0,123,0,0,0,123,0,0,0,107,0,0,0,121,0,0,0,107,0,0,0,121,0,0,0,167,0,0,0,151,0,0,0,183,0,0,0,140,0,0,0,151,0,0,0,183,0,0,0,140,0,0,0,170,0,0,0,154,0,0,0,139,0,0,0,153,0,0,0,139,0,0,0,123,0,0,0,123,0,0,0,63,0,0,0,124,0,0,0,166,0,0,0,183,0,0,0,140,0,0,0,136,0,0,0,153,0,0,0,154,0,0,0,166,0,0,0,183,0,0,0,140,0,0,0,136,0,0,0,153,0,0,0,154,0,0,0,166,0,0,0,183,0,0,0,140,0,0,0,136, -0,0,0,153,0,0,0,154,0,0,0,170,0,0,0,153,0,0,0,138,0,0,0,138,0,0,0,122,0,0,0,121,0,0,0,122,0,0,0,121,0,0,0,167,0,0,0,151,0,0,0,183,0,0,0,140,0,0,0,151,0,0,0,183,0,0,0,140,0,0,0,63,0,0,0,152,0,0,0,152,0,0,0,0,0,0,0,140,0,0,0,198,0,0,0,169,0,0,0,198,0,0,0,153,0,0,0,153,0,0,0,153,0,0,0,0,0,0,0,153,0,0,0,138,0,0,0,138,0,0,0,124,0,0,0,138,0,0,0,94,0,0,0,224,0,0,0,167,0,0,0,122,0,0,0,0,0,0,0,91,0,0,0,171,0,0,0,134,0,0,0,141,0,0,0,121,0,0,0,140,0,0,0,61,0,0,0,154,0,0,0,121,0,0,0,140,0,0,0,61,0,0,0,154,0, -0,0,16,16,16,16,16,16,16,16,16,16,17,16,17,16,17,18,17,18,18,17,18,21,19,20,21,20,19,21,24,22,22,24,24,22,22,24,25,25,27,30,27,25,25,29,31,35,35,31,29,36,41,44,41,36,47,54,54,47,65,70,65,88,88,115,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,18,18,18,18,18,18,20,20,20,20,20,20,20,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,28,28,28,28,28,28,33,33,33,33,33,41,41,41,41,54,54,54,71,71,91,149,0,0,0,134,0,0,0,139,0,0,0,141,0,0,0,157,0,0,0,107,0,0,0,139,0,0,0,126,0,0,0,107,0,0,0,139,0,0,0,126,0,0,0,0, -0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,197,0,0,0,185,0,0,0,201,0,0,0,197,0,0,0,185,0,0,0,201,0,0,0,110,0,0,0,154,0,0,0,94,0,0,0,138,0,0,0,182,0,0,0,154,0,0,0,149,0,0,0,107,0,0,0,167,0,0,0,154,0,0,0,149,0,0,0,92,0,0,0,167,0,0,0,154,0,0,0,184,0,0,0,154,0,0,0,139,0,0,0,154,0,0,0,154,0,0,0,154,0,0,0,139,0,0,0,154,0,0,0,154,0,0,0,0,0,0,0,122,0,0,0,137,0,0,0,111,0,0,0,141,0,0,0,153,0,0,0,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34, -36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,0,0,1,2,2,4,4,5,6,7,8,9,9,11,11,12,13,13,15,15,16,16,18,18,19,19,21,21,22,22,23,24,24,25,26,26,27,27,28,29,29,30,30,30,31,32,32,33,33,33,34,34,35,35,35,36,36,36,37,37,37,38,38,63,0,1,2,2,2,2,3,5,7,8,10,12,13,15,17,18,19,20,21,22,23,23,24,24,25,25,26,27,27,28,28,29, -29,30,31,0,0,0,0,0,0,240,255,255,154,249,255,255,114,252,255,255,138,253,255,255,30,254,255,255,122,254,255,255,197,254,255,255,0,255,255,255,197,254,255,255,122,254,255,255,30,254,255,255,138,253,255,255,114,252,255,255,154,249,255,255,0,240,255,255,0,0,0,0,255,255,255,255,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,24,0,0,255,255,255,255,2],"i8",ua,t.Lb+20480);I([2,0,0,0,1,0,0,0,6,5,4,4,3,3,3,3,2,2,2,2, -2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,12,0,11,0,10,0,11,0,16,0,11,0,40,0,33,0,24,0,11,0,20,0,11,0,32,0,11,0,80,0,33,0,18,0,11,0,15,0,11,0,64,0,33,0,160,0,99,0,4,0,3,0,3,0,2,0,2,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,3,0, -0,0,1,0,0,0,3,0,0,0,2,0,0,0,40,0,0,0,45,0,0,0,51,0,0,0,57,0,0,0,64,0,0,0,72,0,0,0],"i8",ua,t.Lb+30720);var ja=t.rb(I(12,"i8",Q),8);K(0==ja%8);var ya=0,xa=8;e._memcpy=Ac;var i={W:1,Fb:2,Kh:3,Kg:4,Fa:5,qd:6,hg:7,hh:8,S:9,ug:10,nb:11,Uh:11,Je:12,od:13,Fg:14,th:15,Ea:16,pd:17,Le:18,Eb:19,Hb:20,Va:21,C:22,bh:23,Ie:24,Ke:25,Rh:26,Gg:27,ph:28,Jb:29,Hh:30,Vg:31,Bh:32,Cg:33,rd:34,lh:42,Ig:43,vg:44,Mg:45,Ng:46,Og:47,Ug:48,Sh:49,fh:50,Lg:51,Ag:35,ih:37,mg:52,pg:53,Vh:54,dh:55,qg:56,rg:57,Bg:35,sg:59,rh:60,gh:61, -Oh:62,qh:63,mh:64,nh:65,Gh:66,jh:67,kg:68,Lh:69,wg:70,Ch:71,Xg:72,Dg:73,og:74,xh:76,ng:77,Fh:78,Pg:79,Qg:80,Tg:81,Sg:82,Rg:83,sh:38,uc:39,Yg:36,tc:40,Ib:95,Ah:96,zg:104,eh:105,lg:97,Eh:91,vh:88,oh:92,Ih:108,yg:111,ig:98,xg:103,ah:101,Zg:100,Ph:110,Hg:112,Fe:113,Ge:115,De:114,Ee:89,Wg:90,Dh:93,Jh:94,jg:99,$g:102,He:106,Gb:107,Qh:109,Th:87,Eg:122,Mh:116,wh:95,kh:123,Jg:84,yh:75,tg:125,uh:131,zh:130,Nh:86},Ra={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call", -5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large", -28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted", -47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed", -68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library", -84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable", -102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled", -130:"Previous owner died",131:"State not recoverable"},Na=0,A={ue:function(a){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1)},Xc:function(a,b){for(var c=0,f=a.length-1;0<=f;f--){var d=a[f];"."===d?a.splice(f,1):".."===d?(a.splice(f,1),c++):c&&(a.splice(f,1),c--)}if(b)for(;c--;c)a.unshift("..");return a},normalize:function(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=A.Xc(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+= -"/");return(b?"/":"")+a},dirname:function(a){var b=A.ue(a),a=b[0],b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b},ua:function(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},si:function(a){return A.ue(a)[3]},join:function(){var a=Array.prototype.slice.call(arguments,0);return A.normalize(a.join("/"))},U:function(a,b){return A.normalize(a+"/"+b)},eb:function(){for(var a="",b=G,c=arguments.length-1;-1<=c&&!b;c--){var f=0<=c?arguments[c]:d.Ec();"string"!== -typeof f&&l(new TypeError("Arguments to path.resolve must be strings"));f&&(a=f+"/"+a,b="/"===f.charAt(0))}a=A.Xc(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."},qe:function(a,b){function c(a){for(var b=0;b<a.length&&""===a[b];b++);for(var c=a.length-1;0<=c&&""===a[c];c--);return b>c?[]:a.slice(b,c-b+1)}for(var a=A.eb(a).substr(1),b=A.eb(b).substr(1),d=c(a.split("/")),e=c(b.split("/")),h=Math.min(d.length,e.length),g=h,j=0;j<h;j++)if(d[j]!==e[j]){g=j;break}h=[]; -for(j=g;j<d.length;j++)h.push("..");h=h.concat(e.slice(g));return h.join("/")}},ca={ze:[],Ba:H(),ej:H(),pe:function(a,b){ca.ze[a]={input:[],Qa:[],Ab:b};d.ad(a,ca.o)},o:{open:function(a){var b=ca.ze[a.k.ab];b||l(new d.e(i.Eb));a.aa=b;a.seekable=G},close:function(a){a.aa.Qa.length&&a.aa.Ab.lc(a.aa,10)},O:function(a,b,c,f){(!a.aa||!a.aa.Ab.Zd)&&l(new d.e(i.qd));for(var e=0,h=0;h<f;h++){var g;try{g=a.aa.Ab.Zd(a.aa)}catch(j){l(new d.e(i.Fa))}g===p&&0===e&&l(new d.e(i.nb));if(g===v||g===p)break;e++;b[c+ -h]=g}e&&(a.k.timestamp=Date.now());return e},write:function(a,b,c,f){(!a.aa||!a.aa.Ab.lc)&&l(new d.e(i.qd));for(var e=0;e<f;e++)try{a.aa.Ab.lc(a.aa,b[c+e])}catch(h){l(new d.e(i.Fa))}f&&(a.k.timestamp=Date.now());return e}},pf:{Zd:function(a){if(!a.input.length){var b=v;if(ea){if(b=process.stdin.read(),!b){if(process.stdin._readableState&&process.stdin._readableState.ended)return v;return}}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==v&&(b+="\n")): -"function"==typeof readline&&(b=readline(),b!==v&&(b+="\n"));if(!b)return v;a.input=X(b,s)}return a.input.shift()},lc:function(a,b){b===v||10===b?(e.print(a.Qa.join("")),a.Qa=[]):a.Qa.push(ca.Be.kc(b))}},of:{lc:function(a,b){b===v||10===b?(e.printErr(a.Qa.join("")),a.Qa=[]):a.Qa.push(ca.Be.kc(b))}}},z={ha:v,Ce:1,sc:2,ld:3,I:function(){return z.createNode(v,"/",16895,0)},createNode:function(a,b,c,f){(d.Ef(c)||d.Ff(c))&&l(new d.e(i.W));z.ha||(z.ha={dir:{k:{Z:z.n.Z,M:z.n.M,Za:z.n.Za,fa:z.n.fa,rename:z.n.rename, -Ua:z.n.Ua,fb:z.n.fb,bb:z.n.bb,ka:z.n.ka},ia:{ea:z.o.ea}},file:{k:{Z:z.n.Z,M:z.n.M},ia:{ea:z.o.ea,O:z.o.O,write:z.o.write,sb:z.o.sb,wb:z.o.wb}},link:{k:{Z:z.n.Z,M:z.n.M,Ra:z.n.Ra},ia:{}},Dd:{k:{Z:z.n.Z,M:z.n.M},ia:d.Ze}});c=d.createNode(a,b,c,f);d.K(c.mode)?(c.n=z.ha.dir.k,c.o=z.ha.dir.ia,c.A={}):d.isFile(c.mode)?(c.n=z.ha.file.k,c.o=z.ha.file.ia,c.A=[],c.Sb=z.sc):d.Ya(c.mode)?(c.n=z.ha.link.k,c.o=z.ha.link.ia):d.dc(c.mode)&&(c.n=z.ha.Dd.k,c.o=z.ha.Dd.ia);c.timestamp=Date.now();a&&(a.A[b]=c);return c}, -Hc:function(a){a.Sb!==z.sc&&(a.A=Array.prototype.slice.call(a.A),a.Sb=z.sc)},n:{Z:function(a){var b={};b.Md=d.dc(a.mode)?a.id:1;b.de=a.id;b.mode=a.mode;b.le=1;b.uid=0;b.$d=0;b.ab=a.ab;b.size=d.K(a.mode)?4096:d.isFile(a.mode)?a.A.length:d.Ya(a.mode)?a.link.length:0;b.Ad=new Date(a.timestamp);b.je=new Date(a.timestamp);b.Gd=new Date(a.timestamp);b.Ga=4096;b.Nb=Math.ceil(b.size/b.Ga);return b},M:function(a,b){b.mode!==p&&(a.mode=b.mode);b.timestamp!==p&&(a.timestamp=b.timestamp);if(b.size!==p){z.Hc(a); -var c=a.A;if(b.size<c.length)c.length=b.size;else for(;b.size>c.length;)c.push(0)}},Za:function(){l(d.Oc[i.Fb])},fa:function(a,b,c,d){return z.createNode(a,b,c,d)},rename:function(a,b,c){if(d.K(a.mode)){var f;try{f=d.sa(b,c)}catch(e){}if(f)for(var h in f.A)l(new d.e(i.uc))}delete a.parent.A[a.name];a.name=c;b.A[c]=a;a.parent=b},Ua:function(a,b){delete a.A[b]},fb:function(a,b){var c=d.sa(a,b),f;for(f in c.A)l(new d.e(i.uc));delete a.A[b]},bb:function(a){var b=[".",".."],c;for(c in a.A)a.A.hasOwnProperty(c)&& -b.push(c);return b},ka:function(a,b,c){a=z.createNode(a,b,41471,0);a.link=c;return a},Ra:function(a){d.Ya(a.mode)||l(new d.e(i.C));return a.link}},o:{O:function(a,b,c,d,e){a=a.k.A;if(e>=a.length)return 0;d=Math.min(a.length-e,d);K(0<=d);if(8<d&&a.subarray)b.set(a.subarray(e,e+d),c);else for(var h=0;h<d;h++)b[c+h]=a[e+h];return d},write:function(a,b,c,d,e,h){var g=a.k;g.timestamp=Date.now();a=g.A;if(d&&0===a.length&&0===e&&b.subarray)return h&&0===c?(g.A=b,g.Sb=b.buffer===x.buffer?z.Ce:z.ld):(g.A= -new Uint8Array(b.subarray(c,c+d)),g.Sb=z.ld),d;z.Hc(g);for(a=g.A;a.length<e;)a.push(0);for(h=0;h<d;h++)a[e+h]=b[c+h];return d},ea:function(a,b,c){1===c?b+=a.position:2===c&&d.isFile(a.k.mode)&&(b+=a.k.A.length);0>b&&l(new d.e(i.C));a.qc=[];return a.position=b},sb:function(a,b,c){z.Hc(a.k);a=a.k.A;for(b+=c;b>a.length;)a.push(0)},wb:function(a,b,c,f,e,h,g){d.isFile(a.k.mode)||l(new d.e(i.Eb));a=a.k.A;if(!(g&2)&&(a.buffer===b||a.buffer===b.buffer))e=G,f=a.byteOffset;else{if(0<e||e+f<a.length)a=a.subarray? -a.subarray(e,e+f):Array.prototype.slice.call(a,e,e+f);e=s;(f=W(f))||l(new d.e(i.Je));b.set(a,f)}return{Vi:f,ii:e}}}},J={fc:G,hd:function(){J.fc=!!process.platform.match(/^win/)},I:function(a){K(ea);return J.createNode(v,"/",J.Ja(a.me.root),0)},createNode:function(a,b,c){!d.K(c)&&(!d.isFile(c)&&!d.Ya(c))&&l(new d.e(i.C));a=d.createNode(a,b,c);a.n=J.n;a.o=J.o;return a},Ja:function(a){var b;try{b=O.Mf(a),J.fc&&(b.mode|=(b.mode&146)>>1)}catch(c){c.code||l(c),l(new d.e(i[c.code]))}return b.mode},V:function(a){for(var b= -[];a.parent!==a;)b.push(a.name),a=a.parent;b.push(a.I.me.root);b.reverse();return A.join.apply(v,b)},Sd:{"0":"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},Lc:function(a){return a in J.Sd?J.Sd[a]:a},n:{Z:function(a){var a=J.V(a),b;try{b=O.Mf(a)}catch(c){c.code||l(c),l(new d.e(i[c.code]))}J.fc&&!b.Ga&&(b.Ga=4096);J.fc&&!b.Nb&&(b.Nb= -(b.size+b.Ga-1)/b.Ga|0);return{Md:b.Md,de:b.de,mode:b.mode,le:b.le,uid:b.uid,$d:b.$d,ab:b.ab,size:b.size,Ad:b.Ad,je:b.je,Gd:b.Gd,Ga:b.Ga,Nb:b.Nb}},M:function(a,b){var c=J.V(a);try{b.mode!==p&&(O.oi(c,b.mode),a.mode=b.mode);if(b.timestamp!==p){var f=new Date(b.timestamp);O.pj(c,f,f)}b.size!==p&&O.kj(c,b.size)}catch(e){e.code||l(e),l(new d.e(i[e.code]))}},Za:function(a,b){var c=A.U(J.V(a),b),c=J.Ja(c);return J.createNode(a,b,c)},fa:function(a,b,c,f){a=J.createNode(a,b,c,f);b=J.V(a);try{d.K(a.mode)? -O.Pi(b,a.mode):O.rj(b,"",{mode:a.mode})}catch(e){e.code||l(e),l(new d.e(i[e.code]))}return a},rename:function(a,b,c){a=J.V(a);b=A.U(J.V(b),c);try{O.aj(a,b)}catch(f){f.code||l(f),l(new d.e(i[f.code]))}},Ua:function(a,b){var c=A.U(J.V(a),b);try{O.mj(c)}catch(f){f.code||l(f),l(new d.e(i[f.code]))}},fb:function(a,b){var c=A.U(J.V(a),b);try{O.bj(c)}catch(f){f.code||l(f),l(new d.e(i[f.code]))}},bb:function(a){a=J.V(a);try{return O.Yi(a)}catch(b){b.code||l(b),l(new d.e(i[b.code]))}},ka:function(a,b,c){a= -A.U(J.V(a),b);try{O.gj(c,a)}catch(f){f.code||l(f),l(new d.e(i[f.code]))}},Ra:function(a){a=J.V(a);try{return O.Zi(a)}catch(b){b.code||l(b),l(new d.e(i[b.code]))}}},o:{open:function(a){var b=J.V(a.k);try{d.isFile(a.k.mode)&&(a.zb=O.Si(b,J.Lc(a.H)))}catch(c){c.code||l(c),l(new d.e(i[c.code]))}},close:function(a){try{d.isFile(a.k.mode)&&a.zb&&O.pi(a.zb)}catch(b){b.code||l(b),l(new d.e(i[b.code]))}},O:function(a,b,c,f,e){var h=new Buffer(f),g;try{g=O.Xi(a.zb,h,0,f,e)}catch(j){l(new d.e(i[j.code]))}if(0< -g)for(a=0;a<g;a++)b[c+a]=h[a];return g},write:function(a,b,c,f,e){var b=new Buffer(b.subarray(c,c+f)),h;try{h=O.sj(a.zb,b,0,f,e)}catch(g){l(new d.e(i[g.code]))}return h},ea:function(a,b,c){if(1===c)b+=a.position;else if(2===c&&d.isFile(a.k.mode))try{var f=O.xi(a.zb),b=b+f.size}catch(e){l(new d.e(i[e.code]))}0>b&&l(new d.e(i.C));return a.position=b}}};Ha=I(1,"i32*",Q);Aa=I(1,"i32*",Q);Ia=I(1,"i32*",Q);var d={root:v,yb:[],Nd:[v],Sa:[],Sf:1,ga:v,Id:"/",Xa:G,ce:s,e:v,Oc:{},bc:function(a){a instanceof -d.e||l(a+" : "+gb());return P(a.Yb)},F:function(a,b){var a=A.eb(d.Ec(),a),b=b||{},c={Mc:s,$c:0},f;for(f in c)b[f]===p&&(b[f]=c[f]);8<b.$c&&l(new d.e(i.tc));var c=A.Xc(a.split("/").filter(function(a){return!!a}),G),e=d.root;f="/";for(var h=0;h<c.length;h++){var g=h===c.length-1;if(g&&b.parent)break;e=d.sa(e,c[h]);f=A.U(f,c[h]);if(d.Ka(e)&&(!g||g&&b.Mc))e=e.xb.root;if(!g||b.da)for(g=0;d.Ya(e.mode);)e=d.Ra(f),f=A.eb(A.dirname(f),e),e=d.F(f,{$c:b.$c}).k,40<g++&&l(new d.e(i.tc))}return{path:f,k:e}},za:function(a){for(var b;;){if(d.ec(a))return a= -a.I.Qf,!b?a:"/"!==a[a.length-1]?a+"/"+b:a+b;b=b?a.name+"/"+b:a.name;a=a.parent}},Rc:function(a,b){for(var c=0,f=0;f<b.length;f++)c=(c<<5)-c+b.charCodeAt(f)|0;return(a+c>>>0)%d.ga.length},ae:function(a){var b=d.Rc(a.parent.id,a.name);a.Oa=d.ga[b];d.ga[b]=a},be:function(a){var b=d.Rc(a.parent.id,a.name);if(d.ga[b]===a)d.ga[b]=a.Oa;else for(b=d.ga[b];b;){if(b.Oa===a){b.Oa=a.Oa;break}b=b.Oa}},sa:function(a,b){var c=d.Of(a);c&&l(new d.e(c));for(c=d.ga[d.Rc(a.id,b)];c;c=c.Oa){var f=c.name;if(c.parent.id=== -a.id&&f===b)return c}return d.Za(a,b)},createNode:function(a,b,c,f){d.Kb||(d.Kb=function(a,b,c,f){a||(a=this);this.parent=a;this.I=a.I;this.xb=v;this.id=d.Sf++;this.name=b;this.mode=c;this.n={};this.o={};this.ab=f},d.Kb.prototype={},Object.defineProperties(d.Kb.prototype,{O:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Gf:{get:function(){return d.K(this.mode)}}, -Tc:{get:function(){return d.dc(this.mode)}}}));a=new d.Kb(a,b,c,f);d.ae(a);return a},Fc:function(a){d.be(a)},ec:function(a){return a===a.parent},Ka:function(a){return!!a.xb},isFile:function(a){return 32768===(a&61440)},K:function(a){return 16384===(a&61440)},Ya:function(a){return 40960===(a&61440)},dc:function(a){return 8192===(a&61440)},Ef:function(a){return 24576===(a&61440)},Ff:function(a){return 4096===(a&61440)},Jf:function(a){return 49152===(a&49152)},vf:{r:0,rs:1052672,"r+":2,w:577,wx:705, -xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},ie:function(a){var b=d.vf[a];"undefined"===typeof b&&l(Error("Unknown file open mode: "+a));return b},Lc:function(a){var b=["r","w","rw"][a&2097155];a&512&&(b+="w");return b},Pa:function(a,b){return d.ce?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?i.od:0},Of:function(a){return d.Pa(a,"x")},Wc:function(a,b){try{return d.sa(a,b),i.pd}catch(c){}return d.Pa(a, -"wx")},gc:function(a,b,c){var f;try{f=d.sa(a,b)}catch(e){return e.Yb}if(a=d.Pa(a,"wx"))return a;if(c){if(!d.K(f.mode))return i.Hb;if(d.ec(f)||d.za(f)===d.Ec())return i.Ea}else if(d.K(f.mode))return i.Va;return 0},Pf:function(a,b){return!a?i.Fb:d.Ya(a.mode)?i.tc:d.K(a.mode)&&(0!==(b&2097155)||b&512)?i.Va:d.Pa(a,d.Lc(b))},Pe:4096,Tf:function(a,b){for(var b=b||d.Pe,c=a||0;c<=b;c++)if(!d.Sa[c])return c;l(new d.e(i.Ie))},Aa:function(a){return d.Sa[a]},Fd:function(a,b,c){d.ob||(d.ob=H(),d.ob.prototype= -{},Object.defineProperties(d.ob.prototype,{object:{get:function(){return this.k},set:la("k")},Gi:{get:function(){return 1!==(this.H&2097155)}},Hi:{get:function(){return 0!==(this.H&2097155)}},Fi:{get:function(){return this.H&1024}}}));if(a.__proto__)a.__proto__=d.ob.prototype;else{var f=new d.ob,e;for(e in a)f[e]=a[e];a=f}b=d.Tf(b,c);a.ba=b;return d.Sa[b]=a},$e:function(a){d.Sa[a]=v},ub:function(a){return d.Sa[a-1]},Qc:function(a){return a?a.ba+1:0},Ze:{open:function(a){a.o=d.yf(a.k.ab).o;a.o.open&& -a.o.open(a)},ea:function(){l(new d.e(i.Jb))}},Vc:function(a){return a>>8},Oi:function(a){return a&255},Ma:function(a,b){return a<<8|b},ad:function(a,b){d.Nd[a]={o:b}},yf:function(a){return d.Nd[a]},Wd:function(a){for(var b=[],a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.yb)}return b},xe:function(a,b){function c(a){if(a){if(!c.sf)return c.sf=s,b(a)}else++e>=f.length&&b(v)}"function"===typeof a&&(b=a,a=G);var f=d.Wd(d.root.I),e=0;f.forEach(function(b){if(!b.type.xe)return c(v);b.type.xe(b, -a,c)})},I:function(a,b,c){var f="/"===c,e=!c,h;f&&d.root&&l(new d.e(i.Ea));!f&&!e&&(h=d.F(c,{Mc:G}),c=h.path,h=h.k,d.Ka(h)&&l(new d.e(i.Ea)),d.K(h.mode)||l(new d.e(i.Hb)));b={type:a,me:b,Qf:c,yb:[]};a=a.I(b);a.I=b;b.root=a;f?d.root=a:h&&(h.xb=b,h.I&&h.I.yb.push(b));return a},nj:function(a){a=d.F(a,{Mc:G});d.Ka(a.k)||l(new d.e(i.C));var a=a.k,b=a.xb,c=d.Wd(b);Object.keys(d.ga).forEach(function(a){for(a=d.ga[a];a;){var b=a.Oa;-1!==c.indexOf(a.I)&&d.Fc(a);a=b}});a.xb=v;b=a.I.yb.indexOf(b);K(-1!==b); -a.I.yb.splice(b,1)},Za:function(a,b){return a.n.Za(a,b)},fa:function(a,b,c){var f=d.F(a,{parent:s}).k,a=A.ua(a),e=d.Wc(f,a);e&&l(new d.e(e));f.n.fa||l(new d.e(i.W));return f.n.fa(f,a,b,c)},create:function(a,b){b=(b!==p?b:438)&4095;b|=32768;return d.fa(a,b,0)},$a:function(a,b){b=(b!==p?b:511)&1023;b|=16384;return d.fa(a,b,0)},hc:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);return d.fa(a,b|8192,c)},ka:function(a,b){var c=d.F(b,{parent:s}).k,f=A.ua(b),e=d.Wc(c,f);e&&l(new d.e(e));c.n.ka||l(new d.e(i.W)); -return c.n.ka(c,f,a)},rename:function(a,b){var c=A.dirname(a),f=A.dirname(b),e=A.ua(a),h=A.ua(b),g,j,n;try{g=d.F(a,{parent:s}),j=g.k,g=d.F(b,{parent:s}),n=g.k}catch(r){l(new d.e(i.Ea))}j.I!==n.I&&l(new d.e(i.Le));g=d.sa(j,e);f=A.qe(a,f);"."!==f.charAt(0)&&l(new d.e(i.C));f=A.qe(b,c);"."!==f.charAt(0)&&l(new d.e(i.uc));var m;try{m=d.sa(n,h)}catch(q){}if(g!==m){c=d.K(g.mode);(e=d.gc(j,e,c))&&l(new d.e(e));(e=m?d.gc(n,h,c):d.Wc(n,h))&&l(new d.e(e));j.n.rename||l(new d.e(i.W));(d.Ka(g)||m&&d.Ka(m))&& -l(new d.e(i.Ea));n!==j&&(e=d.Pa(j,"w"))&&l(new d.e(e));d.be(g);try{j.n.rename(g,n,h)}catch(w){l(w)}finally{d.ae(g)}}},fb:function(a){var b=d.F(a,{parent:s}).k,a=A.ua(a),c=d.sa(b,a),f=d.gc(b,a,s);f&&l(new d.e(f));b.n.fb||l(new d.e(i.W));d.Ka(c)&&l(new d.e(i.Ea));b.n.fb(b,a);d.Fc(c)},bb:function(a){a=d.F(a,{da:s}).k;a.n.bb||l(new d.e(i.Hb));return a.n.bb(a)},Ua:function(a){var b=d.F(a,{parent:s}).k,a=A.ua(a),c=d.sa(b,a),f=d.gc(b,a,G);f&&(f===i.Va&&(f=i.W),l(new d.e(f)));b.n.Ua||l(new d.e(i.W));d.Ka(c)&& -l(new d.e(i.Ea));b.n.Ua(b,a);d.Fc(c)},Ra:function(a){a=d.F(a).k;a.n.Ra||l(new d.e(i.C));return a.n.Ra(a)},ve:function(a,b){var c=d.F(a,{da:!b}).k;c.n.Z||l(new d.e(i.W));return c.n.Z(c)},Ni:function(a){return d.ve(a,s)},Ob:function(a,b,c){a="string"===typeof a?d.F(a,{da:!c}).k:a;a.n.M||l(new d.e(i.W));a.n.M(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},Ji:function(a,b){d.Ob(a,b,s)},ti:function(a,b){var c=d.Aa(a);c||l(new d.e(i.S));d.Ob(c.k,b)},Cd:function(a,b,c,f){a="string"===typeof a?d.F(a, -{da:!f}).k:a;a.n.M||l(new d.e(i.W));a.n.M(a,{timestamp:Date.now()})},Ki:function(a,b,c){d.Cd(a,b,c,s)},ui:function(a,b,c){(a=d.Aa(a))||l(new d.e(i.S));d.Cd(a.k,b,c)},truncate:function(a,b){0>b&&l(new d.e(i.C));var c;c="string"===typeof a?d.F(a,{da:s}).k:a;c.n.M||l(new d.e(i.W));d.K(c.mode)&&l(new d.e(i.Va));d.isFile(c.mode)||l(new d.e(i.C));var f=d.Pa(c,"w");f&&l(new d.e(f));c.n.M(c,{size:b,timestamp:Date.now()})},yi:function(a,b){var c=d.Aa(a);c||l(new d.e(i.S));0===(c.H&2097155)&&l(new d.e(i.C)); -d.truncate(c.k,b)},oj:function(a,b,c){a=d.F(a,{da:s}).k;a.n.M(a,{timestamp:Math.max(b,c)})},open:function(a,b,c,f,ma){var b="string"===typeof b?d.ie(b):b,c=b&64?("undefined"===typeof c?438:c)&4095|32768:0,h;if("object"===typeof a)h=a;else{a=A.normalize(a);try{h=d.F(a,{da:!(b&131072)}).k}catch(g){}}b&64&&(h?b&128&&l(new d.e(i.pd)):h=d.fa(a,c,0));h||l(new d.e(i.Fb));d.dc(h.mode)&&(b&=-513);(c=d.Pf(h,b))&&l(new d.e(c));b&512&&d.truncate(h,0);b&=-641;f=d.Fd({k:h,path:d.za(h),H:b,seekable:s,position:0, -o:h.o,qc:[],error:G},f,ma);f.o.open&&f.o.open(f);e.logReadFiles&&!(b&1)&&(d.Zc||(d.Zc={}),a in d.Zc||(d.Zc[a]=1,e.printErr("read file: "+a)));return f},close:function(a){try{a.o.close&&a.o.close(a)}catch(b){l(b)}finally{d.$e(a.ba)}},ea:function(a,b,c){(!a.seekable||!a.o.ea)&&l(new d.e(i.Jb));return a.o.ea(a,b,c)},O:function(a,b,c,f,e){(0>f||0>e)&&l(new d.e(i.C));1===(a.H&2097155)&&l(new d.e(i.S));d.K(a.k.mode)&&l(new d.e(i.Va));a.o.O||l(new d.e(i.C));var h=s;"undefined"===typeof e?(e=a.position,h= -G):a.seekable||l(new d.e(i.Jb));b=a.o.O(a,b,c,f,e);h||(a.position+=b);return b},write:function(a,b,c,f,e,h){(0>f||0>e)&&l(new d.e(i.C));0===(a.H&2097155)&&l(new d.e(i.S));d.K(a.k.mode)&&l(new d.e(i.Va));a.o.write||l(new d.e(i.C));var g=s;"undefined"===typeof e?(e=a.position,g=G):a.seekable||l(new d.e(i.Jb));a.H&1024&&d.ea(a,0,2);b=a.o.write(a,b,c,f,e,h);g||(a.position+=b);return b},sb:function(a,b,c){(0>b||0>=c)&&l(new d.e(i.C));0===(a.H&2097155)&&l(new d.e(i.S));!d.isFile(a.k.mode)&&!d.K(node.mode)&& -l(new d.e(i.Eb));a.o.sb||l(new d.e(i.Ib));a.o.sb(a,b,c)},wb:function(a,b,c,f,e,h,g){1===(a.H&2097155)&&l(new d.e(i.od));a.o.wb||l(new d.e(i.Eb));return a.o.wb(a,b,c,f,e,h,g)},vb:function(a,b,c){a.o.vb||l(new d.e(i.Ke));return a.o.vb(a,b,c)},Wi:function(a,b){b=b||{};b.H=b.H||"r";b.encoding=b.encoding||"binary";"utf8"!==b.encoding&&"binary"!==b.encoding&&l(Error('Invalid encoding type "'+b.encoding+'"'));var c,f=d.open(a,b.H),e=d.ve(a).size,h=new Uint8Array(e);d.O(f,h,0,e,0);if("utf8"===b.encoding){c= -"";for(var g=new t.pb,j=0;j<e;j++)c+=g.kc(h[j])}else"binary"===b.encoding&&(c=h);d.close(f);return c},qj:function(a,b,c){c=c||{};c.H=c.H||"w";c.encoding=c.encoding||"utf8";"utf8"!==c.encoding&&"binary"!==c.encoding&&l(Error('Invalid encoding type "'+c.encoding+'"'));a=d.open(a,c.H,c.mode);"utf8"===c.encoding?(b=new Uint8Array((new t.pb).oe(b)),d.write(a,b,0,b.length,0,c.Ye)):"binary"===c.encoding&&d.write(a,b,0,b.length,0,c.Ye);d.close(a)},Ec:function(){return d.Id},ni:function(a){a=d.F(a,{da:s}); -d.K(a.k.mode)||l(new d.e(i.Hb));var b=d.Pa(a.k,"x");b&&l(new d.e(b));d.Id=a.path},cf:function(){d.$a("/tmp")},bf:function(){d.$a("/dev");d.ad(d.Ma(1,3),{O:U(0),write:U(0)});d.hc("/dev/null",d.Ma(1,3));ca.pe(d.Ma(5,0),ca.pf);ca.pe(d.Ma(6,0),ca.of);d.hc("/dev/tty",d.Ma(5,0));d.hc("/dev/tty1",d.Ma(6,0));d.$a("/dev/shm");d.$a("/dev/shm/tmp")},lf:function(){e.stdin?d.Ha("/dev","stdin",e.stdin):d.ka("/dev/tty","/dev/stdin");e.stdout?d.Ha("/dev","stdout",v,e.stdout):d.ka("/dev/tty","/dev/stdout");e.stderr? -d.Ha("/dev","stderr",v,e.stderr):d.ka("/dev/tty1","/dev/stderr");var a=d.open("/dev/stdin","r");u[Ha>>2]=d.Qc(a);K(0===a.ba,"invalid handle for stdin ("+a.ba+")");a=d.open("/dev/stdout","w");u[Aa>>2]=d.Qc(a);K(1===a.ba,"invalid handle for stdout ("+a.ba+")");a=d.open("/dev/stderr","w");u[Ia>>2]=d.Qc(a);K(2===a.ba,"invalid handle for stderr ("+a.ba+")")},Pd:function(){d.e||(d.e=function(a){this.Yb=a;for(var b in i)if(i[b]===a){this.code=b;break}this.message=Ra[a]},d.e.prototype=Error(),[i.Fb].forEach(function(a){d.Oc[a]= -new d.e(a);d.Oc[a].stack="<generic error, no stack>"}))},hd:function(){d.Pd();d.ga=Array(4096);d.I(z,{},"/");d.cf();d.bf()},Ba:function(a,b,c){K(!d.Ba.Xa,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");d.Ba.Xa=s;d.Pd();e.stdin=a||e.stdin;e.stdout=b||e.stdout;e.stderr=c||e.stderr;d.lf()},Zf:function(){d.Ba.Xa=G;for(var a=0;a<d.Sa.length;a++){var b=d.Sa[a];b&&d.close(b)}}, -Ja:function(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c},Ii:function(a,b){var c=A.join.apply(v,a);b&&"/"==c[0]&&(c=c.substr(1));return c},bi:function(a,b){return A.eb(b,a)},fj:function(a){return A.normalize(a)},vi:function(a,b){var c=d.Ac(a,b);if(c.Jc)return c.object;P(c.error);return v},Ac:function(a,b){try{var c=d.F(a,{da:!b}),a=c.path}catch(f){}var e={ec:G,Jc:G,error:0,name:v,path:v,object:v,Wf:G,Yf:v,Xf:v};try{c=d.F(a,{parent:s}),e.Wf=s,e.Yf=c.path,e.Xf=c.k,e.name=A.ua(a),c=d.F(a,{da:!b}),e.Jc= -s,e.path=c.path,e.object=c.k,e.name=c.k.name,e.ec="/"===c.path}catch(h){e.error=h.Yb}return e},ef:function(a,b,c,f){a=A.U("string"===typeof a?a:d.za(a),b);c=d.Ja(c,f);return d.$a(a,c)},hf:function(a,b){for(var a="string"===typeof a?a:d.za(a),c=b.split("/").reverse();c.length;){var f=c.pop();if(f){var e=A.U(a,f);try{d.$a(e)}catch(h){}a=e}}return e},df:function(a,b,c,f,e){a=A.U("string"===typeof a?a:d.za(a),b);f=d.Ja(f,e);return d.create(a,f)},Dc:function(a,b,c,f,e,h){a=b?A.U("string"===typeof a?a: -d.za(a),b):a;f=d.Ja(f,e);e=d.create(a,f);if(c){if("string"===typeof c){for(var a=Array(c.length),b=0,g=c.length;b<g;++b)a[b]=c.charCodeAt(b);c=a}d.Ob(e,f|146);a=d.open(e,"w");d.write(a,c,0,c.length,0,h);d.close(a);d.Ob(e,f)}return e},Ha:function(a,b,c,f){a=A.U("string"===typeof a?a:d.za(a),b);b=d.Ja(!!c,!!f);d.Ha.Vc||(d.Ha.Vc=64);var e=d.Ma(d.Ha.Vc++,0);d.ad(e,{open:function(a){a.seekable=G},close:function(){f&&(f.buffer&&f.buffer.length)&&f(10)},O:function(a,b,f,e){for(var r=0,m=0;m<e;m++){var q; -try{q=c()}catch(w){l(new d.e(i.Fa))}q===p&&0===r&&l(new d.e(i.nb));if(q===v||q===p)break;r++;b[f+m]=q}r&&(a.k.timestamp=Date.now());return r},write:function(a,b,c,e){for(var r=0;r<e;r++)try{f(b[c+r])}catch(m){l(new d.e(i.Fa))}e&&(a.k.timestamp=Date.now());return r}});return d.hc(a,b,e)},gf:function(a,b,c){a=A.U("string"===typeof a?a:d.za(a),b);return d.ka(c,a)},Vd:function(a){if(a.Tc||a.Gf||a.link||a.A)return s;var b=s;"undefined"!==typeof XMLHttpRequest&&l(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")); -if(e.read)try{a.A=X(e.read(a.url),s)}catch(c){b=G}else l(Error("Cannot load without read() or XMLHttpRequest."));b||P(i.Fa);return b},ff:function(a,b,c,f,e){if("undefined"!==typeof XMLHttpRequest){Bb||l("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var h=function(){this.Uc=G;this.Qb=[]};h.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.Pb;return this.Af(Math.floor(a/this.Pb))[b]}};h.prototype.cg=la("Af");h.prototype.Bd= -function(){var a=new XMLHttpRequest;a.open("HEAD",c,G);a.send(v);200<=a.status&&300>a.status||304===a.status||l(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,f=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d))f=b;var e=this;e.cg(function(a){var d=a*f,m=(a+1)*f-1,m=Math.min(m,b-1);if("undefined"===typeof e.Qb[a]){var g=e.Qb;d>m&&l(Error("invalid range ("+d+", "+m+") or no bytes requested!"));m>b-1&&l(Error("only "+b+" bytes available! programmer error!")); -var h=new XMLHttpRequest;h.open("GET",c,G);b!==f&&h.setRequestHeader("Range","bytes="+d+"-"+m);"undefined"!=typeof Uint8Array&&(h.responseType="arraybuffer");h.overrideMimeType&&h.overrideMimeType("text/plain; charset=x-user-defined");h.send(v);200<=h.status&&300>h.status||304===h.status||l(Error("Couldn't load "+c+". Status: "+h.status));d=h.response!==p?new Uint8Array(h.response||[]):X(h.responseText||"",s);g[a]=d}"undefined"===typeof e.Qb[a]&&l(Error("doXHR failed!"));return e.Qb[a]});this.Ue= -b;this.Re=f;this.Uc=s};h=new h;Object.defineProperty(h,"length",{get:function(){this.Uc||this.Bd();return this.Ue}});Object.defineProperty(h,"chunkSize",{get:function(){this.Uc||this.Bd();return this.Re}});h={Tc:G,A:h}}else h={Tc:G,url:c};var g=d.df(a,b,h,f,e);h.A?g.A=h.A:h.url&&(g.A=v,g.url=h.url);var j={};Object.keys(g.o).forEach(function(a){var b=g.o[a];j[a]=function(){d.Vd(g)||l(new d.e(i.Fa));return b.apply(v,arguments)}});j.O=function(a,b,c,f,e){d.Vd(g)||l(new d.e(i.Fa));a=a.k.A;if(e>=a.length)return 0; -f=Math.min(a.length-e,f);K(0<=f);if(a.slice)for(var h=0;h<f;h++)b[c+h]=a[e+h];else for(h=0;h<f;h++)b[c+h]=a.get(e+h);return f};g.o=j;return g},jf:function(a,b,c,f,i,h,g,j,k){function r(c){function r(c){j||d.Dc(a,b,c,f,i,k);h&&h();jb()}var B=G;e.preloadPlugins.forEach(function(a){!B&&a.canHandle(m)&&(a.handle(c,m,r,function(){g&&g();jb()}),B=s)});B||r(c)}Browser.Ba();var m=b?A.eb(A.U(a,b)):a;Rb();"string"==typeof c?Browser.li(c,function(a){r(a)},g):r(c)},indexedDB:function(){return window.indexedDB|| -window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},md:function(){return"EM_FS_"+window.location.pathname},nd:20,lb:"FILE_DATA",dj:function(a,b,c){var b=b||H(),c=c||H(),f=d.indexedDB();try{var e=f.open(d.md(),d.nd)}catch(h){return c(h)}e.Vf=function(){console.log("creating db");e.result.createObjectStore(d.lb)};e.onsuccess=function(){var f=e.result.transaction([d.lb],"readwrite"),h=f.objectStore(d.lb),i=0,r=0,m=a.length;a.forEach(function(a){a=h.put(d.Ac(a).object.A,a);a.onsuccess=function(){i++; -i+r==m&&(0==r?b():c())};a.onerror=function(){r++;i+r==m&&(0==r?b():c())}});f.onerror=c};e.onerror=c},Mi:function(a,b,c){var b=b||H(),c=c||H(),f=d.indexedDB();try{var e=f.open(d.md(),d.nd)}catch(h){return c(h)}e.Vf=c;e.onsuccess=function(){var f=e.result;try{var h=f.transaction([d.lb],"readonly")}catch(i){c(i);return}var r=h.objectStore(d.lb),m=0,q=0,w=a.length;a.forEach(function(a){var f=r.get(a);f.onsuccess=function(){d.Ac(a).Jc&&d.Ua(a);d.Dc(A.dirname(a),A.ua(a),f.result,s,s,s);m++;m+q==w&&(0== -q?b():c())};f.onerror=function(){q++;m+q==w&&(0==q?b():c())}});h.onerror=c};e.onerror=c}},L={I:function(){return d.createNode(v,"/",16895,0)},kf:function(a,b,c){c&&K(1==b==(6==c));a={uf:a,type:b,protocol:c,L:v,Bb:{},Yc:[],cb:[],hb:L.R};b=L.ic();c=d.createNode(L.root,b,49152,0);c.gb=a;b=d.Fd({path:b,k:c,H:d.ie("r+"),seekable:G,o:L.o});a.ia=b;return a},Yd:function(a){a=d.Aa(a);return!a||!d.Jf(a.k.mode)?v:a.k.gb},o:{ne:function(a){a=a.k.gb;return a.hb.ne(a)},vb:function(a,b,c){a=a.k.gb;return a.hb.vb(a, -b,c)},O:function(a,b,c,d){a=a.k.gb;d=a.hb.ag(a,d);if(!d)return 0;b.set(d.buffer,c);return d.buffer.length},write:function(a,b,c,d){a=a.k.gb;return a.hb.bg(a,b,c,d)},close:function(a){a=a.k.gb;a.hb.close(a)}},ic:function(){L.ic.Hd||(L.ic.Hd=0);return"socket["+L.ic.Hd++ +"]"},R:{Ub:function(a,b,c){var f;"object"===typeof b&&(f=b,c=b=v);if(f)f._socket?(b=f._socket.remoteAddress,c=f._socket.remotePort):((c=/ws[s]?:\/\/([^:]+):(\d+)/.exec(f.url))||l(Error("WebSocket URL must be in the format ws(s)://address:port")), -b=c[1],c=parseInt(c[2],10));else try{var e=ea?{headers:{"websocket-protocol":["binary"]}}:["binary"];f=new (ea?require("ws"):window.WebSocket)("ws://"+b+":"+c,e);f.binaryType="arraybuffer"}catch(h){l(new d.e(i.Fe))}b={ma:b,port:c,q:f,Vb:[]};L.R.zd(a,b);L.R.Df(a,b);2===a.type&&"undefined"!==typeof a.ib&&b.Vb.push(new Uint8Array([255,255,255,255,112,111,114,116,(a.ib&65280)>>8,a.ib&255]));return b},ac:function(a,b,c){return a.Bb[b+":"+c]},zd:function(a,b){a.Bb[b.ma+":"+b.port]=b},re:function(a,b){delete a.Bb[b.ma+ -":"+b.port]},Df:function(a,b){function c(){try{for(var a=b.Vb.shift();a;)b.q.send(a),a=b.Vb.shift()}catch(c){b.q.close()}}function d(c){K("string"!==typeof c&&c.byteLength!==p);var c=new Uint8Array(c),f=e;e=G;f&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&112===c[4]&&111===c[5]&&114===c[6]&&116===c[7]?(c=c[8]<<8|c[9],L.R.re(a,b),b.port=c,L.R.zd(a,b)):a.cb.push({ma:b.ma,port:b.port,data:c})}var e=s;ea?(b.q.on("open",c),b.q.on("message",function(a,b){b.binary&&d((new Uint8Array(a)).buffer)}), -b.q.on("error",H())):(b.q.onopen=c,b.q.onmessage=function(a){d(a.data)})},ne:function(a){if(1===a.type&&a.L)return a.Yc.length?65:0;var b=0,c=1===a.type?L.R.ac(a,a.na,a.oa):v;if(a.cb.length||!c||c&&c.q.readyState===c.q.Db||c&&c.q.readyState===c.q.CLOSED)b|=65;if(!c||c&&c.q.readyState===c.q.OPEN)b|=4;if(c&&c.q.readyState===c.q.Db||c&&c.q.readyState===c.q.CLOSED)b|=16;return b},vb:function(a,b,c){switch(b){case 21531:return b=0,a.cb.length&&(b=a.cb[0].data.length),u[c>>2]=b,0;default:return i.C}},close:function(a){if(a.L){try{a.L.close()}catch(b){}a.L= -v}for(var c=Object.keys(a.Bb),d=0;d<c.length;d++){var e=a.Bb[c[d]];try{e.q.close()}catch(h){}L.R.re(a,e)}return 0},bind:function(a,b,c){("undefined"!==typeof a.bd||"undefined"!==typeof a.ib)&&l(new d.e(i.C));a.bd=b;a.ib=c||Tb();if(2===a.type){a.L&&(a.L.close(),a.L=v);try{a.hb.Lf(a,0)}catch(f){f instanceof d.e||l(f),f.Yb!==i.Ib&&l(f)}}},qi:function(a,b,c){a.L&&l(new d.e(ERRNO_CODS.Ib));if("undefined"!==typeof a.na&&"undefined"!==typeof a.oa){var f=L.R.ac(a,a.na,a.oa);f&&(f.q.readyState===f.q.CONNECTING&& -l(new d.e(i.De)),l(new d.e(i.He)))}b=L.R.Ub(a,b,c);a.na=b.ma;a.oa=b.port;l(new d.e(i.Ge))},Lf:function(a){ea||l(new d.e(i.Ib));a.L&&l(new d.e(i.C));var b=require("ws").Server;a.L=new b({host:a.bd,port:a.ib});a.L.on("connection",function(b){if(1===a.type){var d=L.kf(a.uf,a.type,a.protocol),b=L.R.Ub(d,b);d.na=b.ma;d.oa=b.port;a.Yc.push(d)}else L.R.Ub(a,b)});a.L.on("closed",function(){a.L=v});a.L.on("error",H())},accept:function(a){a.L||l(new d.e(i.C));var b=a.Yc.shift();b.ia.H=a.ia.H;return b},Di:function(a, -b){var c,f;b?((a.na===p||a.oa===p)&&l(new d.e(i.Gb)),c=a.na,f=a.oa):(c=a.bd||0,f=a.ib||0);return{ma:c,port:f}},bg:function(a,b,c,f,e,h){if(2===a.type){if(e===p||h===p)e=a.na,h=a.oa;(e===p||h===p)&&l(new d.e(i.Ee))}else e=a.na,h=a.oa;var g=L.R.ac(a,e,h);1===a.type&&((!g||g.q.readyState===g.q.Db||g.q.readyState===g.q.CLOSED)&&l(new d.e(i.Gb)),g.q.readyState===g.q.CONNECTING&&l(new d.e(i.nb)));b=b instanceof Array||b instanceof ArrayBuffer?b.slice(c,c+f):b.buffer.slice(b.byteOffset+c,b.byteOffset+c+ -f);if(2===a.type&&(!g||g.q.readyState!==g.q.OPEN)){if(!g||g.q.readyState===g.q.Db||g.q.readyState===g.q.CLOSED)g=L.R.Ub(a,e,h);g.Vb.push(b);return f}try{return g.q.send(b),f}catch(j){l(new d.e(i.C))}},ag:function(a,b){1===a.type&&a.L&&l(new d.e(i.Gb));var c=a.cb.shift();if(!c){if(1===a.type){var e=L.R.ac(a,a.na,a.oa);if(e){if(e.q.readyState===e.q.Db||e.q.readyState===e.q.CLOSED)return v;l(new d.e(i.nb))}l(new d.e(i.Gb))}l(new d.e(i.nb))}var e=c.data.byteLength||c.data.length,k=c.data.byteOffset|| -0,h=c.data.buffer||c.data,g=Math.min(b,e),j={buffer:new Uint8Array(h,k,g),ma:c.ma,port:c.port};1===a.type&&g<e&&(c.data=new Uint8Array(h,k+g,e-g),a.cb.unshift(c));return j}}};e._memset=Bc;e._strlen=Wb;var tb=[];e._memmove=Cc;var Ta=[31,29,31,30,31,30,31,31,30,31,30,31],Ua=[31,28,31,30,31,30,31,31,30,31,30,31],Dc=fb;e._emscripten_replace_memory=rc;d.hd();pa.unshift({qa:function(){!e.noFSInit&&!d.Ba.Xa&&d.Ba()}});zb.push({qa:function(){d.ce=G}});Ga.push({qa:function(){d.Zf()}});e.FS_createFolder=d.ef; -e.FS_createPath=d.hf;e.FS_createDataFile=d.Dc;e.FS_createPreloadedFile=d.jf;e.FS_createLazyFile=d.ff;e.FS_createLink=d.gf;e.FS_createDevice=d.Ha;Na=t.we(4);u[Na>>2]=0;pa.unshift({qa:function(){ca.Ba()}});Ga.push({qa:H()});ca.Be=new t.pb;if(ea){var O=require("fs");J.hd()}pa.push({qa:function(){L.root=d.I(L,{},v)}});Qa.$=I([0],"i8",Q);tc=aa=t.rb(ra);Cb=tc+5242880;uc=$=t.rb(Cb);K(uc<ba,"TOTAL_MEMORY not big enough for stack");var Ec=I([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",3),Fc=I([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1, -0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",3),Ka=Math.min; -var k=(function(global,env,buffer) { -// EMSCRIPTEN_START_ASM -"almost asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=env.ctlz_i8|0;var o=env._stdin|0;var p=env.__ZTVN10__cxxabiv117__class_type_infoE|0;var q=env._stderr|0;var r=env.__ZTISt9exception|0;var s=env.__ZTVN10__cxxabiv120__si_class_type_infoE|0;var t=env._stdout|0;var u=env.___dso_handle|0;var v=+env.NaN;var w=+env.Infinity;var x=0;var y=0;var z=0;var A=0;var B=0,C=0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0.0;var K=0;var L=0;var M=0;var N=0;var O=0;var P=0;var Q=0;var R=0;var S=0;var T=0;var U=global.Math.floor;var V=global.Math.abs;var W=global.Math.sqrt;var X=global.Math.pow;var Y=global.Math.cos;var Z=global.Math.sin;var _=global.Math.tan;var $=global.Math.acos;var aa=global.Math.asin;var ba=global.Math.atan;var ca=global.Math.atan2;var da=global.Math.exp;var ea=global.Math.log;var fa=global.Math.ceil;var ga=global.Math.imul;var ha=env.abort;var ia=env.assert;var ja=env.asmPrintInt;var ka=env.asmPrintFloat;var la=env.min;var ma=env.invoke_viiiii;var na=env.invoke_vi;var oa=env.invoke_vii;var pa=env.invoke_ii;var qa=env.invoke_iiiiii;var ra=env.invoke_iiii;var sa=env.invoke_viiiiid;var ta=env.invoke_viiiiiiii;var ua=env.invoke_viiiiii;var va=env.invoke_viiiiiiiiiiiii;var wa=env.invoke_viiiiiii;var xa=env.invoke_viiiiiid;var ya=env.invoke_viiiiiiiii;var za=env.invoke_viiiiiiiiii;var Aa=env.invoke_iii;var Ba=env.invoke_viiiiiiiiiiii;var Ca=env.invoke_iiiii;var Da=env.invoke_viii;var Ea=env.invoke_v;var Fa=env.invoke_iiiiiiiii;var Ga=env.invoke_viiii;var Ha=env._llvm_lifetime_end;var Ia=env.__scanString;var Ja=env._pthread_mutex_lock;var Ka=env.___cxa_end_catch;var La=env._strtoull;var Ma=env._fflush;var Na=env.__isLeapYear;var Oa=env._fwrite;var Pa=env._send;var Qa=env._pthread_mutex_init;var Ra=env._llvm_umul_with_overflow_i32;var Sa=env._isspace;var Ta=env._read;var Ua=env._isxdigit_l;var Va=env._fileno;var Wa=env.___cxa_guard_abort;var Xa=env._newlocale;var Ya=env.___gxx_personality_v0;var Za=env._pthread_cond_wait;var _a=env.___cxa_rethrow;var $a=env._fmod;var ab=env.___resumeException;var bb=env._llvm_va_end;var cb=env._vsscanf;var db=env._snprintf;var eb=env._fgetc;var fb=env.__getFloat;var gb=env._pthread_cond_signal;var hb=env.___cxa_free_exception;var ib=env._isdigit_l;var jb=env.___setErrNo;var kb=env._isxdigit;var lb=env._exit;var mb=env._sprintf;var nb=env._asprintf;var ob=env.___ctype_b_loc;var pb=env._freelocale;var qb=env._catgets;var rb=env.___cxa_is_number_type;var sb=env._llvm_uadd_with_overflow_i32;var tb=env.___cxa_does_inherit;var ub=env.___cxa_guard_acquire;var vb=env.___cxa_begin_catch;var wb=env._emscripten_memcpy_big;var xb=env._recv;var yb=env.__parseInt64;var zb=env.__ZSt18uncaught_exceptionv;var Ab=env.__ZNSt9exceptionD2Ev;var Bb=env._mkport;var Cb=env._copysign;var Db=env.__exit;var Eb=env._strftime;var Fb=env.___cxa_throw;var Gb=env._printf;var Hb=env._pread;var Ib=env._strtoull_l;var Jb=env.__arraySum;var Kb=env._sysconf;var Lb=env._strtoll_l;var Mb=env.___cxa_find_matching_catch;var Nb=env.__formatString;var Ob=env._pthread_cond_broadcast;var Pb=env.__ZSt9terminatev;var Qb=env._vfprintf;var Rb=env._pthread_mutex_unlock;var Sb=env.___cxa_call_unexpected;var Tb=env._sbrk;var Ub=env._atexit;var Vb=env.___errno_location;var Wb=env._strerror;var Xb=env._pthread_mutex_destroy;var Yb=env._catclose;var Zb=env._llvm_lifetime_start;var _b=env.___cxa_guard_release;var $b=env._ungetc;var ac=env._pthread_cond_destroy;var bc=env._uselocale;var cc=env._vsnprintf;var dc=env._sscanf;var ec=env.___assert_fail;var fc=env._fread;var gc=env._strftime_l;var hc=env._abort;var ic=env._fprintf;var jc=env._isdigit;var kc=env._strtoll;var lc=env.__addDays;var mc=env._fabs;var nc=env.__reallyNegative;var oc=env._write;var pc=env.___cxa_allocate_exception;var qc=env.___cxa_pure_virtual;var rc=env._vasprintf;var sc=env._catopen;var tc=env.___ctype_toupper_loc;var uc=env.___ctype_tolower_loc;var vc=env._pthread_join;var wc=env._pthread_cond_init;var xc=env._pwrite;var yc=env._strerror_r;var zc=env._pthread_create;var Ac=env._time;var Bc=0.0; -// EMSCRIPTEN_START_FUNCS -function Xj(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;k=i;i=i+88|0;n=k|0;p=k+24|0;q=k+40|0;s=k+56|0;r=k+72|0;o=e+18596|0;m=c[o>>2]|0;t=e+18600|0;D=c[t>>2]|0;z=m+10368|0;y=c[z>>2]|0;x=f>>y;A=g>>y;E=1<<h-y;l=E+A|0;if((E|0)>0){E=E+x|0;y=m+10372|0;F=m+10360|0;do{G=x;do{T=(ga(c[y>>2]|0,A)|0)+G|0;T=(c[F>>2]|0)+(T*3|0)|0;C=(d[T]|d[T+1|0]<<8)<<16>>16&-8;a[T]=C;C=C>>8;a[T+1|0]=C;G=G+1|0;}while((G|0)<(E|0));A=A+1|0;}while((A|0)<(l|0));y=c[z>>2]|0}l=f>>y;A=g>>y;if(!((l|0)>-1)){ec(1024,904,128,17320)}x=m+10372|0;E=c[x>>2]|0;if((l|0)>=(E|0)){ec(1024,904,128,17320)}if(!((A|0)>-1)){ec(816,904,129,17320)}y=m+10376|0;if((A|0)>=(c[y>>2]|0)){ec(816,904,129,17320)}F=(ga(E,A)|0)+l|0;A=m+10360|0;F=(c[A>>2]|0)+(F*3|0)|0;C=(d[F]|d[F+1|0]<<8)<<16>>16&-8|h&7;a[F]=C;C=C>>8;a[F+1|0]=C;F=c[m+10448>>2]|0;l=f>>F;I=g>>F;F=1<<h-F;E=F+I|0;if((F|0)>0){F=F+l|0;H=m+10452|0;G=m+10440|0;J=I;do{I=l;do{T=(ga(c[H>>2]|0,J)|0)+I|0;a[(c[G>>2]|0)+T|0]=0;I=I+1|0;}while((I|0)<(F|0));J=J+1|0;}while((J|0)<(E|0))}l=1<<h;Qk(e,f,g,f,g);do{if((a[m+5964|0]|0)==0){a[e+32|0]=0}else{T=ud(e+18556|0,(c[e+18580>>2]|0)+161|0)|0;a[e+32|0]=T;if((T|0)==0){break}G=c[z>>2]|0;E=f>>G;H=g>>G;G=1<<h-G;F=G+H|0;if((G|0)>0){G=G+E|0;do{I=E;do{T=(ga(c[x>>2]|0,H)|0)+I|0;T=(c[A>>2]|0)+(T*3|0)|0;C=(d[T]|d[T+1|0]<<8)<<16>>16|2048;a[T]=C;C=C>>8;a[T+1|0]=C;I=I+1|0;}while((I|0)<(G|0));H=H+1|0;}while((H|0)<(F|0))}F=c[m+10348>>2]|0;E=f>>F;F=g>>F;if(!((E|0)>-1)){ec(1024,904,128,17320)}G=c[m+10352>>2]|0;if((E|0)>=(G|0)){ec(1024,904,128,17320)}if(!((F|0)>-1)){ec(816,904,129,17320)}if((F|0)<(c[m+10356>>2]|0)){T=(ga(G,F)|0)+E|0;a[(c[m+10340>>2]|0)+(T*24|0)+22|0]=1;break}else{ec(816,904,129,17320)}}}while(0);D=D+20|0;do{if((c[D>>2]|0)==2){t=0}else{E=c[o>>2]|0;G=f-1|0;do{if((G|g|0)<0){I=0}else{if((c[E+1248>>2]|0)<=(G|0)){I=0;break}if((c[E+1252>>2]|0)<=(g|0)){I=0;break}F=c[E+5804>>2]|0;T=ga(g>>F,c[E+5820>>2]|0)|0;H=T+(f>>F)|0;F=T+(G>>F)|0;T=c[E+10340>>2]|0;if((b[T+(H*24|0)>>1]|0)!=(b[T+(F*24|0)>>1]|0)){I=0;break}I=c[E+10308>>2]|0;I=(c[I+(H<<2)>>2]|0)==(c[I+(F<<2)>>2]|0)|0}}while(0);F=g-1|0;do{if((F|f|0)<0){H=0}else{if((c[E+1248>>2]|0)<=(f|0)){H=0;break}if((c[E+1252>>2]|0)<=(F|0)){H=0;break}S=c[E+5804>>2]|0;T=c[E+5820>>2]|0;H=f>>S;J=(ga(g>>S,T)|0)+H|0;H=(ga(F>>S,T)|0)+H|0;T=c[E+10340>>2]|0;if((b[T+(J*24|0)>>1]|0)!=(b[T+(H*24|0)>>1]|0)){H=0;break}T=c[E+10308>>2]|0;H=(c[T+(J<<2)>>2]|0)==(c[T+(H<<2)>>2]|0)|0}}while(0);do{if((I|0)==0){v=5}else{T=c[E+10368>>2]|0;J=G>>T;G=g>>T;if(!((J|0)>-1)){ec(1024,904,118,17320)}I=c[E+10372>>2]|0;if((J|0)>=(I|0)){ec(1024,904,118,17320)}if(!((G|0)>-1)){ec(816,904,119,17320)}if((G|0)<(c[E+10376>>2]|0)){T=(ga(I,G)|0)+J|0;T=(c[E+10360>>2]|0)+(T*3|0)|0;v=((d[T]|d[T+1|0]<<8)<<16>>16&768)==512?6:5;break}else{ec(816,904,119,17320)}}}while(0);do{if((H|0)==0){u=0}else{T=c[E+10368>>2]|0;G=f>>T;F=F>>T;if(!((G|0)>-1)){ec(1024,904,118,17320)}H=c[E+10372>>2]|0;if((G|0)>=(H|0)){ec(1024,904,118,17320)}if(!((F|0)>-1)){ec(816,904,119,17320)}if((F|0)<(c[E+10376>>2]|0)){u=(ga(H,F)|0)+G|0;u=(c[E+10360>>2]|0)+(u*3|0)|0;u=((d[u]|d[u+1|0]<<8)<<16>>16&768)==512|0;break}else{ec(816,904,119,17320)}}}while(0);E=e+18556|0;F=e+18580|0;if(((ud(E,(c[F>>2]|0)+(u+v)|0)|0)&255)<<24>>24==0){if((c[D>>2]|0)==2){t=0;break}t=(ud(E,(c[F>>2]|0)+149|0)|0)==0|0;break}a:do{if((c[(c[t>>2]|0)+804>>2]|0)<2){m=0}else{if((ud(E,(c[F>>2]|0)+148|0)|0)==0){m=0;break}if(((c[(c[t>>2]|0)+804>>2]|0)-1|0)>1){n=1}else{m=1;break}while(1){m=n+1|0;if((wd(E)|0)==0){m=n&255;break a}if((m|0)<((c[(c[t>>2]|0)+804>>2]|0)-1|0)){n=m}else{m=m&255;break}}}}while(0);p=e+26|0;a[p]=m<<5|a[p]&15|16;p=c[z>>2]|0;m=f>>p;p=g>>p;if(!((m|0)>-1)){ec(1024,904,128,17320)}n=c[x>>2]|0;if((m|0)>=(n|0)){ec(1024,904,128,17320)}if(!((p|0)>-1)){ec(816,904,129,17320)}if((p|0)>=(c[y>>2]|0)){ec(816,904,129,17320)}p=(ga(n,p)|0)+m|0;p=(c[A>>2]|0)+(p*3|0)|0;C=(d[p]|d[p+1|0]<<8)<<16>>16&-57;a[p]=C;C=C>>8;a[p+1|0]=C;p=c[z>>2]|0;m=f>>p;n=g>>p;p=1<<h-p;h=p+n|0;if((p|0)>0){p=p+m|0;do{q=m;do{T=(ga(c[x>>2]|0,n)|0)+q|0;T=(c[A>>2]|0)+(T*3|0)|0;C=(d[T]|d[T+1|0]<<8)<<16>>16&-769|512;a[T]=C;C=C>>8;a[T+1|0]=C;q=q+1|0;}while((q|0)<(p|0));n=n+1|0;}while((n|0)<(h|0))}Ii(c[e+18592>>2]|0,c[t>>2]|0,c[o>>2]|0,e+16|0,f,g,0,0,l,l,l,0);i=k;return}}while(0);D=c[z>>2]|0;u=f>>D;F=g>>D;D=1<<h-D;v=D+F|0;if((D|0)>0){E=D+u|0;D=(t&65535)<<8;do{G=u;do{T=(ga(c[x>>2]|0,F)|0)+G|0;T=(c[A>>2]|0)+(T*3|0)|0;C=(d[T]|d[T+1|0]<<8)<<16>>16&-769|D;a[T]=C;C=C>>8;a[T+1|0]=C;G=G+1|0;}while((G|0)<(E|0));F=F+1|0;}while((F|0)<(v|0))}u=(t|0)!=0;if(u){B=87}else{if((c[m+5800>>2]|0)==(h|0)){B=87}else{v=0;w=0}}if((B|0)==87){E=c[o>>2]|0;v=(t|0)==0;D=e+18556|0;F=e+18580|0;G=ud(D,(c[F>>2]|0)+8|0)|0;do{if(v){w=(G|0)!=0?0:3}else{if((G|0)!=0){w=0;break}G=ud(D,(c[F>>2]|0)+9|0)|0;if((c[E+5800>>2]|0)>=(h|0)){if((G|0)!=0){w=1;break}if((h|0)==3){w=2;break}w=3-(ud(D,(c[F>>2]|0)+10|0)|0)|0;break}if((a[E+5466|0]|0)==0){w=(G|0)!=0?1:2;break}if((ud(D,(c[F>>2]|0)+11|0)|0)!=0){w=(G|0)!=0?1:2;break}E=(G|0)!=0;F=E^1;D=(wd(D)|0)==0;if(!(D|F)){w=5;break}if(E&D){w=4;break}if(D&F){w=6;break}if(!(E|D)){w=7;break}ec(536,14776,1760,17936)}}while(0);v=(w|0)==3&v&1}E=c[z>>2]|0;D=f>>E;E=g>>E;if(!((D|0)>-1)){ec(1024,904,128,17320)}F=c[x>>2]|0;if((D|0)>=(F|0)){ec(1024,904,128,17320)}if(!((E|0)>-1)){ec(816,904,129,17320)}if((E|0)>=(c[y>>2]|0)){ec(816,904,129,17320)}y=(ga(F,E)|0)+D|0;y=(c[A>>2]|0)+(y*3|0)|0;C=(d[y]|d[y+1|0]<<8)<<16>>16&-57|(w&65535)<<3&56;a[y]=C;C=C>>8;a[y+1|0]=C;y=(t|0)==0;D=(w|0)==0;b:do{if(y){do{if(D){if((a[m+5468|0]|0)==0){n=l;o=0;break}if((c[m+5884>>2]|0)>(h|0)){B=165;break}if((c[m+5888>>2]|0)<(h|0)){B=165;break}B=e+18556|0;if((vd(B)|0)==0){B=165;break}r=c[z>>2]|0;p=f>>r;q=g>>r;r=1<<h-r;h=r+q|0;if((r|0)>0){r=r+p|0;do{s=p;do{T=(ga(c[x>>2]|0,q)|0)+s|0;T=(c[A>>2]|0)+(T*3|0)|0;C=(d[T]|d[T+1|0]<<8)<<16>>16|1024;a[T]=C;C=C>>8;a[T+1|0]=C;s=s+1|0;}while((s|0)<(r|0));q=q+1|0;}while((q|0)<(h|0))}h=c[m+10348>>2]|0;p=f>>h;h=g>>h;if(!((p|0)>-1)){ec(1024,904,128,17320)}q=c[m+10352>>2]|0;if((p|0)>=(q|0)){ec(1024,904,128,17320)}if(!((h|0)>-1)){ec(816,904,129,17320)}if((h|0)>=(c[m+10356>>2]|0)){ec(816,904,129,17320)}q=(ga(q,h)|0)+p|0;a[(c[m+10340>>2]|0)+(q*24|0)+22|0]=1;m=e+18560|0;q=c[m>>2]|0;h=n|0;c[h>>2]=q;c[n+4>>2]=(c[e+18564>>2]|0)-q;q=n+8|0;c[q>>2]=0;c[q+4>>2]=0;c[n+16>>2]=0;q=c[o>>2]|0;r=c[q+5760>>2]|0;e=a[q+5469|0]|0;p=c[q+40>>2]|0;q=c[q+4>>2]|0;do{if((r|0)>8){q=q+((ga(p,g)|0)+f<<1)|0;u=r-e|0;if((l|0)>0){r=0}else{break}do{s=ga(r,p)|0;t=0;do{T=(nd(n,e)|0)<<u&65535;b[q+(t+s<<1)>>1]=T;t=t+1|0;}while((t|0)<(l|0));r=r+1|0;}while((r|0)<(l|0))}else{r=r-e|0;if((l|0)>0){u=0}else{break}do{s=(ga(u+g|0,p)|0)+f|0;t=0;do{T=(nd(n,e)|0)<<r&255;a[q+(s+t)|0]=T;t=t+1|0;}while((t|0)<(l|0));u=u+1|0;}while((u|0)<(l|0))}}while(0);A=c[o>>2]|0;do{if((c[A+5776>>2]|0)!=0){q=c[A+5768>>2]|0;w=c[A+5780>>2]|0;r=(l|0)/(w|0)|0;u=c[A+5784>>2]|0;s=(l|0)/(u|0)|0;v=(f|0)/(w|0)|0;x=(g|0)/(u|0)|0;t=a[A+5470|0]|0;p=t<<24>>24;e=c[A+44>>2]|0;y=c[A+8>>2]|0;if((q|0)>8){v=y+((ga(e,x)|0)+v<<1)|0;x=q-p|0;if((s|0)>0){w=(r|0)>0;u=0;do{if(w){q=ga(u,e)|0;t=0;do{T=(nd(n,p)|0)<<x&65535;b[v+(t+q<<1)>>1]=T;t=t+1|0;}while((t|0)<(r|0))}u=u+1|0;}while((u|0)<(s|0));e=c[o>>2]|0;A=e;w=c[e+5780>>2]|0;u=c[e+5784>>2]|0;t=a[e+5470|0]|0;q=c[e+5768>>2]|0;e=c[e+44>>2]|0}o=(l|0)/(w|0)|0;l=(l|0)/(u|0)|0;p=t<<24>>24;g=(c[A+12>>2]|0)+((ga((g|0)/(u|0)|0,e)|0)+((f|0)/(w|0)|0)<<1)|0;r=q-p|0;if((l|0)<=0){break}q=(o|0)>0;f=0;do{if(q){s=ga(f,e)|0;t=0;do{T=(nd(n,p)|0)<<r&65535;b[g+(t+s<<1)>>1]=T;t=t+1|0;}while((t|0)<(o|0))}f=f+1|0;}while((f|0)<(l|0))}else{z=q-p|0;if((s|0)>0){w=(r|0)>0;u=0;do{if(w){t=(ga(u+x|0,e)|0)+v|0;q=0;do{T=(nd(n,p)|0)<<z&255;a[y+(t+q)|0]=T;q=q+1|0;}while((q|0)<(r|0))}u=u+1|0;}while((u|0)<(s|0));e=c[o>>2]|0;A=e;w=c[e+5780>>2]|0;u=c[e+5784>>2]|0;t=a[e+5470|0]|0;q=c[e+5768>>2]|0;e=c[e+44>>2]|0}o=(l|0)/(w|0)|0;l=(l|0)/(u|0)|0;f=(f|0)/(w|0)|0;g=(g|0)/(u|0)|0;p=t<<24>>24;r=c[A+12>>2]|0;q=q-p|0;if((l|0)<=0){break}u=(o|0)>0;t=0;do{if(u){s=(ga(t+g|0,e)|0)+f|0;v=0;do{T=(nd(n,p)|0)<<q&255;a[r+(s+v)|0]=T;v=v+1|0;}while((v|0)<(o|0))}t=t+1|0;}while((t|0)<(l|0))}}}while(0);pd(n);c[m>>2]=c[h>>2];td(B);i=k;return}else{B=165}}while(0);do{if((B|0)==165){if((w|0)!=3){n=l;o=0;break}n=(l|0)/2|0;o=-1}}while(0);o=o+h|0;x=(l|0)>0;if(x){A=e+18556|0;z=e+18580|0;j=0;B=0;do{D=0;E=B;while(1){T=ud(A,(c[z>>2]|0)+12|0)|0;B=E+1|0;c[p+(E<<2)>>2]=T;D=D+n|0;if((D|0)<(l|0)){E=B}else{break}}j=j+n|0;}while((j|0)<(l|0))}A=f-1|0;do{if((A|g|0)<0){A=0}else{if((c[m+1248>>2]|0)<=(A|0)){A=0;break}if((c[m+1252>>2]|0)<=(g|0)){A=0;break}T=c[m+5804>>2]|0;S=ga(g>>T,c[m+5820>>2]|0)|0;z=S+(f>>T)|0;A=S+(A>>T)|0;T=c[m+10340>>2]|0;if((b[T+(z*24|0)>>1]|0)!=(b[T+(A*24|0)>>1]|0)){A=0;break}T=c[m+10308>>2]|0;A=(c[T+(z<<2)>>2]|0)==(c[T+(A<<2)>>2]|0)|0}}while(0);B=g-1|0;do{if((B|f|0)<0){B=0}else{if((c[m+1248>>2]|0)<=(f|0)){B=0;break}if((c[m+1252>>2]|0)<=(B|0)){B=0;break}R=c[m+5804>>2]|0;S=c[m+5820>>2]|0;T=f>>R;z=(ga(g>>R,S)|0)+T|0;B=(ga(B>>R,S)|0)+T|0;T=c[m+10340>>2]|0;if((b[T+(z*24|0)>>1]|0)!=(b[T+(B*24|0)>>1]|0)){B=0;break}T=c[m+10308>>2]|0;B=(c[T+(z<<2)>>2]|0)==(c[T+(B<<2)>>2]|0)|0}}while(0);if(x){z=e+18556|0;A=(A|0)!=0;B=(B|0)!=0;D=m+5872|0;F=m+5876|0;j=r|0;G=m+10408|0;J=m+10412|0;E=m+10400|0;H=r+4|0;I=r+8|0;K=0;N=0;do{L=K+g|0;M=(K|0)>0|B;O=0;do{Q=c[p+(N<<2)>>2]|0;if((Q|0)==0){T=yd(z,5)|0;c[s+(N<<2)>>2]=T}else{T=xd(z,2)|0;c[q+(N<<2)>>2]=T}T=O+f|0;P=c[D>>2]|0;P=(ga(L>>P,c[F>>2]|0)|0)+(T>>P)|0;di(j,T,L,P,(O|0)>0|A,M,m);if((Q|0)==1){R=c[r+(c[q+(N<<2)>>2]<<2)>>2]&255}else{Q=c[j>>2]|0;R=c[H>>2]|0;if((Q|0)>(R|0)){c[j>>2]=R;c[H>>2]=Q;S=R}else{S=Q;Q=R}T=c[I>>2]|0;if((S|0)>(T|0)){c[j>>2]=T;c[I>>2]=S;R=S;S=T}else{R=T}if((Q|0)>(R|0)){c[H>>2]=R;c[I>>2]=Q;T=R}else{T=Q;Q=R}R=c[s+(N<<2)>>2]|0;R=((R|0)>=(S|0))+R|0;R=((R|0)>=(T|0))+R|0;R=((R|0)>=(Q|0))+R&255}S=1<<o-(c[G>>2]|0);if((S|0)>0){Q=0;do{T=0;do{U=T+P+(ga(c[J>>2]|0,Q)|0)|0;a[(c[E>>2]|0)+U|0]=R;T=T+1|0;}while((T|0)<(S|0));Q=Q+1|0;}while((Q|0)<(S|0))}N=N+1|0;O=O+n|0;}while((O|0)<(l|0));K=K+n|0;}while((K|0)<(l|0))}p=m+5776|0;q=c[p>>2]|0;if((q|0)==0){break}else if((q|0)!=3){l=e+18556|0;if((ud(l,(c[e+18580>>2]|0)+13|0)|0)==0){n=4}else{n=yd(l,2)|0}q=c[m+10408>>2]|0;o=f>>q;q=g>>q;if(!((o|0)>-1)){ec(1024,904,118,17320)}l=c[m+10412>>2]|0;if((o|0)>=(l|0)){ec(1024,904,118,17320)}if(!((q|0)>-1)){ec(816,904,119,17320)}if((q|0)>=(c[m+10416>>2]|0)){ec(816,904,119,17320)}o=(ga(l,q)|0)+o|0;o=d[(c[m+10400>>2]|0)+o|0]|0;l=(n|0)==4;if(!l){n=c[19448+(n<<2)>>2]|0;o=(n|0)==(o|0)?34:n}if((c[p>>2]|0)==2){o=d[30544+o|0]|0}Yj(m,f,g,h,o,l);break}if(!x){break}q=e+18556|0;p=e+18580|0;r=m+10408|0;D=m+10412|0;B=m+10416|0;s=m+10400|0;j=0;c:while(1){A=j+g|0;z=0;do{x=z+f|0;if((ud(q,(c[p>>2]|0)+13|0)|0)==0){E=4}else{E=yd(q,2)|0}H=c[r>>2]|0;G=x>>H;H=A>>H;if(!((G|0)>-1)){B=211;break c}F=c[D>>2]|0;if((G|0)>=(F|0)){B=211;break c}if(!((H|0)>-1)){B=214;break c}if((H|0)>=(c[B>>2]|0)){B=214;break c}G=(ga(F,H)|0)+G|0;G=d[(c[s>>2]|0)+G|0]|0;F=(E|0)==4;if(!F){E=c[19448+(E<<2)>>2]|0;G=(E|0)==(G|0)?34:E}Yj(m,x,A,o,G,F);z=z+n|0;}while((z|0)<(l|0));j=j+n|0;if((j|0)>=(l|0)){break b}}if((B|0)==211){ec(1024,904,118,17320)}else if((B|0)==214){ec(816,904,119,17320)}}else{if(D){Wj(e,f,g,0,0,l,l,j,l,0);break}switch(w|0){case 1:{U=(l|0)/2|0;Wj(e,f,g,0,0,l,U,j,l,0);Wj(e,f,g,0,U,l,U,j,l,1);break b};case 2:{U=(l|0)/2|0;Wj(e,f,g,0,0,U,l,j,l,0);Wj(e,f,g,U,0,U,l,j,l,1);break b};case 4:{U=(l|0)/4|0;Wj(e,f,g,0,0,l,U,j,l,0);Wj(e,f,g,0,U,l,(3<<h|0)/4|0,j,l,1);break b};case 5:{U=(3<<h|0)/4|0;Wj(e,f,g,0,0,l,U,j,l,0);Wj(e,f,g,0,U,l,(l|0)/4|0,j,l,1);break b};case 6:{U=(l|0)/4|0;Wj(e,f,g,0,0,U,l,j,l,0);Wj(e,f,g,U,0,(3<<h|0)/4|0,l,j,l,1);break b};case 7:{U=(3<<h|0)/4|0;Wj(e,f,g,0,0,U,l,j,l,0);Wj(e,f,g,U,0,(l|0)/4|0,l,j,l,1);break b};case 3:{U=(l|0)/2|0;Wj(e,f,g,0,0,U,U,j,l,0);Wj(e,f,g,U,0,U,U,j,l,1);Wj(e,f,g,0,U,U,U,j,l,2);Wj(e,f,g,U,U,U,U,j,l,3);break b};default:{ec(14128,14776,4511,18912)}}}}while(0);do{if(u){if(!((w|0)!=0|(a[e+26|0]&16)==0)){break}if((ud(e+18556|0,(c[e+18580>>2]|0)+153|0)|0)!=0){break}i=k;return}}while(0);if(y){l=(c[m+1396>>2]|0)+v|0}else{l=c[m+1392>>2]|0}U=(c[m+5776>>2]|0)!=0|0;Uj(e,f,g,f,g,f,g,h,0,0,l,v,t,U,U);i=k;return}function Yj(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;if(h){g=(g|128)&255}else{g=g&255}h=1<<f-(c[b+10408>>2]|0);i=c[b+5872>>2]|0;f=b+5876|0;i=(ga(e>>i,c[f>>2]|0)|0)+(d>>i)|0;if((h|0)<=0){return}j=b+5880|0;e=b+10432|0;d=b+10424|0;b=b+10420|0;l=0;a:while(1){m=0;do{if((m|0)>=(c[f>>2]|0)){g=7;break a}if((l|0)>=(c[j>>2]|0)){g=9;break a}k=i+m+(ga(c[e>>2]|0,l)|0)|0;if((k|0)>=(c[d>>2]|0)){g=11;break a}a[(c[b>>2]|0)+k|0]=g;m=m+1|0;}while((m|0)<(h|0));l=l+1|0;if((l|0)>=(h|0)){g=14;break}}if((g|0)==7){ec(776,904,659,17736)}else if((g|0)==9){ec(704,904,660,17736)}else if((g|0)==11){ec(640,904,663,17736)}else if((g|0)==14){return}}function Zj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;f=b+18596|0;v=c[f>>2]|0;i=c[v+5820>>2]|0;g=b+12|0;h=v+5965|0;do{if(!e){if((a[h]|0)==0){break}e=c[g>>2]|0;if((e|0)<=0){break}if((c[b+8>>2]|0)!=0){break}if((i|0)>1){e=e-1|0;j=b+18604|0;E=c[j>>2]|0;if(e>>>0<(c[E+10680>>2]|0)-(c[E+10676>>2]|0)>>3>>>0){Yh(v,c[b+18612>>2]|0,1,e,1);Jd(b+18580|0,(c[(c[j>>2]|0)+10676>>2]|0)+((c[g>>2]|0)-1<<3)|0)|0;Hd((c[(c[j>>2]|0)+10676>>2]|0)+((c[g>>2]|0)-1<<3)|0);break}else{E=2;return E|0}}else{Yh(v,c[b+18612>>2]|0,0,e-1|0,1);e=c[b+18600>>2]|0;j=c[e+796>>2]|0;if(j>>>0<3>>>0){Fd(b+18580|0,j,c[e+792>>2]|0);E=b+18588|0;C=0;a[E]=C;C=C>>8;a[E+1|0]=C;C=C>>8;a[E+2|0]=C;C=C>>8;a[E+3|0]=C;break}else{ec(1856,14776,1508,18744);return 0}}}}while(0);k=b+8|0;u=i-1|0;t=b+18612|0;n=b+18580|0;p=b+18584|0;r=v+5828|0;q=b+18604|0;e=b+18556|0;o=v+5935|0;m=b+18600|0;l=b+4|0;j=b|0;s=v+5966|0;v=v+10296|0;B=c[k>>2]|0;D=c[g>>2]|0;w=c[f>>2]|0;a:while(1){x=(ga(D,i)|0)+B|0;if(!(x>>>0<(c[w+10276>>2]|0)-(c[w+10272>>2]|0)>>2>>>0)){b=2;g=38;break}if((B|0)>=(c[w+5820>>2]|0)){b=2;g=38;break}if((D|0)>=(c[w+5828>>2]|0)){b=2;g=38;break}if((D|0)>0&d&(B|0)<(u|0)){Yh(w,c[t>>2]|0,B+1|0,D-1|0,1)}if((c[p>>2]|0)==0){b=2;g=38;break}Pj(b);do{if((a[h]|0)!=0&(B|0)==1){if((D|0)>=((c[r>>2]|0)-1|0)){break}E=c[q>>2]|0;w=c[E+10676>>2]|0;if(!((c[E+10680>>2]|0)-w>>3>>>0>D>>>0)){b=2;g=38;break a}Jd(w+(D<<3)|0,n)|0;Id((c[(c[q>>2]|0)+10676>>2]|0)+(D<<3)|0)}}while(0);E=vd(e)|0;y=(E|0)!=0;do{if(y){if((a[o]|0)==0){break}Jd((c[m>>2]|0)+1332|0,n)|0;Id((c[m>>2]|0)+1332|0);a[(c[m>>2]|0)+1340|0]=1}}while(0);Ek((c[(c[f>>2]|0)+10524>>2]|0)+(x*76|0)|0,1);x=c[g>>2]|0;z=c[l>>2]|0;A=z+1|0;c[l>>2]=A;w=c[f>>2]|0;D=c[w+5836>>2]|0;if((A|0)<(D|0)){E=c[(c[w+10284>>2]|0)+(A<<2)>>2]|0;c[j>>2]=E;D=w+5820|0;B=(E|0)%(c[D>>2]|0)|0;c[k>>2]=B;D=(E|0)/(c[D>>2]|0)|0;c[g>>2]=D}else{c[j>>2]=D;F=w+5820|0;B=(D|0)%(c[F>>2]|0)|0;c[k>>2]=B;D=(D|0)/(c[F>>2]|0)|0;c[g>>2]=D;if((E|0)==0){g=28;break}}if(y){b=0;g=38;break}if((a[s]|0)==0){y=0}else{y=c[v>>2]|0;y=(c[y+(A<<2)>>2]|0)!=(c[y+(z<<2)>>2]|0)|0}if((a[h]|0)==0){x=0}else{x=(x|0)!=(D|0)|0}if((x|y|0)!=0){g=35;break}}if((g|0)==28){Ue((c[b+18592>>2]|0)+4|0,1004,0);a[(c[f>>2]|0)+10516|0]=3;F=2;return F|0}else if((g|0)==35){if((vd(e)|0)==0){Ue((c[b+18592>>2]|0)+4|0,1017,0);a[(c[f>>2]|0)+10516|0]=3;F=2;return F|0}else{td(e);F=1;return F|0}}else if((g|0)==38){return b|0}return 0}function _j(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0;h=c[b+18596>>2]|0;g=h+5932|0;i=b+18600|0;f=c[i>>2]|0;if((a[f+12|0]|0)==0){d=c[f+796>>2]|0;if(!(d>>>0<3>>>0)){ec(1856,14776,1508,18744);return 0}Fd(b+18580|0,d,c[f+792>>2]|0);k=b+18588|0;C=0;a[k]=C;C=C>>8;a[k+1|0]=C;C=C>>8;a[k+2|0]=C;C=C>>8;a[k+3|0]=C;k=1;return k|0}j=c[f+16>>2]|0;f=e[(c[h+10340>>2]|0)+((c[(c[h+10284>>2]|0)+((c[(c[h+10272>>2]|0)+(j<<2)>>2]|0)-1<<2)>>2]|0)*24|0)+2>>1]|0;k=c[h+48>>2]|0;if(!(f>>>0<(c[h+52>>2]|0)-k>>2>>>0)){k=0;return k|0}f=c[k+(f<<2)>>2]|0;k=c[h+5820>>2]|0;if(pj(g,(j|0)%(k|0)|0,(j|0)/(k|0)|0)|0){d=c[i>>2]|0;f=c[d+796>>2]|0;if(!(f>>>0<3>>>0)){ec(1856,14776,1508,18744);return 0}Fd(b+18580|0,f,c[d+792>>2]|0);k=b+18588|0;C=0;a[k]=C;C=C>>8;a[k+1|0]=C;C=C>>8;a[k+2|0]=C;C=C>>8;a[k+3|0]=C;k=1;return k|0}h=c[b+18604>>2]|0;i=c[b+18608>>2]|0;g=c[h+10632>>2]|0;h=(c[h+10636>>2]|0)-g>>2;if(h>>>0>1>>>0){j=1}else{k=0;return k|0}while(1){k=j+1|0;if((c[g+(j<<2)>>2]|0)==(i|0)){break}if(k>>>0<h>>>0){j=k}else{b=0;d=16;break}}if((d|0)==16){return b|0}d=c[g+(j-1<<2)>>2]|0;if((d|0)==0){k=0;return k|0}Dk(d+44|0,c[d+120>>2]|0);if((a[f+1340|0]|0)==0){k=0;return k|0}k=f+1332|0;Jd(b+18580|0,k)|0;Hd(k);k=1;return k|0}function $j(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+104|0;e=f|0;mb(e|0,1216,(g=i,i=i+8|0,c[g>>2]=c[d+12>>2],g)|0)|0;i=g;d=ev(e|0)|0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;g=b+1|0;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}else{h=d+16&-16;g=Nu(h)|0;c[b+8>>2]=g;c[b>>2]=h|1;c[b+4>>2]=d;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}}function ak(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+104|0;e=f|0;h=c[d+16>>2]|0;mb(e|0,1104,(g=i,i=i+16|0,c[g>>2]=c[d+12>>2],c[g+8>>2]=h,g)|0)|0;i=g;d=ev(e|0)|0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;h=b+1|0;cv(h|0,e|0,d)|0;h=h+d|0;a[h]=0;i=f;return}else{g=d+16&-16;h=Nu(g)|0;c[b+8>>2]=h;c[b>>2]=g|1;c[b+4>>2]=d;cv(h|0,e|0,d)|0;h=h+d|0;a[h]=0;i=f;return}}function bk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=c[b+20>>2]|0;h=g+18596|0;e=c[h>>2]|0;f=b|0;d=b+4|0;c[d>>2]=1;Wh(e,f);h=c[h>>2]|0;i=c[g+4>>2]|0;j=c[h+5836>>2]|0;if((i|0)<(j|0)){i=c[(c[h+10284>>2]|0)+(i<<2)>>2]|0;c[g>>2]=i;j=h+5820|0;c[g+8>>2]=(i|0)%(c[j>>2]|0)|0;c[g+12>>2]=(i|0)/(c[j>>2]|0)|0}else{c[g>>2]=j;i=h+5820|0;c[g+8>>2]=(j|0)%(c[i>>2]|0)|0;c[g+12>>2]=(j|0)/(c[i>>2]|0)|0}h=b+8|0;do{if((a[h]|0)==0){b=c[g+18600>>2]|0;i=c[b+796>>2]|0;if(i>>>0<3>>>0){Fd(g+18580|0,i,c[b+792>>2]|0);j=g+18588|0;C=0;a[j]=C;C=C>>8;a[j+1|0]=C;C=C>>8;a[j+2|0]=C;C=C>>8;a[j+3|0]=C;break}else{ec(1856,14776,1508,18744)}}else{if(_j(g)|0){break}c[d>>2]=3;Fk((c[g+18608>>2]|0)+44|0,1);Xh(e,f);return}}while(0);td(g+18556|0);Zj(g,0,(a[h]|0)!=0)|0;c[d>>2]=3;Fk((c[g+18608>>2]|0)+44|0,1);Xh(e,f);return}function ck(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=c[b+16>>2]|0;l=g+18596|0;f=c[l>>2]|0;h=f+5820|0;i=c[h>>2]|0;e=b|0;d=b+4|0;c[d>>2]=1;Wh(f,e);l=c[l>>2]|0;k=c[g+4>>2]|0;j=c[l+5836>>2]|0;if((k|0)<(j|0)){j=c[(c[l+10284>>2]|0)+(k<<2)>>2]|0;c[g>>2]=j;n=l+5820|0;c[g+8>>2]=(j|0)%(c[n>>2]|0)|0;c[g+12>>2]=(j|0)/(c[n>>2]|0)|0}else{c[g>>2]=j;n=l+5820|0;c[g+8>>2]=(j|0)%(c[n>>2]|0)|0;c[g+12>>2]=(j|0)/(c[n>>2]|0)|0}j=(j|0)/(i|0)|0;b=b+8|0;do{if((a[b]|0)!=0){if(_j(g)|0){break}if((i|0)>0){j=ga(j,i)|0;b=f+10524|0;h=0;do{Ek((c[b>>2]|0)+((h+j|0)*76|0)|0,1);h=h+1|0;}while((h|0)<(i|0))}c[d>>2]=3;Fk((c[g+18608>>2]|0)+44|0,1);Xh(f,e);return}}while(0);td(g+18556|0);if((a[b]|0)==0){b=0}else{b=(a[(c[g+18600>>2]|0)+12|0]|0)==0}Zj(g,1,b)|0;a:do{if((c[g+12>>2]|0)==(j|0)){b=c[h>>2]|0;m=c[g+8>>2]|0;if((m|0)>=(b|0)){break}k=f+5828|0;i=ga(j,i)|0;l=f+10524|0;n=m;m=b;while(1){do{if((n|0)<(m|0)){if((j|0)>=(c[k>>2]|0)){break}Ek((c[l>>2]|0)+((n+i|0)*76|0)|0,1)}}while(0);n=n+1|0;if((n|0)>=(b|0)){break a}m=c[h>>2]|0}}}while(0);c[d>>2]=3;Fk((c[g+18608>>2]|0)+44|0,1);Xh(f,e);return}function dk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=c[b+18596>>2]|0;e=c[b+4>>2]|0;d=c[h+5836>>2]|0;if((e|0)<(d|0)){m=c[(c[h+10284>>2]|0)+(e<<2)>>2]|0;c[b>>2]=m;n=h+5820|0;c[b+8>>2]=(m|0)%(c[n>>2]|0)|0;c[b+12>>2]=(m|0)/(c[n>>2]|0)|0}else{c[b>>2]=d;n=h+5820|0;c[b+8>>2]=(d|0)%(c[n>>2]|0)|0;c[b+12>>2]=(d|0)/(c[n>>2]|0)|0}d=b+18600|0;k=c[d>>2]|0;if(!(_j(b)|0)){n=18;return n|0}g=b+18556|0;td(g);f=b+18560|0;g=g|0;e=b+18592|0;h=h+5966|0;j=b+18580|0;i=b+18588|0;k=(a[k+12|0]|0)==0;l=0;while(1){do{if((l|0)>0){n=l-1|0;o=c[d>>2]|0;m=c[o+776>>2]|0;if(n>>>0<(c[o+780>>2]|0)-m>>2>>>0){if(((c[f>>2]|0)-2-(c[g>>2]|0)|0)==(c[m+(n<<2)>>2]|0)){break}}Ue((c[e>>2]|0)+4|0,1003,1)}}while(0);l=l+1|0;if(((Zj(b,0,k)|0)&-3|0)==0){d=0;b=15;break}if((a[h]|0)==0){k=0;continue}m=c[d>>2]|0;k=c[m+796>>2]|0;if(!(k>>>0<3>>>0)){b=13;break}Fd(j,k,c[m+792>>2]|0);C=0;a[i]=C;C=C>>8;a[i+1|0]=C;C=C>>8;a[i+2|0]=C;C=C>>8;a[i+3|0]=C;k=0}if((b|0)==13){ec(1856,14776,1508,18744);return 0}else if((b|0)==15){return d|0}return 0}function ek(a){a=a|0;return}function fk(a){a=a|0;Pu(a);return}function gk(a){a=a|0;return}function hk(a){a=a|0;Pu(a);return}function ik(b){b=b|0;c[b+4720>>2]=0;c[b+4724>>2]=0;c[b+4728>>2]=0;kl(b+4904|0);dv(b+4984|0,0,9)|0;a[b|0]=0;return}function jk(a){a=a|0;var b=0,d=0;b=c[a+4720>>2]|0;if((b|0)==0){return}a=a+4724|0;d=c[a>>2]|0;if((d|0)!=(b|0)){c[a>>2]=d+(~(((d-100+(-b|0)|0)>>>0)/100|0)*100|0)}Pu(b);return}function kk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=(nd(e,4)|0)&255;a[b+1|0]=m;m=(nd(e,3)|0)+1&255;g=b+2|0;a[g]=m;if(m<<24>>24>7){m=8;return m|0}f=(nd(e,1)|0)&255;a[b+3|0]=f;$k(b+4|0,e,a[g]|0);f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+472>>2]=f;if((f|0)>15){m=8;return m|0}i=qd(e)|0;if((i|0)==-99999){Ue(d,8,0);m=8;return m|0}f=b+476|0;c[f>>2]=i;do{if((i|0)==3){m=(nd(e,1)|0)&255;a[b+480|0]=m;if(m<<24>>24==0){h=11;break}c[b+5012>>2]=0;f=c[f>>2]|0}else{a[b+480|0]=0;h=11}}while(0);if((h|0)==11){f=c[f>>2]|0;c[b+5012>>2]=f}if(f>>>0>3>>>0){Ue(d,1019,0);m=8;return m|0}i=qd(e)|0;if((i|0)==-99999){Ue(d,8,0);m=8;return m|0}f=b+484|0;c[f>>2]=i;i=qd(e)|0;if((i|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+488>>2]=i;f=c[f>>2]|0;if((f|0)==0|(i|0)==0){m=8;return m|0}if((f|0)>7e4|(i|0)>7e4){m=8;return m|0}m=(nd(e,1)|0)&255;a[b+492|0]=m;do{if(m<<24>>24==0){dv(b+496|0,0,16)|0}else{f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+496>>2]=f;f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+500>>2]=f;f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+504>>2]=f;f=qd(e)|0;if(!((f|0)==-99999)){c[b+508>>2]=f;break}Ue(d,8,0);m=8;return m|0}}while(0);f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+512>>2]=f+8;f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+516>>2]=f+8;f=qd(e)|0;if((f|0)==-99999){Ue(d,8,0);m=8;return m|0}m=f+4|0;f=b+520|0;c[f>>2]=m;c[b+5032>>2]=1<<m;m=(nd(e,1)|0)&255;i=b+524|0;a[i]=m;if(m<<24>>24==0){l=a[g]|0;j=(l<<24>>24)-1|0}else{j=0;h=39}while(1){if((h|0)==39){l=a[g]|0}k=(l<<24>>24)-1|0;if((j|0)>(k|0)){h=48;break}h=qd(e)|0;if((h|0)==-99999|(h|0)>15){h=42;break}c[b+528+(j<<2)>>2]=h+1;k=qd(e)|0;if((k|0)==-99999){h=44;break}h=b+556+(j<<2)|0;c[h>>2]=k;k=qd(e)|0;if((k|0)==-99999){h=46;break}c[b+584+(j<<2)>>2]=k;c[b+5128+(j<<2)>>2]=k-1+(c[h>>2]|0);j=j+1|0;h=39}if((h|0)==42){Ue(d,8,0);m=8;return m|0}else if((h|0)==44){Ue(d,8,0);m=8;return m|0}else if((h|0)==46){Ue(d,8,0);m=8;return m|0}else if((h|0)==48){do{if((a[i]|0)!=0){if(!(l<<24>>24<8)){ec(2792,14480,317,17480);return 0}if((k|0)<=0){break}i=b+528+(k<<2)|0;h=b+556+(k<<2)|0;j=b+584+(k<<2)|0;k=0;do{c[b+528+(k<<2)>>2]=c[i>>2];c[b+556+(k<<2)>>2]=c[h>>2];c[b+584+(k<<2)>>2]=c[j>>2];k=k+1|0;}while((k|0)<((a[g]|0)-1|0))}}while(0);h=qd(e)|0;if((h|0)==-99999){Ue(d,8,0);m=8;return m|0}g=b+612|0;c[g>>2]=h+3;i=qd(e)|0;if((i|0)==-99999){Ue(d,8,0);m=8;return m|0}h=b+616|0;c[h>>2]=i;j=qd(e)|0;if((j|0)==-99999){Ue(d,8,0);m=8;return m|0}i=b+620|0;c[i>>2]=j+2;k=qd(e)|0;if((k|0)==-99999){Ue(d,8,0);m=8;return m|0}j=b+624|0;c[j>>2]=k;k=qd(e)|0;if((k|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+628>>2]=k;k=qd(e)|0;if((k|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+632>>2]=k;g=c[g>>2]|0;if((g|0)>6){m=8;return m|0}if(((c[h>>2]|0)+g|0)>6){m=8;return m|0}g=c[i>>2]|0;if((g|0)>5){m=8;return m|0}if(((c[j>>2]|0)+g|0)>5){m=8;return m|0}m=(nd(e,1)|0)&255;a[b+636|0]=m;do{if(!(m<<24>>24==0)){m=(nd(e,1)|0)&255;a[b+637|0]=m;g=b+638|0;if(m<<24>>24==0){mk(g);break}g=lk(e,0,g,0)|0;if((g|0)==0){break}return g|0}}while(0);m=(nd(e,1)|0)&255;a[b+4702|0]=m;m=(nd(e,1)|0)&255;a[b+4703|0]=m;m=(nd(e,1)|0)&255;a[b+4704|0]=m;do{if(m<<24>>24==0){a[b+4705|0]=0;a[b+4706|0]=0;c[b+4708>>2]=0;c[b+4712>>2]=0;a[b+4716|0]=0}else{g=(nd(e,4)|0)+1&255;a[b+4705|0]=g;g=(nd(e,4)|0)+1&255;a[b+4706|0]=g;g=qd(e)|0;if((g|0)==-99999){Ue(d,8,0);m=8;return m|0}c[b+4708>>2]=g+3;g=qd(e)|0;if(!((g|0)==-99999)){c[b+4712>>2]=g;m=(nd(e,1)|0)&255;a[b+4716|0]=m;break}Ue(d,8,0);m=8;return m|0}}while(0);g=qd(e)|0;if((g|0)==-99999){Ue(d,8,0);m=8;return m|0}if(g>>>0>64>>>0){Ue(d,1014,0);m=8;return m|0}h=b+4720|0;k=b+4724|0;j=c[k>>2]|0;i=h|0;m=c[i>>2]|0;l=(j-m|0)/100|0;do{if(l>>>0<g>>>0){sk(h,g-l|0)}else{if(!(l>>>0>g>>>0)){break}l=m+(g*100|0)|0;if((j|0)==(l|0)){break}c[k>>2]=j+(~(((j-100+(-l|0)|0)>>>0)/100|0)*100|0)}}while(0);a:do{if((g|0)>0){j=0;while(1){k=j+1|0;if(!(sj(d,b,e,(c[i>>2]|0)+(j*100|0)|0,j,h,0)|0)){g=1005;break}if((k|0)<(g|0)){j=k}else{break a}}return g|0}}while(0);m=(nd(e,1)|0)&255;a[b+4732|0]=m;do{if(m<<24>>24==0){c[b+4736>>2]=0}else{h=qd(e)|0;if((h|0)==-99999){Ue(d,8,0);m=8;return m|0}g=b+4736|0;c[g>>2]=h;if((h|0)>32){m=8;return m|0}if((h|0)>0){h=0}else{break}do{m=nd(e,c[f>>2]|0)|0;c[b+4740+(h<<2)>>2]=m;m=(nd(e,1)|0)&255;a[b+4868+h|0]=m;h=h+1|0;}while((h|0)<(c[g>>2]|0))}}while(0);m=(nd(e,1)|0)&255;a[b+4900|0]=m;m=(nd(e,1)|0)&255;a[b+4901|0]=m;m=(nd(e,1)|0)&255;a[b+4902|0]=m;if(!(m<<24>>24==0)){ll(b+4904|0,d,e,b)|0}m=(nd(e,1)|0)&255;a[b+4980|0]=m;do{if(m<<24>>24==0){a[b+4981|0]=0}else{l=(nd(e,1)|0)&255;m=b+4981|0;a[m]=l;l=(nd(e,1)|0)&255;a[b+4982|0]=l;l=(nd(e,6)|0)&255;a[b+4983|0]=l;if((a[m]|0)==0){break}nk(b+4984|0,0,e)|0}}while(0);d=ok(b)|0;if((d|0)!=0){m=d;return m|0}a[b|0]=1;m=0;return m|0}return 0}function lk(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=i;i=i+6240|0;h=e|0;g=e+96|0;o=0;a:while(1){l=(o|0)==3;p=l?2:6;j=(o|0)==0;n=l^1;q=j?16:64;m=(o|0)>1;k=0;do{r=g+(k<<10)|0;u=l&(k|0)==1;do{if(((nd(b,1)|0)&255)<<24>>24==0){t=qd(b)|0;if((t|0)==-99999|(t|0)>(k|0)){b=8;t=29;break a}s=h+(o*24|0)+(k<<2)|0;c[s>>2]=16;if((t|0)!=0){if(!((t|0)==1|n)){t=12;break a}t=k-t|0;cv(r|0,g+(t<<10)|0,q)|0;t=c[h+(o*24|0)+(t<<2)>>2]|0;c[s>>2]=t;s=t&255;t=20;break}if(j){cv(r|0,30200,16)|0;t=21;break}if((k|0)<3&(u^1)){cv(r|0,30024,64)|0;s=16;t=20;break}else{cv(r|0,30088,64)|0;s=16;t=20;break}}else{if(m){s=rd(b)|0;if((s+7|0)>>>0>254>>>0){b=8;t=29;break a}s=s+8|0;c[h+(o*24|0)+(k<<2)>>2]=s;u=s;s=s&255}else{u=8;s=16}t=0;while(1){v=rd(b)|0;if((v+128|0)>>>0>255>>>0){b=8;t=29;break a}u=(u+256+v|0)%256|0;a[g+(k<<10)+t|0]=u;t=t+1|0;if((t|0)>=(q|0)){t=20;break}}}}while(0);do{if((t|0)==20){t=0;if((o|0)==1){s=Cj(3,0)|0;r=0;do{a[((d[s+(r<<1)+1|0]|0)<<3)+(d[s+(r<<1)|0]|0)+(f+96+(k<<6))|0]=a[g+(k<<10)+r|0]|0;r=r+1|0;}while((r|0)<64)}else if((o|0)==0){t=21;break}else if((o|0)==2){v=f+480+(k<<8)|0;rk(v,r,2);a[v]=s;break}else if((o|0)==3){v=f+2016+(k<<10)|0;rk(v,r,3);a[v]=s;break}else{break}}}while(0);if((t|0)==21){r=Cj(2,0)|0;s=0;do{a[((d[r+(s<<1)+1|0]|0)<<2)+(d[r+(s<<1)|0]|0)+(f+(k<<4))|0]=a[g+(k<<10)+s|0]|0;s=s+1|0;}while((s|0)<16)}k=k+1|0;}while((k|0)<(p|0));o=o+1|0;if((o|0)>=4){b=0;t=29;break}}if((t|0)==12){ec(2912,14480,873,18888);return 0}else if((t|0)==29){i=e;return b|0}return 0}function mk(b){b=b|0;var c=0,e=0;e=Cj(2,0)|0;c=0;do{a[b+(((d[e+(c<<1)+1|0]|0)<<2)+(d[e+(c<<1)|0]|0))|0]=a[30200+c|0]|0;c=c+1|0;}while((c|0)<16);c=Cj(2,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<2)+(d[c+(e<<1)|0]|0)+(b+16)|0]=a[30200+e|0]|0;e=e+1|0;}while((e|0)<16);c=Cj(2,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<2)+(d[c+(e<<1)|0]|0)+(b+32)|0]=a[30200+e|0]|0;e=e+1|0;}while((e|0)<16);c=Cj(2,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<2)+(d[c+(e<<1)|0]|0)+(b+48)|0]=a[30200+e|0]|0;e=e+1|0;}while((e|0)<16);c=Cj(2,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<2)+(d[c+(e<<1)|0]|0)+(b+64)|0]=a[30200+e|0]|0;e=e+1|0;}while((e|0)<16);c=Cj(2,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<2)+(d[c+(e<<1)|0]|0)+(b+80)|0]=a[30200+e|0]|0;e=e+1|0;}while((e|0)<16);c=Cj(3,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<3)+(d[c+(e<<1)|0]|0)+(b+96)|0]=a[30024+e|0]|0;e=e+1|0;}while((e|0)<64);c=Cj(3,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<3)+(d[c+(e<<1)|0]|0)+(b+288)|0]=a[30088+e|0]|0;e=e+1|0;}while((e|0)<64);c=Cj(3,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<3)+(d[c+(e<<1)|0]|0)+(b+160)|0]=a[30024+e|0]|0;e=e+1|0;}while((e|0)<64);c=Cj(3,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<3)+(d[c+(e<<1)|0]|0)+(b+352)|0]=a[30088+e|0]|0;e=e+1|0;}while((e|0)<64);c=Cj(3,0)|0;e=0;do{a[((d[c+(e<<1)+1|0]|0)<<3)+(d[c+(e<<1)|0]|0)+(b+224)|0]=a[30024+e|0]|0;e=e+1|0;}while((e|0)<64);e=Cj(3,0)|0;c=0;do{a[((d[e+(c<<1)+1|0]|0)<<3)+(d[e+(c<<1)|0]|0)+(b+416)|0]=a[30088+c|0]|0;c=c+1|0;}while((c|0)<64);rk(b+480|0,30024,2);rk(b+1248|0,30088,2);rk(b+736|0,30024,2);rk(b+1504|0,30088,2);rk(b+992|0,30024,2);rk(b+1760|0,30088,2);rk(b+2016|0,30024,3);rk(b+3040|0,30088,3);return}function nk(b,c,d){b=b|0;c=c|0;d=d|0;c=(nd(d,1)|0)&255;a[b|0]=c;c=(nd(d,1)|0)&255;a[b+1|0]=c;c=(nd(d,1)|0)&255;a[b+2|0]=c;c=(nd(d,1)|0)&255;a[b+3|0]=c;c=(nd(d,1)|0)&255;a[b+4|0]=c;c=(nd(d,1)|0)&255;a[b+5|0]=c;c=(nd(d,1)|0)&255;a[b+6|0]=c;c=(nd(d,1)|0)&255;a[b+7|0]=c;c=(nd(d,1)|0)&255;a[b+8|0]=c;return 0}function ok(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;m=c[b+476>>2]|0;p=c[30720+(m<<2)>>2]|0;c[b+5016>>2]=p;o=c[30648+(m<<2)>>2]|0;c[b+5020>>2]=o;d=b+5024|0;if((c[b+5012>>2]|0)==0){c[d>>2]=1;c[b+5028>>2]=1}else{c[d>>2]=p;c[b+5028>>2]=o}j=c[b+512>>2]|0;c[b+4996>>2]=j;c[b+5e3>>2]=(j*6|0)-48;k=c[b+516>>2]|0;c[b+5004>>2]=k;c[b+5008>>2]=(k*6|0)-48;d=c[b+612>>2]|0;c[b+5036>>2]=d;f=(c[b+616>>2]|0)+d|0;c[b+5040>>2]=f;h=1<<d;c[b+5044>>2]=h;q=1<<f;c[b+5048>>2]=q;i=c[b+484>>2]|0;l=i-1|0;r=(l+h|0)/(h|0)|0;c[b+5052>>2]=r;l=(l+q|0)/(q|0)|0;c[b+5056>>2]=l;g=c[b+488>>2]|0;e=g-1|0;s=(e+h|0)/(h|0)|0;c[b+5060>>2]=s;e=(e+q|0)/(q|0)|0;c[b+5064>>2]=e;r=ga(s,r)|0;c[b+5068>>2]=r;r=ga(e,l)|0;c[b+5072>>2]=r;r=ga(g,i)|0;c[b+5076>>2]=r;do{if((m|0)==0){n=6}else{if((a[b+480|0]|0)!=0){n=6;break}c[b+5080>>2]=(q|0)/(p|0)|0;c[b+5084>>2]=(q|0)/(o|0)|0}}while(0);if((n|0)==6){c[b+5080>>2]=0;c[b+5084>>2]=0}n=c[b+620>>2]|0;c[b+5100>>2]=n;m=(c[b+624>>2]|0)+n|0;c[b+5104>>2]=m;o=f-n|0;if((c[b+628>>2]|0)>(o|0)){s=8;return s|0}if((c[b+632>>2]|0)>(o|0)){s=8;return s|0}s=d-1|0;c[b+5108>>2]=s;s=f-s|0;c[b+5112>>2]=l<<s;c[b+5116>>2]=e<<s;s=c[b+4708>>2]|0;c[b+5120>>2]=s;c[b+5124>>2]=(c[b+4712>>2]|0)+s;s=l<<o;c[b+5088>>2]=s;r=e<<o;c[b+5092>>2]=r;s=ga(r,s)|0;c[b+5096>>2]=s;if((a[b+4990|0]|0)==0){a[b+5156|0]=j+248;a[b+5157|0]=k+248;c[b+5160>>2]=128;c[b+5164>>2]=128}else{a[b+5156|0]=0;a[b+5157|0]=0;c[b+5160>>2]=1<<j-1;c[b+5164>>2]=1<<k-1}if(((i|0)%(h|0)|0|0)!=0){s=8;return s|0}if(((g|0)%(h|0)|0|0)!=0|(n|0)>(d|0)){s=8;return s|0}if((m|0)>(((f|0)<5?f:5)|0)){s=8;return s|0}if((j-8|0)>>>0>8>>>0){s=8;return s|0}if((k-8|0)>>>0>8>>>0){s=8;return s|0}a[b|0]=1;s=0;return s|0}function pk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=i;if((d|0)==1){f=t}else if((d|0)==2){f=q}else{i=e;return}f=c[f>>2]|0;Zk(f,11960,(g=i,i=i+1|0,i=i+7&-8,c[g>>2]=0,g)|0);i=g;Zk(f,8928,(g=i,i=i+8|0,c[g>>2]=a[b+1|0]|0,g)|0);i=g;g=b+2|0;Zk(f,6288,(j=i,i=i+8|0,c[j>>2]=a[g]|0,j)|0);i=j;Zk(f,4592,(j=i,i=i+8|0,c[j>>2]=a[b+3|0]|0,j)|0);i=j;dl(b+4|0,a[g]|0,f);Zk(f,3224,(j=i,i=i+8|0,c[j>>2]=c[b+472>>2],j)|0);i=j;j=b+476|0;k=c[j>>2]|0;do{if((k|0)==0){h=1072}else{if((k|0)==1){h=384;break}if((k|0)==2){h=16872;break}h=(k|0)==3?16336:15976}}while(0);Zk(f,1920,(n=i,i=i+16|0,c[n>>2]=k,c[n+8>>2]=h,n)|0);i=n;if((c[j>>2]|0)==3){Zk(f,15568,(n=i,i=i+8|0,c[n>>2]=a[b+480|0]|0,n)|0);i=n}Zk(f,15216,(n=i,i=i+8|0,c[n>>2]=c[b+484>>2],n)|0);i=n;Zk(f,14880,(n=i,i=i+8|0,c[n>>2]=c[b+488>>2],n)|0);i=n;n=b+492|0;Zk(f,14632,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;if((a[n]|0)!=0){Zk(f,14360,(n=i,i=i+8|0,c[n>>2]=c[b+496>>2],n)|0);i=n;Zk(f,14088,(n=i,i=i+8|0,c[n>>2]=c[b+500>>2],n)|0);i=n;Zk(f,13800,(n=i,i=i+8|0,c[n>>2]=c[b+504>>2],n)|0);i=n;Zk(f,13600,(n=i,i=i+8|0,c[n>>2]=c[b+508>>2],n)|0);i=n}Zk(f,13408,(n=i,i=i+8|0,c[n>>2]=c[b+512>>2],n)|0);i=n;Zk(f,13200,(n=i,i=i+8|0,c[n>>2]=c[b+516>>2],n)|0);i=n;Zk(f,12976,(n=i,i=i+8|0,c[n>>2]=c[b+520>>2],n)|0);i=n;n=b+524|0;Zk(f,12704,(j=i,i=i+8|0,c[j>>2]=a[n]|0,j)|0);i=j;j=a[g]|0;if((a[n]|0)==0){h=(j<<24>>24)-1|0}else{h=0}if((h|0)<=((j<<24>>24)-1|0)){while(1){Zk(f,12408,(n=i,i=i+8|0,c[n>>2]=h,n)|0);i=n;Zk(f,12128,(n=i,i=i+8|0,c[n>>2]=c[b+528+(h<<2)>>2],n)|0);i=n;Zk(f,11752,(n=i,i=i+8|0,c[n>>2]=c[b+556+(h<<2)>>2],n)|0);i=n;Zk(f,11432,(n=i,i=i+8|0,c[n>>2]=c[b+584+(h<<2)>>2],n)|0);i=n;if((h|0)<((a[g]|0)-1|0)){h=h+1|0}else{break}}}g=b+612|0;Zk(f,11192,(j=i,i=i+8|0,c[j>>2]=c[g>>2],j)|0);i=j;j=b+616|0;Zk(f,10936,(h=i,i=i+8|0,c[h>>2]=c[j>>2],h)|0);i=h;h=b+620|0;Zk(f,10680,(k=i,i=i+8|0,c[k>>2]=c[h>>2],k)|0);i=k;k=b+624|0;Zk(f,10408,(n=i,i=i+8|0,c[n>>2]=c[k>>2],n)|0);i=n;Zk(f,10096,(n=i,i=i+8|0,c[n>>2]=c[b+628>>2],n)|0);i=n;Zk(f,9760,(n=i,i=i+8|0,c[n>>2]=c[b+632>>2],n)|0);i=n;n=b+636|0;Zk(f,9328,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;do{if((a[n]|0)!=0){n=b+637|0;Zk(f,9016,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;if((a[n]|0)==0){break}Zk(f,8656,(n=i,i=i+1|0,i=i+7&-8,c[n>>2]=0,n)|0);i=n}}while(0);Zk(f,8384,(n=i,i=i+8|0,c[n>>2]=a[b+4702|0]|0,n)|0);i=n;Zk(f,8152,(n=i,i=i+8|0,c[n>>2]=a[b+4703|0]|0,n)|0);i=n;n=b+4704|0;Zk(f,7912,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;if((a[n]|0)!=0){Zk(f,7640,(n=i,i=i+8|0,c[n>>2]=a[b+4705|0]|0,n)|0);i=n;Zk(f,7352,(n=i,i=i+8|0,c[n>>2]=a[b+4706|0]|0,n)|0);i=n;Zk(f,7040,(n=i,i=i+8|0,c[n>>2]=c[b+4708>>2],n)|0);i=n;Zk(f,6752,(n=i,i=i+8|0,c[n>>2]=c[b+4712>>2],n)|0);i=n;Zk(f,6456,(n=i,i=i+8|0,c[n>>2]=a[b+4716|0]|0,n)|0);i=n}l=b+4724|0;n=b+4720|0;Zk(f,6336,(m=i,i=i+8|0,c[m>>2]=((c[l>>2]|0)-(c[n>>2]|0)|0)/100|0,m)|0);i=m;if((c[l>>2]|0)!=(c[n>>2]|0)){m=0;do{Zk(f,6216,(o=i,i=i+8|0,c[o>>2]=m,o)|0);i=o;tj((c[n>>2]|0)+(m*100|0)|0,16,f);m=m+1|0;}while(m>>>0<(((c[l>>2]|0)-(c[n>>2]|0)|0)/100|0)>>>0)}o=b+4732|0;Zk(f,6e3,(n=i,i=i+8|0,c[n>>2]=a[o]|0,n)|0);i=n;do{if((a[o]|0)!=0){m=b+4736|0;Zk(f,5816,(o=i,i=i+8|0,c[o>>2]=c[m>>2],o)|0);i=o;if((c[m>>2]|0)>0){l=0}else{break}do{p=c[b+4740+(l<<2)>>2]|0;n=a[b+4868+l|0]|0;Zk(f,5640,(o=i,i=i+24|0,c[o>>2]=l,c[o+8>>2]=p,c[o+16>>2]=n,o)|0);i=o;l=l+1|0;}while((l|0)<(c[m>>2]|0))}}while(0);Zk(f,5504,(l=i,i=i+8|0,c[l>>2]=a[b+4900|0]|0,l)|0);i=l;Zk(f,5344,(l=i,i=i+8|0,c[l>>2]=a[b+4901|0]|0,l)|0);i=l;l=b+4902|0;Zk(f,5176,(p=i,i=i+8|0,c[p>>2]=a[l]|0,p)|0);i=p;Zk(f,4968,(p=i,i=i+8|0,c[p>>2]=a[b+4980|0]|0,p)|0);i=p;p=b+4981|0;Zk(f,4792,(o=i,i=i+8|0,c[o>>2]=a[p]|0,o)|0);i=o;Zk(f,4672,(o=i,i=i+8|0,c[o>>2]=a[b+4982|0]|0,o)|0);i=o;Zk(f,4440,(o=i,i=i+8|0,c[o>>2]=a[b+4983|0]|0,o)|0);i=o;Zk(f,4224,(o=i,i=i+8|0,c[o>>2]=c[b+5048>>2],o)|0);i=o;Zk(f,4072,(o=i,i=i+8|0,c[o>>2]=c[b+5044>>2],o)|0);i=o;Zk(f,3984,(o=i,i=i+8|0,c[o>>2]=1<<(c[j>>2]|0)+(c[g>>2]|0),o)|0);i=o;Zk(f,3920,(o=i,i=i+8|0,c[o>>2]=1<<c[h>>2],o)|0);i=o;Zk(f,3832,(o=i,i=i+8|0,c[o>>2]=1<<(c[k>>2]|0)+(c[h>>2]|0),o)|0);i=o;Zk(f,3712,(o=i,i=i+8|0,c[o>>2]=c[b+5056>>2],o)|0);i=o;Zk(f,3544,(o=i,i=i+8|0,c[o>>2]=c[b+5064>>2],o)|0);i=o;Zk(f,3392,(o=i,i=i+8|0,c[o>>2]=c[b+5016>>2],o)|0);i=o;Zk(f,3280,(o=i,i=i+8|0,c[o>>2]=c[b+5020>>2],o)|0);i=o;if((a[p]|0)!=0){qk(b+4984|0,d)}if((a[l]|0)==0){i=e;return}ml(b+4904|0,d);i=e;return}function qk(a,b){a=a|0;b=b|0;var e=0,f=0;e=i;if((b|0)==2){b=q}else if((b|0)==1){b=t}else{i=e;return}b=c[b>>2]|0;Zk(b,2728,(f=i,i=i+1|0,i=i+7&-8,c[f>>2]=0,f)|0);i=f;Zk(b,2632,(f=i,i=i+8|0,c[f>>2]=d[a|0]|0,f)|0);i=f;Zk(b,2536,(f=i,i=i+8|0,c[f>>2]=d[a+1|0]|0,f)|0);i=f;Zk(b,2376,(f=i,i=i+8|0,c[f>>2]=d[a+2|0]|0,f)|0);i=f;Zk(b,2224,(f=i,i=i+8|0,c[f>>2]=d[a+3|0]|0,f)|0);i=f;Zk(b,2072,(f=i,i=i+8|0,c[f>>2]=d[a+4|0]|0,f)|0);i=f;Zk(b,1984,(f=i,i=i+8|0,c[f>>2]=d[a+5|0]|0,f)|0);i=f;Zk(b,1808,(f=i,i=i+8|0,c[f>>2]=d[a+6|0]|0,f)|0);i=f;Zk(b,1576,(f=i,i=i+8|0,c[f>>2]=d[a+7|0]|0,f)|0);i=f;Zk(b,1456,(b=i,i=i+8|0,c[b>>2]=d[a+8|0]|0,b)|0);i=b;i=e;return}function rk(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if((e|0)==3){f=Cj(3,0)|0;g=0;do{i=f+(g<<1)|0;j=f+(g<<1)+1|0;h=c+g|0;e=0;do{a[b+(((d[i]|0)<<2)+(((d[j]|0)<<2)+e<<5))|0]=a[h]|0;a[b+(((d[i]|0)<<2|1)+(((d[j]|0)<<2)+e<<5))|0]=a[h]|0;a[b+(((d[i]|0)<<2|2)+(((d[j]|0)<<2)+e<<5))|0]=a[h]|0;a[b+(((d[i]|0)<<2|3)+(((d[j]|0)<<2)+e<<5))|0]=a[h]|0;e=e+1|0;}while((e|0)<4);g=g+1|0;}while((g|0)<64);return}else if((e|0)==2){e=Cj(3,0)|0;f=0;do{i=e+(f<<1)|0;j=e+(f<<1)+1|0;h=c+f|0;a[b+(((d[i]|0)<<1)+((d[j]|0)<<5))|0]=a[h]|0;a[b+(((d[i]|0)<<1|1)+((d[j]|0)<<5))|0]=a[h]|0;a[b+(((d[i]|0)<<1)+((d[j]|0)<<5|16))|0]=a[h]|0;a[b+(((d[i]|0)<<1|1)+((d[j]|0)<<5|16))|0]=a[h]|0;f=f+1|0;}while((f|0)<64);return}else if((e|0)==1){e=Cj(3,0)|0;f=0;do{a[b+(((d[e+(f<<1)+1|0]|0)<<3)+(d[e+(f<<1)|0]|0))|0]=a[c+f|0]|0;f=f+1|0;}while((f|0)<64);return}else if((e|0)==0){e=Cj(2,0)|0;f=0;do{a[b+(((d[e+(f<<1)+1|0]|0)<<2)+(d[e+(f<<1)|0]|0))|0]=a[c+f|0]|0;f=f+1|0;}while((f|0)<16);return}else{ec(3136,14480,810,18840)}}function sk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+8|0;d=a+4|0;f=c[d>>2]|0;i=c[e>>2]|0;h=f;if(!(((i-h|0)/100|0)>>>0<b>>>0)){do{if((f|0)==0){e=0}else{dv(f|0,0,100)|0;e=c[d>>2]|0}f=e+100|0;c[d>>2]=f;b=b-1|0;}while((b|0)!=0);return}f=a|0;j=c[f>>2]|0;h=(h-j|0)/100|0;a=h+b|0;if(a>>>0>42949672>>>0){Nr(0)}i=(i-j|0)/100|0;if(i>>>0<21474836>>>0){i=i<<1;a=i>>>0<a>>>0?a:i;if((a|0)==0){i=0;a=0}else{g=9}}else{a=42949672;g=9}if((g|0)==9){i=Nu(a*100|0)|0}g=i+(h*100|0)|0;do{if((g|0)==0){g=0}else{dv(g|0,0,100)|0}g=g+100|0;b=b-1|0;}while((b|0)!=0);j=c[f>>2]|0;k=(c[d>>2]|0)-j|0;h=i+((((k|0)/-100|0)+h|0)*100|0)|0;b=j;cv(h|0,b|0,k)|0;c[f>>2]=h;c[d>>2]=g;c[e>>2]=i+(a*100|0);if((j|0)==0){return}Pu(b);return}function tk(a){a=a|0;var b=0;b;return}function uk(a){a=a|0;var b=0;b;return}function vk(a){a=a|0;var b=0;b;return}function wk(a){a=a|0;var b=0;b;return}function xk(a){a=a|0;var b=0;b;return}function yk(a){a=a|0;var b=0;b;return}function zk(a,b){a=a|0;b=b|0;Ob(a|0)|0;return}function Ak(a,b){a=a|0;b=b|0;Za(a|0,b|0)|0;return}function Bk(a){a=a|0;var b=0,d=0;c[a>>2]=0;d;b;return}function Ck(a){a=a|0;var b=0,c=0;c;b;return}function Dk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a|0;if((c[d>>2]|0)>=(b|0)){return}f=a+4|0;g;if((c[d>>2]|0)<(b|0)){a=a+28|0;do{Za(a|0,f|0)|0;}while((c[d>>2]|0)<(b|0))}e;return}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0;e;e=a|0;if((c[e>>2]|0)>=(b|0)){d;return}c[e>>2]=b;Ob(a+28|0)|0;d;return}function Fk(a,b){a=a|0;b=b|0;var d=0,e=0;e;e=a|0;c[e>>2]=(c[e>>2]|0)+b;Ob(a+28|0)|0;d;return}function Gk(a){a=a|0;return c[a>>2]|0}function Hk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=(d|0)>32;d=e?32:d;e=e?1022:0;g=b+156|0;c[g>>2]=0;h;j;i;c[b+160>>2]=0;h=b|0;a[h]=0;f;if((d|0)>0){f=0}else{j=e;return j|0}while(1){if((zc(b+28+(f<<2)|0,0,106,h|0)|0)!=0){e=10;b=4;break}c[g>>2]=(c[g>>2]|0)+1;f=f+1|0;if((f|0)>=(d|0)){b=4;break}}if((b|0)==4){return e|0}return 0}function Ik(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=b+420|0;h;if((a[b]|0)!=0){d;return 0}m=b+24|0;i=b+444|0;k=b+8|0;l=b+20|0;o=b+160|0;do{n=c[m>>2]|0;if((n|0)==0){Za(i|0,g|0)|0}else{j=c[k>>2]|0;p=c[l>>2]|0;h=c[(c[j+(p>>>10<<2)>>2]|0)+((p&1023)<<2)>>2]|0;c[m>>2]=n-1;n=p+1|0;c[l>>2]=n;if(n>>>0>2047>>>0){Pu(c[j>>2]|0);c[k>>2]=(c[k>>2]|0)+4;c[l>>2]=(c[l>>2]|0)-1024}c[o>>2]=(c[o>>2]|0)+1;e;Dc[c[(c[h>>2]|0)+8>>2]&511](h);f;c[o>>2]=(c[o>>2]|0)-1}}while((a[b]|0)==0);d;return 0}function Jk(b){b=b|0;var d=0,e=0,f=0,g=0;g;a[b|0]=1;f;Ob(b+444|0)|0;f=b+156|0;if((c[f>>2]|0)>0){g=0}else{d;e;return}do{vc(c[b+28+(g<<2)>>2]|0,0)|0;g=g+1|0;}while((g|0)<(c[f>>2]|0));d;e;return}function Kk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f;if((a[b|0]|0)!=0){e;return}i=b+12|0;h=c[i>>2]|0;j=b+8|0;k=c[j>>2]|0;if((h|0)==(k|0)){n=0}else{n=(h-k<<8)-1|0}m=b+20|0;l=c[m>>2]|0;f=b+24|0;g=c[f>>2]|0;if((n-l|0)==(g|0)){Lk(b+4|0);g=c[f>>2]|0;l=c[m>>2]|0;k=c[j>>2]|0;h=c[i>>2]|0}i=g+l|0;do{if((h|0)!=(k|0)){h=(c[k+(i>>>10<<2)>>2]|0)+((i&1023)<<2)|0;if((h|0)==0){break}c[h>>2]=d}}while(0);c[f>>2]=g+1;gb(b+444|0)|0;e;return}function Lk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=i;i=i+48|0;m=b|0;l=b+8|0;h=b+16|0;j=b+40|0;e=a+16|0;d=c[e>>2]|0;if(d>>>0>1023>>>0){c[e>>2]=d-1024;g=a+4|0;j=c[g>>2]|0;e=c[j>>2]|0;m=j+4|0;c[g>>2]=m;d=a+8|0;h=c[d>>2]|0;f=a+12|0;do{if((h|0)==(c[f>>2]|0)){a=a|0;n=c[a>>2]|0;if(m>>>0>n>>>0){q=m;f=((q-n>>2)+1|0)/-2|0;h=h-q|0;fv(j+(f+1<<2)|0,m|0,h|0)|0;h=j+((h>>2)+1+f<<2)|0;c[d>>2]=h;c[g>>2]=(c[g>>2]|0)+(f<<2);f=13;break}j=h-n>>1;j=(j|0)==0?1:j;l=Nu(j<<2)|0;k=l+(j>>>2<<2)|0;j=l+(j<<2)|0;if((m|0)==(h|0)){h=k}else{n=k;do{if((n|0)==0){n=0}else{c[n>>2]=c[m>>2]}n=n+4|0;m=m+4|0;}while((m|0)!=(h|0));h=n;n=c[a>>2]|0}c[a>>2]=l;c[g>>2]=k;c[d>>2]=h;c[f>>2]=j;if((n|0)==0){f=12;break}Pu(n);h=c[d>>2]|0;f=12}else{f=12}}while(0);if((f|0)==12){if((h|0)==0){e=0}else{f=13}}if((f|0)==13){c[h>>2]=e;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}p=a|0;d=a+8|0;n=c[d>>2]|0;f=a+4|0;k=n-(c[f>>2]|0)>>2;e=a+12|0;o=c[e>>2]|0;g=a|0;q=o-(c[g>>2]|0)|0;if(!(k>>>0<q>>2>>>0)){l=q>>1;q=(l|0)==0?1:l;l=h+12|0;c[h+16>>2]=a+12;p=Nu(q<<2)|0;m=h|0;c[m>>2]=p;o=p+(k<<2)|0;a=h+8|0;c[a>>2]=o;k=h+4|0;c[k>>2]=o;c[l>>2]=p+(q<<2);q=Nu(4096)|0;c[j>>2]=q;Ok(h,j);j=c[d>>2]|0;while(1){if((j|0)==(c[f>>2]|0)){break}q=j-4|0;Pk(h,q);j=q}h=c[g>>2]|0;c[g>>2]=c[m>>2];c[m>>2]=h;c[f>>2]=c[k>>2];c[k>>2]=j;f=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=f;q=c[e>>2]|0;c[e>>2]=c[l>>2];c[l>>2]=q;if((f|0)!=(j|0)){c[a>>2]=f+(~((f-4+(-j|0)|0)>>>2)<<2)}if((h|0)==0){i=b;return}Pu(h);i=b;return}a=Nu(4096)|0;if((o|0)!=(n|0)){c[m>>2]=a;Mk(p,m);i=b;return}c[l>>2]=a;Nk(p,l);h=c[f>>2]|0;a=c[h>>2]|0;n=h+4|0;c[f>>2]=n;l=c[d>>2]|0;do{if((l|0)==(c[e>>2]|0)){m=c[g>>2]|0;if(n>>>0>m>>>0){p=n;q=((p-m>>2)+1|0)/-2|0;l=l-p|0;fv(h+(q+1<<2)|0,n|0,l|0)|0;l=h+((l>>2)+1+q<<2)|0;c[d>>2]=l;c[f>>2]=(c[f>>2]|0)+(q<<2);f=29;break}h=l-m>>1;h=(h|0)==0?1:h;k=Nu(h<<2)|0;j=k+(h>>>2<<2)|0;h=k+(h<<2)|0;if((n|0)==(l|0)){l=j}else{m=j;do{if((m|0)==0){m=0}else{c[m>>2]=c[n>>2]}m=m+4|0;n=n+4|0;}while((n|0)!=(l|0));l=m;m=c[g>>2]|0}c[g>>2]=k;c[f>>2]=j;c[d>>2]=l;c[e>>2]=h;if((m|0)==0){f=28;break}Pu(m);l=c[d>>2]|0;f=28}else{f=28}}while(0);if((f|0)==28){if((l|0)==0){e=0}else{f=29}}if((f|0)==29){c[l>>2]=a;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}function Mk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function Nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function Ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function Pk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function Qk(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=b+18596|0;e=c[f>>2]|0;q=e+5932|0;p=b+18600|0;i=c[p>>2]|0;m=-1<<c[e+10092>>2];l=m&g;m=m&h;n=b+18532|0;r=b+18536|0;if((l|0)==(c[n>>2]|0)){if((m|0)!=(c[r>>2]|0)){o=3}}else{o=3}if((o|0)==3){c[b+18540>>2]=c[b+18528>>2];c[n>>2]=l;c[r>>2]=m}n=e+5804|0;if((l|0)==0){r=((1<<c[n>>2])-1&m|0)==0}else{r=0}u=c[i+800>>2]|0;t=c[e+5820>>2]|0;s=c[e+5812>>2]|0;if((ga(s,(u|0)%(t|0)|0)|0)==(l|0)){s=(ga((u|0)/(t|0)|0,s)|0)==(m|0)}else{s=0}do{if((a[e+5966|0]|0)==0){q=0}else{t=c[n>>2]|0;u=(1<<t)-1|0;if((u&l|0)!=0){q=0;break}if((u&m|0)!=0){q=0;break}q=pj(q,l>>t,m>>t)|0}}while(0);do{if(s|q){o=15}else{if(r){if((a[e+5965|0]|0)!=0){o=15;break}}p=b+18540|0}}while(0);if((o|0)==15){p=(c[p>>2]|0)+792|0}o=c[p>>2]|0;q=l-1|0;do{if(bi(c[f>>2]|0,l,m,q,m)|0){u=c[e+5864>>2]|0;t=(ga(m>>u,c[e+5852>>2]|0)|0)+(q>>u)|0;if((c[(c[e+10320>>2]|0)+(t<<2)>>2]>>((c[n>>2]|0)-u<<1)|0)!=(c[b+4>>2]|0)){j=o;break}p=c[f>>2]|0;s=c[p+10368>>2]|0;q=q>>s;s=m>>s;if(!((q|0)>-1)){ec(6096,4288,118,17312)}r=c[p+10372>>2]|0;if((q|0)>=(r|0)){ec(6096,4288,118,17312)}if(!((s|0)>-1)){ec(3e3,4288,119,17312)}if((s|0)<(c[p+10376>>2]|0)){j=(ga(r,s)|0)+q|0;j=a[(c[p+10360>>2]|0)+(j*3|0)+2|0]|0;break}else{ec(3e3,4288,119,17312)}}else{j=o}}while(0);p=m-1|0;do{if(bi(c[f>>2]|0,l,m,l,p)|0){u=c[e+5864>>2]|0;t=(ga(p>>u,c[e+5852>>2]|0)|0)+(l>>u)|0;if((c[(c[e+10320>>2]|0)+(t<<2)>>2]>>((c[n>>2]|0)-u<<1)|0)!=(c[b+4>>2]|0)){k=o;break}m=c[f>>2]|0;o=c[m+10368>>2]|0;l=l>>o;o=p>>o;if(!((l|0)>-1)){ec(6096,4288,118,17312)}n=c[m+10372>>2]|0;if((l|0)>=(n|0)){ec(6096,4288,118,17312)}if(!((o|0)>-1)){ec(3e3,4288,119,17312)}if((o|0)<(c[m+10376>>2]|0)){k=(ga(n,o)|0)+l|0;k=a[(c[m+10360>>2]|0)+(k*3|0)+2|0]|0;break}else{ec(3e3,4288,119,17312)}}else{k=o}}while(0);l=c[e+5764>>2]|0;m=((c[b+18512>>2]|0)+52+(j+1+k>>1)+(l<<1)|0)%(l+52|0)|0;j=m-l|0;c[b+18544>>2]=m;m=j+(c[e+5952>>2]|0)+(c[i+744>>2]|0)+(c[b+18520>>2]|0)|0;l=e+5772|0;k=c[l>>2]|0;n=-k|0;if((m|0)<(n|0)){m=n}else{m=(m|0)>57?57:m}i=(c[e+5956>>2]|0)+j+(c[i+748>>2]|0)+(c[b+18524>>2]|0)|0;if((i|0)>=(n|0)){n=(i|0)>57?57:i}do{if((c[e+5776>>2]|0)==1){do{if((m|0)>=30){if((m|0)>42){m=m-6|0;break}else{m=c[8+(m-30<<2)>>2]|0;break}}}while(0);if((n|0)<30){break}if((n|0)>42){n=n-6|0;break}else{n=c[8+(n-30<<2)>>2]|0;break}}}while(0);c[b+18548>>2]=k+m;c[b+18552>>2]=(c[l>>2]|0)+n;e=c[f>>2]|0;i=c[e+10368>>2]|0;g=g>>i;f=h>>i;if(!((g|0)>-1)){ec(6096,4288,118,17312)}h=e+10372|0;k=c[h>>2]|0;if((g|0)>=(k|0)){ec(6096,4288,118,17312)}if(!((f|0)>-1)){ec(3e3,4288,119,17312)}if((f|0)>=(c[e+10376>>2]|0)){ec(3e3,4288,119,17312)}k=(ga(k,f)|0)+g|0;e=e+10360|0;k=(c[e>>2]|0)+(k*3|0)|0;k=(d[k]|d[k+1|0]<<8)<<16>>16&255&7;k=1<<(k>>>0<3>>>0?3:k)-i;i=k+f|0;if((k|0)<=0){u=b+18528|0;c[u>>2]=j;return}k=k+g|0;l=j&255;do{m=g;do{u=(ga(c[h>>2]|0,f)|0)+m|0;a[(c[e>>2]|0)+(u*3|0)+2|0]=l;m=m+1|0;}while((m|0)<(k|0));f=f+1|0;}while((f|0)<(i|0));u=b+18528|0;c[u>>2]=j;return}function Rk(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;e=c[a+18596>>2]|0;if((c[((h|0)==0?e+5760|0:e+5768|0)>>2]|0)>8){Sk(a,b,d,0,0,g,h,i,j,k);return}else{Tk(a,b,d,0,0,g,h,i,j,k);return}}function Sk(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;j=i;i=i+8192|0;z=j|0;v=j+4096|0;t=e+18596|0;w=c[t>>2]|0;if((l|0)==0){p=e+18544|0}else if((l|0)==1){p=e+18548|0}else if((l|0)==2){p=e+18552|0}else{ec(11600,14216,367,18584)}A=c[p>>2]|0;p=e+2112|0;s=c[p>>2]|0;u=(l|0)==0;h=c[(u?w+40|0:w+44|0)>>2]|0;q=(c[w+4+(l<<2)>>2]|0)+((ga(h,g)|0)+f<<1)|0;r=c[(u?w+5760|0:w+5768|0)>>2]|0;y=c[w+10368>>2]|0;f=f>>y;y=g>>y;if(!((f|0)>-1)){ec(6096,4288,118,17312)}g=c[w+10372>>2]|0;if((f|0)>=(g|0)){ec(6096,4288,118,17312)}if(!((y|0)>-1)){ec(3e3,4288,119,17312)}if((y|0)>=(c[w+10376>>2]|0)){ec(3e3,4288,119,17312)}y=(ga(g,y)|0)+f|0;y=(c[w+10360>>2]|0)+(y*3|0)|0;y=((d[y]|d[y+1|0]<<8)<<16>>16&768)==0;f=(k|0)==4;g=(a[w+5748|0]|0)!=0&f&y;do{if((a[e+32|0]|0)==0){z=(k|0)>1;if(z){B=k;C=0;do{C=C+1|0;B=B>>1;}while((B|0)>1)}else{C=0}B=C+r|0;E=B-5|0;do{if((a[w+1400|0]|0)==0){x=B-9|0;n=1<<B-10;B=c[31e3+(((A|0)%6|0)<<2)>>2]<<((A|0)/6|0);A=e+14404+(l<<1)|0;if((b[A>>1]|0)>0){C=0}else{break}do{D=(ga(b[e+2116+(l<<11)+(C<<1)>>1]|0,B)|0)+n>>x;if((D|0)<-32768){D=-32768}else{D=(D|0)>32767?32767:D&65535}b[s+(b[e+8260+(l<<11)+(C<<1)>>1]<<1)>>1]=D;C=C+1|0;}while((C|0)<(b[A>>1]|0))}else{D=1<<B-6;do{if(n){n=l}else{if((k|0)<32){n=l+3|0;break}else{n=l+1|0;break}}}while(0);if((k|0)==4){x=w+5993+(n<<4)|0}else if((k|0)==16){x=w+6473+(n<<8)|0}else if((k|0)==8){x=w+6089+(n<<6)|0}else if((k|0)==32){x=w+8009+(n<<10)|0}else{ec(11600,14216,492,18584)}B=e+14404+(l<<1)|0;if((b[B>>1]|0)<=0){break}n=c[31e3+(((A|0)%6|0)<<2)>>2]|0;A=(A|0)/6|0;C=D;D=(D|0)<0|0?-1:0;F=0;do{G=b[e+8260+(l<<11)+(F<<1)>>1]|0;H=(ga(n,d[x+G|0]|0)|0)<<A;I=b[e+2116+(l<<11)+(F<<1)>>1]|0;I=rv(I<<16>>16,I<<16>>16<0|0?-1:0,H,(H|0)<0|0?-1:0)|0;I=hv(I,K,C,D)|0;I=lv(I|0,K|0,E|0)|0;H=K;J=-1;if((H|0)<(J|0)|(H|0)==(J|0)&I>>>0<-32768>>>0){H=-32768}else{J=0;H=(H|0)>(J|0)|(H|0)==(J|0)&I>>>0>32767>>>0?32767:I&65535}b[s+(G<<1)>>1]=H;F=F+1|0;}while((F|0)<(b[B>>1]|0))}}while(0);x=(k|0)>0;if(!m){g=f&u&y;if((o|0)!=0){ec(8472,14216,591,18584)}if((a[w+10071|0]|0)!=0){Vk(e,s,0,k,g&1,q,h,r,l);break}o=c[e+18592>>2]|0;if(g){Wc[c[o+412>>2]&63](q,s,h,r);break}if((k|0)==16){Wc[c[o+424>>2]&63](q,s,h,r);break}else if((k|0)==8){Wc[c[o+420>>2]&63](q,s,h,r);break}else if((k|0)==4){Wc[c[o+416>>2]&63](q,s,h,r);break}else{Wc[c[o+428>>2]&63](q,s,h,r);break}}if(z){w=k;m=0;while(1){w=w>>1;if((w|0)>1){m=m+1|0}else{break}}m=m+6|0}else{m=5}w=20-r|0;w=(w|0)>0?w:0;if(g){Ec[c[(c[e+18592>>2]|0)+432>>2]&127](s,4)}v=u?e+14412|0:v|0;do{if((o|0)==0){Cc[c[(c[e+18592>>2]|0)+472>>2]&31](v,s,k,m,w)}else{f=c[e+18592>>2]|0;if((o|0)==2){Cc[c[f+464>>2]&31](v,s,k,m,w);break}else{Cc[c[f+468>>2]&31](v,s,k,m,w);break}}}while(0);do{if(!u){o=e+28|0;if((c[o>>2]|0)==0){break}t=c[t>>2]|0;u=c[t+5768>>2]|0;t=c[t+5760>>2]|0;if(x){m=0}else{break}do{w=ga(m,k)|0;f=0;do{J=f+w|0;I=(ga(c[e+14412+(J<<2)>>2]<<u>>t,c[o>>2]|0)|0)>>3;J=v+(J<<2)|0;c[J>>2]=I+(c[J>>2]|0);f=f+1|0;}while((f|0)<(k|0));m=m+1|0;}while((m|0)<(k|0))}}while(0);Cc[c[(c[e+18592>>2]|0)+460>>2]&31](q,h,v,k,r);if(!g){break}dv(s|0,0,32)|0}else{v=u?e+14412|0:z|0;w=e+14404+(l<<1)|0;if((b[w>>1]|0)>0){m=0;do{b[s+(b[e+8260+(l<<11)+(m<<1)>>1]<<1)>>1]=b[e+2116+(l<<11)+(m<<1)>>1]|0;m=m+1|0;}while((m|0)<(b[w>>1]|0))}if(g){Ec[c[(c[e+18592>>2]|0)+432>>2]&127](s,4)}do{if((o|0)==0){Tc[c[(c[e+18592>>2]|0)+364>>2]&63](v,s,k)}else{m=c[e+18592>>2]|0;if((o|0)==2){Tc[c[m+368>>2]&63](v,s,k);break}else{Tc[c[m+372>>2]&63](v,s,k);break}}}while(0);do{if(!u){o=e+28|0;if((c[o>>2]|0)==0){break}w=c[t>>2]|0;f=c[w+5768>>2]|0;w=c[w+5760>>2]|0;if((k|0)>0){m=0}else{break}do{u=ga(m,k)|0;t=0;do{J=t+u|0;I=(ga(c[e+14412+(J<<2)>>2]<<f>>w,c[o>>2]|0)|0)>>3;J=v+(J<<2)|0;c[J>>2]=I+(c[J>>2]|0);t=t+1|0;}while((t|0)<(k|0));m=m+1|0;}while((m|0)<(k|0))}}while(0);Cc[c[(c[e+18592>>2]|0)+460>>2]&31](q,h,v,k,r);if(!g){break}dv(s|0,0,32)|0}}while(0);k=e+14404+(l<<1)|0;if((b[k>>1]|0)<=0){i=j;return}p=c[p>>2]|0;h=0;do{b[p+(b[e+8260+(l<<11)+(h<<1)>>1]<<1)>>1]=0;h=h+1|0;}while((h|0)<(b[k>>1]|0));i=j;return}function Tk(e,f,g,h,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;j=i;i=i+8192|0;y=j|0;u=j+4096|0;s=e+18596|0;v=c[s>>2]|0;if((l|0)==1){p=e+18548|0}else if((l|0)==0){p=e+18544|0}else if((l|0)==2){p=e+18552|0}else{ec(11600,14216,367,18584)}z=c[p>>2]|0;p=e+2112|0;r=c[p>>2]|0;t=(l|0)==0;h=c[(t?v+40|0:v+44|0)>>2]|0;q=(c[v+4+(l<<2)>>2]|0)+((ga(h,g)|0)+f)|0;x=c[v+10368>>2]|0;f=f>>x;x=g>>x;if(!((f|0)>-1)){ec(6096,4288,118,17312)}g=c[v+10372>>2]|0;if((f|0)>=(g|0)){ec(6096,4288,118,17312)}if(!((x|0)>-1)){ec(3e3,4288,119,17312)}if((x|0)>=(c[v+10376>>2]|0)){ec(3e3,4288,119,17312)}x=(ga(g,x)|0)+f|0;x=(c[v+10360>>2]|0)+(x*3|0)|0;x=((d[x]|d[x+1|0]<<8)<<16>>16&768)==0;f=(k|0)==4;g=(a[v+5748|0]|0)!=0&f&x;do{if((a[e+32|0]|0)==0){A=c[(t?v+5760|0:v+5768|0)>>2]|0;y=(k|0)>1;if(y){C=k;B=0;do{B=B+1|0;C=C>>1;}while((C|0)>1)}else{B=0}A=B+A|0;F=A-5|0;do{if((a[v+1400|0]|0)==0){w=A-9|0;n=1<<A-10;B=c[31e3+(((z|0)%6|0)<<2)>>2]<<((z|0)/6|0);A=e+14404+(l<<1)|0;if((b[A>>1]|0)>0){z=0}else{break}do{C=(ga(b[e+2116+(l<<11)+(z<<1)>>1]|0,B)|0)+n>>w;if((C|0)<-32768){C=-32768}else{C=(C|0)>32767?32767:C&65535}b[r+(b[e+8260+(l<<11)+(z<<1)>>1]<<1)>>1]=C;z=z+1|0;}while((z|0)<(b[A>>1]|0))}else{C=1<<A-6;do{if(n){n=l}else{if((k|0)<32){n=l+3|0;break}else{n=l+1|0;break}}}while(0);if((k|0)==16){w=v+6473+(n<<8)|0}else if((k|0)==32){w=v+8009+(n<<10)|0}else if((k|0)==4){w=v+5993+(n<<4)|0}else if((k|0)==8){w=v+6089+(n<<6)|0}else{ec(11600,14216,492,18584)}A=e+14404+(l<<1)|0;if((b[A>>1]|0)<=0){break}n=c[31e3+(((z|0)%6|0)<<2)>>2]|0;z=(z|0)/6|0;B=C;C=(C|0)<0|0?-1:0;D=0;do{E=b[e+8260+(l<<11)+(D<<1)>>1]|0;G=(ga(n,d[w+E|0]|0)|0)<<z;H=b[e+2116+(l<<11)+(D<<1)>>1]|0;G=rv(H<<16>>16,H<<16>>16<0|0?-1:0,G,(G|0)<0|0?-1:0)|0;G=hv(G,K,B,C)|0;G=lv(G|0,K|0,F|0)|0;H=K;I=-1;if((H|0)<(I|0)|(H|0)==(I|0)&G>>>0<-32768>>>0){G=-32768}else{I=0;G=(H|0)>(I|0)|(H|0)==(I|0)&G>>>0>32767>>>0?32767:G&65535}b[r+(E<<1)>>1]=G;D=D+1|0;}while((D|0)<(b[A>>1]|0))}}while(0);w=(k|0)>0;if(!m){g=f&t&x;if((o|0)!=0){ec(8472,14216,591,18584)}if((a[v+10071|0]|0)!=0){Uk(e,r,0,k,g&1,q,h,8,l);break}o=c[e+18592>>2]|0;if(g){Tc[c[o+388>>2]&63](q,r,h);break}if((k|0)==4){Tc[c[o+392>>2]&63](q,r,h);break}else if((k|0)==16){Tc[c[o+400>>2]&63](q,r,h);break}else if((k|0)==8){Tc[c[o+396>>2]&63](q,r,h);break}else{Tc[c[o+404>>2]&63](q,r,h);break}}if(y){v=k;m=0;while(1){v=v>>1;if((v|0)>1){m=m+1|0}else{break}}m=m+6|0}else{m=5}if(g){Ec[c[(c[e+18592>>2]|0)+432>>2]&127](r,4)}u=t?e+14412|0:u|0;do{if((o|0)==0){Cc[c[(c[e+18592>>2]|0)+472>>2]&31](u,r,k,m,12)}else{v=c[e+18592>>2]|0;if((o|0)==2){Cc[c[v+464>>2]&31](u,r,k,m,12);break}else{Cc[c[v+468>>2]&31](u,r,k,m,12);break}}}while(0);do{if(!t){o=e+28|0;if((c[o>>2]|0)==0){break}t=c[s>>2]|0;s=c[t+5768>>2]|0;t=c[t+5760>>2]|0;if(w){m=0}else{break}do{v=ga(m,k)|0;f=0;do{I=f+v|0;H=(ga(c[e+14412+(I<<2)>>2]<<s>>t,c[o>>2]|0)|0)>>3;I=u+(I<<2)|0;c[I>>2]=H+(c[I>>2]|0);f=f+1|0;}while((f|0)<(k|0));m=m+1|0;}while((m|0)<(k|0))}}while(0);Cc[c[(c[e+18592>>2]|0)+456>>2]&31](q,h,u,k,8);if(!g){break}dv(r|0,0,32)|0}else{u=t?e+14412|0:y|0;v=e+14404+(l<<1)|0;if((b[v>>1]|0)>0){m=0;do{b[r+(b[e+8260+(l<<11)+(m<<1)>>1]<<1)>>1]=b[e+2116+(l<<11)+(m<<1)>>1]|0;m=m+1|0;}while((m|0)<(b[v>>1]|0))}if(g){Ec[c[(c[e+18592>>2]|0)+432>>2]&127](r,4)}do{if((o|0)==0){Tc[c[(c[e+18592>>2]|0)+364>>2]&63](u,r,k)}else{m=c[e+18592>>2]|0;if((o|0)==2){Tc[c[m+368>>2]&63](u,r,k);break}else{Tc[c[m+372>>2]&63](u,r,k);break}}}while(0);do{if(!t){o=e+28|0;if((c[o>>2]|0)==0){break}v=c[s>>2]|0;f=c[v+5768>>2]|0;v=c[v+5760>>2]|0;if((k|0)>0){m=0}else{break}do{t=ga(m,k)|0;s=0;do{I=s+t|0;H=(ga(c[e+14412+(I<<2)>>2]<<f>>v,c[o>>2]|0)|0)>>3;I=u+(I<<2)|0;c[I>>2]=H+(c[I>>2]|0);s=s+1|0;}while((s|0)<(k|0));m=m+1|0;}while((m|0)<(k|0))}}while(0);Cc[c[(c[e+18592>>2]|0)+456>>2]&31](q,h,u,k,8);if(!g){break}dv(r|0,0,32)|0}}while(0);k=e+14404+(l<<1)|0;if((b[k>>1]|0)<=0){i=j;return}p=c[p>>2]|0;h=0;do{b[p+(b[e+8260+(l<<11)+(h<<1)>>1]<<1)>>1]=0;h=h+1|0;}while((h|0)<(b[k>>1]|0));i=j;return}function Uk(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=i;i=i+4096|0;l=c[a+18592>>2]|0;n=(k|0)==0;k=n?a+14412|0:d|0;m=20-j|0;do{if((f|0)==1){Wc[c[l+436>>2]&63](k,b,m,15)}else{if((e|0)==4){Wc[c[l+440>>2]&63](k,b,m,15);break}else if((e|0)==8){Wc[c[l+444>>2]&63](k,b,m,15);break}else if((e|0)==16){Wc[c[l+448>>2]&63](k,b,m,15);break}else{Wc[c[l+452>>2]&63](k,b,m,15);break}}}while(0);do{if(!n){o=a+28|0;if((c[o>>2]|0)==0){break}n=c[a+18596>>2]|0;p=c[n+5768>>2]|0;n=c[n+5760>>2]|0;if((e|0)>0){f=0}else{break}do{m=ga(f,e)|0;b=0;do{q=b+m|0;r=(ga(c[a+14412+(q<<2)>>2]<<p>>n,c[o>>2]|0)|0)>>3;q=k+(q<<2)|0;c[q>>2]=r+(c[q>>2]|0);b=b+1|0;}while((b|0)<(e|0));f=f+1|0;}while((f|0)<(e|0))}}while(0);Cc[c[l+456>>2]&31](g,h,k,e,j);i=d;return}function Vk(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=i;i=i+4096|0;l=c[a+18592>>2]|0;n=(k|0)==0;k=n?a+14412|0:d|0;m=20-j|0;do{if((f|0)==1){Wc[c[l+436>>2]&63](k,b,m,15)}else{if((e|0)==8){Wc[c[l+444>>2]&63](k,b,m,15);break}else if((e|0)==16){Wc[c[l+448>>2]&63](k,b,m,15);break}else if((e|0)==4){Wc[c[l+440>>2]&63](k,b,m,15);break}else{Wc[c[l+452>>2]&63](k,b,m,15);break}}}while(0);do{if(!n){o=a+28|0;if((c[o>>2]|0)==0){break}n=c[a+18596>>2]|0;p=c[n+5768>>2]|0;n=c[n+5760>>2]|0;if((e|0)>0){f=0}else{break}do{m=ga(f,e)|0;b=0;do{q=b+m|0;r=(ga(c[a+14412+(q<<2)>>2]<<p>>n,c[o>>2]|0)|0)>>3;q=k+(q<<2)|0;c[q>>2]=r+(c[q>>2]|0);b=b+1|0;}while((b|0)<(e|0));f=f+1|0;}while((f|0)<(e|0))}}while(0);Cc[c[l+460>>2]&31](g,h,k,e,j);i=d;return}function Wk(a){a=a|0;c[12934]=a;return}function Xk(a){a=a|0;return}function Yk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f|0;if((c[12934]|0)<-9999){i=f;return}if((a[51720+b|0]|0)!=0){i=f;return}h=(a[d]|0)==42;b=c[t>>2]|0;if(!h){Oa(1200,5,1,b|0)|0}j=g;c[j>>2]=e;c[j+4>>2]=0;Qb(b|0,d+(h&1)|0,g|0)|0;Ma(b|0)|0;i=f;return}function Zk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;h=f|0;j=(a[d]|0)==42;g=c[t>>2]|0;if(!j){Oa(14208,6,1,g|0)|0}k=h;c[k>>2]=e;c[k+4>>2]=0;Qb(b|0,d+(j&1)|0,h|0)|0;Ma(g|0)|0;i=f;return}function _k(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=nd(f,4)|0;c[d>>2]=n;if((n|0)>15){n=8;return n|0}od(f,2);n=nd(f,6)|0;c[d+4>>2]=n+1;if((n|0)>62){n=8;return n|0}n=nd(f,3)|0;h=d+8|0;c[h>>2]=n+1;if((n|0)>6){n=8;return n|0}n=nd(f,1)|0;c[d+12>>2]=n;od(f,16);$k(d+16|0,f,c[h>>2]|0);n=nd(f,1)|0;i=d+484|0;c[i>>2]=n;g=c[h>>2]|0;if((n|0)==0){g=g-1|0;j=7}else{if((g|0)>0){g=0;j=7}}do{if((j|0)==7){l=g;while(1){j=qd(f)|0;n=d+488+(l*12|0)|0;c[n>>2]=j;j=qd(f)|0;k=d+488+(l*12|0)+4|0;c[k>>2]=j;j=qd(f)|0;c[d+488+(l*12|0)+8>>2]=j;if((c[n>>2]|0)==-99999){f=8;j=52;break}l=l+1|0;if((c[k>>2]|0)==-99999|(j|0)==-99999){f=8;j=52;break}if((l|0)>=(c[h>>2]|0)){j=11;break}}if((j|0)==11){if((c[i>>2]|0)!=0){break}if((g|0)>=8){ec(11472,14120,144,17416);return 0}if((g|0)<=0){break}k=d+488+(g*12|0)|0;h=d+488+(g*12|0)+4|0;j=d+488+(g*12|0)+8|0;i=0;do{c[d+488+(i*12|0)>>2]=c[k>>2];c[d+488+(i*12|0)+4>>2]=c[h>>2];c[d+488+(i*12|0)+8>>2]=c[j>>2];i=i+1|0;}while((i|0)<(g|0))}else if((j|0)==52){return f|0}}}while(0);n=(nd(f,6)|0)&255;g=d+584|0;a[g]=n;n=qd(f)|0;h=d+588|0;c[h>>2]=n;j=n+1|0;if((j|0)<0|(n|0)>1022|(n|0)==-99999){Ue(e,8,0);n=8;return n|0}c[h>>2]=j;n=d+592|0;i=d+596|0;k=c[i>>2]|0;e=n|0;m=c[e>>2]|0;l=(k-m|0)/12|0;do{if(l>>>0<j>>>0){jl(n,j-l|0)}else{if(!(l>>>0>j>>>0)){break}j=m+(j*12|0)|0;if((k|0)==(j|0)){break}do{k=k-12|0;c[i>>2]=k;l=c[k>>2]|0;if((l|0)!=0){Pu(l);k=c[i>>2]|0}}while((k|0)!=(j|0))}}while(0);a:do{if((c[h>>2]|0)>=2){i=1;k=a[g]|0;while(1){al((c[e>>2]|0)+(i*12|0)|0,(k&255)+1|0,0);j=0;while(1){k=(c[(c[e>>2]|0)+(i*12|0)>>2]|0)+(j>>>5<<2)|0;l=1<<(j&31);if((nd(f,1)|0)==0){l=c[k>>2]&~l}else{l=c[k>>2]|l}c[k>>2]=l;k=a[g]|0;if((j|0)<(k&255|0)){j=j+1|0}else{break}}if((i|0)>=((c[h>>2]|0)-1|0)){break a}i=i+1|0}}}while(0);n=(nd(f,1)|0)&255;a[d+604|0]=n;do{if(!(n<<24>>24==0)){n=nd(f,32)|0;c[d+608>>2]=n;n=nd(f,32)|0;c[d+612>>2]=n;n=(nd(f,1)|0)&255;a[d+616|0]=n;if(n<<24>>24==0){break}e=(qd(f)|0)+1|0;c[d+620>>2]=e;e=qd(f)|0;h=d+624|0;c[h>>2]=e;if((e|0)>1023){ec(8432,14120,189,17416);return 0}m=d+628|0;j=d+632|0;i=c[j>>2]|0;g=m|0;k=c[g>>2]|0;l=i-k>>1;do{if(l>>>0<e>>>0){gl(m,e-l|0);e=c[h>>2]|0}else{if(!(l>>>0>e>>>0)){break}k=k+(e<<1)|0;if((i|0)==(k|0)){break}c[j>>2]=i+(~((i-2+(-k|0)|0)>>>1)<<1)}}while(0);l=d+640|0;j=d+644|0;i=c[j>>2]|0;m=c[l>>2]|0;k=i-m|0;do{if(k>>>0<e>>>0){fl(l,e-k|0);e=c[h>>2]|0}else{if(!(k>>>0>e>>>0)){break}h=m+e|0;if((i|0)==(h|0)){break}c[j>>2]=h}}while(0);if((e|0)<=0){break}n=(qd(f)|0)&65535;b[c[g>>2]>>1]=n;n=0;return n|0}}while(0);n=(nd(f,1)|0)&255;a[d+652|0]=n;n=0;return n|0}function $k(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a[b|0]=1;a[b+44|0]=1;bl(b|0,c);e=d-1|0;f=(e|0)>0;if(f){g=0;do{h=(nd(c,1)|0)&255;a[b+52+(g*52|0)|0]=h;h=(nd(c,1)|0)&255;a[b+52+(g*52|0)+44|0]=h;g=g+1|0;}while((g|0)<(e|0))}if((d-2|0)>>>0<7>>>0){d=e;do{od(c,2);d=d+1|0;}while((d|0)<8)}if(f){f=0}else{return}do{bl(b+52+(f*52|0)|0,c);f=f+1|0;}while((f|0)<(e|0));return}function al(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=i;i=i+24|0;p=e|0;n=e+16|0;o=n;h=a+4|0;g=c[h>>2]|0;if(!(g>>>0<b>>>0)){c[h>>2]=b;i=e;return}j=a+8|0;r=c[j>>2]|0;q=r<<5;f=b-g|0;do{if(f>>>0>q>>>0|g>>>0>(q-f|0)>>>0){m=p|0;c[m>>2]=0;l=p+4|0;c[l>>2]=0;k=p+8|0;c[k>>2]=0;if((b|0)<0){Nr(0)}if(q>>>0>1073741822>>>0){q=2147483647}else{q=r<<6;r=b+31&-32;q=q>>>0<r>>>0?r:q}hl(p,q);t=c[h>>2]|0;p=t+f|0;c[l>>2]=p;a=a|0;q=c[m>>2]|0;do{if((t|0)>0){s=c[a>>2]|0;r=t>>>5;fv(q|0,s|0,r<<2|0)|0;t=t-(r<<5)|0;u=q+(r<<2)|0;if((t|0)<=0){t=0;break}v=-1>>>((32-t|0)>>>0);c[u>>2]=c[u>>2]&~v|c[s+(r<<2)>>2]&v}else{u=q;t=0}}while(0);c[n>>2]=u;c[o+4>>2]=t;o=c[n>>2]|0;n=c[n+4>>2]|0;r=c[a>>2]|0;c[a>>2]=q;c[m>>2]=r;v=c[h>>2]|0;c[h>>2]=p;c[l>>2]=v;v=c[j>>2]|0;c[j>>2]=c[k>>2];c[k>>2]=v;if((r|0)==0){break}Pu(r)}else{o=(c[a>>2]|0)+(g>>>5<<2)|0;c[h>>2]=b;n=g&31}}while(0);if((g|0)==(b|0)){i=e;return}b=(n|0)==0;if(d){if(!b){d=32-n|0;v=d>>>0>f>>>0?f:d;c[o>>2]=c[o>>2]|-1>>>((d-v|0)>>>0)&-1<<n;f=f-v|0;o=o+4|0}d=f>>>5;dv(o|0,-1|0,d<<2|0)|0;b=d<<5;if((f|0)==(b|0)){i=e;return}v=o+(d<<2)|0;c[v>>2]=c[v>>2]|-1>>>((32-f+b|0)>>>0);i=e;return}else{if(!b){d=32-n|0;v=d>>>0>f>>>0?f:d;c[o>>2]=c[o>>2]&~(-1>>>((d-v|0)>>>0)&-1<<n);f=f-v|0;o=o+4|0}b=f>>>5;dv(o|0,0,b<<2|0)|0;d=b<<5;if((f|0)==(d|0)){i=e;return}v=o+(b<<2)|0;c[v>>2]=c[v>>2]&~(-1>>>((32-f+d|0)>>>0));i=e;return}}function bl(b,d){b=b|0;d=d|0;var e=0,f=0;if((a[b|0]|0)!=0){e=(nd(d,2)|0)&255;a[b+1|0]=e;e=(nd(d,1)|0)&255;a[b+2|0]=e;e=nd(d,5)|0;c[b+4>>2]=e;e=0;f=(nd(d,1)|0)&255;do{a[b+8+e|0]=f;e=e+1|0;f=(nd(d,1)|0)&255}while((e|0)<32);a[b+40|0]=f;f=(nd(d,1)|0)&255;a[b+41|0]=f;f=(nd(d,1)|0)&255;a[b+42|0]=f;f=(nd(d,1)|0)&255;a[b+43|0]=f;od(d,44)}if((a[b+44|0]|0)==0){return}f=nd(d,8)|0;c[b+48>>2]=f;return}function cl(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,r=0;g=i;i=i+8|0;h=g|0;if((f|0)==2){f=q}else if((f|0)==1){f=t}else{i=g;return}f=c[f>>2]|0;Zk(f,2952,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j;Zk(f,1624,(j=i,i=i+8|0,c[j>>2]=c[b>>2],j)|0);i=j;Zk(f,928,(j=i,i=i+8|0,c[j>>2]=c[b+4>>2],j)|0);i=j;j=b+8|0;Zk(f,296,(k=i,i=i+8|0,c[k>>2]=c[j>>2],k)|0);i=k;Zk(f,16768,(k=i,i=i+8|0,c[k>>2]=c[b+12>>2],k)|0);i=k;k=c[j>>2]|0;el(b+16|0,1,f);k=k-1|0;if((k|0)>0){l=0;do{Zk(f,6664,(p=i,i=i+8|0,c[p>>2]=l,p)|0);i=p;el(b+68+(l*52|0)|0,0,f);l=l+1|0;}while((l|0)<(k|0))}p=b+484|0;Zk(f,16272,(o=i,i=i+8|0,c[o>>2]=c[p>>2],o)|0);i=o;do{if((c[p>>2]|0)==0){Zk(f,14832,(p=i,i=i+8|0,c[p>>2]=c[b+488>>2],p)|0);i=p;Zk(f,14568,(p=i,i=i+8|0,c[p>>2]=c[b+492>>2],p)|0);i=p;Zk(f,14296,(p=i,i=i+8|0,c[p>>2]=c[b+496>>2],p)|0);i=p}else{if((c[j>>2]|0)>0){k=0}else{break}do{o=c[b+488+(k*12|0)>>2]|0;Zk(f,15912,(p=i,i=i+16|0,c[p>>2]=k,c[p+8>>2]=o,p)|0);i=p;Zk(f,15488,(p=i,i=i+8|0,c[p>>2]=c[b+488+(k*12|0)+4>>2],p)|0);i=p;Zk(f,15120,(p=i,i=i+8|0,c[p>>2]=c[b+488+(k*12|0)+8>>2],p)|0);i=p;k=k+1|0;}while((k|0)<(c[j>>2]|0))}}while(0);p=b+584|0;Zk(f,14056,(o=i,i=i+8|0,c[o>>2]=d[p]|0,o)|0);i=o;o=b+588|0;Zk(f,13768,(n=i,i=i+8|0,c[n>>2]=c[o>>2],n)|0);i=n;if((c[o>>2]|0)>=2){l=b+592|0;j=h|0;n=h+4|0;m=1;while(1){k=0;while(1){c[j>>2]=(c[(c[l>>2]|0)+(m*12|0)>>2]|0)+(k>>>5<<2);c[n>>2]=1<<(k&31);Zk(f,13560,(r=i,i=i+24|0,c[r>>2]=m,c[r+8>>2]=k,c[r+16>>2]=c[h>>2],c[r+20>>2]=c[h+4>>2],r)|0);i=r;if((k|0)<(d[p]|0)){k=k+1|0}else{break}}if((m|0)<((c[o>>2]|0)-1|0)){m=m+1|0}else{break}}}r=b+604|0;Zk(f,13368,(p=i,i=i+8|0,c[p>>2]=a[r]|0,p)|0);i=p;do{if((a[r]|0)!=0){Zk(f,13168,(r=i,i=i+8|0,c[r>>2]=c[b+608>>2],r)|0);i=r;Zk(f,12896,(r=i,i=i+8|0,c[r>>2]=c[b+612>>2],r)|0);i=r;r=b+616|0;Zk(f,12608,(p=i,i=i+8|0,c[p>>2]=a[r]|0,p)|0);i=p;if((a[r]|0)==0){break}Zk(f,12368,(r=i,i=i+8|0,c[r>>2]=c[b+620>>2],r)|0);i=r;r=b+624|0;Zk(f,12088,(p=i,i=i+8|0,c[p>>2]=c[r>>2],p)|0);i=p;if((c[r>>2]|0)<=0){break}p=e[c[b+628>>2]>>1]|0;Zk(f,11712,(r=i,i=i+16|0,c[r>>2]=0,c[r+8>>2]=p,r)|0);i=r;i=g;return}}while(0);Zk(f,11160,(r=i,i=i+8|0,c[r>>2]=a[b+652|0]|0,r)|0);i=r;i=g;return}function dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;el(a|0,1,d);b=b-1|0;if((b|0)>0){f=0}else{i=e;return}do{Zk(d,6664,(g=i,i=i+8|0,c[g>>2]=f,g)|0);i=g;el(a+52+(f*52|0)|0,0,d);f=f+1|0;}while((f|0)<(b|0));i=e;return}function el(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0;f=i;d=d?10928:10664;if((a[b|0]|0)!=0){g=a[b+1|0]|0;Zk(e,10376,(j=i,i=i+16|0,c[j>>2]=d,c[j+8>>2]=g,j)|0);i=j;j=a[b+2|0]|0;Zk(e,10032,(g=i,i=i+16|0,c[g>>2]=d,c[g+8>>2]=j,g)|0);i=g;g=c[b+4>>2]|0;if((g|0)==4){g=5792}else if((g|0)==1){g=6328}else if((g|0)==2){g=6208}else if((g|0)==3){g=5976}else{g=5624}Zk(e,9680,(j=i,i=i+16|0,c[j>>2]=d,c[j+8>>2]=g,j)|0);i=j;Zk(e,9288,(j=i,i=i+8|0,c[j>>2]=d,j)|0);i=j;g=0;do{if((g|0)!=0){Zk(e,9008,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j}Zk(e,8608,(j=i,i=i+8|0,c[j>>2]=a[b+8+g|0]|0,j)|0);i=j;g=g+1|0;}while((g|0)<32);Zk(e,8376,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j;j=a[b+40|0]|0;Zk(e,8112,(g=i,i=i+16|0,c[g>>2]=d,c[g+8>>2]=j,g)|0);i=g;g=a[b+41|0]|0;Zk(e,7872,(j=i,i=i+16|0,c[j>>2]=d,c[j+8>>2]=g,j)|0);i=j;j=a[b+42|0]|0;Zk(e,7600,(g=i,i=i+16|0,c[g>>2]=d,c[g+8>>2]=j,g)|0);i=g;g=a[b+43|0]|0;Zk(e,7296,(j=i,i=i+16|0,c[j>>2]=d,c[j+8>>2]=g,j)|0);i=j}if((a[b+44|0]|0)==0){i=f;return}g=c[b+48>>2]|0;Zk(e,6960,(j=i,i=i+24|0,c[j>>2]=d,c[j+8>>2]=g,h[j+16>>3]=+(g|0)/30.0,j)|0);i=j;i=f;return}function fl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=b+8|0;e=b+4|0;g=c[e>>2]|0;j=c[f>>2]|0;h=g;if(!((j-h|0)>>>0<d>>>0)){do{if((g|0)==0){f=0}else{a[g]=0;f=c[e>>2]|0}g=f+1|0;c[e>>2]=g;d=d-1|0;}while((d|0)!=0);return}g=b|0;k=c[g>>2]|0;h=h-k|0;b=h+d|0;if((b|0)<0){Nr(0)}j=j-k|0;if(j>>>0<1073741823>>>0){j=j<<1;b=j>>>0<b>>>0?b:j;if((b|0)==0){j=0;b=0}else{i=9}}else{b=2147483647;i=9}if((i|0)==9){j=Nu(b)|0}i=j+h|0;do{if((i|0)==0){i=0}else{a[i]=0}i=i+1|0;d=d-1|0;}while((d|0)!=0);d=c[g>>2]|0;l=(c[e>>2]|0)-d|0;k=j+(h-l)|0;cv(k|0,d|0,l)|0;c[g>>2]=k;c[e>>2]=i;c[f>>2]=j+b;if((d|0)==0){return}Pu(d);return}function gl(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=a+8|0;e=a+4|0;g=c[e>>2]|0;l=c[f>>2]|0;h=g;if(!(l-h>>1>>>0<d>>>0)){a=d;f=g;while(1){if((f|0)!=0){b[f>>1]=0}a=a-1|0;if((a|0)==0){break}else{f=f+2|0}}c[e>>2]=g+(d<<1);return}g=a|0;a=c[g>>2]|0;m=a;h=h-m|0;k=h>>1;i=k+d|0;if((i|0)<0){Nr(0)}l=l-m|0;if(l>>1>>>0<1073741823>>>0){m=l>>>0<i>>>0?i:l;if((m|0)==0){l=0;m=0}else{j=10}}else{m=2147483647;j=10}if((j|0)==10){l=Nu(m<<1)|0}j=l+(k<<1)|0;while(1){if((j|0)!=0){b[j>>1]=0}d=d-1|0;if((d|0)==0){break}else{j=j+2|0}}d=a;cv(l|0,d|0,h)|0;c[g>>2]=l;c[e>>2]=l+(i<<1);c[f>>2]=l+(m<<1);if((a|0)==0){return}Pu(d);return}function hl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+32|0;f=d|0;g=d+8|0;h=d+16|0;e=a+8|0;if(!(c[e>>2]<<5>>>0<b>>>0)){i=d;return}if((b|0)<0){Nr(0)}j=((b-1|0)>>>5)+1|0;n=Nu(j<<2)|0;m=a|0;b=c[m>>2]|0;a=a+4|0;k=c[a>>2]|0;l=k>>>5;k=k&31;c[f>>2]=b;c[f+4>>2]=0;c[g>>2]=b+(l<<2);c[g+4>>2]=k;c[h>>2]=n;c[h+4>>2]=0;il(d+24|0,f,g,h);b=c[m>>2]|0;c[m>>2]=n;c[a>>2]=l<<5|k;c[e>>2]=j;if((b|0)==0){i=d;return}Pu(b);i=d;return}function il(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=b|0;g=c[f>>2]|0;b=c[b+4>>2]|0;h=(c[d+4>>2]|0)-b+((c[d>>2]|0)-g<<3)|0;if((h|0)<=0){d=c[e>>2]|0;h=a|0;c[h>>2]=d;h=a+4|0;d=e+4|0;d=c[d>>2]|0;c[h>>2]=d;return}if((b|0)==0){b=e|0}else{d=32-b|0;i=(h|0)<(d|0)?h:d;d=-1>>>((d-i|0)>>>0)&-1<<b;b=e|0;j=c[b>>2]|0;c[j>>2]=c[j>>2]&~d|c[g>>2]&d;g=e+4|0;d=(c[g>>2]|0)+i|0;c[b>>2]=j+(d>>>5<<2);c[g>>2]=d&31;g=(c[f>>2]|0)+4|0;c[f>>2]=g;h=h-i|0}d=h>>>5;fv(c[b>>2]|0,g|0,d<<2|0)|0;g=h-(d<<5)|0;h=(c[b>>2]|0)+(d<<2)|0;c[b>>2]=h;if((g|0)<=0){i=h;j=a|0;c[j>>2]=i;j=a+4|0;i=e+4|0;i=c[i>>2]|0;c[j>>2]=i;return}h=(c[f>>2]|0)+(d<<2)|0;c[f>>2]=h;j=-1>>>((32-g|0)>>>0);i=c[b>>2]|0;c[i>>2]=c[i>>2]&~j|c[h>>2]&j;c[e+4>>2]=g;j=a|0;c[j>>2]=i;j=a+4|0;i=e+4|0;i=c[i>>2]|0;c[j>>2]=i;return}function jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=a+8|0;d=a+4|0;f=c[d>>2]|0;h=c[e>>2]|0;g=f;if(!(((h-g|0)/12|0)>>>0<b>>>0)){do{if((f|0)==0){e=0}else{c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;e=c[d>>2]|0}f=e+12|0;c[d>>2]=f;b=b-1|0;}while((b|0)!=0);return}f=a|0;j=c[f>>2]|0;g=(g-j|0)/12|0;a=g+b|0;if(a>>>0>357913941>>>0){Nr(0)}h=(h-j|0)/12|0;if(h>>>0<178956970>>>0){h=h<<1;j=h>>>0<a>>>0?a:h;if((j|0)==0){h=0;j=0}else{i=9}}else{j=357913941;i=9}if((i|0)==9){h=Nu(j*12|0)|0}a=h+(g*12|0)|0;i=a;do{if((i|0)==0){i=0}else{c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0}i=i+12|0;b=b-1|0;}while((b|0)!=0);b=h+(j*12|0)|0;j=c[f>>2]|0;k=c[d>>2]|0;do{if((k|0)==(j|0)){c[f>>2]=a;c[d>>2]=i;c[e>>2]=b}else{g=g-1-(((k-12+(-j|0)|0)>>>0)/12|0)|0;while(1){l=k-12|0;n=l|0;c[a-12>>2]=c[n>>2];m=k-12+4|0;c[a-12+4>>2]=c[m>>2];k=k-12+8|0;c[a-12+8>>2]=c[k>>2];c[n>>2]=0;c[m>>2]=0;c[k>>2]=0;if((l|0)==(j|0)){break}else{k=l;a=a-12|0}}j=c[f>>2]|0;a=c[d>>2]|0;c[f>>2]=h+(g*12|0);c[d>>2]=i;c[e>>2]=b;if((a|0)==(j|0)){break}do{a=a-12|0;d=c[a>>2]|0;if((d|0)!=0){Pu(d)}}while((a|0)!=(j|0))}}while(0);if((j|0)==0){return}Pu(j);return}function kl(d){d=d|0;a[d|0]=0;dv(d+2|0,0,7)|0;c[d+12>>2]=5;a[d+16|0]=0;a[d+17|0]=0;a[d+18|0]=2;a[d+19|0]=2;a[d+20|0]=2;c[d+48>>2]=0;c[d+52>>2]=0;a[d+56|0]=0;dv(d+21|0,0,24)|0;c[d+60>>2]=1;a[d+64|0]=0;a[d+65|0]=0;a[d+66|0]=0;a[d+67|0]=1;a[d+68|0]=0;b[d+70>>1]=0;a[d+72|0]=2;a[d+73|0]=1;a[d+74|0]=15;a[d+75|0]=15;return}function ll(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;m=(nd(f,1)|0)!=0;a[d|0]=m&1;do{if(m){g=nd(f,8)|0;if((g|0)<18){b[d+2>>1]=b[30800+(g<<2)>>1]|0;b[d+4>>1]=b[30802+(g<<2)>>1]|0;break}if((g|0)==255){m=(nd(f,16)|0)&65535;b[d+2>>1]=m;m=(nd(f,16)|0)&65535;b[d+4>>1]=m;break}else{b[d+2>>1]=0;b[d+4>>1]=0;break}}else{b[d+2>>1]=0;b[d+4>>1]=0}}while(0);m=(nd(f,1)|0)!=0;a[d+6|0]=m&1;if(m){m=(nd(f,1)|0)!=0|0;a[d+7|0]=m}k=d+12|0;c[k>>2]=5;l=d+16|0;a[l]=0;j=d+18|0;a[j]=2;i=d+19|0;a[i]=2;g=d+20|0;a[g]=2;m=(nd(f,1)|0)!=0;a[d+8|0]=m&1;do{if(m){m=nd(f,3)|0;c[k>>2]=(m|0)>5?5:m;m=(nd(f,1)|0)!=0|0;a[l]=m;m=(nd(f,1)|0)!=0;a[d+17|0]=m&1;if(!m){break}k=nd(f,8)|0;a[j]=k;k=k&255;if((k|0)==0|(k|0)==3){h=14}else{if(k>>>0>10>>>0){h=14}}if((h|0)==14){a[j]=2}j=nd(f,8)|0;a[i]=j;j=j&255;if((j|0)==0|(j|0)==3){h=17}else{if(j>>>0>17>>>0){h=17}}if((h|0)==17){a[i]=2}h=nd(f,8)|0;m=h&255;a[g]=(m|0)==0|m>>>0>10>>>0?2:h&255}}while(0);m=(nd(f,1)|0)!=0;a[d+21|0]=m&1;do{if(m){h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}a[d+22|0]=h;h=qd(f)|0;if(!((h|0)==-99999)){a[d+23|0]=h;break}Ue(e,8,0);m=8;return m|0}else{a[d+22|0]=0;a[d+23|0]=0}}while(0);m=(nd(f,1)|0)!=0|0;a[d+24|0]=m;m=(nd(f,1)|0)!=0|0;a[d+25|0]=m;m=(nd(f,1)|0)!=0|0;a[d+26|0]=m;m=(nd(f,1)|0)!=0;a[d+27|0]=m&1;do{if(m){h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}c[d+28>>2]=h;h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}c[d+32>>2]=h;h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}c[d+36>>2]=h;h=qd(f)|0;if(!((h|0)==-99999)){c[d+40>>2]=h;break}Ue(e,8,0);m=8;return m|0}else{dv(d+28|0,0,16)|0}}while(0);m=(nd(f,1)|0)!=0;a[d+44|0]=m&1;if(m){m=nd(f,32)|0;c[d+48>>2]=m;m=nd(f,32)|0;c[d+52>>2]=m}h=(nd(f,1)|0)!=0|0;a[d+56|0]=h;h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}c[d+60>>2]=h+1;m=(nd(f,1)|0)!=0;a[d+64|0]=m&1;if(m){m=502;return m|0}m=(nd(f,1)|0)!=0;a[d+65|0]=m&1;if(!m){a[d+66|0]=0;a[d+67|0]=1;a[d+68|0]=0;b[d+70>>1]=0;a[d+72|0]=2;a[d+73|0]=1;a[d+74|0]=15;a[d+75|0]=15;m=0;return m|0}h=(nd(f,1)|0)!=0|0;a[d+66|0]=h;h=(nd(f,1)|0)!=0|0;a[d+67|0]=h;h=(nd(f,1)|0)!=0|0;a[d+68|0]=h;h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}g=d+70|0;b[g>>1]=h;if((h&61440)>>>0>4095>>>0){Ue(e,8,0);b[g>>1]=0}h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}g=d+72|0;a[g]=h;if((h&255)>>>0>16>>>0){Ue(e,8,0);a[g]=2}h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}g=d+73|0;a[g]=h;if((h&255)>>>0>16>>>0){Ue(e,8,0);a[g]=1}h=qd(f)|0;if((h|0)==-99999){Ue(e,8,0);m=8;return m|0}g=d+74|0;a[g]=h;if((h&240)>>>0>15>>>0){Ue(e,8,0);a[g]=15}f=qd(f)|0;if((f|0)==-99999){Ue(e,8,0);m=8;return m|0}d=d+75|0;a[d]=f;if(!((f&240)>>>0>15>>>0)){m=0;return m|0}Ue(e,8,0);a[d]=15;m=0;return m|0}function ml(b,f){b=b|0;f=f|0;var g=0,h=0,j=0;g=i;if((f|0)==2){f=q}else if((f|0)==1){f=t}else{i=g;return}f=c[f>>2]|0;Zk(f,2832,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j;j=e[b+4>>1]|0;Zk(f,1504,(h=i,i=i+16|0,c[h>>2]=e[b+2>>1]|0,c[h+8>>2]=j,h)|0);i=h;Zk(f,856,(h=i,i=i+8|0,c[h>>2]=d[b+6|0]|0,h)|0);i=h;Zk(f,248,(h=i,i=i+8|0,c[h>>2]=d[b+7|0]|0,h)|0);i=h;h=b+8|0;Zk(f,16688,(j=i,i=i+8|0,c[j>>2]=d[h]|0,j)|0);i=j;if((a[h]|0)!=0){switch(c[b+12>>2]|0){case 1:{h=13944;break};case 2:{h=11320;break};case 3:{h=8288;break};case 4:{h=5936;break};case 0:{h=672;break};default:{h=4136}}Zk(f,16216,(j=i,i=i+8|0,c[j>>2]=h,j)|0);i=j;Zk(f,15832,(j=i,i=i+8|0,c[j>>2]=d[b+16|0]|0,j)|0);i=j;Zk(f,15432,(j=i,i=i+8|0,c[j>>2]=d[b+17|0]|0,j)|0);i=j;Zk(f,15080,(j=i,i=i+8|0,c[j>>2]=d[b+18|0]|0,j)|0);i=j;Zk(f,14792,(j=i,i=i+8|0,c[j>>2]=d[b+19|0]|0,j)|0);i=j;Zk(f,14488,(j=i,i=i+8|0,c[j>>2]=d[b+20|0]|0,j)|0);i=j}j=b+21|0;Zk(f,14232,(h=i,i=i+8|0,c[h>>2]=d[j]|0,h)|0);i=h;if((a[j]|0)!=0){Zk(f,14008,(j=i,i=i+8|0,c[j>>2]=d[b+22|0]|0,j)|0);i=j;Zk(f,13720,(j=i,i=i+8|0,c[j>>2]=d[b+23|0]|0,j)|0);i=j}Zk(f,13520,(j=i,i=i+8|0,c[j>>2]=d[b+24|0]|0,j)|0);i=j;Zk(f,13328,(j=i,i=i+8|0,c[j>>2]=d[b+25|0]|0,j)|0);i=j;Zk(f,13120,(j=i,i=i+8|0,c[j>>2]=d[b+26|0]|0,j)|0);i=j;Zk(f,12856,(j=i,i=i+8|0,c[j>>2]=d[b+27|0]|0,j)|0);i=j;Zk(f,12568,(j=i,i=i+8|0,c[j>>2]=c[b+28>>2],j)|0);i=j;Zk(f,12328,(j=i,i=i+8|0,c[j>>2]=c[b+32>>2],j)|0);i=j;Zk(f,12048,(j=i,i=i+8|0,c[j>>2]=c[b+36>>2],j)|0);i=j;Zk(f,11664,(j=i,i=i+8|0,c[j>>2]=c[b+40>>2],j)|0);i=j;j=b+44|0;Zk(f,11392,(h=i,i=i+8|0,c[h>>2]=d[j]|0,h)|0);i=h;if((a[j]|0)!=0){Zk(f,11120,(j=i,i=i+8|0,c[j>>2]=c[b+48>>2],j)|0);i=j;Zk(f,10888,(j=i,i=i+8|0,c[j>>2]=c[b+52>>2],j)|0);i=j}Zk(f,10616,(j=i,i=i+8|0,c[j>>2]=d[b+56|0]|0,j)|0);i=j;Zk(f,10328,(j=i,i=i+8|0,c[j>>2]=c[b+60>>2],j)|0);i=j;Zk(f,9992,(j=i,i=i+8|0,c[j>>2]=d[b+64|0]|0,j)|0);i=j;j=b+65|0;Zk(f,9632,(h=i,i=i+8|0,c[h>>2]=d[j]|0,h)|0);i=h;if((a[j]|0)==0){i=g;return}Zk(f,9240,(j=i,i=i+8|0,c[j>>2]=d[b+66|0]|0,j)|0);i=j;Zk(f,8960,(j=i,i=i+8|0,c[j>>2]=d[b+67|0]|0,j)|0);i=j;Zk(f,8560,(j=i,i=i+8|0,c[j>>2]=d[b+68|0]|0,j)|0);i=j;Zk(f,8328,(j=i,i=i+8|0,c[j>>2]=e[b+70>>1]|0,j)|0);i=j;Zk(f,8064,(j=i,i=i+8|0,c[j>>2]=d[b+72|0]|0,j)|0);i=j;Zk(f,7824,(j=i,i=i+8|0,c[j>>2]=d[b+73|0]|0,j)|0);i=j;Zk(f,7552,(j=i,i=i+8|0,c[j>>2]=d[b+74|0]|0,j)|0);i=j;Zk(f,7248,(j=i,i=i+8|0,c[j>>2]=d[b+75|0]|0,j)|0);i=j;i=g;return}function nl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;i=i+32|0;f=b|0;h=b+8|0;l=b+16|0;j=b+24|0;d=c[o>>2]|0;Jl(34232,d,34360);c[8806]=21516;c[8808]=21536;c[8807]=0;Mm(35232,34232);c[8826]=0;c[8827]=-1;g=c[t>>2]|0;c[8534]=21296;Tr(34140);dv(34144,0,24)|0;c[8534]=21664;c[8542]=g;Ur(j,34140);k=Wr(j,34560)|0;e=k;Vr(j);c[8543]=e;c[8544]=34368;e=(Fc[c[(c[k>>2]|0)+28>>2]&255](e)|0)&1;a[34180]=e;c[8740]=21420;c[8741]=21440;Mm(34964,34136);c[8759]=0;c[8760]=-1;e=c[q>>2]|0;c[8546]=21296;Tr(34188);dv(34192,0,24)|0;c[8546]=21664;c[8554]=e;Ur(l,34188);k=Wr(l,34560)|0;j=k;Vr(l);c[8555]=j;c[8556]=34376;j=(Fc[c[(c[k>>2]|0)+28>>2]&255](j)|0)&1;a[34228]=j;c[8784]=21420;c[8785]=21440;Mm(35140,34184);c[8803]=0;c[8804]=-1;j=c[(c[(c[8784]|0)-12>>2]|0)+35160>>2]|0;c[8762]=21420;c[8763]=21440;Mm(35052,j);c[8781]=0;c[8782]=-1;c[(c[(c[8806]|0)-12>>2]|0)+35296>>2]=34960;j=(c[(c[8784]|0)-12>>2]|0)+35140|0;c[j>>2]=c[j>>2]|8192;c[(c[(c[8784]|0)-12>>2]|0)+35208>>2]=34960;vl(34080,d,34384);c[8718]=21468;c[8720]=21488;c[8719]=0;Mm(34880,34080);c[8738]=0;c[8739]=-1;c[8496]=21224;Tr(33988);dv(33992,0,24)|0;c[8496]=21592;c[8504]=g;Ur(h,33988);g=Wr(h,34552)|0;d=g;Vr(h);c[8505]=d;c[8506]=34392;d=(Fc[c[(c[g>>2]|0)+28>>2]&255](d)|0)&1;a[34028]=d;c[8648]=21372;c[8649]=21392;Mm(34596,33984);c[8667]=0;c[8668]=-1;c[8508]=21224;Tr(34036);dv(34040,0,24)|0;c[8508]=21592;c[8516]=e;Ur(f,34036);e=Wr(f,34552)|0;d=e;Vr(f);c[8517]=d;c[8518]=34400;d=(Fc[c[(c[e>>2]|0)+28>>2]&255](d)|0)&1;a[34076]=d;c[8692]=21372;c[8693]=21392;Mm(34772,34032);c[8711]=0;c[8712]=-1;d=c[(c[(c[8692]|0)-12>>2]|0)+34792>>2]|0;c[8670]=21372;c[8671]=21392;Mm(34684,d);c[8689]=0;c[8690]=-1;c[(c[(c[8718]|0)-12>>2]|0)+34944>>2]=34592;d=(c[(c[8692]|0)-12>>2]|0)+34772|0;c[d>>2]=c[d>>2]|8192;c[(c[(c[8692]|0)-12>>2]|0)+34840>>2]=34592;i=b;return}function ol(a){a=a|0;sn(34960)|0;sn(35048)|0;xn(34592)|0;xn(34680)|0;return}function pl(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);return}function ql(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);Pu(a);return}function rl(b,d){b=b|0;d=d|0;var e=0;Fc[c[(c[b>>2]|0)+24>>2]&255](b)|0;e=Wr(d,34552)|0;d=e;c[b+36>>2]=d;d=(Fc[c[(c[e>>2]|0)+28>>2]&255](d)|0)&1;a[b+44|0]=d;return}function sl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;i=i+16|0;j=b|0;d=b+8|0;e=a+36|0;f=a+40|0;g=j|0;h=j+8|0;a=a+32|0;while(1){k=c[e>>2]|0;k=Gc[c[(c[k>>2]|0)+20>>2]&31](k,c[f>>2]|0,g,h,d)|0;l=(c[d>>2]|0)-j|0;if((Oa(g|0,1,l|0,c[a>>2]|0)|0)!=(l|0)){e=-1;d=5;break}if((k|0)==2){e=-1;d=5;break}else if((k|0)!=1){d=4;break}}if((d|0)==4){l=((Ma(c[a>>2]|0)|0)!=0)<<31>>31;i=b;return l|0}else if((d|0)==5){i=b;return e|0}return 0}function tl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((a[b+44|0]|0)!=0){g=Oa(d|0,4,e|0,c[b+32>>2]|0)|0;return g|0}f=b;if((e|0)>0){g=0}else{g=0;return g|0}while(1){if((Qc[c[(c[f>>2]|0)+52>>2]&63](b,c[d>>2]|0)|0)==-1){b=6;break}g=g+1|0;if((g|0)<(e|0)){d=d+4|0}else{b=6;break}}if((b|0)==6){return g|0}return 0}function ul(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=i;i=i+32|0;o=e|0;p=e+8|0;h=e+16|0;j=e+24|0;f=(d|0)==-1;a:do{if(!f){c[p>>2]=d;if((a[b+44|0]|0)!=0){if((Oa(p|0,4,1,c[b+32>>2]|0)|0)==1){break}else{d=-1}i=e;return d|0}m=o|0;c[h>>2]=m;k=p+4|0;n=b+36|0;l=b+40|0;g=o+8|0;b=b+32|0;while(1){q=c[n>>2]|0;q=Vc[c[(c[q>>2]|0)+12>>2]&31](q,c[l>>2]|0,p,k,j,m,g,h)|0;if((c[j>>2]|0)==(p|0)){d=-1;g=12;break}if((q|0)==3){g=7;break}r=(q|0)==1;if(!(q>>>0<2>>>0)){d=-1;g=12;break}q=(c[h>>2]|0)-o|0;if((Oa(m|0,1,q|0,c[b>>2]|0)|0)!=(q|0)){d=-1;g=12;break}if(r){p=r?c[j>>2]|0:p}else{break a}}if((g|0)==7){if((Oa(p|0,1,1,c[b>>2]|0)|0)==1){break}else{d=-1}i=e;return d|0}else if((g|0)==12){i=e;return d|0}}}while(0);r=f?0:d;i=e;return r|0}function vl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+8|0;g=f|0;j=b|0;c[j>>2]=21224;h=b+4|0;Tr(h);dv(b+8|0,0,24)|0;c[j>>2]=21992;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=-1;a[b+52|0]=0;Ur(g,h);d=Wr(g,34552)|0;h=d;e=b+36|0;c[e>>2]=h;h=Fc[c[(c[d>>2]|0)+24>>2]&255](h)|0;d=b+44|0;c[d>>2]=h;e=c[e>>2]|0;e=(Fc[c[(c[e>>2]|0)+28>>2]&255](e)|0)&1;a[b+53|0]=e;if((c[d>>2]|0)<=8){Vr(g);i=f;return}dr(736);Vr(g);i=f;return}function wl(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);return}function xl(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);Pu(a);return}function yl(b,d){b=b|0;d=d|0;var e=0,f=0;d=Wr(d,34552)|0;f=d;e=b+36|0;c[e>>2]=f;f=Fc[c[(c[d>>2]|0)+24>>2]&255](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Fc[c[(c[e>>2]|0)+28>>2]&255](e)|0)&1;a[b+53|0]=e;if((c[d>>2]|0)<=8){return}dr(736);return}function zl(a){a=a|0;return Cl(a,0)|0}function Al(a){a=a|0;return Cl(a,1)|0}function Bl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+32|0;k=e|0;f=e+8|0;m=e+16|0;l=e+24|0;g=b+52|0;j=(a[g]|0)!=0;if((d|0)==-1){if(j){m=-1;i=e;return m|0}m=c[b+48>>2]|0;a[g]=(m|0)!=-1|0;i=e;return m|0}h=b+48|0;a:do{if(j){c[m>>2]=c[h>>2];n=c[b+36>>2]|0;j=k|0;l=Vc[c[(c[n>>2]|0)+12>>2]&31](n,c[b+40>>2]|0,m,m+4|0,l,j,k+8|0,f)|0;if((l|0)==3){a[j]=c[h>>2];c[f>>2]=k+1}else if((l|0)==2|(l|0)==1){n=-1;i=e;return n|0}b=b+32|0;while(1){k=c[f>>2]|0;if(!(k>>>0>j>>>0)){break a}n=k-1|0;c[f>>2]=n;if(($b(a[n]|0,c[b>>2]|0)|0)==-1){f=-1;break}}i=e;return f|0}}while(0);c[h>>2]=d;a[g]=1;n=d;i=e;return n|0}function Cl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=i;i=i+32|0;g=e|0;h=e+8|0;m=e+16|0;l=e+24|0;n=b+52|0;if((a[n]|0)!=0){f=b+48|0;g=c[f>>2]|0;if(!d){w=g;i=e;return w|0}c[f>>2]=-1;a[n]=0;w=g;i=e;return w|0}n=c[b+44>>2]|0;t=(n|0)>1?n:1;a:do{if((t|0)>0){p=b+32|0;n=0;while(1){o=eb(c[p>>2]|0)|0;if((o|0)==-1){f=-1;break}a[g+n|0]=o;n=n+1|0;if((n|0)>=(t|0)){break a}}i=e;return f|0}}while(0);b:do{if((a[b+53|0]|0)==0){o=b+40|0;n=b+36|0;r=g|0;q=h+4|0;p=b+32|0;while(1){v=c[o>>2]|0;w=v;u=c[w>>2]|0;w=c[w+4>>2]|0;x=c[n>>2]|0;s=g+t|0;v=Vc[c[(c[x>>2]|0)+16>>2]&31](x,v,r,s,m,h,q,l)|0;if((v|0)==2){f=-1;j=22;break}else if((v|0)==3){j=14;break}else if((v|0)!=1){k=t;break b}x=c[o>>2]|0;c[x>>2]=u;c[x+4>>2]=w;if((t|0)==8){f=-1;j=22;break}u=eb(c[p>>2]|0)|0;if((u|0)==-1){f=-1;j=22;break}a[s]=u;t=t+1|0}if((j|0)==14){c[h>>2]=a[r]|0;k=t;break}else if((j|0)==22){i=e;return f|0}}else{c[h>>2]=a[g|0]|0;k=t}}while(0);if(d){x=c[h>>2]|0;c[b+48>>2]=x;i=e;return x|0}d=b+32|0;while(1){if((k|0)<=0){break}k=k-1|0;if(($b(a[g+k|0]|0,c[d>>2]|0)|0)==-1){f=-1;j=22;break}}if((j|0)==22){i=e;return f|0}x=c[h>>2]|0;i=e;return x|0}function Dl(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);return}function El(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);Pu(a);return}function Fl(b,d){b=b|0;d=d|0;var e=0;Fc[c[(c[b>>2]|0)+24>>2]&255](b)|0;e=Wr(d,34560)|0;d=e;c[b+36>>2]=d;d=(Fc[c[(c[e>>2]|0)+28>>2]&255](d)|0)&1;a[b+44|0]=d;return}function Gl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;i=i+16|0;j=b|0;d=b+8|0;e=a+36|0;f=a+40|0;g=j|0;h=j+8|0;a=a+32|0;while(1){k=c[e>>2]|0;k=Gc[c[(c[k>>2]|0)+20>>2]&31](k,c[f>>2]|0,g,h,d)|0;l=(c[d>>2]|0)-j|0;if((Oa(g|0,1,l|0,c[a>>2]|0)|0)!=(l|0)){e=-1;d=5;break}if((k|0)==2){e=-1;d=5;break}else if((k|0)!=1){d=4;break}}if((d|0)==4){l=((Ma(c[a>>2]|0)|0)!=0)<<31>>31;i=b;return l|0}else if((d|0)==5){i=b;return e|0}return 0}function Hl(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0;if((a[b+44|0]|0)!=0){h=Oa(e|0,1,f|0,c[b+32>>2]|0)|0;return h|0}g=b;if((f|0)>0){h=0}else{h=0;return h|0}while(1){if((Qc[c[(c[g>>2]|0)+52>>2]&63](b,d[e]|0)|0)==-1){b=6;break}h=h+1|0;if((h|0)<(f|0)){e=e+1|0}else{b=6;break}}if((b|0)==6){return h|0}return 0}function Il(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=i;i=i+32|0;o=e|0;p=e+8|0;h=e+16|0;j=e+24|0;f=(d|0)==-1;a:do{if(!f){a[p]=d;if((a[b+44|0]|0)!=0){if((Oa(p|0,1,1,c[b+32>>2]|0)|0)==1){break}else{d=-1}i=e;return d|0}m=o|0;c[h>>2]=m;k=p+1|0;n=b+36|0;l=b+40|0;g=o+8|0;b=b+32|0;while(1){q=c[n>>2]|0;q=Vc[c[(c[q>>2]|0)+12>>2]&31](q,c[l>>2]|0,p,k,j,m,g,h)|0;if((c[j>>2]|0)==(p|0)){d=-1;g=12;break}if((q|0)==3){g=7;break}r=(q|0)==1;if(!(q>>>0<2>>>0)){d=-1;g=12;break}q=(c[h>>2]|0)-o|0;if((Oa(m|0,1,q|0,c[b>>2]|0)|0)!=(q|0)){d=-1;g=12;break}if(r){p=r?c[j>>2]|0:p}else{break a}}if((g|0)==7){if((Oa(p|0,1,1,c[b>>2]|0)|0)==1){break}else{d=-1}i=e;return d|0}else if((g|0)==12){i=e;return d|0}}}while(0);r=f?0:d;i=e;return r|0}function Jl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+8|0;g=f|0;j=b|0;c[j>>2]=21296;h=b+4|0;Tr(h);dv(b+8|0,0,24)|0;c[j>>2]=22064;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=-1;a[b+52|0]=0;Ur(g,h);d=Wr(g,34560)|0;h=d;e=b+36|0;c[e>>2]=h;h=Fc[c[(c[d>>2]|0)+24>>2]&255](h)|0;d=b+44|0;c[d>>2]=h;e=c[e>>2]|0;e=(Fc[c[(c[e>>2]|0)+28>>2]&255](e)|0)&1;a[b+53|0]=e;if((c[d>>2]|0)<=8){Vr(g);i=f;return}dr(736);Vr(g);i=f;return}function Kl(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);return}function Ll(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);Pu(a);return}function Ml(b,d){b=b|0;d=d|0;var e=0,f=0;d=Wr(d,34560)|0;f=d;e=b+36|0;c[e>>2]=f;f=Fc[c[(c[d>>2]|0)+24>>2]&255](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Fc[c[(c[e>>2]|0)+28>>2]&255](e)|0)&1;a[b+53|0]=e;if((c[d>>2]|0)<=8){return}dr(736);return}function Nl(a){a=a|0;return Ql(a,0)|0}function Ol(a){a=a|0;return Ql(a,1)|0}function Pl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;e=i;i=i+32|0;k=e|0;f=e+8|0;m=e+16|0;l=e+24|0;g=b+52|0;j=(a[g]|0)!=0;if((d|0)==-1){if(j){m=-1;i=e;return m|0}m=c[b+48>>2]|0;a[g]=(m|0)!=-1|0;i=e;return m|0}h=b+48|0;a:do{if(j){a[m]=c[h>>2];n=c[b+36>>2]|0;j=k|0;l=Vc[c[(c[n>>2]|0)+12>>2]&31](n,c[b+40>>2]|0,m,m+1|0,l,j,k+8|0,f)|0;if((l|0)==3){a[j]=c[h>>2];c[f>>2]=k+1}else if((l|0)==2|(l|0)==1){n=-1;i=e;return n|0}b=b+32|0;while(1){k=c[f>>2]|0;if(!(k>>>0>j>>>0)){break a}n=k-1|0;c[f>>2]=n;if(($b(a[n]|0,c[b>>2]|0)|0)==-1){f=-1;break}}i=e;return f|0}}while(0);c[h>>2]=d;a[g]=1;n=d;i=e;return n|0}function Ql(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=i;i=i+32|0;h=f|0;j=f+8|0;n=f+16|0;m=f+24|0;o=b+52|0;if((a[o]|0)!=0){g=b+48|0;h=c[g>>2]|0;if(!e){x=h;i=f;return x|0}c[g>>2]=-1;a[o]=0;x=h;i=f;return x|0}o=c[b+44>>2]|0;t=(o|0)>1?o:1;a:do{if((t|0)>0){q=b+32|0;o=0;while(1){p=eb(c[q>>2]|0)|0;if((p|0)==-1){k=-1;break}a[h+o|0]=p;o=o+1|0;if((o|0)>=(t|0)){break a}}i=f;return k|0}}while(0);b:do{if((a[b+53|0]|0)==0){r=b+40|0;q=b+36|0;o=h|0;p=j+1|0;s=b+32|0;while(1){w=c[r>>2]|0;x=w;v=c[x>>2]|0;x=c[x+4>>2]|0;y=c[q>>2]|0;u=h+t|0;w=Vc[c[(c[y>>2]|0)+16>>2]&31](y,w,o,u,n,j,p,m)|0;if((w|0)==2){k=-1;m=23;break}else if((w|0)==3){m=14;break}else if((w|0)!=1){l=t;break b}y=c[r>>2]|0;c[y>>2]=v;c[y+4>>2]=x;if((t|0)==8){k=-1;m=23;break}v=eb(c[s>>2]|0)|0;if((v|0)==-1){k=-1;m=23;break}a[u]=v;t=t+1|0}if((m|0)==14){a[j]=a[o]|0;l=t;break}else if((m|0)==23){i=f;return k|0}}else{a[j]=a[h|0]|0;l=t}}while(0);do{if(e){g=a[j]|0;c[b+48>>2]=g&255}else{e=b+32|0;while(1){if((l|0)<=0){m=21;break}l=l-1|0;if(($b(d[h+l|0]|0,c[e>>2]|0)|0)==-1){k=-1;m=23;break}}if((m|0)==21){g=a[j]|0;break}else if((m|0)==23){i=f;return k|0}}}while(0);y=g&255;i=f;return y|0}function Rl(){nl(0);Ub(164,35312,u|0)|0;return}function Sl(a){a=a|0;return}function Tl(a){a=a|0;a=a+4|0;I=c[a>>2]|0,c[a>>2]=I+1,I;return}function Ul(a){a=a|0;var b=0;b=a+4|0;if(((I=c[b>>2]|0,c[b>>2]=I+ -1,I)|0)!=0){b=0;return b|0}Dc[c[(c[a>>2]|0)+8>>2]&511](a);b=1;return b|0}function Vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=19600;d=ev(b|0)|0;f=Ou(d+13|0)|0;c[f+4>>2]=d;c[f>>2]=d;e=f+12|0;c[a+4>>2]=e;c[f+8>>2]=0;cv(e|0,b|0,d+1|0)|0;return}function Wl(a){a=a|0;var b=0,d=0;c[a>>2]=19600;b=a+4|0;d=(c[b>>2]|0)-4|0;if(((I=c[d>>2]|0,c[d>>2]=I+ -1,I)-1|0)>=0){d=a;Pu(d);return}Qu((c[b>>2]|0)-12|0);d=a;Pu(d);return}function Xl(a){a=a|0;var b=0;c[a>>2]=19600;a=a+4|0;b=(c[a>>2]|0)-4|0;if(((I=c[b>>2]|0,c[b>>2]=I+ -1,I)-1|0)>=0){return}Qu((c[a>>2]|0)-12|0);return}function Yl(a){a=a|0;return c[a+4>>2]|0}function Zl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;c[b>>2]=19536;if((a[d]&1)==0){d=d+1|0}else{d=c[d+8>>2]|0}e=ev(d|0)|0;g=Ou(e+13|0)|0;c[g+4>>2]=e;c[g>>2]=e;f=g+12|0;c[b+4>>2]=f;c[g+8>>2]=0;cv(f|0,d|0,e+1|0)|0;return}function _l(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a>>2]=19536;d=ev(b|0)|0;f=Ou(d+13|0)|0;c[f+4>>2]=d;c[f>>2]=d;e=f+12|0;c[a+4>>2]=e;c[f+8>>2]=0;cv(e|0,b|0,d+1|0)|0;return}function $l(a){a=a|0;var b=0,d=0;c[a>>2]=19536;b=a+4|0;d=(c[b>>2]|0)-4|0;if(((I=c[d>>2]|0,c[d>>2]=I+ -1,I)-1|0)>=0){d=a;Pu(d);return}Qu((c[b>>2]|0)-12|0);d=a;Pu(d);return}function am(a){a=a|0;var b=0;c[a>>2]=19536;a=a+4|0;b=(c[a>>2]|0)-4|0;if(((I=c[b>>2]|0,c[b>>2]=I+ -1,I)-1|0)>=0){return}Qu((c[a>>2]|0)-12|0);return}function bm(a){a=a|0;return c[a+4>>2]|0}function cm(a){a=a|0;var b=0,d=0;c[a>>2]=19600;b=a+4|0;d=(c[b>>2]|0)-4|0;if(((I=c[d>>2]|0,c[d>>2]=I+ -1,I)-1|0)>=0){d=a;Pu(d);return}Qu((c[b>>2]|0)-12|0);d=a;Pu(d);return}function dm(a){a=a|0;return}function em(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=d;c[a+4>>2]=b;return}function fm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+8|0;f=e|0;Tc[c[(c[a>>2]|0)+12>>2]&63](f,a,b);if((c[f+4>>2]|0)!=(c[d+4>>2]|0)){a=0;i=e;return a|0}a=(c[f>>2]|0)==(c[d>>2]|0);i=e;return a|0}function gm(a,b,d){a=a|0;b=b|0;d=d|0;if((c[b+4>>2]|0)!=(a|0)){a=0;return a|0}a=(c[b>>2]|0)==(d|0);return a|0}function hm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;d=Wb(e|0)|0;e=ev(d|0)|0;if(e>>>0>4294967279>>>0){nm(0)}if(e>>>0<11>>>0){a[b]=e<<1;b=b+1|0;cv(b|0,d|0,e)|0;d=b+e|0;a[d]=0;return}else{g=e+16&-16;f=Nu(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f;cv(b|0,d|0,e)|0;d=b+e|0;a[d]=0;return}}function im(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;g=f|0;j=d|0;k=c[j>>2]|0;h=e;do{if((k|0)!=0){l=a[h]|0;if((l&1)==0){l=(l&255)>>>1}else{l=c[e+4>>2]|0}if((l|0)!=0){xm(e,12816,2)|0;k=c[j>>2]|0}d=c[d+4>>2]|0;Tc[c[(c[d>>2]|0)+24>>2]&63](g,d,k);d=g;j=a[d]|0;if((j&1)==0){j=(j&255)>>>1;k=g+1|0}else{j=c[g+4>>2]|0;k=c[g+8>>2]|0}xm(e,k,j)|0;if((a[d]&1)==0){break}Pu(c[g+8>>2]|0)}}while(0);l=b;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];dv(h|0,0,12)|0;i=f;return}function jm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;h=d;d=i;i=i+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=c[h+4>>2];h=f|0;g=f+16|0;j=ev(e|0)|0;if(j>>>0>4294967279>>>0){nm(0)}if(j>>>0<11>>>0){a[g]=j<<1;k=g+1|0}else{l=j+16&-16;k=Nu(l)|0;c[g+8>>2]=k;c[g>>2]=l|1;c[g+4>>2]=j}cv(k|0,e|0,j)|0;a[k+j|0]=0;im(h,d,g);Zl(b|0,h);if(!((a[h]&1)==0)){Pu(c[h+8>>2]|0)}if(!((a[g]&1)==0)){Pu(c[g+8>>2]|0)}c[b>>2]=21560;l=b+8|0;k=c[d+4>>2]|0;c[l>>2]=c[d>>2];c[l+4>>2]=k;i=f;return}function km(a){a=a|0;am(a|0);Pu(a);return}function lm(a){a=a|0;am(a|0);return}function mm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i;if((c[a>>2]|0)==1){do{Za(34312,34288)|0;}while((c[a>>2]|0)==1)}if((c[a>>2]|0)!=0){e;return}c[a>>2]=1;f;Dc[d&511](b);g;c[a>>2]=-1;h;Ob(34312)|0;return}function nm(a){a=a|0;a=pc(8)|0;Vl(a,1304);c[a>>2]=19568;Fb(a|0,25576,40)}function om(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d;if((a[e]&1)==0){d=b;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];return}e=c[d+8>>2]|0;d=c[d+4>>2]|0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;b=b+1|0}else{g=d+16&-16;f=Nu(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=d;b=f}cv(b|0,e|0,d)|0;a[b+d|0]=0;return}function pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>4294967279>>>0){nm(0)}if(e>>>0<11>>>0){a[b]=e<<1;b=b+1|0;cv(b|0,d|0,e)|0;d=b+e|0;a[d]=0;return}else{g=e+16&-16;f=Nu(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f;cv(b|0,d|0,e)|0;d=b+e|0;a[d]=0;return}}function qm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;b=b+1|0;dv(b|0,e|0,d|0)|0;e=b+d|0;a[e]=0;return}else{g=d+16&-16;f=Nu(g)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=d;b=f;dv(b|0,e|0,d|0)|0;e=b+d|0;a[e]=0;return}}function rm(b){b=b|0;if((a[b]&1)==0){return}Pu(c[b+8>>2]|0);return}function sm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=ev(d|0)|0;f=b;h=a[f]|0;if((h&1)==0){g=10}else{h=c[b>>2]|0;g=(h&-2)-1|0;h=h&255}i=(h&1)==0;if(g>>>0<e>>>0){if(i){f=(h&255)>>>1}else{f=c[b+4>>2]|0}ym(b,g,e-g|0,f,0,f,e,d);return b|0}if(i){g=b+1|0}else{g=c[b+8>>2]|0}fv(g|0,d|0,e|0)|0;a[g+e|0]=0;if((a[f]&1)==0){a[f]=e<<1;return b|0}else{c[b+4>>2]=e;return b|0}return 0}function tm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=b;h=a[f]|0;g=(h&1)==0;if(g){h=(h&255)>>>1}else{h=c[b+4>>2]|0}if(h>>>0<d>>>0){um(b,d-h|0,e)|0;return}if(g){a[b+1+d|0]=0;a[f]=d<<1;return}else{a[(c[b+8>>2]|0)+d|0]=0;c[b+4>>2]=d;return}}function um(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((d|0)==0){return b|0}f=b;i=a[f]|0;if((i&1)==0){h=10}else{i=c[b>>2]|0;h=(i&-2)-1|0;i=i&255}if((i&1)==0){g=(i&255)>>>1}else{g=c[b+4>>2]|0}if((h-g|0)>>>0<d>>>0){zm(b,h,d-h+g|0,g,g,0,0);i=a[f]|0}if((i&1)==0){h=b+1|0}else{h=c[b+8>>2]|0}dv(h+g|0,e|0,d|0)|0;d=g+d|0;if((a[f]&1)==0){a[f]=d<<1}else{c[b+4>>2]=d}a[h+d|0]=0;return b|0} - - - -function Xc(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function Yc(){return i|0}function Zc(a){a=a|0;i=a}function _c(a,b){a=a|0;b=b|0;if((x|0)==0){x=a;y=b}}function $c(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function ad(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function bd(a){a=a|0;K=a}function cd(a){a=a|0;L=a}function dd(a){a=a|0;M=a}function ed(a){a=a|0;N=a}function fd(a){a=a|0;O=a}function gd(a){a=a|0;P=a}function hd(a){a=a|0;Q=a}function id(a){a=a|0;R=a}function jd(a){a=a|0;S=a}function kd(a){a=a|0;T=a}function ld(){c[6380]=p+8;c[6382]=s+8;c[6384]=r;c[6386]=s+8;c[6388]=r;c[6390]=s+8;c[6392]=r;c[6394]=s+8;c[6398]=s+8;c[6400]=r;c[6402]=p+8;c[6436]=s+8;c[6440]=s+8;c[6504]=s+8;c[6508]=s+8;c[6528]=p+8;c[6530]=s+8;c[6566]=s+8;c[6570]=s+8;c[6606]=s+8;c[6610]=s+8;c[6630]=p+8;c[6632]=p+8;c[6634]=s+8;c[6638]=s+8;c[6642]=s+8;c[6646]=p+8;c[6648]=p+8;c[6650]=p+8;c[6652]=p+8;c[6654]=p+8;c[6656]=p+8;c[6658]=p+8;c[6684]=s+8;c[6688]=p+8;c[6690]=s+8;c[6694]=s+8;c[6698]=s+8;c[6702]=p+8;c[6704]=p+8;c[6706]=p+8;c[6708]=p+8;c[6742]=p+8;c[6744]=p+8;c[6746]=p+8;c[6748]=s+8;c[6752]=s+8;c[6756]=s+8;c[6760]=s+8;c[6764]=s+8;c[6768]=s+8;c[6772]=s+8;c[6776]=s+8;c[6780]=s+8;c[6784]=s+8;c[6788]=s+8;c[6798]=p+8;c[6800]=p+8}function md(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a|0;c[f>>2]=b;g=a+4|0;c[g>>2]=e;h=a+8|0;c[h>>2]=0;c[h+4>>2]=0;a=a+16|0;c[a>>2]=0;i=64;l=0;k=0;while(1){if((e|0)==0){f=4;break}j=b+1|0;c[f>>2]=j;b=d[b]|0;e=e-1|0;c[g>>2]=e;i=i-8|0;b=jv(b|0,0,i|0)|0;k=b|k;l=K|l;c[h>>2]=k;c[h+4>>2]=l;if((i|0)>7){b=j}else{f=4;break}}if((f|0)==4){c[a>>2]=64-i;return}}function nd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=a+16|0;f=c[e>>2]|0;if((f|0)<(b|0)){j=64-f|0;f=a+4|0;a:do{if((j|0)>7){h=a|0;g=a+8|0;i=c[f>>2]|0;do{if((i|0)==0){break a}l=c[h>>2]|0;c[h>>2]=l+1;l=d[l]|0;i=i-1|0;c[f>>2]=i;j=j-8|0;l=jv(l|0,0,j|0)|0;k=K|c[g+4>>2];c[g>>2]=l|c[g>>2];c[g+4>>2]=k;}while((j|0)>7)}}while(0);f=64-j|0;c[e>>2]=f}k=a+8|0;i=c[k>>2]|0;j=c[k+4>>2]|0;l=kv(i|0,j|0,64-b|0)|0;j=jv(i|0,j|0,b|0)|0;c[k>>2]=j;c[k+4>>2]=K;c[e>>2]=f-b;return l|0}function od(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=a+16|0;f=c[e>>2]|0;if((f|0)<(b|0)){j=64-f|0;f=a+4|0;a:do{if((j|0)>7){h=a|0;g=a+8|0;i=c[f>>2]|0;do{if((i|0)==0){break a}l=c[h>>2]|0;c[h>>2]=l+1;l=d[l]|0;i=i-1|0;c[f>>2]=i;j=j-8|0;l=jv(l|0,0,j|0)|0;k=K|c[g+4>>2];c[g>>2]=l|c[g>>2];c[g+4>>2]=k;}while((j|0)>7)}}while(0);f=64-j|0;c[e>>2]=f}l=a+8|0;k=jv(c[l>>2]|0,c[l+4>>2]|0,b|0)|0;c[l>>2]=k;c[l+4>>2]=K;c[e>>2]=f-b;return}function pd(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+16|0;d=a+8|0;e=(c[b>>2]&-8|0)/8|0;f=a|0;c[f>>2]=(c[f>>2]|0)+(-e|0);a=a+4|0;c[a>>2]=(c[a>>2]|0)+e;c[d>>2]=0;c[d+4>>2]=0;c[b>>2]=0;return}function qd(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=a+16|0;g=a+4|0;f=a|0;e=a+8|0;a=0;k=c[b>>2]|0;while(1){if((k|0)<1){j=64-k|0;a:do{if((j|0)>7){i=c[g>>2]|0;do{if((i|0)==0){break a}k=c[f>>2]|0;c[f>>2]=k+1;k=d[k]|0;i=i-1|0;c[g>>2]=i;j=j-8|0;k=jv(k|0,0,j|0)|0;l=K|c[e+4>>2];c[e>>2]=k|c[e>>2];c[e+4>>2]=l;}while((j|0)>7)}}while(0);l=64-j|0;c[b>>2]=l}else{l=k}m=c[e>>2]|0;o=c[e+4>>2]|0;i=m<<1|0>>>31;j=o<<1|m>>>31;c[e>>2]=i;c[e+4>>2]=j;k=l-1|0;c[b>>2]=k;n=-1;if(!((o|0)>(n|0)|(o|0)==(n|0)&m>>>0>-1>>>0)){break}if((a|0)>19){b=-99999;h=19;break}else{a=a+1|0}}if((h|0)==19){return b|0}if((a|0)==0){o=0;return o|0}if((l|0)<=(a|0)){h=65-l|0;b:do{if((h|0)>7){k=c[g>>2]|0;do{if((k|0)==0){break b}o=c[f>>2]|0;c[f>>2]=o+1;o=d[o]|0;k=k-1|0;c[g>>2]=k;h=h-8|0;o=jv(o|0,0,h|0)|0;i=o|i;j=K|j;c[e>>2]=i;c[e+4>>2]=j;}while((h|0)>7)}}while(0);k=64-h|0;c[b>>2]=k}o=kv(i|0,j|0,64-a|0)|0;n=jv(i|0,j|0,a|0)|0;c[e>>2]=n;c[e+4>>2]=K;c[b>>2]=k-a;b=(1<<a)-1+o|0;if((b|0)>0){o=b;return o|0}else{ec(12320,15064,146,17992);return 0}return 0}function rd(a){a=a|0;a=qd(a)|0;if((a|0)==(-99999|0)){a=-99999;return a|0}else if((a|0)==0){a=0;return a|0}else{a=(((a&1|0)==0?-a|0:a+1|0)|0)/2|0;return a|0}return 0}function sd(a,b,d){a=a|0;b=b|0;d=d|0;if((d|0)>-1){c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=b+d;return}else{ec(1440,13952,138,18864)}}function td(a){a=a|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=a+4|0;e=c[f>>2]|0;h=(c[a+8>>2]|0)-e|0;c[a+12>>2]=510;g=a+20|0;b[g>>1]=8;a=a+16|0;c[a>>2]=0;if((h|0)<=0){return}j=e+1|0;c[f>>2]=j;i=(d[e]|0)<<8;c[a>>2]=i;b[g>>1]=0;if((h|0)<=1){return}c[f>>2]=e+2;c[a>>2]=i|(d[j]|0);b[g>>1]=-8;return}function ud(f,g){f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=f+12|0;n=c[j>>2]|0;h=g|0;l=d[(n>>>6)-4+(27288+(((d[h]|0)>>>1&255)<<2))|0]|0;n=n-l|0;c[j>>2]=n;k=n<<7;g=f+16|0;m=c[g>>2]|0;if(m>>>0<k>>>0){l=a[h]|0;m=l&1;i=m&255;a[h]=a[30416+((l&255)>>>1&255)|0]<<1|m;if(!(k>>>0<32768>>>0)){n=i;return n|0}c[j>>2]=n<<1&67108862;h=c[g>>2]<<1;c[g>>2]=h;j=f+20|0;n=(b[j>>1]|0)+1&65535;b[j>>1]=n;if(!(n<<16>>16==0)){n=i;return n|0}b[j>>1]=-8;k=f+4|0;j=c[k>>2]|0;if(!(j>>>0<(c[f+8>>2]|0)>>>0)){n=i;return n|0}c[k>>2]=j+1;c[g>>2]=h|(d[j]|0);n=i;return n|0}else{i=d[30736+(l>>>3)|0]|0;c[g>>2]=m-k<<i;c[j>>2]=l<<i;k=a[h]|0;j=k&1^1;if((k&255)>>>0<2>>>0){k=j&255|k&-2;a[h]=k}a[h]=a[30480+((k&255)>>>1&255)|0]<<1|k&1;h=f+20|0;l=(e[h>>1]|0)+i&65535;b[h>>1]=l;if(!(l<<16>>16>-1)){n=j;return n|0}k=f+4|0;i=c[k>>2]|0;if(i>>>0<(c[f+8>>2]|0)>>>0){c[k>>2]=i+1;c[g>>2]=(d[i]|0)<<(l<<16>>16)|c[g>>2]}b[h>>1]=l-8;n=j;return n|0}return 0}function vd(a){a=a|0;var e=0,f=0,g=0,h=0,i=0;g=a+12|0;f=(c[g>>2]|0)-2|0;c[g>>2]=f;i=f<<7;e=a+16|0;h=c[e>>2]|0;if(!(h>>>0<i>>>0)){i=1;return i|0}if(!(i>>>0<32768>>>0)){i=0;return i|0}c[g>>2]=f<<1&67108862;f=h<<1;c[e>>2]=f;g=a+20|0;i=(b[g>>1]|0)+1&65535;b[g>>1]=i;if(!(i<<16>>16==0)){i=0;return i|0}b[g>>1]=-8;h=a+4|0;g=c[h>>2]|0;if(!(g>>>0<(c[a+8>>2]|0)>>>0)){i=0;return i|0}c[h>>2]=g+1;c[e>>2]=f+(d[g]|0);i=0;return i|0}function wd(a){a=a|0;var e=0,f=0,g=0,h=0,i=0;e=a+16|0;f=c[e>>2]<<1;c[e>>2]=f;g=a+20|0;i=(b[g>>1]|0)+1&65535;b[g>>1]=i;do{if(i<<16>>16>-1){i=a+4|0;h=c[i>>2]|0;if(!((c[a+8>>2]|0)>>>0>h>>>0)){break}b[g>>1]=-8;c[i>>2]=h+1;f=f|(d[h]|0);c[e>>2]=f}}while(0);a=c[a+12>>2]<<7;if(f>>>0<a>>>0){i=0;return i|0}c[e>>2]=f-a;i=1;return i|0}function xd(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if((e|0)<=0){m=e;return m|0}h=a+16|0;f=a+20|0;i=a+8|0;g=a+4|0;a=a+12|0;j=0;l=c[h>>2]|0;k=b[f>>1]|0;while(1){l=l<<1;c[h>>2]=l;k=k+1&65535;b[f>>1]=k;do{if(k<<16>>16>-1){m=c[g>>2]|0;if(!((c[i>>2]|0)>>>0>m>>>0)){break}b[f>>1]=-8;c[g>>2]=m+1;l=d[m]|0|l;c[h>>2]=l;k=-8}}while(0);m=c[a>>2]<<7;if(l>>>0<m>>>0){e=j;f=8;break}l=l-m|0;c[h>>2]=l;j=j+1|0;if((j|0)>=(e|0)){f=8;break}}if((f|0)==8){return e|0}return 0}function yd(a,f){a=a|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((f|0)<9){if((f|0)==0){n=0;return n|0}g=a+16|0;j=c[g>>2]<<f;c[g>>2]=j;l=a+20|0;k=(e[l>>1]|0)+f&65535;b[l>>1]=k;do{if(k<<16>>16>-1){i=a+4|0;h=c[i>>2]|0;if(!((c[a+8>>2]|0)>>>0>h>>>0)){break}c[i>>2]=h+1;n=(d[h]|0)<<(k<<16>>16);b[l>>1]=k-8;j=n|j;c[g>>2]=j}}while(0);h=c[a+12>>2]<<7;i=(j>>>0)/(h>>>0)|0;a=1<<f;n=(i|0)<(a|0)?i:a-1|0;m=j-(ga(n,h)|0)|0;c[g>>2]=m;return n|0}h=a+16|0;j=c[h>>2]<<8;c[h>>2]=j;g=a+20|0;i=b[g>>1]|0;k=i+8&65535;b[g>>1]=k;do{if(k<<16>>16>-1){l=a+4|0;m=c[l>>2]|0;if(!((c[a+8>>2]|0)>>>0>m>>>0)){break}c[l>>2]=m+1;k=(d[m]|0)<<(k<<16>>16);b[g>>1]=i;j=k|j;c[h>>2]=j;k=i}}while(0);i=c[a+12>>2]<<7;l=(j>>>0)/(i>>>0)|0;l=(l|0)>255?255:l;m=j-(ga(l,i)|0)|0;c[h>>2]=m;j=f-8|0;if((j|0)==0){n=l;return n|0}f=a+8|0;a=a+4|0;do{j=j-1|0;l=l<<1;m=m<<1;c[h>>2]=m;k=k+1&65535;b[g>>1]=k;do{if(k<<16>>16>-1){n=c[a>>2]|0;if(!((c[f>>2]|0)>>>0>n>>>0)){break}b[g>>1]=-8;c[a>>2]=n+1;m=d[n]|0|m;c[h>>2]=m;k=-8}}while(0);if(m>>>0<i>>>0){n=0}else{m=m-i|0;c[h>>2]=m;n=1}l=n|l;}while((j|0)!=0);return l|0}function zd(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=a+16|0;k=a+20|0;g=a+8|0;l=a+4|0;j=a+12|0;i=e+31|0;m=0;o=c[h>>2]|0;n=b[k>>1]|0;while(1){o=o<<1;c[h>>2]=o;n=n+1&65535;b[k>>1]=n;do{if(n<<16>>16>-1){p=c[l>>2]|0;if(!((c[g>>2]|0)>>>0>p>>>0)){break}b[k>>1]=-8;c[l>>2]=p+1;o=d[p]|0|o;c[h>>2]=o;n=-8}}while(0);p=c[j>>2]<<7;if(o>>>0<p>>>0){break}o=o-p|0;c[h>>2]=o;if((e|0)==(i|0)){g=0;f=8;break}else{m=m+(1<<e)|0;e=e+1|0}}if((f|0)==8){return g|0}p=(yd(a,e)|0)+m|0;return p|0}function Ad(a){a=a|0;vb(a|0)|0;Pb()}function Bd(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=i;i=i+16|0;m=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[m>>2];m=k|0;d=d|0;l=c[d>>2]|0;if((l|0)==0){c[b>>2]=0;i=k;return}p=e;n=g-p|0;h=h+12|0;o=c[h>>2]|0;o=(o|0)>(n|0)?o-n|0:0;n=f;p=n-p|0;do{if((p|0)>0){if((Hc[c[(c[l>>2]|0)+48>>2]&63](l,e,p)|0)==(p|0)){break}c[d>>2]=0;c[b>>2]=0;i=k;return}}while(0);do{if((o|0)>0){if(o>>>0<11>>>0){p=o<<1&255;e=m;a[e]=p;q=m+1|0}else{p=o+16&-16;q=Nu(p)|0;c[m+8>>2]=q;p=p|1;c[m>>2]=p;c[m+4>>2]=o;p=p&255;e=m}dv(q|0,j|0,o|0)|0;a[q+o|0]=0;if((p&1)==0){j=m+1|0}else{j=c[m+8>>2]|0}if((Hc[c[(c[l>>2]|0)+48>>2]&63](l,j,o)|0)==(o|0)){if((a[e]&1)==0){break}Pu(c[m+8>>2]|0);break}c[d>>2]=0;c[b>>2]=0;if((a[e]&1)==0){i=k;return}Pu(c[m+8>>2]|0);i=k;return}}while(0);m=g-n|0;do{if((m|0)>0){if((Hc[c[(c[l>>2]|0)+48>>2]&63](l,f,m)|0)==(m|0)){break}c[d>>2]=0;c[b>>2]=0;i=k;return}}while(0);c[h>>2]=0;c[b>>2]=l;i=k;return}function Cd(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function Dd(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;if((a[51944]|0)!=0){Gb(12840,(f=i,i=i+16|0,c[f>>2]=b,c[f+8>>2]=d,f)|0)|0;i=f}f=c[d+4>>2]|0;if((f|0)!=0){c[f>>2]=(c[f>>2]|0)+1}c[b+4>>2]=f;c[b>>2]=c[d>>2];i=e;return}function Ed(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;if((a[51944]|0)!=0){Gb(16064,(f=i,i=i+8|0,c[f>>2]=b,f)|0)|0;i=f}e=b+4|0;f=c[e>>2]|0;if((f|0)==0){i=d;return}g=(c[f>>2]|0)-1|0;c[f>>2]=g;if((g|0)!=0){i=d;return}b=b|0;if((a[51944]|0)!=0){Gb(13256,(g=i,i=i+8|0,c[g>>2]=c[b>>2],g)|0)|0;i=g}b=c[b>>2]|0;if((b|0)!=0){Qu(b|0)}e=c[e>>2]|0;if((e|0)==0){i=d;return}Pu(e);i=d;return}function Fd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;if((a[51944]|0)!=0){Gb(10456,(j=i,i=i+8|0,c[j>>2]=b,j)|0)|0;i=j}g=b+4|0;h=c[g>>2]|0;do{if((h|0)!=0){j=c[h>>2]|0;if((j|0)==1){j=c[b>>2]|0;Gd(j,d,e);i=f;return}if((j|0)>1){c[h>>2]=j-1;break}else{ec(608,2464,177,17440)}}}while(0);if((a[51944]|0)!=0){Gb(17056,(j=i,i=i+8|0,c[j>>2]=b,j)|0)|0;i=j}j=Ou(172)|0;c[b>>2]=j;h=Nu(4)|0;c[g>>2]=h;c[h>>2]=1;Gd(j,d,e);i=f;return}function Gd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;do{if((d|0)>0){k=d-1|0;Kd(e,b+5|0,c[30216+(k*12|0)>>2]|0,1);Kd(e,b+6|0,c[30220+(k*12|0)>>2]|0,1);Kd(e,b+7|0,c[30224+(k*12|0)>>2]|0,1);Kd(e,b+149|0,c[30152+(k<<2)>>2]|0,1);Kd(e,b+147|0,c[30240+(k<<2)>>2]|0,1);Kd(e,b+148|0,c[30336+(k<<2)>>2]|0,1);Kd(e,b+156|0,95,1);Kd(e,b+157|0,79,1);Kd(e,b+158|0,63,1);Kd(e,b+159|0,31,1);Kd(e,b+160|0,31,1);Kd(e,b+154|0,153,1);Kd(e,b+155|0,153,1);f=(d|0)==1?0:2;Kd(e,b+150|0,c[29904+(f<<2)>>2]|0,1);Kd(e,b+151|0,c[29904+((f|1)<<2)>>2]|0,1);Kd(e,b+152|0,168,1);Kd(e,b+153|0,79,1);f=(e|0)<0;do{if(f){g=72}else{h=((e*-5|0)>>4)+72|0;g=(e|0)<52;if((h|0)<1&g){g=1;break}if((h|0)>126&g){g=126;break}g=(e|0)>51?56:h}}while(0);h=(g|0)>63;k=h?g+64|0:63-g|0;g=(k&255)<<1|h&1;h=b+143|0;if(!((k&127)>>>0<63>>>0)){a[h]=g;ec(16144,2464,210,17960)}dv(h|0,g|0,2)|0;do{if(f){g=72}else{f=((e*-5|0)>>4)+72|0;g=(e|0)<52;if((f|0)<1&g){g=1;break}if((f|0)>126&g){g=126;break}g=(e|0)>51?56:f}}while(0);f=(g|0)>63;k=f?g+64|0:63-g|0;f=(k&255)<<1|f&1;g=b+145|0;if((k&127)>>>0<63>>>0){dv(g|0,f|0,2)|0;break}else{a[g]=f;ec(16144,2464,210,17960)}}}while(0);Kd(e,b+2|0,c[30160+(d*12|0)>>2]|0,1);Kd(e,b+3|0,c[30164+(d*12|0)>>2]|0,1);Kd(e,b+4|0,c[30168+(d*12|0)>>2]|0,1);k=(d|0)!=2?d:5;Kd(e,b+8|0,c[30296+(k<<2)>>2]|0,1);Kd(e,b+9|0,c[30296+(k+1<<2)>>2]|0,1);Kd(e,b+10|0,c[30296+(k+2<<2)>>2]|0,1);Kd(e,b+11|0,c[30296+(k+3<<2)>>2]|0,1);Kd(e,b+12|0,c[29352+(d<<2)>>2]|0,1);Kd(e,b+13|0,c[29888+(d<<2)>>2]|0,1);j=(d|0)==0?0:2;Kd(e,b+14|0,c[30344+(j<<2)>>2]|0,1);Kd(e,b+15|0,c[30344+((j|1)<<2)>>2]|0,1);j=d<<2;Kd(e,b+16|0,c[30248+(j<<2)>>2]|0,1);i=j|1;Kd(e,b+17|0,c[30248+(i<<2)>>2]|0,1);h=j|2;Kd(e,b+18|0,c[30248+(h<<2)>>2]|0,1);g=j|3;Kd(e,b+19|0,c[30248+(g<<2)>>2]|0,1);f=d*3|0;Kd(e,b+20|0,c[29936+(f<<2)>>2]|0,1);Kd(e,b+21|0,c[29936+(f+1<<2)>>2]|0,1);Kd(e,b+22|0,c[29936+(f+2<<2)>>2]|0,1);f=d*18|0;k=0;while(1){Kd(e,b+(k+25)|0,c[28736+(k+f<<2)>>2]|0,1);k=k+1|0;if((k|0)>=18){k=0;break}}do{Kd(e,b+(k+43)|0,c[28736+(k+f<<2)>>2]|0,1);k=k+1|0;}while((k|0)<18);Kd(e,b+61|0,c[29976+(j<<2)>>2]|0,1);Kd(e,b+62|0,c[29976+(i<<2)>>2]|0,1);Kd(e,b+63|0,c[29976+(h<<2)>>2]|0,1);Kd(e,b+64|0,c[29976+(g<<2)>>2]|0,1);f=0;do{Kd(e,b+(f+65)|0,c[29384+(d*168|0)+(f<<2)>>2]|0,1);f=f+1|0;}while((f|0)<42);Kd(e,b+107|0,c[28952+(d<<3)>>2]|0,1);Kd(e,b+108|0,c[28956+(d<<3)>>2]|0,1);g=d*24|0;f=0;do{Kd(e,b+(f+109)|0,c[29048+(f+g<<2)>>2]|0,1);f=f+1|0;}while((f|0)<24);k=d*6|0;Kd(e,b+133|0,c[28976+(k<<2)>>2]|0,1);Kd(e,b+134|0,c[28976+((k|1)<<2)>>2]|0,1);Kd(e,b+135|0,c[28976+(k+2<<2)>>2]|0,1);Kd(e,b+136|0,c[28976+(k+3<<2)>>2]|0,1);Kd(e,b+137|0,c[28976+(k+4<<2)>>2]|0,1);Kd(e,b+138|0,c[28976+(k+5<<2)>>2]|0,1);Kd(e,b,c[29920+(d<<2)>>2]|0,1);Kd(e,b+1|0,c[29336+(d<<2)>>2]|0,1);Kd(e,b+139|0,154,1);Kd(e,b+140|0,154,1);Kd(e,b+141|0,139,1);Kd(e,b+142|0,139,1);Kd(e,b+161|0,c[29368+(d<<2)>>2]|0,1);a[b+23|0]=1;a[b+24|0]=1;dv(b+162|0,1,10)|0;return}function Hd(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=b+4|0;if((a[51944]|0)!=0){g=c[e>>2]|0;Gb(7336,(f=i,i=i+16|0,c[f>>2]=b,c[f+8>>2]=g,f)|0)|0;i=f}f=c[e>>2]|0;if((f|0)==0){i=d;return}c[f>>2]=(c[f>>2]|0)-1;c[b>>2]=0;c[e>>2]=0;i=d;return}function Id(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;e=b+4|0;if((a[51944]|0)!=0){f=c[e>>2]|0;Gb(5320,(g=i,i=i+16|0,c[g>>2]=b,c[g+8>>2]=f,g)|0)|0;i=g}f=c[e>>2]|0;if((f|0)==0){ec(3784,2464,95,17424)}g=c[f>>2]|0;if((g|0)<=1){i=d;return}c[f>>2]=g-1;b=b|0;g=c[b>>2]|0;f=Ou(172)|0;c[b>>2]=f;b=Nu(4)|0;c[e>>2]=b;c[b>>2]=1;cv(f|0,g|0,172)|0;i=d;return}function Jd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;if((a[51944]|0)!=0){Gb(1288,(h=i,i=i+16|0,c[h>>2]=b,c[h+8>>2]=d,h)|0)|0;i=h}f=d+4|0;g=c[f>>2]|0;if((g|0)==0){d=b+4|0;if((a[51944]|0)!=0){g=c[d>>2]|0;Gb(7336,(h=i,i=i+16|0,c[h>>2]=b,c[h+8>>2]=g,h)|0)|0;i=h}f=c[d>>2]|0;if((f|0)==0){i=e;return b|0}c[f>>2]=(c[f>>2]|0)-1;c[b>>2]=0;c[d>>2]=0;i=e;return b|0}c[g>>2]=(c[g>>2]|0)+1;g=b+4|0;if((a[51944]|0)!=0){j=c[g>>2]|0;Gb(7336,(h=i,i=i+16|0,c[h>>2]=b,c[h+8>>2]=j,h)|0)|0;i=h}h=c[g>>2]|0;if((h|0)==0){h=b|0}else{c[h>>2]=(c[h>>2]|0)-1;h=b|0;c[h>>2]=0;c[g>>2]=0}c[h>>2]=c[d>>2];c[g>>2]=c[f>>2];i=e;return b|0}function Kd(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=((d>>4)*5|0)-45|0;d=(d<<3&120)-16|0;h=(b|0)<0;if(h){i=0}else{i=(b|0)>51?51:b}do{if((((ga(i,g)|0)>>4)+d|0)<1){g=1}else{if(h){i=0}else{i=(b|0)>51?51:b}if((((ga(i,g)|0)>>4)+d|0)>126){g=126;break}if(h){b=0}else{b=(b|0)>51?51:b}g=((ga(b,g)|0)>>4)+d|0}}while(0);if((e|0)<=0){return}d=(g|0)>63;i=d?g+64|0:63-g|0;g=(i&255)<<1|d&1;if((i&127)>>>0<63>>>0){f=0}else{a[c|0]=g;ec(16144,2464,210,17960)}do{a[c+f|0]=g;f=f+1|0;}while((f|0)<(e|0));return}function Ld(){return 8320}function Md(){return 16777728}function Nd(a){a=a|0;switch(a|0){case 1002:{a=13432;break};case 1004:{a=13016;break};case 1005:{a=12752;break};case 1e3:{a=13832;break};case 1015:{a=9944;break};case 1016:{a=9600;break};case 1017:{a=9176;break};case 18:{a=14136;break};case 1001:{a=13632;break};case 16:{a=14672;break};case 1003:{a=13224;break};case 17:{a=14400;break};case 6:{a=5048;break};case 7:{a=3576;break};case 8:{a=2272;break};case 9:{a=1176;break};case 10:{a=496;break};case 11:{a=16968;break};case 12:{a=16376;break};case 502:{a=16032;break};case 13:{a=15616;break};case 14:{a=15272;break};case 1:{a=12824;break};case 1010:{a=11360;break};case 1011:{a=11088;break};case 4:{a=9888;break};case 1025:{a=6920;break};case 1026:{a=6616;break};case 0:{a=15416;break};case 1006:{a=12544;break};case 1007:{a=12168;break};case 1018:{a=8704;break};case 1019:{a=8520;break};case 1020:{a=8200;break};case 1008:{a=12008;break};case 1009:{a=11632;break};case 15:{a=14960;break};case 1012:{a=10848;break};case 1013:{a=10576;break};case 1014:{a=10280;break};case 5:{a=6896;break};case 1021:{a=8032;break};case 1022:{a=7776;break};case 1023:{a=7480;break};case 1024:{a=7200;break};default:{a=6440}}return a|0}function Od(a){a=a|0;if((a|0)==0){a=1;return a|0}a=(a|0)>999|0;return a|0}function Pd(){var a=0;do{if(((I=c[12984]|0,c[12984]=I+1,I)+1|0)<=1){Ej();if(Mj()|0){break}I=c[12984]|0,c[12984]=I-1,I;a=0;return a|0}}while(0);a=Nu(377228)|0;Le(a);if((a|0)!=0){return a|0}a=(I=c[12984]|0,c[12984]=I-1,I)-1|0;if((a|0)<0){I=c[12984]|0,c[12984]=I+1,I;a=0;return a|0}if((a|0)!=0){a=0;return a|0}Nj();a=0;return a|0}function Qd(a){a=a|0;var b=0;b=a;Oe(b);if((a|0)!=0){Dc[c[(c[a>>2]|0)+4>>2]&511](b)}a=(I=c[12984]|0,c[12984]=I-1,I)-1|0;if((a|0)<0){I=c[12984]|0,c[12984]=I+1,I;b=12;return b|0}if((a|0)!=0){b=0;return b|0}Nj();b=0;return b|0}function Rd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Xi(a+548|0,b,c,d,e,f)|0}function Sd(b){b=b|0;var c=0;b=b+548|0;c=b;Zi(c)|0;Zi(c)|0;a[b]=1;return 0}function Td(a,b){a=a|0;b=b|0;return cf(a,b)|0}function Ud(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Yi(a+548|0,b,c,d,e,f)|0}function Vd(a){a=a|0;Zi(a+548|0)|0;return}function Wd(b){b=b|0;Zi(b+548|0)|0;a[b+549|0]=1;return}function Xd(a){a=a|0;Pe(a);return}function Yd(b){b=b|0;var d=0;if((c[b+376196>>2]|0)<=0){d=0;return d|0}d=c[b+376192>>2]|0;d=c[(c[(c[b+376180>>2]|0)+(d>>>10<<2)>>2]|0)+((d&1023)<<2)>>2]|0;if((d|0)==0){d=0;return d|0}a[d+100|0]=0;Dh(b+376144|0);return d|0}function Zd(a){a=a|0;var b=0;if((c[a+376196>>2]|0)<=0){a=0;return a|0}b=c[a+376192>>2]|0;a=c[(c[(c[a+376180>>2]|0)+(b>>>10<<2)>>2]|0)+((b&1023)<<2)>>2]|0;return a|0}function _d(b){b=b|0;var d=0;if((c[b+376196>>2]|0)==0){return}d=c[b+376192>>2]|0;a[(c[(c[(c[b+376180>>2]|0)+(d>>>10<<2)>>2]|0)+((d&1023)<<2)>>2]|0)+100|0]=0;Dh(b+376144|0);return}function $d(a){a=a|0;return jf(a)|0}function ae(a){a=a|0;return c[a+375908>>2]|0}function be(a,b){a=a|0;b=b|0;kf(a,b);return}function ce(a,b){a=a|0;b=b|0;mf(a,b);return}function de(a,b){a=a|0;b=b|0;return lf(a,b)|0}function ee(a){a=a|0;return nf(a+4|0)|0}function fe(b,c,d){b=b|0;c=c|0;d=d|0;if((c|0)==7){a[b+532|0]=(d|0)!=0|0;return}else if((c|0)==8){a[b+533|0]=(d|0)!=0|0;return}else if((c|0)==6){a[b+514|0]=(d|0)!=0|0;return}else if((c|0)==0){a[b+512|0]=(d|0)!=0|0;return}else{ec(6320,6192,503,17144)}}function ge(a,b,d){a=a|0;b=b|0;d=d|0;switch(b|0){case 4:{c[a+528>>2]=d;return};case 1:{c[a+516>>2]=d;return};case 5:{Ke(a,d);return};case 2:{c[a+520>>2]=d;return};case 3:{c[a+524>>2]=d;return};default:{ec(6320,6192,536,17120)}}}function he(a,b){a=a|0;b=b|0;if((b|0)==7){a=a+532|0}else if((b|0)==8){a=a+533|0}else if((b|0)==6){a=a+514|0}else if((b|0)==0){a=a+512|0}else{ec(6320,6192,571,17176);return 0}return d[a]|0|0}function ie(a){a=a|0;var b=0;b=c[a+584>>2]|0;a=c[a+556>>2]|0;if((a|0)==0){a=b;return a|0}a=(c[a+24>>2]|0)+b|0;return a|0}function je(a){a=a|0;return((c[a+556>>2]|0)!=0)+(c[a+580>>2]|0)|0}function ke(a,b){a=a|0;b=b|0;if((b|0)==1|(b|0)==2){b=c[a+80>>2]|0;return b|0}else if((b|0)==0){b=c[a+72>>2]|0;return b|0}else{b=0;return b|0}return 0}function le(a,b){a=a|0;b=b|0;if((b|0)==0){b=c[a+76>>2]|0;return b|0}else if((b|0)==1|(b|0)==2){b=c[a+84>>2]|0;return b|0}else{b=0;return b|0}return 0}function me(a,b){a=a|0;b=b|0;if((b|0)==1|(b|0)==2){b=c[a+5768>>2]|0;return b|0}else if((b|0)==0){b=c[a+5760>>2]|0;return b|0}else{b=0;return b|0}return 0}function ne(a){a=a|0;return c[a+20>>2]|0}function oe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if(!(b>>>0<3>>>0)){ec(5944,6192,639,17240);return 0}e=c[a+60+(b<<2)>>2]|0;if((d|0)==0){return e|0}f=c[((b|0)==0?a+40|0:a+44|0)>>2]|0;if((b|0)==1|(b|0)==2){a=c[a+5768>>2]|0}else if((b|0)==0){a=c[a+5760>>2]|0}else{a=0}b=ga((a+7|0)/8|0,f)|0;c[d>>2]=b;return e|0}function pe(a,b){a=a|0;b=b|0;if(b>>>0<3>>>0){return c[a+10492+(b<<2)>>2]|0}else{ec(5944,6192,650,17208);return 0}return 0}function qe(a){a=a|0;a=a+10480|0;return(K=c[a+4>>2]|0,c[a>>2]|0)|0}function re(a){a=a|0;return c[a+10488>>2]|0}function se(a,b){a=a|0;b=b|0;c[a+10488>>2]=b;return}function te(b,e,f,g,h,i,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=b+10448|0;l=c[m>>2]|0;q=e>>l;if(!((q|0)>-1)){ec(8880,6264,118,17352)}p=b+10452|0;o=b+10456|0;n=b+10440|0;k=f;l=f>>l;while(1){f=c[p>>2]|0;if((q|0)>=(f|0)){m=4;break}if(!((l|0)>-1)){m=7;break}if((l|0)>=(c[o>>2]|0)){m=7;break}r=(ga(f,l)|0)+q|0;l=1<<g;if(((d[(c[n>>2]|0)+r|0]|0)&1<<h|0)==0){m=9;break}l=l>>1;r=l+e|0;l=l+k|0;g=g-1|0;h=h+1|0;te(b,e,k,g,h,i,j);te(b,r,k,g,h,16,j);te(b,e,l,g,h,i,32);f=c[m>>2]|0;q=r>>f;if((q|0)>-1){e=r;k=l;i=16;j=32;l=l>>f}else{m=4;break}}if((m|0)==4){ec(8880,6264,118,17352)}else if((m|0)==7){ec(4520,6264,119,17352)}else if((m|0)==9){m=(l|0)>0;if(!m){return}n=i&255;i=(e|0)/4|0;h=b+10472|0;p=b+10476|0;g=b+10460|0;f=0;do{o=(f+k|0)/4|0;q=c[h>>2]|0;do{if((i|0)<(q|0)){if((o|0)>=(c[p>>2]|0)){break}r=(ga(q,o)|0)+i|0;r=(c[g>>2]|0)+r|0;a[r]=a[r]|n}}while(0);f=f+4|0;}while((f|0)<(l|0));if(!m){return}j=j&255;k=(k|0)/4|0;n=b+10472|0;m=b+10476|0;b=b+10460|0;p=0;do{o=(p+e|0)/4|0;i=c[n>>2]|0;do{if((o|0)<(i|0)){if((k|0)>=(c[m>>2]|0)){break}r=(ga(i,k)|0)+o|0;r=(c[b>>2]|0)+r|0;a[r]=a[r]|j}}while(0);p=p+4|0;}while((p|0)<(l|0));return}}function ue(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0;i=c[b+10368>>2]|0;j=e>>i;i=f>>i;if(!((j|0)>-1)){ec(8880,6264,118,17352)}h=c[b+10372>>2]|0;if((j|0)>=(h|0)){ec(8880,6264,118,17352)}if(!((i|0)>-1)){ec(4520,6264,119,17352)}if((i|0)>=(c[b+10376>>2]|0)){ec(4520,6264,119,17352)}n=(ga(h,i)|0)+j|0;n=(c[b+10360>>2]|0)+(n*3|0)|0;i=1<<g;k=1<<g-1;g=1<<g-2;switch(((d[n]|d[n+1|0]<<8)<<16>>16&65535)>>>3&255&7|0){case 4:{if((i|0)<=0){return}f=(g+f|0)/4|0;g=b+10472|0;h=b+10476|0;l=b+10460|0;k=0;do{j=(k+e|0)/4|0;b=c[g>>2]|0;do{if((j|0)<(b|0)){if((f|0)>=(c[h>>2]|0)){break}n=(ga(b,f)|0)+j|0;n=(c[l>>2]|0)+n|0;a[n]=a[n]|-128}}while(0);k=k+1|0;}while((k|0)<(i|0));return};case 5:{if((i|0)<=0){return}h=(k+f+g|0)/4|0;g=b+10472|0;f=b+10476|0;j=b+10460|0;k=0;do{b=(k+e|0)/4|0;l=c[g>>2]|0;do{if((b|0)<(l|0)){if((h|0)>=(c[f>>2]|0)){break}n=(ga(l,h)|0)+b|0;n=(c[j>>2]|0)+n|0;a[n]=a[n]|-128}}while(0);k=k+1|0;}while((k|0)<(i|0));return};case 6:{if((i|0)<=0){return}e=(g+e|0)/4|0;h=b+10472|0;g=b+10476|0;b=b+10460|0;j=0;do{l=(j+f|0)/4|0;k=c[h>>2]|0;do{if((e|0)<(k|0)){if((l|0)>=(c[g>>2]|0)){break}n=(ga(k,l)|0)+e|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|64}}while(0);j=j+1|0;}while((j|0)<(i|0));return};case 7:{if((i|0)<=0){return}g=(k+e+g|0)/4|0;h=b+10472|0;e=b+10476|0;b=b+10460|0;j=0;do{l=(j+f|0)/4|0;k=c[h>>2]|0;do{if((g|0)<(k|0)){if((l|0)>=(c[e>>2]|0)){break}n=(ga(k,l)|0)+g|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|64}}while(0);j=j+1|0;}while((j|0)<(i|0));return};case 1:{if((i|0)<=0){return}f=(k+f|0)/4|0;h=b+10472|0;g=b+10476|0;b=b+10460|0;j=0;do{l=(j+e|0)/4|0;k=c[h>>2]|0;do{if((l|0)<(k|0)){if((f|0)>=(c[g>>2]|0)){break}n=(ga(k,f)|0)+l|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|-128}}while(0);j=j+1|0;}while((j|0)<(i|0));return};case 2:{if((i|0)<=0){return}e=(k+e|0)/4|0;h=b+10472|0;g=b+10476|0;b=b+10460|0;j=0;do{l=(j+f|0)/4|0;k=c[h>>2]|0;do{if((e|0)<(k|0)){if((l|0)>=(c[g>>2]|0)){break}n=(ga(k,l)|0)+e|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|64}}while(0);j=j+1|0;}while((j|0)<(i|0));return};case 3:{if((i|0)<=0){return}h=(k+e|0)/4|0;g=b+10472|0;j=b+10476|0;b=b+10460|0;k=(k+f|0)/4|0;l=0;do{m=(l+f|0)/4|0;n=c[g>>2]|0;do{if((h|0)<(n|0)){if((m|0)>=(c[j>>2]|0)){break}n=(ga(n,m)|0)+h|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|64;n=c[g>>2]|0}}while(0);m=(l+e|0)/4|0;do{if((m|0)<(n|0)){if((k|0)>=(c[j>>2]|0)){break}n=(ga(n,k)|0)+m|0;n=(c[b>>2]|0)+n|0;a[n]=a[n]|-128}}while(0);l=l+1|0;}while((l|0)<(i|0));return};default:{return}}}function ve(b,f){b=b|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;h=c[b+5808>>2]|0;j=c[b+5804>>2]|0;i=(1<<j)-1|0;g=c[b+5820>>2]|0;k=c[b+5800>>2]|0;v=f<<j>>k;k=f+1<<j>>k;f=c[b+5824>>2]|0;f=(f|0)<(k|0)?f:k;if((v|0)>=(f|0)){T=0;return T|0}l=b+5816|0;k=b+10372|0;n=b+10360|0;t=b+10348|0;s=b+10352|0;r=b+10356|0;o=b+10340|0;q=b+52|0;p=b+48|0;u=b+5977|0;m=b+10308|0;E=0;F=c[l>>2]|0;a:while(1){if((F|0)>0){C=ga(v,h)|0;B=(C|0)==0;A=B?0:32;z=C&i;w=C-1|0;y=ga(C>>j,g)|0;x=ga(w>>j,g)|0;D=0;do{T=(ga(c[k>>2]|0,v)|0)+D|0;T=(c[n>>2]|0)+(T*3|0)|0;T=(d[T]|d[T+1|0]<<8)<<16>>16&7;G=T&255;do{if(!(T<<24>>24==0)){H=ga(D,h)|0;I=H>>j;P=c[t>>2]|0;M=H>>P;J=C>>P;if(!((M|0)>-1)){b=8;break a}L=c[s>>2]|0;if((M|0)>=(L|0)){b=8;break a}if(!((J|0)>-1)){b=11;break a}N=c[r>>2]|0;if((J|0)>=(N|0)){b=11;break a}R=ga(L,J)|0;Q=c[o>>2]|0;K=e[Q+((R+M|0)*24|0)+2>>1]|0;O=c[p>>2]|0;J=(c[q>>2]|0)-O>>2;if(!(K>>>0<J>>>0)){E=0;b=34;break a}K=c[O+(K<<2)>>2]|0;T=(H|0)==0;S=T?0:16;b:do{if(!T){if((H&i|0)!=0){break}do{if((a[K+764|0]|0)==0){T=H-1>>P;if(!((T|0)>-1&(T|0)<(L|0))){b=17;break a}R=e[Q+((R+T|0)*24|0)+2>>1]|0;if(!(R>>>0<J>>>0)){break}if((c[K+800>>2]|0)!=(c[(c[O+(R<<2)>>2]|0)+800>>2]|0)){S=0;break b}}}while(0);if((a[u]|0)!=0){break}T=c[m>>2]|0;S=(c[T+(I+y<<2)>>2]|0)==(c[T+((H-1>>j)+y<<2)>>2]|0)?S:0}}while(0);c:do{if(B|(z|0)!=0){I=A}else{do{if((a[K+764|0]|0)==0){P=w>>P;if(!((P|0)>-1&(P|0)<(N|0))){b=25;break a}L=Q+(((ga(L,P)|0)+M|0)*24|0)+2|0;L=e[L>>1]|0;if(!(L>>>0<J>>>0)){break}if((c[K+800>>2]|0)!=(c[(c[O+(L<<2)>>2]|0)+800>>2]|0)){I=0;break c}}}while(0);if((a[u]|0)!=0){I=A;break}T=c[m>>2]|0;I=(c[T+(I+y<<2)>>2]|0)==(c[T+(I+x<<2)>>2]|0)?A:0}}while(0);if((a[K+754|0]|0)!=0){break}te(b,H,C,G,0,S&255,I&255);ue(b,H,C,G,0,0);E=1;F=c[l>>2]|0}}while(0);D=D+1|0;}while((D|0)<(F|0))}v=v+1|0;if((v|0)>=(f|0)){b=34;break}}if((b|0)==8){ec(8880,6264,118,17352);return 0}else if((b|0)==11){ec(4520,6264,119,17352);return 0}else if((b|0)==17){ec(8880,6264,118,17352);return 0}else if((b|0)==25){ec(4520,6264,119,17352);return 0}else if((b|0)==34){return E|0}return 0}function we(f,g,h,i,j,k){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0;p=g?2:1;n=g?1:2;l=g&1;m=l^1;o=g?80:160;g=g?16:32;q=f+10472|0;r=c[q>>2]|0;k=(r|0)>(k|0)?k:r;r=c[f+10476>>2]|0;i=(r|0)>(i|0)?i:r;if((i|0)<=(h|0)){return}x=(k|0)>(j|0);r=f+10460|0;C=f+10368|0;K=f+10372|0;J=f+10376|0;I=f+10360|0;B=f+10388|0;A=f+10392|0;z=f+10396|0;y=f+10380|0;L=f+10348|0;w=f+10352|0;v=f+10356|0;s=f+10340|0;u=f+52|0;t=f+48|0;G=f+10332|0;H=f+10516|0;F=f+10448|0;E=f+10452|0;D=f+10456|0;f=f+10440|0;a:while(1){if(x){M=h<<2;P=(M|0)/4|0;Q=M-m|0;O=j;do{S=O<<2;N=(S|0)/4|0;T=(ga(c[q>>2]|0,P)|0)+N|0;T=(c[r>>2]|0)+T|0;U=a[T]|0;R=U&255;if((R&o|0)==0){a[T]=U&-4}else{V=S-l|0;W=c[C>>2]|0;X=V>>W;Y=Q>>W;if(!((X|0)>-1)){j=8;break a}U=c[K>>2]|0;if((X|0)>=(U|0)){j=8;break a}if(!((Y|0)>-1)){j=11;break a}T=c[J>>2]|0;if((Y|0)>=(T|0)){j=11;break a}Z=(ga(U,Y)|0)+X|0;X=c[I>>2]|0;Z=X+(Z*3|0)|0;Y=S>>W;W=M>>W;if(!((Y|0)>-1&(Y|0)<(U|0))){j=13;break a}if(!((W|0)>-1&(W|0)<(T|0))){j=15;break a}ia=X+(((ga(U,W)|0)+Y|0)*3|0)|0;b:do{if(((d[Z]|d[Z+1|0]<<8)<<16>>16&768)==0|((d[ia]|d[ia+1|0]<<8)<<16>>16&768)==0){R=2}else{if((R&g|0)!=0){U=c[F>>2]|0;W=S>>U;X=M>>U;if(!((W|0)>-1)){j=20;break a}R=c[E>>2]|0;if((W|0)>=(R|0)){j=20;break a}if(!((X|0)>-1)){j=23;break a}T=c[D>>2]|0;if((X|0)>=(T|0)){j=23;break a}ia=(ga(R,X)|0)+W|0;W=c[f>>2]|0;if(!((a[W+ia|0]|0)>-1)){R=1;break}X=V>>U;U=Q>>U;if(!((X|0)>-1&(X|0)<(R|0))){j=26;break a}if(!((U|0)>-1&(U|0)<(T|0))){j=28;break a}ia=W+((ga(R,U)|0)+X)|0;if(!((a[ia]|0)>-1)){R=1;break}}X=c[B>>2]|0;R=V>>X;T=Q>>X;if(!((R|0)>-1)){j=32;break a}W=c[A>>2]|0;if((R|0)>=(W|0)){j=32;break a}if(!((T|0)>-1)){j=35;break a}U=c[z>>2]|0;if((T|0)>=(U|0)){j=35;break a}T=(ga(W,T)|0)+R|0;R=c[y>>2]|0;Y=S>>X;X=M>>X;if(!((Y|0)>-1&(Y|0)<(W|0))){j=37;break a}if(!((X|0)>-1&(X|0)<(U|0))){j=39;break a}U=(ga(W,X)|0)+Y|0;Y=c[L>>2]|0;W=V>>Y;Z=Q>>Y;if(!((W|0)>-1)){j=42;break a}V=c[w>>2]|0;if((W|0)>=(V|0)){j=42;break a}if(!((Z|0)>-1)){j=45;break a}X=c[v>>2]|0;if((Z|0)>=(X|0)){j=45;break a}W=(ga(V,Z)|0)+W|0;$=c[s>>2]|0;W=e[$+(W*24|0)+2>>1]|0;Z=c[t>>2]|0;_=(c[u>>2]|0)-Z>>2;if(W>>>0<_>>>0){W=c[Z+(W<<2)>>2]|0}else{W=0}S=S>>Y;Y=M>>Y;if(!((S|0)>-1&(S|0)<(V|0))){j=49;break a}if(!((Y|0)>-1&(Y|0)<(X|0))){j=51;break a}S=$+(((ga(V,Y)|0)+S|0)*24|0)+2|0;S=e[S>>1]|0;if(S>>>0<_>>>0){ba=c[Z+(S<<2)>>2]|0}else{ba=0}Y=a[R+(T*12|0)|0]|0;S=Y<<24>>24==0;if(S){Z=-1}else{Z=c[W+916+(a[R+(T*12|0)+2|0]<<2)>>2]|0}_=a[R+(T*12|0)+1|0]|0;V=_<<24>>24==0;if(V){aa=-1}else{aa=c[W+980+(a[R+(T*12|0)+3|0]<<2)>>2]|0}$=a[R+(U*12|0)|0]|0;X=$<<24>>24==0;if(X){ca=-1}else{ca=c[ba+916+(a[R+(U*12|0)+2|0]<<2)>>2]|0}da=a[R+(U*12|0)+1|0]|0;ea=da<<24>>24==0;if(ea){ha=-1}else{ha=c[ba+980+(a[R+(U*12|0)+3|0]<<2)>>2]|0}ba=(Z|0)==(ca|0);if(!(ba&(aa|0)==(ha|0))){if(!((Z|0)==(ha|0)&(aa|0)==(ca|0))){R=1;break}}W=S?0:b[R+(T*12|0)+6>>1]|0;ia=S?0:b[R+(T*12|0)+4>>1]|0;S=V?0:b[R+(T*12|0)+10>>1]|0;V=V?0:b[R+(T*12|0)+8>>1]|0;T=X?0:b[R+(U*12|0)+6>>1]|0;fa=X?0:b[R+(U*12|0)+4>>1]|0;X=ea?0:b[R+(U*12|0)+10>>1]|0;R=ea?0:b[R+(U*12|0)+8>>1]|0;if(((_&255)+(Y&255)|0)!=((da&255)+($&255)|0)){Ue((c[G>>2]|0)+4|0,1013,0);a[H]=3}if((Z|0)==(aa|0)){if((ca|0)!=(ha|0)){j=79;break a}Y=ia<<16>>16;U=fa<<16>>16;Z=Y-U|0;do{if((((Z|0)<0?-Z|0:Z)|0)<=3){Z=(W<<16>>16)-(T<<16>>16)|0;if((((Z|0)<0?-Z|0:Z)|0)>3){break}Z=(V<<16>>16)-(R<<16>>16)|0;if((((Z|0)<0?-Z|0:Z)|0)>3){break}Z=(S<<16>>16)-(X<<16>>16)|0;if((((Z|0)<0?-Z|0:Z)|0)<=3){R=0;break b}}}while(0);R=Y-(R<<16>>16)|0;do{if((((R|0)<0?-R|0:R)|0)<=3){R=(W<<16>>16)-(X<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)>3){break}R=(V<<16>>16)-U|0;if((((R|0)<0?-R|0:R)|0)>3){break}R=(S<<16>>16)-(T<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)<=3){R=0;break b}}}while(0);R=1;break}U=ia<<16>>16;if(ba){U=U-(fa<<16>>16)|0;do{if((((U|0)<0?-U|0:U)|0)<=3){T=(W<<16>>16)-(T<<16>>16)|0;if((((T|0)<0?-T|0:T)|0)>3){break}R=(V<<16>>16)-(R<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)>3){break}R=(S<<16>>16)-(X<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)<=3){R=0;break b}}}while(0);R=1;break}else{R=U-(R<<16>>16)|0;do{if((((R|0)<0?-R|0:R)|0)<=3){R=(W<<16>>16)-(X<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)>3){break}R=(V<<16>>16)-(fa<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)>3){break}R=(S<<16>>16)-(T<<16>>16)|0;if((((R|0)<0?-R|0:R)|0)<=3){R=0;break b}}}while(0);R=1;break}}}while(0);ia=(ga(c[q>>2]|0,P)|0)+N|0;ia=(c[r>>2]|0)+ia|0;a[ia]=a[ia]&-4|R}O=O+p|0;}while((O|0)<(k|0))}h=h+n|0;if((h|0)>=(i|0)){j=93;break}}if((j|0)==8){ec(8880,6264,118,17352)}else if((j|0)==11){ec(4520,6264,119,17352)}else if((j|0)==13){ec(8880,6264,118,17352)}else if((j|0)==15){ec(4520,6264,119,17352)}else if((j|0)==20){ec(8880,6264,118,17352)}else if((j|0)==23){ec(4520,6264,119,17352)}else if((j|0)==26){ec(8880,6264,118,17352)}else if((j|0)==28){ec(4520,6264,119,17352)}else if((j|0)==32){ec(8880,6264,118,17352)}else if((j|0)==35){ec(4520,6264,119,17352)}else if((j|0)==37){ec(8880,6264,118,17352)}else if((j|0)==39){ec(4520,6264,119,17352)}else if((j|0)==42){ec(8880,6264,118,17352)}else if((j|0)==45){ec(4520,6264,119,17352)}else if((j|0)==49){ec(8880,6264,118,17352)}else if((j|0)==51){ec(4520,6264,119,17352)}else if((j|0)==79){ec(3256,14616,343,18768)}else if((j|0)==93){return}}function xe(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;m=i;i=i+64|0;p=m|0;t=m+32|0;o=g?2:1;r=g?1:2;n=f+40|0;s=c[n>>2]|0;X=c[f+5760>>2]|0;q=c[f+10472>>2]|0;l=(q|0)>(l|0)?l:q;u=c[f+10476>>2]|0;y=(u|0)>(j|0)?j:u;if((y|0)<=(h|0)){i=m;return}v=(l|0)>(k|0);w=f+10460|0;V=f+4|0;u=f+10368|0;x=f+10372|0;z=f+10376|0;A=f+10360|0;B=f+10348|0;G=f+10352|0;W=f+10356|0;j=f+10340|0;U=f+48|0;Q=X-8|0;R=t+4|0;S=t+2|0;T=t|0;O=t+28|0;P=t+26|0;N=t+24|0;K=p+4|0;L=p+2|0;M=p|0;I=p+28|0;J=p+26|0;H=p+24|0;E=t+6|0;F=p+6|0;C=t+30|0;D=p+30|0;f=f+5480|0;Z=(1<<X)-1|0;X=Z&65535;Y=s<<1;a:while(1){if(v){ca=h<<2;aa=(ca|0)/4|0;da=ca-1|0;ba=c[w>>2]|0;$=k;do{ma=$<<2;Ea=ba+((ga(q,aa)|0)+((ma|0)/4|0))|0;Ea=a[Ea]&3;ea=Ea&255;b:do{if(!(Ea<<24>>24==0)){_=(c[V>>2]|0)+((ga(c[n>>2]|0,ca)|0)+ma<<1)|0;if(g){fa=0;do{Ea=ga(fa,s)|0;b[p+(fa<<3)>>1]=b[_+(Ea<<1)>>1]|0;b[t+(fa<<3)>>1]=b[_+(Ea-1<<1)>>1]|0;b[p+(fa<<3)+2>>1]=b[_+(Ea+1<<1)>>1]|0;b[t+(fa<<3)+2>>1]=b[_+(Ea-2<<1)>>1]|0;b[p+(fa<<3)+4>>1]=b[_+(Ea+2<<1)>>1]|0;b[t+(fa<<3)+4>>1]=b[_+(Ea-3<<1)>>1]|0;b[p+(fa<<3)+6>>1]=b[_+(Ea+3<<1)>>1]|0;b[t+(fa<<3)+6>>1]=b[_+(Ea-4<<1)>>1]|0;fa=fa+1|0;}while((fa|0)<4)}else{fa=0;do{b[p+(fa<<3)>>1]=b[_+(fa<<1)>>1]|0;b[t+(fa<<3)>>1]=b[_+(fa-s<<1)>>1]|0;b[p+(fa<<3)+2>>1]=b[_+(s+fa<<1)>>1]|0;b[t+(fa<<3)+2>>1]=b[_+(fa-(s<<1)<<1)>>1]|0;b[p+(fa<<3)+4>>1]=b[_+((s<<1)+fa<<1)>>1]|0;b[t+(fa<<3)+4>>1]=b[_+(fa+(s*-3|0)<<1)>>1]|0;b[p+(fa<<3)+6>>1]=b[_+((s*3|0)+fa<<1)>>1]|0;b[t+(fa<<3)+6>>1]=b[_+(fa-(s<<2)<<1)>>1]|0;fa=fa+1|0;}while((fa|0)<4)}oa=c[u>>2]|0;la=ma>>oa;fa=ca>>oa;if(!((la|0)>-1)){n=11;break a}ja=c[x>>2]|0;if((la|0)>=(ja|0)){n=11;break a}if(!((fa|0)>-1)){n=14;break a}ka=c[z>>2]|0;if((fa|0)>=(ka|0)){n=14;break a}na=ga(ja,fa)|0;ia=na+la|0;ha=c[A>>2]|0;fa=a[ha+(ia*3|0)+2|0]|0;if(g){pa=ma-1>>oa;if(!((pa|0)>-1&(pa|0)<(ja|0))){n=17;break a}pa=na+pa|0}else{pa=da>>oa;if(!((pa|0)>-1&(pa|0)<(ka|0))){n=20;break a}pa=(ga(ja,pa)|0)+la|0}fa=fa+1+(a[ha+(pa*3|0)+2|0]|0)>>1;ra=c[B>>2]|0;pa=ma>>ra;ra=ca>>ra;if(!((pa|0)>-1)){n=24;break a}qa=c[G>>2]|0;if((pa|0)>=(qa|0)){n=24;break a}if(!((ra|0)>-1)){n=27;break a}if((ra|0)>=(c[W>>2]|0)){n=27;break a}pa=(ga(qa,ra)|0)+pa|0;pa=c[(c[U>>2]|0)+(e[(c[j>>2]|0)+(pa*24|0)+2>>1]<<2)>>2]|0;qa=(c[pa+756>>2]|0)+fa|0;if((qa|0)<0){qa=0}else{qa=(qa|0)>51?51:qa}xa=d[30360+qa|0]<<Q;ea=(ea<<1)-2+fa+(c[pa+760>>2]|0)|0;if((ea|0)<0){ea=0}else{ea=(ea|0)>53?53:ea}ea=d[30664+ea|0]<<Q;ta=b[R>>1]|0;va=b[S>>1]|0;wa=b[T>>1]|0;za=wa&65535;fa=(ta&65535)-((va&65535)<<1)+za|0;pa=(fa|0)<0?-fa|0:fa;fa=e[N>>1]|0;qa=(e[O>>1]|0)-(e[P>>1]<<1)+fa|0;qa=(qa|0)<0?-qa|0:qa;ra=b[K>>1]|0;sa=b[L>>1]|0;ua=b[M>>1]|0;Ba=ua&65535;ya=(ra&65535)-((sa&65535)<<1)+Ba|0;Ca=(ya|0)<0?-ya|0:ya;ya=e[H>>1]|0;Aa=(e[I>>1]|0)-(e[J>>1]<<1)+ya|0;Ea=(Aa|0)<0?-Aa|0:Aa;Da=Ca+pa|0;Aa=Ea+qa|0;pa=qa+pa|0;qa=Ea+Ca|0;if((Aa+Da|0)>=(xa|0)){break}Ca=xa>>2;do{if((Da<<1|0)<(Ca|0)){Da=(e[E>>1]|0)-za|0;Ea=Ba-(e[F>>1]|0)|0;if((((Ea|0)<0?-Ea|0:Ea)+((Da|0)<0?-Da|0:Da)|0)>=(xa>>3|0)){za=1;break}za=za-Ba|0;za=(((za|0)<0?-za|0:za)|0)>=((ea*5|0)+1>>1|0)}else{za=1}}while(0);do{if((Aa<<1|0)<(Ca|0)){Aa=(e[C>>1]|0)-fa|0;Ba=ya-(e[D>>1]|0)|0;if((((Ba|0)<0?-Ba|0:Ba)+((Aa|0)<0?-Aa|0:Aa)|0)>=(xa>>3|0)){fa=1;break}fa=fa-ya|0;fa=(((fa|0)<0?-fa|0:fa)|0)>=((ea*5|0)+1>>1|0)}else{fa=1}}while(0);fa=za|fa;xa=(xa>>1)+xa>>3;ya=a[f]|0;za=ya<<24>>24!=0;if(g){la=ma-1>>oa;if(za){if(!((la|0)>-1&(la|0)<(ja|0))){n=42;break a}ka=ha+((na+la|0)*3|0)|0;ka=(((d[ka]|d[ka+1|0]<<8)<<16>>16&65535)>>>10&1^1)&255}else{ka=1}if(!((la|0)>-1&(la|0)<(ja|0))){n=45;break a}la=ha+((na+la|0)*3|0)|0;if(ya<<24>>24==0){ja=1}else{ja=ha+(ia*3|0)|0;ja=((d[ja]|d[ja+1|0]<<8)<<16>>16&1024)==0}Ea=ha+(ia*3|0)|0;ha=((d[la]|d[la+1|0]<<8)<<16>>16&2048)==0&ka<<24>>24!=0;ja=((d[Ea]|d[Ea+1|0]<<8)<<16>>16&2048)==0&ja}else{na=da>>oa;if(za){if(!((na|0)>-1&(na|0)<(ka|0))){n=51;break a}ma=ha+(((ga(ja,na)|0)+la|0)*3|0)|0;ma=((d[ma]|d[ma+1|0]<<8)<<16>>16&1024)==0}else{ma=1}if(!((na|0)>-1&(na|0)<(ka|0))){n=54;break a}ja=ha+(((ga(ja,na)|0)+la|0)*3|0)|0;if(ya<<24>>24==0){ka=1}else{ka=ha+(ia*3|0)|0;ka=((d[ka]|d[ka+1|0]<<8)<<16>>16&1024)==0}Ea=ha+(ia*3|0)|0;ha=((d[ja]|d[ja+1|0]<<8)<<16>>16&2048)==0&ma;ja=((d[Ea]|d[Ea+1|0]<<8)<<16>>16&2048)==0&ka}ka=ea*10|0;ia=-ea|0;la=(pa|0)>=(xa|0)|ha^1;na=(qa|0)>=(xa|0)|ja^1;pa=ea>>1;qa=-pa|0;oa=ea<<1;ma=0;while(1){Ba=b[t+(ma<<3)+6>>1]|0;xa=b[p+(ma<<3)+6>>1]|0;do{if(fa){ua=ua&65535;xa=wa&65535;sa=sa&65535;wa=va&65535;va=((ua-xa|0)*9|0)+8+((sa-wa|0)*-3|0)>>4;if((((va|0)<0?-va|0:va)|0)>=(ka|0)){break}if((va|0)<(ia|0)){va=ia}else{va=(va|0)>(ea|0)?ea:va}do{if(g){if(ha){ya=va+xa|0;if((ya|0)<0){ya=0}else{ya=(ya|0)>(Z|0)?X:ya&65535}Ea=_+((ga(ma,s)|0)-1<<1)|0;b[Ea>>1]=ya}if(!ja){break}ya=ua-va|0;if((ya|0)<0){ya=0}else{ya=(ya|0)>(Z|0)?X:ya&65535}Ea=_+((ga(ma,s)|0)<<1)|0;b[Ea>>1]=ya}else{if(ha){ya=va+xa|0;if((ya|0)<0){ya=0}else{ya=(ya|0)>(Z|0)?X:ya&65535}b[_+(ma-s<<1)>>1]=ya}if(!ja){break}ya=ua-va|0;if((ya|0)<0){ya=0}else{ya=(ya|0)>(Z|0)?X:ya&65535}b[_+(ma<<1)>>1]=ya}}while(0);do{if(!la){xa=va+(((xa+1+(ta&65535)|0)>>>1)-wa)|0;ta=xa>>1;if((ta|0)<(qa|0)){ta=qa}else{ta=((ta|0)>(pa|0)?ea:xa)>>1}ta=ta+wa|0;wa=(ta|0)<0;if(g){if(wa){ta=0}else{ta=(ta|0)>(Z|0)?X:ta&65535}Ea=_+((ga(ma,s)|0)-2<<1)|0;b[Ea>>1]=ta;break}else{if(wa){ta=0}else{ta=(ta|0)>(Z|0)?X:ta&65535}b[_+(ma-Y<<1)>>1]=ta;break}}}while(0);if(na){break}ta=((ua+1+(ra&65535)|0)>>>1)-sa-va|0;ra=ta>>1;if((ra|0)<(qa|0)){ra=qa}else{ra=((ra|0)>(pa|0)?ea:ta)>>1}ra=ra+sa|0;sa=(ra|0)<0;if(g){if(sa){ra=0}else{ra=(ra|0)>(Z|0)?X:ra&65535}Ea=_+((ga(ma,s)|0)+1<<1)|0;b[Ea>>1]=ra;break}else{if(sa){ra=0}else{ra=(ra|0)>(Z|0)?X:ra&65535}b[_+(ma+s<<1)>>1]=ra;break}}else{ya=ta&65535;za=va&65535;va=wa&65535;wa=ua&65535;Aa=wa<<1;ua=sa&65535;Ca=(va<<1)+4|0;sa=Ca+(za<<1)+ya+Aa+ua>>3;ta=va-oa|0;do{if((sa|0)<(ta|0)){sa=ta&65535}else{ta=va+oa|0;if((sa|0)>(ta|0)){sa=ta&65535;break}else{sa=sa&65535;break}}}while(0);ta=(va+2+za+ya+wa|0)>>>2;Da=za-oa|0;do{if((ta|0)<(Da|0)){ta=Da&65535}else{Da=za+oa|0;if((ta|0)>(Da|0)){ta=Da&65535;break}else{ta=ta&65535;break}}}while(0);Ba=va+4+za+(ya*3|0)+((Ba&65535)<<1)+wa>>3;Da=ya-oa|0;do{if((Ba|0)<(Da|0)){ya=Da&65535}else{ya=ya+oa|0;if((Ba|0)>(ya|0)){ya=ya&65535;break}else{ya=Ba&65535;break}}}while(0);ra=ra&65535;za=Ca+za+Aa+(ua<<1)+ra>>3;Aa=wa-oa|0;do{if((za|0)<(Aa|0)){za=Aa&65535}else{Aa=wa+oa|0;if((za|0)>(Aa|0)){za=Aa&65535;break}else{za=za&65535;break}}}while(0);va=wa+va+ua|0;wa=(ra+2+va|0)>>>2;Aa=ua-oa|0;do{if((wa|0)<(Aa|0)){ua=Aa&65535}else{ua=ua+oa|0;if((wa|0)>(ua|0)){ua=ua&65535;break}else{ua=wa&65535;break}}}while(0);va=(va+4+(ra*3|0)+((xa&65535)<<1)|0)>>>3;wa=ra-oa|0;do{if((va|0)<(wa|0)){ra=wa&65535}else{ra=ra+oa|0;if((va|0)>(ra|0)){ra=ra&65535;break}else{ra=va&65535;break}}}while(0);if(g){va=ga(ma,s)|0;if(ha){b[_+(va-1<<1)>>1]=sa}if(ja){b[_+(va<<1)>>1]=za}if(ha){b[_+(va-2<<1)>>1]=ta}if(ja){b[_+(va+1<<1)>>1]=ua}if(ha){b[_+(va-3<<1)>>1]=ya}if(!ja){break}b[_+(va+2<<1)>>1]=ra;break}else{if(ha){b[_+(ma-s<<1)>>1]=sa}if(ja){b[_+(ma<<1)>>1]=za}if(ha){b[_+(ma-(s<<1)<<1)>>1]=ta}if(ja){b[_+(s+ma<<1)>>1]=ua}if(ha){b[_+(ma+(s*-3|0)<<1)>>1]=ya}if(!ja){break}b[_+((s<<1)+ma<<1)>>1]=ra;break}}}while(0);ra=ma+1|0;if((ra|0)>=4){break b}ma=ra;wa=b[t+(ra<<3)>>1]|0;va=b[t+(ra<<3)+2>>1]|0;ta=b[t+(ra<<3)+4>>1]|0;ua=b[p+(ra<<3)>>1]|0;sa=b[p+(ra<<3)+2>>1]|0;ra=b[p+(ra<<3)+4>>1]|0}}}while(0);$=$+o|0;}while(($|0)<(l|0))}h=h+r|0;if((h|0)>=(y|0)){n=145;break}}if((n|0)==11){ec(8880,6264,118,17352)}else if((n|0)==14){ec(4520,6264,119,17352)}else if((n|0)==17){ec(8880,6264,118,17352)}else if((n|0)==20){ec(4520,6264,119,17352)}else if((n|0)==24){ec(8880,6264,118,17352)}else if((n|0)==27){ec(4520,6264,119,17352)}else if((n|0)==42){ec(8880,6264,118,17352)}else if((n|0)==45){ec(8880,6264,118,17352)}else if((n|0)==51){ec(4520,6264,119,17352)}else if((n|0)==54){ec(4520,6264,119,17352)}else if((n|0)==145){i=m;return}}function ye(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;l=i;i=i+32|0;s=l|0;p=l+16|0;n=f?2:1;r=f?1:2;m=b+40|0;o=c[m>>2]|0;W=c[b+5760>>2]|0;q=b+10472|0;t=c[q>>2]|0;k=(t|0)>(k|0)?k:t;t=c[b+10476>>2]|0;h=(t|0)>(h|0)?h:t;if((h|0)<=(g|0)){i=l;return}t=(k|0)>(j|0);u=b+10460|0;v=b+4|0;y=b+10368|0;T=b+10372|0;V=b+10376|0;U=b+10360|0;S=b+10348|0;R=b+10352|0;Q=b+10356|0;P=b+10340|0;O=b+48|0;K=W-8|0;L=p+2|0;M=p+1|0;N=p|0;I=p+14|0;J=p+13|0;H=p+12|0;E=s+2|0;F=s+1|0;G=s|0;C=s+14|0;D=s+13|0;B=s+12|0;z=p+3|0;A=s+3|0;w=p+15|0;x=s+15|0;b=b+5480|0;Y=(1<<W)-1|0;W=Y&255;X=o<<1;a:while(1){if(t){ca=g<<2;aa=(ca|0)/4|0;_=ca-1|0;ba=j;do{ja=ba<<2;Ia=(ga(c[q>>2]|0,aa)|0)+((ja|0)/4|0)|0;Ia=a[(c[u>>2]|0)+Ia|0]&3;da=Ia&255;b:do{if(!(Ia<<24>>24==0)){Z=c[v>>2]|0;$=(ga(c[m>>2]|0,ca)|0)+ja|0;ea=0;do{ha=(ga(ea,o)|0)+$|0;fa=ea+$|0;if(f){a[s+(ea<<2)|0]=a[Z+ha|0]|0;a[p+(ea<<2)|0]=a[Z+(ha-1)|0]|0;a[s+(ea<<2)+1|0]=a[Z+(ha+1)|0]|0;a[p+(ea<<2)+1|0]=a[Z+(ha-2)|0]|0;a[s+(ea<<2)+2|0]=a[Z+(ha+2)|0]|0;a[p+(ea<<2)+2|0]=a[Z+(ha-3)|0]|0;a[s+(ea<<2)+3|0]=a[Z+(ha+3)|0]|0;a[p+(ea<<2)+3|0]=a[Z+(ha-4)|0]|0}else{a[s+(ea<<2)|0]=a[Z+fa|0]|0;a[p+(ea<<2)|0]=a[Z+(fa-o)|0]|0;a[s+(ea<<2)+1|0]=a[Z+(fa+o)|0]|0;a[p+(ea<<2)+1|0]=a[Z+(fa-(o<<1))|0]|0;a[s+(ea<<2)+2|0]=a[Z+(fa+(o<<1))|0]|0;a[p+(ea<<2)+2|0]=a[Z+(fa+(o*-3|0))|0]|0;a[s+(ea<<2)+3|0]=a[Z+(fa+(o*3|0))|0]|0;a[p+(ea<<2)+3|0]=a[Z+(fa-(o<<2))|0]|0}ea=ea+1|0;}while((ea|0)<4);na=c[y>>2]|0;ka=ja>>na;ea=ca>>na;if(!((ka|0)>-1)){m=12;break a}ia=c[T>>2]|0;if((ka|0)>=(ia|0)){m=12;break a}if(!((ea|0)>-1)){m=15;break a}la=c[V>>2]|0;if((ea|0)>=(la|0)){m=15;break a}ma=ga(ia,ea)|0;fa=ma+ka|0;ha=c[U>>2]|0;ea=a[ha+(fa*3|0)+2|0]|0;if(f){oa=ja-1>>na;if(!((oa|0)>-1&(oa|0)<(ia|0))){m=18;break a}oa=ma+oa|0}else{oa=_>>na;if(!((oa|0)>-1&(oa|0)<(la|0))){m=21;break a}oa=(ga(ia,oa)|0)+ka|0}ea=ea+1+(a[ha+(oa*3|0)+2|0]|0)>>1;oa=c[S>>2]|0;qa=ja>>oa;oa=ca>>oa;if(!((qa|0)>-1)){m=25;break a}pa=c[R>>2]|0;if((qa|0)>=(pa|0)){m=25;break a}if(!((oa|0)>-1)){m=28;break a}if((oa|0)>=(c[Q>>2]|0)){m=28;break a}oa=(ga(pa,oa)|0)+qa|0;oa=c[(c[O>>2]|0)+(e[(c[P>>2]|0)+(oa*24|0)+2>>1]<<2)>>2]|0;pa=(c[oa+756>>2]|0)+ea|0;if((pa|0)<0){pa=0}else{pa=(pa|0)>51?51:pa}qa=d[30360+pa|0]<<K;da=(da<<1)-2+ea+(c[oa+760>>2]|0)|0;if((da|0)<0){da=0}else{da=(da|0)>53?53:da}da=d[30664+da|0]<<K;xa=a[L]|0;Aa=a[M]|0;Ba=a[N]|0;sa=Ba&255;ea=(xa&255)-((Aa&255)<<1)+sa|0;oa=(ea|0)<0?-ea|0:ea;ea=d[H]|0;pa=(d[I]|0)-(d[J]<<1)+ea|0;va=(pa|0)<0?-pa|0:pa;wa=a[E]|0;ya=a[F]|0;za=a[G]|0;ua=za&255;pa=(wa&255)-((ya&255)<<1)+ua|0;pa=(pa|0)<0?-pa|0:pa;ra=d[B]|0;ta=(d[C]|0)-(d[D]<<1)+ra|0;Ia=(ta|0)<0?-ta|0:ta;Ca=pa+oa|0;ta=Ia+va|0;oa=va+oa|0;pa=Ia+pa|0;if((ta+Ca|0)>=(qa|0)){break}va=qa>>2;do{if((Ca<<1|0)<(va|0)){Ca=(d[z]|0)-sa|0;Da=ua-(d[A]|0)|0;if((((Da|0)<0?-Da|0:Da)+((Ca|0)<0?-Ca|0:Ca)|0)>=(qa>>3|0)){sa=1;break}sa=sa-ua|0;sa=(((sa|0)<0?-sa|0:sa)|0)>=((da*5|0)+1>>1|0)}else{sa=1}}while(0);do{if((ta<<1|0)<(va|0)){ta=(d[w]|0)-ea|0;ua=ra-(d[x]|0)|0;if((((ua|0)<0?-ua|0:ua)+((ta|0)<0?-ta|0:ta)|0)>=(qa>>3|0)){ea=1;break}ea=ea-ra|0;ea=(((ea|0)<0?-ea|0:ea)|0)>=((da*5|0)+1>>1|0)}else{ea=1}}while(0);ea=sa|ea;qa=(qa>>1)+qa>>3;ra=a[b]|0;sa=ra<<24>>24!=0;if(f){ka=ja-1>>na;if(sa){if(!((ka|0)>-1&(ka|0)<(ia|0))){m=43;break a}ja=ha+((ma+ka|0)*3|0)|0;ja=(((d[ja]|d[ja+1|0]<<8)<<16>>16&65535)>>>10&1^1)&255}else{ja=1}if(!((ka|0)>-1&(ka|0)<(ia|0))){m=46;break a}ia=ha+((ma+ka|0)*3|0)|0;if(ra<<24>>24==0){ka=1}else{ka=ha+(fa*3|0)|0;ka=((d[ka]|d[ka+1|0]<<8)<<16>>16&1024)==0}Ia=ha+(fa*3|0)|0;fa=((d[ia]|d[ia+1|0]<<8)<<16>>16&2048)==0&ja<<24>>24!=0;ia=((d[Ia]|d[Ia+1|0]<<8)<<16>>16&2048)==0&ka}else{ma=_>>na;if(sa){if(!((ma|0)>-1&(ma|0)<(la|0))){m=52;break a}ja=ha+(((ga(ia,ma)|0)+ka|0)*3|0)|0;ja=((d[ja]|d[ja+1|0]<<8)<<16>>16&1024)==0}else{ja=1}if(!((ma|0)>-1&(ma|0)<(la|0))){m=55;break a}ia=ha+(((ga(ia,ma)|0)+ka|0)*3|0)|0;if(ra<<24>>24==0){ka=1}else{ka=ha+(fa*3|0)|0;ka=((d[ka]|d[ka+1|0]<<8)<<16>>16&1024)==0}Ia=ha+(fa*3|0)|0;fa=((d[ia]|d[ia+1|0]<<8)<<16>>16&2048)==0&ja;ia=((d[Ia]|d[Ia+1|0]<<8)<<16>>16&2048)==0&ka}ha=da*10|0;ja=-da|0;ka=$-1|0;la=(oa|0)>=(qa|0)|fa^1;va=(pa|0)>=(qa|0)|ia^1;ra=da>>1;oa=-ra|0;ta=$|1;ua=$+o|0;pa=$-2|0;ma=$-X|0;qa=$-o|0;sa=da<<1;na=0;while(1){Ha=a[p+(na<<2)+3|0]|0;Ca=a[s+(na<<2)+3|0]|0;do{if(ea){za=za&255;Ca=Ba&255;ya=ya&255;Ba=Aa&255;Aa=((za-Ca|0)*9|0)+8+((ya-Ba|0)*-3|0)>>4;if((((Aa|0)<0?-Aa|0:Aa)|0)>=(ha|0)){break}if((Aa|0)<(ja|0)){Aa=ja}else{Aa=(Aa|0)>(da|0)?da:Aa}do{if(f){if(fa){Da=Aa+Ca|0;if((Da|0)<0){Da=0}else{Da=(Da|0)>(Y|0)?W:Da&255}Ia=Z+(ka+(ga(na,o)|0))|0;a[Ia]=Da}if(!ia){break}Da=za-Aa|0;if((Da|0)<0){Da=0}else{Da=(Da|0)>(Y|0)?W:Da&255}Ia=Z+((ga(na,o)|0)+$)|0;a[Ia]=Da}else{if(fa){Da=Aa+Ca|0;if((Da|0)<0){Da=0}else{Da=(Da|0)>(Y|0)?W:Da&255}a[Z+(qa+na)|0]=Da}if(!ia){break}Da=za-Aa|0;if((Da|0)<0){Da=0}else{Da=(Da|0)>(Y|0)?W:Da&255}a[Z+(na+$)|0]=Da}}while(0);do{if(!la){xa=Aa+(((Ca+1+(xa&255)|0)>>>1)-Ba)|0;Ca=xa>>1;if((Ca|0)<(oa|0)){xa=oa}else{xa=((Ca|0)>(ra|0)?da:xa)>>1}Ba=xa+Ba|0;xa=(Ba|0)<0;if(f){if(xa){xa=0}else{xa=(Ba|0)>(Y|0)?W:Ba&255}Ia=Z+(pa+(ga(na,o)|0))|0;a[Ia]=xa;break}else{if(xa){xa=0}else{xa=(Ba|0)>(Y|0)?W:Ba&255}a[Z+(ma+na)|0]=xa;break}}}while(0);if(va){break}wa=((za+1+(wa&255)|0)>>>1)-ya-Aa|0;xa=wa>>1;if((xa|0)<(oa|0)){wa=oa}else{wa=((xa|0)>(ra|0)?da:wa)>>1}xa=wa+ya|0;wa=(xa|0)<0;if(f){if(wa){wa=0}else{wa=(xa|0)>(Y|0)?W:xa&255}Ia=Z+(ta+(ga(na,o)|0))|0;a[Ia]=wa;break}else{if(wa){wa=0}else{wa=(xa|0)>(Y|0)?W:xa&255}a[Z+(ua+na)|0]=wa;break}}else{Da=xa&255;Ea=Aa&255;Aa=Ba&255;Ba=za&255;Fa=Ba<<1;za=ya&255;Ga=(Aa<<1)+4|0;xa=Ga+(Ea<<1)+Da+Fa+za>>3;ya=Aa-sa|0;do{if((xa|0)<(ya|0)){xa=ya&255}else{ya=Aa+sa|0;if((xa|0)>(ya|0)){xa=ya&255;break}else{xa=xa&255;break}}}while(0);ya=(Aa+2+Ea+Da+Ba|0)>>>2;Ia=Ea-sa|0;do{if((ya|0)<(Ia|0)){ya=Ia&255}else{Ia=Ea+sa|0;if((ya|0)>(Ia|0)){ya=Ia&255;break}else{ya=ya&255;break}}}while(0);Ha=Aa+4+Ea+(Da*3|0)+((Ha&255)<<1)+Ba>>3;Ia=Da-sa|0;do{if((Ha|0)<(Ia|0)){Da=Ia&255}else{Da=Da+sa|0;if((Ha|0)>(Da|0)){Da=Da&255;break}else{Da=Ha&255;break}}}while(0);wa=wa&255;Ea=Ga+Ea+Fa+(za<<1)+wa>>3;Fa=Ba-sa|0;do{if((Ea|0)<(Fa|0)){Ea=Fa&255}else{Fa=Ba+sa|0;if((Ea|0)>(Fa|0)){Ea=Fa&255;break}else{Ea=Ea&255;break}}}while(0);Aa=Ba+Aa+za|0;Ba=(wa+2+Aa|0)>>>2;Fa=za-sa|0;do{if((Ba|0)<(Fa|0)){za=Fa&255}else{za=za+sa|0;if((Ba|0)>(za|0)){za=za&255;break}else{za=Ba&255;break}}}while(0);Aa=(Aa+4+(wa*3|0)+((Ca&255)<<1)|0)>>>3;Ba=wa-sa|0;do{if((Aa|0)<(Ba|0)){wa=Ba&255}else{wa=wa+sa|0;if((Aa|0)>(wa|0)){wa=wa&255;break}else{wa=Aa&255;break}}}while(0);if(f){Aa=(ga(na,o)|0)+$|0;if(fa){a[Z+(Aa-1)|0]=xa}if(ia){a[Z+Aa|0]=Ea}if(fa){a[Z+(Aa-2)|0]=ya}if(ia){a[Z+(Aa+1)|0]=za}if(fa){a[Z+(Aa-3)|0]=Da}if(!ia){break}a[Z+(Aa+2)|0]=wa;break}else{Aa=na+$|0;if(fa){a[Z+(Aa-o)|0]=xa}if(ia){a[Z+Aa|0]=Ea}if(fa){a[Z+(Aa-(o<<1))|0]=ya}if(ia){a[Z+(Aa+o)|0]=za}if(fa){a[Z+(Aa+(o*-3|0))|0]=Da}if(!ia){break}a[Z+(Aa+(o<<1))|0]=wa;break}}}while(0);wa=na+1|0;if((wa|0)>=4){break b}na=wa;Ba=a[p+(wa<<2)|0]|0;Aa=a[p+(wa<<2)+1|0]|0;xa=a[p+(wa<<2)+2|0]|0;za=a[s+(wa<<2)|0]|0;ya=a[s+(wa<<2)+1|0]|0;wa=a[s+(wa<<2)+2|0]|0}}}while(0);ba=ba+n|0;}while((ba|0)<(k|0))}g=g+r|0;if((g|0)>=(h|0)){m=146;break}}if((m|0)==12){ec(8880,6264,118,17352)}else if((m|0)==15){ec(4520,6264,119,17352)}else if((m|0)==18){ec(8880,6264,118,17352)}else if((m|0)==21){ec(4520,6264,119,17352)}else if((m|0)==25){ec(8880,6264,118,17352)}else if((m|0)==28){ec(4520,6264,119,17352)}else if((m|0)==43){ec(8880,6264,118,17352)}else if((m|0)==46){ec(8880,6264,118,17352)}else if((m|0)==52){ec(4520,6264,119,17352)}else if((m|0)==55){ec(4520,6264,119,17352)}else if((m|0)==146){i=l;return}}function ze(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0;m=i;i=i+32|0;v=m|0;p=m+16|0;n=c[f+5780>>2]|0;o=c[f+5784>>2]|0;q=ga(n,g?2:1)|0;u=ga(o,g?1:2)|0;s=f+44|0;r=c[s>>2]|0;t=c[f+10472>>2]|0;l=(t|0)>(l|0)?l:t;w=c[f+10476>>2]|0;F=(w|0)>(j|0)?j:w;y=c[f+5768>>2]|0;if((F|0)<=(h|0)){i=m;return}O=(l|0)>(k|0);L=3-n|0;M=3-o|0;N=f+10460|0;J=f+5952|0;K=f+5956|0;w=f+10368|0;x=f+10372|0;P=f+10376|0;z=f+10360|0;A=f+5776|0;B=f+10348|0;C=f+10352|0;D=f+10356|0;j=f+10340|0;E=f+48|0;G=f+5480|0;H=(1<<y)-1|0;I=H&65535;a:while(1){if(O){W=h<<M;T=ga(W,o)|0;Y=(T|0)/4|0;U=T-1|0;X=c[N>>2]|0;V=k;do{S=V<<L;Q=ga(S,n)|0;Z=X+((ga(t,Y)|0)+((Q|0)/4|0))|0;Z=a[Z]&3;if((Z&255)>>>0>1>>>0){R=Q-1|0;Z=((Z&255)<<1)-2|0;_=0;do{aa=c[((_|0)==0?J:K)>>2]|0;_=_+1|0;$=(c[f+4+(_<<2)>>2]|0)+((ga(c[s>>2]|0,W)|0)+S<<1)|0;fa=0;while(1){ba=~fa;da=ga(fa,r)|0;ea=fa+1|0;ca=ga(ea,r)|0;if(g){b[p+(fa<<3)>>1]=b[$+(fa<<1)>>1]|0;b[v+(fa<<3)>>1]=b[$+(ba<<1)>>1]|0;b[p+(fa<<3)+2>>1]=b[$+(r+fa<<1)>>1]|0;b[v+(fa<<3)+2>>1]=b[$+(r+ba<<1)>>1]|0;la=r<<1;b[p+(fa<<3)+4>>1]=b[$+(la+fa<<1)>>1]|0;b[v+(fa<<3)+4>>1]=b[$+(la+ba<<1)>>1]|0;la=r*3|0;b[p+(fa<<3)+6>>1]=b[$+(la+fa<<1)>>1]|0;b[v+(fa<<3)+6>>1]=b[$+(la+ba<<1)>>1]|0}else{b[p+(fa<<3)>>1]=b[$+(da<<1)>>1]|0;b[v+(fa<<3)>>1]=b[$+(-ca<<1)>>1]|0;b[p+(fa<<3)+2>>1]=b[$+(da+1<<1)>>1]|0;b[v+(fa<<3)+2>>1]=b[$+(1-ca<<1)>>1]|0;b[p+(fa<<3)+4>>1]=b[$+(da+2<<1)>>1]|0;b[v+(fa<<3)+4>>1]=b[$+(2-ca<<1)>>1]|0;b[p+(fa<<3)+6>>1]=b[$+(da+3<<1)>>1]|0;b[v+(fa<<3)+6>>1]=b[$+(3-ca<<1)>>1]|0}if((ea|0)<2){fa=ea}else{break}}ia=c[w>>2]|0;ea=Q>>ia;ba=T>>ia;if(!((ea|0)>-1)){g=14;break a}da=c[x>>2]|0;if((ea|0)>=(da|0)){g=14;break a}if(!((ba|0)>-1)){g=17;break a}fa=c[P>>2]|0;if((ba|0)>=(fa|0)){g=17;break a}ha=ga(da,ba)|0;ba=ha+ea|0;ca=c[z>>2]|0;ja=a[ca+(ba*3|0)+2|0]|0;if(g){ka=R>>ia;if(!((ka|0)>-1&(ka|0)<(da|0))){g=20;break a}ka=ha+ka|0}else{ka=U>>ia;if(!((ka|0)>-1&(ka|0)<(fa|0))){g=23;break a}ka=(ga(da,ka)|0)+ea|0}la=(ja+1+(a[ca+(ka*3|0)+2|0]|0)>>1)+aa|0;do{if((c[A>>2]|0)==1){if((la|0)<30){break}if((la|0)>42){la=la-6|0;break}else{la=c[8+(la-30<<2)>>2]|0;break}}else{la=(la|0)<51?la:51}}while(0);aa=c[B>>2]|0;ja=Q>>aa;aa=T>>aa;if(!((ja|0)>-1)){g=33;break a}ka=c[C>>2]|0;if((ja|0)>=(ka|0)){g=33;break a}if(!((aa|0)>-1)){g=36;break a}if((aa|0)>=(c[D>>2]|0)){g=36;break a}aa=(ga(ka,aa)|0)+ja|0;aa=Z+la+(c[(c[(c[E>>2]|0)+(e[(c[j>>2]|0)+(aa*24|0)+2>>1]<<2)>>2]|0)+760>>2]|0)|0;if((aa|0)<0){aa=0}else{aa=(aa|0)>53?53:aa}aa=d[30664+aa|0]<<y-8;ja=(a[G]|0)==0;if(g){fa=R>>ia;if(ja){ea=1}else{if(!((fa|0)>-1&(fa|0)<(da|0))){g=42;break a}ea=ca+((ha+fa|0)*3|0)|0;ea=((d[ea]|d[ea+1|0]<<8)<<16>>16&1024)==0}if(!((fa|0)>-1&(fa|0)<(da|0))){g=45;break a}da=ca+((ha+fa|0)*3|0)|0;da=((d[da]|d[da+1|0]<<8)<<16>>16&2048)==0&ea;if(ja){ea=1}else{ea=ca+(ba*3|0)|0;ea=((d[ea]|d[ea+1|0]<<8)<<16>>16&1024)==0}ca=ca+(ba*3|0)|0;ea=((d[ca]|d[ca+1|0]<<8)<<16>>16&2048)==0&ea;ca=-aa|0;ba=0;do{fa=e[p+(ba<<1)>>1]|0;ia=e[v+(ba<<1)>>1]|0;ha=(e[v+8+(ba<<1)>>1]|0)+4+(fa-ia<<2)-(e[p+8+(ba<<1)>>1]|0)>>3;if((ha|0)<(ca|0)){ha=ca}else{ha=(ha|0)>(aa|0)?aa:ha}if(da){ia=ia+ha|0;if((ia|0)<0){ia=0}else{ia=(ia|0)>(H|0)?I:ia&65535}la=$+((ga(ba,r)|0)-1<<1)|0;b[la>>1]=ia}if(ea){fa=fa-ha|0;if((fa|0)<0){fa=0}else{fa=(fa|0)>(H|0)?I:fa&65535}la=$+((ga(ba,r)|0)<<1)|0;b[la>>1]=fa}ba=ba+1|0;}while((ba|0)<4)}else{ha=U>>ia;if(ja){ia=1}else{if(!((ha|0)>-1&(ha|0)<(fa|0))){g=62;break a}ia=ca+(((ga(da,ha)|0)+ea|0)*3|0)|0;ia=((d[ia]|d[ia+1|0]<<8)<<16>>16&1024)==0}if(!((ha|0)>-1&(ha|0)<(fa|0))){g=65;break a}da=ca+(((ga(da,ha)|0)+ea|0)*3|0)|0;da=((d[da]|d[da+1|0]<<8)<<16>>16&2048)==0&ia;if(ja){ea=1}else{ea=ca+(ba*3|0)|0;ea=((d[ea]|d[ea+1|0]<<8)<<16>>16&1024)==0}ca=ca+(ba*3|0)|0;ea=((d[ca]|d[ca+1|0]<<8)<<16>>16&2048)==0&ea;ca=-aa|0;ba=0;do{fa=e[p+(ba<<1)>>1]|0;ia=e[v+(ba<<1)>>1]|0;ha=(e[v+8+(ba<<1)>>1]|0)+4+(fa-ia<<2)-(e[p+8+(ba<<1)>>1]|0)>>3;if((ha|0)<(ca|0)){ha=ca}else{ha=(ha|0)>(aa|0)?aa:ha}if(da){ia=ia+ha|0;if((ia|0)<0){ia=0}else{ia=(ia|0)>(H|0)?I:ia&65535}b[$+(ba-r<<1)>>1]=ia}if(ea){fa=fa-ha|0;if((fa|0)<0){fa=0}else{fa=(fa|0)>(H|0)?I:fa&65535}b[$+(ba<<1)>>1]=fa}ba=ba+1|0;}while((ba|0)<4)}}while((_|0)<2)}V=V+q|0;}while((V|0)<(l|0))}h=h+u|0;if((h|0)>=(F|0)){g=82;break}}if((g|0)==14){ec(8880,6264,118,17352)}else if((g|0)==17){ec(4520,6264,119,17352)}else if((g|0)==20){ec(8880,6264,118,17352)}else if((g|0)==23){ec(4520,6264,119,17352)}else if((g|0)==33){ec(8880,6264,118,17352)}else if((g|0)==36){ec(4520,6264,119,17352)}else if((g|0)==42){ec(8880,6264,118,17352)}else if((g|0)==45){ec(8880,6264,118,17352)}else if((g|0)==62){ec(4520,6264,119,17352)}else if((g|0)==65){ec(4520,6264,119,17352)}else if((g|0)==82){i=m;return}}function Ae(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0;l=i;i=i+16|0;u=l|0;t=l+8|0;p=c[b+5780>>2]|0;n=c[b+5784>>2]|0;o=ga(p,f?2:1)|0;s=ga(n,f?1:2)|0;q=b+44|0;m=c[q>>2]|0;r=b+10472|0;v=c[r>>2]|0;v=(v|0)>(k|0)?k:v;k=c[b+10476>>2]|0;k=(k|0)>(h|0)?h:k;h=b+5768|0;if((k|0)<=(g|0)){i=l;return}x=(v|0)>(j|0);L=3-p|0;N=3-n|0;M=b+10460|0;J=b+5952|0;K=b+5956|0;w=b+10368|0;O=b+10372|0;y=b+10376|0;z=b+10360|0;A=b+5776|0;B=b+10348|0;C=b+10352|0;D=b+10356|0;F=b+10340|0;E=b+48|0;G=b+5480|0;H=(1<<c[h>>2])-1|0;I=H&255;a:while(1){if(x){W=g<<N;T=ga(W,n)|0;S=(T|0)/4|0;U=T-1|0;V=j;do{R=V<<L;P=ga(R,p)|0;X=(ga(c[r>>2]|0,S)|0)+((P|0)/4|0)|0;X=a[(c[M>>2]|0)+X|0]&3;if((X&255)>>>0>1>>>0){Q=P-1|0;X=((X&255)<<1)-2|0;Y=0;do{$=c[((Y|0)==0?J:K)>>2]|0;Y=Y+1|0;Z=c[b+4+(Y<<2)>>2]|0;_=(ga(c[q>>2]|0,W)|0)+R|0;da=0;while(1){aa=da+_|0;ea=_+~da|0;ca=(ga(da,m)|0)+_|0;fa=da+1|0;ba=_-(ga(fa,m)|0)|0;if(f){a[t+(da<<2)|0]=a[Z+aa|0]|0;a[u+(da<<2)|0]=a[Z+ea|0]|0;a[t+(da<<2)+1|0]=a[Z+(aa+m)|0]|0;a[u+(da<<2)+1|0]=a[Z+(ea+m)|0]|0;ka=m<<1;a[t+(da<<2)+2|0]=a[Z+(aa+ka)|0]|0;a[u+(da<<2)+2|0]=a[Z+(ea+ka)|0]|0;ka=m*3|0;a[t+(da<<2)+3|0]=a[Z+(aa+ka)|0]|0;a[u+(da<<2)+3|0]=a[Z+(ea+ka)|0]|0}else{a[t+(da<<2)|0]=a[Z+ca|0]|0;a[u+(da<<2)|0]=a[Z+ba|0]|0;a[t+(da<<2)+1|0]=a[Z+(ca+1)|0]|0;a[u+(da<<2)+1|0]=a[Z+(ba+1)|0]|0;a[t+(da<<2)+2|0]=a[Z+(ca+2)|0]|0;a[u+(da<<2)+2|0]=a[Z+(ba+2)|0]|0;a[t+(da<<2)+3|0]=a[Z+(ca+3)|0]|0;a[u+(da<<2)+3|0]=a[Z+(ba+3)|0]|0}if((fa|0)<2){da=fa}else{break}}ha=c[w>>2]|0;ea=P>>ha;aa=T>>ha;if(!((ea|0)>-1)){m=14;break a}ca=c[O>>2]|0;if((ea|0)>=(ca|0)){m=14;break a}if(!((aa|0)>-1)){m=17;break a}da=c[y>>2]|0;if((aa|0)>=(da|0)){m=17;break a}fa=ga(ca,aa)|0;aa=fa+ea|0;ba=c[z>>2]|0;ia=a[ba+(aa*3|0)+2|0]|0;if(f){ja=Q>>ha;if(!((ja|0)>-1&(ja|0)<(ca|0))){m=20;break a}ja=fa+ja|0}else{ja=U>>ha;if(!((ja|0)>-1&(ja|0)<(da|0))){m=23;break a}ja=(ga(ca,ja)|0)+ea|0}$=(ia+1+(a[ba+(ja*3|0)+2|0]|0)>>1)+$|0;do{if((c[A>>2]|0)==1){if(($|0)<30){break}if(($|0)>42){$=$-6|0;break}else{$=c[8+($-30<<2)>>2]|0;break}}else{$=($|0)<51?$:51}}while(0);ja=c[B>>2]|0;ka=P>>ja;ja=T>>ja;if(!((ka|0)>-1)){m=33;break a}ia=c[C>>2]|0;if((ka|0)>=(ia|0)){m=33;break a}if(!((ja|0)>-1)){m=36;break a}if((ja|0)>=(c[D>>2]|0)){m=36;break a}ka=(ga(ia,ja)|0)+ka|0;$=X+$+(c[(c[(c[E>>2]|0)+(e[(c[F>>2]|0)+(ka*24|0)+2>>1]<<2)>>2]|0)+760>>2]|0)|0;if(($|0)<0){$=0}else{$=($|0)>53?53:$}$=d[30664+$|0]<<(c[h>>2]|0)-8;ia=(a[G]|0)==0;if(f){ea=Q>>ha;if(ia){da=1}else{if(!((ea|0)>-1&(ea|0)<(ca|0))){m=42;break a}da=ba+((fa+ea|0)*3|0)|0;da=((d[da]|d[da+1|0]<<8)<<16>>16&1024)==0}if(!((ea|0)>-1&(ea|0)<(ca|0))){m=45;break a}ca=ba+((fa+ea|0)*3|0)|0;ca=((d[ca]|d[ca+1|0]<<8)<<16>>16&2048)==0&da;if(ia){da=1}else{da=ba+(aa*3|0)|0;da=((d[da]|d[da+1|0]<<8)<<16>>16&1024)==0}aa=ba+(aa*3|0)|0;aa=((d[aa]|d[aa+1|0]<<8)<<16>>16&2048)==0&da;da=-$|0;ea=_-1|0;ba=0;do{fa=d[t+ba|0]|0;ia=d[u+ba|0]|0;ha=(d[u+4+ba|0]|0)+4+(fa-ia<<2)-(d[t+4+ba|0]|0)>>3;if((ha|0)<(da|0)){ha=da}else{ha=(ha|0)>($|0)?$:ha}if(ca){ia=ia+ha|0;if((ia|0)<0){ia=0}else{ia=(ia|0)>(H|0)?I:ia&255}ka=Z+(ea+(ga(ba,m)|0))|0;a[ka]=ia}if(aa){fa=fa-ha|0;if((fa|0)<0){fa=0}else{fa=(fa|0)>(H|0)?I:fa&255}ka=Z+((ga(ba,m)|0)+_)|0;a[ka]=fa}ba=ba+1|0;}while((ba|0)<4)}else{ha=U>>ha;if(ia){fa=1}else{if(!((ha|0)>-1&(ha|0)<(da|0))){m=62;break a}fa=ba+(((ga(ca,ha)|0)+ea|0)*3|0)|0;fa=((d[fa]|d[fa+1|0]<<8)<<16>>16&1024)==0}if(!((ha|0)>-1&(ha|0)<(da|0))){m=65;break a}ca=ba+(((ga(ca,ha)|0)+ea|0)*3|0)|0;ca=((d[ca]|d[ca+1|0]<<8)<<16>>16&2048)==0&fa;if(ia){da=1}else{da=ba+(aa*3|0)|0;da=((d[da]|d[da+1|0]<<8)<<16>>16&1024)==0}ea=ba+(aa*3|0)|0;ea=((d[ea]|d[ea+1|0]<<8)<<16>>16&2048)==0&da;aa=-$|0;da=_-m|0;ba=0;do{fa=d[t+ba|0]|0;ia=d[u+ba|0]|0;ha=(d[u+4+ba|0]|0)+4+(fa-ia<<2)-(d[t+4+ba|0]|0)>>3;if((ha|0)<(aa|0)){ha=aa}else{ha=(ha|0)>($|0)?$:ha}if(ca){ia=ia+ha|0;if((ia|0)<0){ia=0}else{ia=(ia|0)>(H|0)?I:ia&255}a[Z+(da+ba)|0]=ia}if(ea){fa=fa-ha|0;if((fa|0)<0){fa=0}else{fa=(fa|0)>(H|0)?I:fa&255}a[Z+(ba+_)|0]=fa}ba=ba+1|0;}while((ba|0)<4)}}while((Y|0)<2)}V=V+o|0;}while((V|0)<(v|0))}g=g+s|0;if((g|0)>=(k|0)){m=82;break}}if((m|0)==14){ec(8880,6264,118,17352)}else if((m|0)==17){ec(4520,6264,119,17352)}else if((m|0)==20){ec(8880,6264,118,17352)}else if((m|0)==23){ec(4520,6264,119,17352)}else if((m|0)==33){ec(8880,6264,118,17352)}else if((m|0)==36){ec(4520,6264,119,17352)}else if((m|0)==42){ec(8880,6264,118,17352)}else if((m|0)==45){ec(8880,6264,118,17352)}else if((m|0)==62){ec(4520,6264,119,17352)}else if((m|0)==65){ec(4520,6264,119,17352)}else if((m|0)==82){i=l;return}}function Be(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=b|0;g=b+4|0;c[g>>2]=1;d=b+8|0;Wh(c[d>>2]|0,e);p=c[d>>2]|0;i=c[p+10472>>2]|0;j=(c[p+5812>>2]|0)/4|0;f=b+12|0;o=c[f>>2]|0;h=ga(o,j)|0;q=o+1|0;j=ga(q,j)|0;k=c[p+10476>>2]|0;k=(j|0)>(k|0)?k:j;m=b+16|0;r=(a[m]|0)!=0;j=r?2:3;l=c[p+5820>>2]|0;b=l-1|0;do{if(r){o=(c[p+5828>>2]|0)-1|0;Yh(p,e,b,(o|0)<(q|0)?o:q,1)}else{if((o|0)>0){Yh(p,e,b,o-1|0,2);p=c[d>>2]|0;o=c[f>>2]|0}Yh(p,e,b,o,2);p=(c[f>>2]|0)+1|0;o=c[d>>2]|0;if((p|0)>=(c[o+5828>>2]|0)){break}Yh(o,e,b,p,2)}}while(0);o=c[d>>2]|0;p=c[f>>2]|0;do{if((a[m]|0)==0){r=ga(c[o+10352>>2]|0,p)|0;if((a[(c[o+10340>>2]|0)+(r*24|0)+21|0]|0)!=0){p=0;n=11}}else{r=ve(o,p)|0;o=c[d>>2]|0;q=ga(c[o+10352>>2]|0,c[f>>2]|0)|0;a[(c[o+10340>>2]|0)+(q*24|0)+21|0]=r&1;if(!r){break}p=(a[m]|0)!=0;n=11}}while(0);do{if((n|0)==11){we(o,p,h,k,0,i);o=c[d>>2]|0;n=(a[m]|0)!=0;if((c[o+5760>>2]|0)>8){xe(o,n,h,k,0,i)}else{ye(o,n,h,k,0,i)}n=c[d>>2]|0;if((c[n+5776>>2]|0)==0){break}m=(a[m]|0)!=0;if((c[n+5768>>2]|0)>8){ze(n,m,h,k,0,i);break}else{Ae(n,m,h,k,0,i);break}}}while(0);if((l|0)<1){c[g>>2]=3;r=c[d>>2]|0;Xh(r,e);return}else{h=0}while(1){q=c[d>>2]|0;r=(ga(c[f>>2]|0,c[q+5820>>2]|0)|0)+h|0;Ek((c[q+10524>>2]|0)+(r*76|0)|0,j);if((h|0)>=(b|0)){break}h=h+1|0}c[g>>2]=3;r=c[d>>2]|0;Xh(r,e);return}function Ce(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;d=i;i=i+8|0;f=d|0;g=c[b>>2]|0;j=c[g+10332>>2]|0;e=g+5828|0;Vh(g,c[e>>2]<<1);k=b+10668|0;h=b+10672|0;j=j+375396|0;b=b+10664|0;if((c[e>>2]|0)>0){l=0}else{i=d;return}do{m=Nu(20)|0;c[m+4>>2]=0;c[m>>2]=22184;c[m+8>>2]=g;c[m+12>>2]=l;a[m+16|0]=1;c[f>>2]=m;n=c[k>>2]|0;if(n>>>0<(c[h>>2]|0)>>>0){if((n|0)==0){n=0}else{c[n>>2]=m;n=c[k>>2]|0}c[k>>2]=n+4}else{He(b,f)}Kk(j,m);l=l+1|0;m=c[e>>2]|0;}while((l|0)<(m|0));if((m|0)>0){l=0}else{i=d;return}do{m=Nu(20)|0;c[m+4>>2]=0;c[m>>2]=22184;c[m+8>>2]=g;c[m+12>>2]=l;a[m+16|0]=0;c[f>>2]=m;n=c[k>>2]|0;if(n>>>0<(c[h>>2]|0)>>>0){if((n|0)==0){n=0}else{c[n>>2]=m;n=c[k>>2]|0}c[k>>2]=n+4}else{He(b,f)}Kk(j,m);l=l+1|0;}while((l|0)<(c[e>>2]|0));i=d;return}function De(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+5828|0;if((c[b>>2]|0)>0){e=0;d=0}else{return}do{e=e|(ve(a,d)|0);d=d+1|0;}while((d|0)<(c[b>>2]|0));if(!e){return}d=a+10476|0;b=a+10472|0;we(a,1,0,c[d>>2]|0,0,c[b>>2]|0);g=c[d>>2]|0;f=c[b>>2]|0;e=a+5760|0;if((c[e>>2]|0)>8){xe(a,1,0,g,0,f)}else{ye(a,1,0,g,0,f)}f=a+5776|0;do{if((c[f>>2]|0)!=0){g=c[d>>2]|0;h=c[b>>2]|0;if((c[a+5768>>2]|0)>8){ze(a,1,0,g,0,h);break}else{Ae(a,1,0,g,0,h);break}}}while(0);we(a,0,0,c[d>>2]|0,0,c[b>>2]|0);g=c[d>>2]|0;h=c[b>>2]|0;if((c[e>>2]|0)>8){xe(a,0,0,g,0,h)}else{ye(a,0,0,g,0,h)}if((c[f>>2]|0)==0){return}d=c[d>>2]|0;b=c[b>>2]|0;if((c[a+5768>>2]|0)>8){ze(a,0,0,d,0,b);return}else{Ae(a,0,0,d,0,b);return}}function Ee(a){a=a|0;return}function Fe(a){a=a|0;Pu(a);return}function Ge(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+104|0;e=f|0;mb(e|0,1888,(g=i,i=i+8|0,c[g>>2]=c[d+12>>2],g)|0)|0;i=g;d=ev(e|0)|0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;g=b+1|0;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}else{h=d+16&-16;g=Nu(h)|0;c[b+8>>2]=g;c[b>>2]=h|1;c[b+4>>2]=d;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=a+132|0;if((c[d>>2]|0)!=0){ec(1960,14344,169,17808)}e=Ra(b|0,18624)|0;i=K;e=sb(e|0,16)|0;e=Ou(i|K?-1:e)|0;c[e+12>>2]=b;e=e+16|0;if((b|0)==0){c[d>>2]=e;i=a+136|0;c[i>>2]=b;return}g=e+(b*18624|0)|0;f=e;do{Cd(f+18580|0);h=f+48|0;i=h&15;dv(f+18508|0,0,20)|0;dv(f+18592|0,0,20)|0;if((i|0)==0){c[f+2112>>2]=h}else{h=h+(16-i)|0;c[f+2112>>2]=h}dv(h|0,0,2048)|0;f=f+18624|0;}while((f|0)!=(g|0));c[d>>2]=e;i=a+136|0;c[i>>2]=b;return}function Je(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=a+10636|0;f=c[b>>2]|0;d=a+10632|0;g=c[d>>2]|0;if((f|0)!=(g|0)){e=0;h=f;while(1){f=c[g+(e<<2)>>2]|0;if((f|0)==0){f=h}else{Vi((c[f+140>>2]|0)+548|0,c[f>>2]|0);g=c[f+132>>2]|0;if((g|0)!=0){i=g-18624+18608|0;h=i;i=c[i+12>>2]|0;if((i|0)!=0){j=g+(i*18624|0)|0;while(1){i=j-18624|0;Ed(j-18624+18580|0);if((i|0)==(g|0)){break}else{j=i}}}Qu(h)}Ck(f+44|0);Pu(f);f=c[b>>2]|0;g=c[d>>2]|0}e=e+1|0;if(e>>>0<f-g>>2>>>0){h=f}else{break}}}e=a+10668|0;i=c[e>>2]|0;f=a+10664|0;h=c[f>>2]|0;if((i|0)==(h|0)){h=i}else{g=0;do{j=c[h+(g<<2)>>2]|0;if((j|0)!=0){Dc[c[(c[j>>2]|0)+4>>2]&511](j);i=c[e>>2]|0;h=c[f>>2]|0}g=g+1|0;}while(g>>>0<i-h>>2>>>0)}i=a+10676|0;g=c[i>>2]|0;if((g|0)!=0){h=a+10680|0;j=c[h>>2]|0;if((j|0)!=(g|0)){do{k=j-8|0;c[h>>2]=k;Ed(k);j=c[h>>2]|0;}while((j|0)!=(g|0));g=c[i>>2]|0}Pu(g);h=c[f>>2]|0}if((h|0)!=0){f=c[e>>2]|0;if((f|0)!=(h|0)){c[e>>2]=f+(~((f-4+(-h|0)|0)>>>2)<<2)}Pu(h)}e=c[a+10644>>2]|0;if((e|0)!=0){f=a+10648|0;g=c[f>>2]|0;if((g|0)!=(e|0)){c[f>>2]=g+(~(((g-80+(-e|0)|0)>>>0)/80|0)*80|0)}Pu(e)}d=c[d>>2]|0;if((d|0)==0){k=a+8|0;Rh(k);return}e=c[b>>2]|0;if((e|0)!=(d|0)){c[b>>2]=e+(~((e-4+(-d|0)|0)>>>2)<<2)}Pu(d);k=a+8|0;Rh(k);return}function Ke(a,b){a=a|0;b=b|0;Lf(a+172|0);return}function Le(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c[b+84>>2]=0;c[b+168>>2]=0;d=b|0;c[d>>2]=22344;Lf(b+172|0);c[d>>2]=22312;Si(b+548|0);c[b+1192>>2]=0;c[b+1196>>2]=0;c[b+1200>>2]=0;dv(b+1228|0,0,24)|0;c[b+1848>>2]=0;c[b+1852>>2]=0;c[b+1856>>2]=0;dv(b+1884|0,0,24)|0;c[b+2504>>2]=0;c[b+2508>>2]=0;c[b+2512>>2]=0;dv(b+2540|0,0,24)|0;c[b+3160>>2]=0;c[b+3164>>2]=0;c[b+3168>>2]=0;dv(b+3196|0,0,24)|0;c[b+3816>>2]=0;c[b+3820>>2]=0;c[b+3824>>2]=0;dv(b+3852|0,0,24)|0;c[b+4472>>2]=0;c[b+4476>>2]=0;c[b+4480>>2]=0;dv(b+4508|0,0,24)|0;c[b+5128>>2]=0;c[b+5132>>2]=0;c[b+5136>>2]=0;dv(b+5164|0,0,24)|0;c[b+5784>>2]=0;c[b+5788>>2]=0;c[b+5792>>2]=0;dv(b+5820|0,0,24)|0;c[b+6440>>2]=0;c[b+6444>>2]=0;c[b+6448>>2]=0;dv(b+6476|0,0,24)|0;c[b+7096>>2]=0;c[b+7100>>2]=0;c[b+7104>>2]=0;dv(b+7132|0,0,24)|0;c[b+7752>>2]=0;c[b+7756>>2]=0;c[b+7760>>2]=0;dv(b+7788|0,0,24)|0;c[b+8408>>2]=0;c[b+8412>>2]=0;c[b+8416>>2]=0;dv(b+8444|0,0,24)|0;c[b+9064>>2]=0;c[b+9068>>2]=0;c[b+9072>>2]=0;dv(b+9100|0,0,24)|0;c[b+9720>>2]=0;c[b+9724>>2]=0;c[b+9728>>2]=0;dv(b+9756|0,0,24)|0;c[b+10376>>2]=0;c[b+10380>>2]=0;c[b+10384>>2]=0;dv(b+10412|0,0,24)|0;c[b+11032>>2]=0;c[b+11036>>2]=0;c[b+11040>>2]=0;dv(b+11068|0,0,24)|0;d=b+93784|0;e=b+11096|0;do{ik(e);e=e+5168|0;}while((e|0)!=(d|0));e=b+375384|0;d=b+93784|0;do{jj(d);d=d+4400|0;}while((d|0)!=(e|0));dv(b+375400|0,0,24)|0;sh(b+376144|0);c[b+377212>>2]=0;c[b+377216>>2]=0;c[b+377220>>2]=0;a[b+512|0]=0;a[b+513|0]=1;a[b+514|0]=0;a[b+532|0]=0;a[b+533|0]=0;e=b+536|0;dv(b+516|0,-1|0,16)|0;k=27248;j=c[k+4>>2]|0;c[e>>2]=c[k>>2];c[e+4>>2]=j;c[b+544>>2]=0;c[b+375384>>2]=0;c[b+375388>>2]=0;c[b+375392>>2]=0;c[b+375888>>2]=0;e=b+375892|0;c[e>>2]=6;c[b+375896>>2]=100;c[b+375900>>2]=6;c[b+375908>>2]=6;c[b+375904>>2]=100;j=6;while(1){d=j*100|0;f=(d|0)/7|0;d=(d+100|0)/7|0;a:do{if((f|0)<=(d|0)){g=d-f|0;h=f;while(1){k=c[e>>2]|0;i=(j|0)>(k|0);j=i?k:j;a[b+375912+(h<<1)|0]=j;a[b+375912+(h<<1)+1|0]=i?100:(((h-f|0)*100|0|0)/(g|0)|0)&255;if((h|0)>=(d|0)){break a}h=h+1|0}}}while(0);c[b+376116+(j<<2)>>2]=d;if((j|0)>0){j=j-1|0}else{break}}k=b+376200|0;dv(k|0,0,24)|0;a[b+376204|0]=1;c[k>>2]=-1;return}function Me(a){a=a|0;Ne(a);Pu(a);return}function Ne(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;c[a>>2]=22312;b=a+377212|0;f=c[b>>2]|0;d=a+377216|0;e=c[d>>2]|0;if((f|0)!=(e|0)){do{g=c[e-4>>2]|0;if((g|0)!=0){Je(g);Pu(g);e=c[d>>2]|0;f=c[b>>2]|0}g=e-4|0;e=e+(~((g+(-g|0)|0)>>>2)<<2)|0;c[d>>2]=e;}while((f|0)!=(e|0))}if((f|0)!=0){Pu(f)}th(a+376144|0);b=a+375400|0;Kf(b|0);e=a+375404|0;g=c[e>>2]|0;d=a+375408|0;f=c[d>>2]|0;do{if((g|0)!=(f|0)){do{Pu(c[g>>2]|0);g=g+4|0;}while((g|0)!=(f|0));f=c[e>>2]|0;e=c[d>>2]|0;if((e|0)==(f|0)){break}c[d>>2]=e+(~((e-4+(-f|0)|0)>>>2)<<2)}}while(0);b=c[b>>2]|0;if((b|0)!=0){Pu(b)}b=a+93784|0;d=a+375384|0;do{d=d-4400|0;kj(d);}while((d|0)!=(b|0));jk(a+88616|0);jk(a+83448|0);jk(a+78280|0);jk(a+73112|0);jk(a+67944|0);jk(a+62776|0);jk(a+57608|0);jk(a+52440|0);jk(a+47272|0);jk(a+42104|0);jk(a+36936|0);jk(a+31768|0);jk(a+26600|0);jk(a+21432|0);jk(a+16264|0);jk(a+11096|0);Jf(a+10440|0);Jf(a+9784|0);Jf(a+9128|0);Jf(a+8472|0);Jf(a+7816|0);Jf(a+7160|0);Jf(a+6504|0);Jf(a+5848|0);Jf(a+5192|0);Jf(a+4536|0);Jf(a+3880|0);Jf(a+3224|0);Jf(a+2568|0);Jf(a+1912|0);Jf(a+1256|0);Jf(a+600|0);Ti(a+548|0);return}function Oe(a){a=a|0;if((c[a+375888>>2]|0)<=0){return}Jk(a+375396|0);return}function Pe(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=b+375888|0;if((c[d>>2]|0)>0){Jk(b+375396|0)}c[b+376220>>2]=0;c[b+376200>>2]=-1;a[b+376204|0]=1;Bh(b+376144|0);_i(b+548|0);f=b+377212|0;h=c[f>>2]|0;e=b+377216|0;g=c[e>>2]|0;if((h|0)!=(g|0)){do{i=c[g-4>>2]|0;if((i|0)!=0){Je(i);Pu(i);g=c[e>>2]|0;h=c[f>>2]|0}i=g-4|0;g=g+(~((i+(-i|0)|0)>>>2)<<2)|0;c[e>>2]=g;}while((h|0)!=(g|0))}e=c[d>>2]|0;if((e|0)<=0){return}Hk(b+375396|0,e)|0;c[d>>2]=e;return}function Qe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;dv(d+48|0,0,2064)|0;c[d+18532>>2]=-1;c[d+18536>>2]=-1;b=c[d+18596>>2]|0;e=c[(c[d+18600>>2]|0)+16>>2]|0;if((e|0)<=0){return}h=c[(c[b+10284>>2]|0)+((c[(c[b+10272>>2]|0)+(e<<2)>>2]|0)-1<<2)>>2]|0;e=c[b+5820>>2]|0;f=c[b+5804>>2]|0;i=(((h|0)%(e|0)|0)+1<<f)-1|0;f=(((h|0)/(e|0)|0)+1<<f)-1|0;e=(c[b+1248>>2]|0)-1|0;h=(c[b+1252>>2]|0)-1|0;g=c[b+10368>>2]|0;e=((e|0)<(i|0)?e:i)>>g;f=((h|0)<(f|0)?h:f)>>g;if(!((e|0)>-1)){ec(14528,14272,118,17304)}g=c[b+10372>>2]|0;if((e|0)>=(g|0)){ec(14528,14272,118,17304)}if(!((f|0)>-1)){ec(13968,14272,119,17304)}if((f|0)>=(c[b+10376>>2]|0)){ec(13968,14272,119,17304)}i=(ga(g,f)|0)+e|0;c[d+18528>>2]=a[(c[b+10360>>2]|0)+(i*3|0)+2|0]|0;return}function Re(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+656|0;h=e|0;k=h;f=h+592|0;c[f>>2]=0;g=h+596|0;c[g>>2]=0;c[h+600>>2]=0;j=h+628|0;dv(j|0,0,24)|0;d=_k(h,b+4|0,d)|0;if((d|0)==0){d=c[b+520>>2]|0;if((d|0)>-1){cl(h,d)}d=c[h>>2]|0;l=b+600+(d*656|0)|0;cv(l|0,k|0,592)|0;if((l|0)==(h|0)){cv(b+600+(d*656|0)+604|0,h+604|0,24)|0}else{Cf(b+600+(d*656|0)+592|0,c[f>>2]|0,c[g>>2]|0);cv(b+600+(d*656|0)+604|0,h+604|0,24)|0;Bf(b+600+(d*656|0)+628|0,c[j>>2]|0,c[h+632>>2]|0);Af(b+600+(d*656|0)+640|0,c[h+640>>2]|0,c[h+644>>2]|0)}a[b+600+(d*656|0)+652|0]=a[h+652|0]|0;d=0}b=c[h+640>>2]|0;if((b|0)!=0){k=h+644|0;if((c[k>>2]|0)!=(b|0)){c[k>>2]=b}Pu(b)}j=c[j>>2]|0;if((j|0)!=0){b=h+632|0;h=c[b>>2]|0;if((h|0)!=(j|0)){c[b>>2]=h+(~((h-2+(-j|0)|0)>>>1)<<1)}Pu(j)}h=c[f>>2]|0;if((h|0)==0){i=e;return d|0}j=c[g>>2]|0;if((j|0)!=(h|0)){do{j=j-12|0;c[g>>2]=j;b=c[j>>2]|0;if((b|0)!=0){Pu(b);j=c[g>>2]|0}}while((j|0)!=(h|0));h=c[f>>2]|0}Pu(h);i=e;return d|0}function Se(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+4400|0;e=f|0;jj(e);d=mj(e,d,b)|0;g=c[b+524>>2]|0;if((g|0)>-1){oj(e,g)}if(!d){g=d?0:1006;kj(e);i=f;return g|0}g=a[e+1|0]|0;h=b+93784+(g*4400|0)|0;cv(h|0,e|0,4340)|0;if((h|0)==(e|0)){h=d?0:1006;kj(e);i=f;return h|0}tf(b+93784+(g*4400|0)+4340|0,c[e+4340>>2]|0,c[e+4344>>2]|0);tf(b+93784+(g*4400|0)+4352|0,c[e+4352>>2]|0,c[e+4356>>2]|0);tf(b+93784+(g*4400|0)+4364|0,c[e+4364>>2]|0,c[e+4368>>2]|0);tf(b+93784+(g*4400|0)+4376|0,c[e+4376>>2]|0,c[e+4380>>2]|0);tf(b+93784+(g*4400|0)+4388|0,c[e+4388>>2]|0,c[e+4392>>2]|0);h=d?0:1006;kj(e);i=f;return h|0}function Te(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+80|0;f=e|0;g=f;h=a+375388|0;b=Fj(b,f,d,c[h>>2]|0)|0;do{if((b|0)==0){Gj(f,c[h>>2]|0);h=c[a+377216>>2]|0;if((c[a+377212>>2]|0)==(h|0)|d^1){break}h=c[h-4>>2]|0;a=h+10648|0;d=c[a>>2]|0;if((d|0)==(c[h+10652>>2]|0)){xf(h+10644|0,f);break}if((d|0)==0){f=0}else{cv(d|0,g|0,80)|0;f=c[a>>2]|0}c[a>>2]=f+80}else{f=a+84|0;g=c[f>>2]|0;if((g|0)==20){c[a+80>>2]=1001;break}else{c[f>>2]=g+1;c[a+4+(g<<2)>>2]=b;break}}}while(0);i=e;return b|0}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;a:do{if(d){e=a+164|0;d=c[e>>2]|0;do{if((d|0)>0){f=0;while(1){g=f+1|0;if((c[a+84+(f<<2)>>2]|0)==(b|0)){f=10;break}if((g|0)<(d|0)){f=g}else{f=5;break}}if((f|0)==5){if((d|0)<20){break}else{break a}}else if((f|0)==10){return}}}while(0);c[e>>2]=d+1;c[a+84+(d<<2)>>2]=b}}while(0);e=a+80|0;d=c[e>>2]|0;if((d|0)==20){c[a+76>>2]=1001;return}else{c[e>>2]=d+1;c[a+(d<<2)>>2]=b;return}}function Ve(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=i;i=i+48|0;p=g|0;s=g+8|0;h=g+16|0;n=g+24|0;l=g+32|0;k=g+40|0;j=Nu(1356)|0;m=j;If(m);o=Kj(m,d,b,s)|0;c[h>>2]=o;if((a[s]|0)==0){h=c[b+376220>>2]|0;if((h|0)!=0){a[h+10516|0]=2}Vi(b+548|0,e);if((j|0)==0){s=o;i=g;return s|0}k=c[j+1344>>2]|0;if((k|0)!=0){h=j+1348|0;b=c[h>>2]|0;if((b|0)!=(k|0)){c[h>>2]=b+(~((b-4+(-k|0)|0)>>>2)<<2)}Pu(k)}Ed(j+1332|0);h=c[j+776>>2]|0;if((h|0)!=0){b=j+780|0;k=c[b>>2]|0;if((k|0)!=(h|0)){c[b>>2]=k+(~((k-4+(-h|0)|0)>>>2)<<2)}Pu(h)}Pu(j);s=o;i=g;return s|0}o=c[b+528>>2]|0;if((o|0)>-1){Lj(m,b,o)}r=e+8|0;r=We(b,b,m,h,c[r>>2]|0,c[r+4>>2]|0,f,c[e+16>>2]|0)|0;o=b+376220|0;s=c[o>>2]|0;if(!r){if((s|0)!=0){a[s+10516|0]=2}Vi(b+548|0,e);if((j|0)!=0){b=c[j+1344>>2]|0;if((b|0)!=0){k=j+1348|0;l=c[k>>2]|0;if((l|0)!=(b|0)){c[k>>2]=l+(~((l-4+(-b|0)|0)>>>2)<<2)}Pu(b)}Ed(j+1332|0);b=c[j+776>>2]|0;if((b|0)!=0){k=j+780|0;l=c[k>>2]|0;if((l|0)!=(b|0)){c[k>>2]=l+(~((l-4+(-b|0)|0)>>>2)<<2)}Pu(b)}Pu(j)}s=c[h>>2]|0;i=g;return s|0}c[p>>2]=m;q=s+48|0;f=s+52|0;r=c[f>>2]|0;c[j>>2]=r-(c[q>>2]|0)>>2;if((r|0)==(c[s+56>>2]|0)){Hf(q,p)}else{if((r|0)==0){p=0}else{c[r>>2]=m;p=c[f>>2]|0}c[f>>2]=p+4}od(d,1);pd(d);f=(c[d>>2]|0)-(c[e+20>>2]|0)|0;q=j+768|0;if((c[q>>2]|0)>0){r=j+776|0;s=0;p=c[r>>2]|0;do{u=Qi(e,c[p+(s<<2)>>2]|0,f)|0;p=c[r>>2]|0;t=p+(s<<2)|0;c[t>>2]=(c[t>>2]|0)-u;s=s+1|0;}while((s|0)<(c[q>>2]|0))}do{if((a[j+4|0]|0)==0){n=b+377216|0}else{j=Nu(10688)|0;Oh(j+8|0);p=j;dv(j+10632|0,0,56)|0;c[n>>2]=p;c[j>>2]=c[o>>2];j=b+377216|0;o=c[j>>2]|0;if((o|0)==(c[b+377220>>2]|0)){wf(b+377212|0,n);n=j;break}if((o|0)==0){n=0}else{c[o>>2]=p;n=c[j>>2]|0}c[j>>2]=n+4;n=j}}while(0);do{if((c[b+377212>>2]|0)!=(c[n>>2]|0)){u=Nu(144)|0;t=u;c[t>>2]=0;c[u+4>>2]=0;c[u+32>>2]=0;a[u+36|0]=0;Bk(u+44|0);j=u;c[u+120>>2]=0;c[u+124>>2]=-1;c[u+128>>2]=-1;c[u+132>>2]=0;c[u+140>>2]=b;c[u+40>>2]=0;c[u+136>>2]=0;c[l>>2]=j;c[t>>2]=e;c[u+4>>2]=m;m=u+8|0;e=d;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];a[u+36|0]=a[b+377224|0]|0;m=c[(c[n>>2]|0)-4>>2]|0;e=m+10636|0;d=c[e>>2]|0;if((d|0)==(c[m+10640>>2]|0)){vf(m+10632|0,l);break}if((d|0)==0){j=0}else{c[d>>2]=j;j=c[e>>2]|0}c[e>>2]=j+4}}while(0);u=Xe(b,k)|0;c[h>>2]=u;u=0;i=g;return u|0}function We(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=i;c[f>>2]=0;a[b+377224|0]=0;p=c[e+8>>2]|0;n=d+93784+(p*4400|0)|0;if((a[n|0]|0)==0){Yk(1,344,(r=i,i=i+8|0,c[r>>2]=p,r)|0);i=r;ec(11704,14344,1987,17600);return 0}o=d+375392|0;c[o>>2]=n;n=a[d+93784+(p*4400|0)+2|0]|0;q=d+375388|0;c[q>>2]=d+11096+(n*5168|0);p=d+375384|0;c[p>>2]=d+600+((a[d+11096+(n*5168|0)+1|0]|0)*656|0);hf(b);n=e+4|0;do{if((a[n]|0)==0){if((c[d+376220>>2]|0)==0){e=0}else{break}i=l;return e|0}else{c[d+376200>>2]=c[e+28>>2];r=c[q>>2]|0;if((a[r+4703|0]|0)==0){q=1}else{q=(a[d+533|0]|0)!=0}g=Ch(d+376144|0,r,b,g,h,k,q)|0;if((g|0)==-1){c[f>>2]=9;r=0;i=l;return r|0}f=c[d+376152>>2]|0;if((c[d+376156>>2]|0)-f>>2>>>0>g>>>0){f=c[f+(g<<2)>>2]|0}else{f=0}r=f+10518|0;j=j|0;a[r]=a[j]|0;a[r+1|0]=a[j+1|0]|0;a[r+2|0]=a[j+2|0]|0;j=d+376220|0;c[j>>2]=f;r=f+108|0;p=c[p>>2]|0;cv(r|0,p|0,592)|0;if((r|0)==(p|0)){cv(f+712|0,f+712|0,24)|0}else{Cf(f+700|0,c[p+592>>2]|0,c[p+596>>2]|0);cv(f+712|0,p+604|0,24)|0;Bf(f+736|0,c[p+628>>2]|0,c[p+632>>2]|0);Af(f+748|0,c[p+640>>2]|0,c[p+644>>2]|0)}a[f+760|0]=a[p+652|0]|0;r=f+5932|0;o=c[o>>2]|0;cv(r|0,o|0,4340)|0;if((r|0)!=(o|0)){tf(f+10272|0,c[o+4340>>2]|0,c[o+4344>>2]|0);tf(f+10284|0,c[o+4352>>2]|0,c[o+4356>>2]|0);tf(f+10296|0,c[o+4364>>2]|0,c[o+4368>>2]|0);tf(f+10308|0,c[o+4376>>2]|0,c[o+4380>>2]|0);tf(f+10320|0,c[o+4388>>2]|0,c[o+4392>>2]|0)}c[f+10332>>2]=d;$h(f);o=d+377208|0;a:do{if(Ni(a[o]|0)|0){do{if(!(Ki(a[o]|0)|0)){if(Li(a[o]|0)|0){break}if((a[d+376204|0]|0)!=0){break}if((a[d+376207|0]|0)!=0){break}a[d+376205|0]=0;a[d+376206|0]=0;break a}}while(0);a[d+376205|0]=1;a[d+376207|0]=0}}while(0);do{if(Mi(a[o]|0)|0){if((a[d+376205|0]|0)==0){m=25;break}a[(c[j>>2]|0)+100|0]=0}else{m=25}}while(0);if((m|0)==25){a[(c[j>>2]|0)+100|0]=(a[e+24|0]|0)!=0|0}df(b,d,e);m=f+96|0;if((a[n]|0)!=0){c[m>>2]=1;ff(b,d,e)}c[m>>2]=1;Wk(c[(c[j>>2]|0)+92>>2]|0);a[b+376204|0]=0}}while(0);do{if((c[e+20>>2]|0)>>>0<2>>>0){if(gf(0,d,e)|0){break}else{e=0}i=l;return e|0}}while(0);uh(d+376144|0);if((a[e+12|0]|0)==0){c[e+800>>2]=c[e+16>>2];d=d+376224|0}else{d=d+376224|0;c[e+800>>2]=c[(c[d>>2]|0)+800>>2]}c[d>>2]=e;r=1;i=l;return r|0}function Xe(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a[d]=0;f=b+377212|0;g=c[f>>2]|0;e=b+377216|0;i=c[e>>2]|0;if((g|0)==(i|0)){n=0;return n|0}j=c[g>>2]|0;l=c[j+10636>>2]|0;k=c[j+10632>>2]|0;a:do{if((l|0)==(k|0)){k=g}else{l=l-k>>2;n=0;while(1){m=c[k+(n<<2)>>2]|0;n=n+1|0;if((c[m+40>>2]|0)==0){break}if(!(n>>>0<l>>>0)){k=g;break a}}if((m|0)==0){k=g;break}if((a[m+36|0]|0)!=0){Ah(b+376144|0)|0}a[d]=1;g=Ye(b,j,m)|0;if((g|0)==0){i=c[e>>2]|0;k=c[f>>2]|0;break}else{n=g;return n|0}}}while(0);do{if(i-k>>2>>>0>1>>>0){g=c[k>>2]|0;j=c[g+10636>>2]|0;if((j|0)==(c[g+10632>>2]|0)){break}if((c[(c[j-4>>2]|0)+40>>2]|0)==0){h=14}}else{h=14}}while(0);do{if((h|0)==14){if((i|0)==(k|0)){n=0;return n|0}g=c[k>>2]|0;h=c[g+10636>>2]|0;do{if((h|0)!=(c[g+10632>>2]|0)){if((c[(c[h-4>>2]|0)+40>>2]|0)==0){e=0}else{break}return e|0}}while(0);if(((c[b+556>>2]|0)!=0|0)!=(-(c[b+580>>2]|0)|0)){n=0;return n|0}if((a[b+548|0]|0)!=0){break}if((a[b+549|0]|0)==0){e=0}else{break}return e|0}}while(0);a[d]=1;h=g|0;d=c[h>>2]|0;i=d+10344|0;if((c[i>>2]|0)>0){j=d+10524|0;d=0;do{Ek((c[j>>2]|0)+(d*76|0)|0,1);d=d+1|0;}while((d|0)<(c[i>>2]|0));d=c[h>>2]|0}k=d+10332|0;j=c[k>>2]|0;i=(a[j+532|0]|0)==0;do{if((c[(c[(c[b+376220>>2]|0)+10332>>2]|0)+375888>>2]|0)==0){if(i){De(d);j=c[k>>2]|0}if((a[j+533|0]|0)!=0){break}uj(d)}else{if(i){Ce(g);i=3;j=c[k>>2]|0}else{i=1}if((a[j+533|0]|0)==0){wj(g,i)|0}_h(d)}}while(0);i=g+10648|0;d=g+10644|0;k=c[d>>2]|0;b:do{if((c[i>>2]|0)==(k|0)){h=38}else{j=0;while(1){k=Hj(k+(j*80|0)|0,c[h>>2]|0)|0;j=j+1|0;if((k|0)!=0){break}k=c[d>>2]|0;if(!(j>>>0<(((c[i>>2]|0)-k|0)/80|0)>>>0)){h=38;break b}}Ze(b,g)|0;b=k;h=39}}while(0);if((h|0)==38){Ze(b,g)|0;if((g|0)==0){b=0}else{b=0;h=39}}if((h|0)==39){Je(g);Pu(g)}d=c[e>>2]|0;g=c[f>>2]|0;if(d-g>>2>>>0>1>>>0){h=1;do{c[g+(h-1<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0;d=c[e>>2]|0;g=c[f>>2]|0;}while(h>>>0<d-g>>2>>>0)}n=d-4|0;c[e>>2]=d+(~((n+(-n|0)|0)>>>2)<<2);n=b;return n|0}function Ye(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=e+4|0;h=c[f>>2]|0;p=h+1348|0;h=h+1344|0;q=c[h>>2]|0;if((c[p>>2]|0)!=(q|0)){n=b+376144|0;o=b+376152|0;j=0;do{q=yh(n,c[q+(j<<2)>>2]|0)|0;if((q|0)>-1){c[(c[(c[o>>2]|0)+(q<<2)>>2]|0)+96>>2]=0}j=j+1|0;q=c[h>>2]|0;}while(j>>>0<(c[p>>2]|0)-q>>2>>>0)}h=d|0;r=c[h>>2]|0;j=e+40|0;c[j>>2]=1;n=c[r+10332>>2]|0;a:do{if((c[n+375888>>2]|0)>0){v=a[r+5965|0]|0;q=v<<24>>24!=0;p=(a[r+5966|0]|0)!=0;if(!(v<<24>>24==0)){break}if((a[r+5966|0]|0)!=0){break}t=n+168|0;u=c[t>>2]|0;if((u|0)>0){s=0;while(1){o=s+1|0;if((c[n+88+(s<<2)>>2]|0)==1e3){break a}if((o|0)<(u|0)){s=o}else{break}}if((u|0)<20){k=13}}else{k=13}if((k|0)==13){c[t>>2]=u+1;c[n+88+(u<<2)>>2]=1e3}o=n+84|0;s=c[o>>2]|0;if((s|0)==20){c[n+80>>2]=1001;break}else{c[o>>2]=s+1;c[n+4+(s<<2)>>2]=1e3;break}}else{q=0;p=0}}while(0);n=d+10636|0;t=c[n>>2]|0;o=d+10632|0;u=c[o>>2]|0;do{if((t|0)==(u|0)){s=t;r=t}else{if((c[u>>2]|0)!=(e|0)){s=t;r=u;break}s=c[(c[f>>2]|0)+16>>2]|0;if((s|0)<=0){s=t;r=u;break}r=r+10524|0;t=0;do{Ek((c[r>>2]|0)+(t*76|0)|0,1);t=t+1|0;}while((t|0)<(s|0));s=c[n>>2]|0;r=c[o>>2]|0}}while(0);t=s-r>>2;b:do{if(t>>>0>1>>>0){s=1;while(1){u=s+1|0;if((c[r+(s<<2)>>2]|0)==(e|0)){break}if(u>>>0<t>>>0){s=u}else{break b}}s=c[r+(s-1<<2)>>2]|0;if((s|0)==0){break}if((c[s+40>>2]|0)!=2){break}t=t-1|0;u=0;while(1){if(!(u>>>0<t>>>0)){break b}v=u+1|0;if((c[r+(u<<2)>>2]|0)==(s|0)){break}else{u=v}}r=c[r+(v<<2)>>2]|0;if((r|0)==0){break}t=c[(c[s+4>>2]|0)+16>>2]|0;r=r+4|0;if((t|0)>=(c[(c[r>>2]|0)+16>>2]|0)){break}do{s=c[h>>2]|0;if((t|0)>=(c[s+10344>>2]|0)){break b}Ek((c[s+10524>>2]|0)+(t*76|0)|0,1);t=t+1|0;}while((t|0)<(c[(c[r>>2]|0)+16>>2]|0))}}while(0);if(!(q|p)){r=_e(b,d,e)|0;c[j>>2]=2;s=c[o>>2]|0;t=((c[n>>2]|0)-s>>2)-1|0;u=0;while(1){if(!(u>>>0<t>>>0)){l=r;k=61;break}m=u+1|0;if((c[s+(u<<2)>>2]|0)==(e|0)){break}else{u=m}}if((k|0)==61){return l|0}k=c[s+(m<<2)>>2]|0;if((k|0)==0){v=r;return v|0}l=c[(c[f>>2]|0)+16>>2]|0;k=k+4|0;if((l|0)>=(c[(c[k>>2]|0)+16>>2]|0)){v=r;return v|0}while(1){m=c[h>>2]|0;if((l|0)>=(c[m+10344>>2]|0)){l=r;k=61;break}Ek((c[m+10524>>2]|0)+(l*76|0)|0,1);l=l+1|0;if((l|0)>=(c[(c[k>>2]|0)+16>>2]|0)){l=r;k=61;break}}if((k|0)==61){return l|0}}if(q&p){v=1006;return v|0}if(q){$e(b,d,e)|0;c[j>>2]=2;q=c[o>>2]|0;m=((c[n>>2]|0)-q>>2)-1|0;r=0;while(1){if(!(r>>>0<m>>>0)){l=0;k=61;break}i=r+1|0;if((c[q+(r<<2)>>2]|0)==(e|0)){break}else{r=i}}if((k|0)==61){return l|0}i=c[q+(i<<2)>>2]|0;if((i|0)==0){v=0;return v|0}k=c[(c[f>>2]|0)+16>>2]|0;i=i+4|0;if((k|0)>=(c[(c[i>>2]|0)+16>>2]|0)){v=0;return v|0}while(1){l=c[h>>2]|0;if((k|0)>=(c[l+10344>>2]|0)){l=0;k=61;break}Ek((c[l+10524>>2]|0)+(k*76|0)|0,1);k=k+1|0;if((k|0)>=(c[(c[i>>2]|0)+16>>2]|0)){l=0;k=61;break}}if((k|0)==61){return l|0}}if(!p){ec(11704,14344,971,17632);return 0}b=af(b,d,e)|0;c[j>>2]=2;d=c[o>>2]|0;i=((c[n>>2]|0)-d>>2)-1|0;j=0;while(1){if(!(j>>>0<i>>>0)){l=b;k=61;break}g=j+1|0;if((c[d+(j<<2)>>2]|0)==(e|0)){break}else{j=g}}if((k|0)==61){return l|0}e=c[d+(g<<2)>>2]|0;if((e|0)==0){v=b;return v|0}g=c[(c[f>>2]|0)+16>>2]|0;f=e+4|0;if((g|0)>=(c[(c[f>>2]|0)+16>>2]|0)){v=b;return v|0}while(1){e=c[h>>2]|0;if((g|0)>=(c[e+10344>>2]|0)){l=b;k=61;break}Ek((c[e+10524>>2]|0)+(g*76|0)|0,1);g=g+1|0;if((g|0)>=(c[(c[f>>2]|0)+16>>2]|0)){l=b;k=61;break}}if((k|0)==61){return l|0}return 0}function Ze(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+8|0;f=e|0;d=c[d>>2]|0;if((d|0)==0){i=e;return 0}do{if((a[d+100|0]|0)!=0){if((a[d+10516|0]|0)!=0){if((a[b+514|0]|0)!=0){break}}c[f>>2]=d;g=b+376168|0;h=c[g>>2]|0;if((h|0)==(c[b+376172>>2]|0)){yf(b+376164|0,f);break}if((h|0)==0){f=0}else{c[h>>2]=d;f=c[g>>2]|0}c[g>>2]=f+4}}while(0);f=b+376144|0;if(((c[b+376168>>2]|0)-(c[b+376164>>2]|0)>>2|0)>(c[d+596+(((c[d+116>>2]|0)-1|0)*12|0)+4>>2]|0)){zh(f)}Eh(f);i=e;return 0}function _e(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+18624|0;g=f|0;h=e+4|0;l=c[h>>2]|0;j=l+1348|0;k=l+1344|0;o=c[k>>2]|0;if((c[j>>2]|0)!=(o|0)){m=b+376144|0;l=b+376152|0;n=0;do{o=yh(m,c[o+(n<<2)>>2]|0)|0;if((o|0)>-1){c[(c[(c[l>>2]|0)+(o<<2)>>2]|0)+96>>2]=0}n=n+1|0;o=c[k>>2]|0;}while(n>>>0<(c[j>>2]|0)-o>>2>>>0);l=c[h>>2]|0}k=d|0;o=c[k>>2]|0;if(!((c[l+16>>2]|0)>>>0<(c[o+10276>>2]|0)-(c[o+10272>>2]|0)>>2>>>0)){o=6;i=f;return o|0}j=g+18580|0;Cd(j);n=g+18592|0;o=g+48|0;dv(g+18508|0,0,20)|0;dv(n|0,0,16)|0;c[g+2112>>2]=o;dv(o|0,0,2048)|0;o=c[h>>2]|0;c[g+18600>>2]=o;k=c[k>>2]|0;c[g+18596>>2]=k;c[n>>2]=b;c[g+18604>>2]=d;c[g+18608>>2]=e;c[g+4>>2]=c[(c[k+10272>>2]|0)+(c[o+16>>2]<<2)>>2];c[g+18612>>2]=0;Qe(0,g);k=c[e+12>>2]|0;if((k|0)<1){e=17}else{sd(g+18556|0,c[e+8>>2]|0,k);do{if((a[b+93817|0]|0)!=0){if((a[(c[h>>2]|0)+4|0]|0)==0){break}h=d+10676|0;b=(c[(c[b+376220>>2]|0)+5828>>2]|0)-1|0;d=d+10680|0;k=c[d>>2]|0;m=c[h>>2]|0;l=k-m>>3;if(l>>>0<b>>>0){uf(h,b-l|0);break}if(!(l>>>0>b>>>0)){break}b=m+(b<<3)|0;if((k|0)==(b|0)){break}do{o=k-8|0;c[d>>2]=o;Ed(o);k=c[d>>2]|0;}while((k|0)!=(b|0))}}while(0);c[e+120>>2]=1;o=dk(g)|0;Ek(e+44|0,1);e=o}Ed(j);o=e;i=f;return o|0}function $e(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;f=i;i=i+8|0;m=f|0;l=c[d>>2]|0;h=c[e+4>>2]|0;g=c[h+768>>2]|0;k=g+1|0;j=c[l+5820>>2]|0;if((c[l+10536>>2]|0)!=(-(c[l+10532>>2]|0)|0)){ec(8488,14344,989,17688);return 0}do{if((a[h+4|0]|0)!=0){s=d+10676|0;r=(c[l+5828>>2]|0)-1|0;n=d+10680|0;o=c[n>>2]|0;p=c[s>>2]|0;q=o-p>>3;if(q>>>0<r>>>0){uf(s,r-q|0);break}if(!(q>>>0>r>>>0)){break}p=p+(r<<3)|0;if((o|0)==(p|0)){break}do{D=o-8|0;c[n>>2]=D;Ed(D);o=c[n>>2]|0;}while((o|0)!=(p|0))}}while(0);Ie(e,k);x=c[h+16>>2]|0;v=(x|0)/(j|0)|0;a:do{if((g|0)>-1){n=e+136|0;q=e+132|0;p=l+10332|0;o=l+10272|0;r=e+12|0;t=e+8|0;s=e+120|0;b=b+375396|0;u=h+776|0;if((g|0)>0){w=0}else{w=0;while(1){if((w|0)>0){x=v+1|0;v=x;x=ga(x,j)|0}if((c[n>>2]|0)<=(w|0)){break}z=c[q>>2]|0;C=z+(w*18624|0)|0;c[z+(w*18624|0)+18600>>2]=h;c[z+(w*18624|0)+18592>>2]=c[p>>2];c[z+(w*18624|0)+18596>>2]=l;y=z+(w*18624|0)+18604|0;c[y>>2]=d;c[z+(w*18624|0)+18608>>2]=e;c[z+(w*18624|0)+4>>2]=c[(c[o>>2]|0)+(x<<2)>>2];Qe(0,C);B=(w|0)==0;if(B){A=0}else{A=c[(c[u>>2]|0)+(w-1<<2)>>2]|0}if((w|0)==(g|0)){D=r}else{D=(c[u>>2]|0)+(w<<2)|0}D=c[D>>2]|0;if((A|0)<0){break a}if(!((D|0)<=(c[r>>2]|0)&(D|0)>(A|0))){break a}sd(z+(w*18624|0)+18556|0,(c[t>>2]|0)+A|0,D-A|0);Vh(l,1);c[s>>2]=(c[s>>2]|0)+1;A=Nu(20)|0;c[A+4>>2]=0;c[A>>2]=22248;a[A+8|0]=B&1;c[A+16>>2]=C;c[A+12>>2]=v;c[z+(w*18624|0)+18612>>2]=A;Kk(b,A);B=c[y>>2]|0;c[m>>2]=A;y=B+10668|0;z=c[y>>2]|0;if(z>>>0<(c[B+10672>>2]|0)>>>0){if((z|0)==0){z=0}else{c[z>>2]=A;z=c[y>>2]|0}c[y>>2]=z+4}else{He(B+10664|0,m)}w=w+1|0;if((w|0)>=(k|0)){break a}}ec(15880,15472,170,17840);return 0}while(1){if((w|0)>0){x=v+1|0;v=x;x=ga(x,j)|0}else{if(((x|0)%(j|0)|0|0)!=0){break a}}if((c[n>>2]|0)<=(w|0)){break}z=c[q>>2]|0;B=z+(w*18624|0)|0;c[z+(w*18624|0)+18600>>2]=h;c[z+(w*18624|0)+18592>>2]=c[p>>2];c[z+(w*18624|0)+18596>>2]=l;y=z+(w*18624|0)+18604|0;c[y>>2]=d;c[z+(w*18624|0)+18608>>2]=e;c[z+(w*18624|0)+4>>2]=c[(c[o>>2]|0)+(x<<2)>>2];Qe(0,B);A=(w|0)==0;if(A){C=0}else{C=c[(c[u>>2]|0)+(w-1<<2)>>2]|0}if((w|0)==(g|0)){D=r}else{D=(c[u>>2]|0)+(w<<2)|0}D=c[D>>2]|0;if((C|0)<0){break a}if(!((D|0)<=(c[r>>2]|0)&(D|0)>(C|0))){break a}sd(z+(w*18624|0)+18556|0,(c[t>>2]|0)+C|0,D-C|0);Vh(l,1);c[s>>2]=(c[s>>2]|0)+1;D=Nu(20)|0;c[D+4>>2]=0;c[D>>2]=22248;a[D+8|0]=A&1;c[D+16>>2]=B;c[D+12>>2]=v;A=D;c[z+(w*18624|0)+18612>>2]=A;Kk(b,A);B=c[y>>2]|0;c[m>>2]=A;y=B+10668|0;z=c[y>>2]|0;if(z>>>0<(c[B+10672>>2]|0)>>>0){if((z|0)==0){z=0}else{c[z>>2]=A;z=c[y>>2]|0}c[y>>2]=z+4}else{He(B+10664|0,m)}w=w+1|0;if((w|0)>=(k|0)){break a}}ec(15880,15472,170,17840);return 0}}while(0);_h(l);g=d+10668|0;k=c[g>>2]|0;d=d+10664|0;j=c[d>>2]|0;if((k|0)==(j|0)){i=f;return 0}else{h=0}do{e=c[j+(h<<2)>>2]|0;if((e|0)!=0){Dc[c[(c[e>>2]|0)+4>>2]&511](e);k=c[g>>2]|0;j=c[d>>2]|0}h=h+1|0;e=j;}while(h>>>0<k-e>>2>>>0);if((k|0)==(j|0)){i=f;return 0}c[g>>2]=k+(~((k-4+(-e|0)|0)>>>2)<<2);i=f;return 0}function af(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;f=i;i=i+8|0;m=f|0;g=c[d>>2]|0;j=c[e+4>>2]|0;h=c[j+768>>2]|0;k=h+1|0;o=c[g+5820>>2]|0;if((c[g+10536>>2]|0)!=(-(c[g+10532>>2]|0)|0)){ec(8488,14344,1103,17664);return 0}Ie(e,k);y=c[j+16>>2]|0;a:do{if((h|0)>-1){l=g+5968|0;n=g+5972|0;p=e+136|0;s=e+132|0;r=g+10332|0;q=g+10272|0;v=e+12|0;t=e+8|0;u=e+120|0;b=b+375396|0;w=j+776|0;x=0;z=c[(c[g+10308>>2]|0)+(y<<2)>>2]|0;while(1){if((x|0)>0){z=z+1|0;y=c[l>>2]|0;if((z|0)>=(ga(c[n>>2]|0,y)|0)){h=1007;break a}y=(ga(c[g+10228+(((z|0)/(y|0)|0)<<2)>>2]|0,o)|0)+(c[g+10184+(((z|0)%(y|0)|0)<<2)>>2]|0)|0}if((c[p>>2]|0)<=(x|0)){break}B=c[s>>2]|0;E=B+(x*18624|0)|0;c[B+(x*18624|0)+18600>>2]=j;c[B+(x*18624|0)+18592>>2]=c[r>>2];c[B+(x*18624|0)+18596>>2]=g;A=B+(x*18624|0)+18604|0;c[A>>2]=d;c[B+(x*18624|0)+18608>>2]=e;c[B+(x*18624|0)+4>>2]=c[(c[q>>2]|0)+(y<<2)>>2];Qe(0,E);C=(x|0)==0;if(C){D=0}else{D=c[(c[w>>2]|0)+(x-1<<2)>>2]|0}if((x|0)==(h|0)){F=v}else{F=(c[w>>2]|0)+(x<<2)|0}F=c[F>>2]|0;if((D|0)<0){h=17;break a}if(!((F|0)<=(c[v>>2]|0)&(F|0)>(D|0))){h=17;break a}sd(B+(x*18624|0)+18556|0,(c[t>>2]|0)+D|0,F-D|0);Vh(g,1);c[u>>2]=(c[u>>2]|0)+1;D=Nu(24)|0;c[D+4>>2]=0;c[D>>2]=22216;a[D+8|0]=C&1;c[D+20>>2]=E;c[D+12>>2]=(y|0)%(o|0)|0;c[D+16>>2]=(y|0)/(o|0)|0;C=D;c[B+(x*18624|0)+18612>>2]=C;Kk(b,C);B=c[A>>2]|0;c[m>>2]=C;A=B+10668|0;D=c[A>>2]|0;if(D>>>0<(c[B+10672>>2]|0)>>>0){if((D|0)==0){B=0}else{c[D>>2]=C;B=c[A>>2]|0}c[A>>2]=B+4}else{He(B+10664|0,m)}x=x+1|0;if((x|0)>=(k|0)){h=0;break a}}ec(15880,15472,170,17840);return 0}else{h=0}}while(0);_h(g);g=d+10668|0;l=c[g>>2]|0;d=d+10664|0;k=c[d>>2]|0;if((l|0)==(k|0)){i=f;return h|0}else{j=0}do{e=c[k+(j<<2)>>2]|0;if((e|0)!=0){Dc[c[(c[e>>2]|0)+4>>2]&511](e);l=c[g>>2]|0;k=c[d>>2]|0}j=j+1|0;e=k;}while(j>>>0<l-e>>2>>>0);if((l|0)==(k|0)){i=f;return h|0}c[g>>2]=l+(~((l-4+(-e|0)|0)>>>2)<<2);i=f;return h|0}function bf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+5200|0;f=g|0;h=g+5168|0;j=g+5192|0;md(h,c[e+20>>2]|0,c[e+24>>2]|0);l=j|0;a[l]=0;m=j+1|0;a[m]=0;k=j+2|0;a[k]=0;Ji(j,h);l=a[l]|0;a[b+377208|0]=l;a[b+377209|0]=(l-19&255)>>>0<2>>>0|0;a[b+377210|0]=(l-16&255)>>>0<8>>>0|0;if((a[m]|0)!=0){Vi(b+548|0,e);m=0;i=g;return m|0}if((d[k]|0)>(c[b+375908>>2]|0)){Vi(b+548|0,e);m=0;i=g;return m|0}if((l&255)>>>0<32>>>0){m=Ve(b,h,e,j)|0;i=g;return m|0}switch(l&255|0){case 34:{m=Se(b,h)|0;Vi(b+548|0,e);i=g;return m|0};case 36:{a[b+376207|0]=1;Vi(b+548|0,e);m=0;i=g;return m|0};case 33:{j=f|0;ik(f);h=kk(f,b+4|0,h)|0;if((h|0)==0){h=c[b+516>>2]|0;if((h|0)>-1){pk(f,h)}h=c[f+472>>2]|0;m=b+11096+(h*5168|0)|0;cv(m|0,j|0,4717)|0;if((m|0)!=(f|0)){zf(b+11096+(h*5168|0)+4720|0,c[f+4720>>2]|0,c[f+4724>>2]|0)}cv(b+11096+(h*5168|0)+4732|0,f+4732|0,436)|0;h=0}jk(f);Vi(b+548|0,e);m=h;i=g;return m|0};case 39:case 40:{m=Te(b,h,l<<24>>24==40)|0;Vi(b+548|0,e);i=g;return m|0};case 32:{m=Re(b,h)|0;Vi(b+548|0,e);i=g;return m|0};default:{Vi(b+548|0,e);m=0;i=g;return m|0}}return 0}function cf(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+8|0;g=f|0;k=b+548|0;h=b+580|0;j=(c[h>>2]|0)==0;l=a[k|0]|0;do{if(j){if(l<<24>>24==0){if((a[b+549|0]|0)==0){m=8;break}}if((c[b+377212>>2]|0)!=(c[b+377216>>2]|0)){m=7;break}Ah(b+376144|0)|0;if((e|0)==0){m=0;i=f;return m|0}c[e>>2]=c[b+376196>>2];m=0;i=f;return m|0}else{m=7}}while(0);if((m|0)==7){if(l<<24>>24==0){m=8}}do{if((m|0)==8){if((a[b+549|0]|0)!=0|j^1){break}if((e|0)==0){m=13;i=f;return m|0}c[e>>2]=1;m=13;i=f;return m|0}}while(0);if(!(vh(b+376144|0,0)|0)){if((e|0)==0){m=9;i=f;return m|0}c[e>>2]=1;m=9;i=f;return m|0}a[g]=0;do{if((c[h>>2]|0)==0){do{if((a[b+549|0]|0)!=0){if((c[b+377212>>2]|0)!=(c[b+377216>>2]|0)){break}if((e|0)==0){m=13;i=f;return m|0}c[e>>2]=1;m=13;i=f;return m|0}}while(0);b=Xe(b,g)|0}else{h=Ui(k)|0;if((h|0)==0){ec(6136,14344,1314,17512);return 0}else{b=bf(b,h)|0;a[g]=1;break}}}while(0);if((e|0)==0){m=b;i=f;return m|0}if((b|0)==0){g=d[g]|0}else{g=0}c[e>>2]=g;m=b;i=f;return m|0}function df(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=d+377208|0;do{if(Ni(a[f]|0)|0){if((a[d+376205|0]|0)==0){g=4;break}c[d+376208>>2]=0;a[b+377224|0]=1;b=0;e=e+28|0}else{g=4}}while(0);a:do{if((g|0)==4){b=c[(c[d+375388>>2]|0)+5032>>2]|0;g=e+28|0;e=c[g>>2]|0;h=c[d+376212>>2]|0;do{if((e|0)<(h|0)){if((h-e|0)<((b|0)/2|0|0)){break}b=(c[d+376216>>2]|0)+b|0;c[d+376208>>2]=b;e=g;break a}}while(0);do{if((e|0)>(h|0)){if((e-h|0)<=((b|0)/2|0|0)){break}b=(c[d+376216>>2]|0)-b|0;c[d+376208>>2]=b;e=g;break a}}while(0);b=c[d+376216>>2]|0;c[d+376208>>2]=b;e=g}}while(0);h=c[d+376220>>2]|0;c[h+92>>2]=(c[e>>2]|0)+b;c[h+88>>2]=c[e>>2];if((a[h+10520|0]|0)!=0){return}if(Pi(a[f]|0)|0){return}if(Mi(a[f]|0)|0){return}if(Oi(a[f]|0)|0){return}c[d+376212>>2]=c[e>>2];c[d+376216>>2]=c[d+376208>>2];return}function ef(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;i=e+376144|0;if(!(vh(i,1)|0)){ec(4312,14344,1433,17520);return 0}b=Ch(i,c[e+375388>>2]|0,b,0,0,0,0)|0;if(!((b|0)>-1)){ec(3080,14344,1436,17520);return 0}i=c[e+376152>>2]|0;if((c[e+376156>>2]|0)-i>>2>>>0>b>>>0){e=c[i+(b<<2)>>2]|0}else{e=0}i=1<<(c[f+5004>>2]|0)-1;Sh(e,1<<(c[f+4996>>2]|0)-1,i,i);i=e+10364|0;if((c[i>>2]|0)<=0){j=e+92|0;c[j>>2]=g;j=f+5032|0;j=c[j>>2]|0;j=j-1|0;j=j&g;k=e+88|0;c[k>>2]=j;k=e+100|0;a[k]=0;j=h?2:1;k=e+96|0;c[k>>2]=j;k=e+10516|0;a[k]=1;return b|0}j=e+10360|0;k=0;do{l=(c[j>>2]|0)+(k*3|0)|0;C=(d[l]|d[l+1|0]<<8)<<16>>16&-769;a[l]=C;C=C>>8;a[l+1|0]=C;k=k+1|0;}while((k|0)<(c[i>>2]|0));k=e+92|0;c[k>>2]=g;k=f+5032|0;k=c[k>>2]|0;k=k-1|0;k=k&g;l=e+88|0;c[l>>2]=k;l=e+100|0;a[l]=0;k=h?2:1;l=e+96|0;c[l>>2]=k;l=e+10516|0;a[l]=1;return b|0} - - - -function hj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=a[g+2|0]|0;if((a[g+13|0]|0)!=0){j=(qd(e)|0)+2&255;a[b|0]=j}i=(nd(e,1)|0)!=0;a[b+1|0]=i&1;j=f+11096+(h*5168|0)+5012|0;if(!((c[j>>2]|0)==3|i^1)){Ue(f+4|0,1006,0)}k=(nd(e,1)|0)!=0;g=b+2|0;i=k&1;a[g]=i;if(!((c[j>>2]|0)!=0|k^1)){Ue(f+4|0,1006,0);i=a[g]|0}a:do{if(!(i<<24>>24==0)){g=qd(e)|0;do{if(!((g|0)==-99999)){if((g|0)>(c[f+11096+(h*5168|0)+616>>2]|0)){break}a[b+3|0]=g;g=qd(e)|0;if((g|0)==-99999|(g|0)>5){Ue(f+4|0,1006,0);k=0;return k|0}k=g+1|0;g=b+4|0;a[g]=k;if((k&255|0)==0){break a}else{i=0}while(1){j=rd(e)|0;if((j+12|0)>>>0>24>>>0){b=15;break}a[b+5+i|0]=j;j=rd(e)|0;if((j+12|0)>>>0>24>>>0){b=17;break}a[b+11+i|0]=j;i=i+1|0;if((i|0)>=(d[g]|0)){break a}}if((b|0)==15){Ue(f+4|0,1006,0);k=0;return k|0}else if((b|0)==17){Ue(f+4|0,1006,0);k=0;return k|0}}}while(0);Ue(f+4|0,1006,0);k=0;return k|0}}while(0);i=qd(e)|0;do{if(!((i|0)==-99999)){g=(c[f+11096+(h*5168|0)+4996>>2]|0)-10|0;if((i|0)>(((g|0)<0?0:g)|0)){break}a[b+17|0]=i;e=qd(e)|0;do{if(!((e|0)==-99999)){h=(c[f+11096+(h*5168|0)+5004>>2]|0)-10|0;if((e|0)>(((h|0)<0?0:h)|0)){break}a[b+18|0]=e;k=1;return k|0}}while(0);Ue(f+4|0,1006,0);k=0;return k|0}}while(0);Ue(f+4|0,1006,0);k=0;return k|0}function ij(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;if((e|0)==1){e=t}else if((e|0)==2){e=q}else{i=f;return}e=c[e>>2]|0;Zk(e,6144,(h=i,i=i+1|0,i=i+7&-8,c[h>>2]=0,h)|0);i=h;Zk(e,15168,(h=i,i=i+8|0,c[h>>2]=d[b|0]|0,h)|0);i=h;Zk(e,12656,(h=i,i=i+8|0,c[h>>2]=d[b+1|0]|0,h)|0);i=h;h=b+2|0;Zk(e,9712,(g=i,i=i+8|0,c[g>>2]=d[h]|0,g)|0);i=g;do{if((a[h]|0)!=0){Zk(e,6704,(g=i,i=i+8|0,c[g>>2]=d[b+3|0]|0,g)|0);i=g;g=b+4|0;Zk(e,4920,(h=i,i=i+8|0,c[h>>2]=d[g]|0,h)|0);i=h;if((a[g]|0)==0){break}else{h=0}do{j=a[b+5+h|0]|0;Zk(e,3496,(k=i,i=i+16|0,c[k>>2]=h,c[k+8>>2]=j,k)|0);i=k;k=a[b+11+h|0]|0;Zk(e,2176,(j=i,i=i+16|0,c[j>>2]=h,c[j+8>>2]=k,j)|0);i=j;h=h+1|0;}while((h|0)<(d[g]|0))}}while(0);Zk(e,1128,(k=i,i=i+8|0,c[k>>2]=d[b+17|0]|0,k)|0);i=k;Zk(e,448,(k=i,i=i+8|0,c[k>>2]=d[b+18|0]|0,k)|0);i=k;i=f;return}function jj(b){b=b|0;var c=0;a[b+4138|0]=2;a[b+4155|0]=0;a[b+4156|0]=0;c=b+4139|0;C=0;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;dv(b+4340|0,0,60)|0;lj(b,0);return}function kj(a){a=a|0;var b=0,d=0,e=0;e=c[a+4388>>2]|0;if((e|0)!=0){b=a+4392|0;d=c[b>>2]|0;if((d|0)!=(e|0)){c[b>>2]=d+(~((d-4+(-e|0)|0)>>>2)<<2)}Pu(e)}b=c[a+4376>>2]|0;if((b|0)!=0){d=a+4380|0;e=c[d>>2]|0;if((e|0)!=(b|0)){c[d>>2]=e+(~((e-4+(-b|0)|0)>>>2)<<2)}Pu(b)}d=c[a+4364>>2]|0;if((d|0)!=0){b=a+4368|0;e=c[b>>2]|0;if((e|0)!=(d|0)){c[b>>2]=e+(~((e-4+(-d|0)|0)>>>2)<<2)}Pu(d)}b=c[a+4352>>2]|0;if((b|0)!=0){d=a+4356|0;e=c[d>>2]|0;if((e|0)!=(b|0)){c[d>>2]=e+(~((e-4+(-b|0)|0)>>>2)<<2)}Pu(b)}b=c[a+4340>>2]|0;if((b|0)==0){return}a=a+4344|0;d=c[a>>2]|0;if((d|0)!=(b|0)){c[a>>2]=d+(~((d-4+(-b|0)|0)>>>2)<<2)}Pu(b);return}function lj(b,d){b=b|0;d=d|0;var e=0,f=0;dv(b|0,0,6)|0;a[b+6|0]=1;a[b+7|0]=1;c[b+8>>2]=27;a[b+12|0]=0;a[b+13|0]=0;a[b+14|0]=0;dv(b+16|0,0,19)|0;c[b+36>>2]=1;c[b+40>>2]=1;a[b+44|0]=1;a[b+45|0]=1;a[b+46|0]=1;dv(b+4172|0,0,168)|0;d=c[b+4340>>2]|0;f=b+4344|0;e=c[f>>2]|0;if((e|0)!=(d|0)){c[f>>2]=e+(~((e-4+(-d|0)|0)>>>2)<<2)}e=c[b+4352>>2]|0;d=b+4356|0;f=c[d>>2]|0;if((f|0)!=(e|0)){c[d>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2)}d=c[b+4364>>2]|0;f=b+4368|0;e=c[f>>2]|0;if((e|0)!=(d|0)){c[f>>2]=e+(~((e-4+(-d|0)|0)>>>2)<<2)}e=c[b+4376>>2]|0;d=b+4380|0;f=c[d>>2]|0;if((f|0)!=(e|0)){c[d>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2)}e=c[b+4388>>2]|0;d=b+4392|0;f=c[d>>2]|0;if((f|0)==(e|0)){f=b+4160|0;c[f>>2]=0;f=b+47|0;a[f]=0;f=b+48|0;a[f]=0;f=b+49|0;a[f]=0;f=b+52|0;c[f>>2]=0;f=b+56|0;c[f>>2]=0;f=b+60|0;a[f]=0;f=b+4125|0;a[f]=0;f=b+4128|0;c[f>>2]=2;f=b+4132|0;dv(f|0,0,6)|0;return}c[d>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2);f=b+4160|0;c[f>>2]=0;f=b+47|0;a[f]=0;f=b+48|0;a[f]=0;f=b+49|0;a[f]=0;f=b+52|0;c[f>>2]=0;f=b+56|0;c[f>>2]=0;f=b+60|0;a[f]=0;f=b+4125|0;a[f]=0;f=b+4128|0;c[f>>2]=2;f=b+4132|0;dv(f|0,0,6)|0;return}function mj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;lj(b,0);n=qd(d)|0;a[b+1|0]=n;if((n|0)>63|(n|0)==-99999){Ue(e+4|0,1009,0);n=0;return n|0}n=qd(d)|0;f=b+2|0;a[f]=n;if((n|0)>63|(n|0)==-99999){Ue(e+4|0,1010,0);n=0;return n|0}n=(nd(d,1)|0)&255;a[b+3|0]=n;n=(nd(d,1)|0)&255;a[b+31|0]=n;n=(nd(d,3)|0)&255;a[b+4132|0]=n;n=(nd(d,1)|0)&255;a[b+4|0]=n;n=(nd(d,1)|0)&255;a[b+5|0]=n;n=qd(d)|0;g=n&255;h=b+6|0;a[h]=g;if((n|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}a[h]=g+1;n=qd(d)|0;g=n&255;h=b+7|0;a[h]=g;if((n|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}a[h]=g+1;f=a[f]|0;g=e+11096+(f*5168|0)|0;if((a[g|0]|0)==0){Ue(e+4|0,1010,0);n=0;return n|0}i=rd(d)|0;h=b+8|0;c[h>>2]=i;if((i|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}c[h>>2]=i+26;n=(nd(d,1)|0)&255;a[b+12|0]=n;n=(nd(d,1)|0)&255;a[b+13|0]=n;n=(nd(d,1)|0)&255;a[b+14|0]=n;do{if(n<<24>>24==0){c[b+16>>2]=0}else{n=qd(d)|0;c[b+16>>2]=n;if(!((n|0)==-99999)){break}Ue(e+4|0,1006,0);n=0;return n|0}}while(0);n=rd(d)|0;c[b+20>>2]=n;if((n|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}n=rd(d)|0;c[b+24>>2]=n;if((n|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}m=(nd(d,1)|0)&255;a[b+28|0]=m;m=(nd(d,1)|0)&255;a[b+29|0]=m;m=(nd(d,1)|0)&255;a[b+30|0]=m;m=(nd(d,1)|0)&255;a[b+32|0]=m;m=(nd(d,1)|0)&255;n=b+34|0;a[n]=m;m=(nd(d,1)|0)&255;a[b+33|0]=m;if((a[n]|0)==0){c[b+36>>2]=1;c[b+40>>2]=1;a[b+44|0]=1;a[b+45|0]=0}else{h=qd(d)|0;j=b+36|0;c[j>>2]=h;if((h|0)==-99999|(h|0)>9){Ue(e+4|0,1006,0);n=0;return n|0}c[j>>2]=h+1;i=qd(d)|0;h=b+40|0;c[h>>2]=i;if((i|0)==-99999|(i|0)>9){Ue(e+4|0,1006,0);n=0;return n|0}c[h>>2]=i+1;n=(nd(d,1)|0)&255;a[b+44|0]=n;do{if(n<<24>>24==0){k=c[e+11096+(f*5168|0)+5056>>2]|0;i=c[e+11096+(f*5168|0)+5064>>2]|0;m=(c[j>>2]|0)-1|0;a:do{if((m|0)>0){l=0;while(1){n=qd(d)|0;m=b+4172+(l<<2)|0;c[m>>2]=n;if((n|0)==-99999){break}n=n+1|0;c[m>>2]=n;k=k-n|0;l=l+1|0;m=(c[j>>2]|0)-1|0;if((l|0)>=(m|0)){break a}}Ue(e+4|0,1006,0);n=0;return n|0}}while(0);if((k|0)<1){n=0;return n|0}c[b+4172+(m<<2)>>2]=k;k=(c[h>>2]|0)-1|0;b:do{if((k|0)>0){j=0;while(1){l=qd(d)|0;k=b+4212+(j<<2)|0;c[k>>2]=l;if((l|0)==-99999){break}n=l+1|0;c[k>>2]=n;i=i-n|0;j=j+1|0;k=(c[h>>2]|0)-1|0;if((j|0)>=(k|0)){break b}}Ue(e+4|0,1006,0);n=0;return n|0}}while(0);if((i|0)<1){n=0;return n|0}else{c[b+4212+(k<<2)>>2]=i;break}}}while(0);n=(nd(d,1)|0)&255;a[b+45|0]=n}i=b+52|0;c[i>>2]=0;h=b+56|0;c[h>>2]=0;n=(nd(d,1)|0)&255;a[b+46|0]=n;n=(nd(d,1)|0)&255;a[b+47|0]=n;do{if(n<<24>>24==0){a[b+48|0]=0;a[b+49|0]=0}else{n=(nd(d,1)|0)&255;a[b+48|0]=n;n=(nd(d,1)|0)&255;a[b+49|0]=n;if(!(n<<24>>24==0)){break}j=rd(d)|0;c[i>>2]=j;if((j|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}c[i>>2]=j<<1;i=rd(d)|0;c[h>>2]=i;if(!((i|0)==-99999)){c[h>>2]=i<<1;break}Ue(e+4|0,1006,0);n=0;return n|0}}while(0);h=(nd(d,1)|0)&255;a[b+60|0]=h;h=h<<24>>24==0;if(!((a[e+11096+(f*5168|0)+636|0]|0)!=0|h)){Ue(e+4|0,1006,0);n=0;return n|0}do{if(h){cv(b+61|0,e+11096+(f*5168|0)+638|0,4064)|0}else{h=lk(d,g,b+61|0,1)|0;if((h|0)==0){break}Ue(e+4|0,h,0);n=0;return n|0}}while(0);h=(nd(d,1)|0)&255;a[b+4125|0]=h;h=qd(d)|0;i=b+4128|0;c[i>>2]=h;if((h|0)==-99999){Ue(e+4|0,1006,0);n=0;return n|0}c[i>>2]=h+2;if((h|0)>((c[e+11096+(f*5168|0)+612>>2]|0)-2+(c[e+11096+(f*5168|0)+616>>2]|0)|0)){n=0;return n|0}n=(nd(d,1)|0)&255;a[b+4133|0]=n;n=(nd(d,1)|0)&255;a[b+4134|0]=n;do{if(!(n<<24>>24==0)){m=(nd(d,1)|0)&255;n=b+4135|0;a[n]=m;m=(nd(d,1)|0)&255;a[b+4136|0]=m;m=(nd(d,6)|0)&255;a[b+4137|0]=m;if((a[n]|0)==0){break}if(hj(b+4138|0,d,e,b)|0){break}else{e=0}return e|0}}while(0);nj(b,g);a[b|0]=1;n=1;return n|0}function nj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=i;g=e+5040|0;c[b+4160>>2]=(c[g>>2]|0)-(c[b+16>>2]|0);c[b+4164>>2]=(c[g>>2]|0)-(d[b+4141|0]|0);c[b+4168>>2]=d[b+4138|0]|0;j=b+36|0;do{if((a[b+44|0]|0)!=0){k=c[j>>2]|0;h=i;i=i+((k<<2)+4)|0;i=i+7&-8;do{if((k|0)>=0){l=c[e+5056>>2]|0;m=0;while(1){B=(ga(l,m)|0)/(k|0)|0;c[h+(m<<2)>>2]=B;if((m|0)<(k|0)){m=m+1|0}else{break}}if((k|0)<=0){break}n=0;m=c[h>>2]|0;while(1){k=n+1|0;l=c[h+(k<<2)>>2]|0;c[b+4172+(n<<2)>>2]=l-m;if((k|0)<(c[j>>2]|0)){n=k;m=l}else{break}}}}while(0);h=b+40|0;n=c[h>>2]|0;k=i;i=i+((n<<2)+4)|0;i=i+7&-8;if((n|0)<0){break}m=c[e+5064>>2]|0;l=0;while(1){B=(ga(m,l)|0)/(n|0)|0;c[k+(l<<2)>>2]=B;if((l|0)<(n|0)){l=l+1|0}else{break}}if((n|0)<=0){break}o=0;l=c[k>>2]|0;while(1){m=o+1|0;n=c[k+(m<<2)>>2]|0;c[b+4212+(o<<2)>>2]=n-l;if((m|0)<(c[h>>2]|0)){o=m;l=n}else{break}}}}while(0);c[b+4252>>2]=0;if((c[j>>2]|0)>0){k=0;h=0;do{h=(c[b+4172+(k<<2)>>2]|0)+h|0;k=k+1|0;c[b+4252+(k<<2)>>2]=h;}while((k|0)<(c[j>>2]|0))}c[b+4296>>2]=0;k=b+40|0;if((c[k>>2]|0)>0){l=0;h=0;do{h=(c[b+4212+(l<<2)>>2]|0)+h|0;l=l+1|0;c[b+4296+(l<<2)>>2]=h;}while((l|0)<(c[k>>2]|0))}p=b+4340|0;o=e+5072|0;l=c[o>>2]|0;m=b+4344|0;n=c[m>>2]|0;h=p|0;r=c[h>>2]|0;q=n-r>>2;do{if(q>>>0<l>>>0){qj(p,l-q|0);l=c[o>>2]|0}else{if(!(q>>>0>l>>>0)){break}p=r+(l<<2)|0;if((n|0)==(p|0)){break}c[m>>2]=n+(~((n-4+(-p|0)|0)>>>2)<<2)}}while(0);r=b+4352|0;m=b+4356|0;n=c[m>>2]|0;p=r|0;q=c[p>>2]|0;s=n-q>>2;do{if(s>>>0<l>>>0){qj(r,l-s|0);l=c[o>>2]|0}else{if(!(s>>>0>l>>>0)){break}q=q+(l<<2)|0;if((n|0)==(q|0)){break}c[m>>2]=n+(~((n-4+(-q|0)|0)>>>2)<<2)}}while(0);r=b+4364|0;n=b+4368|0;q=c[n>>2]|0;m=r|0;t=c[m>>2]|0;s=q-t>>2;do{if(s>>>0<l>>>0){qj(r,l-s|0);t=c[o>>2]|0}else{if(!(s>>>0>l>>>0)){t=l;break}r=t+(l<<2)|0;if((q|0)==(r|0)){t=l;break}c[n>>2]=q+(~((q-4+(-r|0)|0)>>>2)<<2);t=l}}while(0);u=b+4376|0;l=b+4380|0;q=c[l>>2]|0;n=u|0;s=c[n>>2]|0;r=q-s>>2;do{if(r>>>0<t>>>0){qj(u,t-r|0)}else{if(!(r>>>0>t>>>0)){break}r=s+(t<<2)|0;if((q|0)==(r|0)){break}c[l>>2]=q+(~((q-4+(-r|0)|0)>>>2)<<2)}}while(0);t=b+4388|0;u=c[e+5096>>2]|0;q=b+4392|0;r=c[q>>2]|0;l=t|0;v=c[l>>2]|0;s=r-v>>2;do{if(s>>>0<u>>>0){qj(t,u-s|0)}else{if(!(s>>>0>u>>>0)){break}s=v+(u<<2)|0;if((r|0)==(s|0)){break}c[q>>2]=r+(~((r-4+(-s|0)|0)>>>2)<<2)}}while(0);a:do{if((c[o>>2]|0)>0){r=e+5056|0;q=0;while(1){t=c[r>>2]|0;s=(q|0)%(t|0)|0;t=(q|0)/(t|0)|0;v=c[j>>2]|0;if((v|0)>0){u=-1;w=0;do{u=(s|0)<(c[b+4252+(w<<2)>>2]|0)?u:w;w=w+1|0;}while((w|0)<(v|0))}else{u=-1}w=c[k>>2]|0;if((w|0)>0){v=-1;x=0;do{v=(t|0)<(c[b+4296+(x<<2)>>2]|0)?v:x;x=x+1|0;}while((x|0)<(w|0))}else{v=-1}w=(c[h>>2]|0)+(q<<2)|0;c[w>>2]=0;if((u|0)>0){x=b+4212+(v<<2)|0;y=0;z=0;do{z=z+(ga(c[b+4172+(y<<2)>>2]|0,c[x>>2]|0)|0)|0;c[w>>2]=z;y=y+1|0;}while((y|0)<(u|0))}else{z=0}if((v|0)>0){x=0;do{z=z+(ga(c[b+4212+(x<<2)>>2]|0,c[r>>2]|0)|0)|0;c[w>>2]=z;x=x+1|0;}while((x|0)<(v|0))}if(!((v|u|0)>-1)){break}B=z+(ga(t-(c[b+4296+(v<<2)>>2]|0)|0,c[b+4172+(u<<2)>>2]|0)|0)|0;c[w>>2]=B;B=s-(c[b+4252+(u<<2)>>2]|0)+B|0;c[w>>2]=B;c[(c[p>>2]|0)+(B<<2)>>2]=q;q=q+1|0;if((q|0)>=(c[o>>2]|0)){break a}}ec(16944,16440,618,17488)}}while(0);q=c[k>>2]|0;if((q|0)>0){o=e+5056|0;p=0;s=0;u=c[j>>2]|0;do{if((u|0)>0){q=b+4296+(p<<2)|0;p=p+1|0;r=b+4296+(p<<2)|0;t=0;x=c[r>>2]|0;do{w=c[q>>2]|0;if((w|0)<(x|0)){u=b+4252+(t<<2)|0;t=t+1|0;v=b+4252+(t<<2)|0;y=c[v>>2]|0;do{z=c[u>>2]|0;if((z|0)<(y|0)){x=c[h>>2]|0;A=c[m>>2]|0;y=c[n>>2]|0;do{B=x+((ga(c[o>>2]|0,w)|0)+z<<2)|0;c[A+(c[B>>2]<<2)>>2]=s;B=y+((ga(c[o>>2]|0,w)|0)+z<<2)|0;c[B>>2]=s;z=z+1|0;B=c[v>>2]|0;}while((z|0)<(B|0));y=B;x=c[r>>2]|0}w=w+1|0;}while((w|0)<(x|0));u=c[j>>2]|0}else{t=t+1|0}s=s+1|0;}while((t|0)<(u|0));q=c[k>>2]|0}else{p=p+1|0}}while((p|0)<(q|0))}b=e+5092|0;n=c[b>>2]|0;if((n|0)<=0){i=f;return}k=e+5088|0;j=e+5100|0;e=e+5056|0;m=0;q=c[k>>2]|0;do{if((q|0)>0){p=c[h>>2]|0;n=c[l>>2]|0;o=0;do{B=c[j>>2]|0;A=c[g>>2]|0;z=p+((ga(c[e>>2]|0,m<<B>>A)|0)+(o<<B>>A)<<2)|0;q=n+((ga(q,m)|0)+o<<2)|0;c[q>>2]=c[z>>2]<<(A-B<<1);q=(c[g>>2]|0)-(c[j>>2]|0)|0;if((q|0)>0){r=0;s=0;do{t=1<<s;if((t&m|0)==0){u=0}else{u=t<<1<<s}r=((t&o|0)==0?0:t<<s)+r+u|0;s=s+1|0;}while((s|0)<(q|0))}else{r=0}q=n+((ga(c[k>>2]|0,m)|0)+o<<2)|0;c[q>>2]=(c[q>>2]|0)+r;o=o+1|0;q=c[k>>2]|0;}while((o|0)<(q|0));n=c[b>>2]|0}m=m+1|0;}while((m|0)<(n|0));i=f;return}function oj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;if((d|0)==2){f=q}else if((d|0)==1){f=t}else{i=e;return}f=c[f>>2]|0;Zk(f,16080,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j;Zk(f,15672,(j=i,i=i+8|0,c[j>>2]=a[b+1|0]|0,j)|0);i=j;Zk(f,15304,(j=i,i=i+8|0,c[j>>2]=a[b+2|0]|0,j)|0);i=j;Zk(f,14992,(j=i,i=i+8|0,c[j>>2]=a[b+3|0]|0,j)|0);i=j;Zk(f,14728,(j=i,i=i+8|0,c[j>>2]=a[b+4|0]|0,j)|0);i=j;Zk(f,14432,(j=i,i=i+8|0,c[j>>2]=a[b+5|0]|0,j)|0);i=j;Zk(f,14168,(j=i,i=i+8|0,c[j>>2]=a[b+6|0]|0,j)|0);i=j;Zk(f,13904,(j=i,i=i+8|0,c[j>>2]=a[b+7|0]|0,j)|0);i=j;Zk(f,13664,(j=i,i=i+8|0,c[j>>2]=c[b+8>>2],j)|0);i=j;Zk(f,13464,(j=i,i=i+8|0,c[j>>2]=a[b+12|0]|0,j)|0);i=j;Zk(f,13272,(j=i,i=i+8|0,c[j>>2]=a[b+13|0]|0,j)|0);i=j;j=b+14|0;Zk(f,13072,(h=i,i=i+8|0,c[h>>2]=a[j]|0,h)|0);i=h;if((a[j]|0)!=0){Zk(f,12776,(j=i,i=i+8|0,c[j>>2]=c[b+16>>2],j)|0);i=j}Zk(f,12464,(j=i,i=i+8|0,c[j>>2]=c[b+20>>2],j)|0);i=j;Zk(f,12256,(j=i,i=i+8|0,c[j>>2]=c[b+24>>2],j)|0);i=j;Zk(f,11904,(j=i,i=i+8|0,c[j>>2]=a[b+28|0]|0,j)|0);i=j;Zk(f,11560,(j=i,i=i+8|0,c[j>>2]=a[b+29|0]|0,j)|0);i=j;Zk(f,11280,(j=i,i=i+8|0,c[j>>2]=a[b+30|0]|0,j)|0);i=j;Zk(f,11032,(j=i,i=i+8|0,c[j>>2]=a[b+31|0]|0,j)|0);i=j;Zk(f,10768,(j=i,i=i+8|0,c[j>>2]=a[b+32|0]|0,j)|0);i=j;j=b+34|0;Zk(f,10520,(h=i,i=i+8|0,c[h>>2]=a[j]|0,h)|0);i=h;Zk(f,10192,(h=i,i=i+8|0,c[h>>2]=a[b+33|0]|0,h)|0);i=h;if((a[j]|0)!=0){h=b+36|0;Zk(f,9856,(g=i,i=i+8|0,c[g>>2]=c[h>>2],g)|0);i=g;g=b+40|0;Zk(f,9448,(j=i,i=i+8|0,c[j>>2]=c[g>>2],j)|0);i=j;Zk(f,9112,(j=i,i=i+8|0,c[j>>2]=a[b+44|0]|0,j)|0);i=j;Zk(f,8800,(j=i,i=i+1|0,i=i+7&-8,c[j>>2]=0,j)|0);i=j;if((c[h>>2]|0)>=0){j=0;while(1){Zk(f,8464,(k=i,i=i+8|0,c[k>>2]=c[b+4252+(j<<2)>>2],k)|0);i=k;if((j|0)<(c[h>>2]|0)){j=j+1|0}else{break}}}Zk(f,8280,(k=i,i=i+1|0,i=i+7&-8,c[k>>2]=0,k)|0);i=k;Zk(f,8008,(k=i,i=i+1|0,i=i+7&-8,c[k>>2]=0,k)|0);i=k;if((c[g>>2]|0)>=0){h=0;while(1){Zk(f,8464,(k=i,i=i+8|0,c[k>>2]=c[b+4296+(h<<2)>>2],k)|0);i=k;if((h|0)<(c[g>>2]|0)){h=h+1|0}else{break}}}Zk(f,8280,(k=i,i=i+1|0,i=i+7&-8,c[k>>2]=0,k)|0);i=k;Zk(f,7728,(k=i,i=i+8|0,c[k>>2]=a[b+45|0]|0,k)|0);i=k}Zk(f,7432,(k=i,i=i+8|0,c[k>>2]=a[b+46|0]|0,k)|0);i=k;k=b+47|0;Zk(f,7144,(j=i,i=i+8|0,c[j>>2]=a[k]|0,j)|0);i=j;if((a[k]|0)!=0){Zk(f,6848,(k=i,i=i+8|0,c[k>>2]=a[b+48|0]|0,k)|0);i=k;Zk(f,6576,(k=i,i=i+8|0,c[k>>2]=a[b+49|0]|0,k)|0);i=k;Zk(f,6416,(k=i,i=i+8|0,c[k>>2]=c[b+52>>2],k)|0);i=k;Zk(f,6240,(k=i,i=i+8|0,c[k>>2]=c[b+56>>2],k)|0);i=k}Zk(f,6056,(k=i,i=i+8|0,c[k>>2]=a[b+60|0]|0,k)|0);i=k;Zk(f,5896,(k=i,i=i+8|0,c[k>>2]=a[b+4125|0]|0,k)|0);i=k;Zk(f,5752,(k=i,i=i+8|0,c[k>>2]=c[b+4128>>2],k)|0);i=k;Zk(f,5584,(k=i,i=i+8|0,c[k>>2]=a[b+4132|0]|0,k)|0);i=k;Zk(f,5448,(k=i,i=i+8|0,c[k>>2]=a[b+4133|0]|0,k)|0);i=k;Zk(f,5280,(k=i,i=i+8|0,c[k>>2]=a[b+4134|0]|0,k)|0);i=k;k=b+4135|0;Zk(f,5096,(j=i,i=i+8|0,c[j>>2]=a[k]|0,j)|0);i=j;Zk(f,4880,(j=i,i=i+8|0,c[j>>2]=a[b+4136|0]|0,j)|0);i=j;Zk(f,4752,(j=i,i=i+8|0,c[j>>2]=a[b+4137|0]|0,j)|0);i=j;Zk(f,4632,(j=i,i=i+8|0,c[j>>2]=c[b+4160>>2],j)|0);i=j;Zk(f,4392,(j=i,i=i+8|0,c[j>>2]=c[b+4164>>2],j)|0);i=j;Zk(f,4176,(j=i,i=i+8|0,c[j>>2]=c[b+4168>>2],j)|0);i=j;if((a[k]|0)==0){i=e;return}ij(b+4138|0,d);i=e;return}function pj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if((a[b+34|0]|0)==0){j=(e|d|0)==0;return j|0}f=c[b+36>>2]|0;if((f|0)>0){i=0}else{j=0;return j|0}while(1){j=i+1|0;if((c[b+4252+(i<<2)>>2]|0)==(d|0)){break}if((j|0)<(f|0)){i=j}else{h=0;g=9;break}}if((g|0)==9){return h|0}f=c[b+40>>2]|0;if((f|0)>0){d=0}else{j=0;return j|0}while(1){g=d+1|0;if((c[b+4296+(d<<2)>>2]|0)==(e|0)){h=1;g=9;break}if((g|0)<(f|0)){d=g}else{h=0;g=9;break}}if((g|0)==9){return h|0}return 0}function qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=a+8|0;d=a+4|0;f=c[d>>2]|0;k=c[e>>2]|0;g=f;if(!(k-g>>2>>>0<b>>>0)){a=b;e=f;while(1){if((e|0)!=0){c[e>>2]=0}a=a-1|0;if((a|0)==0){break}else{e=e+4|0}}c[d>>2]=f+(b<<2);return}f=a|0;a=c[f>>2]|0;l=a;g=g-l|0;j=g>>2;h=j+b|0;if(h>>>0>1073741823>>>0){Nr(0)}k=k-l|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<h>>>0?h:k;if((l|0)==0){k=0;l=0}else{i=10}}else{l=1073741823;i=10}if((i|0)==10){k=Nu(l<<2)|0}i=k+(j<<2)|0;while(1){if((i|0)!=0){c[i>>2]=0}b=b-1|0;if((b|0)==0){break}else{i=i+4|0}}b=a;cv(k|0,b|0,g)|0;c[f>>2]=k;c[d>>2]=k+(h<<2);c[e>>2]=k+(l<<2);if((a|0)==0){return}Pu(b);return}function rj(c){c=c|0;var d=0;d=c+96|0;C=0;a[d]=C;C=C>>8;a[d+1|0]=C;C=C>>8;a[d+2|0]=C;C=C>>8;a[d+3|0]=C;d=0;do{b[c+(d<<1)>>1]=0;b[c+32+(d<<1)>>1]=0;a[c+64+d|0]=0;a[c+80+d|0]=0;d=d+1|0;}while((d|0)<16);return}function sj(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;m=i;do{if((j|0)==0){q=56}else{if(((nd(g,1)|0)&255)<<24>>24==0){q=56;break}do{if(l){l=qd(g)|0;if((l|0)!=-99999&(l|0)<(j|0)){l=l+1|0;break}else{F=0;i=m;return F|0}}else{l=1}}while(0);j=j-l|0;if(!((j|0)>-1)){ec(5088,15040,129,18616);return 0}t=nd(g,1)|0;l=qd(g)|0;if((l|0)==-99999){F=0;i=m;return F|0}u=l+1|0;v=~l;l=k|0;w=d[(c[l>>2]|0)+(j*100|0)+98|0]|0;y=w+1|0;r=i;i=i+y|0;i=i+7&-8;s=i;i=i+y|0;i=i+7&-8;y=0;while(1){F=(nd(g,1)|0)&255;a[r+y|0]=F;if(F<<24>>24==0){F=(nd(g,1)|0)&255;a[s+y|0]=F}else{a[s+y|0]=1}if((y|0)<(w|0)){y=y+1|0}else{break}}v=(t|0)!=0?v:u;y=c[l>>2]|0;A=a[y+(j*100|0)+96|0]|0;u=A&255;y=a[y+(j*100|0)+97|0]|0;t=y&255;y=y<<24>>24==0;a:do{if(y){z=0}else{k=k+4|0;B=0;D=t;b:while(1){F=D;while(1){D=F-1|0;E=c[l>>2]|0;if(!(j>>>0<(((c[k>>2]|0)-E|0)/100|0)>>>0)){q=18;break b}if(!((F-1|0)>>>0<16>>>0)){q=20;break b}F=(b[E+(j*100|0)+32+(D<<1)>>1]|0)+v|0;if((F|0)<0){E=D+u|0;if((a[s+E|0]|0)!=0){break}}if((D|0)>0){F=D}else{z=B;break a}}if((B|0)>15){p=0;q=77;break}b[h+(B<<1)>>1]=F;a[h+64+B|0]=a[r+E|0]|0;B=B+1|0;if((D|0)<=0){z=B;break a}}if((q|0)==18){ec(12504,15040,174,18616);return 0}else if((q|0)==20){ec(9480,15040,175,18616);return 0}else if((q|0)==77){i=m;return p|0}}}while(0);do{if((v|0)<0){if((a[s+w|0]|0)==0){break}if((z|0)>15){F=0;i=m;return F|0}else{b[h+(z<<1)>>1]=v;a[h+64+z|0]=a[r+w|0]|0;z=z+1|0;break}}}while(0);A=A<<24>>24==0;c:do{if(A){a[h+96|0]=z;z=0}else{k=0;d:while(1){B=(b[(c[l>>2]|0)+(j*100|0)+(k<<1)>>1]|0)+v|0;do{if((B|0)<0){if((a[s+k|0]|0)==0){x=z;break}if((z|0)>15){p=0;q=77;break d}b[h+(z<<1)>>1]=B;a[h+64+z|0]=a[r+k|0]|0;x=z+1|0}else{x=z}}while(0);k=k+1|0;if((k|0)<(u|0)){z=x}else{break}}if((q|0)==77){i=m;return p|0}a[h+96|0]=x;if(A){z=0;break}else{z=0;A=u}while(1){x=c[l>>2]|0;while(1){A=A-1|0;k=(b[x+(j*100|0)+(A<<1)>>1]|0)+v|0;if((k|0)>0){if((a[s+A|0]|0)!=0){break}}if((A|0)<=0){break c}}if((z|0)>15){p=0;break}b[h+32+(z<<1)>>1]=k;a[h+80+z|0]=a[r+A|0]|0;z=z+1|0;if((A|0)<=0){break c}}i=m;return p|0}}while(0);do{if((v|0)>0){if((a[s+w|0]|0)==0){break}if((z|0)>15){F=0;i=m;return F|0}else{b[h+32+(z<<1)>>1]=v;a[h+80+z|0]=a[r+w|0]|0;z=z+1|0;break}}}while(0);do{if(y){o=z&255}else{q=0;e:while(1){w=(b[(c[l>>2]|0)+(j*100|0)+32+(q<<1)>>1]|0)+v|0;do{if((w|0)>0){x=q+u|0;if((a[s+x|0]|0)==0){n=z;break}if((z|0)>15){p=0;q=77;break e}b[h+32+(z<<1)>>1]=w;a[h+80+z|0]=a[r+x|0]|0;n=z+1|0}else{n=z}}while(0);q=q+1|0;if((q|0)<(t|0)){z=n}else{q=54;break}}if((q|0)==54){o=n&255;break}else if((q|0)==77){i=m;return p|0}}}while(0);a[h+97|0]=o}}while(0);f:do{if((q|0)==56){o=qd(g)|0;n=qd(g)|0;if((n+o|0)>(c[f+528+((a[f+2|0]|0)-1<<2)>>2]|0)){F=h+96|0;C=0;a[F]=C;C=C>>8;a[F+1|0]=C;C=C>>8;a[F+2|0]=C;C=C>>8;a[F+3|0]=C;Ue(e,1018,0);F=0;i=m;return F|0}if((o|0)>16|(n|0)>16){Ue(e,1018,0);F=0;i=m;return F|0}a[h+96|0]=o;a[h+97|0]=n;g:do{if((o|0)>0){f=0;j=0;while(1){p=qd(g)|0;if((p|0)==-99999){p=0;break}F=(nd(g,1)|0)&255;e=h+(j<<1)|0;b[e>>1]=f+65535-p;a[h+64+j|0]=F;j=j+1|0;if((j|0)<(o|0)){f=b[e>>1]|0}else{break g}}i=m;return p|0}}while(0);if((n|0)>0){f=0;o=0}else{break}while(1){p=qd(g)|0;if((p|0)==-99999){p=0;break}F=(nd(g,1)|0)&255;e=h+32+(o<<1)|0;b[e>>1]=f+1+p;a[h+80+o|0]=F;o=o+1|0;if((o|0)<(n|0)){f=b[e>>1]|0}else{break f}}i=m;return p|0}}while(0);g=h+99|0;a[g]=0;f=a[h+96|0]|0;if(f<<24>>24==0){f=0;p=0}else{n=f&255;o=0;e=0;while(1){if((a[h+64+o|0]|0)!=0){e=e+1&255;a[g]=e}o=o+1|0;if((o|0)>=(n|0)){p=e;break}}}n=a[h+97|0]|0;if(n<<24>>24==0){n=0}else{e=n&255;o=0;do{if((a[h+80+o|0]|0)!=0){p=p+1&255;a[g]=p}o=o+1|0;}while((o|0)<(e|0))}a[h+98|0]=n+f;F=1;i=m;return F|0}function tj(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;j=e<<1;h=i;i=i+(j+2)|0;i=i+7&-8;j=j|1;a[h+j|0]=0;if((j|0)>0){dv(h|0,46,j|0)|0}a[h+e|0]=124;j=a[d+96|0]|0;if(!(j<<24>>24==0)){k=-e|0;m=j&255;do{m=m-1|0;n=b[d+(m<<1)>>1]|0;l=a[d+64+m|0]|0;do{if((n|0)<(k|0)){Zk(f,16008,(j=i,i=i+16|0,c[j>>2]=n,c[j+8>>2]=l<<24>>24!=0?88:111,j)|0);i=j}else{j=h+(n+e)|0;if(l<<24>>24==0){a[j]=111;break}else{a[j]=88;break}}}while(0);}while((m|0)>0)}j=a[d+97|0]|0;if(j<<24>>24==0){Zk(f,15608,(n=i,i=i+8|0,c[n>>2]=h,n)|0);i=n;i=g;return}l=j&255;do{l=l-1|0;m=b[d+32+(l<<1)>>1]|0;k=a[d+80+l|0]|0;do{if((m|0)>(e|0)){Zk(f,16008,(j=i,i=i+16|0,c[j>>2]=m,c[j+8>>2]=k<<24>>24!=0?88:111,j)|0);i=j}else{j=h+(m+e)|0;if(k<<24>>24==0){a[j]=111;break}else{a[j]=88;break}}}while(0);}while((l|0)>0);Zk(f,15608,(n=i,i=i+8|0,c[n>>2]=h,n)|0);i=n;i=g;return}function uj(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if((a[b+5467|0]|0)==0){return}g=b+40|0;d=b+28|0;l=ga(c[d>>2]|0,c[g>>2]|0)|0;i=b+5760|0;l=ga(l,((c[i>>2]|0)+7|0)/8|0)|0;h=b+44|0;f=b+36|0;k=ga(c[f>>2]|0,c[h>>2]|0)|0;j=b+5768|0;k=ga(k,((c[j>>2]|0)+7|0)/8|0)|0;k=(l|0)>(k|0)?l:k;k=Ou((k|0)>-1?k:-1)|0;if((k|0)==0){Ue((c[b+10332>>2]|0)+4|0,1024,0);return}w=(c[b+5776>>2]|0)==0?1:3;r=b+5828|0;l=b+5820|0;s=b+10352|0;t=b+10340|0;v=b+52|0;u=b+48|0;n=b+5804|0;o=b+4|0;m=k;q=b+5780|0;p=b+5784|0;x=0;E=c[r>>2]|0;a:while(1){y=(x|0)==0;B=y?g:h;z=c[B>>2]|0;A=b+4+(x<<2)|0;D=ga(c[(y?d:f)>>2]|0,z)|0;C=y?i:j;cv(k|0,c[A>>2]|0,ga(D,((c[C>>2]|0)+7|0)/8|0)|0)|0;if((E|0)>0){D=0;F=c[l>>2]|0;do{if((F|0)>0){E=0;do{G=(ga(c[s>>2]|0,D)|0)+E|0;G=e[(c[t>>2]|0)+(G*24|0)+2>>1]|0;F=c[u>>2]|0;if(!(G>>>0<(c[v>>2]|0)-F>>2>>>0)){b=24;break a}F=c[F+(G<<2)>>2]|0;if((F|0)==0){b=24;break a}do{if(y){if((a[F+325|0]|0)==0){break}G=1<<c[n>>2];H=c[o>>2]|0;F=c[g>>2]|0;if((c[i>>2]|0)>8){Aj(b,E,D,0,0,G,G,m,z,H,F);break}else{Bj(b,E,D,0,0,G,G,k,z,H,F);break}}else{if((a[F+326|0]|0)==0){break}I=1<<c[n>>2];H=(I|0)/(c[q>>2]|0)|0;I=(I|0)/(c[p>>2]|0)|0;F=c[A>>2]|0;G=c[B>>2]|0;if((c[C>>2]|0)>8){Aj(b,E,D,0,x,H,I,m,z,F,G);break}else{Bj(b,E,D,0,x,H,I,k,z,F,G);break}}}while(0);E=E+1|0;F=c[l>>2]|0;}while((E|0)<(F|0));E=c[r>>2]|0}D=D+1|0;}while((D|0)<(E|0))}x=x+1|0;if((x|0)>=(w|0)){b=23;break}}if((b|0)==23){Qu(k);return}else if((b|0)==24){return}}function vj(b){b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=b|0;f=b+4|0;c[f>>2]=1;i=b+12|0;Wh(c[i>>2]|0,g);p=c[i>>2]|0;j=c[p+5820>>2]|0;h=j-1|0;m=c[p+5804>>2]|0;k=1<<m;d=b+8|0;l=b+24|0;Yh(p,g,h,c[d>>2]|0,c[l>>2]|0);p=c[d>>2]|0;if((p|0)>0){Yh(c[i>>2]|0,g,h,p-1|0,c[l>>2]|0);p=c[d>>2]|0}o=p+1|0;n=c[i>>2]|0;if((o|0)<(c[n+5828>>2]|0)){Yh(n,g,h,o,c[l>>2]|0);p=c[d>>2]|0}l=b+20|0;b=b+16|0;Th(c[l>>2]|0,c[b>>2]|0,p<<m,p+1<<m);o=c[i>>2]|0;a:do{if((c[o+5820>>2]|0)>0){m=0;do{n=c[d>>2]|0;q=(ga(c[o+10352>>2]|0,n)|0)+m|0;q=e[(c[o+10340>>2]|0)+(q*24|0)+2>>1]|0;p=c[o+48>>2]|0;if(!(q>>>0<(c[o+52>>2]|0)-p>>2>>>0)){break a}t=c[p+(q<<2)>>2]|0;if((t|0)==0){break a}do{if((a[t+325|0]|0)!=0){q=c[b>>2]|0;p=c[q+4>>2]|0;q=c[q+40>>2]|0;s=c[l>>2]|0;r=c[s+4>>2]|0;s=c[s+40>>2]|0;if((c[o+5760>>2]|0)>8){Aj(o,m,n,0,0,k,k,p,q,r,s);break}else{Bj(o,m,n,0,0,k,k,p,q,r,s);break}}}while(0);do{if((a[t+326|0]|0)!=0){p=c[i>>2]|0;n=(k|0)/(c[p+5780>>2]|0)|0;o=(k|0)/(c[p+5784>>2]|0)|0;u=c[d>>2]|0;s=c[b>>2]|0;t=c[s+8>>2]|0;s=c[s+44>>2]|0;q=c[l>>2]|0;r=c[q+8>>2]|0;q=c[q+44>>2]|0;if((c[p+5768>>2]|0)>8){Aj(p,m,u,0,1,n,o,t,s,r,q)}else{Bj(p,m,u,0,1,n,o,t,s,r,q)}q=c[i>>2]|0;r=c[d>>2]|0;t=c[b>>2]|0;s=c[t+12>>2]|0;t=c[t+44>>2]|0;p=c[l>>2]|0;u=c[p+12>>2]|0;p=c[p+44>>2]|0;if((c[q+5768>>2]|0)>8){Aj(q,m,r,0,2,n,o,s,t,u,p);break}else{Bj(q,m,r,0,2,n,o,s,t,u,p);break}}}while(0);m=m+1|0;o=c[i>>2]|0;}while((m|0)<(c[o+5820>>2]|0))}}while(0);if((j|0)<1){u=o;c[f>>2]=3;Xh(u,g);return}else{j=0}while(1){u=(ga(c[d>>2]|0,c[o+5820>>2]|0)|0)+j|0;Ek((c[o+10524>>2]|0)+(u*76|0)|0,4);if((j|0)>=(h|0)){break}j=j+1|0;o=c[i>>2]|0}u=c[i>>2]|0;c[f>>2]=3;Xh(u,g);return}function wj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+8|0;f=h|0;e=c[b>>2]|0;if((a[e+5467|0]|0)==0){p=0;i=h;return p|0}j=e+10332|0;m=c[j>>2]|0;g=b+8|0;p=e+10480|0;if((Ph(g,c[e+24>>2]|0,c[e+28>>2]|0,c[e+20>>2]|0,e+764|0,0,m,c[e+10336>>2]|0,c[p>>2]|0,c[p+4>>2]|0,c[e+10488>>2]|0,1)|0)!=0){Ue((c[j>>2]|0)+4|0,1024,0);p=0;i=h;return p|0}k=c[e+5828>>2]|0;Vh(e,k);if((k|0)>0){j=b+10668|0;l=b+10672|0;m=m+375396|0;b=b+10664|0;n=0;do{o=Nu(28)|0;c[o+4>>2]=0;c[o>>2]=22280;c[o+16>>2]=e;c[o+20>>2]=g;c[o+12>>2]=e;c[o+8>>2]=n;c[o+24>>2]=d;c[f>>2]=o;p=c[j>>2]|0;if(p>>>0<(c[l>>2]|0)>>>0){if((p|0)==0){p=0}else{c[p>>2]=o;p=c[j>>2]|0}c[j>>2]=p+4}else{He(b,f)}Kk(m,o);n=n+1|0;}while((n|0)<(k|0))}_h(e);Uh(e,g);p=1;i=h;return p|0}function xj(a){a=a|0;return}function yj(a){a=a|0;Pu(a);return}function zj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+104|0;e=f|0;mb(e|0,6568,(g=i,i=i+8|0,c[g>>2]=c[d+8>>2],g)|0)|0;i=g;d=ev(e|0)|0;if(d>>>0>4294967279>>>0){nm(0)}if(d>>>0<11>>>0){a[b]=d<<1;g=b+1|0;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}else{h=d+16&-16;g=Nu(h)|0;c[b+8>>2]=g;c[b>>2]=h|1;c[b+4>>2]=d;cv(g|0,e|0,d)|0;g=g+d|0;a[g]=0;i=f;return}}function Aj(f,g,h,j,k,l,m,n,o,p,q){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;t=i;i=i+152|0;G=t|0;F=t+8|0;D=t+16|0;r=t+24|0;H=c[f+10352>>2]|0;s=(ga(H,h)|0)+g|0;j=c[f+10340>>2]|0;U=k<<1;T=(d[j+(s*24|0)+4|0]|0)>>>(U>>>0)&3;if((T|0)==0){i=t;return}B=(k|0)==0;E=c[(B?f+5760|0:f+5768|0)>>2]|0;u=(1<<E)-1|0;g=ga(l,g)|0;h=ga(m,h)|0;I=c[(B?f+24|0:f+32|0)>>2]|0;K=c[(B?f+28|0:f+36|0)>>2]|0;J=c[f+10348>>2]|0;C=g>>J;M=h>>J;if(!((C|0)>-1&(C|0)<(H|0))){ec(14920,12440,118,17328)}if(!((M|0)>-1)){ec(9408,12440,119,17328)}L=c[f+10356>>2]|0;if((M|0)>=(L|0)){ec(9408,12440,119,17328)}N=j+(((ga(M,H)|0)+C|0)*24|0)+2|0;M=f+52|0;P=c[f+48>>2]|0;N=c[(c[P+(e[N>>1]<<2)>>2]|0)+800>>2]|0;O=c[f+5820>>2]|0;if(B){B=0;C=0}else{B=(c[f+5784>>2]|0)-1|0;C=(c[f+5780>>2]|0)-1|0}Q=c[f+5804>>2]|0;R=Q-C|0;Q=Q-B|0;l=(g+l|0)>(I|0)?I-g|0:l;m=(h+m|0)>(K|0)?K-h|0:m;S=(a[j+(s*24|0)+22|0]|0)!=0;if((T|0)==2){T=(d[j+(s*24|0)+5|0]|0)>>>(U>>>0)&3;if((T|0)==0){c[G>>2]=-1;c[G+4>>2]=1;c[F>>2]=0;c[F+4>>2]=0;V=0;W=0;U=-1;T=1}else if((T|0)==1){c[G>>2]=0;c[G+4>>2]=0;c[F>>2]=-1;c[F+4>>2]=1;V=-1;W=1;U=0;T=0}else if((T|0)==2){c[G>>2]=-1;c[G+4>>2]=1;c[F>>2]=-1;c[F+4>>2]=1;V=-1;W=1;U=-1;T=1}else if((T|0)==3){c[G>>2]=1;c[G+4>>2]=-1;c[F>>2]=-1;c[F+4>>2]=1;V=-1;W=1;U=1;T=-1}else{V=0;W=0;U=0;T=0}V=ga(V,o)|0;W=ga(W,o)|0;a[D|0]=a[j+(s*24|0)+9+(k<<2)|0]|0;a[D+1|0]=a[j+(s*24|0)+9+(k<<2)+1|0]|0;a[D+2|0]=0;a[D+3|0]=a[j+(s*24|0)+9+(k<<2)+2|0]|0;a[D+4|0]=a[j+(s*24|0)+9+(k<<2)+3|0]|0;if((m|0)<=0){i=t;return}X=(l|0)>0;_=f+5480|0;Y=f+10368|0;Z=f+10372|0;fa=f+10376|0;ea=f+10360|0;da=l-1|0;$=m-1|0;ca=f+5977|0;aa=f+10308|0;ba=(ga(h>>Q,O)|0)+(g>>R)|0;ja=0;a:while(1){ka=ja+h|0;ia=(ga(ka,o)|0)+g|0;ha=(ga(ka,q)|0)+g|0;if(X){pa=ka<<B;na=(ja|0)==0;qa=ia+V|0;la=ia+W|0;oa=(ja|0)==($|0);ma=0;do{do{if(S){if((a[_]|0)==0){z=28;break}ta=c[Y>>2]|0;sa=ma+g<<C>>ta;ta=pa>>ta;if(!((sa|0)>-1)){z=23;break a}ra=c[Z>>2]|0;if((sa|0)>=(ra|0)){z=23;break a}if(!((ta|0)>-1)){z=26;break a}if((ta|0)>=(c[fa>>2]|0)){z=26;break a}za=(ga(ra,ta)|0)+sa|0;za=(c[ea>>2]|0)+(za*3|0)|0;if(((d[za]|d[za+1|0]<<8)<<16>>16&1024)==0){z=28}}else{z=28}}while(0);b:do{if((z|0)==28){z=0;sa=ma+g|0;ra=sa<<C;ua=c[Y>>2]|0;ta=ra>>ua;ua=pa>>ua;if(!((ta|0)>-1)){z=30;break a}va=c[Z>>2]|0;if((ta|0)>=(va|0)){z=30;break a}if(!((ua|0)>-1)){z=33;break a}if((ua|0)>=(c[fa>>2]|0)){z=33;break a}za=(ga(va,ua)|0)+ta|0;za=(c[ea>>2]|0)+(za*3|0)|0;if(!(((d[za]|d[za+1|0]<<8)<<16>>16&2048)==0)){break}if((ma|0)==0|na|(ma|0)==(da|0)|oa){ta=0;do{va=(c[G+(ta<<2)>>2]|0)+sa|0;ua=(c[F+(ta<<2)>>2]|0)+ka|0;if(!((ua|va|0)>-1&(va|0)<(I|0)&(ua|0)<(K|0))){break b}xa=va<<C>>J;wa=ua<<B>>J;if(!((xa|0)>-1&(xa|0)<(H|0))){z=38;break a}if(!((wa|0)>-1&(wa|0)<(L|0))){z=40;break a}wa=j+(((ga(H,wa)|0)+xa|0)*24|0)+2|0;wa=e[wa>>1]|0;if(!(wa>>>0<(c[M>>2]|0)-P>>2>>>0)){z=113;break a}za=c[P+(wa<<2)>>2]|0;if((za|0)==0){z=113;break a}ya=c[za+800>>2]|0;if((ya|0)<(N|0)){xa=ra>>J;wa=pa>>J;if(!((xa|0)>-1&(xa|0)<(H|0))){z=45;break a}if(!((wa|0)>-1&(wa|0)<(L|0))){z=47;break a}xa=j+(((ga(H,wa)|0)+xa|0)*24|0)+2|0;if((a[(c[P+(e[xa>>1]<<2)>>2]|0)+764|0]|0)==0){break b}}if((ya|0)>(N|0)){if((a[za+764|0]|0)==0){break b}}if((a[ca]|0)==0){ya=(ga(ua>>Q,O)|0)+(va>>R)|0;za=c[aa>>2]|0;if((c[za+(ya<<2)>>2]|0)!=(c[za+(ba<<2)>>2]|0)){break b}}ta=ta+1|0;}while((ta|0)<2)}ra=e[n+(ma+ia<<1)>>1]|0;sa=ra-(e[n+(qa+ma+U<<1)>>1]|0)|0;if((sa|0)<0){sa=1}else{sa=(sa|0)>0|2}ta=ra-(e[n+(la+ma+T<<1)>>1]|0)|0;if((ta|0)<0){ta=-1}else{ta=(ta|0)>0|0}ra=ra+(a[D+(sa+ta)|0]|0)|0;if((ra|0)<0){ra=0}else{ra=((ra|0)>(u|0)?u:ra)&65535}b[p+(ha+ma<<1)>>1]=ra}}while(0);ma=ma+1|0;}while((ma|0)<(l|0))}ja=ja+1|0;if((ja|0)>=(m|0)){z=113;break}}if((z|0)==23){ec(14920,12440,118,17328)}else if((z|0)==26){ec(9408,12440,119,17328)}else if((z|0)==30){ec(14920,12440,118,17328)}else if((z|0)==33){ec(9408,12440,119,17328)}else if((z|0)==38){ec(14920,12440,118,17328)}else if((z|0)==40){ec(9408,12440,119,17328)}else if((z|0)==45){ec(14920,12440,118,17328)}else if((z|0)==47){ec(9408,12440,119,17328)}else if((z|0)==113){i=t;return}}D=d[j+(s*24|0)+6+k|0]|0;dv(r|0,0,128)|0;c[r+((D&31)<<2)>>2]=1;c[r+((D+1&31)<<2)>>2]=2;c[r+((D+2&31)<<2)>>2]=3;c[r+((D+3&31)<<2)>>2]=4;D=E-5|0;E=(m|0)>0;if(!S){if(!E){i=t;return}z=(l|0)>0;B=(D|0)>7;A=0;do{if(z){y=A+h|0;x=ga(y,o)|0;y=ga(y,q)|0;w=0;do{v=w+g|0;C=e[n+(v+x<<1)>>1]|0;f=B?0:c[r+(C>>>(D>>>0)<<2)>>2]|0;if((f|0)>0){C=(a[f-1+(j+(s*24|0)+9+(k<<2))|0]|0)+C|0;if((C|0)<0){C=0}else{C=((C|0)>(u|0)?u:C)&65535}b[p+(v+y<<1)>>1]=C}w=w+1|0;}while((w|0)<(l|0))}A=A+1|0;}while((A|0)<(m|0));i=t;return}if(!E){i=t;return}F=(l|0)>0;E=f+5480|0;G=f+10368|0;H=f+10372|0;I=f+10376|0;f=f+10360|0;J=(D|0)>7;K=0;c:while(1){d:do{if(F){N=K+h|0;L=N<<B;M=ga(N,o)|0;N=ga(N,q)|0;if(J){N=a[E]|0;M=0;while(1){if(N<<24>>24==0){v=c[G>>2]|0;A=M+g<<C;z=78}else{Q=M+g<<C;R=c[G>>2]|0;S=Q>>R;P=L>>R;if(!((S|0)>-1)){z=87;break c}O=c[H>>2]|0;if((S|0)>=(O|0)){z=87;break c}if(!((P|0)>-1)){z=90;break c}if((P|0)>=(c[I>>2]|0)){z=90;break c}za=(ga(O,P)|0)+S|0;za=(c[f>>2]|0)+(za*3|0)|0;if(((d[za]|d[za+1|0]<<8)<<16>>16&1024)==0){v=R;A=Q;z=78}}if((z|0)==78){z=0;P=A>>v;O=L>>v;if(!((P|0)>-1)){z=94;break c}if((P|0)>=(c[H>>2]|0)){z=94;break c}if(!((O|0)>-1)){z=97;break c}if((O|0)>=(c[I>>2]|0)){z=97;break c}}M=M+1|0;if((M|0)>=(l|0)){break d}}}else{O=0}do{if((a[E]|0)==0){w=O+g|0;x=c[G>>2]|0;y=w;w=w<<C;z=92}else{Q=O+g|0;R=Q<<C;P=c[G>>2]|0;T=R>>P;S=L>>P;if(!((T|0)>-1)){z=87;break c}U=c[H>>2]|0;if((T|0)>=(U|0)){z=87;break c}if(!((S|0)>-1)){z=90;break c}if((S|0)>=(c[I>>2]|0)){z=90;break c}za=(ga(U,S)|0)+T|0;za=(c[f>>2]|0)+(za*3|0)|0;if(((d[za]|d[za+1|0]<<8)<<16>>16&1024)==0){x=P;y=Q;w=R;z=92}}do{if((z|0)==92){z=0;P=w>>x;Q=L>>x;if(!((P|0)>-1)){z=94;break c}R=c[H>>2]|0;if((P|0)>=(R|0)){z=94;break c}if(!((Q|0)>-1)){z=97;break c}if((Q|0)>=(c[I>>2]|0)){z=97;break c}za=(ga(R,Q)|0)+P|0;za=(c[f>>2]|0)+(za*3|0)|0;if(!(((d[za]|d[za+1|0]<<8)<<16>>16&2048)==0)){break}P=e[n+(y+M<<1)>>1]|0;Q=c[r+(P>>>(D>>>0)<<2)>>2]|0;if((Q|0)<=0){break}P=(a[Q-1+(j+(s*24|0)+9+(k<<2))|0]|0)+P|0;if((P|0)<0){P=0}else{P=((P|0)>(u|0)?u:P)&65535}b[p+(y+N<<1)>>1]=P}}while(0);O=O+1|0;}while((O|0)<(l|0))}}while(0);K=K+1|0;if((K|0)>=(m|0)){z=113;break}}if((z|0)==87){ec(14920,12440,118,17328)}else if((z|0)==90){ec(9408,12440,119,17328)}else if((z|0)==94){ec(14920,12440,118,17328)}else if((z|0)==97){ec(9408,12440,119,17328)}else if((z|0)==113){i=t;return}}function Bj(b,f,g,h,j,k,l,m,n,o,p){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0;h=i;i=i+152|0;t=h|0;v=h+8|0;u=h+16|0;M=h+24|0;w=b+10352|0;B=c[w>>2]|0;L=(ga(B,g)|0)+f|0;s=b+10340|0;K=c[s>>2]|0;R=j<<1;N=(d[K+(L*24|0)+4|0]|0)>>>(R>>>0)&3;if((N|0)==0){i=h;return}F=(j|0)==0;S=c[(F?b+5760|0:b+5768|0)>>2]|0;q=(1<<S)-1|0;f=ga(k,f)|0;g=ga(l,g)|0;x=c[(F?b+24|0:b+32|0)>>2]|0;A=c[(F?b+28|0:b+36|0)>>2]|0;z=b+10348|0;C=c[z>>2]|0;D=f>>C;C=g>>C;if(!((D|0)>-1&(D|0)<(B|0))){ec(14920,12440,118,17328)}if(!((C|0)>-1)){ec(9408,12440,119,17328)}y=b+10356|0;if((C|0)>=(c[y>>2]|0)){ec(9408,12440,119,17328)}E=K+(((ga(C,B)|0)+D|0)*24|0)+2|0;B=b+52|0;D=b+48|0;E=c[(c[(c[D>>2]|0)+(e[E>>1]<<2)>>2]|0)+800>>2]|0;C=c[b+5820>>2]|0;if(F){H=0;F=0}else{H=(c[b+5784>>2]|0)-1|0;F=(c[b+5780>>2]|0)-1|0}G=c[b+5804>>2]|0;I=G-F|0;G=G-H|0;k=(f+k|0)>(x|0)?x-f|0:k;l=(g+l|0)>(A|0)?A-g|0:l;J=(a[K+(L*24|0)+22|0]|0)!=0;if((N|0)!=2){N=d[K+(L*24|0)+6+j|0]|0;dv(M|0,0,128)|0;c[M+((N&31)<<2)>>2]=1;c[M+((N+1&31)<<2)>>2]=2;c[M+((N+2&31)<<2)>>2]=3;c[M+((N+3&31)<<2)>>2]=4;N=S-5|0;S=(l|0)>0;if(!J){if(!S){i=h;return}x=(k|0)>0;u=(N|0)>7;t=0;do{if(x){s=t+g|0;v=ga(s,n)|0;s=ga(s,p)|0;w=0;do{r=w+f|0;y=d[m+(r+v)|0]|0;z=u?0:c[M+(y>>>(N>>>0)<<2)>>2]|0;if((z|0)>0){y=(a[z-1+(K+(L*24|0)+9+(j<<2))|0]|0)+y|0;if((y|0)<0){y=0}else{y=((y|0)>(q|0)?q:y)&255}a[o+(r+s)|0]=y}w=w+1|0;}while((w|0)<(k|0))}t=t+1|0;}while((t|0)<(l|0));i=h;return}if(!S){i=h;return}S=(k|0)>0;T=b+5480|0;U=b+10368|0;V=b+10372|0;W=b+10376|0;Y=b+10360|0;X=(N|0)>7;aa=0;a:while(1){if(S){ba=aa+g|0;_=ba<<H;Z=ga(ba,n)|0;ba=ga(ba,p)|0;$=0;do{if((a[T]|0)==0){P=$+f|0;Q=c[U>>2]|0;O=P;P=P<<F;r=81}else{fa=$+f|0;ea=fa<<F;ha=c[U>>2]|0;ia=ea>>ha;da=_>>ha;if(!((ia|0)>-1)){r=76;break a}ca=c[V>>2]|0;if((ia|0)>=(ca|0)){r=76;break a}if(!((da|0)>-1)){r=79;break a}if((da|0)>=(c[W>>2]|0)){r=79;break a}sa=(ga(ca,da)|0)+ia|0;sa=(c[Y>>2]|0)+(sa*3|0)|0;if(((d[sa]|d[sa+1|0]<<8)<<16>>16&1024)==0){Q=ha;O=fa;P=ea;r=81}}do{if((r|0)==81){r=0;ca=P>>Q;da=_>>Q;if(!((ca|0)>-1)){r=83;break a}ea=c[V>>2]|0;if((ca|0)>=(ea|0)){r=83;break a}if(!((da|0)>-1)){r=86;break a}if((da|0)>=(c[W>>2]|0)){r=86;break a}sa=(ga(ea,da)|0)+ca|0;sa=(c[Y>>2]|0)+(sa*3|0)|0;if(!(((d[sa]|d[sa+1|0]<<8)<<16>>16&2048)==0)){break}da=d[m+(O+Z)|0]|0;ca=X?0:c[M+(da>>>(N>>>0)<<2)>>2]|0;if((ca|0)<=0){break}ca=(a[ca-1+(K+(L*24|0)+9+(j<<2))|0]|0)+da|0;if((ca|0)<0){ca=0}else{ca=((ca|0)>(q|0)?q:ca)&255}a[o+(O+ba)|0]=ca}}while(0);$=$+1|0;}while(($|0)<(k|0))}aa=aa+1|0;if((aa|0)>=(l|0)){r=102;break}}if((r|0)==76){ec(14920,12440,118,17328)}else if((r|0)==79){ec(9408,12440,119,17328)}else if((r|0)==83){ec(14920,12440,118,17328)}else if((r|0)==86){ec(9408,12440,119,17328)}else if((r|0)==102){i=h;return}}M=(d[K+(L*24|0)+5|0]|0)>>>(R>>>0)&3;if((M|0)==3){c[t>>2]=1;c[t+4>>2]=-1;c[v>>2]=-1;c[v+4>>2]=1;O=-1;P=1;M=1;N=-1}else if((M|0)==1){c[t>>2]=0;c[t+4>>2]=0;c[v>>2]=-1;c[v+4>>2]=1;O=-1;P=1;M=0;N=0}else if((M|0)==2){c[t>>2]=-1;c[t+4>>2]=1;c[v>>2]=-1;c[v+4>>2]=1;O=-1;P=1;M=-1;N=1}else if((M|0)==0){c[t>>2]=-1;c[t+4>>2]=1;c[v>>2]=0;c[v+4>>2]=0;O=0;P=0;M=-1;N=1}else{O=0;P=0;M=0;N=0}O=ga(O,n)|0;P=ga(P,n)|0;a[u|0]=a[K+(L*24|0)+9+(j<<2)|0]|0;a[u+1|0]=a[K+(L*24|0)+9+(j<<2)+1|0]|0;a[u+2|0]=0;a[u+3|0]=a[K+(L*24|0)+9+(j<<2)+2|0]|0;a[u+4|0]=a[K+(L*24|0)+9+(j<<2)+3|0]|0;if((l|0)<=0){i=h;return}R=(k|0)>0;Q=b+5480|0;S=b+10368|0;T=b+10372|0;U=b+10376|0;L=b+10360|0;V=k-1|0;K=l-1|0;j=b+5977|0;W=b+10308|0;b=(ga(g>>G,C)|0)+(f>>I)|0;Y=0;b:while(1){$=Y+g|0;Z=(ga($,n)|0)+f|0;ea=(ga($,p)|0)+f|0;if(R){ca=$<<H;aa=(Y|0)==0;da=Z+O|0;ba=Z+P|0;X=(Y|0)==(K|0);_=0;do{do{if(J){if((a[Q]|0)==0){r=28;break}ha=c[S>>2]|0;ia=_+f<<F>>ha;ha=ca>>ha;if(!((ia|0)>-1)){r=23;break b}fa=c[T>>2]|0;if((ia|0)>=(fa|0)){r=23;break b}if(!((ha|0)>-1)){r=26;break b}if((ha|0)>=(c[U>>2]|0)){r=26;break b}sa=(ga(fa,ha)|0)+ia|0;sa=(c[L>>2]|0)+(sa*3|0)|0;if(((d[sa]|d[sa+1|0]<<8)<<16>>16&1024)==0){r=28}}else{r=28}}while(0);c:do{if((r|0)==28){r=0;fa=_+f|0;ha=fa<<F;ka=c[S>>2]|0;ja=ha>>ka;ka=ca>>ka;if(!((ja|0)>-1)){r=30;break b}ia=c[T>>2]|0;if((ja|0)>=(ia|0)){r=30;break b}if(!((ka|0)>-1)){r=33;break b}if((ka|0)>=(c[U>>2]|0)){r=33;break b}sa=(ga(ia,ka)|0)+ja|0;sa=(c[L>>2]|0)+(sa*3|0)|0;if(!(((d[sa]|d[sa+1|0]<<8)<<16>>16&2048)==0)){break}if((_|0)==0|aa|(_|0)==(V|0)|X){ia=0;do{ka=(c[t+(ia<<2)>>2]|0)+fa|0;ja=(c[v+(ia<<2)>>2]|0)+$|0;if(!((ja|ka|0)>-1&(ka|0)<(x|0)&(ja|0)<(A|0))){break c}na=c[z>>2]|0;oa=ka<<F>>na;pa=ja<<H>>na;if(!((oa|0)>-1)){r=39;break b}ma=c[w>>2]|0;if((oa|0)>=(ma|0)){r=39;break b}if(!((pa|0)>-1)){r=42;break b}la=c[y>>2]|0;if((pa|0)>=(la|0)){r=42;break b}qa=(ga(ma,pa)|0)+oa|0;pa=c[s>>2]|0;qa=e[pa+(qa*24|0)+2>>1]|0;oa=c[D>>2]|0;if(!(qa>>>0<(c[B>>2]|0)-oa>>2>>>0)){r=102;break b}sa=c[oa+(qa<<2)>>2]|0;if((sa|0)==0){r=102;break b}qa=c[sa+800>>2]|0;if((qa|0)<(E|0)){ra=ha>>na;na=ca>>na;if(!((ra|0)>-1&(ra|0)<(ma|0))){r=47;break b}if(!((na|0)>-1&(na|0)<(la|0))){r=49;break b}ra=pa+(((ga(ma,na)|0)+ra|0)*24|0)+2|0;if((a[(c[oa+(e[ra>>1]<<2)>>2]|0)+764|0]|0)==0){break c}}if((qa|0)>(E|0)){if((a[sa+764|0]|0)==0){break c}}if((a[j]|0)==0){ra=(ga(ja>>G,C)|0)+(ka>>I)|0;sa=c[W>>2]|0;if((c[sa+(ra<<2)>>2]|0)!=(c[sa+(b<<2)>>2]|0)){break c}}ia=ia+1|0;}while((ia|0)<2)}fa=d[m+(_+Z)|0]|0;ha=fa-(d[m+(da+_+M)|0]|0)|0;if((ha|0)<0){ha=1}else{ha=(ha|0)>0|2}ia=fa-(d[m+(ba+_+N)|0]|0)|0;if((ia|0)<0){ia=-1}else{ia=(ia|0)>0|0}fa=fa+(a[u+(ha+ia)|0]|0)|0;if((fa|0)<0){fa=0}else{fa=((fa|0)>(q|0)?q:fa)&255}a[o+(ea+_)|0]=fa}}while(0);_=_+1|0;}while((_|0)<(k|0))}Y=Y+1|0;if((Y|0)>=(l|0)){r=102;break}}if((r|0)==23){ec(14920,12440,118,17328)}else if((r|0)==26){ec(9408,12440,119,17328)}else if((r|0)==30){ec(14920,12440,118,17328)}else if((r|0)==33){ec(9408,12440,119,17328)}else if((r|0)==39){ec(14920,12440,118,17328)}else if((r|0)==42){ec(9408,12440,119,17328)}else if((r|0)==47){ec(14920,12440,118,17328)}else if((r|0)==49){ec(9408,12440,119,17328)}else if((r|0)==102){i=h;return}}function Cj(a,b){a=a|0;b=b|0;if((b|0)==2){b=c[28640+(a<<2)>>2]|0;return b|0}else if((b|0)==0){b=c[28704+(a<<2)>>2]|0;return b|0}else if((b|0)==1){b=c[28672+(a<<2)>>2]|0;return b|0}else{b=0;return b|0}return 0}function Dj(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;f=(c[27544+(g*24|0)+(h<<2)>>2]|0)+((f<<h)+e<<1)|0;g=b;C=(d[f]|d[f+1|0]<<8)<<16>>16;a[g]=C;C=C>>8;a[g+1|0]=C;return}function Ej(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;b=1;while(1){f=c[28672+(b<<2)>>2]|0;e=1<<b;if((e|0)>0){g=0;h=0;while(1){j=h&255;i=g;k=0;while(1){a[f+(i<<1)|0]=k;a[f+(i<<1)+1|0]=j;k=k+1|0;if((k|0)<(e|0)){i=i+1|0}else{break}}h=h+1|0;if((h|0)<(e|0)){g=g+e|0}else{break}}g=c[28640+(b<<2)>>2]|0;f=0;j=0;while(1){i=j&255;h=f;k=0;while(1){a[g+(h<<1)|0]=i;a[g+(h<<1)+1|0]=k;k=k+1|0;if((k|0)<(e|0)){h=h+1|0}else{break}}j=j+1|0;if((j|0)<(e|0)){f=f+e|0}else{break}}}f=c[28704+(b<<2)>>2]|0;g=e<<b;j=0;i=0;h=0;while(1){if((h|0)<(g|0)){while(1){if((j|0)>-1){break}else{j=i;i=0}}}else{if(!((j|0)>-1)){break}}if((i|0)<(e|0)&(j|0)<(e|0)){a[f+(h<<1)|0]=i;a[f+(h<<1)+1|0]=j;h=h+1|0}j=j-1|0;i=i+1|0}b=b+1|0;if((b|0)>=6){e=2;break}}do{f=1<<e;l=(f|0)>0;k=e-2|0;h=(1<<k<<k)-1|0;g=28704+(k<<2)|0;j=28672+(k<<2)|0;k=28640+(k<<2)|0;i=0;do{if(l){o=27544+(i*24|0)+(e<<2)|0;p=(i|0)==0;m=0;do{n=m<<e;b=c[o>>2]|0;if(p){q=0;do{s=q+n|0;r=c[g>>2]|0;u=16;t=h;while(1){v=(u|0)==0;t=(v<<31>>31)+t|0;u=v?15:u-1|0;if((((d[r+(t<<1)|0]|0)<<2)+(d[43504+(u<<1)|0]|0)|0)!=(q|0)){continue}if((((d[r+(t<<1)+1|0]|0)<<2)+(d[43505+(u<<1)|0]|0)|0)==(m|0)){break}}a[b+(s<<1)|0]=t;a[b+(s<<1)+1|0]=u;q=q+1|0;}while((q|0)<(f|0))}else{q=0;do{r=q+n|0;if((i|0)==1){t=40776;s=c[j>>2]|0}else if((i|0)==2){t=38048;s=c[k>>2]|0}else{t=0;s=0}v=16;u=h;while(1){w=(v|0)==0;u=(w<<31>>31)+u|0;v=w?15:v-1|0;if((((d[s+(u<<1)|0]|0)<<2)+(d[t+(v<<1)|0]|0)|0)!=(q|0)){continue}if((((d[s+(u<<1)+1|0]|0)<<2)+(d[t+(v<<1)+1|0]|0)|0)==(m|0)){break}}a[b+(r<<1)|0]=u;a[b+(r<<1)+1|0]=v;q=q+1|0;}while((q|0)<(f|0))}m=m+1|0;}while((m|0)<(f|0))}i=i+1|0;}while((i|0)<3);e=e+1|0;}while((e|0)<6);return}function Fj(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;f=0;while(1){i=nd(d,8)|0;f=i+f|0;if((i|0)!=255){h=0;break}}do{i=nd(d,8)|0;h=i+h|0;}while((i|0)==255);c[e>>2]=f;c[e+4>>2]=h;if((f|0)!=132){i=0;return i|0}h=nd(d,8)|0;f=e+8|0;c[f>>2]=h;if((g|0)==0){i=1025;return i|0}g=(c[g+476>>2]|0)==0?1:3;i=0;while(1){if((h|0)==2){h=nd(d,32)|0;c[e+68+(i<<2)>>2]=h}else if((h|0)==1){h=(nd(d,16)|0)&65535;b[e+60+(i<<1)>>1]=h}else if((h|0)==0){h=(nd(d,8)|0)&255;a[e+12+(i<<4)|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+1|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+2|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+3|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+4|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+5|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+6|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+7|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+8|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+9|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+10|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+11|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+12|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+13|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+14|0]=h;h=(nd(d,8)|0)&255;a[e+12+(i<<4)+15|0]=h}i=i+1|0;if((i|0)>=(g|0)){d=0;break}h=c[f>>2]|0}return d|0}function Gj(a,b){a=a|0;b=b|0;return}function Hj(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;h=i;i=i+168|0;s=h|0;k=h+152|0;if((c[f>>2]|0)!=132){M=0;i=h;return M|0}if((a[(c[g+10332>>2]|0)+512|0]|0)==0){M=0;i=h;return M|0}l=k|0;if((a[g+100|0]|0)==0){M=0;i=h;return M|0}n=(c[g+1240>>2]|0)==0?1:3;v=g+24|0;m=g+32|0;t=g+28|0;u=g+36|0;w=g+40|0;j=g+44|0;r=f+8|0;o=g+5760|0;p=g+5768|0;x=0;a:while(1){C=(x|0)==0;y=c[(C?v:m)>>2]|0;z=c[(C?t:u)>>2]|0;B=c[g+4+(x<<2)>>2]|0;A=c[(C?w:j)>>2]|0;D=c[r>>2]|0;if((D|0)==0){G=c[(C?o:p)>>2]|0;qi(s);b:do{if((z|0)>0){D=y<<1;F=(y|0)<0?-1:D;E=B;C=(y|0)>0;if((G|0)>8){B=0;G=0}else{if(C){C=0;while(1){ri(s,B+(ga(C,A)|0)|0,y);C=C+1|0;if((C|0)>=(z|0)){B=0;break b}}}else{C=0;while(1){ri(s,B+(ga(C,A)|0)|0,y);C=C+1|0;if((C|0)>=(z|0)){B=0;break b}}}}do{if((B|0)==0){B=Ou(F)|0}if(C){I=ga(G,A)|0;H=0;do{L=E+(H+I<<1)|0;M=H<<1;a[B+M|0]=b[L>>1];a[B+(M|1)|0]=(e[L>>1]|0)>>>8;H=H+1|0;}while((H|0)<(y|0))}ri(s,B,D);G=G+1|0;}while((G|0)<(z|0))}else{B=0}}while(0);ti(l,s);if((B|0)==0){z=0}else{Qu(B);z=0}while(1){y=z+1|0;if((a[k+z|0]|0)!=(a[f+12+(x<<4)+z|0]|0)){j=33;break a}if((y|0)<16){z=y}else{break}}}else if((D|0)==1){do{if((z|0)>0){D=(c[(C?o:p)>>2]|0)>8;G=y<<1;F=(y|0)<0?-1:G;E=B;C=(y|0)>0;I=0;H=0;L=7439;do{do{if(D){if((I|0)==0){I=Ou(F)|0}if(!C){K=I;J=G;break}J=ga(H,A)|0;K=0;while(1){N=E+(K+J<<1)|0;M=K<<1;a[I+M|0]=b[N>>1];a[I+(M|1)|0]=(e[N>>1]|0)>>>8;K=K+1|0;if((K|0)>=(y|0)){K=I;J=G;break}}}else{K=B+(ga(H,A)|0)|0;J=y}}while(0);if((J|0)>0){M=0;do{N=d[K+M|0]^(L&65535)>>>8;N=(N&65535)>>>4^N;L=(N|L<<8)^N<<5^N<<12;M=M+1|0;}while((M|0)<(J|0))}H=H+1|0;}while((H|0)<(z|0));y=L&65535;if((I|0)==0){break}Qu(I)}else{y=7439}}while(0);z=e[f+60+(x<<1)>>1]|0;if((y|0)!=(z|0)){j=49;break}}else if((D|0)==2){D=(z|0)>0;do{if((c[(C?o:p)>>2]|0)<9){if(!D){H=0;break}C=(y|0)>0;D=0;H=0;do{if(C){E=D>>>8^D;F=ga(D,A)|0;G=0;do{H=((E^G^G>>>8)&255^d[B+(G+F)|0])+H|0;G=G+1|0;}while((G|0)<(y|0))}D=D+1|0;}while((D|0)<(z|0))}else{if(!D){H=0;break}C=(y|0)>0;D=0;H=0;do{if(C){E=D>>>8^D;F=ga(D,A)|0;G=0;do{N=(E^G^G>>>8)&255;H=N+H+(N^d[B+(G+F)|0])|0;G=G+1|0;}while((G|0)<(y|0))}D=D+1|0;}while((D|0)<(z|0))}}while(0);y=c[f+68+(x<<2)>>2]|0;if((H|0)!=(y|0)){j=64;break}}x=x+1|0;if((x|0)>=(n|0)){g=0;j=66;break}}if((j|0)==33){ic(c[q>>2]|0,12208,(N=i,i=i+8|0,c[N>>2]=c[g+92>>2],N)|0)|0;i=N;N=5;i=h;return N|0}else if((j|0)==49){M=c[g+92>>2]|0;ic(c[q>>2]|0,11840,(N=i,i=i+24|0,c[N>>2]=z,c[N+8>>2]=y,c[N+16>>2]=M,N)|0)|0;i=N;N=5;i=h;return N|0}else if((j|0)==64){M=c[g+92>>2]|0;ic(c[q>>2]|0,11840,(N=i,i=i+24|0,c[N>>2]=y,c[N+8>>2]=H,c[N+16>>2]=M,N)|0)|0;i=N;N=5;i=h;return N|0}else if((j|0)==66){i=h;return g|0}return 0}function Ij(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=a[g+93784+((c[f+8>>2]|0)*4400|0)+2|0]|0;v=qd(e)|0;j=f+380|0;a[j]=v;if(v>>>0>7>>>0){v=0;return v|0}i=g+11096+(n*5168|0)+476|0;do{if((c[i>>2]|0)==0){k=f+381|0}else{k=rd(e)|0;k=(d[j]|0)+k|0;if(k>>>0>7>>>0){v=0;return v|0}else{v=f+381|0;a[v]=k;k=v;break}}}while(0);l=f+328|0;m=g+11096+(n*5168|0)+5164|0;o=g+11096+(n*5168|0)+5160|0;g=f+20|0;n=f+332|0;p=0;a:while(1){if((p|0)==1){if((c[g>>2]|0)==0){q=n;h=9}else{f=1;h=33;break}}else if((p|0)==0){q=l;h=9}do{if((h|0)==9){h=0;r=c[q>>2]|0;q=r-1|0;r=(r|0)<1;if(!r){s=0;while(1){v=(nd(e,1)|0)&255;a[f+382+(p<<4)+s|0]=v;if((s|0)<(q|0)){s=s+1|0}else{break}}}if((c[i>>2]|0)!=0){if(r){break}else{s=0}while(1){v=(nd(e,1)|0)&255;a[f+414+(p<<4)+s|0]=v;if((s|0)<(q|0)){s=s+1|0}else{break}}}if(r){break}else{r=0}while(1){if((a[f+382+(p<<4)+r|0]|0)==0){b[f+446+(p<<5)+(r<<1)>>1]=1<<d[j];a[f+510+(p<<4)+r|0]=0}else{s=rd(e)|0;if((s+128|0)>>>0>255>>>0){f=0;h=33;break a}b[f+446+(p<<5)+(r<<1)>>1]=(1<<d[j])+s;s=rd(e)|0;v=c[o>>2]|0;if((s|0)<(-v|0)|(s|0)>(v-1|0)){f=0;h=33;break a}a[f+510+(p<<4)+r|0]=s}if((a[f+414+(p<<4)+r|0]|0)==0){v=1<<d[k]&65535;b[f+542+(p<<6)+(r<<2)>>1]=v;a[f+670+(p<<5)+(r<<1)|0]=0;b[f+542+(p<<6)+(r<<2)+2>>1]=v;a[f+670+(p<<5)+(r<<1)+1|0]=0}else{s=0;do{t=rd(e)|0;if((t+128|0)>>>0>255>>>0){f=0;h=33;break a}u=f+542+(p<<6)+(r<<2)+(s<<1)|0;b[u>>1]=(1<<d[k])+t;v=rd(e)|0;t=c[m>>2]|0;if((v|0)<(t*-4|0|0)){f=0;h=33;break a}if((v|0)>((t<<2)-1|0)){f=0;h=33;break a}u=ga(b[u>>1]|0,t)|0;u=t+v-(u>>d[k])|0;v=-t|0;do{if((u|0)<(v|0)){t=v&255}else{t=t-1|0;if((u|0)>(t|0)){t=t&255;break}else{t=u&255;break}}}while(0);a[f+670+(p<<5)+(r<<1)+s|0]=t;s=s+1|0;}while((s|0)<2)}if((r|0)<(q|0)){r=r+1|0}else{break}}}}while(0);p=p+1|0;if((p|0)>=2){f=1;h=33;break}}if((h|0)==33){return f|0}return 0}function Jj(d){d=d|0;var e=0,f=0,g=0;c[d>>2]=0;a[d+4|0]=0;a[d+5|0]=0;c[d+8>>2]=0;a[d+12|0]=0;c[d+28>>2]=0;a[d+32|0]=0;dv(d+16|0,0,10)|0;rj(d+34|0);c[d+136>>2]=0;c[d+140>>2]=0;c[d+144>>2]=0;e=0;do{a[d+148+e|0]=0;c[d+164+(e<<2)>>2]=0;a[d+228+e|0]=0;a[d+244+e|0]=0;c[d+260+(e<<2)>>2]=0;e=e+1|0;}while((e|0)<16);c[d+376>>2]=0;a[d+380|0]=0;a[d+381|0]=0;dv(d+324|0,0,49)|0;e=0;while(1){a[d+382+e|0]=0;a[d+414+e|0]=0;b[d+446+(e<<1)>>1]=0;a[d+510+e|0]=0;b[d+542+(e<<2)+2>>1]=0;b[d+542+(e<<2)>>1]=0;a[d+670+(e<<1)+1|0]=0;a[d+670+(e<<1)|0]=0;e=e+1|0;if((e|0)>=16){e=0;break}}do{a[d+398+e|0]=0;a[d+430+e|0]=0;b[d+478+(e<<1)>>1]=0;a[d+526+e|0]=0;b[d+606+(e<<2)+2>>1]=0;b[d+606+(e<<2)>>1]=0;a[d+702+(e<<1)+1|0]=0;a[d+702+(e<<1)|0]=0;e=e+1|0;}while((e|0)<16);c[d+756>>2]=0;c[d+760>>2]=0;a[d+764|0]=0;c[d+768>>2]=0;c[d+772>>2]=0;dv(d+736|0,0,19)|0;e=c[d+776>>2]|0;f=d+780|0;g=c[f>>2]|0;if((g|0)!=(e|0)){c[f>>2]=g+(~((g-4+(-e|0)|0)>>>2)<<2)}dv(d+788|0,0,24)|0;rj(d+812|0);c[d+912>>2]=0;e=0;while(1){c[d+916+(e<<2)>>2]=0;c[d+1044+(e<<2)>>2]=0;c[d+1172+(e<<2)>>2]=0;a[d+1300+e|0]=0;e=e+1|0;if((e|0)>=16){e=0;break}}do{c[d+980+(e<<2)>>2]=0;c[d+1108+(e<<2)>>2]=0;c[d+1236+(e<<2)>>2]=0;a[d+1316+e|0]=0;e=e+1|0;}while((e|0)<16);f=c[d+1344>>2]|0;e=d+1348|0;g=c[e>>2]|0;if((g|0)==(f|0)){g=d+1340|0;a[g]=0;return}c[e>>2]=g+(~((g-4+(-f|0)|0)>>>2)<<2);g=d+1340|0;a[g]=0;return}function Kj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;a[g]=0;Jj(b);l=b+12|0;a[l]=0;t=(nd(e,1)|0)&255;k=b+4|0;a[k]=t;if((a[f+377210|0]|0)!=0){t=(nd(e,1)|0)&255;a[b+5|0]=t}h=qd(e)|0;c[b+8>>2]=h;if((h|0)>64|(h|0)==-99999){Ue(f+4|0,1009,0);t=0;return t|0}if((a[f+93784+(h*4400|0)|0]|0)==0){Ue(f+4|0,1009,0);t=0;return t|0}i=a[f+93784+(h*4400|0)+2|0]|0;n=f+11096+(i*5168|0)|0;if((a[n|0]|0)==0){Ue(f+4|0,1010,0);a[g]=0;t=0;return t|0}if((a[k]|0)==0){if((a[f+93784+(h*4400|0)+3|0]|0)==0){m=0}else{m=(nd(e,1)|0)&255}a[l]=m;m=c[f+11096+(i*5168|0)+5072>>2]|0;o=0;while(1){if((1<<o|0)<(m|0)){o=o+1|0}else{break}}m=nd(e,o)|0;if((a[l]|0)==0){l=0}else{if((m|0)==0){a[g]=0;Ue(f+4|0,1021,0);t=0;return t|0}o=c[f+376224>>2]|0;if((o|0)==0){t=16;return t|0}cv(b|0,o|0,776)|0;p=(o|0)==(b|0);if(!p){tf(b+776|0,c[o+776>>2]|0,c[o+780>>2]|0)}cv(b+788|0,o+788|0,544)|0;Jd(b+1332|0,o+1332|0)|0;a[b+1340|0]=a[o+1340|0]|0;if(!p){tf(b+1344|0,c[o+1344>>2]|0,c[o+1348>>2]|0)}a[k]=0;a[l]=1;l=1}c[b+16>>2]=m;if((m|0)>=0){j=25}}else{a[l]=0;c[b+16>>2]=0;l=0;m=0;j=25}do{if((j|0)==25){k=b+16|0;if((m|0)>=(c[f+11096+(i*5168|0)+5072>>2]|0)){break}a:do{if(l<<24>>24==0){m=f+93784+(h*4400|0)+4132|0;if((a[m]|0)>0){l=0;do{od(e,1);l=l+1|0;}while((l|0)<(a[m]|0))}t=qd(e)|0;l=b+20|0;c[l>>2]=t;if((t|0)>2|(t|0)==-99999){Ue(f+4|0,1007,0);a[g]=0;t=0;return t|0}if((a[f+93784+(h*4400|0)+31|0]|0)==0){a[b+24|0]=1}else{t=(nd(e,1)|0)&255;a[b+24|0]=t}if((a[f+11096+(i*5168|0)+480|0]|0)==1){t=(nd(e,2)|0)&255;a[b+25|0]=t}o=b+28|0;c[o>>2]=0;p=b+32|0;a[p]=0;do{if(((a[f+377208|0]|0)-19&255)>>>0<2>>>0){c[o>>2]=0;c[b+140>>2]=0;c[b+144>>2]=0;r=0}else{m=f+11096+(i*5168|0)+520|0;t=nd(e,c[m>>2]|0)|0;c[o>>2]=t;t=(nd(e,1)|0)&255;a[p]=t;do{if(t<<24>>24==0){p=b+34|0;q=f+11096+(i*5168|0)+4724|0;o=f+11096+(i*5168|0)+4720|0;sj((f|0)==0?0:f+4|0,n,e,p,((c[q>>2]|0)-(c[o>>2]|0)|0)/100|0,f+11096+(i*5168|0)+4720|0,1)|0;c[b+808>>2]=((c[q>>2]|0)-(c[o>>2]|0)|0)/100|0;cv(b+812|0,p|0,100)|0}else{r=f+11096+(i*5168|0)+4724|0;q=c[r>>2]|0;o=f+11096+(i*5168|0)+4720|0;n=c[o>>2]|0;p=(q-n|0)/100|0;s=0;while(1){if((1<<s|0)<(p|0)){s=s+1|0}else{break}}if((s|0)>0){p=nd(e,s)|0;c[b+136>>2]=p;q=c[r>>2]|0;n=c[o>>2]|0}else{c[b+136>>2]=0;p=0}if((p|0)<((q-n|0)/100|0|0)){c[b+808>>2]=p;cv(b+812|0,n+(p*100|0)|0,100)|0;break}Ue(f+4|0,1015,0);t=8;return t|0}}while(0);b:do{if((a[f+11096+(i*5168|0)+4732|0]|0)==0){c[b+140>>2]=0;c[b+144>>2]=0;r=0}else{n=f+11096+(i*5168|0)+4736|0;do{if((c[n>>2]|0)>0){t=qd(e)|0;c[b+140>>2]=t;if((t|0)==-99999){b=8}else{break}return b|0}else{c[b+140>>2]=0}}while(0);q=qd(e)|0;p=b+144|0;c[p>>2]=q;if((q|0)==-99999){t=8;return t|0}o=b+140|0;s=c[o>>2]|0;q=s+q|0;if((q+(d[b+908|0]|0)+(d[b+909|0]|0)|0)>(c[f+11096+(i*5168|0)+528+((a[f+11096+(i*5168|0)+2|0]|0)-1<<2)>>2]|0)){Ue(f+4|0,1018,0);a[g]=0;t=0;return t|0}if((q|0)>0){q=0;r=0}else{r=0;break}while(1){if((q|0)<(s|0)){t=c[n>>2]|0;s=0;while(1){if((1<<s|0)<(t|0)){s=s+1|0}else{break}}t=nd(e,s)|0;s=b+148+q|0;a[s]=t;t=t&255;if((t|0)>=(c[n>>2]|0)){break}c[f+376228+(q<<2)>>2]=c[f+11096+(i*5168|0)+4740+(t<<2)>>2];s=a[(d[s]|0)+(f+11096+(i*5168|0)+4868)|0]|0;c[f+376292+(q<<2)>>2]=s}else{u=nd(e,c[m>>2]|0)|0;t=b+164+(q<<2)|0;c[t>>2]=u;u=(nd(e,1)|0)&255;s=b+228+q|0;a[s]=u;c[f+376228+(q<<2)>>2]=c[t>>2];s=a[s]|0;c[f+376292+(q<<2)>>2]=s}r=((s|0)!=0)+r|0;u=(nd(e,1)|0)&255;a[b+244+q|0]=u;if(u<<24>>24==0){c[b+260+(q<<2)>>2]=0;s=0}else{s=qd(e)|0;c[b+260+(q<<2)>>2]=s;if((s|0)==-99999){b=8;j=194;break}}do{if((q|0)==0){j=68}else{if((q|0)==(c[o>>2]|0)){j=68;break}c[f+376356+(q<<2)>>2]=(c[f+376356+(q-1<<2)>>2]|0)+s}}while(0);if((j|0)==68){j=0;c[f+376356+(q<<2)>>2]=s}q=q+1|0;s=c[o>>2]|0;if((q|0)>=((c[p>>2]|0)+s|0)){break b}}if((j|0)==194){return b|0}Ue(f+4|0,1023,0);a[g]=0;u=0;return u|0}}while(0);if((a[f+11096+(i*5168|0)+4900|0]|0)==0){a[b+324|0]=0;break}else{u=(nd(e,1)|0)&255;a[b+324|0]=u;break}}}while(0);do{if((a[f+11096+(i*5168|0)+4703|0]|0)==0){a[b+325|0]=0;a[b+326|0]=0}else{u=(nd(e,1)|0)&255;a[b+325|0]=u;if((c[f+11096+(i*5168|0)+5012>>2]|0)==0){a[b+326|0]=0;break}else{u=(nd(e,1)|0)&255;a[b+326|0]=u;break}}}while(0);m=b+328|0;c[m>>2]=0;n=b+332|0;c[n>>2]=0;do{if((c[l>>2]|0)>>>0<2>>>0){u=(nd(e,1)|0)&255;a[b+327|0]=u;do{if(u<<24>>24==0){o=a[f+93784+(h*4400|0)+6|0]|0;c[m>>2]=o;p=a[f+93784+(h*4400|0)+7|0]|0;j=90}else{o=qd(e)|0;c[m>>2]=o;if((o|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}o=o+1|0;c[m>>2]=o;if((c[l>>2]|0)!=0){break}j=qd(e)|0;c[n>>2]=j;if(!((j|0)==-99999)){p=j+1|0;o=c[m>>2]|0;j=90;break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);if((j|0)==90){c[n>>2]=p}if((o|0)>16){u=8;return u|0}if((c[n>>2]|0)>16){u=8;return u|0}o=(d[b+911|0]|0)+r|0;c[b+912>>2]=o;do{if((a[f+93784+(h*4400|0)+4125|0]|0)!=0&(o|0)>1){j=0;while(1){if((1<<j|0)<(o|0)){j=j+1|0}else{break}}u=(nd(e,1)|0)&255;a[b+336|0]=u;do{if(!(u<<24>>24==0)){if((c[m>>2]|0)>0){o=0}else{break}do{u=(nd(e,j)|0)&255;a[b+338+o|0]=u;o=o+1|0;}while((o|0)<(c[m>>2]|0))}}while(0);if((c[l>>2]|0)!=0){a[b+337|0]=0;break}u=(nd(e,1)|0)&255;a[b+337|0]=u;if(u<<24>>24==0){break}if((c[n>>2]|0)>0){o=0}else{break}do{u=(nd(e,j)|0)&255;a[b+354+o|0]=u;o=o+1|0;}while((o|0)<(c[n>>2]|0))}else{a[b+336|0]=0;a[b+337|0]=0}}while(0);if((c[l>>2]|0)==0){u=(nd(e,1)|0)&255;a[b+370|0]=u}if((a[f+93784+(h*4400|0)+5|0]|0)==0){a[b+371|0]=0}else{u=(nd(e,1)|0)&255;a[b+371|0]=u}do{if((a[b+324|0]|0)!=0){do{if((c[l>>2]|0)==0){o=(nd(e,1)|0)&255;a[b+372|0]=o;p=b+372|0;if(!(o<<24>>24==0)){j=113;break}if((c[n>>2]|0)>1){j=115}else{p=0;j=118}}else{a[b+372|0]=1;o=1;p=b+372|0;j=113}}while(0);if((j|0)==113){if((c[m>>2]|0)>1){j=115}else{p=o;j=118}}do{if((j|0)==115){o=qd(e)|0;c[b+376>>2]=o;if(!((o|0)==-99999)){p=a[p]|0;break}Ue(f+4|0,1007,0);u=8;return u|0}else if((j|0)==118){c[b+376>>2]=0;o=0}}while(0);if(p<<24>>24==0){if((o|0)<(c[n>>2]|0)){break}}else{if((o|0)<(c[m>>2]|0)){break}}Ue(f+4|0,8,0);u=8;return u|0}}while(0);if((a[f+93784+(h*4400|0)+29|0]|0)==0){j=125}else{if((c[l>>2]|0)==1){j=127}else{j=125}}do{if((j|0)==125){if((a[f+93784+(h*4400|0)+30|0]|0)==0){break}if((c[l>>2]|0)==0){j=127}}}while(0);do{if((j|0)==127){if(Ij(e,b,f)|0){break}Ue(f+4|0,8,0);u=8;return u|0}}while(0);l=qd(e)|0;c[b+736>>2]=l;if(!((l|0)==-99999)){c[b+804>>2]=5-l;break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);u=rd(e)|0;c[b+740>>2]=u;if((u|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}do{if((a[f+93784+(h*4400|0)+28|0]|0)==0){c[b+744>>2]=0;c[b+748>>2]=0}else{u=rd(e)|0;c[b+744>>2]=u;if((u|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}u=rd(e)|0;c[b+748>>2]=u;if(!((u|0)==-99999)){break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);if((a[f+93784+(h*4400|0)+4140|0]|0)!=0){u=(nd(e,1)|0)&255;a[b+752|0]=u}if((a[f+93784+(h*4400|0)+48|0]|0)==0){a[b+753|0]=0;n=1}else{n=(nd(e,1)|0)&255;a[b+753|0]=n;n=n<<24>>24==0}m=b+756|0;c[m>>2]=c[f+93784+(h*4400|0)+52>>2];l=b+760|0;c[l>>2]=c[f+93784+(h*4400|0)+56>>2];do{if(n){a[b+754|0]=a[f+93784+(h*4400|0)+49|0]|0}else{u=(nd(e,1)|0)&255;a[b+754|0]=u;if(!(u<<24>>24==0)){break}n=rd(e)|0;c[m>>2]=n;if((n|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}c[m>>2]=n<<1;m=rd(e)|0;c[l>>2]=m;if(!((m|0)==-99999)){c[l>>2]=m<<1;break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);l=a[f+93784+(h*4400|0)+46|0]|0;c:do{if(!(l<<24>>24==0)){do{if((a[b+325|0]|0)==0){if((a[b+326|0]|0)!=0){break}if((a[b+754|0]|0)!=0){break c}}}while(0);u=(nd(e,1)|0)&255;a[b+764|0]=u;break a}}while(0);a[b+764|0]=l}}while(0);m=f+93784+(h*4400|0)+34|0;do{if((a[m]|0)==0){if((a[f+93784+(h*4400|0)+33|0]|0)!=0){j=161;break}c[b+768>>2]=0}else{j=161}}while(0);d:do{if((j|0)==161){l=qd(e)|0;j=b+768|0;c[j>>2]=l;if((l|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}do{if((a[f+93784+(h*4400|0)+33|0]|0)!=0){if((((c[k>>2]|0)/(c[f+11096+(i*5168|0)+5056>>2]|0)|0)+l|0)<(c[f+11096+(i*5168|0)+5064>>2]|0)){break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);do{if((a[m]|0)!=0){if((l|0)<=(ga(c[f+93784+(h*4400|0)+40>>2]|0,c[f+93784+(h*4400|0)+36>>2]|0)|0)){break}Ue(f+4|0,1007,0);u=8;return u|0}}while(0);o=b+776|0;m=b+780|0;k=c[m>>2]|0;i=o|0;n=c[i>>2]|0;p=k-n>>2;do{if(p>>>0<l>>>0){qj(o,l-p|0);l=c[j>>2]|0}else{if(!(p>>>0>l>>>0)){break}n=n+(l<<2)|0;if((k|0)==(n|0)){break}c[m>>2]=k+(~((k-4+(-n|0)|0)>>>2)<<2)}}while(0);if((l|0)<=0){break}l=qd(e)|0;k=b+772|0;c[k>>2]=l;if((l|0)==-99999){Ue(f+4|0,1007,0);u=8;return u|0}m=l+1|0;c[k>>2]=m;if((l|0)>31){u=8;return u|0}if((c[j>>2]|0)>0){l=0}else{break}while(1){o=(nd(e,m)|0)+1|0;n=c[i>>2]|0;m=n+(l<<2)|0;c[m>>2]=o;if((l|0)>0){c[m>>2]=o+(c[n+(l-1<<2)>>2]|0)}l=l+1|0;if((l|0)>=(c[j>>2]|0)){break d}m=c[k>>2]|0}}}while(0);do{if((a[f+93784+(h*4400|0)+4133|0]|0)!=0){j=qd(e)|0;i=b+788|0;c[i>>2]=j;if((j|0)==-99999|(j|0)>1e3){Ue(f+4|0,1007,0);u=8;return u|0}else{if((j|0)>0){j=0}else{break}do{nd(e,8)|0;j=j+1|0;}while((j|0)<(c[i>>2]|0))}}}while(0);c[b+792>>2]=(c[b+740>>2]|0)+(c[f+93784+(h*4400|0)+8>>2]|0);f=c[b+20>>2]|0;if((f|0)==2){c[b+796>>2]=0}else if((f|0)==1){c[b+796>>2]=(a[b+371|0]|0)+1}else if((f|0)==0){c[b+796>>2]=2-(a[b+371|0]|0)}c[b+804>>2]=5-(c[b+736>>2]|0);a[g]=1;u=0;return u|0}}while(0);Ue(f+4|0,1020,0);u=8;return u|0}function Lj(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,r=0,s=0,u=0;h=i;if((g|0)==2){g=q}else if((g|0)==1){g=t}else{i=h;return}g=c[g>>2]|0;k=e+8|0;j=c[k>>2]|0;if((a[f+93784+(j*4400|0)|0]|0)==0){ec(12424,14776,1278,17264)}l=a[f+93784+(j*4400|0)+2|0]|0;if((a[f+11096+(l*5168|0)|0]|0)==0){ec(12192,14776,1281,17264)}Zk(g,11792,(n=i,i=i+1|0,i=i+7&-8,c[n>>2]=0,n)|0);i=n;n=e+4|0;Zk(g,11512,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;m=f+377208|0;if(((a[m]|0)-16&255)>>>0<8>>>0){Zk(g,11232,(r=i,i=i+8|0,c[r>>2]=a[e+5|0]|0,r)|0);i=r}Zk(g,10984,(r=i,i=i+8|0,c[r>>2]=c[k>>2],r)|0);i=r;if((a[n]|0)==0){Zk(g,10720,(r=i,i=i+8|0,c[r>>2]=a[e+12|0]|0,r)|0);i=r;Zk(g,10472,(r=i,i=i+8|0,c[r>>2]=c[e+16>>2],r)|0);i=r}k=e+20|0;n=c[k>>2]|0;if((n|0)==0){n=66}else{n=(n|0)==1?80:73}Zk(g,10144,(r=i,i=i+8|0,c[r>>2]=n,r)|0);i=r;if((a[f+93784+(j*4400|0)+31|0]|0)!=0){Zk(g,9808,(r=i,i=i+8|0,c[r>>2]=a[e+24|0]|0,r)|0);i=r}if((a[f+11096+(l*5168|0)+480|0]|0)==1){Zk(g,9360,(r=i,i=i+8|0,c[r>>2]=a[e+25|0]|0,r)|0);i=r}Zk(g,9064,(r=i,i=i+8|0,c[r>>2]=c[e+28>>2],r)|0);i=r;do{if(!(((a[m]|0)-19&255)>>>0<2>>>0)){r=e+32|0;Zk(g,8752,(n=i,i=i+8|0,c[n>>2]=a[r]|0,n)|0);i=n;n=f+11096+(l*5168|0)+4720|0;m=(c[f+11096+(l*5168|0)+4724>>2]|0)-(c[n>>2]|0)|0;do{if((a[r]|0)==0){Zk(g,8440,(r=i,i=i+8|0,c[r>>2]=(m|0)/100|0,r)|0);i=r;tj(e+34|0,16,g)}else{if((m|0)<=100){break}r=e+136|0;Zk(g,8232,(p=i,i=i+8|0,c[p>>2]=c[r>>2],p)|0);i=p;tj((c[n>>2]|0)+((c[r>>2]|0)*100|0)|0,16,g)}}while(0);if((a[f+11096+(l*5168|0)+4732|0]|0)!=0){if((c[f+11096+(l*5168|0)+4736>>2]|0)>0){Zk(g,7960,(r=i,i=i+8|0,c[r>>2]=c[e+140>>2],r)|0);i=r}Zk(g,7680,(r=i,i=i+8|0,c[r>>2]=c[e+144>>2],r)|0);i=r}if((a[f+11096+(l*5168|0)+4900|0]|0)==0){break}Zk(g,7392,(r=i,i=i+8|0,c[r>>2]=a[e+324|0]|0,r)|0);i=r}}while(0);if((a[f+11096+(l*5168|0)+4703|0]|0)!=0){Zk(g,7088,(r=i,i=i+8|0,c[r>>2]=a[e+325|0]|0,r)|0);i=r;Zk(g,6808,(r=i,i=i+8|0,c[r>>2]=a[e+326|0]|0,r)|0);i=r}if((c[k>>2]|0)>>>0<2>>>0){n=e+327|0;Zk(g,6528,(m=i,i=i+8|0,c[m>>2]=a[n]|0,m)|0);i=m;m=e+328|0;p=(a[n]|0)!=0?31320:6040;Zk(g,6376,(r=i,i=i+16|0,c[r>>2]=c[m>>2],c[r+8>>2]=p,r)|0);i=r;if((c[k>>2]|0)==0){p=(a[n]|0)!=0?31320:6040;Zk(g,5856,(r=i,i=i+16|0,c[r>>2]=c[e+332>>2],c[r+8>>2]=p,r)|0);i=r}do{if((a[f+93784+(j*4400|0)+4125|0]|0)!=0){if((c[e+912>>2]|0)<=1){break}r=e+336|0;Zk(g,5712,(p=i,i=i+8|0,c[p>>2]=a[r]|0,p)|0);i=p;do{if((a[r]|0)!=0){if((c[m>>2]|0)>0){n=0}else{break}do{p=d[e+338+n|0]|0;Zk(g,5552,(r=i,i=i+16|0,c[r>>2]=n,c[r+8>>2]=p,r)|0);i=r;n=n+1|0;}while((n|0)<(c[m>>2]|0))}}while(0);r=e+337|0;Zk(g,5392,(p=i,i=i+8|0,c[p>>2]=a[r]|0,p)|0);i=p;if((a[r]|0)==0){break}o=e+332|0;if((c[o>>2]|0)>0){n=0}else{break}do{p=d[e+354+n|0]|0;Zk(g,5552,(r=i,i=i+16|0,c[r>>2]=n,c[r+8>>2]=p,r)|0);i=r;n=n+1|0;}while((n|0)<(c[o>>2]|0))}}while(0);if((c[k>>2]|0)==0){Zk(g,5224,(r=i,i=i+8|0,c[r>>2]=a[e+370|0]|0,r)|0);i=r}Zk(g,5008,(r=i,i=i+8|0,c[r>>2]=a[e+371|0]|0,r)|0);i=r;if((a[e+324|0]|0)!=0){Zk(g,4832,(r=i,i=i+8|0,c[r>>2]=a[e+372|0]|0,r)|0);i=r;Zk(g,4712,(r=i,i=i+8|0,c[r>>2]=c[e+376>>2],r)|0);i=r}if((a[f+93784+(j*4400|0)+29|0]|0)==0){n=47}else{if((c[k>>2]|0)==1){n=49}else{n=47}}do{if((n|0)==47){if((a[f+93784+(j*4400|0)+30|0]|0)==0){break}if((c[k>>2]|0)==0){n=49}}}while(0);a:do{if((n|0)==49){Zk(g,4480,(r=i,i=i+8|0,c[r>>2]=d[e+380|0]|0,r)|0);i=r;if((c[f+11096+(l*5168|0)+476>>2]|0)!=0){Zk(g,4248,(r=i,i=i+8|0,c[r>>2]=d[e+381|0]|0,r)|0);i=r}l=e+332|0;o=0;do{if((o|0)==1){if((c[k>>2]|0)==0){p=l;n=54}else{break a}}else if((o|0)==0){p=m;n=54}do{if((n|0)==54){n=0;r=c[p>>2]|0;p=r-1|0;if((r|0)<1){break}else{r=0}while(1){s=b[e+446+(o<<5)+(r<<1)>>1]|0;Zk(g,4096,(u=i,i=i+24|0,c[u>>2]=o,c[u+8>>2]=r,c[u+16>>2]=s,u)|0);i=u;u=a[e+510+(o<<4)+r|0]|0;Zk(g,4008,(s=i,i=i+24|0,c[s>>2]=o,c[s+8>>2]=r,c[s+16>>2]=u,s)|0);i=s;s=b[e+542+(o<<6)+(r<<2)>>1]|0;Zk(g,3944,(u=i,i=i+32|0,c[u>>2]=o,c[u+8>>2]=r,c[u+16>>2]=0,c[u+24>>2]=s,u)|0);i=u;u=a[e+670+(o<<5)+(r<<1)|0]|0;Zk(g,3880,(s=i,i=i+32|0,c[s>>2]=o,c[s+8>>2]=r,c[s+16>>2]=0,c[s+24>>2]=u,s)|0);i=s;s=b[e+542+(o<<6)+(r<<2)+2>>1]|0;Zk(g,3944,(u=i,i=i+32|0,c[u>>2]=o,c[u+8>>2]=r,c[u+16>>2]=1,c[u+24>>2]=s,u)|0);i=u;u=a[e+670+(o<<5)+(r<<1)+1|0]|0;Zk(g,3880,(s=i,i=i+32|0,c[s>>2]=o,c[s+8>>2]=r,c[s+16>>2]=1,c[s+24>>2]=u,s)|0);i=s;if((r|0)<(p|0)){r=r+1|0}else{break}}}}while(0);o=o+1|0;}while((o|0)<2)}}while(0);Zk(g,3792,(u=i,i=i+8|0,c[u>>2]=c[e+736>>2],u)|0);i=u}Zk(g,3624,(u=i,i=i+8|0,c[u>>2]=c[e+740>>2],u)|0);i=u;if((a[f+93784+(j*4400|0)+28|0]|0)!=0){Zk(g,3464,(u=i,i=i+8|0,c[u>>2]=c[e+744>>2],u)|0);i=u;Zk(g,3360,(u=i,i=i+8|0,c[u>>2]=c[e+748>>2],u)|0);i=u}k=e+753|0;if((a[f+93784+(j*4400|0)+48|0]|0)!=0){Zk(g,3144,(u=i,i=i+8|0,c[u>>2]=a[k]|0,u)|0);i=u}l=e+754|0;s=((a[k]|0)!=0?2896:2816)|0;Zk(g,3088,(u=i,i=i+16|0,c[u>>2]=a[l]|0,c[u+8>>2]=s,u)|0);i=u;do{if((a[k]|0)!=0){if((a[l]|0)!=0){break}Zk(g,2696,(u=i,i=i+8|0,c[u>>2]=c[e+756>>2],u)|0);i=u;Zk(g,2600,(u=i,i=i+8|0,c[u>>2]=c[e+760>>2],u)|0);i=u}}while(0);b:do{if((a[f+93784+(j*4400|0)+46|0]|0)!=0){do{if((a[e+325|0]|0)==0){if((a[e+326|0]|0)!=0){break}if((a[l]|0)!=0){break b}}}while(0);Zk(g,2480,(u=i,i=i+8|0,c[u>>2]=a[e+764|0]|0,u)|0);i=u}}while(0);do{if((a[f+93784+(j*4400|0)+34|0]|0)==0){if((a[f+93784+(j*4400|0)+33|0]|0)!=0){break}i=h;return}}while(0);f=e+768|0;Zk(g,2320,(u=i,i=i+8|0,c[u>>2]=c[f>>2],u)|0);i=u;if((c[f>>2]|0)<=0){i=h;return}Zk(g,2136,(u=i,i=i+8|0,c[u>>2]=c[e+772>>2],u)|0);i=u;if((c[f>>2]|0)<=0){i=h;return}e=e+776|0;j=0;do{s=c[(c[e>>2]|0)+(j<<2)>>2]|0;Zk(g,2048,(u=i,i=i+16|0,c[u>>2]=j,c[u+8>>2]=s,u)|0);i=u;j=j+1|0;}while((j|0)<(c[f>>2]|0));i=h;return}function Mj(){var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;b=Gu(11296)|0;if((b|0)==0){y=0;return y|0}dv(b|0,-1|0,11296)|0;c[7766]=b;c[7767]=b;c[7768]=b;c[7769]=b;c[7770]=b;c[7771]=b;c[7772]=b;c[7773]=b;e=b+16|0;c[7774]=e;c[7775]=e;c[7776]=e;c[7777]=e;c[7778]=e;c[7779]=e;c[7780]=e;c[7781]=e;e=b+1056|0;c[7782]=b+32;c[7783]=b+96;c[7784]=b+160;c[7785]=b+224;c[7786]=b+288;c[7787]=b+352;c[7788]=b+416;c[7789]=b+480;c[7790]=b+544;c[7791]=b+608;c[7792]=b+672;c[7793]=b+736;c[7794]=b+800;c[7795]=b+864;c[7796]=b+928;c[7797]=b+992;c[7798]=e;c[7802]=e;e=b+1312|0;c[7799]=e;c[7803]=e;e=b+1568|0;c[7800]=e;c[7804]=e;e=b+1824|0;c[7801]=e;c[7805]=e;e=b+2080|0;c[7806]=e;c[7810]=e;e=b+2336|0;c[7807]=e;c[7811]=e;e=b+2592|0;c[7808]=e;c[7812]=e;e=b+2848|0;c[7809]=e;c[7813]=e;e=b+3104|0;c[7814]=e;c[7818]=e;e=b+4128|0;c[7815]=e;c[7819]=e;e=b+5152|0;c[7816]=e;c[7820]=e;e=b+6176|0;c[7817]=e;c[7821]=e;e=b+7200|0;c[7822]=e;c[7826]=e;e=b+8224|0;c[7823]=e;c[7827]=e;e=b+9248|0;c[7824]=e;c[7828]=e;e=b+10272|0;c[7825]=e;c[7829]=e;e=2;a:while(1){q=1<<e;i=(q|0)>0;k=q>>2;f=(k|0)==1;g=e-2|0;k=(k|0)==2;h=0;do{j=(h|0)==0;b=0;do{m=(b|0)==0?9:15;l=0;do{if(i){n=31064+(g<<6)+(h<<5)+(b<<4)+(l<<2)|0;o=0;do{w=o<<2;p=o<<e;r=-o|0;s=o>>2;t=o&3;v=(t|0)==0;u=(t|0)==1|0;if(f){r=0;do{s=d[27272+(r+w)|0]|0;s=j?s:s+27|0;t=(c[n>>2]|0)+(r+p)|0;y=a[t]|0;if(!(y<<24>>24==-1|(y&255|0)==(s|0))){e=26;break a}a[t]=s;r=r+1|0;}while((r|0)<(q|0))}else{w=0;do{do{if((w|0)==(r|0)){x=0}else{x=w>>2;y=w&3;do{if((l|0)==0){y=y+t|0;if((y|0)>2){y=0;break}y=(y|0)>0?1:2}else if((l|0)==1){y=v?2:u}else if((l|0)==2){if((y|0)==0){y=2;break}y=(y|0)==1|0}else{y=2}}while(0);if(j){x=(x+s|0)>0?y+3|0:y;if(k){x=x+m|0;break}else{x=x+21|0;break}}else{if(k){x=y+9|0;break}else{x=y|12;break}}}}while(0);y=j?x:x+27|0;x=(c[n>>2]|0)+(w+p)|0;z=a[x]|0;if(!(z<<24>>24==-1|(z&255|0)==(y|0))){e=26;break a}a[x]=y;w=w+1|0;}while((w|0)<(q|0))}o=o+1|0;}while((o|0)<(q|0))}l=l+1|0;}while((l|0)<4);b=b+1|0;}while((b|0)<2);h=h+1|0;}while((h|0)<2);e=e+1|0;if((e|0)>=6){b=1;e=33;break}}if((e|0)==26){ec(1728,14776,2100,18008);return 0}else if((e|0)==33){return b|0}return 0}function Nj(){Hu(c[7766]|0);c[7766]=0;return}function Oj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;k=i;i=i+24|0;j=k|0;w=c[b+18600>>2]|0;g=c[b+18596>>2]|0;l=j|0;dv(l|0,0,17)|0;do{if((e|0)>0){n=ga(c[g+5820>>2]|0,f)|0;m=c[g+10308>>2]|0;if((c[b>>2]|0)<=(c[w+800>>2]|0)){m=1;break}if((c[m+(n+e<<2)>>2]|0)!=(c[m+(e-1+n<<2)>>2]|0)){m=1;break}m=((ud(b+18556|0,c[b+18580>>2]|0)|0)&255)<<24>>24==0}else{m=1}}while(0);do{if((f|0)>0&m){o=c[g+5820>>2]|0;n=c[g+10308>>2]|0;if(((c[b>>2]|0)-o|0)<(c[w+800>>2]|0)){n=0;break}I=n+((ga(o,f)|0)+e<<2)|0;J=n+((ga(o,f-1|0)|0)+e<<2)|0;if((c[I>>2]|0)!=(c[J>>2]|0)){n=0;break}n=((ud(b+18556|0,c[b+18580>>2]|0)|0)&255)<<24>>24!=0}else{n=0}}while(0);if(m&(n^1)){p=(c[g+5776>>2]|0)==0?1:3;q=w+325|0;o=b+18556|0;r=b+18580|0;s=g+5760|0;b=g+5768|0;v=g+10087|0;u=g+10088|0;t=j+1|0;y=w+326|0;x=0;do{w=(x|0)==0;if((a[q]|0)!=0&w){h=13}else{if((a[y]|0)!=0&(x|0)>0){h=13}}do{if((h|0)==13){h=0;do{if(w){if((ud(o,(c[r>>2]|0)+1|0)|0)==0){F=0}else{J=(wd(o)|0)==0;F=J?1:2}a[l]=F}else{if((x|0)!=1){F=(d[l]|0)>>>(x<<1>>>0)&3;break}if((ud(o,(c[r>>2]|0)+1|0)|0)==0){z=0}else{J=(wd(o)|0)==0;z=J?1:2}a[l]=z<<4|z<<2|d[l];F=z&255}}while(0);if(F<<24>>24==0){break}C=w?s:b;z=c[C>>2]|0;G=(xd(o,(z|0)<10?(1<<z-5)-1|0:31)|0)&255;z=j+5+(x<<2)|0;a[z]=G;A=c[C>>2]|0;H=(xd(o,(A|0)<10?(1<<A-5)-1|0:31)|0)&255;A=j+5+(x<<2)+1|0;a[A]=H;B=c[C>>2]|0;E=(xd(o,(B|0)<10?(1<<B-5)-1|0:31)|0)&255;B=j+5+(x<<2)+2|0;a[B]=E;C=c[C>>2]|0;D=(xd(o,(C|0)<10?(1<<C-5)-1|0:31)|0)&255;C=j+5+(x<<2)+3|0;a[C]=D;do{if(F<<24>>24==1){if(G<<24>>24==0){F=0}else{J=(wd(o)|0)!=0;F=J?-1:1}if(H<<24>>24==0){G=0}else{J=(wd(o)|0)!=0;G=J?-1:1}if(E<<24>>24==0){I=0}else{J=(wd(o)|0)!=0;I=J?-1:1}if(D<<24>>24==0){D=0}else{J=(wd(o)|0)!=0;D=J?-1:1}H=(yd(o,5)|0)&255;a[j+2+x|0]=H;H=a[A]|0;E=a[B]|0;J=D;D=a[C]|0}else{if(w){F=(yd(o,2)|0)&255;a[t]=F;F=1;G=1;I=-1;J=-1;break}if((x|0)!=1){F=1;G=1;I=-1;J=-1;break}F=(yd(o,2)|0)&255;a[t]=d[t]|F<<2|F<<4;F=1;G=1;I=-1;J=-1}}while(0);w=d[w?v:u]|0;F=(ga(a[z]<<w,F)|0)&255;a[z]=F;H=(ga(H<<24>>24<<w,G)|0)&255;a[A]=H;I=(ga(E<<24>>24<<w,I)|0)&255;a[B]=I;J=(ga(D<<24>>24<<w,J)|0)&255;a[C]=J}}while(0);x=x+1|0;}while((x|0)<(p|0));J=(ga(c[g+10352>>2]|0,f)|0)+e|0;cv((c[g+10340>>2]|0)+(J*24|0)+4|0,l|0,17)|0}if(!m){J=ga(c[g+10352>>2]|0,f)|0;I=c[g+10340>>2]|0;cv(I+((J+e|0)*24|0)+4|0,I+((e-1+J|0)*24|0)+4|0,17)|0}if(!n){i=k;return}H=c[g+10352>>2]|0;J=(ga(H,f-1|0)|0)+e|0;I=c[g+10340>>2]|0;cv(I+(((ga(H,f)|0)+e|0)*24|0)+4|0,I+(J*24|0)+4|0,17)|0;i=k;return}function Pj(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=c[d+18600>>2]|0;q=c[d+18596>>2]|0;h=c[d>>2]|0;g=c[q+5820>>2]|0;j=(h|0)%(g|0)|0;g=(h|0)/(g|0)|0;h=q+5804|0;k=c[h>>2]|0;e=j<<k;f=g<<k;m=c[q+10352>>2]|0;p=(ga(m,g)|0)+j|0;l=c[q+10340>>2]|0;b[l+(p*24|0)>>1]=c[i+800>>2];p=c[i>>2]&65535;n=c[q+10348>>2]|0;o=e>>n;n=f>>n;if(!((o|0)>-1&(o|0)<(m|0))){ec(1024,904,128,17320)}if(!((n|0)>-1)){ec(816,904,129,17320)}if((n|0)>=(c[q+10356>>2]|0)){ec(816,904,129,17320)}q=l+(((ga(m,n)|0)+o|0)*24|0)+2|0;b[q>>1]=p;do{if((a[i+325|0]|0)==0){if((a[i+326|0]|0)!=0){break}Qj(d,e,f,k,0);return}}while(0);Oj(d,j,g,0);q=c[h>>2]|0;Qj(d,e,f,q,0);return}function Qj(e,f,g,h,i){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;o=e+18596|0;q=e+18600|0;r=e+18516|0;k=e+18508|0;l=e+18512|0;m=e+18556|0;n=e+18580|0;a:while(1){j=c[o>>2]|0;t=1<<h;s=j+1248|0;v=c[s>>2]|0;do{if((t+f|0)>(v|0)){p=28}else{w=c[j+1252>>2]|0;if((t+g|0)>(w|0)){p=28;break}if((c[j+5800>>2]|0)>=(h|0)){p=28;break}u=f-1|0;do{if((u|g|0)>-1&(v|0)>(u|0)&(w|0)>(g|0)){t=c[j+5804>>2]|0;y=ga(g>>t,c[j+5820>>2]|0)|0;x=y+(f>>t)|0;t=y+(u>>t)|0;y=c[j+10340>>2]|0;if((b[y+(x*24|0)>>1]|0)!=(b[y+(t*24|0)>>1]|0)){x=0;break}y=c[j+10308>>2]|0;x=(c[y+(x<<2)>>2]|0)==(c[y+(t<<2)>>2]|0)|0}else{x=0}}while(0);t=g-1|0;do{if((t|f|0)>-1&(v|0)>(f|0)&(w|0)>(t|0)){z=c[j+5804>>2]|0;y=c[j+5820>>2]|0;w=f>>z;v=(ga(g>>z,y)|0)+w|0;w=(ga(t>>z,y)|0)+w|0;y=c[j+10340>>2]|0;if((b[y+(v*24|0)>>1]|0)!=(b[y+(w*24|0)>>1]|0)){v=0;break}z=c[j+10308>>2]|0;v=(c[z+(v<<2)>>2]|0)==(c[z+(w<<2)>>2]|0)|0}else{v=0}}while(0);if((x|0)==0){u=2}else{x=c[j+10368>>2]|0;w=u>>x;x=g>>x;if(!((w|0)>-1)){p=14;break a}u=c[j+10372>>2]|0;if((w|0)>=(u|0)){p=14;break a}if(!((x|0)>-1)){p=17;break a}if((x|0)>=(c[j+10376>>2]|0)){p=17;break a}u=(ga(u,x)|0)+w|0;u=(c[j+10360>>2]|0)+(u*3|0)|0;u=(((d[u]|d[u+1|0]<<8)<<16>>16&65535)>>>6&255&3|0)>(i|0)|2}if((v|0)==0){t=0}else{z=c[j+10368>>2]|0;v=f>>z;t=t>>z;if(!((v|0)>-1)){p=22;break a}w=c[j+10372>>2]|0;if((v|0)>=(w|0)){p=22;break a}if(!((t|0)>-1)){p=25;break a}if((t|0)>=(c[j+10376>>2]|0)){p=25;break a}t=(ga(w,t)|0)+v|0;t=(c[j+10360>>2]|0)+(t*3|0)|0;t=(((d[t]|d[t+1|0]<<8)<<16>>16&65535)>>>6&255&3|0)>(i|0)|0}t=ud(m,(c[n>>2]|0)+(t+u)|0)|0}}while(0);if((p|0)==28){p=0;t=(c[j+5800>>2]|0)<(h|0)|0}do{if((a[j+5946|0]|0)!=0){if((c[j+10092>>2]|0)>(h|0)){break}c[k>>2]=0;c[l>>2]=0}}while(0);do{if((a[(c[q>>2]|0)+752|0]|0)!=0){if((c[j+10096>>2]|0)>(h|0)){break}c[r>>2]=0}}while(0);if((t|0)==0){p=42;break}h=h-1|0;u=1<<h;t=u+f|0;u=u+g|0;i=i+1|0;Qj(e,f,g,h,i);if((t|0)<(c[s>>2]|0)){Qj(e,t,g,h,i)}g=j+1252|0;if((u|0)<(c[g>>2]|0)){Qj(e,f,u,h,i)}if((t|0)>=(c[s>>2]|0)){p=48;break}if((u|0)<(c[g>>2]|0)){g=u;f=t}else{p=48;break}}if((p|0)==14){ec(1024,904,118,17320)}else if((p|0)==17){ec(816,904,119,17320)}else if((p|0)==22){ec(1024,904,118,17320)}else if((p|0)==25){ec(816,904,119,17320)}else if((p|0)==42){m=c[j+10368>>2]|0;k=f>>m;p=g>>m;m=1<<h-m;l=m+p|0;if((m|0)>0){m=m+k|0;n=j+10372|0;j=j+10360|0;o=(i&65535)<<6&192;do{q=k;do{z=(ga(c[n>>2]|0,p)|0)+q|0;z=(c[j>>2]|0)+(z*3|0)|0;C=(d[z]|d[z+1|0]<<8)<<16>>16&-193|o;a[z]=C;C=C>>8;a[z+1|0]=C;q=q+1|0;}while((q|0)<(m|0));p=p+1|0;}while((p|0)<(l|0))}Xj(e,f,g,h,i);return}else if((p|0)==48){return}}function Rj(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;o=i;i=i+152|0;B=o|0;r=o+8|0;q=o+72|0;m=o+104|0;n=o+120|0;l=o+136|0;Z=c[f+18596>>2]|0;x=Z+764|0;u=c[Z+10368>>2]|0;t=g>>u;u=h>>u;if(!((t|0)>-1)){ec(1024,904,118,17320);return 0}s=c[Z+10372>>2]|0;if((t|0)>=(s|0)){ec(1024,904,118,17320);return 0}if(!((u|0)>-1)){ec(816,904,119,17320);return 0}if((u|0)>=(c[Z+10376>>2]|0)){ec(816,904,119,17320);return 0}w=(ga(s,u)|0)+t|0;w=(c[Z+10360>>2]|0)+(w*3|0)|0;w=((d[w]|d[w+1|0]<<8)<<16>>16&65535)>>>8&3;s=(k|0)==0;do{if(s){v=c[Z+10448>>2]|0;u=g>>v;C=h>>v;v=1<<j-v;t=v+C|0;if((v|0)<=0){break}z=v+u|0;y=Z+10452|0;v=Z+10440|0;do{A=u;do{qa=(ga(c[y>>2]|0,C)|0)+A|0;qa=(c[v>>2]|0)+qa|0;a[qa]=a[qa]|-128;A=A+1|0;}while((A|0)<(z|0));C=C+1|0;}while((C|0)<(t|0))}}while(0);do{if((a[Z+5945|0]|0)==0){p=17}else{if((a[f+32|0]|0)!=0){p=17;break}if((c[Z+10100>>2]|0)<(j|0)){p=17;break}qa=(ud(f+18556|0,(c[f+18580>>2]|0)+((k|0)!=0?142:141)|0)|0)&255;a[f+33+k|0]=qa}}while(0);if((p|0)==17){a[f+33+k|0]=0}t=f+36|0;a[t]=0;do{if(w<<24>>24==1){if((a[Z+5751|0]|0)==0){p=24;break}u=f+33+k|0;if((a[u]|0)==0){if((a[f+32|0]|0)==0){p=24;break}}z=f+18580|0;y=f+18556|0;v=(k|0)!=0;qa=(ud(y,(c[z>>2]|0)+(v?144:143)|0)|0)&255;a[t]=qa;if(qa<<24>>24==0){break}qa=(ud(y,(c[z>>2]|0)+(v?146:145)|0)|0)&255;a[f+37|0]=qa}else{p=24}}while(0);if((p|0)==24){a[t]=0;u=f+33+k|0}V=s?2:0;if((a[u]|0)==0){if((a[f+32|0]|0)!=0){p=27}}else{p=27}if((p|0)==27){V=V|1}v=f+18580|0;C=c[v>>2]|0;y=(j<<1)-1|0;if(s){D=(j*3|0)-6+(j-1>>2)+25|0;G=j+1>>2}else{D=40;G=j-2|0}z=(y|0)>0;if(z){E=f+18556|0;A=0;while(1){F=A+1|0;if((ud(E,C+(D+(A>>G))|0)|0)==0){break}if((F|0)<(y|0)){A=F}else{A=y;break}}C=c[v>>2]|0}else{A=y}if(s){D=(j*3|0)-6+(j-1>>2)+43|0;E=j+1>>2}else{D=58;E=j-2|0}a:do{if(z){G=f+18556|0;z=0;while(1){F=z+1|0;if((ud(G,C+(D+(z>>E))|0)|0)==0){y=z;break a}if((F|0)<(y|0)){z=F}else{break}}}}while(0);if((A|0)>3){z=(A>>1)-1|0;z=(yd(f+18556|0,z)|0)+((A&1|2)<<z)|0}else{z=A}if((y|0)>3){qa=(y>>1)-1|0;y=(yd(f+18556|0,qa)|0)+((y&1|2)<<qa)|0}w=w<<24>>24==0;if(w){do{if(s){D=c[Z+10408>>2]|0;C=g>>D;D=h>>D;if(!((C|0)>-1)){ec(1024,904,118,17320);return 0}A=c[Z+10412>>2]|0;if((C|0)>=(A|0)){ec(1024,904,118,17320);return 0}if(!((D|0)>-1)){ec(816,904,119,17320);return 0}if((D|0)<(c[Z+10416>>2]|0)){E=(ga(A,D)|0)+C|0;E=ei(j,d[(c[Z+10400>>2]|0)+E|0]|0,0,x)|0;break}else{ec(816,904,119,17320);return 0}}else{D=c[Z+10428>>2]|0;C=g>>D;D=h>>D;if(!((C|0)>-1)){ec(1024,904,118,17320);return 0}A=c[Z+10432>>2]|0;if((C|0)>=(A|0)){ec(1024,904,118,17320);return 0}if(!((D|0)>-1)){ec(816,904,119,17320);return 0}if((D|0)<(c[Z+10436>>2]|0)){E=(ga(A,D)|0)+C|0;E=ei(j,a[(c[Z+10420>>2]|0)+E|0]&63,k,x)|0;break}else{ec(816,904,119,17320);return 0}}}while(0);x=(E|0)==2;A=x?z:y;C=x?y:z}else{A=y;C=z;E=0}x=j-2|0;y=Cj(x,E)|0;z=Cj(2,E)|0;Dj(B,C,A,E,j);A=a[B+1|0]|0;C=d[B|0]|0;dv(r|0,0,1<<x<<x|0)|0;B=f+14404+(k<<1)|0;b[B>>1]=0;D=f+18556|0;H=(E|0)!=0|0;I=(k|0)!=0|0;U=(A&255)-1|0;E=q|0;K=l|0;N=m|0;O=Z+5749|0;Q=f+32|0;T=s?42:43;S=(k|0)>0;L=Z+10408|0;P=Z+10412|0;R=Z+10416|0;J=Z+10400|0;M=Z+5750|0;F=Z+5936|0;G=Z+5755|0;X=f+18588+V|0;Y=Z+10428|0;W=Z+10432|0;V=Z+10436|0;$=Z+10420|0;fa=0;ea=0;_=C;da=1;b:while(1){ba=a[y+(_<<1)|0]|0;aa=a[y+(_<<1)+1|0]|0;Z=(_|0)>0;do{if((_|0)<(C|0)&Z){ca=ba&255;ha=d[r+(((aa&255)<<x)+ca)|0]|0;ha=ha&1|ha>>>1;if((ud(D,(c[v>>2]|0)+((s?ha:ha+2|0)+61)|0)|0)!=0){ja=1;p=69}}else{if(!((_|0)==0|(_|0)==(C|0))){break}ja=0;ca=ba&255;p=69}}while(0);do{if((p|0)==69){p=0;if(!(ba<<24>>24==0)){qa=r+(ca-1+((aa&255)<<x))|0;a[qa]=a[qa]|1}ha=aa&255;if(!(aa<<24>>24==0)){qa=r+((ha-1<<x)+ca)|0;a[qa]=a[qa]|2}aa=ca<<2;ba=ha<<2;ia=c[31064+(x<<6)+(I<<5)+(H<<4)+(d[r+((ha<<x)+ca)|0]<<2)>>2]|0;ca=(_|0)==(C|0);ha=ca?U:15;if(ca){b[E>>1]=1;a[K]=1;a[N]=A;ca=1}else{ca=0}if((ha|0)>0){ka=ha;do{ma=(d[z+(ka<<1)|0]|0)+aa|0;la=(d[z+(ka<<1)+1|0]|0)+ba|0;do{if((a[O]|0)==0){p=79}else{if((a[Q]|0)!=0){la=T;break}if((a[u]|0)==0){p=79}else{la=T}}}while(0);if((p|0)==79){p=0;la=a[ia+(ma+(la<<j))|0]|0}if((ud(D,(c[v>>2]|0)+((la&255)+65)|0)|0)!=0){b[q+(ca<<1)>>1]=1;a[l+ca|0]=1;a[m+ca|0]=ka;ja=0;ca=ca+1|0}ka=ka-1|0;}while((ka|0)>0)}do{if((ha|0)>-1){if((ja|0)!=0){b[q+(ca<<1)>>1]=1;a[l+ca|0]=1;a[m+ca|0]=0;ca=ca+1|0;break}do{if((a[O]|0)==0){p=88}else{if((a[Q]|0)!=0){ha=T;break}if((a[u]|0)==0){p=88}else{ha=T}}}while(0);if((p|0)==88){p=0;ha=a[ia+((ba<<j)+aa)|0]|0}if((ud(D,(c[v>>2]|0)+((ha&255)+65)|0)|0)==0){break}b[q+(ca<<1)>>1]=1;a[l+ca|0]=1;a[m+ca|0]=0;ca=ca+1|0}}while(0);if((ca|0)==0){break}ia=((_|0)==0|S?0:2)|(da|0)==0;ha=(ca|0)>8?8:ca;do{if((ha|0)>0){ja=ia<<2;la=-1;da=1;ka=0;do{do{if((ka|0)==0){fa=1}else{if((fa|0)<=0){break}fa=(ea|0)==1?0:fa+1|0}}while(0);ea=((fa|0)<3?fa:3)+ja|0;ea=ud(D,(c[v>>2]|0)+((S?ea+16|0:ea)+109)|0)|0;if((ea|0)==0){a[l+ka|0]=0;da=((da-1|0)>>>0<2>>>0)+da|0}else{da=q+(ka<<1)|0;b[da>>1]=(b[da>>1]|0)+1;da=0;la=(la|0)==-1?ka:la}ka=ka+1|0;}while((ka|0)<(ha|0));if((la|0)==-1){break}qa=ud(D,(c[v>>2]|0)+((S?ia|4:ia)+133)|0)|0;pa=q+(la<<1)|0;b[pa>>1]=(e[pa>>1]|0)+qa;a[l+la|0]=qa}else{da=1}}while(0);if(s){ha=c[L>>2]|0;ia=g>>ha;ha=h>>ha;if(!((ia|0)>-1)){p=107;break b}ja=c[P>>2]|0;if((ia|0)>=(ja|0)){p=107;break b}if(!((ha|0)>-1)){p=110;break b}if((ha|0)>=(c[R>>2]|0)){p=110;break b}ha=(ga(ja,ha)|0)+ia|0;ha=d[(c[J>>2]|0)+ha|0]|0}else{ha=c[Y>>2]|0;ia=g>>ha;ha=h>>ha;if(!((ia|0)>-1)){p=114;break b}ja=c[W>>2]|0;if((ia|0)>=(ja|0)){p=114;break b}if(!((ha|0)>-1)){p=117;break b}if((ha|0)>=(c[V>>2]|0)){p=117;break b}ha=(ga(ja,ha)|0)+ia|0;ha=a[(c[$>>2]|0)+ha|0]&63}c:do{if((a[Q]|0)==0){do{if(w){if((a[M]|0)==0){break}if((a[u]|0)==0){break}if((ha&239|0)==10){ja=0;break c}}}while(0);if((a[t]|0)!=0){ja=0;break}ja=((a[N]|0)-(a[m+(ca-1)|0]|0)|0)>3|0}else{ja=0}}while(0);ha=ca-1|0;if((ha|0)>0){ia=0;do{qa=(wd(D)|0)&255;a[n+ia|0]=qa;ia=ia+1|0;}while((ia|0)<(ha|0))}ia=(ja|0)==0;if((a[F]|0)==0|ia){qa=(wd(D)|0)&255;a[n+ha|0]=qa}else{a[n+ha|0]=0}if((a[G]|0)==0){na=0}else{na=(d[X]|0)>>>2}if((ca|0)>0){ja=0;ma=1;ka=0}else{break}do{la=b[q+(ka<<1)>>1]|0;do{if((a[l+ka|0]|0)==0){oa=0}else{pa=-1;while(1){qa=pa+1|0;oa=wd(D)|0;if((pa|0)>63){oa=0;break}if((oa|0)==0){p=137;break}else{pa=qa}}do{if((p|0)==137){p=0;if((qa|0)<4){oa=(yd(D,na)|0)+(qa<<na)|0;break}else{oa=pa-2|0;oa=(yd(D,oa+na|0)|0)+((1<<oa)+2<<na)|0;break}}}while(0);pa=(a[G]|0)==0;qa=(oa+la|0)>(3<<na|0);if(pa){if(!qa){ma=0;break}na=na+1|0;ma=0;na=(na|0)>4?4:na;break}na=(qa&1)+na|0;if(pa|ma^1){ma=0;break}ma=a[X]|0;pa=(ma&255)>>>2;if((oa|0)>=(3<<pa|0)){a[X]=ma+1;ma=0;break}if((oa<<1|0)>=(1<<pa|0)|ma<<24>>24==0){ma=0;break}a[X]=ma-1;ma=0}}while(0);la=oa+la|0;oa=la&65535;oa=(a[n+ka|0]|0)==0?oa:-oa&65535;do{if((a[F]|0)==0|ia){la=oa}else{ja=la+ja|0;if((ka|0)!=(ha|0)){la=oa;break}la=(ja&1|0)==0?oa:-oa&65535}}while(0);qa=a[m+ka|0]|0;pa=(d[z+(qa<<1)|0]|0)+aa|0;qa=(d[z+(qa<<1)+1|0]|0)+ba|0;b[f+2116+(k<<11)+(b[B>>1]<<1)>>1]=la;b[f+8260+(k<<11)+(b[B>>1]<<1)>>1]=pa+(qa<<j);b[B>>1]=(b[B>>1]|0)+1;ka=ka+1|0;}while((ka|0)<(ca|0))}}while(0);if(Z){_=_-1|0}else{p=153;break}}if((p|0)==107){ec(1024,904,118,17320);return 0}else if((p|0)==110){ec(816,904,119,17320);return 0}else if((p|0)==114){ec(1024,904,118,17320);return 0}else if((p|0)==117){ec(816,904,119,17320);return 0}else if((p|0)==153){i=o;return 0}return 0}function Sj(b,e,f,g,h,i,j,k,l,m,n,o,p){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;if((o|0)==-1){ec(1560,14776,3547,18792);return 0}if((p|0)==-1){ec(1424,14776,3548,18792);return 0}if((n|0)==-1){ec(1392,14776,3549,18792);return 0}l=b+18596|0;u=c[l>>2]|0;t=c[u+5776>>2]|0;w=(t|0)==3;q=((w^1)<<31>>31)+k|0;r=(q|0)<2?2:q;v=b+33|0;C=0;a[v]=C;C=C>>8;a[v+1|0]=C;C=C>>8;a[v+2|0]=C;C=C>>8;a[v+3|0]=C;v=c[u+10368>>2]|0;x=e>>v;v=f>>v;if(!((x|0)>-1)){ec(1024,904,118,17320);return 0}q=c[u+10372>>2]|0;if((x|0)>=(q|0)){ec(1024,904,118,17320);return 0}if(!((v|0)>-1)){ec(816,904,119,17320);return 0}if((v|0)>=(c[u+10376>>2]|0)){ec(816,904,119,17320);return 0}x=(ga(q,v)|0)+x|0;x=(c[u+10360>>2]|0)+(x*3|0)|0;x=((d[x]|d[x+1|0]<<8)<<16>>16&65535)>>>8&3;q=x&255;A=(n|0)!=0;y=A^1;n=(p|o|0)==0;do{if(!(n&y)){do{if((a[u+5946|0]|0)==0){u=0}else{u=b+18508|0;if((c[u>>2]|0)!=0){u=0;break}v=b+18556|0;z=b+18580|0;do{if((ud(v,(c[z>>2]|0)+139|0)|0)==0){v=0;B=0}else{B=1;D=0;do{if((ud(v,(c[z>>2]|0)+140|0)|0)==0){break}B=B+1|0;D=D+1|0;}while((D|0)<4);if((B|0)==5){B=(zd(v,0)|0)+5|0}if((B|0)==0){v=0;B=0;break}v=(wd(v)|0)<<1}}while(0);c[u>>2]=1;u=ga(1-v|0,B)|0;c[b+18512>>2]=u;u=1}}while(0);do{if((a[(c[b+18600>>2]|0)+752|0]|0)==0|n){s=32}else{if((a[b+32|0]|0)!=0){s=32;break}n=b+18516|0;if((c[n>>2]|0)!=0){s=32;break}v=b+18556|0;z=b+18580|0;D=ud(v,(c[z>>2]|0)+23|0)|0;u=c[l>>2]|0;if((D|0)==0){c[n>>2]=1;c[b+18520>>2]=0;c[b+18524>>2]=0;break}if((d[u+10074|0]|0)>>>0>1>>>0){v=ud(v,(c[z>>2]|0)+24|0)|0}else{v=0}c[n>>2]=1;c[b+18520>>2]=a[u+10075+v|0]|0;c[b+18524>>2]=a[u+10081+v|0]|0}}while(0);if((s|0)==32){if(!u){break}}Qk(b,e,f,i,j)}}while(0);B=1<<k;v=1<<r;n=c[l>>2]|0;u=c[n+5780>>2]|0;n=c[n+5784>>2]|0;z=b+28|0;c[z>>2]=0;if(A){Rj(b,e,f,k,0)|0}Tj(b,e,f,i,j,B,0,q,A);if(!((k|0)>2|w)){if((m|0)!=3){return 0}e=(o&1|0)!=0;if(e){Rj(b,g,h,k,1)|0}if((c[(c[l>>2]|0)+5776>>2]|0)!=0){Tj(b,(g|0)/(u|0)|0,(h|0)/(n|0)|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,B,1,q,e)}f=(o&2|0)!=0;if(f){Rj(b,g,B+h|0,k,1)|0}e=(t|0)==2;if(e){Tj(b,(g|0)/(u|0)|0,((h|0)/(n|0)|0)+B|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,B,1,q,f)}f=(p&1|0)!=0;if(f){Rj(b,g,h,k,2)|0}if((c[(c[l>>2]|0)+5776>>2]|0)!=0){Tj(b,(g|0)/(u|0)|0,(h|0)/(n|0)|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,B,2,q,f)}p=(p&2|0)!=0;if(p){Rj(b,g,v+h|0,k,2)|0}if(!e){return 0}Tj(b,(g|0)/(u|0)|0,((h|0)/(n|0)|0)+B|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,B,2,q,p);return 0}h=c[l>>2]|0;a:do{if((a[h+10071|0]|0)==0|y){h=0;g=0}else{do{if(!(x<<24>>24==1)){g=c[h+10428>>2]|0;k=e>>g;g=f>>g;if(!((k|0)>-1)){ec(1024,904,118,17320);return 0}m=c[h+10432>>2]|0;if((k|0)>=(m|0)){ec(1024,904,118,17320);return 0}if(!((g|0)>-1)){ec(816,904,119,17320);return 0}if((g|0)<(c[h+10436>>2]|0)){D=(ga(m,g)|0)+k|0;if((a[(c[h+10420>>2]|0)+D|0]|0)<0){break}else{h=0;g=0;break a}}else{ec(816,904,119,17320);return 0}}}while(0);g=b+18556|0;k=b+18580|0;m=0;do{if((ud(g,(c[k>>2]|0)+(m+162)|0)|0)==0){s=49;break}m=m+1|0;}while((m|0)<4);if((s|0)==49){if((m|0)==0){h=1;g=0;break}}h=1;g=1-((ud(g,(c[k>>2]|0)+170|0)|0)<<1)<<m-1}}while(0);c[z>>2]=g;g=(o&1|0)!=0;if(g){Rj(b,e,f,r,1)|0}if((c[(c[l>>2]|0)+5776>>2]|0)!=0){Tj(b,(e|0)/(u|0)|0,(f|0)/(n|0)|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,v,1,q,g)}t=(t|0)==2;if(t){o=(o&2|0)!=0;if(o){Rj(b,e,(n<<r)+f|0,r,1)|0}Tj(b,(e|0)/(u|0)|0,((f|0)/(n|0)|0)+v|0,(i|0)/(u|0)|0,((j|0)/(n|0)|0)+v|0,v,1,q,o)}do{if(h){h=b+18556|0;o=b+18580|0;g=0;do{if((ud(h,(c[o>>2]|0)+(g+166)|0)|0)==0){s=63;break}g=g+1|0;}while((g|0)<4);if((s|0)==63){if((g|0)==0){s=0;break}}s=1-((ud(h,(c[o>>2]|0)+171|0)|0)<<1)<<g-1}else{s=0}}while(0);c[z>>2]=s;s=(p&1|0)!=0;if(s){Rj(b,e,f,r,2)|0}if((c[(c[l>>2]|0)+5776>>2]|0)!=0){Tj(b,(e|0)/(u|0)|0,(f|0)/(n|0)|0,(i|0)/(u|0)|0,(j|0)/(n|0)|0,v,2,q,s)}if(!t){return 0}p=(p&2|0)!=0;if(p){Rj(b,e,(n<<r)+f|0,r,2)|0}Tj(b,(e|0)/(u|0)|0,((f|0)/(n|0)|0)+v|0,(i|0)/(u|0)|0,((j|0)/(n|0)|0)+v|0,v,2,q,p);return 0}function Tj(e,f,g,h,i,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0;o=e+18596|0;n=c[o>>2]|0;l=(l|0)==0;do{if(l){do{if((k|0)==0){q=c[n+10408>>2]|0;r=f>>q;q=g>>q;if(!((r|0)>-1)){ec(1024,904,118,17320)}s=c[n+10412>>2]|0;if((r|0)>=(s|0)){ec(1024,904,118,17320)}if(!((q|0)>-1)){ec(816,904,119,17320)}if((q|0)<(c[n+10416>>2]|0)){p=(ga(s,q)|0)+r|0;p=d[(c[n+10400>>2]|0)+p|0]|0;break}else{ec(816,904,119,17320)}}else{r=ga(c[n+5780>>2]|0,f)|0;s=ga(c[n+5784>>2]|0,g)|0;q=c[n+10428>>2]|0;r=r>>q;q=s>>q;if(!((r|0)>-1)){ec(1024,904,118,17320)}s=c[n+10432>>2]|0;if((r|0)>=(s|0)){ec(1024,904,118,17320)}if(!((q|0)>-1)){ec(816,904,119,17320)}if((q|0)<(c[n+10436>>2]|0)){p=(ga(s,q)|0)+r|0;p=a[(c[n+10420>>2]|0)+p|0]&63;break}else{ec(816,904,119,17320)}}}while(0);p=p>>>0>34>>>0?1:p;fi(n,f,g,p,j,k);do{if((a[(c[o>>2]|0)+5750|0]|0)==0){n=0}else{if((a[e+32|0]|0)==0){if((a[e+33+k|0]|0)==0){n=0;break}}n=(p&239|0)==10}}while(0);n=n&(p|0)==26?2:n&1}else{if((a[e+36|0]|0)==0){n=0;break}n=(a[e+37|0]|0)!=0?2:1}}while(0);if(m){Rk(e,f,g,h,i,j,k,(a[e+33+k|0]|0)!=0,l,n);return}if((k|0)==0){return}if((c[e+28>>2]|0)==0){return}b[e+14404+(k<<1)>>1]=0;Rk(e,f,g,h,i,j,k,(a[e+33+k|0]|0)!=0,l,0);return}function Uj(b,e,f,g,h,i,j,k,l,m,n,o,p,q,r){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;x=b+18596|0;y=c[x>>2]|0;z=c[y+10368>>2]|0;A=e>>z;if(!((A|0)>-1)){ec(1024,904,118,17320)}u=(o|0)==1;s=b+18556|0;t=b+18580|0;w=(o|0)!=0;v=f;E=f>>z;D=z;a:while(1){B=c[y+10372>>2]|0;if((A|0)>=(B|0)){f=4;break}if(!((E|0)>-1)){f=7;break}C=c[y+10376>>2]|0;if((E|0)>=(C|0)){f=7;break}z=(ga(B,E)|0)+A|0;A=c[y+10360>>2]|0;z=A+(z*3|0)|0;z=((d[z]|d[z+1|0]<<8)<<16>>16&65535)>>>8&3;if((z&255|0)!=(p|0)){f=9;break}E=(c[y+5868>>2]|0)<(k|0);do{if(E){f=15}else{if((l|0)>=(n|0)|(c[y+5864>>2]|0)>=(k|0)|w&(l|0)==0){f=15;break}f=5-k|0;if(!(f>>>0<3>>>0)){f=13;break a}A=ud(s,(c[t>>2]|0)+(f+20)|0)|0;f=21}}while(0);do{if((f|0)==15){f=e>>D;D=v>>D;if(!((f|0)>-1&(f|0)<(B|0))){f=16;break a}if(!((D|0)>-1&(D|0)<(C|0))){f=18;break a}if(E){f=22;break}A=A+(((ga(B,D)|0)+f|0)*3|0)|0;A=(u&(l|0)==0|(c[y+1392>>2]|l|0)==0&z<<24>>24==1&((d[A]|d[A+1|0]<<8)<<16>>16&56)!=0)&1;f=21}}while(0);if((f|0)==21){f=0;if((A|0)==0){A=0}else{f=22}}if((f|0)==22){f=c[y+10448>>2]|0;A=e>>f;f=v>>f;if(!((A|0)>-1)){f=24;break}B=c[y+10452>>2]|0;if((A|0)>=(B|0)){f=24;break}if(!((f|0)>-1)){f=27;break}if((f|0)>=(c[y+10456>>2]|0)){f=27;break}A=(ga(B,f)|0)+A|0;A=(c[y+10440>>2]|0)+A|0;a[A]=d[A]|0|1<<l;A=1}f=c[y+5776>>2]|0;if((k|0)>2){if((f|0)==0){C=-1;f=41}else{f=32}}else{if((f|0)==3){f=32}else{C=-1;f=41}}if((f|0)==32){f=0;do{if(q<<24>>24==0){B=-1}else{C=l+16|0;B=ud(s,(c[t>>2]|0)+C|0)|0;if((c[y+5776>>2]|0)!=2){break}if(!((k|0)==3|A^1)){break}B=(ud(s,(c[t>>2]|0)+C|0)|0)<<1|B}}while(0);do{if(r<<24>>24==0){C=-1}else{D=l+16|0;C=ud(s,(c[t>>2]|0)+D|0)|0;if((c[y+5776>>2]|0)!=2){break}if(!((k|0)==3|A^1)){break}C=(ud(s,(c[t>>2]|0)+D|0)|0)<<1|C}}while(0);if((B|0)<0){f=41}else{q=B}}if((f|0)==41){y=(k|0)==2;if((l|0)==0&y){f=42;break}q=(l|0)>0&y?q&255:0}if((C|0)<0){r=(l|0)>0&(k|0)==2?r&255:0}else{r=C}if(!A){f=48;break}k=k-1|0;z=1<<k;h=z+e|0;z=z+v|0;l=l+1|0;q=q&255;r=r&255;Uj(b,e,v,e,v,i,j,k,l,0,n,o,p,q,r);Uj(b,h,v,e,v,i,j,k,l,1,n,o,p,q,r);Uj(b,e,z,e,v,i,j,k,l,2,n,o,p,q,r);y=c[x>>2]|0;f=c[y+10368>>2]|0;A=h>>f;if((A|0)>-1){g=e;e=h;h=v;v=z;m=3;E=z>>f;D=f}else{f=4;break}}if((f|0)==4){ec(1024,904,118,17320)}else if((f|0)==7){ec(816,904,119,17320)}else if((f|0)==9){ec(1368,14776,3827,18816)}else if((f|0)==13){ec(416,14776,1820,17880)}else if((f|0)==16){ec(1024,904,118,17320)}else if((f|0)==18){ec(816,904,119,17320)}else if((f|0)==24){ec(1024,904,128,17320)}else if((f|0)==27){ec(816,904,129,17320)}else if((f|0)==42){ec(1320,14776,3894,18816)}else if((f|0)==48){u=(l|0)==0;if(z<<24>>24!=0&u&(q|0)==0&(r|0)==0){E=1;Sj(b,e,v,g,h,i,j,k,0,m,E,q,r)|0;return}E=ud(s,(c[t>>2]|0)+(u&1|14)|0)|0;Sj(b,e,v,g,h,i,j,k,0,m,E,q,r)|0;return}}function Vj(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;d=a+18556|0;i=a+18580|0;g=ud(d,(c[i>>2]|0)+150|0)|0;e=ud(d,(c[i>>2]|0)+150|0)|0;g=(g|0)==0;if(g){h=0}else{h=ud(d,(c[i>>2]|0)+151|0)|0}e=(e|0)==0;if(e){i=0}else{i=ud(d,(c[i>>2]|0)+151|0)|0}do{if(g){g=0}else{if((h|0)==0){g=-1}else{g=zd(d,1)|0}if((wd(d)|0)==0){g=g+2&65535;break}g=-2-g&65535}}while(0);if(e){h=0;i=a+18+(f<<2)|0;b[i>>1]=g;i=a+18+(f<<2)+2|0;b[i>>1]=h;return}if((i|0)==0){e=-1}else{e=zd(d,1)|0}if((wd(d)|0)==0){h=e+2&65535;i=a+18+(f<<2)|0;b[i>>1]=g;i=a+18+(f<<2)+2|0;b[i>>1]=h;return}h=-2-e&65535;i=a+18+(f<<2)|0;b[i>>1]=g;i=a+18+(f<<2)+2|0;b[i>>1]=h;return}function Wj(d,e,f,g,h,i,j,k,l,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;p=d+18600|0;s=c[p>>2]|0;q=d+18556|0;r=d+18580|0;w=ud(q,(c[r>>2]|0)+147|0)|0;n=d+16|0;o=d+26|0;u=(w&255)<<4&16|a[o]&-17;a[o]=u;if((w|0)!=0){a:do{if((c[(c[p>>2]|0)+804>>2]|0)<2){q=0}else{if((ud(q,(c[r>>2]|0)+148|0)|0)==0){q=0;break}if(((c[(c[p>>2]|0)+804>>2]|0)-1|0)>1){s=1}else{q=1;break}while(1){r=s+1|0;if((wd(q)|0)==0){q=s&255;break a}if((r|0)<((c[(c[p>>2]|0)+804>>2]|0)-1|0)){s=r}else{q=r&255;break}}}}while(0);a[o]=a[o]&31|q<<5;u=d+18592|0;u=c[u>>2]|0;u=u|0;v=c[p>>2]|0;w=d+18596|0;w=c[w>>2]|0;Ii(u,v,w,n,e,f,g,h,l,i,j,m);return}if((c[s+20>>2]|0)==0){u=c[r>>2]|0;do{if((j+i|0)==12){k=ud(q,u+160|0)|0}else{if((ud(q,u+(k+156)|0)|0)!=0){k=2;break}k=ud(q,u+160|0)|0}}while(0);k=k+1|0;a[o]=a[o]&-4|k&3;if((k|0)==2){k=2}else{t=15}}else{a[o]=u&-4|1;k=1;t=15}do{if((t|0)==15){v=(c[s+328>>2]|0)-1|0;b:do{if((v|0)==0){u=0}else{if((ud(q,(c[r>>2]|0)+154|0)|0)==0){u=0;break}u=v&255;w=0;while(1){t=w+1|0;if((t|0)==(v|0)){break b}if((w|0)==0){w=ud(q,(c[r>>2]|0)+155|0)|0}else{w=wd(q)|0}if((w|0)==0){u=t&255;break}else{w=t}}}}while(0);a[n|0]=u;Vj(d,0,0,0);w=(ud(q,(c[r>>2]|0)+152|0)|0)&255;a[o]=w<<2&4|a[o]&-5;if((k|0)!=1){break}u=d+18592|0;u=c[u>>2]|0;u=u|0;v=c[p>>2]|0;w=d+18596|0;w=c[w>>2]|0;Ii(u,v,w,n,e,f,g,h,l,i,j,m);return}}while(0);v=(c[s+332>>2]|0)-1|0;c:do{if((v|0)==0){u=0}else{if((ud(q,(c[r>>2]|0)+154|0)|0)==0){u=0;break}u=v&255;w=0;while(1){t=w+1|0;if((t|0)==(v|0)){break c}if((w|0)==0){w=ud(q,(c[r>>2]|0)+155|0)|0}else{w=wd(q)|0}if((w|0)==0){u=t&255;break}else{w=t}}}}while(0);a[d+17|0]=u;if((a[s+370|0]|0)!=0&(k|0)==3){b[d+22>>1]=0;b[d+24>>1]=0}else{Vj(d,0,0,1)}u=(ud(q,(c[r>>2]|0)+152|0)|0)&255;a[o]=u<<3&8|a[o]&-9;u=d+18592|0;u=c[u>>2]|0;u=u|0;v=c[p>>2]|0;w=d+18596|0;w=c[w>>2]|0;Ii(u,v,w,n,e,f,g,h,l,i,j,m);return} - - - -function Ys(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;c[e>>2]=b;c[h>>2]=f;do{if((j&2|0)!=0){if((g-f|0)<3){b=1;return b|0}else{c[h>>2]=f+1;a[f]=-17;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=-69;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=-65;break}}}while(0);j=c[e>>2]|0;if(!(j>>>0<d>>>0)){b=0;return b|0}a:while(1){j=c[j>>2]|0;if((j&-2048|0)==55296|j>>>0>i>>>0){i=2;e=19;break}do{if(j>>>0<128>>>0){f=c[h>>2]|0;if((g-f|0)<1){i=1;e=19;break a}c[h>>2]=f+1;a[f]=j}else{if(j>>>0<2048>>>0){f=c[h>>2]|0;if((g-f|0)<2){i=1;e=19;break a}c[h>>2]=f+1;a[f]=j>>>6|192;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j&63|128;break}f=c[h>>2]|0;b=g-f|0;if(j>>>0<65536>>>0){if((b|0)<3){i=1;e=19;break a}c[h>>2]=f+1;a[f]=j>>>12|224;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j>>>6&63|128;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j&63|128;break}else{if((b|0)<4){i=1;e=19;break a}c[h>>2]=f+1;a[f]=j>>>18|240;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j>>>12&63|128;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j>>>6&63|128;b=c[h>>2]|0;c[h>>2]=b+1;a[b]=j&63|128;break}}}while(0);j=(c[e>>2]|0)+4|0;c[e>>2]=j;if(!(j>>>0<d>>>0)){i=0;e=19;break}}if((e|0)==19){return i|0}return 0}function Zs(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;a=i;i=i+16|0;l=a|0;k=a+8|0;c[l>>2]=d;c[k>>2]=g;b=_s(d,e,l,g,h,k,1114111,0)|0;c[f>>2]=d+((c[l>>2]|0)-d);c[j>>2]=g+((c[k>>2]|0)-g>>2<<2);i=a;return b|0}function _s(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0;c[f>>2]=b;c[i>>2]=g;g=c[f>>2]|0;do{if((k&4|0)!=0){if((e-g|0)<=2){break}if(!((a[g]|0)==-17)){break}if(!((a[g+1|0]|0)==-69)){break}if(!((a[g+2|0]|0)==-65)){break}g=g+3|0;c[f>>2]=g}}while(0);a:do{if(g>>>0<e>>>0){k=e;b=c[i>>2]|0;b:while(1){if(!(b>>>0<h>>>0)){break a}m=a[g]|0;l=m&255;do{if(m<<24>>24>-1){if(l>>>0>j>>>0){e=2;f=40;break b}c[b>>2]=l;c[f>>2]=g+1}else{if((m&255)>>>0<194>>>0){e=2;f=40;break b}if((m&255)>>>0<224>>>0){if((k-g|0)<2){e=1;f=40;break b}m=d[g+1|0]|0;if((m&192|0)!=128){e=2;f=40;break b}l=m&63|l<<6&1984;if(l>>>0>j>>>0){e=2;f=40;break b}c[b>>2]=l;c[f>>2]=g+2;break}if((m&255)>>>0<240>>>0){if((k-g|0)<3){e=1;f=40;break b}m=a[g+1|0]|0;n=a[g+2|0]|0;if((l|0)==224){if(!((m&-32)<<24>>24==-96)){e=2;f=40;break b}}else if((l|0)==237){if(!((m&-32)<<24>>24==-128)){e=2;f=40;break b}}else{if(!((m&-64)<<24>>24==-128)){e=2;f=40;break b}}n=n&255;if((n&192|0)!=128){e=2;f=40;break b}l=(m&255)<<6&4032|l<<12&61440|n&63;if(l>>>0>j>>>0){e=2;f=40;break b}c[b>>2]=l;c[f>>2]=g+3;break}if(!((m&255)>>>0<245>>>0)){e=2;f=40;break b}if((k-g|0)<4){e=1;f=40;break b}m=a[g+1|0]|0;n=a[g+2|0]|0;o=a[g+3|0]|0;if((l|0)==244){if(!((m&-16)<<24>>24==-128)){e=2;f=40;break b}}else if((l|0)==240){if(!((m+112&255)>>>0<48>>>0)){e=2;f=40;break b}}else{if(!((m&-64)<<24>>24==-128)){e=2;f=40;break b}}n=n&255;if((n&192|0)!=128){e=2;f=40;break b}o=o&255;if((o&192|0)!=128){e=2;f=40;break b}l=(m&255)<<12&258048|l<<18&1835008|n<<6&4032|o&63;if(l>>>0>j>>>0){e=2;f=40;break b}c[b>>2]=l;c[f>>2]=g+4}}while(0);b=(c[i>>2]|0)+4|0;c[i>>2]=b;g=c[f>>2]|0;if(!(g>>>0<e>>>0)){break a}}if((f|0)==40){return e|0}}}while(0);o=g>>>0<e>>>0|0;return o|0}function $s(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function at(a){a=a|0;return 0}function bt(a){a=a|0;return 0}function ct(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return dt(c,d,e,1114111,0)|0}function dt(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;do{if((g&4|0)==0){i=b}else{if((c-b|0)<=2){i=b;break}if(!((a[b]|0)==-17)){i=b;break}if(!((a[b+1|0]|0)==-69)){i=b;break}i=(a[b+2|0]|0)==-65?b+3|0:b}}while(0);a:do{if(i>>>0<c>>>0&(e|0)!=0){h=c;g=1;b:while(1){k=a[i]|0;j=k&255;do{if(k<<24>>24>-1){if(j>>>0>f>>>0){break a}i=i+1|0}else{if((k&255)>>>0<194>>>0){break a}if((k&255)>>>0<224>>>0){if((h-i|0)<2){break a}k=d[i+1|0]|0;if((k&192|0)!=128){break a}if((k&63|j<<6&1984)>>>0>f>>>0){break a}i=i+2|0;break}if((k&255)>>>0<240>>>0){k=i;if((h-k|0)<3){break a}l=a[i+1|0]|0;m=a[i+2|0]|0;if((j|0)==224){if(!((l&-32)<<24>>24==-96)){f=21;break b}}else if((j|0)==237){if(!((l&-32)<<24>>24==-128)){f=23;break b}}else{if(!((l&-64)<<24>>24==-128)){f=25;break b}}k=m&255;if((k&192|0)!=128){break a}if(((l&255)<<6&4032|j<<12&61440|k&63)>>>0>f>>>0){break a}i=i+3|0;break}if(!((k&255)>>>0<245>>>0)){break a}m=i;if((h-m|0)<4){break a}k=a[i+1|0]|0;n=a[i+2|0]|0;l=a[i+3|0]|0;if((j|0)==240){if(!((k+112&255)>>>0<48>>>0)){f=33;break b}}else if((j|0)==244){if(!((k&-16)<<24>>24==-128)){f=35;break b}}else{if(!((k&-64)<<24>>24==-128)){f=37;break b}}m=n&255;if((m&192|0)!=128){break a}l=l&255;if((l&192|0)!=128){break a}if(((k&255)<<12&258048|j<<18&1835008|m<<6&4032|l&63)>>>0>f>>>0){break a}i=i+4|0}}while(0);if(!(i>>>0<c>>>0&g>>>0<e>>>0)){break a}g=g+1|0}if((f|0)==21){n=k-b|0;return n|0}else if((f|0)==23){n=k-b|0;return n|0}else if((f|0)==25){n=k-b|0;return n|0}else if((f|0)==33){n=m-b|0;return n|0}else if((f|0)==35){n=m-b|0;return n|0}else if((f|0)==37){n=m-b|0;return n|0}}}while(0);n=i-b|0;return n|0}function et(a){a=a|0;return 4}function ft(a){a=a|0;Sl(a|0);Pu(a);return}function gt(a){a=a|0;Sl(a|0);Pu(a);return}function ht(a){a=a|0;c[a>>2]=20096;rm(a+12|0);Sl(a|0);Pu(a);return}function it(a){a=a|0;c[a>>2]=20096;rm(a+12|0);Sl(a|0);return}function jt(a){a=a|0;c[a>>2]=20048;rm(a+16|0);Sl(a|0);Pu(a);return}function kt(a){a=a|0;c[a>>2]=20048;rm(a+16|0);Sl(a|0);return}function lt(b){b=b|0;return a[b+8|0]|0}function mt(a){a=a|0;return c[a+8>>2]|0}function nt(b){b=b|0;return a[b+9|0]|0}function ot(a){a=a|0;return c[a+12>>2]|0}function pt(a,b){a=a|0;b=b|0;om(a,b+12|0);return}function qt(a,b){a=a|0;b=b|0;om(a,b+16|0);return}function rt(a,b){a=a|0;b=b|0;pm(a,12536,4);return}function st(a,b){a=a|0;b=b|0;Am(a,12296,gu(12296)|0);return}function tt(a,b){a=a|0;b=b|0;pm(a,11952,5);return}function ut(a,b){a=a|0;b=b|0;Am(a,11608,gu(11608)|0);return}function vt(b){b=b|0;if((a[51888]|0)!=0){b=c[8476]|0;return b|0}if((ub(51888)|0)==0){b=c[8476]|0;return b|0}do{if((a[51776]|0)==0){if((ub(51776)|0)==0){break}dv(32832,0,168)|0;Ub(322,0,u|0)|0}}while(0);sm(32832,16184)|0;sm(32844,16176)|0;sm(32856,16168)|0;sm(32868,16128)|0;sm(32880,16016)|0;sm(32892,16e3)|0;sm(32904,15984)|0;sm(32916,15960)|0;sm(32928,15904)|0;sm(32940,15824)|0;sm(32952,15816)|0;sm(32964,15808)|0;sm(32976,15776)|0;sm(32988,15712)|0;c[8476]=32832;b=c[8476]|0;return b|0}function wt(b){b=b|0;if((a[51832]|0)!=0){b=c[8454]|0;return b|0}if((ub(51832)|0)==0){b=c[8454]|0;return b|0}do{if((a[51752]|0)==0){if((ub(51752)|0)==0){break}dv(32088,0,168)|0;Ub(176,0,u|0)|0}}while(0);Dm(32088,16912)|0;Dm(32100,16880)|0;Dm(32112,16840)|0;Dm(32124,16728)|0;Dm(32136,16648)|0;Dm(32148,16616)|0;Dm(32160,16576)|0;Dm(32172,16544)|0;Dm(32184,16448)|0;Dm(32196,16424)|0;Dm(32208,16360)|0;Dm(32220,16344)|0;Dm(32232,16320)|0;Dm(32244,16256)|0;c[8454]=32088;b=c[8454]|0;return b|0}function xt(b){b=b|0;if((a[51880]|0)!=0){b=c[8474]|0;return b|0}if((ub(51880)|0)==0){b=c[8474]|0;return b|0}do{if((a[51768]|0)==0){if((ub(51768)|0)==0){break}dv(32544,0,288)|0;Ub(198,0,u|0)|0}}while(0);sm(32544,1360)|0;sm(32556,1272)|0;sm(32568,1208)|0;sm(32580,1096)|0;sm(32592,1088)|0;sm(32604,1064)|0;sm(32616,1016)|0;sm(32628,896)|0;sm(32640,800)|0;sm(32652,728)|0;sm(32664,688)|0;sm(32676,624)|0;sm(32688,528)|0;sm(32700,408)|0;sm(32712,400)|0;sm(32724,392)|0;sm(32736,1088)|0;sm(32748,376)|0;sm(32760,288)|0;sm(32772,17112)|0;sm(32784,17104)|0;sm(32796,17096)|0;sm(32808,17088)|0;sm(32820,17008)|0;c[8474]=32544;b=c[8474]|0;return b|0}function yt(b){b=b|0;if((a[51824]|0)!=0){b=c[8452]|0;return b|0}if((ub(51824)|0)==0){b=c[8452]|0;return b|0}do{if((a[51744]|0)==0){if((ub(51744)|0)==0){break}dv(31800,0,288)|0;Ub(146,0,u|0)|0}}while(0);Dm(31800,4560)|0;Dm(31812,4352)|0;Dm(31824,4152)|0;Dm(31836,4048)|0;Dm(31848,2448)|0;Dm(31860,3856)|0;Dm(31872,3760)|0;Dm(31884,3592)|0;Dm(31896,3424)|0;Dm(31908,3312)|0;Dm(31920,3184)|0;Dm(31932,3040)|0;Dm(31944,2880)|0;Dm(31956,2800)|0;Dm(31968,2680)|0;Dm(31980,2584)|0;Dm(31992,2448)|0;Dm(32004,2304)|0;Dm(32016,2120)|0;Dm(32028,2032)|0;Dm(32040,1904)|0;Dm(32052,1712)|0;Dm(32064,1544)|0;Dm(32076,1408)|0;c[8452]=31800;b=c[8452]|0;return b|0}function zt(b){b=b|0;if((a[51896]|0)!=0){b=c[8478]|0;return b|0}if((ub(51896)|0)==0){b=c[8478]|0;return b|0}do{if((a[51784]|0)==0){if((ub(51784)|0)==0){break}dv(33e3,0,288)|0;Ub(144,0,u|0)|0}}while(0);sm(33e3,5080)|0;sm(33012,4872)|0;c[8478]=33e3;b=c[8478]|0;return b|0}function At(b){b=b|0;if((a[51840]|0)!=0){b=c[8456]|0;return b|0}if((ub(51840)|0)==0){b=c[8456]|0;return b|0}do{if((a[51760]|0)==0){if((ub(51760)|0)==0){break}dv(32256,0,288)|0;Ub(208,0,u|0)|0}}while(0);Dm(32256,5568)|0;Dm(32268,5432)|0;c[8456]=32256;b=c[8456]|0;return b|0}function Bt(b){b=b|0;if((a[51904]|0)!=0){return 33920}if((ub(51904)|0)==0){return 33920}pm(33920,11072,8);Ub(314,33920,u|0)|0;return 33920}function Ct(b){b=b|0;if((a[51848]|0)!=0){return 33832}if((ub(51848)|0)==0){return 33832}Am(33832,10808,gu(10808)|0);Ub(230,33832,u|0)|0;return 33832}function Dt(b){b=b|0;if((a[51928]|0)!=0){return 33968}if((ub(51928)|0)==0){return 33968}pm(33968,10560,8);Ub(314,33968,u|0)|0;return 33968}function Et(b){b=b|0;if((a[51872]|0)!=0){return 33880}if((ub(51872)|0)==0){return 33880}Am(33880,10240,gu(10240)|0);Ub(230,33880,u|0)|0;return 33880}function Ft(b){b=b|0;if((a[51920]|0)!=0){return 33952}if((ub(51920)|0)==0){return 33952}pm(33952,9920,20);Ub(314,33952,u|0)|0;return 33952}function Gt(b){b=b|0;if((a[51864]|0)!=0){return 33864}if((ub(51864)|0)==0){return 33864}Am(33864,9512,gu(9512)|0);Ub(230,33864,u|0)|0;return 33864}function Ht(b){b=b|0;if((a[51912]|0)!=0){return 33936}if((ub(51912)|0)==0){return 33936}pm(33936,9144,11);Ub(314,33936,u|0)|0;return 33936}function It(b){b=b|0;if((a[51856]|0)!=0){return 33848}if((ub(51856)|0)==0){return 33848}Am(33848,8832,gu(8832)|0);Ub(230,33848,u|0)|0;return 33848}function Jt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0.0,l=0;f=i;i=i+8|0;g=f|0;if((b|0)==(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}j=Vb()|0;h=c[j>>2]|0;c[j>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);k=+bv(b,g,c[8330]|0);b=c[j>>2]|0;if((b|0)==0){c[j>>2]=h}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}if((b|0)!=34){i=f;return+k}c[e>>2]=4;i=f;return+k}function Kt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0.0,l=0;f=i;i=i+8|0;g=f|0;if((b|0)==(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}j=Vb()|0;h=c[j>>2]|0;c[j>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);k=+bv(b,g,c[8330]|0);b=c[j>>2]|0;if((b|0)==0){c[j>>2]=h}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}if((b|0)!=34){i=f;return+k}c[e>>2]=4;i=f;return+k}function Lt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0.0,l=0;f=i;i=i+8|0;g=f|0;if((b|0)==(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}j=Vb()|0;h=c[j>>2]|0;c[j>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);k=+bv(b,g,c[8330]|0);b=c[j>>2]|0;if((b|0)==0){c[j>>2]=h}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;k=0.0;i=f;return+k}if((b|0)==34){c[e>>2]=4}i=f;return+k}function Mt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+8|0;g=k|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;l=0;i=k;return(K=b,l)|0}if((a[b]|0)==45){c[e>>2]=4;b=0;l=0;i=k;return(K=b,l)|0}h=Vb()|0;j=c[h>>2]|0;c[h>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);b=Ib(b|0,g|0,f|0,c[8330]|0)|0;f=K;l=c[h>>2]|0;if((l|0)==0){c[h>>2]=j}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;b=0;l=0;i=k;return(K=b,l)|0}if((l|0)!=34){l=b;i=k;return(K=f,l)|0}c[e>>2]=4;b=-1;l=-1;i=k;return(K=b,l)|0}function Nt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+8|0;g=k|0;if((b|0)==(d|0)){c[e>>2]=4;l=0;i=k;return l|0}if((a[b]|0)==45){c[e>>2]=4;l=0;i=k;return l|0}h=Vb()|0;j=c[h>>2]|0;c[h>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);l=Ib(b|0,g|0,f|0,c[8330]|0)|0;b=K;f=c[h>>2]|0;if((f|0)==0){c[h>>2]=j}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;l=0;i=k;return l|0}j=0;if((f|0)==34|(b>>>0>j>>>0|b>>>0==j>>>0&l>>>0>-1>>>0)){c[e>>2]=4;l=-1;i=k;return l|0}else{i=k;return l|0}return 0}function Ot(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+8|0;g=k|0;if((b|0)==(d|0)){c[e>>2]=4;l=0;i=k;return l|0}if((a[b]|0)==45){c[e>>2]=4;l=0;i=k;return l|0}h=Vb()|0;j=c[h>>2]|0;c[h>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);l=Ib(b|0,g|0,f|0,c[8330]|0)|0;b=K;f=c[h>>2]|0;if((f|0)==0){c[h>>2]=j}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;l=0;i=k;return l|0}j=0;if((f|0)==34|(b>>>0>j>>>0|b>>>0==j>>>0&l>>>0>-1>>>0)){c[e>>2]=4;l=-1;i=k;return l|0}else{i=k;return l|0}return 0}function Pt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+8|0;g=k|0;if((b|0)==(d|0)){c[e>>2]=4;l=0;i=k;return l|0}if((a[b]|0)==45){c[e>>2]=4;l=0;i=k;return l|0}h=Vb()|0;j=c[h>>2]|0;c[h>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);l=Ib(b|0,g|0,f|0,c[8330]|0)|0;b=K;f=c[h>>2]|0;if((f|0)==0){c[h>>2]=j}if((c[g>>2]|0)!=(d|0)){c[e>>2]=4;l=0;i=k;return l|0}j=0;if((f|0)==34|(b>>>0>j>>>0|b>>>0==j>>>0&l>>>0>65535>>>0)){c[e>>2]=4;l=-1;i=k;return l|0}else{l=l&65535;i=k;return l|0}return 0}function Qt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+8|0;j=g|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;l=0;i=g;return(K=b,l)|0}k=Vb()|0;h=c[k>>2]|0;c[k>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);b=Lb(b|0,j|0,f|0,c[8330]|0)|0;f=K;l=c[k>>2]|0;if((l|0)==0){c[k>>2]=h}if((c[j>>2]|0)!=(d|0)){c[e>>2]=4;b=0;l=0;i=g;return(K=b,l)|0}if((l|0)==34){c[e>>2]=4;h=0;h=(f|0)>(h|0)|(f|0)==(h|0)&b>>>0>0>>>0;i=g;return(K=h?2147483647:-2147483648,h?-1:0)|0}else{l=b;i=g;return(K=f,l)|0}return 0}function Rt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+8|0;j=g|0;if((b|0)==(d|0)){c[e>>2]=4;l=0;i=g;return l|0}k=Vb()|0;h=c[k>>2]|0;c[k>>2]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}l=Xa(2147483647,14472,0)|0;c[8330]=l}}while(0);b=Lb(b|0,j|0,f|0,c[8330]|0)|0;f=K;l=c[k>>2]|0;if((l|0)==0){c[k>>2]=h}if((c[j>>2]|0)!=(d|0)){c[e>>2]=4;l=0;i=g;return l|0}do{if((l|0)==34){c[e>>2]=4;l=0;if((f|0)>(l|0)|(f|0)==(l|0)&b>>>0>0>>>0){h=2147483647}else{break}i=g;return h|0}else{l=-1;if((f|0)<(l|0)|(f|0)==(l|0)&b>>>0<-2147483648>>>0){c[e>>2]=4;break}l=0;if((f|0)>(l|0)|(f|0)==(l|0)&b>>>0>2147483647>>>0){c[e>>2]=4;l=2147483647;i=g;return l|0}else{l=b;i=g;return l|0}}}while(0);l=-2147483648;i=g;return l|0}function St(a){a=a|0;var b=0,d=0;b=a+4|0;d=(c[a>>2]|0)+(c[b+4>>2]|0)|0;a=d;b=c[b>>2]|0;if((b&1|0)==0){d=b;Dc[d&511](a);return}else{d=c[(c[d>>2]|0)+(b-1)>>2]|0;Dc[d&511](a);return}}function Tt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=b+8|0;e=b+4|0;g=c[e>>2]|0;k=c[f>>2]|0;i=g;if(!(k-i>>2>>>0<d>>>0)){do{if((g|0)==0){b=0}else{c[g>>2]=0;b=c[e>>2]|0}g=b+4|0;c[e>>2]=g;d=d-1|0;}while((d|0)!=0);return}g=b+16|0;h=b|0;m=c[h>>2]|0;i=i-m>>2;l=i+d|0;if(l>>>0>1073741823>>>0){Nr(0)}k=k-m|0;do{if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<l>>>0?l:k;if((l|0)==0){k=0;l=0;break}k=b+128|0;if(!((a[k]|0)==0&l>>>0<29>>>0)){j=11;break}a[k]=1;k=g}else{l=1073741823;j=11}}while(0);if((j|0)==11){k=Nu(l<<2)|0}j=k+(i<<2)|0;do{if((j|0)==0){j=0}else{c[j>>2]=0}j=j+4|0;d=d-1|0;}while((d|0)!=0);d=c[h>>2]|0;n=(c[e>>2]|0)-d|0;m=k+(i-(n>>2)<<2)|0;i=d;cv(m|0,i|0,n)|0;c[h>>2]=m;c[e>>2]=j;c[f>>2]=k+(l<<2);if((d|0)==0){return}if((g|0)==(d|0)){a[b+128|0]=0;return}else{Pu(i);return}}function Ut(a){a=a|0;Cm(32532);Cm(32520);Cm(32508);Cm(32496);Cm(32484);Cm(32472);Cm(32460);Cm(32448);Cm(32436);Cm(32424);Cm(32412);Cm(32400);Cm(32388);Cm(32376);Cm(32364);Cm(32352);Cm(32340);Cm(32328);Cm(32316);Cm(32304);Cm(32292);Cm(32280);Cm(32268);Cm(32256);return}function Vt(a){a=a|0;rm(33276);rm(33264);rm(33252);rm(33240);rm(33228);rm(33216);rm(33204);rm(33192);rm(33180);rm(33168);rm(33156);rm(33144);rm(33132);rm(33120);rm(33108);rm(33096);rm(33084);rm(33072);rm(33060);rm(33048);rm(33036);rm(33024);rm(33012);rm(33e3);return}function Wt(a){a=a|0;Cm(32076);Cm(32064);Cm(32052);Cm(32040);Cm(32028);Cm(32016);Cm(32004);Cm(31992);Cm(31980);Cm(31968);Cm(31956);Cm(31944);Cm(31932);Cm(31920);Cm(31908);Cm(31896);Cm(31884);Cm(31872);Cm(31860);Cm(31848);Cm(31836);Cm(31824);Cm(31812);Cm(31800);return}function Xt(a){a=a|0;rm(32820);rm(32808);rm(32796);rm(32784);rm(32772);rm(32760);rm(32748);rm(32736);rm(32724);rm(32712);rm(32700);rm(32688);rm(32676);rm(32664);rm(32652);rm(32640);rm(32628);rm(32616);rm(32604);rm(32592);rm(32580);rm(32568);rm(32556);rm(32544);return}function Yt(a){a=a|0;Cm(32244);Cm(32232);Cm(32220);Cm(32208);Cm(32196);Cm(32184);Cm(32172);Cm(32160);Cm(32148);Cm(32136);Cm(32124);Cm(32112);Cm(32100);Cm(32088);return}function Zt(a){a=a|0;rm(32988);rm(32976);rm(32964);rm(32952);rm(32940);rm(32928);rm(32916);rm(32904);rm(32892);rm(32880);rm(32868);rm(32856);rm(32844);rm(32832);return}function _t(a,b,c){a=a|0;b=b|0;c=c|0;return $t(0,a,b,(c|0)!=0?c:31056)|0}function $t(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+8|0;h=g|0;c[h>>2]=b;f=((f|0)==0?31048:f)|0;k=c[f>>2]|0;a:do{if((d|0)==0){if((k|0)==0){e=0}else{break}i=g;return e|0}else{if((b|0)==0){j=h;c[h>>2]=j;h=j}else{h=b}if((e|0)==0){k=-2;i=g;return k|0}do{if((k|0)==0){b=a[d]|0;j=b&255;if(b<<24>>24>-1){c[h>>2]=j;k=b<<24>>24!=0|0;i=g;return k|0}else{b=j-194|0;if(b>>>0>50>>>0){break a}d=d+1|0;k=c[18936+(b<<2)>>2]|0;j=e-1|0;break}}else{j=e}}while(0);b:do{if((j|0)!=0){b=a[d]|0;l=(b&255)>>>3;if((l-16|l+(k>>26))>>>0>7>>>0){break a}while(1){d=d+1|0;k=(b&255)-128|k<<6;j=j-1|0;if((k|0)>=0){break}if((j|0)==0){break b}b=a[d]|0;if(((b&255)-128|0)>>>0>63>>>0){break a}}c[f>>2]=0;c[h>>2]=k;l=e-j|0;i=g;return l|0}}while(0);c[f>>2]=k;l=-2;i=g;return l|0}}while(0);c[f>>2]=0;l=Vb()|0;c[l>>2]=84;l=-1;i=g;return l|0}function au(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;j=i;i=i+1032|0;g=j+1024|0;m=c[b>>2]|0;c[g>>2]=m;h=(a|0)!=0;k=j|0;e=h?e:256;l=h?a:k;a:do{if((m|0)==0|(e|0)==0){k=d;a=0}else{a=0;while(1){o=d>>>2;n=o>>>0>=e>>>0;if(!(n|d>>>0>131>>>0)){k=d;break a}m=n?e:o;d=d-m|0;m=bu(l,g,m,f)|0;if((m|0)==-1){break}if((l|0)==(k|0)){l=k}else{l=l+(m<<2)|0;e=e-m|0}a=m+a|0;m=c[g>>2]|0;if((m|0)==0|(e|0)==0){k=d;break a}}k=d;a=-1;e=0;m=c[g>>2]|0}}while(0);b:do{if((m|0)!=0){if((e|0)==0|(k|0)==0){break}while(1){d=$t(l,m,k,f)|0;if((d+2|0)>>>0<3>>>0){break}m=(c[g>>2]|0)+d|0;c[g>>2]=m;e=e-1|0;a=a+1|0;if((e|0)==0|(k|0)==(d|0)){break b}else{l=l+4|0;k=k-d|0}}if((d|0)==0){c[g>>2]=0;break}else if((d|0)==(-1|0)){a=-1;break}else{c[f>>2]=0;break}}}while(0);if(!h){i=j;return a|0}c[b>>2]=c[g>>2];i=j;return a|0}function bu(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;h=c[e>>2]|0;do{if((g|0)==0){g=5}else{g=g|0;j=c[g>>2]|0;if((j|0)==0){g=5;break}if((b|0)==0){i=f;g=16;break}c[g>>2]=0;i=f;g=36}}while(0);if((g|0)==5){if((b|0)==0){i=f;g=7}else{i=f;g=6}}a:while(1){if((g|0)==6){if((i|0)==0){g=53;break}while(1){g=a[h]|0;do{if(((g&255)-1|0)>>>0<127>>>0){if(!((h&3|0)==0&i>>>0>3>>>0)){j=g;break}while(1){j=c[h>>2]|0;if(((j-16843009|j)&-2139062144|0)!=0){g=30;break}c[b>>2]=j&255;c[b+4>>2]=d[h+1|0]|0;c[b+8>>2]=d[h+2|0]|0;j=h+4|0;k=b+16|0;c[b+12>>2]=d[h+3|0]|0;i=i-4|0;if(i>>>0>3>>>0){b=k;h=j}else{g=31;break}}if((g|0)==30){j=j&255;break}else if((g|0)==31){h=j;b=k;j=a[j]|0;break}}else{j=g}}while(0);g=j&255;if(!((g-1|0)>>>0<127>>>0)){break}c[b>>2]=g;i=i-1|0;if((i|0)==0){g=53;break a}else{b=b+4|0;h=h+1|0}}g=g-194|0;if(g>>>0>50>>>0){g=47;break}j=c[18936+(g<<2)>>2]|0;h=h+1|0;g=36;continue}else if((g|0)==7){g=a[h]|0;do{if(((g&255)-1|0)>>>0<127>>>0){if((h&3|0)!=0){break}g=c[h>>2]|0;if(((g-16843009|g)&-2139062144|0)!=0){g=g&255;break}do{h=h+4|0;i=i-4|0;g=c[h>>2]|0;}while(((g-16843009|g)&-2139062144|0)==0);g=g&255}}while(0);g=g&255;if((g-1|0)>>>0<127>>>0){h=h+1|0;i=i-1|0;g=7;continue}g=g-194|0;if(g>>>0>50>>>0){g=47;break}j=c[18936+(g<<2)>>2]|0;h=h+1|0;g=16;continue}else if((g|0)==16){k=(d[h]|0)>>>3;if((k-16|k+(j>>26))>>>0>7>>>0){g=17;break}g=h+1|0;do{if((j&33554432|0)==0){h=g}else{if(((d[g]|0)-128|0)>>>0>63>>>0){g=20;break a}g=h+2|0;if((j&524288|0)==0){h=g;break}if(((d[g]|0)-128|0)>>>0>63>>>0){g=23;break a}h=h+3|0}}while(0);i=i-1|0;g=7;continue}else if((g|0)==36){k=d[h]|0;g=k>>>3;if((g-16|g+(j>>26))>>>0>7>>>0){g=37;break}g=h+1|0;j=k-128|j<<6;do{if((j|0)<0){k=(d[g]|0)-128|0;if(k>>>0>63>>>0){g=40;break a}g=h+2|0;j=k|j<<6;if((j|0)>=0){h=g;break}g=(d[g]|0)-128|0;if(g>>>0>63>>>0){g=43;break a}j=g|j<<6;h=h+3|0}else{h=g}}while(0);c[b>>2]=j;b=b+4|0;i=i-1|0;g=6;continue}}if((g|0)==17){h=h-1|0;g=46}else if((g|0)==20){h=h-1|0;g=46}else if((g|0)==23){h=h-1|0;g=46}else if((g|0)==37){h=h-1|0;g=46}else if((g|0)==40){h=h-1|0;g=46}else if((g|0)==43){h=h-1|0;g=46}else if((g|0)==53){return f|0}if((g|0)==46){if((j|0)==0){g=47}}do{if((g|0)==47){if((a[h]|0)!=0){break}if((b|0)!=0){c[b>>2]=0;c[e>>2]=0}k=f-i|0;return k|0}}while(0);k=Vb()|0;c[k>>2]=84;if((b|0)==0){k=-1;return k|0}c[e>>2]=h;k=-1;return k|0}function cu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+8|0;h=g|0;c[h>>2]=b;if((e|0)==0){j=0;i=g;return j|0}do{if((f|0)!=0){if((b|0)==0){j=h;c[h>>2]=j;h=j}else{h=b}b=a[e]|0;j=b&255;if(b<<24>>24>-1){c[h>>2]=j;j=b<<24>>24!=0|0;i=g;return j|0}j=j-194|0;if(j>>>0>50>>>0){break}b=e+1|0;j=c[18936+(j<<2)>>2]|0;if(f>>>0<4>>>0){if((j&-2147483648>>>(((f*6|0)-6|0)>>>0)|0)!=0){break}}f=d[b]|0;b=f>>>3;if((b-16|b+(j>>26))>>>0>7>>>0){break}f=f-128|j<<6;if((f|0)>=0){c[h>>2]=f;j=2;i=g;return j|0}b=(d[e+2|0]|0)-128|0;if(b>>>0>63>>>0){break}f=b|f<<6;if((f|0)>=0){c[h>>2]=f;j=3;i=g;return j|0}e=(d[e+3|0]|0)-128|0;if(e>>>0>63>>>0){break}c[h>>2]=e|f<<6;j=4;i=g;return j|0}}while(0);j=Vb()|0;c[j>>2]=84;j=-1;i=g;return j|0}function du(b,d,e){b=b|0;d=d|0;e=e|0;if((b|0)==0){e=1;return e|0}if(d>>>0<128>>>0){a[b]=d;e=1;return e|0}if(d>>>0<2048>>>0){a[b]=d>>>6|192;a[b+1|0]=d&63|128;e=2;return e|0}if(d>>>0<55296>>>0|(d-57344|0)>>>0<8192>>>0){a[b]=d>>>12|224;a[b+1|0]=d>>>6&63|128;a[b+2|0]=d&63|128;e=3;return e|0}if((d-65536|0)>>>0<1048576>>>0){a[b]=d>>>18|240;a[b+1|0]=d>>>12&63|128;a[b+2|0]=d>>>6&63|128;a[b+3|0]=d&63|128;e=4;return e|0}else{e=Vb()|0;c[e>>2]=84;e=-1;return e|0}return 0}function eu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;h=i;i=i+264|0;f=h+256|0;j=h|0;l=c[b>>2]|0;c[f>>2]=l;g=(a|0)!=0;e=g?e:256;k=g?a:j;a:do{if((l|0)==0|(e|0)==0){j=d;a=0}else{a=0;while(1){m=d>>>0>=e>>>0;if(!(m|d>>>0>32>>>0)){j=d;break a}l=m?e:d;d=d-l|0;l=fu(k,f,l,0)|0;if((l|0)==-1){break}if((k|0)==(j|0)){k=j}else{k=k+l|0;e=e-l|0}a=l+a|0;l=c[f>>2]|0;if((l|0)==0|(e|0)==0){j=d;break a}}j=d;a=-1;e=0;l=c[f>>2]|0}}while(0);b:do{if((l|0)!=0){if((e|0)==0|(j|0)==0){break}while(1){d=du(k,c[l>>2]|0,0)|0;if((d+1|0)>>>0<2>>>0){break}l=(c[f>>2]|0)+4|0;c[f>>2]=l;j=j-1|0;a=a+1|0;if((e|0)==(d|0)|(j|0)==0){break b}else{e=e-d|0;k=k+d|0}}if((d|0)!=0){a=-1;break}c[f>>2]=0}}while(0);if(!g){i=h;return a|0}c[b>>2]=c[f>>2];i=h;return a|0}function fu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;f=i;i=i+8|0;j=f|0;if((b|0)==0){l=c[d>>2]|0;k=j|0;m=c[l>>2]|0;if((m|0)==0){m=0;i=f;return m|0}else{h=0}while(1){if(m>>>0>127>>>0){m=du(k,m,0)|0;if((m|0)==-1){h=-1;l=26;break}}else{m=1}h=m+h|0;l=l+4|0;m=c[l>>2]|0;if((m|0)==0){l=26;break}}if((l|0)==26){i=f;return h|0}}a:do{if(e>>>0>3>>>0){k=e;l=c[d>>2]|0;while(1){m=c[l>>2]|0;if((m|0)==0){break a}if(m>>>0>127>>>0){m=du(b,m,0)|0;if((m|0)==-1){h=-1;break}b=b+m|0;k=k-m|0}else{a[b]=m;b=b+1|0;k=k-1|0;l=c[d>>2]|0}l=l+4|0;c[d>>2]=l;if(!(k>>>0>3>>>0)){break a}}i=f;return h|0}else{k=e}}while(0);b:do{if((k|0)==0){g=0}else{j=j|0;l=c[d>>2]|0;while(1){m=c[l>>2]|0;if((m|0)==0){l=24;break}if(m>>>0>127>>>0){m=du(j,m,0)|0;if((m|0)==-1){h=-1;l=26;break}if(m>>>0>k>>>0){l=20;break}du(b,c[l>>2]|0,0)|0;b=b+m|0;k=k-m|0}else{a[b]=m;b=b+1|0;k=k-1|0;l=c[d>>2]|0}l=l+4|0;c[d>>2]=l;if((k|0)==0){g=0;break b}}if((l|0)==20){m=e-k|0;i=f;return m|0}else if((l|0)==24){a[b]=0;g=k;break}else if((l|0)==26){i=f;return h|0}}}while(0);c[d>>2]=0;m=e-g|0;i=f;return m|0}function gu(a){a=a|0;var b=0;b=a;while(1){if((c[b>>2]|0)==0){break}else{b=b+4|0}}return b-a>>2|0}function hu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((d|0)==0){return a|0}else{e=d;d=a}while(1){e=e-1|0;c[d>>2]=c[b>>2];if((e|0)==0){break}else{b=b+4|0;d=d+4|0}}return a|0}function iu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(d|0)==0;if(a-b>>2>>>0<d>>>0){if(e){return a|0}do{d=d-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2];}while((d|0)!=0);return a|0}else{if(e){return a|0}else{e=a}while(1){d=d-1|0;c[e>>2]=c[b>>2];if((d|0)==0){break}else{b=b+4|0;e=e+4|0}}return a|0}return 0}function ju(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((d|0)==0){return a|0}else{e=a}while(1){d=d-1|0;c[e>>2]=b;if((d|0)==0){break}else{e=e+4|0}}return a|0}function ku(a){a=a|0;return}function lu(a){a=a|0;c[a>>2]=19504;return}function mu(a){a=a|0;Pu(a);return}function nu(a){a=a|0;return}function ou(a){a=a|0;return 7128}function pu(a){a=a|0;ku(a|0);return}function qu(a){a=a|0;return}function ru(a){a=a|0;return}function su(a){a=a|0;ku(a|0);Pu(a);return}function tu(a){a=a|0;ku(a|0);Pu(a);return}function uu(a){a=a|0;ku(a|0);Pu(a);return}function vu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+56|0;f=e|0;if((a|0)==(b|0)){g=1;i=e;return g|0}if((b|0)==0){g=0;i=e;return g|0}g=zu(b,27072,27056,0)|0;b=g;if((g|0)==0){g=0;i=e;return g|0}dv(f|0,0,56)|0;c[f>>2]=b;c[f+8>>2]=a;c[f+12>>2]=-1;c[f+48>>2]=1;Wc[c[(c[g>>2]|0)+28>>2]&63](b,f,c[d>>2]|0,1);if((c[f+24>>2]|0)!=1){g=0;i=e;return g|0}c[d>>2]=c[f+16>>2];g=1;i=e;return g|0}function wu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((c[d+8>>2]|0)!=(b|0)){return}b=d+16|0;g=c[b>>2]|0;if((g|0)==0){c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;return}if((g|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;c[d+24>>2]=2;a[d+54|0]=1;return}e=d+24|0;if((c[e>>2]|0)!=2){return}c[e>>2]=f;return}function xu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;if((b|0)!=(c[d+8>>2]|0)){g=c[b+8>>2]|0;Wc[c[(c[g>>2]|0)+28>>2]&63](g,d,e,f);return}b=d+16|0;g=c[b>>2]|0;if((g|0)==0){c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;return}if((g|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;c[d+24>>2]=2;a[d+54|0]=1;return}e=d+24|0;if((c[e>>2]|0)!=2){return}c[e>>2]=f;return}function yu(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if((b|0)==(c[d+8>>2]|0)){h=d+16|0;g=c[h>>2]|0;if((g|0)==0){c[h>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1;return}if((g|0)!=(e|0)){k=d+36|0;c[k>>2]=(c[k>>2]|0)+1;c[d+24>>2]=2;a[d+54|0]=1;return}e=d+24|0;if((c[e>>2]|0)!=2){return}c[e>>2]=f;return}h=c[b+12>>2]|0;g=b+16+(h<<3)|0;i=c[b+20>>2]|0;j=i>>8;if((i&1|0)!=0){j=c[(c[e>>2]|0)+j>>2]|0}k=c[b+16>>2]|0;Wc[c[(c[k>>2]|0)+28>>2]&63](k,d,e+j|0,(i&2|0)!=0?f:2);if((h|0)<=1){return}i=d+54|0;h=e;b=b+24|0;while(1){j=c[b+4>>2]|0;k=j>>8;if((j&1|0)!=0){k=c[(c[h>>2]|0)+k>>2]|0}l=c[b>>2]|0;Wc[c[(c[l>>2]|0)+28>>2]&63](l,d,e+k|0,(j&2|0)!=0?f:2);if((a[i]|0)!=0){f=16;break}b=b+8|0;if(!(b>>>0<g>>>0)){f=16;break}}if((f|0)==16){return}}function zu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;f=i;i=i+56|0;h=f|0;k=c[a>>2]|0;g=a+(c[k-8>>2]|0)|0;k=c[k-4>>2]|0;j=k;c[h>>2]=d;c[h+4>>2]=a;c[h+8>>2]=b;c[h+12>>2]=e;n=h+16|0;b=h+20|0;a=h+24|0;l=h+28|0;e=h+32|0;m=h+40|0;dv(n|0,0,39)|0;do{if((k|0)==(d|0)){c[h+48>>2]=1;Kc[c[(c[k>>2]|0)+20>>2]&63](j,h,g,g,1,0);d=(c[a>>2]|0)==1?g:0}else{Cc[c[(c[k>>2]|0)+24>>2]&31](j,h,g,1,0);d=c[h+36>>2]|0;if((d|0)==0){if((c[m>>2]|0)!=1){d=0;break}if((c[l>>2]|0)!=1){d=0;break}d=(c[e>>2]|0)==1?c[b>>2]|0:0;break}else if((d|0)!=1){d=0;break}if((c[a>>2]|0)!=1){if((c[m>>2]|0)!=0){d=0;break}if((c[l>>2]|0)!=1){d=0;break}if((c[e>>2]|0)!=1){d=0;break}}d=c[n>>2]|0}}while(0);i=f;return d|0}function Au(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=b|0;if((j|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)!=(e|0)){return}e=d+28|0;if((c[e>>2]|0)==1){return}c[e>>2]=f;return}if((j|0)==(c[d>>2]|0)){do{if((c[d+16>>2]|0)!=(e|0)){j=d+20|0;if((c[j>>2]|0)==(e|0)){break}c[d+32>>2]=f;k=d+44|0;if((c[k>>2]|0)==4){return}v=c[b+12>>2]|0;m=b+16+(v<<3)|0;a:do{if((v|0)>0){q=d+52|0;r=d+53|0;s=d+54|0;p=b+8|0;l=d+24|0;n=e;o=0;b=b+16|0;t=0;b:do{a[q]=0;a[r]=0;u=c[b+4>>2]|0;v=u>>8;if((u&1|0)!=0){v=c[(c[n>>2]|0)+v>>2]|0}w=c[b>>2]|0;Kc[c[(c[w>>2]|0)+20>>2]&63](w,d,e,e+v|0,2-(u>>>1&1)|0,g);if((a[s]|0)!=0){break}do{if((a[r]|0)!=0){if((a[q]|0)==0){if((c[p>>2]&1|0)==0){t=1;break b}else{t=1;break}}if((c[l>>2]|0)==1){l=27;break a}if((c[p>>2]&2|0)==0){l=27;break a}else{t=1;o=1}}}while(0);b=b+8|0;}while(b>>>0<m>>>0);if(o){i=t;l=26}else{h=t;l=23}}else{h=0;l=23}}while(0);do{if((l|0)==23){c[j>>2]=e;w=d+40|0;c[w>>2]=(c[w>>2]|0)+1;if((c[d+36>>2]|0)!=1){i=h;l=26;break}if((c[d+24>>2]|0)!=2){i=h;l=26;break}a[d+54|0]=1;if(h){l=27}else{l=28}}}while(0);if((l|0)==26){if(i){l=27}else{l=28}}if((l|0)==27){c[k>>2]=3;return}else if((l|0)==28){c[k>>2]=4;return}}}while(0);if((f|0)!=1){return}c[d+32>>2]=1;return}j=c[b+12>>2]|0;h=b+16+(j<<3)|0;i=c[b+20>>2]|0;k=i>>8;if((i&1|0)!=0){k=c[(c[e>>2]|0)+k>>2]|0}w=c[b+16>>2]|0;Cc[c[(c[w>>2]|0)+24>>2]&31](w,d,e+k|0,(i&2|0)!=0?f:2,g);i=b+24|0;if((j|0)<=1){return}k=c[b+8>>2]|0;do{if((k&2|0)==0){j=d+36|0;if((c[j>>2]|0)==1){break}if((k&1|0)==0){l=d+54|0;k=e;n=i;while(1){if((a[l]|0)!=0){l=53;break}if((c[j>>2]|0)==1){l=53;break}m=c[n+4>>2]|0;o=m>>8;if((m&1|0)!=0){o=c[(c[k>>2]|0)+o>>2]|0}w=c[n>>2]|0;Cc[c[(c[w>>2]|0)+24>>2]&31](w,d,e+o|0,(m&2|0)!=0?f:2,g);n=n+8|0;if(!(n>>>0<h>>>0)){l=53;break}}if((l|0)==53){return}}m=d+24|0;l=d+54|0;k=e;o=i;while(1){if((a[l]|0)!=0){l=53;break}if((c[j>>2]|0)==1){if((c[m>>2]|0)==1){l=53;break}}n=c[o+4>>2]|0;p=n>>8;if((n&1|0)!=0){p=c[(c[k>>2]|0)+p>>2]|0}w=c[o>>2]|0;Cc[c[(c[w>>2]|0)+24>>2]&31](w,d,e+p|0,(n&2|0)!=0?f:2,g);o=o+8|0;if(!(o>>>0<h>>>0)){l=53;break}}if((l|0)==53){return}}}while(0);j=d+54|0;k=e;while(1){if((a[j]|0)!=0){l=53;break}l=c[i+4>>2]|0;m=l>>8;if((l&1|0)!=0){m=c[(c[k>>2]|0)+m>>2]|0}w=c[i>>2]|0;Cc[c[(c[w>>2]|0)+24>>2]&31](w,d,e+m|0,(l&2|0)!=0?f:2,g);i=i+8|0;if(!(i>>>0<h>>>0)){l=53;break}}if((l|0)==53){return}}function Bu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;i=b|0;if((i|0)==(c[d+8>>2]|0)){if((c[d+4>>2]|0)!=(e|0)){return}h=d+28|0;if((c[h>>2]|0)==1){return}c[h>>2]=f;return}if((i|0)!=(c[d>>2]|0)){j=c[b+8>>2]|0;Cc[c[(c[j>>2]|0)+24>>2]&31](j,d,e,f,g);return}do{if((c[d+16>>2]|0)!=(e|0)){i=d+20|0;if((c[i>>2]|0)==(e|0)){break}c[d+32>>2]=f;f=d+44|0;if((c[f>>2]|0)==4){return}j=d+52|0;a[j]=0;k=d+53|0;a[k]=0;b=c[b+8>>2]|0;Kc[c[(c[b>>2]|0)+20>>2]&63](b,d,e,e,1,g);if((a[k]|0)==0){b=0;h=13}else{if((a[j]|0)==0){b=1;h=13}}a:do{if((h|0)==13){c[i>>2]=e;k=d+40|0;c[k>>2]=(c[k>>2]|0)+1;do{if((c[d+36>>2]|0)==1){if((c[d+24>>2]|0)!=2){h=16;break}a[d+54|0]=1;if(b){break a}}else{h=16}}while(0);if((h|0)==16){if(b){break}}c[f>>2]=4;return}}while(0);c[f>>2]=3;return}}while(0);if((f|0)!=1){return}c[d+32>>2]=1;return}function Cu(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((c[d+8>>2]|0)==(b|0)){if((c[d+4>>2]|0)!=(e|0)){return}d=d+28|0;if((c[d>>2]|0)==1){return}c[d>>2]=f;return}if((c[d>>2]|0)!=(b|0)){return}do{if((c[d+16>>2]|0)!=(e|0)){b=d+20|0;if((c[b>>2]|0)==(e|0)){break}c[d+32>>2]=f;c[b>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;do{if((c[d+36>>2]|0)==1){if((c[d+24>>2]|0)!=2){break}a[d+54|0]=1}}while(0);c[d+44>>2]=4;return}}while(0);if((f|0)!=1){return}c[d+32>>2]=1;return}function Du(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;if((b|0)!=(c[d+8>>2]|0)){k=d+52|0;j=a[k]|0;m=d+53|0;l=a[m]|0;o=c[b+12>>2]|0;i=b+16+(o<<3)|0;a[k]=0;a[m]=0;n=c[b+20>>2]|0;p=n>>8;if((n&1|0)!=0){p=c[(c[f>>2]|0)+p>>2]|0}s=c[b+16>>2]|0;Kc[c[(c[s>>2]|0)+20>>2]&63](s,d,e,f+p|0,(n&2|0)!=0?g:2,h);a:do{if((o|0)>1){p=d+24|0;o=b+8|0;q=d+54|0;n=f;b=b+24|0;do{if((a[q]|0)!=0){break a}do{if((a[k]|0)==0){if((a[m]|0)==0){break}if((c[o>>2]&1|0)==0){break a}}else{if((c[p>>2]|0)==1){break a}if((c[o>>2]&2|0)==0){break a}}}while(0);a[k]=0;a[m]=0;r=c[b+4>>2]|0;s=r>>8;if((r&1|0)!=0){s=c[(c[n>>2]|0)+s>>2]|0}t=c[b>>2]|0;Kc[c[(c[t>>2]|0)+20>>2]&63](t,d,e,f+s|0,(r&2|0)!=0?g:2,h);b=b+8|0;}while(b>>>0<i>>>0)}}while(0);a[k]=j;a[m]=l;return}a[d+53|0]=1;if((c[d+4>>2]|0)!=(f|0)){return}a[d+52|0]=1;i=d+16|0;j=c[i>>2]|0;if((j|0)==0){c[i>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}if((j|0)!=(e|0)){t=d+36|0;c[t>>2]=(c[t>>2]|0)+1;a[d+54|0]=1;return}e=d+24|0;i=c[e>>2]|0;if((i|0)==2){c[e>>2]=g}else{g=i}if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}function Eu(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if((b|0)!=(c[d+8>>2]|0)){b=c[b+8>>2]|0;Kc[c[(c[b>>2]|0)+20>>2]&63](b,d,e,f,g,h);return}a[d+53|0]=1;if((c[d+4>>2]|0)!=(f|0)){return}a[d+52|0]=1;b=d+16|0;f=c[b>>2]|0;if((f|0)==0){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}if((f|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54|0]=1;return}e=d+24|0;b=c[e>>2]|0;if((b|0)==2){c[e>>2]=g}else{g=b}if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}function Fu(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;if((c[d+8>>2]|0)!=(b|0)){return}a[d+53|0]=1;if((c[d+4>>2]|0)!=(f|0)){return}a[d+52|0]=1;f=d+16|0;b=c[f>>2]|0;if((b|0)==0){c[f>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}if((b|0)!=(e|0)){h=d+36|0;c[h>>2]=(c[h>>2]|0)+1;a[d+54|0]=1;return}e=d+24|0;f=c[e>>2]|0;if((f|0)==2){c[e>>2]=g}else{g=f}if(!((c[d+48>>2]|0)==1&(g|0)==1)){return}a[d+54|0]=1;return}function Gu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;do{if(a>>>0<245>>>0){if(a>>>0<11>>>0){a=16}else{a=a+11&-8}b=a>>>3;e=c[7832]|0;f=e>>>(b>>>0);if((f&3|0)!=0){f=(f&1^1)+b|0;g=f<<1;a=31368+(g<<2)|0;g=31368+(g+2<<2)|0;d=c[g>>2]|0;b=d+8|0;h=c[b>>2]|0;do{if((a|0)==(h|0)){c[7832]=e&~(1<<f)}else{if(h>>>0<(c[7836]|0)>>>0){hc();return 0}e=h+12|0;if((c[e>>2]|0)==(d|0)){c[e>>2]=a;c[g>>2]=h;break}else{hc();return 0}}}while(0);q=f<<3;c[d+4>>2]=q|3;q=d+(q|4)|0;c[q>>2]=c[q>>2]|1;q=b;return q|0}if(!(a>>>0>(c[7834]|0)>>>0)){break}if((f|0)!=0){d=2<<b;d=f<<b&(d|-d);d=(d&-d)-1|0;b=d>>>12&16;d=d>>>(b>>>0);g=d>>>5&8;d=d>>>(g>>>0);f=d>>>2&4;d=d>>>(f>>>0);h=d>>>1&2;d=d>>>(h>>>0);i=d>>>1&1;i=(g|b|f|h|i)+(d>>>(i>>>0))|0;d=i<<1;h=31368+(d<<2)|0;d=31368+(d+2<<2)|0;f=c[d>>2]|0;b=f+8|0;g=c[b>>2]|0;do{if((h|0)==(g|0)){c[7832]=e&~(1<<i)}else{if(g>>>0<(c[7836]|0)>>>0){hc();return 0}e=g+12|0;if((c[e>>2]|0)==(f|0)){c[e>>2]=h;c[d>>2]=g;break}else{hc();return 0}}}while(0);q=i<<3;d=q-a|0;c[f+4>>2]=a|3;e=f+a|0;c[f+(a|4)>>2]=d|1;c[f+q>>2]=d;f=c[7834]|0;if((f|0)!=0){a=c[7837]|0;g=f>>>3;h=g<<1;f=31368+(h<<2)|0;i=c[7832]|0;g=1<<g;do{if((i&g|0)==0){c[7832]=i|g;g=f;h=31368+(h+2<<2)|0}else{h=31368+(h+2<<2)|0;g=c[h>>2]|0;if(!(g>>>0<(c[7836]|0)>>>0)){break}hc();return 0}}while(0);c[h>>2]=a;c[g+12>>2]=a;c[a+8>>2]=g;c[a+12>>2]=f}c[7834]=d;c[7837]=e;q=b;return q|0}b=c[7833]|0;if((b|0)==0){break}e=(b&-b)-1|0;p=e>>>12&16;e=e>>>(p>>>0);o=e>>>5&8;e=e>>>(o>>>0);q=e>>>2&4;e=e>>>(q>>>0);b=e>>>1&2;e=e>>>(b>>>0);d=e>>>1&1;d=c[31632+((o|p|q|b|d)+(e>>>(d>>>0))<<2)>>2]|0;e=d;b=d;d=(c[d+4>>2]&-8)-a|0;while(1){g=c[e+16>>2]|0;if((g|0)==0){g=c[e+20>>2]|0;if((g|0)==0){break}}h=(c[g+4>>2]&-8)-a|0;f=h>>>0<d>>>0;e=g;b=f?g:b;d=f?h:d}f=b;h=c[7836]|0;if(f>>>0<h>>>0){hc();return 0}q=f+a|0;e=q;if(!(f>>>0<q>>>0)){hc();return 0}g=c[b+24>>2]|0;i=c[b+12>>2]|0;do{if((i|0)==(b|0)){j=b+20|0;i=c[j>>2]|0;if((i|0)==0){j=b+16|0;i=c[j>>2]|0;if((i|0)==0){i=0;break}}while(1){k=i+20|0;l=c[k>>2]|0;if((l|0)!=0){i=l;j=k;continue}l=i+16|0;k=c[l>>2]|0;if((k|0)==0){break}else{i=k;j=l}}if(j>>>0<h>>>0){hc();return 0}else{c[j>>2]=0;break}}else{j=c[b+8>>2]|0;if(j>>>0<h>>>0){hc();return 0}k=j+12|0;if((c[k>>2]|0)!=(b|0)){hc();return 0}h=i+8|0;if((c[h>>2]|0)==(b|0)){c[k>>2]=i;c[h>>2]=j;break}else{hc();return 0}}}while(0);a:do{if((g|0)!=0){j=c[b+28>>2]|0;h=31632+(j<<2)|0;do{if((b|0)==(c[h>>2]|0)){c[h>>2]=i;if((i|0)!=0){break}c[7833]=c[7833]&~(1<<j);break a}else{if(g>>>0<(c[7836]|0)>>>0){hc();return 0}h=g+16|0;if((c[h>>2]|0)==(b|0)){c[h>>2]=i}else{c[g+20>>2]=i}if((i|0)==0){break a}}}while(0);if(i>>>0<(c[7836]|0)>>>0){hc();return 0}c[i+24>>2]=g;g=c[b+16>>2]|0;do{if((g|0)!=0){if(g>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[i+16>>2]=g;c[g+24>>2]=i;break}}}while(0);g=c[b+20>>2]|0;if((g|0)==0){break}if(g>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[i+20>>2]=g;c[g+24>>2]=i;break}}}while(0);if(d>>>0<16>>>0){q=d+a|0;c[b+4>>2]=q|3;q=f+(q+4)|0;c[q>>2]=c[q>>2]|1}else{c[b+4>>2]=a|3;c[f+(a|4)>>2]=d|1;c[f+(d+a)>>2]=d;f=c[7834]|0;if((f|0)!=0){a=c[7837]|0;g=f>>>3;h=g<<1;f=31368+(h<<2)|0;i=c[7832]|0;g=1<<g;do{if((i&g|0)==0){c[7832]=i|g;g=f;h=31368+(h+2<<2)|0}else{h=31368+(h+2<<2)|0;g=c[h>>2]|0;if(!(g>>>0<(c[7836]|0)>>>0)){break}hc();return 0}}while(0);c[h>>2]=a;c[g+12>>2]=a;c[a+8>>2]=g;c[a+12>>2]=f}c[7834]=d;c[7837]=e}q=b+8|0;return q|0}else{if(a>>>0>4294967231>>>0){a=-1;break}b=a+11|0;a=b&-8;f=c[7833]|0;if((f|0)==0){break}e=-a|0;b=b>>>8;do{if((b|0)==0){g=0}else{if(a>>>0>16777215>>>0){g=31;break}p=(b+1048320|0)>>>16&8;q=b<<p;o=(q+520192|0)>>>16&4;q=q<<o;g=(q+245760|0)>>>16&2;g=14-(o|p|g)+(q<<g>>>15)|0;g=a>>>((g+7|0)>>>0)&1|g<<1}}while(0);h=c[31632+(g<<2)>>2]|0;b:do{if((h|0)==0){b=0;j=0}else{if((g|0)==31){i=0}else{i=25-(g>>>1)|0}b=0;i=a<<i;j=0;while(1){l=c[h+4>>2]&-8;k=l-a|0;if(k>>>0<e>>>0){if((l|0)==(a|0)){b=h;e=k;j=h;break b}else{b=h;e=k}}k=c[h+20>>2]|0;h=c[h+16+(i>>>31<<2)>>2]|0;j=(k|0)==0|(k|0)==(h|0)?j:k;if((h|0)==0){break}else{i=i<<1}}}}while(0);if((j|0)==0&(b|0)==0){q=2<<g;f=f&(q|-q);if((f|0)==0){break}q=(f&-f)-1|0;n=q>>>12&16;q=q>>>(n>>>0);m=q>>>5&8;q=q>>>(m>>>0);o=q>>>2&4;q=q>>>(o>>>0);p=q>>>1&2;q=q>>>(p>>>0);j=q>>>1&1;j=c[31632+((m|n|o|p|j)+(q>>>(j>>>0))<<2)>>2]|0}if((j|0)!=0){while(1){g=(c[j+4>>2]&-8)-a|0;f=g>>>0<e>>>0;e=f?g:e;b=f?j:b;f=c[j+16>>2]|0;if((f|0)!=0){j=f;continue}j=c[j+20>>2]|0;if((j|0)==0){break}}}if((b|0)==0){break}if(!(e>>>0<((c[7834]|0)-a|0)>>>0)){break}d=b;i=c[7836]|0;if(d>>>0<i>>>0){hc();return 0}g=d+a|0;f=g;if(!(d>>>0<g>>>0)){hc();return 0}h=c[b+24>>2]|0;j=c[b+12>>2]|0;do{if((j|0)==(b|0)){k=b+20|0;j=c[k>>2]|0;if((j|0)==0){k=b+16|0;j=c[k>>2]|0;if((j|0)==0){j=0;break}}while(1){m=j+20|0;l=c[m>>2]|0;if((l|0)!=0){j=l;k=m;continue}l=j+16|0;m=c[l>>2]|0;if((m|0)==0){break}else{j=m;k=l}}if(k>>>0<i>>>0){hc();return 0}else{c[k>>2]=0;break}}else{k=c[b+8>>2]|0;if(k>>>0<i>>>0){hc();return 0}i=k+12|0;if((c[i>>2]|0)!=(b|0)){hc();return 0}l=j+8|0;if((c[l>>2]|0)==(b|0)){c[i>>2]=j;c[l>>2]=k;break}else{hc();return 0}}}while(0);c:do{if((h|0)!=0){i=c[b+28>>2]|0;k=31632+(i<<2)|0;do{if((b|0)==(c[k>>2]|0)){c[k>>2]=j;if((j|0)!=0){break}c[7833]=c[7833]&~(1<<i);break c}else{if(h>>>0<(c[7836]|0)>>>0){hc();return 0}i=h+16|0;if((c[i>>2]|0)==(b|0)){c[i>>2]=j}else{c[h+20>>2]=j}if((j|0)==0){break c}}}while(0);if(j>>>0<(c[7836]|0)>>>0){hc();return 0}c[j+24>>2]=h;h=c[b+16>>2]|0;do{if((h|0)!=0){if(h>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[j+16>>2]=h;c[h+24>>2]=j;break}}}while(0);h=c[b+20>>2]|0;if((h|0)==0){break}if(h>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[j+20>>2]=h;c[h+24>>2]=j;break}}}while(0);d:do{if(e>>>0<16>>>0){q=e+a|0;c[b+4>>2]=q|3;q=d+(q+4)|0;c[q>>2]=c[q>>2]|1}else{c[b+4>>2]=a|3;c[d+(a|4)>>2]=e|1;c[d+(e+a)>>2]=e;h=e>>>3;if(e>>>0<256>>>0){g=h<<1;e=31368+(g<<2)|0;i=c[7832]|0;h=1<<h;do{if((i&h|0)==0){c[7832]=i|h;h=e;g=31368+(g+2<<2)|0}else{g=31368+(g+2<<2)|0;h=c[g>>2]|0;if(!(h>>>0<(c[7836]|0)>>>0)){break}hc();return 0}}while(0);c[g>>2]=f;c[h+12>>2]=f;c[d+(a+8)>>2]=h;c[d+(a+12)>>2]=e;break}f=e>>>8;do{if((f|0)==0){f=0}else{if(e>>>0>16777215>>>0){f=31;break}p=(f+1048320|0)>>>16&8;q=f<<p;o=(q+520192|0)>>>16&4;q=q<<o;f=(q+245760|0)>>>16&2;f=14-(o|p|f)+(q<<f>>>15)|0;f=e>>>((f+7|0)>>>0)&1|f<<1}}while(0);j=31632+(f<<2)|0;c[d+(a+28)>>2]=f;c[d+(a+20)>>2]=0;c[d+(a+16)>>2]=0;h=c[7833]|0;i=1<<f;if((h&i|0)==0){c[7833]=h|i;c[j>>2]=g;c[d+(a+24)>>2]=j;c[d+(a+12)>>2]=g;c[d+(a+8)>>2]=g;break}h=c[j>>2]|0;if((f|0)==31){i=0}else{i=25-(f>>>1)|0}e:do{if((c[h+4>>2]&-8|0)!=(e|0)){f=h;j=e<<i;while(1){i=f+16+(j>>>31<<2)|0;h=c[i>>2]|0;if((h|0)==0){break}if((c[h+4>>2]&-8|0)==(e|0)){break e}else{f=h;j=j<<1}}if(i>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[i>>2]=g;c[d+(a+24)>>2]=f;c[d+(a+12)>>2]=g;c[d+(a+8)>>2]=g;break d}}}while(0);f=h+8|0;e=c[f>>2]|0;i=c[7836]|0;if(h>>>0<i>>>0){hc();return 0}if(e>>>0<i>>>0){hc();return 0}else{c[e+12>>2]=g;c[f>>2]=g;c[d+(a+8)>>2]=e;c[d+(a+12)>>2]=h;c[d+(a+24)>>2]=0;break}}}while(0);q=b+8|0;return q|0}}while(0);b=c[7834]|0;if(!(a>>>0>b>>>0)){d=b-a|0;e=c[7837]|0;if(d>>>0>15>>>0){q=e;c[7837]=q+a;c[7834]=d;c[q+(a+4)>>2]=d|1;c[q+b>>2]=d;c[e+4>>2]=a|3}else{c[7834]=0;c[7837]=0;c[e+4>>2]=b|3;q=e+(b+4)|0;c[q>>2]=c[q>>2]|1}q=e+8|0;return q|0}b=c[7835]|0;if(a>>>0<b>>>0){o=b-a|0;c[7835]=o;q=c[7838]|0;p=q;c[7838]=p+a;c[p+(a+4)>>2]=o|1;c[q+4>>2]=a|3;q=q+8|0;return q|0}do{if((c[7756]|0)==0){b=Kb(30)|0;if((b-1&b|0)==0){c[7758]=b;c[7757]=b;c[7759]=-1;c[7760]=-1;c[7761]=0;c[7943]=0;q=(Ac(0)|0)&-16^1431655768;c[7756]=q;break}else{hc();return 0}}}while(0);g=a+48|0;b=c[7758]|0;h=a+47|0;e=b+h|0;b=-b|0;f=e&b;if(!(f>>>0>a>>>0)){q=0;return q|0}i=c[7942]|0;do{if((i|0)!=0){p=c[7940]|0;q=p+f|0;if(q>>>0<=p>>>0|q>>>0>i>>>0){a=0}else{break}return a|0}}while(0);f:do{if((c[7943]&4|0)==0){i=c[7838]|0;g:do{if((i|0)==0){d=182}else{j=31776;while(1){l=j|0;m=c[l>>2]|0;if(!(m>>>0>i>>>0)){k=j+4|0;if((m+(c[k>>2]|0)|0)>>>0>i>>>0){break}}j=c[j+8>>2]|0;if((j|0)==0){d=182;break g}}if((j|0)==0){d=182;break}i=e-(c[7835]|0)&b;if(!(i>>>0<2147483647>>>0)){e=0;break}j=Tb(i|0)|0;d=(j|0)==((c[l>>2]|0)+(c[k>>2]|0)|0);b=d?j:-1;e=d?i:0;d=191}}while(0);do{if((d|0)==182){b=Tb(0)|0;if((b|0)==-1){e=0;break}i=b;j=c[7757]|0;e=j-1|0;if((e&i|0)==0){i=f}else{i=f-i+(e+i&-j)|0}j=c[7940]|0;e=j+i|0;if(!(i>>>0>a>>>0&i>>>0<2147483647>>>0)){e=0;break}k=c[7942]|0;if((k|0)!=0){if(e>>>0<=j>>>0|e>>>0>k>>>0){e=0;break}}j=Tb(i|0)|0;d=(j|0)==(b|0);b=d?b:-1;e=d?i:0;d=191}}while(0);h:do{if((d|0)==191){d=-i|0;if(!((b|0)==-1)){d=202;break f}do{if((j|0)!=-1&i>>>0<2147483647>>>0&i>>>0<g>>>0){b=c[7758]|0;b=h-i+b&-b;if(!(b>>>0<2147483647>>>0)){break}if((Tb(b|0)|0)==-1){Tb(d|0)|0;break h}else{i=b+i|0;break}}}while(0);if(!((j|0)==-1)){e=i;b=j;d=202;break f}}}while(0);c[7943]=c[7943]|4;d=199}else{e=0;d=199}}while(0);do{if((d|0)==199){if(!(f>>>0<2147483647>>>0)){break}b=Tb(f|0)|0;f=Tb(0)|0;if(!((f|0)!=-1&(b|0)!=-1&b>>>0<f>>>0)){break}g=f-b|0;f=g>>>0>(a+40|0)>>>0;if(f){e=f?g:e;d=202}}}while(0);do{if((d|0)==202){f=(c[7940]|0)+e|0;c[7940]=f;if(f>>>0>(c[7941]|0)>>>0){c[7941]=f}f=c[7838]|0;i:do{if((f|0)==0){q=c[7836]|0;if((q|0)==0|b>>>0<q>>>0){c[7836]=b}c[7944]=b;c[7945]=e;c[7947]=0;c[7841]=c[7756];c[7840]=-1;d=0;do{q=d<<1;p=31368+(q<<2)|0;c[31368+(q+3<<2)>>2]=p;c[31368+(q+2<<2)>>2]=p;d=d+1|0;}while(d>>>0<32>>>0);d=b+8|0;if((d&7|0)==0){d=0}else{d=-d&7}q=e-40-d|0;c[7838]=b+d;c[7835]=q;c[b+(d+4)>>2]=q|1;c[b+(e-36)>>2]=40;c[7839]=c[7760]}else{g=31776;do{h=c[g>>2]|0;i=g+4|0;j=c[i>>2]|0;if((b|0)==(h+j|0)){d=214;break}g=c[g+8>>2]|0;}while((g|0)!=0);do{if((d|0)==214){if((c[g+12>>2]&8|0)!=0){break}g=f;if(!(g>>>0>=h>>>0&g>>>0<b>>>0)){break}c[i>>2]=j+e;b=(c[7835]|0)+e|0;d=f+8|0;if((d&7|0)==0){d=0}else{d=-d&7}q=b-d|0;c[7838]=g+d;c[7835]=q;c[g+(d+4)>>2]=q|1;c[g+(b+4)>>2]=40;c[7839]=c[7760];break i}}while(0);if(b>>>0<(c[7836]|0)>>>0){c[7836]=b}g=b+e|0;h=31776;do{i=h|0;if((c[i>>2]|0)==(g|0)){d=224;break}h=c[h+8>>2]|0;}while((h|0)!=0);do{if((d|0)==224){if((c[h+12>>2]&8|0)!=0){break}c[i>>2]=b;d=h+4|0;c[d>>2]=(c[d>>2]|0)+e;d=b+8|0;if((d&7|0)==0){d=0}else{d=-d&7}f=b+(e+8)|0;if((f&7|0)==0){j=0}else{j=-f&7}m=b+(j+e)|0;l=m;f=d+a|0;h=b+f|0;g=h;i=m-(b+d)-a|0;c[b+(d+4)>>2]=a|3;j:do{if((l|0)==(c[7838]|0)){q=(c[7835]|0)+i|0;c[7835]=q;c[7838]=g;c[b+(f+4)>>2]=q|1}else{if((l|0)==(c[7837]|0)){q=(c[7834]|0)+i|0;c[7834]=q;c[7837]=g;c[b+(f+4)>>2]=q|1;c[b+(q+f)>>2]=q;break}k=e+4|0;o=c[b+(k+j)>>2]|0;if((o&3|0)==1){a=o&-8;n=o>>>3;k:do{if(o>>>0<256>>>0){k=c[b+((j|8)+e)>>2]|0;m=c[b+(e+12+j)>>2]|0;o=31368+(n<<1<<2)|0;do{if((k|0)!=(o|0)){if(k>>>0<(c[7836]|0)>>>0){hc();return 0}if((c[k+12>>2]|0)==(l|0)){break}hc();return 0}}while(0);if((m|0)==(k|0)){c[7832]=c[7832]&~(1<<n);break}do{if((m|0)==(o|0)){n=m+8|0}else{if(m>>>0<(c[7836]|0)>>>0){hc();return 0}n=m+8|0;if((c[n>>2]|0)==(l|0)){break}hc();return 0}}while(0);c[k+12>>2]=m;c[n>>2]=k}else{l=c[b+((j|24)+e)>>2]|0;n=c[b+(e+12+j)>>2]|0;do{if((n|0)==(m|0)){p=j|16;o=b+(k+p)|0;n=c[o>>2]|0;if((n|0)==0){o=b+(p+e)|0;n=c[o>>2]|0;if((n|0)==0){n=0;break}}while(1){p=n+20|0;q=c[p>>2]|0;if((q|0)!=0){n=q;o=p;continue}q=n+16|0;p=c[q>>2]|0;if((p|0)==0){break}else{n=p;o=q}}if(o>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[o>>2]=0;break}}else{q=c[b+((j|8)+e)>>2]|0;if(q>>>0<(c[7836]|0)>>>0){hc();return 0}o=q+12|0;if((c[o>>2]|0)!=(m|0)){hc();return 0}p=n+8|0;if((c[p>>2]|0)==(m|0)){c[o>>2]=n;c[p>>2]=q;break}else{hc();return 0}}}while(0);if((l|0)==0){break}o=c[b+(e+28+j)>>2]|0;p=31632+(o<<2)|0;do{if((m|0)==(c[p>>2]|0)){c[p>>2]=n;if((n|0)!=0){break}c[7833]=c[7833]&~(1<<o);break k}else{if(l>>>0<(c[7836]|0)>>>0){hc();return 0}o=l+16|0;if((c[o>>2]|0)==(m|0)){c[o>>2]=n}else{c[l+20>>2]=n}if((n|0)==0){break k}}}while(0);if(n>>>0<(c[7836]|0)>>>0){hc();return 0}c[n+24>>2]=l;m=j|16;l=c[b+(m+e)>>2]|0;do{if((l|0)!=0){if(l>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[n+16>>2]=l;c[l+24>>2]=n;break}}}while(0);k=c[b+(k+m)>>2]|0;if((k|0)==0){break}if(k>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[n+20>>2]=k;c[k+24>>2]=n;break}}}while(0);l=b+((a|j)+e)|0;i=a+i|0}e=l+4|0;c[e>>2]=c[e>>2]&-2;c[b+(f+4)>>2]=i|1;c[b+(i+f)>>2]=i;e=i>>>3;if(i>>>0<256>>>0){h=e<<1;a=31368+(h<<2)|0;i=c[7832]|0;e=1<<e;do{if((i&e|0)==0){c[7832]=i|e;e=a;h=31368+(h+2<<2)|0}else{h=31368+(h+2<<2)|0;e=c[h>>2]|0;if(!(e>>>0<(c[7836]|0)>>>0)){break}hc();return 0}}while(0);c[h>>2]=g;c[e+12>>2]=g;c[b+(f+8)>>2]=e;c[b+(f+12)>>2]=a;break}a=i>>>8;do{if((a|0)==0){a=0}else{if(i>>>0>16777215>>>0){a=31;break}p=(a+1048320|0)>>>16&8;q=a<<p;o=(q+520192|0)>>>16&4;q=q<<o;a=(q+245760|0)>>>16&2;a=14-(o|p|a)+(q<<a>>>15)|0;a=i>>>((a+7|0)>>>0)&1|a<<1}}while(0);e=31632+(a<<2)|0;c[b+(f+28)>>2]=a;c[b+(f+20)>>2]=0;c[b+(f+16)>>2]=0;j=c[7833]|0;g=1<<a;if((j&g|0)==0){c[7833]=j|g;c[e>>2]=h;c[b+(f+24)>>2]=e;c[b+(f+12)>>2]=h;c[b+(f+8)>>2]=h;break}g=c[e>>2]|0;if((a|0)==31){e=0}else{e=25-(a>>>1)|0}l:do{if((c[g+4>>2]&-8|0)!=(i|0)){a=g;j=i<<e;while(1){e=a+16+(j>>>31<<2)|0;g=c[e>>2]|0;if((g|0)==0){break}if((c[g+4>>2]&-8|0)==(i|0)){break l}else{a=g;j=j<<1}}if(e>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[e>>2]=h;c[b+(f+24)>>2]=a;c[b+(f+12)>>2]=h;c[b+(f+8)>>2]=h;break j}}}while(0);e=g+8|0;i=c[e>>2]|0;a=c[7836]|0;if(g>>>0<a>>>0){hc();return 0}if(i>>>0<a>>>0){hc();return 0}else{c[i+12>>2]=h;c[e>>2]=h;c[b+(f+8)>>2]=i;c[b+(f+12)>>2]=g;c[b+(f+24)>>2]=0;break}}}while(0);q=b+(d|8)|0;return q|0}}while(0);d=f;j=31776;while(1){h=c[j>>2]|0;if(!(h>>>0>d>>>0)){i=c[j+4>>2]|0;g=h+i|0;if(g>>>0>d>>>0){break}}j=c[j+8>>2]|0}j=h+(i-39)|0;if((j&7|0)==0){j=0}else{j=-j&7}h=h+(i-47+j)|0;h=h>>>0<(f+16|0)>>>0?d:h;i=h+8|0;j=b+8|0;if((j&7|0)==0){j=0}else{j=-j&7}q=e-40-j|0;c[7838]=b+j;c[7835]=q;c[b+(j+4)>>2]=q|1;c[b+(e-36)>>2]=40;c[7839]=c[7760];c[h+4>>2]=27;c[i>>2]=c[7944];c[i+4>>2]=c[7945];c[i+8>>2]=c[7946];c[i+12>>2]=c[7947];c[7944]=b;c[7945]=e;c[7947]=0;c[7946]=i;e=h+28|0;c[e>>2]=7;if((h+32|0)>>>0<g>>>0){while(1){b=e+4|0;c[b>>2]=7;if((e+8|0)>>>0<g>>>0){e=b}else{break}}}if((h|0)==(d|0)){break}e=h-f|0;g=d+(e+4)|0;c[g>>2]=c[g>>2]&-2;c[f+4>>2]=e|1;c[d+e>>2]=e;g=e>>>3;if(e>>>0<256>>>0){d=g<<1;b=31368+(d<<2)|0;e=c[7832]|0;g=1<<g;do{if((e&g|0)==0){c[7832]=e|g;e=b;d=31368+(d+2<<2)|0}else{d=31368+(d+2<<2)|0;e=c[d>>2]|0;if(!(e>>>0<(c[7836]|0)>>>0)){break}hc();return 0}}while(0);c[d>>2]=f;c[e+12>>2]=f;c[f+8>>2]=e;c[f+12>>2]=b;break}b=f;d=e>>>8;do{if((d|0)==0){d=0}else{if(e>>>0>16777215>>>0){d=31;break}p=(d+1048320|0)>>>16&8;q=d<<p;o=(q+520192|0)>>>16&4;q=q<<o;d=(q+245760|0)>>>16&2;d=14-(o|p|d)+(q<<d>>>15)|0;d=e>>>((d+7|0)>>>0)&1|d<<1}}while(0);i=31632+(d<<2)|0;c[f+28>>2]=d;c[f+20>>2]=0;c[f+16>>2]=0;g=c[7833]|0;h=1<<d;if((g&h|0)==0){c[7833]=g|h;c[i>>2]=b;c[f+24>>2]=i;c[f+12>>2]=f;c[f+8>>2]=f;break}i=c[i>>2]|0;if((d|0)==31){g=0}else{g=25-(d>>>1)|0}m:do{if((c[i+4>>2]&-8|0)!=(e|0)){d=i;g=e<<g;while(1){h=d+16+(g>>>31<<2)|0;i=c[h>>2]|0;if((i|0)==0){break}if((c[i+4>>2]&-8|0)==(e|0)){break m}else{d=i;g=g<<1}}if(h>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[h>>2]=b;c[f+24>>2]=d;c[f+12>>2]=f;c[f+8>>2]=f;break i}}}while(0);e=i+8|0;g=c[e>>2]|0;d=c[7836]|0;if(i>>>0<d>>>0){hc();return 0}if(g>>>0<d>>>0){hc();return 0}else{c[g+12>>2]=b;c[e>>2]=b;c[f+8>>2]=g;c[f+12>>2]=i;c[f+24>>2]=0;break}}}while(0);b=c[7835]|0;if(!(b>>>0>a>>>0)){break}o=b-a|0;c[7835]=o;q=c[7838]|0;p=q;c[7838]=p+a;c[p+(a+4)>>2]=o|1;c[q+4>>2]=a|3;q=q+8|0;return q|0}}while(0);q=Vb()|0;c[q>>2]=12;q=0;return q|0}function Hu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if((a|0)==0){return}p=a-8|0;s=p;q=c[7836]|0;if(p>>>0<q>>>0){hc()}n=c[a-4>>2]|0;m=n&3;if((m|0)==1){hc()}h=n&-8;k=a+(h-8)|0;j=k;a:do{if((n&1|0)==0){u=c[p>>2]|0;if((m|0)==0){return}p=-8-u|0;s=a+p|0;m=s;n=u+h|0;if(s>>>0<q>>>0){hc()}if((m|0)==(c[7837]|0)){b=a+(h-4)|0;if((c[b>>2]&3|0)!=3){b=m;l=n;break}c[7834]=n;c[b>>2]=c[b>>2]&-2;c[a+(p+4)>>2]=n|1;c[k>>2]=n;return}t=u>>>3;if(u>>>0<256>>>0){b=c[a+(p+8)>>2]|0;l=c[a+(p+12)>>2]|0;o=31368+(t<<1<<2)|0;do{if((b|0)!=(o|0)){if(b>>>0<q>>>0){hc()}if((c[b+12>>2]|0)==(m|0)){break}hc()}}while(0);if((l|0)==(b|0)){c[7832]=c[7832]&~(1<<t);b=m;l=n;break}do{if((l|0)==(o|0)){r=l+8|0}else{if(l>>>0<q>>>0){hc()}o=l+8|0;if((c[o>>2]|0)==(m|0)){r=o;break}hc()}}while(0);c[b+12>>2]=l;c[r>>2]=b;b=m;l=n;break}r=c[a+(p+24)>>2]|0;u=c[a+(p+12)>>2]|0;do{if((u|0)==(s|0)){u=a+(p+20)|0;t=c[u>>2]|0;if((t|0)==0){u=a+(p+16)|0;t=c[u>>2]|0;if((t|0)==0){o=0;break}}while(1){w=t+20|0;v=c[w>>2]|0;if((v|0)!=0){t=v;u=w;continue}v=t+16|0;w=c[v>>2]|0;if((w|0)==0){break}else{t=w;u=v}}if(u>>>0<q>>>0){hc()}else{c[u>>2]=0;o=t;break}}else{t=c[a+(p+8)>>2]|0;if(t>>>0<q>>>0){hc()}q=t+12|0;if((c[q>>2]|0)!=(s|0)){hc()}v=u+8|0;if((c[v>>2]|0)==(s|0)){c[q>>2]=u;c[v>>2]=t;o=u;break}else{hc()}}}while(0);if((r|0)==0){b=m;l=n;break}q=c[a+(p+28)>>2]|0;t=31632+(q<<2)|0;do{if((s|0)==(c[t>>2]|0)){c[t>>2]=o;if((o|0)!=0){break}c[7833]=c[7833]&~(1<<q);b=m;l=n;break a}else{if(r>>>0<(c[7836]|0)>>>0){hc()}q=r+16|0;if((c[q>>2]|0)==(s|0)){c[q>>2]=o}else{c[r+20>>2]=o}if((o|0)==0){b=m;l=n;break a}}}while(0);if(o>>>0<(c[7836]|0)>>>0){hc()}c[o+24>>2]=r;q=c[a+(p+16)>>2]|0;do{if((q|0)!=0){if(q>>>0<(c[7836]|0)>>>0){hc()}else{c[o+16>>2]=q;c[q+24>>2]=o;break}}}while(0);p=c[a+(p+20)>>2]|0;if((p|0)==0){b=m;l=n;break}if(p>>>0<(c[7836]|0)>>>0){hc()}else{c[o+20>>2]=p;c[p+24>>2]=o;b=m;l=n;break}}else{b=s;l=h}}while(0);m=b;if(!(m>>>0<k>>>0)){hc()}n=a+(h-4)|0;o=c[n>>2]|0;if((o&1|0)==0){hc()}do{if((o&2|0)==0){if((j|0)==(c[7838]|0)){w=(c[7835]|0)+l|0;c[7835]=w;c[7838]=b;c[b+4>>2]=w|1;if((b|0)!=(c[7837]|0)){return}c[7837]=0;c[7834]=0;return}if((j|0)==(c[7837]|0)){w=(c[7834]|0)+l|0;c[7834]=w;c[7837]=b;c[b+4>>2]=w|1;c[m+w>>2]=w;return}l=(o&-8)+l|0;n=o>>>3;b:do{if(o>>>0<256>>>0){g=c[a+h>>2]|0;h=c[a+(h|4)>>2]|0;a=31368+(n<<1<<2)|0;do{if((g|0)!=(a|0)){if(g>>>0<(c[7836]|0)>>>0){hc()}if((c[g+12>>2]|0)==(j|0)){break}hc()}}while(0);if((h|0)==(g|0)){c[7832]=c[7832]&~(1<<n);break}do{if((h|0)==(a|0)){i=h+8|0}else{if(h>>>0<(c[7836]|0)>>>0){hc()}a=h+8|0;if((c[a>>2]|0)==(j|0)){i=a;break}hc()}}while(0);c[g+12>>2]=h;c[i>>2]=g}else{i=c[a+(h+16)>>2]|0;n=c[a+(h|4)>>2]|0;do{if((n|0)==(k|0)){n=a+(h+12)|0;j=c[n>>2]|0;if((j|0)==0){n=a+(h+8)|0;j=c[n>>2]|0;if((j|0)==0){g=0;break}}while(1){p=j+20|0;o=c[p>>2]|0;if((o|0)!=0){j=o;n=p;continue}o=j+16|0;p=c[o>>2]|0;if((p|0)==0){break}else{j=p;n=o}}if(n>>>0<(c[7836]|0)>>>0){hc()}else{c[n>>2]=0;g=j;break}}else{o=c[a+h>>2]|0;if(o>>>0<(c[7836]|0)>>>0){hc()}p=o+12|0;if((c[p>>2]|0)!=(k|0)){hc()}j=n+8|0;if((c[j>>2]|0)==(k|0)){c[p>>2]=n;c[j>>2]=o;g=n;break}else{hc()}}}while(0);if((i|0)==0){break}j=c[a+(h+20)>>2]|0;n=31632+(j<<2)|0;do{if((k|0)==(c[n>>2]|0)){c[n>>2]=g;if((g|0)!=0){break}c[7833]=c[7833]&~(1<<j);break b}else{if(i>>>0<(c[7836]|0)>>>0){hc()}j=i+16|0;if((c[j>>2]|0)==(k|0)){c[j>>2]=g}else{c[i+20>>2]=g}if((g|0)==0){break b}}}while(0);if(g>>>0<(c[7836]|0)>>>0){hc()}c[g+24>>2]=i;i=c[a+(h+8)>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[7836]|0)>>>0){hc()}else{c[g+16>>2]=i;c[i+24>>2]=g;break}}}while(0);h=c[a+(h+12)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[7836]|0)>>>0){hc()}else{c[g+20>>2]=h;c[h+24>>2]=g;break}}}while(0);c[b+4>>2]=l|1;c[m+l>>2]=l;if((b|0)!=(c[7837]|0)){break}c[7834]=l;return}else{c[n>>2]=o&-2;c[b+4>>2]=l|1;c[m+l>>2]=l}}while(0);g=l>>>3;if(l>>>0<256>>>0){h=g<<1;d=31368+(h<<2)|0;a=c[7832]|0;g=1<<g;do{if((a&g|0)==0){c[7832]=a|g;f=d;e=31368+(h+2<<2)|0}else{g=31368+(h+2<<2)|0;h=c[g>>2]|0;if(!(h>>>0<(c[7836]|0)>>>0)){f=h;e=g;break}hc()}}while(0);c[e>>2]=b;c[f+12>>2]=b;c[b+8>>2]=f;c[b+12>>2]=d;return}e=b;f=l>>>8;do{if((f|0)==0){f=0}else{if(l>>>0>16777215>>>0){f=31;break}v=(f+1048320|0)>>>16&8;w=f<<v;u=(w+520192|0)>>>16&4;w=w<<u;f=(w+245760|0)>>>16&2;f=14-(u|v|f)+(w<<f>>>15)|0;f=l>>>((f+7|0)>>>0)&1|f<<1}}while(0);g=31632+(f<<2)|0;c[b+28>>2]=f;c[b+20>>2]=0;c[b+16>>2]=0;a=c[7833]|0;h=1<<f;c:do{if((a&h|0)==0){c[7833]=a|h;c[g>>2]=e;c[b+24>>2]=g;c[b+12>>2]=b;c[b+8>>2]=b}else{h=c[g>>2]|0;if((f|0)==31){g=0}else{g=25-(f>>>1)|0}d:do{if((c[h+4>>2]&-8|0)==(l|0)){d=h}else{f=h;a=l<<g;while(1){g=f+16+(a>>>31<<2)|0;h=c[g>>2]|0;if((h|0)==0){break}if((c[h+4>>2]&-8|0)==(l|0)){d=h;break d}else{f=h;a=a<<1}}if(g>>>0<(c[7836]|0)>>>0){hc()}else{c[g>>2]=e;c[b+24>>2]=f;c[b+12>>2]=b;c[b+8>>2]=b;break c}}}while(0);f=d+8|0;h=c[f>>2]|0;g=c[7836]|0;if(d>>>0<g>>>0){hc()}if(h>>>0<g>>>0){hc()}else{c[h+12>>2]=e;c[f>>2]=e;c[b+8>>2]=h;c[b+12>>2]=d;c[b+24>>2]=0;break}}}while(0);w=(c[7840]|0)-1|0;c[7840]=w;if((w|0)==0){b=31784}else{return}while(1){b=c[b>>2]|0;if((b|0)==0){break}else{b=b+8|0}}c[7840]=-1;return}function Iu(a,b){a=a|0;b=b|0;var d=0,e=0;if((a|0)==0){e=Gu(b)|0;return e|0}if(b>>>0>4294967231>>>0){e=Vb()|0;c[e>>2]=12;e=0;return e|0}if(b>>>0<11>>>0){d=16}else{d=b+11&-8}d=Ju(a-8|0,d)|0;if((d|0)!=0){e=d+8|0;return e|0}d=Gu(b)|0;if((d|0)==0){e=0;return e|0}e=c[a-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;cv(d|0,a|0,e>>>0<b>>>0?e:b)|0;Hu(a);e=d;return e|0}function Ju(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+4|0;f=c[d>>2]|0;h=f&-8;e=a;j=e+h|0;k=j;i=c[7836]|0;if(e>>>0<i>>>0){hc();return 0}m=f&3;if(!((m|0)!=1&e>>>0<j>>>0)){hc();return 0}g=e+(h|4)|0;l=c[g>>2]|0;if((l&1|0)==0){hc();return 0}if((m|0)==0){if(b>>>0<256>>>0){o=0;return o|0}do{if(!(h>>>0<(b+4|0)>>>0)){if((h-b|0)>>>0>c[7758]<<1>>>0){break}return a|0}}while(0);o=0;return o|0}if(!(h>>>0<b>>>0)){h=h-b|0;if(!(h>>>0>15>>>0)){o=a;return o|0}c[d>>2]=f&1|b|2;c[e+(b+4)>>2]=h|3;c[g>>2]=c[g>>2]|1;Mu(e+b|0,h);o=a;return o|0}if((k|0)==(c[7838]|0)){g=(c[7835]|0)+h|0;if(!(g>>>0>b>>>0)){o=0;return o|0}o=g-b|0;c[d>>2]=f&1|b|2;c[e+(b+4)>>2]=o|1;c[7838]=e+b;c[7835]=o;o=a;return o|0}if((k|0)==(c[7837]|0)){h=(c[7834]|0)+h|0;if(h>>>0<b>>>0){o=0;return o|0}g=h-b|0;if(g>>>0>15>>>0){c[d>>2]=f&1|b|2;c[e+(b+4)>>2]=g|1;c[e+h>>2]=g;d=e+(h+4)|0;c[d>>2]=c[d>>2]&-2;d=e+b|0}else{c[d>>2]=f&1|h|2;d=e+(h+4)|0;c[d>>2]=c[d>>2]|1;d=0;g=0}c[7834]=g;c[7837]=d;o=a;return o|0}if((l&2|0)!=0){o=0;return o|0}g=(l&-8)+h|0;if(g>>>0<b>>>0){o=0;return o|0}f=g-b|0;m=l>>>3;a:do{if(l>>>0<256>>>0){j=c[e+(h+8)>>2]|0;h=c[e+(h+12)>>2]|0;l=31368+(m<<1<<2)|0;do{if((j|0)!=(l|0)){if(j>>>0<i>>>0){hc();return 0}if((c[j+12>>2]|0)==(k|0)){break}hc();return 0}}while(0);if((h|0)==(j|0)){c[7832]=c[7832]&~(1<<m);break}do{if((h|0)==(l|0)){i=h+8|0}else{if(h>>>0<i>>>0){hc();return 0}i=h+8|0;if((c[i>>2]|0)==(k|0)){break}hc();return 0}}while(0);c[j+12>>2]=h;c[i>>2]=j}else{k=c[e+(h+24)>>2]|0;l=c[e+(h+12)>>2]|0;do{if((l|0)==(j|0)){m=e+(h+20)|0;l=c[m>>2]|0;if((l|0)==0){m=e+(h+16)|0;l=c[m>>2]|0;if((l|0)==0){l=0;break}}while(1){o=l+20|0;n=c[o>>2]|0;if((n|0)!=0){l=n;m=o;continue}o=l+16|0;n=c[o>>2]|0;if((n|0)==0){break}else{l=n;m=o}}if(m>>>0<i>>>0){hc();return 0}else{c[m>>2]=0;break}}else{m=c[e+(h+8)>>2]|0;if(m>>>0<i>>>0){hc();return 0}n=m+12|0;if((c[n>>2]|0)!=(j|0)){hc();return 0}i=l+8|0;if((c[i>>2]|0)==(j|0)){c[n>>2]=l;c[i>>2]=m;break}else{hc();return 0}}}while(0);if((k|0)==0){break}m=c[e+(h+28)>>2]|0;i=31632+(m<<2)|0;do{if((j|0)==(c[i>>2]|0)){c[i>>2]=l;if((l|0)!=0){break}c[7833]=c[7833]&~(1<<m);break a}else{if(k>>>0<(c[7836]|0)>>>0){hc();return 0}i=k+16|0;if((c[i>>2]|0)==(j|0)){c[i>>2]=l}else{c[k+20>>2]=l}if((l|0)==0){break a}}}while(0);if(l>>>0<(c[7836]|0)>>>0){hc();return 0}c[l+24>>2]=k;i=c[e+(h+16)>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[l+16>>2]=i;c[i+24>>2]=l;break}}}while(0);h=c[e+(h+20)>>2]|0;if((h|0)==0){break}if(h>>>0<(c[7836]|0)>>>0){hc();return 0}else{c[l+20>>2]=h;c[h+24>>2]=l;break}}}while(0);if(f>>>0<16>>>0){c[d>>2]=g|c[d>>2]&1|2;o=e+(g|4)|0;c[o>>2]=c[o>>2]|1;o=a;return o|0}else{c[d>>2]=c[d>>2]&1|b|2;c[e+(b+4)>>2]=f|3;o=e+(g|4)|0;c[o>>2]=c[o>>2]|1;Mu(e+b|0,f);o=a;return o|0}return 0}function Ku(a,b){a=a|0;b=b|0;if(a>>>0<9>>>0){a=Gu(b)|0;return a|0}else{a=Lu(a,b)|0;return a|0}return 0}function Lu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=a>>>0<16>>>0?16:a;if((f-1&f|0)!=0){a=16;while(1){if(a>>>0<f>>>0){a=a<<1}else{f=a;break}}}if(!((-64-f|0)>>>0>b>>>0)){j=Vb()|0;c[j>>2]=12;j=0;return j|0}if(b>>>0<11>>>0){b=16}else{b=b+11&-8}d=Gu(f+12+b|0)|0;if((d|0)==0){j=0;return j|0}a=d-8|0;e=a;g=f-1|0;do{if((d&g|0)!=0){i=d+g&-f;g=i-8|0;h=a;if(!((g-h|0)>>>0>15>>>0)){g=i+(f-8)|0}f=g;j=g-h|0;i=d-4|0;k=c[i>>2]|0;h=(k&-8)-j|0;if((k&3|0)==0){c[g>>2]=(c[a>>2]|0)+j;c[g+4>>2]=h;e=f;break}else{k=g+4|0;c[k>>2]=h|c[k>>2]&1|2;k=g+(h+4)|0;c[k>>2]=c[k>>2]|1;c[i>>2]=j|c[i>>2]&1|2;k=d+(j-4)|0;c[k>>2]=c[k>>2]|1;Mu(e,j);e=f;break}}}while(0);d=e+4|0;a=c[d>>2]|0;do{if((a&3|0)!=0){f=a&-8;if(!(f>>>0>(b+16|0)>>>0)){break}k=f-b|0;j=e;c[d>>2]=b|a&1|2;c[j+(b|4)>>2]=k|3;i=j+(f|4)|0;c[i>>2]=c[i>>2]|1;Mu(j+b|0,k)}}while(0);k=e+8|0;return k|0}function Mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;h=a;k=h+b|0;j=k;l=c[a+4>>2]|0;a:do{if((l&1|0)==0){o=c[a>>2]|0;if((l&3|0)==0){return}r=h+(-o|0)|0;a=r;l=o+b|0;p=c[7836]|0;if(r>>>0<p>>>0){hc()}if((a|0)==(c[7837]|0)){d=h+(b+4)|0;if((c[d>>2]&3|0)!=3){d=a;m=l;break}c[7834]=l;c[d>>2]=c[d>>2]&-2;c[h+(4-o)>>2]=l|1;c[k>>2]=l;return}s=o>>>3;if(o>>>0<256>>>0){d=c[h+(8-o)>>2]|0;m=c[h+(12-o)>>2]|0;n=31368+(s<<1<<2)|0;do{if((d|0)!=(n|0)){if(d>>>0<p>>>0){hc()}if((c[d+12>>2]|0)==(a|0)){break}hc()}}while(0);if((m|0)==(d|0)){c[7832]=c[7832]&~(1<<s);d=a;m=l;break}do{if((m|0)==(n|0)){q=m+8|0}else{if(m>>>0<p>>>0){hc()}n=m+8|0;if((c[n>>2]|0)==(a|0)){q=n;break}hc()}}while(0);c[d+12>>2]=m;c[q>>2]=d;d=a;m=l;break}q=c[h+(24-o)>>2]|0;s=c[h+(12-o)>>2]|0;do{if((s|0)==(r|0)){u=16-o|0;t=h+(u+4)|0;s=c[t>>2]|0;if((s|0)==0){t=h+u|0;s=c[t>>2]|0;if((s|0)==0){n=0;break}}while(1){u=s+20|0;v=c[u>>2]|0;if((v|0)!=0){s=v;t=u;continue}v=s+16|0;u=c[v>>2]|0;if((u|0)==0){break}else{s=u;t=v}}if(t>>>0<p>>>0){hc()}else{c[t>>2]=0;n=s;break}}else{t=c[h+(8-o)>>2]|0;if(t>>>0<p>>>0){hc()}p=t+12|0;if((c[p>>2]|0)!=(r|0)){hc()}u=s+8|0;if((c[u>>2]|0)==(r|0)){c[p>>2]=s;c[u>>2]=t;n=s;break}else{hc()}}}while(0);if((q|0)==0){d=a;m=l;break}p=c[h+(28-o)>>2]|0;s=31632+(p<<2)|0;do{if((r|0)==(c[s>>2]|0)){c[s>>2]=n;if((n|0)!=0){break}c[7833]=c[7833]&~(1<<p);d=a;m=l;break a}else{if(q>>>0<(c[7836]|0)>>>0){hc()}p=q+16|0;if((c[p>>2]|0)==(r|0)){c[p>>2]=n}else{c[q+20>>2]=n}if((n|0)==0){d=a;m=l;break a}}}while(0);if(n>>>0<(c[7836]|0)>>>0){hc()}c[n+24>>2]=q;p=16-o|0;o=c[h+p>>2]|0;do{if((o|0)!=0){if(o>>>0<(c[7836]|0)>>>0){hc()}else{c[n+16>>2]=o;c[o+24>>2]=n;break}}}while(0);o=c[h+(p+4)>>2]|0;if((o|0)==0){d=a;m=l;break}if(o>>>0<(c[7836]|0)>>>0){hc()}else{c[n+20>>2]=o;c[o+24>>2]=n;d=a;m=l;break}}else{d=a;m=b}}while(0);l=c[7836]|0;if(k>>>0<l>>>0){hc()}a=h+(b+4)|0;n=c[a>>2]|0;do{if((n&2|0)==0){if((j|0)==(c[7838]|0)){v=(c[7835]|0)+m|0;c[7835]=v;c[7838]=d;c[d+4>>2]=v|1;if((d|0)!=(c[7837]|0)){return}c[7837]=0;c[7834]=0;return}if((j|0)==(c[7837]|0)){v=(c[7834]|0)+m|0;c[7834]=v;c[7837]=d;c[d+4>>2]=v|1;c[d+v>>2]=v;return}m=(n&-8)+m|0;a=n>>>3;b:do{if(n>>>0<256>>>0){g=c[h+(b+8)>>2]|0;b=c[h+(b+12)>>2]|0;h=31368+(a<<1<<2)|0;do{if((g|0)!=(h|0)){if(g>>>0<l>>>0){hc()}if((c[g+12>>2]|0)==(j|0)){break}hc()}}while(0);if((b|0)==(g|0)){c[7832]=c[7832]&~(1<<a);break}do{if((b|0)==(h|0)){i=b+8|0}else{if(b>>>0<l>>>0){hc()}h=b+8|0;if((c[h>>2]|0)==(j|0)){i=h;break}hc()}}while(0);c[g+12>>2]=b;c[i>>2]=g}else{i=c[h+(b+24)>>2]|0;j=c[h+(b+12)>>2]|0;do{if((j|0)==(k|0)){a=h+(b+20)|0;j=c[a>>2]|0;if((j|0)==0){a=h+(b+16)|0;j=c[a>>2]|0;if((j|0)==0){g=0;break}}while(1){o=j+20|0;n=c[o>>2]|0;if((n|0)!=0){j=n;a=o;continue}n=j+16|0;o=c[n>>2]|0;if((o|0)==0){break}else{j=o;a=n}}if(a>>>0<l>>>0){hc()}else{c[a>>2]=0;g=j;break}}else{a=c[h+(b+8)>>2]|0;if(a>>>0<l>>>0){hc()}n=a+12|0;if((c[n>>2]|0)!=(k|0)){hc()}l=j+8|0;if((c[l>>2]|0)==(k|0)){c[n>>2]=j;c[l>>2]=a;g=j;break}else{hc()}}}while(0);if((i|0)==0){break}j=c[h+(b+28)>>2]|0;l=31632+(j<<2)|0;do{if((k|0)==(c[l>>2]|0)){c[l>>2]=g;if((g|0)!=0){break}c[7833]=c[7833]&~(1<<j);break b}else{if(i>>>0<(c[7836]|0)>>>0){hc()}j=i+16|0;if((c[j>>2]|0)==(k|0)){c[j>>2]=g}else{c[i+20>>2]=g}if((g|0)==0){break b}}}while(0);if(g>>>0<(c[7836]|0)>>>0){hc()}c[g+24>>2]=i;i=c[h+(b+16)>>2]|0;do{if((i|0)!=0){if(i>>>0<(c[7836]|0)>>>0){hc()}else{c[g+16>>2]=i;c[i+24>>2]=g;break}}}while(0);b=c[h+(b+20)>>2]|0;if((b|0)==0){break}if(b>>>0<(c[7836]|0)>>>0){hc()}else{c[g+20>>2]=b;c[b+24>>2]=g;break}}}while(0);c[d+4>>2]=m|1;c[d+m>>2]=m;if((d|0)!=(c[7837]|0)){break}c[7834]=m;return}else{c[a>>2]=n&-2;c[d+4>>2]=m|1;c[d+m>>2]=m}}while(0);g=m>>>3;if(m>>>0<256>>>0){h=g<<1;b=31368+(h<<2)|0;i=c[7832]|0;g=1<<g;do{if((i&g|0)==0){c[7832]=i|g;e=b;f=31368+(h+2<<2)|0}else{g=31368+(h+2<<2)|0;h=c[g>>2]|0;if(!(h>>>0<(c[7836]|0)>>>0)){e=h;f=g;break}hc()}}while(0);c[f>>2]=d;c[e+12>>2]=d;c[d+8>>2]=e;c[d+12>>2]=b;return}e=d;f=m>>>8;do{if((f|0)==0){b=0}else{if(m>>>0>16777215>>>0){b=31;break}u=(f+1048320|0)>>>16&8;v=f<<u;t=(v+520192|0)>>>16&4;v=v<<t;b=(v+245760|0)>>>16&2;b=14-(t|u|b)+(v<<b>>>15)|0;b=m>>>((b+7|0)>>>0)&1|b<<1}}while(0);f=31632+(b<<2)|0;c[d+28>>2]=b;c[d+20>>2]=0;c[d+16>>2]=0;h=c[7833]|0;g=1<<b;if((h&g|0)==0){c[7833]=h|g;c[f>>2]=e;c[d+24>>2]=f;c[d+12>>2]=d;c[d+8>>2]=d;return}f=c[f>>2]|0;if((b|0)==31){b=0}else{b=25-(b>>>1)|0}c:do{if((c[f+4>>2]&-8|0)!=(m|0)){g=m<<b;while(1){h=f+16+(g>>>31<<2)|0;b=c[h>>2]|0;if((b|0)==0){break}if((c[b+4>>2]&-8|0)==(m|0)){f=b;break c}else{f=b;g=g<<1}}if(h>>>0<(c[7836]|0)>>>0){hc()}c[h>>2]=e;c[d+24>>2]=f;c[d+12>>2]=d;c[d+8>>2]=d;return}}while(0);g=f+8|0;b=c[g>>2]|0;h=c[7836]|0;if(f>>>0<h>>>0){hc()}if(b>>>0<h>>>0){hc()}c[b+12>>2]=e;c[g>>2]=e;c[d+8>>2]=b;c[d+12>>2]=f;c[d+24>>2]=0;return}function Nu(a){a=a|0;var b=0,d=0;a=(a|0)==0?1:a;while(1){d=Gu(a)|0;if((d|0)!=0){b=10;break}d=(I=c[10888]|0,c[10888]=I+0,I);if((d|0)==0){break}Uc[d&3]()}if((b|0)==10){return d|0}d=pc(4)|0;c[d>>2]=19472;Fb(d|0,25528,174);return 0}function Ou(a){a=a|0;return Nu(a)|0}function Pu(a){a=a|0;if((a|0)==0){return}Hu(a);return}function Qu(a){a=a|0;Pu(a);return}function Ru(a){a=a|0;Pu(a);return}function Su(a){a=a|0;return}function Tu(a){a=a|0;return 9160}function Uu(){var a=0;a=pc(4)|0;c[a>>2]=19472;Fb(a|0,25528,174)}function Vu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0;g=i;i=i+512|0;k=g|0;if((e|0)==2){j=-1074;h=53}else if((e|0)==1){j=-1074;h=53}else if((e|0)==0){j=-149;h=24}else{N=0.0;i=g;return+N}n=b+4|0;o=b+100|0;do{e=c[n>>2]|0;if(e>>>0<(c[o>>2]|0)>>>0){c[n>>2]=e+1;D=d[e]|0}else{D=Yu(b)|0}}while((Sa(D|0)|0)!=0);do{if((D|0)==45|(D|0)==43){e=1-(((D|0)==45)<<1)|0;l=c[n>>2]|0;if(l>>>0<(c[o>>2]|0)>>>0){c[n>>2]=l+1;D=d[l]|0;break}else{D=Yu(b)|0;break}}else{e=1}}while(0);l=0;do{if((D|32|0)!=(a[3344+l|0]|0)){break}do{if(l>>>0<7>>>0){m=c[n>>2]|0;if(m>>>0<(c[o>>2]|0)>>>0){c[n>>2]=m+1;D=d[m]|0;break}else{D=Yu(b)|0;break}}}while(0);l=l+1|0;}while(l>>>0<8>>>0);do{if((l|0)==3){q=23}else if((l|0)!=8){p=(f|0)==0;if(!(l>>>0<4>>>0|p)){if((l|0)==8){break}else{q=23;break}}a:do{if((l|0)==0){l=0;do{if((D|32|0)!=(a[14392+l|0]|0)){break a}do{if(l>>>0<2>>>0){m=c[n>>2]|0;if(m>>>0<(c[o>>2]|0)>>>0){c[n>>2]=m+1;D=d[m]|0;break}else{D=Yu(b)|0;break}}}while(0);l=l+1|0;}while(l>>>0<3>>>0)}}while(0);if((l|0)==3){e=c[n>>2]|0;if(e>>>0<(c[o>>2]|0)>>>0){c[n>>2]=e+1;e=d[e]|0}else{e=Yu(b)|0}if((e|0)==40){e=1}else{if((c[o>>2]|0)==0){N=+v;i=g;return+N}c[n>>2]=(c[n>>2]|0)-1;N=+v;i=g;return+N}while(1){h=c[n>>2]|0;if(h>>>0<(c[o>>2]|0)>>>0){c[n>>2]=h+1;h=d[h]|0}else{h=Yu(b)|0}if(!((h-48|0)>>>0<10>>>0|(h-65|0)>>>0<26>>>0)){if(!((h-97|0)>>>0<26>>>0|(h|0)==95)){break}}e=e+1|0}if((h|0)==41){N=+v;i=g;return+N}h=(c[o>>2]|0)==0;if(!h){c[n>>2]=(c[n>>2]|0)-1}if(p){L=Vb()|0;c[L>>2]=22;Xu(b,0);N=0.0;i=g;return+N}if((e|0)==0|h){N=+v;i=g;return+N}while(1){e=e-1|0;c[n>>2]=(c[n>>2]|0)-1;if((e|0)==0){s=+v;break}}i=g;return+s}else if((l|0)==0){do{if((D|0)==48){l=c[n>>2]|0;if(l>>>0<(c[o>>2]|0)>>>0){c[n>>2]=l+1;l=d[l]|0}else{l=Yu(b)|0}if((l|32|0)!=120){if((c[o>>2]|0)==0){D=48;break}c[n>>2]=(c[n>>2]|0)-1;D=48;break}k=c[n>>2]|0;if(k>>>0<(c[o>>2]|0)>>>0){c[n>>2]=k+1;x=d[k]|0;A=0}else{x=Yu(b)|0;A=0}while(1){if((x|0)==46){q=70;break}else if((x|0)!=48){l=0;k=0;m=0;r=0;u=0;B=0;I=1.0;s=0.0;t=0;break}k=c[n>>2]|0;if(k>>>0<(c[o>>2]|0)>>>0){c[n>>2]=k+1;x=d[k]|0;A=1;continue}else{x=Yu(b)|0;A=1;continue}}b:do{if((q|0)==70){k=c[n>>2]|0;if(k>>>0<(c[o>>2]|0)>>>0){c[n>>2]=k+1;x=d[k]|0}else{x=Yu(b)|0}if((x|0)==48){m=-1;r=-1}else{l=0;k=0;m=0;r=0;u=1;B=0;I=1.0;s=0.0;t=0;break}while(1){k=c[n>>2]|0;if(k>>>0<(c[o>>2]|0)>>>0){c[n>>2]=k+1;x=d[k]|0}else{x=Yu(b)|0}if((x|0)!=48){l=0;k=0;A=1;u=1;B=0;I=1.0;s=0.0;t=0;break b}L=hv(r,m,-1,-1)|0;m=K;r=L}}}while(0);c:while(1){C=x-48|0;do{if(C>>>0<10>>>0){q=84}else{y=x|32;z=(x|0)==46;if(!((y-97|0)>>>0<6>>>0|z)){break c}if(z){if((u|0)==0){z=l;y=k;m=l;r=k;u=1;break}else{x=46;break c}}else{C=(x|0)>57?y-87|0:C;q=84;break}}}while(0);if((q|0)==84){q=0;L=0;do{if((l|0)<(L|0)|(l|0)==(L|0)&k>>>0<8>>>0){M=I;t=C+(t<<4)|0}else{L=0;if((l|0)<(L|0)|(l|0)==(L|0)&k>>>0<14>>>0){N=I*.0625;M=N;s=s+N*+(C|0);break}if(!((C|0)!=0&(B|0)==0)){M=I;break}B=1;M=I;s=s+I*.5}}while(0);y=hv(k,l,1,0)|0;z=K;A=1;I=M}k=c[n>>2]|0;if(k>>>0<(c[o>>2]|0)>>>0){c[n>>2]=k+1;x=d[k]|0;l=z;k=y;continue}else{x=Yu(b)|0;l=z;k=y;continue}}if((A|0)==0){h=(c[o>>2]|0)==0;if(!h){c[n>>2]=(c[n>>2]|0)-1}do{if(p){Xu(b,0)}else{if(h){break}h=c[n>>2]|0;c[n>>2]=h-1;if((u|0)==0){break}c[n>>2]=h-2}}while(0);N=+(e|0)*0.0;i=g;return+N}u=(u|0)==0;q=u?k:r;m=u?l:m;L=0;if((l|0)<(L|0)|(l|0)==(L|0)&k>>>0<8>>>0){do{t=t<<4;k=hv(k,l,1,0)|0;l=K;L=0;}while((l|0)<(L|0)|(l|0)==(L|0)&k>>>0<8>>>0)}do{if((x|32|0)==112){k=Wu(b,f)|0;l=K;if(!((k|0)==0&(l|0)==(-2147483648|0))){break}if(p){Xu(b,0);N=0.0;i=g;return+N}else{if((c[o>>2]|0)==0){l=0;k=0;break}c[n>>2]=(c[n>>2]|0)-1;l=0;k=0;break}}else{if((c[o>>2]|0)==0){l=0;k=0;break}c[n>>2]=(c[n>>2]|0)-1;l=0;k=0}}while(0);L=hv(q<<2|0>>>30,m<<2|q>>>30,-32,-1)|0;k=hv(L,K,k,l)|0;l=K;if((t|0)==0){N=+(e|0)*0.0;i=g;return+N}L=0;if((l|0)>(L|0)|(l|0)==(L|0)&k>>>0>(-j|0)>>>0){L=Vb()|0;c[L>>2]=34;N=+(e|0)*1.7976931348623157e+308*1.7976931348623157e+308;i=g;return+N}m=j-106|0;L=(m|0)<0|0?-1:0;if((l|0)<(L|0)|(l|0)==(L|0)&k>>>0<m>>>0){L=Vb()|0;c[L>>2]=34;N=+(e|0)*2.2250738585072014e-308*2.2250738585072014e-308;i=g;return+N}if((t|0)>-1){do{t=t<<1;if(s<.5){I=s}else{I=s+-1.0;t=t|1}s=s+I;k=hv(k,l,-1,-1)|0;l=K;}while((t|0)>-1)}m=0;j=iv(32,0,j,(j|0)<0|0?-1:0)|0;j=hv(k,l,j,K)|0;L=K;if((m|0)>(L|0)|(m|0)==(L|0)&h>>>0>j>>>0){h=(j|0)<0?0:j}do{if((h|0)<53){I=+(e|0);M=+Cb(+(+Zu(1.0,84-h|0)),+I);if(!((h|0)<32&s!=0.0)){break}e=t&1;s=(e|0)==0?0.0:s;t=(e^1)+t|0}else{M=0.0;I=+(e|0)}}while(0);s=I*s+(M+I*+(t>>>0>>>0))-M;if(!(s!=0.0)){L=Vb()|0;c[L>>2]=34}N=+_u(s,k);i=g;return+N}}while(0);m=j+h|0;l=-m|0;C=0;while(1){if((D|0)==46){q=139;break}else if((D|0)!=48){F=0;x=0;u=0;break}r=c[n>>2]|0;if(r>>>0<(c[o>>2]|0)>>>0){c[n>>2]=r+1;D=d[r]|0;C=1;continue}else{D=Yu(b)|0;C=1;continue}}d:do{if((q|0)==139){r=c[n>>2]|0;if(r>>>0<(c[o>>2]|0)>>>0){c[n>>2]=r+1;D=d[r]|0}else{D=Yu(b)|0}if((D|0)==48){x=-1;u=-1}else{F=1;x=0;u=0;break}while(1){r=c[n>>2]|0;if(r>>>0<(c[o>>2]|0)>>>0){c[n>>2]=r+1;D=d[r]|0}else{D=Yu(b)|0}if((D|0)!=48){F=1;C=1;break d}L=hv(u,x,-1,-1)|0;x=K;u=L}}}while(0);r=k|0;c[r>>2]=0;H=D-48|0;G=(D|0)==46;e:do{if(H>>>0<10>>>0|G){t=k+496|0;E=0;B=0;y=0;A=0;z=0;while(1){do{if(G){if((F|0)==0){F=1;J=E;L=B;x=E;u=B}else{break e}}else{B=hv(B,E,1,0)|0;E=K;G=(D|0)!=48;if((A|0)>=125){if(!G){J=E;L=B;break}c[t>>2]=c[t>>2]|1;J=E;L=B;break}C=k+(A<<2)|0;if((z|0)!=0){H=D-48+((c[C>>2]|0)*10|0)|0}c[C>>2]=H;z=z+1|0;C=(z|0)==9;z=C?0:z;A=(C&1)+A|0;C=1;y=G?B:y;J=E;L=B}}while(0);B=c[n>>2]|0;if(B>>>0<(c[o>>2]|0)>>>0){c[n>>2]=B+1;D=d[B]|0}else{D=Yu(b)|0}H=D-48|0;G=(D|0)==46;if(H>>>0<10>>>0|G){E=J;B=L}else{E=J;B=L;q=162;break}}}else{E=0;B=0;y=0;A=0;z=0;q=162}}while(0);if((q|0)==162){t=(F|0)==0;x=t?E:x;u=t?B:u}t=(C|0)!=0;do{if(t){if((D|32|0)!=101){q=171;break}f=Wu(b,f)|0;C=K;do{if((f|0)==0&(C|0)==(-2147483648|0)){if(p){Xu(b,0);N=0.0;i=g;return+N}else{if((c[o>>2]|0)==0){C=0;f=0;break}c[n>>2]=(c[n>>2]|0)-1;C=0;f=0;break}}}while(0);u=hv(f,C,u,x)|0;x=K}else{q=171}}while(0);do{if((q|0)==171){if(!((D|0)>-1)){break}if((c[o>>2]|0)==0){break}c[n>>2]=(c[n>>2]|0)-1}}while(0);if(!t){L=Vb()|0;c[L>>2]=22;Xu(b,0);N=0.0;i=g;return+N}b=c[r>>2]|0;if((b|0)==0){N=+(e|0)*0.0;i=g;return+N}L=0;do{if((u|0)==(B|0)&(x|0)==(E|0)&((E|0)<(L|0)|(E|0)==(L|0)&B>>>0<10>>>0)){if(!(h>>>0>30>>>0)){if((b>>>(h>>>0)|0)!=0){break}}N=+(e|0)*+(b>>>0>>>0);i=g;return+N}}while(0);b=(j|0)/-2|0;L=(b|0)<0|0?-1:0;if((x|0)>(L|0)|(x|0)==(L|0)&u>>>0>b>>>0){L=Vb()|0;c[L>>2]=34;N=+(e|0)*1.7976931348623157e+308*1.7976931348623157e+308;i=g;return+N}b=j-106|0;L=(b|0)<0|0?-1:0;if((x|0)<(L|0)|(x|0)==(L|0)&u>>>0<b>>>0){L=Vb()|0;c[L>>2]=34;N=+(e|0)*2.2250738585072014e-308*2.2250738585072014e-308;i=g;return+N}if((z|0)!=0){if((z|0)<9){b=k+(A<<2)|0;n=c[b>>2]|0;do{n=n*10|0;z=z+1|0;}while((z|0)<9);c[b>>2]=n}A=A+1|0}do{if((y|0)<9){if(!((y|0)<=(u|0)&(u|0)<18)){break}if((u|0)==9){N=+(e|0)*+((c[r>>2]|0)>>>0>>>0);i=g;return+N}if((u|0)<9){N=+(e|0)*+((c[r>>2]|0)>>>0>>>0)/+(c[216+(8-u<<2)>>2]|0);i=g;return+N}b=h+27+(u*-3|0)|0;n=c[r>>2]|0;if((b|0)<=30){if((n>>>(b>>>0)|0)!=0){break}}N=+(e|0)*+(n>>>0>>>0)*+(c[216+(u-10<<2)>>2]|0);i=g;return+N}}while(0);b=(u|0)%9|0;if((b|0)==0){b=0;n=0}else{o=(u|0)>-1?b:b+9|0;n=c[216+(8-o<<2)>>2]|0;do{if((A|0)==0){A=0;b=0}else{f=1e9/(n|0)|0;b=0;r=0;q=0;while(1){J=k+(r<<2)|0;p=c[J>>2]|0;L=((p>>>0)/(n>>>0)|0)+q|0;c[J>>2]=L;q=ga((p>>>0)%(n>>>0)|0,f)|0;p=r+1|0;if((r|0)==(b|0)&(L|0)==0){b=p&127;u=u-9|0}if((p|0)==(A|0)){break}else{r=p}}if((q|0)==0){break}c[k+(A<<2)>>2]=q;A=A+1|0}}while(0);n=0;u=9-o+u|0}f:while(1){o=k+(b<<2)|0;if((u|0)<18){do{f=0;o=A+127|0;while(1){o=o&127;p=k+(o<<2)|0;q=c[p>>2]|0;q=hv(q<<29|0>>>3,0<<29|q>>>3,f,0)|0;f=K;L=0;if(f>>>0>L>>>0|f>>>0==L>>>0&q>>>0>1e9>>>0){L=sv(q,f,1e9,0)|0;q=tv(q,f,1e9,0)|0;f=L}else{f=0}c[p>>2]=q;p=(o|0)==(b|0);if(!((o|0)!=(A+127&127|0)|p)){A=(q|0)==0?o:A}if(p){break}else{o=o-1|0}}n=n-29|0;}while((f|0)==0)}else{if((u|0)!=18){break}do{if(!((c[o>>2]|0)>>>0<9007199>>>0)){u=18;break f}f=0;p=A+127|0;while(1){p=p&127;q=k+(p<<2)|0;r=c[q>>2]|0;r=hv(r<<29|0>>>3,0<<29|r>>>3,f,0)|0;f=K;L=0;if(f>>>0>L>>>0|f>>>0==L>>>0&r>>>0>1e9>>>0){L=sv(r,f,1e9,0)|0;r=tv(r,f,1e9,0)|0;f=L}else{f=0}c[q>>2]=r;q=(p|0)==(b|0);if(!((p|0)!=(A+127&127|0)|q)){A=(r|0)==0?p:A}if(q){break}else{p=p-1|0}}n=n-29|0;}while((f|0)==0)}b=b+127&127;if((b|0)==(A|0)){L=A+127&127;A=k+((A+126&127)<<2)|0;c[A>>2]=c[A>>2]|c[k+(L<<2)>>2];A=L}c[k+(b<<2)>>2]=f;u=u+9|0}g:while(1){o=A+1&127;f=k+((A+127&127)<<2)|0;while(1){q=(u|0)==18;p=(u|0)>27?9:1;while(1){r=0;while(1){t=r+b&127;if((t|0)==(A|0)){r=2;break}t=c[k+(t<<2)>>2]|0;y=c[208+(r<<2)>>2]|0;if(t>>>0<y>>>0){r=2;break}x=r+1|0;if(t>>>0>y>>>0){break}if((x|0)<2){r=x}else{r=x;break}}if((r|0)==2&q){break g}n=p+n|0;if((b|0)==(A|0)){b=A}else{break}}r=(1<<p)-1|0;q=1e9>>>(p>>>0);t=b;y=0;do{J=k+(b<<2)|0;L=c[J>>2]|0;x=(L>>>(p>>>0))+y|0;c[J>>2]=x;y=ga(L&r,q)|0;x=(b|0)==(t|0)&(x|0)==0;b=b+1&127;u=x?u-9|0:u;t=x?b:t;}while((b|0)!=(A|0));if((y|0)==0){b=t;continue}if((o|0)!=(t|0)){break}c[f>>2]=c[f>>2]|1;b=t}c[k+(A<<2)>>2]=y;b=t;A=o}f=b&127;if((f|0)==(A|0)){c[k+(o-1<<2)>>2]=0;A=o}I=+((c[k+(f<<2)>>2]|0)>>>0>>>0);o=b+1&127;if((o|0)==(A|0)){A=A+1&127;c[k+(A-1<<2)>>2]=0}s=+(e|0);M=s*(I*1.0e9+ +((c[k+(o<<2)>>2]|0)>>>0>>>0));e=n+53|0;j=e-j|0;if((j|0)<(h|0)){h=(j|0)<0?0:j;o=1}else{o=0}if((h|0)<53){P=+Cb(+(+Zu(1.0,105-h|0)),+M);O=+$a(+M,+(+Zu(1.0,53-h|0)));I=P;N=O;M=P+(M-O)}else{I=0.0;N=0.0}f=b+2&127;do{if((f|0)!=(A|0)){k=c[k+(f<<2)>>2]|0;do{if(k>>>0<5e8>>>0){if((k|0)==0){if((b+3&127|0)==(A|0)){break}}N=s*.25+N}else{if(k>>>0>5e8>>>0){N=s*.75+N;break}if((b+3&127|0)==(A|0)){N=s*.5+N;break}else{N=s*.75+N;break}}}while(0);if((53-h|0)<=1){break}if(+$a(+N,+1.0)!=0.0){break}N=N+1.0}}while(0);s=M+N-I;do{if((e&2147483647|0)>(-2-m|0)){if(!(+V(+s)<9007199254740992.0)){s=s*.5;o=(o|0)!=0&(h|0)==(j|0)?0:o;n=n+1|0}if((n+50|0)<=(l|0)){if(!((o|0)!=0&N!=0.0)){break}}L=Vb()|0;c[L>>2]=34}}while(0);P=+_u(s,n);i=g;return+P}else{if((c[o>>2]|0)!=0){c[n>>2]=(c[n>>2]|0)-1}L=Vb()|0;c[L>>2]=22;Xu(b,0);P=0.0;i=g;return+P}}}while(0);do{if((q|0)==23){h=(c[o>>2]|0)==0;if(!h){c[n>>2]=(c[n>>2]|0)-1}if(l>>>0<4>>>0|(f|0)==0|h){break}do{c[n>>2]=(c[n>>2]|0)-1;l=l-1|0;}while(l>>>0>3>>>0)}}while(0);P=+(e|0)*w;i=g;return+P}function Wu(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;g=c[e>>2]|0;f=a+100|0;if(g>>>0<(c[f>>2]|0)>>>0){c[e>>2]=g+1;h=d[g]|0}else{h=Yu(a)|0}do{if((h|0)==45|(h|0)==43){g=(h|0)==45|0;h=c[e>>2]|0;if(h>>>0<(c[f>>2]|0)>>>0){c[e>>2]=h+1;h=d[h]|0}else{h=Yu(a)|0}if((h-48|0)>>>0<10>>>0|(b|0)==0){break}if((c[f>>2]|0)==0){break}c[e>>2]=(c[e>>2]|0)-1}else{g=0}}while(0);if((h-48|0)>>>0>9>>>0){if((c[f>>2]|0)==0){h=-2147483648;i=0;return(K=h,i)|0}c[e>>2]=(c[e>>2]|0)-1;h=-2147483648;i=0;return(K=h,i)|0}else{b=0}while(1){b=h-48+b|0;h=c[e>>2]|0;if(h>>>0<(c[f>>2]|0)>>>0){c[e>>2]=h+1;h=d[h]|0}else{h=Yu(a)|0}if(!((h-48|0)>>>0<10>>>0&(b|0)<214748364)){break}b=b*10|0}i=b;b=(b|0)<0|0?-1:0;if((h-48|0)>>>0<10>>>0){do{b=rv(i,b,10,0)|0;i=K;h=hv(h,(h|0)<0|0?-1:0,-48,-1)|0;i=hv(h,K,b,i)|0;b=K;h=c[e>>2]|0;if(h>>>0<(c[f>>2]|0)>>>0){c[e>>2]=h+1;h=d[h]|0}else{h=Yu(a)|0}j=21474836;}while((h-48|0)>>>0<10>>>0&((b|0)<(j|0)|(b|0)==(j|0)&i>>>0<2061584302>>>0))}if((h-48|0)>>>0<10>>>0){do{h=c[e>>2]|0;if(h>>>0<(c[f>>2]|0)>>>0){c[e>>2]=h+1;h=d[h]|0}else{h=Yu(a)|0}}while((h-48|0)>>>0<10>>>0)}if((c[f>>2]|0)!=0){c[e>>2]=(c[e>>2]|0)-1}e=(g|0)!=0;a=iv(0,0,i,b)|0;f=e?K:b;j=e?a:i;return(K=f,j)|0}function Xu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;e=c[a+8>>2]|0;d=c[a+4>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0)){c[a+100>>2]=d+b;return}else{c[a+100>>2]=e;return}}function Yu(b){b=b|0;var e=0,f=0,g=0,h=0,i=0;g=b+104|0;e=c[g>>2]|0;if((e|0)==0){f=3}else{if((c[b+108>>2]|0)<(e|0)){f=3}}do{if((f|0)==3){e=av(b)|0;if((e|0)<0){break}i=c[g>>2]|0;g=c[b+8>>2]|0;do{if((i|0)==0){f=8}else{h=c[b+4>>2]|0;i=i-(c[b+108>>2]|0)-1|0;if((g-h|0)<=(i|0)){f=8;break}c[b+100>>2]=h+i}}while(0);if((f|0)==8){c[b+100>>2]=g}f=c[b+4>>2]|0;if((g|0)!=0){i=b+108|0;c[i>>2]=g+1-f+(c[i>>2]|0)}b=f-1|0;if((d[b]|0|0)==(e|0)){i=e;return i|0}a[b]=e;i=e;return i|0}}while(0);c[b+100>>2]=0;i=-1;return i|0}function Zu(a,b){a=+a;b=b|0;var d=0;do{if((b|0)>1023){a=a*8.98846567431158e+307;d=b-1023|0;if((d|0)<=1023){b=d;break}b=b-2046|0;a=a*8.98846567431158e+307;b=(b|0)>1023?1023:b}else{if(!((b|0)<-1022)){break}a=a*2.2250738585072014e-308;d=b+1022|0;if(!((d|0)<-1022)){b=d;break}b=b+2044|0;a=a*2.2250738585072014e-308;b=(b|0)<-1022?-1022:b}}while(0);return+(a*(c[k>>2]=0<<20|0>>>12,c[k+4>>2]=b+1023<<20|0>>>12,+h[k>>3]))}function _u(a,b){a=+a;b=b|0;return+(+Zu(a,b))}function $u(b){b=b|0;var d=0,e=0,f=0;e=b+74|0;d=a[e]|0;a[e]=d-1&255|d;e=b+20|0;d=b+44|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0){Hc[c[b+36>>2]&63](b,0,0)|0}c[b+16>>2]=0;c[b+28>>2]=0;c[e>>2]=0;f=b|0;e=c[f>>2]|0;if((e&20|0)==0){f=c[d>>2]|0;c[b+8>>2]=f;c[b+4>>2]=f;f=0;return f|0}if((e&4|0)==0){f=-1;return f|0}c[f>>2]=e|32;f=-1;return f|0}function av(a){a=a|0;var b=0,e=0;b=i;i=i+8|0;e=b|0;do{if((c[a+8>>2]|0)==0){if(($u(a)|0)==0){break}else{a=-1}i=b;return a|0}}while(0);if((Hc[c[a+32>>2]&63](a,e,1)|0)!=1){e=-1;i=b;return e|0}e=d[e]|0;i=b;return e|0}function bv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0;d=i;i=i+112|0;f=d|0;dv(f|0,0,112)|0;h=f+4|0;c[h>>2]=a;g=f+8|0;c[g>>2]=-1;c[f+44>>2]=a;c[f+76>>2]=-1;Xu(f,0);e=+Vu(f,2,1);f=(c[h>>2]|0)-(c[g>>2]|0)+(c[f+108>>2]|0)|0;if((b|0)==0){i=d;return+e}if((f|0)!=0){a=a+f|0}c[b>>2]=a;i=d;return+e}function cv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return wb(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if((e|0)==0)return f|0;a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b]=a[d]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function dv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;i=b&3;h=d|d<<8|d<<16|d<<24;g=f&~3;if(i){i=b+4-i|0;while((b|0)<(i|0)){a[b]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b]=d;b=b+1|0}return b-e|0}function ev(b){b=b|0;var c=0;c=b;while(a[c]|0){c=c+1|0}return c-b|0}function fv(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b]=a[c]|0}b=e}else{cv(b,c,d)|0}return b|0}function gv(i,j,k,l,m,n,o,p){i=i;j=j;k=k;l=l;m=m;n=n;o=o;p=p;a=i;b=j;c=k;d=l;e=m;f=n;g=o;h=p}function hv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(K=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function iv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=b-d-(c>>>0>a>>>0|0)>>>0;return(K=b,a-c>>>0|0)|0}function jv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){K=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}K=a<<c-32;return 0}function kv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){K=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}K=0;return b>>>c-32|0}function lv(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){K=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}K=(b|0)<0?-1:0;return b>>c-32|0}function mv(b){b=b|0;var c=0;c=a[n+(b>>>24)|0]|0;if((c|0)<8)return c|0;c=a[n+(b>>16&255)|0]|0;if((c|0)<8)return c+8|0;c=a[n+(b>>8&255)|0]|0;if((c|0)<8)return c+16|0;return(a[n+(b&255)|0]|0)+24|0}function nv(b){b=b|0;var c=0;c=a[m+(b&255)|0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)|0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)|0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)|0]|0)+24|0}function ov(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;d=b&65535;c=ga(d,f)|0;e=a>>>16;d=(c>>>16)+(ga(d,e)|0)|0;b=b>>>16;a=ga(b,f)|0;return(K=(d>>>16)+(ga(b,e)|0)+(((d&65535)+a|0)>>>16)|0,d+a<<16|c&65535|0)|0}function pv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;a=iv(e^a,f^b,e,f)|0;b=K;e=g^e;f=h^f;g=iv((uv(a,b,iv(g^c,h^d,g,h)|0,K,0)|0)^e,K^f,e,f)|0;return(K=K,g)|0}function qv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+8|0;f=g|0;h=b>>31|((b|0)<0?-1:0)<<1;j=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;l=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=iv(h^a,j^b,h,j)|0;b=K;uv(a,b,iv(k^d,l^e,k,l)|0,K,f)|0;k=iv(c[f>>2]^h,c[f+4>>2]^j,h,j)|0;j=K;i=g;return(K=j,k)|0}function rv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;a=ov(e,f)|0;c=K;return(K=(ga(b,f)|0)+(ga(d,e)|0)+c|c&0,a|0|0)|0}function sv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=uv(a,b,c,d,0)|0;return(K=K,a)|0}function tv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+8|0;f=g|0;uv(a,b,d,e,f)|0;i=g;return(K=c[f+4>>2]|0,c[f>>2]|0)|0}function uv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=a;j=b;i=j;k=d;g=e;l=g;if((i|0)==0){d=(f|0)!=0;if((l|0)==0){if(d){c[f>>2]=(h>>>0)%(k>>>0);c[f+4>>2]=0}l=0;m=(h>>>0)/(k>>>0)>>>0;return(K=l,m)|0}else{if(!d){l=0;m=0;return(K=l,m)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;l=0;m=0;return(K=l,m)|0}}m=(l|0)==0;do{if((k|0)==0){if(m){if((f|0)!=0){c[f>>2]=(i>>>0)%(k>>>0);c[f+4>>2]=0}l=0;m=(i>>>0)/(k>>>0)>>>0;return(K=l,m)|0}if((h|0)==0){if((f|0)!=0){c[f>>2]=0;c[f+4>>2]=(i>>>0)%(l>>>0)}k=0;m=(i>>>0)/(l>>>0)>>>0;return(K=k,m)|0}k=l-1|0;if((k&l|0)==0){if((f|0)!=0){c[f>>2]=a|0;c[f+4>>2]=k&i|b&0}k=0;m=i>>>((nv(l|0)|0)>>>0);return(K=k,m)|0}k=(mv(l|0)|0)-(mv(i|0)|0)|0;if(k>>>0<=30){b=k+1|0;m=31-k|0;j=b;a=i<<m|h>>>(b>>>0);b=i>>>(b>>>0);l=0;i=h<<m;break}if((f|0)==0){l=0;m=0;return(K=l,m)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;l=0;m=0;return(K=l,m)|0}else{if(!m){k=(mv(l|0)|0)-(mv(i|0)|0)|0;if(k>>>0<=31){l=k+1|0;m=31-k|0;b=k-31>>31;j=l;a=h>>>(l>>>0)&b|i<<m;b=i>>>(l>>>0)&b;l=0;i=h<<m;break}if((f|0)==0){l=0;m=0;return(K=l,m)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;l=0;m=0;return(K=l,m)|0}l=k-1|0;if((l&k|0)!=0){m=(mv(k|0)|0)+33-(mv(i|0)|0)|0;p=64-m|0;k=32-m|0;n=k>>31;o=m-32|0;b=o>>31;j=m;a=k-1>>31&i>>>(o>>>0)|(i<<k|h>>>(m>>>0))&b;b=b&i>>>(m>>>0);l=h<<p&n;i=(i<<p|h>>>(o>>>0))&n|h<<k&m-33>>31;break}if((f|0)!=0){c[f>>2]=l&h;c[f+4>>2]=0}if((k|0)==1){o=j|b&0;p=a|0|0;return(K=o,p)|0}else{p=nv(k|0)|0;o=i>>>(p>>>0)|0;p=i<<32-p|h>>>(p>>>0)|0;return(K=o,p)|0}}}while(0);if((j|0)==0){m=a;d=0;a=0}else{d=d|0|0;g=g|e&0;e=hv(d,g,-1,-1)|0;h=K;k=b;m=a;a=0;while(1){b=l>>>31|i<<1;l=a|l<<1;i=m<<1|i>>>31|0;k=m>>>31|k<<1|0;iv(e,h,i,k)|0;m=K;p=m>>31|((m|0)<0?-1:0)<<1;a=p&1;m=iv(i,k,p&d,(((m|0)<0?-1:0)>>31|((m|0)<0?-1:0)<<1)&g)|0;k=K;j=j-1|0;if((j|0)==0){break}else{i=b}}i=b;b=k;d=0}g=0;if((f|0)!=0){c[f>>2]=m;c[f+4>>2]=b}o=(l|0)>>>31|(i|g)<<1|(g<<1|l>>>31)&0|d;p=(l<<1|0>>>31)&-2|a;return(K=o,p)|0}function vv(){qc()}function wv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Cc[a&31](b|0,c|0,d|0,e|0,f|0)}function xv(a,b){a=a|0;b=b|0;Dc[a&511](b|0)}function yv(a,b,c){a=a|0;b=b|0;c=c|0;Ec[a&127](b|0,c|0)}function zv(a,b){a=a|0;b=b|0;return Fc[a&255](b|0)|0}function Av(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Gc[a&31](b|0,c|0,d|0,e|0,f|0)|0}function Bv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Hc[a&63](b|0,c|0,d|0)|0}function Cv(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;Ic[a&15](b|0,c|0,d|0,e|0,f|0,+g)}function Dv(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;Jc[a&63](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Ev(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Kc[a&63](b|0,c|0,d|0,e|0,f|0,g|0)}function Fv(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;Lc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0,n|0)}function Gv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Mc[a&127](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Hv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=+h;Nc[a&7](b|0,c|0,d|0,e|0,f|0,g|0,+h)}function Iv(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;Oc[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Jv(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;Pc[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Kv(a,b,c){a=a|0;b=b|0;c=c|0;return Qc[a&63](b|0,c|0)|0}function Lv(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;Rc[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0,l|0,m|0)}function Mv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Sc[a&15](b|0,c|0,d|0,e|0)|0}function Nv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Tc[a&63](b|0,c|0,d|0)}function Ov(a){a=a|0;Uc[a&3]()}function Pv(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Vc[a&31](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function Qv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Wc[a&63](b|0,c|0,d|0,e|0)}function Rv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ha(0)}function Sv(a){a=a|0;ha(1)}function Tv(a,b){a=a|0;b=b|0;ha(2)}function Uv(a){a=a|0;ha(3);return 0}function Vv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ha(4);return 0}function Wv(a,b,c){a=a|0;b=b|0;c=c|0;ha(5);return 0}function Xv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;ha(6)}function Yv(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ha(7)}function Zv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ha(8)}function _v(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;ha(9)}function $v(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ha(10)}function aw(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;ha(11)}function bw(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;ha(12)}function cw(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;ha(13)}function dw(a,b){a=a|0;b=b|0;ha(14);return 0}function ew(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;ha(15)}function fw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ha(16);return 0}function gw(a,b,c){a=a|0;b=b|0;c=c|0;ha(17)}function hw(){ha(18)}function iw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;ha(19);return 0}function jw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ha(20)} - - - -function Uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=b+4|0;f=c[e>>2]|0;c[e>>2]=c[d>>2];c[d>>2]=f;d=a+60|0;f=b+60|0;e=c[d>>2]|0;c[d>>2]=c[f>>2];c[f>>2]=e;f=a+10492|0;e=b+10492|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+8|0;d=b+8|0;f=c[e>>2]|0;c[e>>2]=c[d>>2];c[d>>2]=f;d=a+64|0;f=b+64|0;e=c[d>>2]|0;c[d>>2]=c[f>>2];c[f>>2]=e;f=a+10496|0;e=b+10496|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+12|0;d=b+12|0;f=c[e>>2]|0;c[e>>2]=c[d>>2];c[d>>2]=f;d=a+68|0;f=b+68|0;e=c[d>>2]|0;c[d>>2]=c[f>>2];c[f>>2]=e;f=a+10500|0;e=b+10500|0;d=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=d;e=a+40|0;d=b+40|0;f=c[e>>2]|0;c[e>>2]=c[d>>2];c[d>>2]=f;d=a+44|0;f=b+44|0;e=c[d>>2]|0;c[d>>2]=c[f>>2];c[f>>2]=e;f=a+10504|0;e=c[f>>2]|0;d=c[f+4>>2]|0;a=b+10504|0;b=c[a+4>>2]|0;c[f>>2]=c[a>>2];c[f+4>>2]=b;c[a>>2]=e;c[a+4>>2]=d;return}function Vh(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+10548|0;vk(d);e=a+10528|0;c[e>>2]=(c[e>>2]|0)+b;a=a+10544|0;c[a>>2]=(c[a>>2]|0)+b;wk(d);return}function Wh(a,b){a=a|0;b=b|0;var d=0;b=a+10548|0;vk(b);d=a+10528|0;c[d>>2]=(c[d>>2]|0)-1;a=a+10532|0;c[a>>2]=(c[a>>2]|0)+1;wk(b);return}function Xh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=a+10548|0;vk(b);f=a+10532|0;e=c[f>>2]|0;c[f>>2]=e-1;f=a+10540|0;d=(c[f>>2]|0)+1|0;c[f>>2]=d;if((e|0)<=0){ec(2424,15792,642,17760)}if((d|0)!=(c[a+10544>>2]|0)){wk(b);return}zk(a+10572|0,b);wk(b);return}function Yh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;Zh(a,b,(ga(c[a+5820>>2]|0,e)|0)+d|0,f);return}function Zh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((b|0)==0){return}d=(c[a+10524>>2]|0)+(d*76|0)|0;if((Gk(d)|0)>=(e|0)){return}f=a+10548|0;vk(f);g=a+10532|0;c[g>>2]=(c[g>>2]|0)-1;a=a+10536|0;c[a>>2]=(c[a>>2]|0)+1;wk(f);b=b+4|0;c[b>>2]=2;Dk(d,e);c[b>>2]=1;vk(f);c[a>>2]=(c[a>>2]|0)-1;c[g>>2]=(c[g>>2]|0)+1;wk(f);return}function _h(a){a=a|0;var b=0,d=0,e=0;b=a+10548|0;vk(b);d=a+10540|0;e=a+10544|0;if((c[d>>2]|0)==(c[e>>2]|0)){wk(b);return}a=a+10572|0;do{Ak(a,b);}while((c[d>>2]|0)!=(c[e>>2]|0));wk(b);return}function $h(a){a=a|0;var b=0,d=0;b=c[a+10360>>2]|0;if((b|0)!=0){dv(b|0,0,(c[a+10364>>2]|0)*3|0|0)|0}b=c[a+10340>>2]|0;if((b|0)!=0){dv(b|0,0,(c[a+10344>>2]|0)*24|0|0)|0}b=c[a+10460>>2]|0;if((b|0)!=0){dv(b|0,0,c[a+10464>>2]|0)|0}b=a+10344|0;if((c[b>>2]|0)<=0){return}a=c[a+10524>>2]|0;d=0;do{c[a+(d*76|0)>>2]=0;d=d+1|0;}while((d|0)<(c[b>>2]|0));return}function ai(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;d=d>>2;e=e>>2;f=f>>2;i=g>>2;g=c[a+10392>>2]|0;if((i|0)<=0){return}a=a+10380|0;k=h|0;if((f|0)>0){j=0}else{return}do{l=(ga(j+e|0,g)|0)+d|0;h=0;do{m=(c[a>>2]|0)+((l+h|0)*12|0)|0;b[m>>1]=b[k>>1]|0;b[m+2>>1]=b[k+2>>1]|0;b[m+4>>1]=b[k+4>>1]|0;b[m+6>>1]=b[k+6>>1]|0;b[m+8>>1]=b[k+8>>1]|0;b[m+10>>1]=b[k+10>>1]|0;h=h+1|0;}while((h|0)<(f|0));j=j+1|0;}while((j|0)<(i|0));return}function bi(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;if((g|f|0)<0){e=0;return e|0}if((c[a+1248>>2]|0)<=(f|0)){e=0;return e|0}if((c[a+1252>>2]|0)<=(g|0)){e=0;return e|0}h=c[a+5864>>2]|0;k=c[a+5852>>2]|0;i=(ga(g>>h,k)|0)+(f>>h)|0;j=c[a+10320>>2]|0;h=j+((ga(e>>h,k)|0)+(d>>h)<<2)|0;if((c[j+(i<<2)>>2]|0)>(c[h>>2]|0)){k=0;return k|0}k=c[a+5804>>2]|0;d=d>>k;e=e>>k;f=f>>k;g=g>>k;k=c[a+10352>>2]|0;j=(ga(k,e)|0)+d|0;i=c[a+10340>>2]|0;k=i+(((ga(k,g)|0)+f|0)*24|0)|0;if((b[i+(j*24|0)>>1]|0)!=(b[k>>1]|0)){k=0;return k|0}k=c[a+5820>>2]|0;j=(ga(k,e)|0)+d|0;i=c[a+10308>>2]|0;k=i+((ga(k,g)|0)+f<<2)|0;k=(c[i+(j<<2)>>2]|0)==(c[k>>2]|0);return k|0}function ci(a,e,f,g,h,i,j,k,l,m,n){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0;do{if((e|0)>(m|0)){o=3}else{if(!((f|0)<=(n|0)&(g+e|0)>(m|0)&(g+f|0)>(n|0))){o=3;break}if((j<<1|0)!=(g|0)){break}if(!((k<<1|0)==(g|0)&(l|0)==1)){break}if((k+f|0)>(n|0)){break}if((j+e|0)<=(m|0)){break}return 0}}while(0);do{if((o|0)==3){if((n|m|0)<0){return 0}if((c[a+1248>>2]|0)<=(m|0)){return 0}if((c[a+1252>>2]|0)<=(n|0)){return 0}l=c[a+5864>>2]|0;k=c[a+5852>>2]|0;g=(ga(n>>l,k)|0)+(m>>l)|0;f=c[a+10320>>2]|0;l=f+((ga(i>>l,k)|0)+(h>>l)<<2)|0;if((c[f+(g<<2)>>2]|0)>(c[l>>2]|0)){return 0}o=c[a+5804>>2]|0;h=h>>o;i=i>>o;j=m>>o;o=n>>o;l=c[a+10352>>2]|0;g=(ga(l,i)|0)+h|0;f=c[a+10340>>2]|0;l=f+(((ga(l,o)|0)+j|0)*24|0)|0;if((b[f+(g*24|0)>>1]|0)!=(b[l>>1]|0)){return 0}l=c[a+5820>>2]|0;g=(ga(l,i)|0)+h|0;f=c[a+10308>>2]|0;l=f+((ga(l,o)|0)+j<<2)|0;if((c[f+(g<<2)>>2]|0)==(c[l>>2]|0)){break}return 0}}while(0);l=c[a+10368>>2]|0;m=m>>l;n=n>>l;if(!((m|0)>-1)){ec(568,17072,118,17344);return 0}i=c[a+10372>>2]|0;if((m|0)>=(i|0)){ec(568,17072,118,17344);return 0}if(!((n|0)>-1)){ec(16504,17072,119,17344);return 0}if((n|0)<(c[a+10376>>2]|0)){l=(ga(i,n)|0)+m|0;l=(c[a+10360>>2]|0)+(l*3|0)|0;return((d[l]|d[l+1|0]<<8)<<16>>16&768)!=0|0}else{ec(16504,17072,119,17344);return 0}return 0}function di(a,b,e,f,g,h,i){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;do{if(g){g=c[i+10368>>2]|0;k=b-1>>g;g=e>>g;if(!((k|0)>-1)){ec(7e3,5152,118,17336)}j=c[i+10372>>2]|0;if((k|0)>=(j|0)){ec(7e3,5152,118,17336)}if(!((g|0)>-1)){ec(3672,5152,119,17336)}if((g|0)>=(c[i+10376>>2]|0)){ec(3672,5152,119,17336)}k=(ga(j,g)|0)+k|0;k=(c[i+10360>>2]|0)+(k*3|0)|0;if(!(((d[k]|d[k+1|0]<<8)<<16>>16&1792)==0)){g=1;break}g=d[(c[i+10400>>2]|0)+(f-1)|0]|0}else{g=1}}while(0);do{if(h){k=c[i+10368>>2]|0;h=b>>k;b=e-1>>k;if(!((h|0)>-1)){ec(7e3,5152,118,17336)}j=c[i+10372>>2]|0;if((h|0)>=(j|0)){ec(7e3,5152,118,17336)}if(!((b|0)>-1)){ec(3672,5152,119,17336)}if((b|0)>=(c[i+10376>>2]|0)){ec(3672,5152,119,17336)}k=(ga(j,b)|0)+h|0;k=(c[i+10360>>2]|0)+(k*3|0)|0;if(!(((d[k]|d[k+1|0]<<8)<<16>>16&1792)==0)){i=1;break}k=c[i+5804>>2]|0;if((e>>k<<k|0)>=(e|0)){i=1;break}i=d[(c[i+10400>>2]|0)+(f-(c[i+5876>>2]|0))|0]|0}else{i=1}}while(0);if((g|0)==(i|0)){if(g>>>0<2>>>0){c[a>>2]=0;c[a+4>>2]=1;c[a+8>>2]=26;return}else{c[a>>2]=g;c[a+4>>2]=(g+29&31)+2;c[a+8>>2]=((g-1|0)%32|0)+2;return}}c[a>>2]=g;c[a+4>>2]=i;if(!((g|0)==0|(i|0)==0)){c[a+8>>2]=0;return}a=a+8|0;if((g|0)==1|(i|0)==1){c[a>>2]=26;return}else{c[a>>2]=1;return}}function ei(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((a|0)==3){f=2}else if((a|0)!=2){a=0;return a|0}do{if((f|0)==2){if((d|0)==0){break}if((c[e+5012>>2]|0)==3){break}else{b=0}return b|0}}while(0);if((b-6|0)>>>0<9>>>0){a=2;return a|0}a=(b-22|0)>>>0<9>>>0|0;return a|0}function fi(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if((c[((g|0)==0?a+5760|0:a+5768|0)>>2]|0)>8){gi(a,b,d,e,f,g);return}else{hi(a,b,d,e,f,g);return}}function gi(d,f,g,h,j,k){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=i;i=i+264|0;l=m|0;n=l+128|0;mi(d,f,g,j,k,n);do{if((a[d+5753|0]|0)==0){if((k|0)!=0){if((c[d+5776>>2]|0)!=3){break}}ni(d,n,j,k,h)}}while(0);if((h|0)==1){oi(d,f,g,j,k,n);i=m;return}else if((h|0)==0){n=c[((k|0)==0?d+40|0:d+44|0)>>2]|0;k=(c[d+4+(k<<2)>>2]|0)+((ga(n,g)|0)+f<<1)|0;if((j|0)>1){f=j;g=0;while(1){f=f>>1;if((f|0)>1){g=g+1|0}else{break}}d=g+2|0}else{d=1}if((j|0)<=0){i=m;return}q=j-1|0;p=e[l+(j+65<<1)>>1]|0;o=e[l+(63-j<<1)>>1]|0;r=0;while(1){g=q-r|0;h=r+1|0;f=ga(r,n)|0;u=e[l+(63-r<<1)>>1]|0;t=ga(o,h)|0;s=0;while(1){w=ga(u,q-s|0)|0;r=s+1|0;v=ga(p,r)|0;v=w+j+v+(ga(e[l+(s+65<<1)>>1]|0,g)|0)+t>>d&65535;b[k+(s+f<<1)>>1]=v;if((r|0)<(j|0)){s=r}else{break}}if((h|0)<(j|0)){r=h}else{break}}i=m;return}else{pi(d,f,g,h,j,k,n);i=m;return}}function hi(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;l=i;i=i+136|0;k=l|0;m=k+64|0;ii(b,e,f,h,j,m);do{if((a[b+5753|0]|0)==0){if((j|0)!=0){if((c[b+5776>>2]|0)!=3){break}}ji(b,m,h,j,g)}}while(0);if((g|0)==1){ki(b,e,f,h,j,m);i=l;return}else if((g|0)==0){m=c[((j|0)==0?b+40|0:b+44|0)>>2]|0;j=c[b+4+(j<<2)>>2]|0;if((h|0)>1){g=h;b=0;while(1){g=g>>1;if((g|0)>1){b=b+1|0}else{break}}b=b+2|0}else{b=1}if((h|0)<=0){i=l;return}o=h-1|0;p=d[k+(h+65)|0]|0;q=d[k+(63-h)|0]|0;r=0;while(1){g=o-r|0;n=r+1|0;v=ga(r+f|0,m)|0;r=d[k+(63-r)|0]|0;u=ga(q,n)|0;v=v+e|0;t=0;while(1){x=ga(r,o-t|0)|0;s=t+1|0;w=ga(p,s)|0;w=x+h+w+(ga(d[k+(t+65)|0]|0,g)|0)+u>>b&255;a[j+(v+t)|0]=w;if((s|0)<(h|0)){t=s}else{break}}if((n|0)<(h|0)){r=n}else{break}}i=l;return}else{li(b,e,f,g,h,j,m);i=l;return}}function ii(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;l=i;i=i+136|0;m=l|0;v=m+64|0;o=c[b+4+(j<<2)>>2]|0;q=(j|0)==0;s=c[(q?b+40|0:b+44|0)>>2]|0;if(q){u=1;j=1}else{u=c[b+5784>>2]|0;j=c[b+5780>>2]|0}q=c[(q?b+5760|0:b+5768|0)>>2]|0;F=ga(j,f)|0;w=ga(u,g)|0;H=c[b+5804>>2]|0;L=c[b+5820>>2]|0;D=(F|0)!=0;P=(w|0)==0;r=P^1;B=D&r;K=ga(j,h+f|0)|0;E=c[b+1248>>2]|0;y=(K|0)<(E|0)&r;O=F>>H;J=w>>H;N=F-1>>H;K=K>>H;H=w-1>>H;Q=c[b+10352>>2]|0;A=ga(Q,J)|0;I=c[b+10340>>2]|0;z=e[I+((A+O|0)*24|0)>>1]|0;if(D){M=e[I+((A+N|0)*24|0)>>1]|0}else{M=-1}if(P){G=-1}else{G=I+(((ga(Q,H)|0)+O|0)*24|0)|0;G=e[G>>1]|0}if(y){A=I+(((ga(Q,H)|0)+K|0)*24|0)|0;A=e[A>>1]|0}else{A=-1}if(B){I=I+(((ga(Q,H)|0)+N|0)*24|0)|0;I=e[I>>1]|0}else{I=-1}Q=ga(J,L)|0;R=c[b+10308>>2]|0;J=c[R+(Q+O<<2)>>2]|0;if(D){Q=c[R+(Q+N<<2)>>2]|0}else{Q=-1}if(P){O=-1}else{O=R+((ga(H,L)|0)+O<<2)|0;O=c[O>>2]|0}if(B){N=R+((ga(H,L)|0)+N<<2)|0;N=c[N>>2]|0}else{N=-1}if(y){K=R+((ga(H,L)|0)+K<<2)|0;K=c[K>>2]|0}else{K=-1}H=(M|0)==(z|0)&(Q|0)==(J|0)&D;r=(G|0)==(z|0)&(O|0)==(J|0)&r;I=(I|0)==(z|0)&(N|0)==(J|0)&B;A=(A|0)==(z|0)&(K|0)==(J|0)&y;y=b+5864|0;D=c[y>>2]|0;z=b+5852|0;D=(ga(w>>D,c[z>>2]|0)|0)+(F>>D)|0;B=b+10320|0;D=c[(c[B>>2]|0)+(D<<2)>>2]|0;Q=(u-1-w+(c[b+1252>>2]|0)|0)/(u|0)|0;w=h<<1;R=(Q|0)>(w|0)?w:Q;E=(j-1-F+E|0)/(j|0)|0;G=(E|0)>(w|0)?w:E;F=-w|0;E=h<<2|1;dv(m+(64-w)|0,0,E|0)|0;a:do{if((R|0)>0){N=f-1|0;O=ga(j,N)|0;M=b+5944|0;J=b+10368|0;K=b+10372|0;L=b+10376|0;P=b+10360|0;Q=~Q;S=~(h<<1);Q=((Q|0)>(S|0)?Q:S)+65|0;S=0;U=0;T=R-1|0;R=0;b:while(1){W=m+(Q+(R<<2))|0;do{if(H){X=c[y>>2]|0;V=T+g|0;Z=ga(V,u)|0;X=(ga(Z>>X,c[z>>2]|0)|0)+(O>>X)|0;X=(c[(c[B>>2]|0)+(X<<2)>>2]|0)<=(D|0);if((a[M]|0)==0){if(!X){break}}else{_=c[J>>2]|0;Y=O>>_;Z=Z>>_;if(!((Y|0)>-1)){H=25;break b}_=c[K>>2]|0;if((Y|0)>=(_|0)){H=25;break b}if(!((Z|0)>-1)){H=28;break b}if((Z|0)>=(c[L>>2]|0)){H=28;break b}_=(ga(_,Z)|0)+Y|0;_=(c[P>>2]|0)+(_*3|0)|0;if(!(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&X)){break}}X=o+((ga(V,s)|0)+N)|0;if((S|0)==0){U=a[X]|0}_=W;C=16843009;a[_]=C;C=C>>8;a[_+1|0]=C;C=C>>8;a[_+2|0]=C;C=C>>8;a[_+3|0]=C;a[k+~T|0]=a[X]|0;_=o+((ga(V-1|0,s)|0)+N)|0;a[k+(1-T-1)|0]=a[_]|0;_=o+((ga(V-2|0,s)|0)+N)|0;a[k+(2-T-1)|0]=a[_]|0;_=o+((ga(V-3|0,s)|0)+N)|0;a[k+(3-T-1)|0]=a[_]|0;S=S+4|0}}while(0);T=T-4|0;if((T|0)>-1){R=R+1|0}else{t=S;x=U;break a}}if((H|0)==25){ec(7e3,5152,118,17336)}else if((H|0)==28){ec(3672,5152,119,17336)}}else{t=0;x=0}}while(0);c:do{if(I){I=f-1|0;K=ga(j,I)|0;J=c[y>>2]|0;H=g-1|0;L=ga(u,H)|0;J=(ga(L>>J,c[z>>2]|0)|0)+(K>>J)|0;J=(c[(c[B>>2]|0)+(J<<2)>>2]|0)<=(D|0);do{if((a[b+5944|0]|0)==0){if(!J){break c}}else{M=c[b+10368>>2]|0;K=K>>M;M=L>>M;if(!((K|0)>-1)){ec(7e3,5152,118,17336)}L=c[b+10372>>2]|0;if((K|0)>=(L|0)){ec(7e3,5152,118,17336)}if(!((M|0)>-1)){ec(3672,5152,119,17336)}if((M|0)<(c[b+10376>>2]|0)){_=(ga(L,M)|0)+K|0;_=(c[b+10360>>2]|0)+(_*3|0)|0;if(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&J){break}else{break c}}else{ec(3672,5152,119,17336)}}}while(0);H=o+((ga(s,H)|0)+I)|0;if((t|0)==0){x=a[H]|0}a[k]=a[H]|0;a[v]=1;t=t+1|0}}while(0);d:do{if((G|0)>0){I=g-1|0;u=ga(u,I)|0;g=b+5944|0;s=ga(s,I)|0;I=b+10368|0;H=b+10372|0;v=b+10376|0;b=b+10360|0;K=0;J=0;e:while(1){L=m+((J<<2)+65)|0;do{if((K|0)<(h|0)?r:A){M=K+f|0;O=ga(M,j)|0;N=c[y>>2]|0;N=(ga(u>>N,c[z>>2]|0)|0)+(O>>N)|0;N=(c[(c[B>>2]|0)+(N<<2)>>2]|0)<=(D|0);if((a[g]|0)==0){if(!N){break}}else{P=c[I>>2]|0;Q=O>>P;P=u>>P;if(!((Q|0)>-1)){H=54;break e}O=c[H>>2]|0;if((Q|0)>=(O|0)){H=54;break e}if(!((P|0)>-1)){H=57;break e}if((P|0)>=(c[v>>2]|0)){H=57;break e}_=(ga(O,P)|0)+Q|0;_=(c[b>>2]|0)+(_*3|0)|0;if(!(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&N)){break}}M=M+s|0;N=o+M|0;if((t|0)==0){x=a[N]|0}_=L;C=16843009;a[_]=C;C=C>>8;a[_+1|0]=C;C=C>>8;a[_+2|0]=C;C=C>>8;a[_+3|0]=C;_=K|1;a[k+_|0]=a[N]|0;a[k+(_+1)|0]=a[o+(M+1)|0]|0;a[k+(K|3)|0]=a[o+(M+2)|0]|0;a[k+((K|3)+1)|0]=a[o+(M+3)|0]|0;t=t+4|0}}while(0);K=K+4|0;if((K|0)<(G|0)){J=J+1|0}else{p=t;n=x;break d}}if((H|0)==54){ec(7e3,5152,118,17336)}else if((H|0)==57){ec(3672,5152,119,17336)}}else{p=t;n=x}}while(0);if((p|0)==(E|0)){i=l;return}if((p|0)==0){dv(k+F|0,1<<q-1&255|0,E|0)|0;i=l;return}o=h*-2|0;if((a[m+(o+64)|0]|0)==0){a[k+o|0]=n}n=o|1;if((n|0)>(w|0)){i=l;return}while(1){if((a[m+(n+64)|0]|0)==0){a[k+n|0]=a[k+(n-1)|0]|0}if((n|0)<(w|0)){n=n+1|0}else{break}}i=l;return}function ji(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;k=i;i=i+136|0;j=k|0;if((h|0)==1|(f|0)==4){i=k;return}l=h-26|0;l=(l|0)<0?26-h|0:l;m=h-10|0;h=(m|0)<0?10-h|0:m;h=(l|0)<(h|0)?l:h;do{if((f|0)==8){if((h|0)>7){break}i=k;return}else if((f|0)==16){if((h|0)>1){break}i=k;return}else if((f|0)==32){if((h|0)>0){break}i=k;return}else{ec(8920,15552,518,18232)}}while(0);do{if((a[b+5665|0]|0)!=0&(g|0)==0&(f|0)==32){h=d[e]|0;g=(d[e+64|0]|0)+h-(d[e+32|0]<<1)|0;b=1<<(c[b+1276>>2]|0)-5;if((((g|0)<0?-g|0:g)|0)>=(b|0)){g=0;break}g=(d[e-64|0]|0)+h-(d[e-32|0]<<1)|0;g=(((g|0)<0?-g|0:g)|0)<(b|0)}else{g=0}}while(0);b=f*-2|0;a[j+(b+64)|0]=a[e+b|0]|0;b=f<<1;a[j+(b+64)|0]=a[e+b|0]|0;do{if(g){l=a[e]|0;a[j+64|0]=l;l=l&255;h=(d[e-64|0]|0)-l|0;m=(d[e+64|0]|0)-l|0;g=1;do{n=(((ga(h,g)|0)+32|0)>>>6)+l&255;a[j+(64-g)|0]=n;n=(((ga(m,g)|0)+32|0)>>>6)+l&255;a[j+(g+64)|0]=n;g=g+1|0;}while((g|0)<64)}else{h=b-1|0;l=1-b|0;if((l|0)>(h|0)){break}g=l;l=a[e+l|0]|0;while(1){m=g+1|0;n=a[e+m|0]|0;a[j+(g+64)|0]=((n&255)+2+((l&255)<<1)+(d[e+(g-1)|0]|0)|0)>>>2;if((g|0)<(h|0)){g=m;l=n}else{break}}}}while(0);cv(e+(-b|0)|0,j+(64-b)|0,f<<2|1)|0;i=k;return}function ki(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=(h|0)==0;j=c[(l?b+40|0:b+44|0)>>2]|0;h=c[b+4+(h<<2)>>2]|0;b=(ga(j,f)|0)+e|0;m=h+b|0;k=(g|0)>1;if(k){o=g;n=0;while(1){o=o>>1;if((o|0)>1){n=n+1|0}else{break}}o=n+2|0}else{o=1}n=(g|0)>0;if(n){q=0;r=0;while(1){p=r+1|0;q=(d[i+p|0]|0)+q+(d[i+~r|0]|0)|0;if((p|0)<(g|0)){r=p}else{break}}}else{q=0}o=q+g>>o;if(!(l&(g|0)<32)){if(!n){return}f=o&255;e=0;do{dv(h+(b+(ga(j,e)|0))|0,f|0,g|0)|0;e=e+1|0;}while((e|0)<(g|0));return}a[m]=((o<<1)+2+(d[i-1|0]|0)+(d[i+1|0]|0)|0)>>>2;if(!k){return}n=(o*3|0)+2|0;l=1;while(1){m=l+1|0;a[h+(l+b)|0]=(n+(d[i+m|0]|0)|0)>>>2;if((m|0)<(g|0)){l=m}else{break}}if(!k){return}l=(o*3|0)+2|0;m=1;do{r=h+((ga(m,j)|0)+b)|0;a[r]=(l+(d[i+~m|0]|0)|0)>>>2;m=m+1|0;}while((m|0)<(g|0));if(!k){return}b=o&255;f=(ga(j,f+1|0)|0)+e+1|0;e=g-1|0;k=1;i=0;while(1){dv(h+(f+(ga(j,i)|0))|0,b|0,e|0)|0;k=k+1|0;if((k|0)<(g|0)){i=i+1|0}else{break}}return}function li(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=i;i=i+136|0;q=l|0;r=(j|0)==0;n=c[(r?b+40|0:b+44|0)>>2]|0;j=c[b+4+(j<<2)>>2]|0;m=(ga(n,f)|0)+e|0;o=c[(r?b+5760|0:b+5768|0)>>2]|0;if((g|0)>=35){ec(12952,15552,596,18712)}if((g|0)<=1){ec(10072,15552,597,18712)}s=c[64+(g<<2)>>2]|0;do{if((a[b+5750|0]|0)==0){p=0}else{y=c[b+10368>>2]|0;e=e>>y;f=f>>y;if(!((e|0)>-1)){ec(7e3,5152,118,17336)}t=c[b+10372>>2]|0;if((e|0)>=(t|0)){ec(7e3,5152,118,17336)}if(!((f|0)>-1)){ec(3672,5152,119,17336)}if((f|0)<(c[b+10376>>2]|0)){p=(ga(t,f)|0)+e|0;p=(c[b+10360>>2]|0)+(p*3|0)|0;p=((d[p]|d[p+1|0]<<8)<<16>>16&2048)!=0;break}else{ec(3672,5152,119,17336)}}}while(0);b=(h|0)<0;if((g|0)>17){if(!b){cv(q+64|0,k|0,h+1|0)|0}b=g-11|0;do{if(b>>>0<15>>>0){b=c[30584+(b<<2)>>2]|0;e=(ga(s,h)|0)>>5;if(!((e|0)<-1)){break}do{y=k+(-((ga(e,b)|0)+128>>8)|0)|0;a[q+(e+64)|0]=a[y]|0;e=e+1|0;}while((e|0)<0)}else{if((h<<1|0)<=(h|0)){break}cv(q+(h+65)|0,k+(h+1)|0,h)|0}}while(0);v=(h|0)>0;if(v){w=0;while(1){u=w+1|0;b=ga(u,s)|0;f=b>>5;b=b&31;e=(b|0)==0;t=f+65|0;y=(ga(w,n)|0)+m|0;w=32-b|0;x=0;do{if(e){a[j+(y+x)|0]=a[q+(t+x)|0]|0}else{z=x+f|0;A=ga(d[q+(z+65)|0]|0,w)|0;z=(A+16+(ga(d[q+(z+66)|0]|0,b)|0)|0)>>>5&255;a[j+(y+x)|0]=z}x=x+1|0;}while((x|0)<(h|0));if((u|0)<(h|0)){w=u}else{break}}}if(p|(g|0)==26&r&(h|0)<32^1|v^1){i=l;return}p=k+1|0;q=(1<<o)-1|0;o=0;do{r=((d[k+~o|0]|0)-(d[k]|0)>>1)+(d[p]|0)|0;if((r|0)<0){r=0}else{r=((r|0)>(q|0)?q:r)&255}A=j+((ga(o,n)|0)+m)|0;a[A]=r;o=o+1|0;}while((o|0)<(h|0));i=l;return}else{if(!b){b=0;while(1){a[q+(b+64)|0]=a[k+(-b|0)|0]|0;if((b|0)<(h|0)){b=b+1|0}else{break}}}b=g-11|0;do{if(b>>>0<15>>>0){b=c[30584+(b<<2)>>2]|0;e=(ga(s,h)|0)>>5;if(!((e|0)<-1)){break}do{A=k+((ga(e,b)|0)+128>>8)|0;a[q+(e+64)|0]=a[A]|0;e=e+1|0;}while((e|0)<0)}else{b=h<<1;if((b|0)>(h|0)){e=h}else{break}while(1){f=e+1|0;a[q+(e+65)|0]=a[k+~e|0]|0;if((f|0)<(b|0)){e=f}else{break}}}}while(0);e=(h|0)>0;if(e){x=0;do{f=x+65|0;t=(ga(x,n)|0)+m|0;u=0;while(1){b=u+1|0;w=ga(b,s)|0;v=w>>5;w=w&31;if((w|0)==0){a[j+(t+u)|0]=a[q+(f+v)|0]|0}else{A=v+x|0;z=ga(d[q+(A+65)|0]|0,32-w|0)|0;A=(z+16+(ga(d[q+(A+66)|0]|0,w)|0)|0)>>>5&255;a[j+(t+u)|0]=A}if((b|0)<(h|0)){u=b}else{break}}x=x+1|0;}while((x|0)<(h|0))}if(p|(g|0)==10&r&(h|0)<32^1|e^1){i=l;return}n=k-1|0;o=(1<<o)-1|0;p=0;while(1){q=p+1|0;r=((d[k+q|0]|0)-(d[k]|0)>>1)+(d[n]|0)|0;if((r|0)<0){r=0}else{r=((r|0)>(o|0)?o:r)&255}a[j+(p+m)|0]=r;if((q|0)<(h|0)){p=q}else{break}}i=l;return}}function mi(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;m=i;i=i+136|0;n=m|0;B=n+64|0;q=c[f+4+(k<<2)>>2]|0;k=(k|0)==0;w=c[(k?f+40|0:f+44|0)>>2]|0;if(k){A=1;r=1}else{A=c[f+5784>>2]|0;r=c[f+5780>>2]|0}k=c[(k?f+5760|0:f+5768|0)>>2]|0;F=ga(r,g)|0;t=ga(A,h)|0;z=c[f+5804>>2]|0;I=c[f+5820>>2]|0;J=(F|0)!=0;R=(t|0)==0;s=R^1;v=J&s;O=ga(r,j+g|0)|0;D=c[f+1248>>2]|0;u=(O|0)<(D|0)&s;S=F>>z;M=t>>z;Q=F-1>>z;O=O>>z;z=t-1>>z;N=c[f+10352>>2]|0;x=ga(N,M)|0;P=c[f+10340>>2]|0;K=e[P+((x+S|0)*24|0)>>1]|0;if(J){L=e[P+((x+Q|0)*24|0)>>1]|0}else{L=-1}if(R){y=-1}else{y=P+(((ga(N,z)|0)+S|0)*24|0)|0;y=e[y>>1]|0}if(u){x=P+(((ga(N,z)|0)+O|0)*24|0)|0;x=e[x>>1]|0}else{x=-1}if(v){P=P+(((ga(N,z)|0)+Q|0)*24|0)|0;P=e[P>>1]|0}else{P=-1}N=ga(M,I)|0;T=c[f+10308>>2]|0;M=c[T+(N+S<<2)>>2]|0;if(J){N=c[T+(N+Q<<2)>>2]|0}else{N=-1}if(R){R=-1}else{R=T+((ga(z,I)|0)+S<<2)|0;R=c[R>>2]|0}if(v){Q=T+((ga(z,I)|0)+Q<<2)|0;Q=c[Q>>2]|0}else{Q=-1}if(u){z=T+((ga(z,I)|0)+O<<2)|0;z=c[z>>2]|0}else{z=-1}s=(y|0)==(K|0)&(R|0)==(M|0)&s;I=(P|0)==(K|0)&(Q|0)==(M|0)&v;v=(x|0)==(K|0)&(z|0)==(M|0)&u;u=c[f+5864>>2]|0;y=c[f+5852>>2]|0;z=(ga(t>>u,y)|0)+(F>>u)|0;x=c[f+10320>>2]|0;z=c[x+(z<<2)>>2]|0;W=(A-1-t+(c[f+1252>>2]|0)|0)/(A|0)|0;t=j<<1;O=(W|0)>(t|0)?t:W;D=(r-1-F+D|0)/(r|0)|0;D=(D|0)>(t|0)?t:D;F=j<<2|1;dv(n+(64-t)|0,0,F|0)|0;V=O-1|0;a:do{if((O|0)>0){S=g-1|0;R=ga(r,S)|0;Q=f+5944|0;P=f+10368|0;T=f+10372|0;U=f+10376|0;O=f+10360|0;if(!((L|0)==(K|0)&(N|0)==(M|0)&J)){while(1){V=V-4|0;if(!((V|0)>-1)){E=0;G=0;break a}}}J=~W;K=~(j<<1);J=((J|0)>(K|0)?J:K)+65|0;K=0;N=0;M=V;L=0;while(1){W=n+(J+(L<<2))|0;V=M+h|0;Z=ga(V,A)|0;X=x+((ga(Z>>u,y)|0)+(R>>u)<<2)|0;X=(c[X>>2]|0)<=(z|0);if((a[Q]|0)==0){if(X){H=29}}else{_=c[P>>2]|0;Y=R>>_;_=Z>>_;if(!((Y|0)>-1)){H=33;break}Z=c[T>>2]|0;if((Y|0)>=(Z|0)){H=33;break}if(!((_|0)>-1)){H=34;break}if((_|0)>=(c[U>>2]|0)){H=34;break}_=(ga(Z,_)|0)+Y|0;_=(c[O>>2]|0)+(_*3|0)|0;if(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&X){H=29}}if((H|0)==29){H=0;X=q+((ga(V,w)|0)+S<<1)|0;if((K|0)==0){N=b[X>>1]|0}_=W;C=16843009;a[_]=C;C=C>>8;a[_+1|0]=C;C=C>>8;a[_+2|0]=C;C=C>>8;a[_+3|0]=C;b[l+(~M<<1)>>1]=b[X>>1]|0;_=q+((ga(V-1|0,w)|0)+S<<1)|0;b[l+(1-M-1<<1)>>1]=b[_>>1]|0;_=q+((ga(V-2|0,w)|0)+S<<1)|0;b[l+(2-M-1<<1)>>1]=b[_>>1]|0;_=q+((ga(V-3|0,w)|0)+S<<1)|0;b[l+(3-M-1<<1)>>1]=b[_>>1]|0;K=K+4|0}M=M-4|0;if((M|0)>-1){L=L+1|0}else{E=K;G=N;break a}}if((H|0)==33){ec(7e3,5152,118,17336)}else if((H|0)==34){ec(3672,5152,119,17336)}}else{E=0;G=0}}while(0);b:do{if(I){I=g-1|0;K=ga(r,I)|0;J=h-1|0;L=ga(A,J)|0;H=x+((ga(L>>u,y)|0)+(K>>u)<<2)|0;H=(c[H>>2]|0)<=(z|0);do{if((a[f+5944|0]|0)==0){if(!H){break b}}else{M=c[f+10368>>2]|0;K=K>>M;M=L>>M;if(!((K|0)>-1)){ec(7e3,5152,118,17336)}L=c[f+10372>>2]|0;if((K|0)>=(L|0)){ec(7e3,5152,118,17336)}if(!((M|0)>-1)){ec(3672,5152,119,17336)}if((M|0)<(c[f+10376>>2]|0)){_=(ga(L,M)|0)+K|0;_=(c[f+10360>>2]|0)+(_*3|0)|0;if(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&H){break}else{break b}}else{ec(3672,5152,119,17336)}}}while(0);H=q+((ga(w,J)|0)+I<<1)|0;if((E|0)==0){G=b[H>>1]|0}b[l>>1]=b[H>>1]|0;a[B]=1;E=E+1|0}}while(0);c:do{if((D|0)>0){B=h-1|0;A=ga(A,B)|0;h=f+5944|0;w=ga(w,B)|0;B=f+10368|0;H=f+10372|0;I=f+10376|0;f=f+10360|0;K=0;J=0;d:while(1){L=n+((J<<2)+65)|0;do{if((K|0)<(j|0)?s:v){N=K+g|0;O=ga(N,r)|0;M=x+((ga(A>>u,y)|0)+(O>>u)<<2)|0;M=(c[M>>2]|0)<=(z|0);if((a[h]|0)==0){if(!M){break}}else{P=c[B>>2]|0;O=O>>P;P=A>>P;if(!((O|0)>-1)){H=55;break d}Q=c[H>>2]|0;if((O|0)>=(Q|0)){H=55;break d}if(!((P|0)>-1)){H=58;break d}if((P|0)>=(c[I>>2]|0)){H=58;break d}_=(ga(Q,P)|0)+O|0;_=(c[f>>2]|0)+(_*3|0)|0;if(!(((d[_]|d[_+1|0]<<8)<<16>>16&768)==0&M)){break}}M=N+w|0;N=q+(M<<1)|0;if((E|0)==0){G=b[N>>1]|0}_=L;C=16843009;a[_]=C;C=C>>8;a[_+1|0]=C;C=C>>8;a[_+2|0]=C;C=C>>8;a[_+3|0]=C;_=K|1;b[l+(_<<1)>>1]=b[N>>1]|0;b[l+(_+1<<1)>>1]=b[q+(M+1<<1)>>1]|0;b[l+((K|3)<<1)>>1]=b[q+(M+2<<1)>>1]|0;b[l+((K|3)+1<<1)>>1]=b[q+(M+3<<1)>>1]|0;E=E+4|0}}while(0);K=K+4|0;if((K|0)<(D|0)){J=J+1|0}else{o=E;p=G;break c}}if((H|0)==55){ec(7e3,5152,118,17336)}else if((H|0)==58){ec(3672,5152,119,17336)}}else{o=E;p=G}}while(0);if((o|0)==(F|0)){i=m;return}g=j*-2|0;if((o|0)==0){if((g|0)>(t|0)){i=m;return}n=1<<k-1&65535;while(1){b[l+(g<<1)>>1]=n;if((g|0)<(t|0)){g=g+1|0}else{break}}i=m;return}if((a[n+(g+64)|0]|0)==0){b[l+(g<<1)>>1]=p}o=g|1;if((o|0)>(t|0)){i=m;return}while(1){if((a[n+(o+64)|0]|0)==0){b[l+(o<<1)>>1]=b[l+(o-1<<1)>>1]|0}if((o|0)<(t|0)){o=o+1|0}else{break}}i=m;return}function ni(d,f,g,h,j){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;l=i;i=i+264|0;k=l|0;if((j|0)==1|(g|0)==4){i=l;return}m=j-26|0;m=(m|0)<0?26-j|0:m;n=j-10|0;j=(n|0)<0?10-j|0:n;j=(m|0)<(j|0)?m:j;do{if((g|0)==32){if((j|0)>0){break}i=l;return}else if((g|0)==16){if((j|0)>1){break}i=l;return}else if((g|0)==8){if((j|0)>7){break}i=l;return}else{ec(8920,15552,518,18232)}}while(0);do{if((a[d+5665|0]|0)!=0&(h|0)==0&(g|0)==32){j=e[f>>1]|0;h=(e[f+128>>1]|0)+j-(e[f+64>>1]<<1)|0;d=1<<(c[d+1276>>2]|0)-5;if((((h|0)<0?-h|0:h)|0)>=(d|0)){h=0;break}h=(e[f-128>>1]|0)+j-(e[f-64>>1]<<1)|0;h=(((h|0)<0?-h|0:h)|0)<(d|0)}else{h=0}}while(0);d=g*-2|0;b[k+(d+64<<1)>>1]=b[f+(d<<1)>>1]|0;d=g<<1;b[k+(d+64<<1)>>1]=b[f+(d<<1)>>1]|0;do{if(h){m=b[f>>1]|0;b[k+128>>1]=m;m=m&65535;j=(e[f-128>>1]|0)-m|0;n=(e[f+128>>1]|0)-m|0;h=1;do{o=(((ga(j,h)|0)+32|0)>>>6)+m&65535;b[k+(64-h<<1)>>1]=o;o=(((ga(n,h)|0)+32|0)>>>6)+m&65535;b[k+(h+64<<1)>>1]=o;h=h+1|0;}while((h|0)<64)}else{j=d-1|0;m=1-d|0;if((m|0)>(j|0)){break}h=m;m=b[f+(m<<1)>>1]|0;while(1){n=h+1|0;o=b[f+(n<<1)>>1]|0;b[k+(h+64<<1)>>1]=((o&65535)+2+((m&65535)<<1)+(e[f+(h-1<<1)>>1]|0)|0)>>>2;if((h|0)<(j|0)){h=n;m=o}else{break}}}}while(0);cv(f+(-d<<1)|0,k+(64-d<<1)|0,g<<3|2)|0;i=l;return}function oi(a,d,f,g,h,i){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0;k=(h|0)==0;j=c[(k?a+40|0:a+44|0)>>2]|0;h=(c[a+4+(h<<2)>>2]|0)+((ga(j,f)|0)+d<<1)|0;d=(g|0)>1;if(d){f=g;a=0;while(1){f=f>>1;if((f|0)>1){a=a+1|0}else{break}}f=a+2|0}else{f=1}a=(g|0)>0;if(a){n=0;m=0;while(1){l=m+1|0;n=(e[i+(l<<1)>>1]|0)+n+(e[i+(~m<<1)>>1]|0)|0;if((l|0)<(g|0)){m=l}else{break}}}else{n=0}f=n+g>>f;if(!(k&(g|0)<32)){if(!a){return}a=f&65535;k=0;do{d=ga(k,j)|0;i=0;do{b[h+(i+d<<1)>>1]=a;i=i+1|0;}while((i|0)<(g|0));k=k+1|0;}while((k|0)<(g|0));return}b[h>>1]=((f<<1)+2+(e[i-2>>1]|0)+(e[i+2>>1]|0)|0)>>>2;if(!d){return}a=(f*3|0)+2|0;k=1;while(1){l=k+1|0;b[h+(k<<1)>>1]=(a+(e[i+(l<<1)>>1]|0)|0)>>>2;if((l|0)<(g|0)){k=l}else{break}}if(!d){return}a=(f*3|0)+2|0;k=1;do{n=h+((ga(k,j)|0)<<1)|0;b[n>>1]=(a+(e[i+(~k<<1)>>1]|0)|0)>>>2;k=k+1|0;}while((k|0)<(g|0));if(!d){return}i=f&65535;d=1;do{k=ga(d,j)|0;a=1;do{b[h+(a+k<<1)>>1]=i;a=a+1|0;}while((a|0)<(g|0));d=d+1|0;}while((d|0)<(g|0));return}function pi(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;n=i;u=m;q=i;i=i+258|0;i=i+7&-8;s=(l|0)==0;o=c[(s?f+40|0:f+44|0)>>2]|0;l=(c[f+4+(l<<2)>>2]|0)+((ga(o,h)|0)+g<<1)|0;p=c[(s?f+5760|0:f+5768|0)>>2]|0;if((j|0)>=35){ec(12952,15552,596,18712)}if((j|0)<=1){ec(10072,15552,597,18712)}t=c[64+(j<<2)>>2]|0;do{if((a[f+5750|0]|0)==0){r=0}else{z=c[f+10368>>2]|0;g=g>>z;h=h>>z;if(!((g|0)>-1)){ec(7e3,5152,118,17336)}v=c[f+10372>>2]|0;if((g|0)>=(v|0)){ec(7e3,5152,118,17336)}if(!((h|0)>-1)){ec(3672,5152,119,17336)}if((h|0)<(c[f+10376>>2]|0)){r=(ga(v,h)|0)+g|0;r=(c[f+10360>>2]|0)+(r*3|0)|0;r=((d[r]|d[r+1|0]<<8)<<16>>16&2048)!=0;break}else{ec(3672,5152,119,17336)}}}while(0);f=(k|0)<0;if((j|0)>17){if(!f){cv(q+128|0,u|0,(k<<1)+2|0)|0}u=j-11|0;do{if(u>>>0<15>>>0){u=c[30584+(u<<2)>>2]|0;f=(ga(t,k)|0)>>5;if(!((f|0)<-1)){break}do{z=m+(-((ga(f,u)|0)+128>>8)<<1)|0;b[q+(f+64<<1)>>1]=b[z>>1]|0;f=f+1|0;}while((f|0)<0)}else{if((k<<1|0)<=(k|0)){break}cv(q+(k+65<<1)|0,m+(k+1<<1)|0,k<<1)|0}}while(0);w=(k|0)>0;if(w){x=0;while(1){v=x+1|0;u=ga(v,t)|0;g=u>>5;u=u&31;f=(u|0)==0;h=g+65|0;x=ga(x,o)|0;y=32-u|0;z=0;do{if(f){b[l+(z+x<<1)>>1]=b[q+(h+z<<1)>>1]|0}else{A=z+g|0;B=ga(e[q+(A+65<<1)>>1]|0,y)|0;A=(B+16+(ga(e[q+(A+66<<1)>>1]|0,u)|0)|0)>>>5&65535;b[l+(z+x<<1)>>1]=A}z=z+1|0;}while((z|0)<(k|0));if((v|0)<(k|0)){x=v}else{break}}}if(r|(j|0)==26&s&(k|0)<32^1|w^1){i=n;return}q=m+2|0;r=(1<<p)-1|0;p=0;do{s=((e[m+(~p<<1)>>1]|0)-(e[m>>1]|0)>>1)+(e[q>>1]|0)|0;if((s|0)<0){s=0}else{s=((s|0)>(r|0)?r:s)&65535}B=l+((ga(p,o)|0)<<1)|0;b[B>>1]=s;p=p+1|0;}while((p|0)<(k|0));i=n;return}else{if(!f){u=0;while(1){b[q+(u+64<<1)>>1]=b[m+(-u<<1)>>1]|0;if((u|0)<(k|0)){u=u+1|0}else{break}}}u=j-11|0;do{if(u>>>0<15>>>0){u=c[30584+(u<<2)>>2]|0;f=(ga(t,k)|0)>>5;if(!((f|0)<-1)){break}do{B=m+((ga(f,u)|0)+128>>8<<1)|0;b[q+(f+64<<1)>>1]=b[B>>1]|0;f=f+1|0;}while((f|0)<0)}else{g=k<<1;if((g|0)>(k|0)){u=k}else{break}while(1){f=u+1|0;b[q+(u+65<<1)>>1]=b[m+(~u<<1)>>1]|0;if((f|0)<(g|0)){u=f}else{break}}}}while(0);f=(k|0)>0;if(f){g=0;do{y=g+65|0;h=ga(g,o)|0;v=0;while(1){w=v+1|0;x=ga(w,t)|0;u=x>>5;x=x&31;if((x|0)==0){b[l+(v+h<<1)>>1]=b[q+(y+u<<1)>>1]|0}else{B=u+g|0;A=ga(e[q+(B+65<<1)>>1]|0,32-x|0)|0;B=(A+16+(ga(e[q+(B+66<<1)>>1]|0,x)|0)|0)>>>5&65535;b[l+(v+h<<1)>>1]=B}if((w|0)<(k|0)){v=w}else{break}}g=g+1|0;}while((g|0)<(k|0))}if(r|(j|0)==10&s&(k|0)<32^1|f^1){i=n;return}o=m-2|0;p=(1<<p)-1|0;q=0;while(1){r=q+1|0;s=((e[m+(r<<1)>>1]|0)-(e[m>>1]|0)>>1)+(e[o>>1]|0)|0;if((s|0)<0){s=0}else{s=((s|0)>(p|0)?p:s)&65535}b[l+(q<<1)>>1]=s;if((r|0)<(k|0)){q=r}else{break}}i=n;return}}function qi(a){a=a|0;c[a+8>>2]=1732584193;c[a+12>>2]=-271733879;c[a+16>>2]=-1732584194;c[a+20>>2]=271733878;c[a>>2]=0;c[a+4>>2]=0;return}function ri(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=a|0;e=c[f>>2]|0;h=e+d&536870911;c[f>>2]=h;f=a+4|0;g=c[f>>2]|0;if(h>>>0<e>>>0){g=g+1|0;c[f>>2]=g}c[a+4>>2]=g+(d>>>29);f=e&63;do{if((f|0)!=0){e=64-f|0;f=a+24+f|0;if(!(e>>>0>d>>>0)){cv(f|0,b|0,e)|0;si(a,a+24|0,64)|0;b=b+e|0;d=d-e|0;break}cv(f|0,b|0,d)|0;return}}while(0);if(d>>>0>63>>>0){b=si(a,b,d&-64)|0;d=d&63}cv(a+24|0,b|0,d)|0;return}function si(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;s=a+8|0;p=a+12|0;h=a+16|0;i=a+20|0;j=a+88|0;k=a+92|0;l=a+96|0;m=a+100|0;n=a+104|0;o=a+108|0;f=a+112|0;q=a+116|0;r=a+120|0;g=a+124|0;t=a+128|0;u=a+132|0;v=a+136|0;w=a+140|0;x=a+144|0;a=a+148|0;y=c[s>>2]|0;z=c[p>>2]|0;B=c[i>>2]|0;A=c[h>>2]|0;do{M=(d[b+1|0]|0)<<8|(d[b]|0)|(d[b+2|0]|0)<<16|(d[b+3|0]|0)<<24;c[j>>2]=M;M=y-680876936+(z&(B^A)^B)+M|0;M=(M<<7|M>>>25)+z|0;D=(d[b+5|0]|0)<<8|(d[b+4|0]|0)|(d[b+6|0]|0)<<16|(d[b+7|0]|0)<<24;c[k>>2]=D;D=B-389564586+D+(M&(z^A)^A)|0;D=(D<<12|D>>>20)+M|0;E=(d[b+9|0]|0)<<8|(d[b+8|0]|0)|(d[b+10|0]|0)<<16|(d[b+11|0]|0)<<24;c[l>>2]=E;E=A+606105819+E+(D&(M^z)^z)|0;E=(E<<17|E>>>15)+D|0;W=(d[b+13|0]|0)<<8|(d[b+12|0]|0)|(d[b+14|0]|0)<<16|(d[b+15|0]|0)<<24;c[m>>2]=W;W=z-1044525330+W+(E&(D^M)^M)|0;W=(W<<22|W>>>10)+E|0;C=(d[b+17|0]|0)<<8|(d[b+16|0]|0)|(d[b+18|0]|0)<<16|(d[b+19|0]|0)<<24;c[n>>2]=C;C=M-176418897+C+(W&(E^D)^D)|0;C=(C<<7|C>>>25)+W|0;M=(d[b+21|0]|0)<<8|(d[b+20|0]|0)|(d[b+22|0]|0)<<16|(d[b+23|0]|0)<<24;c[o>>2]=M;M=D+1200080426+M+(C&(W^E)^E)|0;M=(M<<12|M>>>20)+C|0;D=(d[b+25|0]|0)<<8|(d[b+24|0]|0)|(d[b+26|0]|0)<<16|(d[b+27|0]|0)<<24;c[f>>2]=D;D=E-1473231341+D+(M&(C^W)^W)|0;D=(D<<17|D>>>15)+M|0;E=(d[b+29|0]|0)<<8|(d[b+28|0]|0)|(d[b+30|0]|0)<<16|(d[b+31|0]|0)<<24;c[q>>2]=E;E=W-45705983+E+(D&(M^C)^C)|0;E=(E<<22|E>>>10)+D|0;W=(d[b+33|0]|0)<<8|(d[b+32|0]|0)|(d[b+34|0]|0)<<16|(d[b+35|0]|0)<<24;c[r>>2]=W;W=C+1770035416+W+(E&(D^M)^M)|0;W=(W<<7|W>>>25)+E|0;C=(d[b+37|0]|0)<<8|(d[b+36|0]|0)|(d[b+38|0]|0)<<16|(d[b+39|0]|0)<<24;c[g>>2]=C;C=M-1958414417+C+(W&(E^D)^D)|0;C=(C<<12|C>>>20)+W|0;M=(d[b+41|0]|0)<<8|(d[b+40|0]|0)|(d[b+42|0]|0)<<16|(d[b+43|0]|0)<<24;c[t>>2]=M;D=M-42063+D+(C&(W^E)^E)|0;D=(D<<17|D>>>15)+C|0;M=(d[b+45|0]|0)<<8|(d[b+44|0]|0)|(d[b+46|0]|0)<<16|(d[b+47|0]|0)<<24;c[u>>2]=M;E=M-1990404162+E+(D&(C^W)^W)|0;E=(E<<22|E>>>10)+D|0;M=(d[b+49|0]|0)<<8|(d[b+48|0]|0)|(d[b+50|0]|0)<<16|(d[b+51|0]|0)<<24;c[v>>2]=M;W=M+1804603682+W+(E&(D^C)^C)|0;W=(W<<7|W>>>25)+E|0;M=(d[b+53|0]|0)<<8|(d[b+52|0]|0)|(d[b+54|0]|0)<<16|(d[b+55|0]|0)<<24;c[w>>2]=M;C=M-40341101+C+(W&(E^D)^D)|0;C=(C<<12|C>>>20)+W|0;M=(d[b+57|0]|0)<<8|(d[b+56|0]|0)|(d[b+58|0]|0)<<16|(d[b+59|0]|0)<<24;c[x>>2]=M;D=M-1502002290+D+(C&(W^E)^E)|0;D=(D<<17|D>>>15)+C|0;M=(d[b+61|0]|0)<<8|(d[b+60|0]|0)|(d[b+62|0]|0)<<16|(d[b+63|0]|0)<<24;c[a>>2]=M;E=M+1236535329+E+(D&(C^W)^W)|0;E=(E<<22|E>>>10)+D|0;O=c[k>>2]|0;W=O-165796510+W+((E^D)&C^D)|0;W=(W<<5|W>>>27)+E|0;L=c[f>>2]|0;C=L-1069501632+C+((W^E)&D^E)|0;C=(C<<9|C>>>23)+W|0;I=c[u>>2]|0;D=I+643717713+D+((C^W)&E^W)|0;D=(D<<14|D>>>18)+C|0;V=c[j>>2]|0;E=V-373897302+E+((D^C)&W^C)|0;E=(E<<20|E>>>12)+D|0;S=c[o>>2]|0;W=S-701558691+W+((E^D)&C^D)|0;W=(W<<5|W>>>27)+E|0;P=c[t>>2]|0;C=P+38016083+C+((W^E)&D^E)|0;C=(C<<9|C>>>23)+W|0;D=M-660478335+D+((C^W)&E^W)|0;D=(D<<14|D>>>18)+C|0;J=c[n>>2]|0;E=J-405537848+E+((D^C)&W^C)|0;E=(E<<20|E>>>12)+D|0;G=c[g>>2]|0;W=G+568446438+W+((E^D)&C^D)|0;W=(W<<5|W>>>27)+E|0;T=c[x>>2]|0;C=T-1019803690+C+((W^E)&D^E)|0;C=(C<<9|C>>>23)+W|0;Q=c[m>>2]|0;D=Q-187363961+D+((C^W)&E^W)|0;D=(D<<14|D>>>18)+C|0;N=c[r>>2]|0;E=N+1163531501+E+((D^C)&W^C)|0;E=(E<<20|E>>>12)+D|0;K=c[w>>2]|0;W=K-1444681467+W+((E^D)&C^D)|0;W=(W<<5|W>>>27)+E|0;H=c[l>>2]|0;C=H-51403784+C+((W^E)&D^E)|0;C=(C<<9|C>>>23)+W|0;U=c[q>>2]|0;D=U+1735328473+D+((C^W)&E^W)|0;D=(D<<14|D>>>18)+C|0;F=D^C;R=c[v>>2]|0;E=R-1926607734+E+(F&W^C)|0;E=(E<<20|E>>>12)+D|0;F=S-378558+W+(F^E)|0;F=(F<<4|F>>>28)+E|0;C=N-2022574463+C+(E^D^F)|0;C=(C<<11|C>>>21)+F|0;D=I+1839030562+D+(F^E^C)|0;D=(D<<16|D>>>16)+C|0;E=T-35309556+E+(C^F^D)|0;E=(E<<23|E>>>9)+D|0;F=O-1530992060+F+(D^C^E)|0;F=(F<<4|F>>>28)+E|0;C=J+1272893353+C+(E^D^F)|0;C=(C<<11|C>>>21)+F|0;D=U-155497632+D+(F^E^C)|0;D=(D<<16|D>>>16)+C|0;E=P-1094730640+E+(C^F^D)|0;E=(E<<23|E>>>9)+D|0;F=K+681279174+F+(D^C^E)|0;F=(F<<4|F>>>28)+E|0;C=V-358537222+C+(E^D^F)|0;C=(C<<11|C>>>21)+F|0;D=Q-722521979+D+(F^E^C)|0;D=(D<<16|D>>>16)+C|0;E=L+76029189+E+(C^F^D)|0;E=(E<<23|E>>>9)+D|0;F=G-640364487+F+(D^C^E)|0;F=(F<<4|F>>>28)+E|0;C=R-421815835+C+(E^D^F)|0;C=(C<<11|C>>>21)+F|0;D=M+530742520+D+(F^E^C)|0;D=(D<<16|D>>>16)+C|0;E=H-995338651+E+(C^F^D)|0;E=(E<<23|E>>>9)+D|0;F=V-198630844+F+((E|~C)^D)|0;F=(F<<6|F>>>26)+E|0;C=U+1126891415+C+((F|~D)^E)|0;C=(C<<10|C>>>22)+F|0;D=T-1416354905+D+((C|~E)^F)|0;D=(D<<15|D>>>17)+C|0;E=S-57434055+E+((D|~F)^C)|0;E=(E<<21|E>>>11)+D|0;F=R+1700485571+F+((E|~C)^D)|0;F=(F<<6|F>>>26)+E|0;C=Q-1894986606+C+((F|~D)^E)|0;C=(C<<10|C>>>22)+F|0;D=P-1051523+D+((C|~E)^F)|0;D=(D<<15|D>>>17)+C|0;E=O-2054922799+E+((D|~F)^C)|0;E=(E<<21|E>>>11)+D|0;F=N+1873313359+F+((E|~C)^D)|0;F=(F<<6|F>>>26)+E|0;C=M-30611744+C+((F|~D)^E)|0;C=(C<<10|C>>>22)+F|0;D=L-1560198380+D+((C|~E)^F)|0;D=(D<<15|D>>>17)+C|0;E=K+1309151649+E+((D|~F)^C)|0;E=(E<<21|E>>>11)+D|0;F=J-145523070+F+((E|~C)^D)|0;F=(F<<6|F>>>26)+E|0;C=I-1120210379+C+((F|~D)^E)|0;C=(C<<10|C>>>22)+F|0;D=H+718787259+D+((C|~E)^F)|0;D=(D<<15|D>>>17)+C|0;E=G-343485551+E+((D|~F)^C)|0;y=F+y|0;z=D+z+(E<<21|E>>>11)|0;A=D+A|0;B=C+B|0;b=b+64|0;e=e-64|0;}while((e|0)!=0);c[s>>2]=y;c[p>>2]=z;c[h>>2]=A;c[i>>2]=B;return b|0}function ti(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=d|0;g=c[e>>2]&63;h=g+1|0;f=d+24|0;a[d+24+g|0]=-128;g=g^63;if(g>>>0<8>>>0){dv(d+24+h|0,0,g|0)|0;f=f|0;si(d,f,64)|0;g=56;h=0}else{g=g-8|0;f=f|0}dv(d+24+h|0,0,g|0)|0;h=c[e>>2]|0;g=h<<3;c[e>>2]=g;a[d+80|0]=g;a[d+81|0]=h>>>5;a[d+82|0]=h>>>13;a[d+83|0]=h>>>21;h=c[d+4>>2]|0;a[d+84|0]=h;a[d+85|0]=h>>>8;a[d+86|0]=h>>>16;a[d+87|0]=h>>>24;si(d,f,64)|0;h=d+8|0;a[b]=c[h>>2];a[b+1|0]=(c[h>>2]|0)>>>8;a[b+2|0]=(c[h>>2]|0)>>>16;a[b+3|0]=(c[h>>2]|0)>>>24;h=d+12|0;a[b+4|0]=c[h>>2];a[b+5|0]=(c[h>>2]|0)>>>8;a[b+6|0]=(c[h>>2]|0)>>>16;a[b+7|0]=(c[h>>2]|0)>>>24;h=d+16|0;a[b+8|0]=c[h>>2];a[b+9|0]=(c[h>>2]|0)>>>8;a[b+10|0]=(c[h>>2]|0)>>>16;a[b+11|0]=(c[h>>2]|0)>>>24;h=d+20|0;a[b+12|0]=c[h>>2];a[b+13|0]=(c[h>>2]|0)>>>8;a[b+14|0]=(c[h>>2]|0)>>>16;a[b+15|0]=(c[h>>2]|0)>>>24;dv(d|0,0,152)|0;return}function ui(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;q=i;i=i+49160|0;x=q|0;r=q+16384|0;E=q+49152|0;G=k+h|0;I=l+j|0;H=g+764|0;t=c[g+5780>>2]|0;s=c[g+5784>>2]|0;v=c[g+40>>2]|0;u=(ga(v,I)|0)+G|0;u=(c[g+4>>2]|0)+(u<<d[g+16|0])|0;j=c[g+44>>2]|0;l=(ga(j,(I|0)/(s|0)|0)|0)+((G|0)/(t|0)|0)|0;k=(c[g+8>>2]|0)+(l<<d[g+17|0])|0;l=(c[g+12>>2]|0)+(l<<d[g+18|0])|0;y=a[p|0]|0;M=y&255;c[E>>2]=M;C=a[p+1|0]|0;D=C&255;B=E+4|0;c[B>>2]=D;J=g+5760|0;w=c[J>>2]|0;F=g+5768|0;h=c[F>>2]|0;A=g+5961|0;do{if((a[A]|0)==0){if(y<<24>>24==0|C<<24>>24==0){break}if((b[p+4>>1]|0)!=(b[p+8>>1]|0)){break}if((b[p+6>>1]|0)!=(b[p+10>>1]|0)){break}if((c[f+916+(a[p+2|0]<<2)>>2]|0)!=(c[f+980+(a[p+3|0]<<2)>>2]|0)){break}c[B>>2]=0;D=0}}while(0);L=e;C=g+10516|0;B=e+4|0;K=0;a:while(1){do{if((M|0)!=0){M=a[p+2+K|0]|0;if(M<<24>>24>15){z=10;break a}O=Qc[c[(c[L>>2]|0)+8>>2]&63](e,c[f+916+(K<<6)+(M<<24>>24<<2)>>2]|0)|0;if((c[O+96>>2]|0)==0){a[C]=3;Ue(B,1012,0);break}M=p+4+(K<<2)|0;S=b[M>>1]|0;N=p+4+(K<<2)+2|0;R=b[N>>1]|0;Q=x+(K<<13)|0;P=c[O+4>>2]|0;if((c[J>>2]|0)>8){vi(e,H,S,R,G,I,Q,m,P,c[O+40>>2]|0,n,o,w)}else{wi(e,H,S,R,G,I,Q,m,P,c[O+40>>2]|0,n,o,w)}S=b[M>>1]|0;R=b[N>>1]|0;P=r+(K<<13)|0;Q=c[O+8>>2]|0;if((c[J>>2]|0)>8){V=O+44|0;U=(n|0)/(t|0)|0;T=(o|0)/(s|0)|0;xi(e,H,S,R,G,I,P,m,Q,c[V>>2]|0,U,T,h);xi(e,H,b[M>>1]|0,b[N>>1]|0,G,I,r+16384+(K<<13)|0,m,c[O+12>>2]|0,c[V>>2]|0,U,T,h);break}else{T=O+44|0;U=(n|0)/(t|0)|0;V=(o|0)/(s|0)|0;yi(e,H,S,R,G,I,P,m,Q,c[T>>2]|0,U,V,h);yi(e,H,b[M>>1]|0,b[N>>1]|0,G,I,r+16384+(K<<13)|0,m,c[O+12>>2]|0,c[T>>2]|0,U,V,h);break}}}while(0);M=K+1|0;if((M|0)>=2){break}K=M;M=c[E+(M<<2)>>2]|0}if((z|0)==10){a[C]=3;Ue(B,1012,0);i=q;return}z=14-(c[J>>2]|0)|0;H=(z|0)<2?2:z;E=d[g+5920|0]|0;z=14-(c[F>>2]|0)|0;G=(z|0)<2?2:z;z=d[g+5921|0]|0;F=c[f+20>>2]|0;if((F|0)==1){g=y<<24>>24==1&(D|0)==0;if((a[A]|0)==0){if(!g){Ue(B,1011,0);a[C]=3;i=q;return}x=x|0;if((w|0)<9){Kc[c[e+176>>2]&63](u,v,x,m,n,o)}else{Mc[c[e+192>>2]&127](u,v,x,m,n,o,w)}u=r|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=e+176|0;Kc[c[V>>2]&63](k,j,u,m,n,o);Kc[c[V>>2]&63](l,j,r+16384|0,m,n,o);i=q;return}else{V=e+192|0;Mc[c[V>>2]&127](k,j,u,m,n,o,h);Mc[c[V>>2]&127](l,j,r+16384|0,m,n,o,h);i=q;return}}else{if(!g){Ue(B,1011,0);a[C]=3;i=q;return}V=a[p+2|0]|0;B=(d[f+380|0]|0)+H|0;p=(d[f+381|0]|0)+G|0;C=b[f+446+(V<<1)>>1]|0;D=a[f+510+V|0]<<E;y=b[f+542+(V<<2)>>1]|0;g=a[f+670+(V<<1)|0]<<z;A=b[f+542+(V<<2)+2>>1]|0;f=a[f+670+(V<<1)+1|0]<<z;x=x|0;if((w|0)<9){Oc[c[e+180>>2]&15](u,v,x,m,n,o,C,D,B)}else{Pc[c[e+196>>2]&15](u,v,x,m,n,o,C,D,B,w)}u=r|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=e+180|0;Oc[c[V>>2]&15](k,j,u,m,n,o,y,g,p);Oc[c[V>>2]&15](l,j,r+16384|0,m,n,o,A,f,p);i=q;return}else{V=e+196|0;Pc[c[V>>2]&15](k,j,u,m,n,o,y,g,p,h);Pc[c[V>>2]&15](l,j,r+16384|0,m,n,o,A,f,p,h);i=q;return}}}else if((F|0)==0){A=(D|0)==1;do{if(y<<24>>24==1){if(!A){break}if((a[g+5962|0]|0)==0){f=x|0;p=x+8192|0;x=e+172|0;if((w|0)<9){Mc[c[x>>2]&127](u,v,f,p,m,n,o)}else{Jc[c[e+188>>2]&63](u,v,f,p,m,n,o,w)}w=r|0;v=r+8192|0;u=r+16384|0;r=r+24576|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=x|0;Mc[c[V>>2]&127](k,j,w,v,m,n,o);Mc[c[V>>2]&127](l,j,u,r,m,n,o);i=q;return}else{V=e+188|0;Jc[c[V>>2]&63](k,j,w,v,m,n,o,h);Jc[c[V>>2]&63](l,j,u,r,m,n,o,h);i=q;return}}else{D=a[p+2|0]|0;V=a[p+3|0]|0;F=(d[f+380|0]|0)+H|0;p=(d[f+381|0]|0)+G|0;I=b[f+446+(D<<1)>>1]|0;H=a[f+510+D|0]<<E;G=b[f+478+(V<<1)>>1]|0;J=a[f+526+V|0]<<E;B=b[f+542+(D<<2)>>1]|0;A=a[f+670+(D<<1)|0]<<z;E=b[f+542+(D<<2)+2>>1]|0;D=a[f+670+(D<<1)+1|0]<<z;y=b[f+606+(V<<2)>>1]|0;g=a[f+702+(V<<1)|0]<<z;C=b[f+606+(V<<2)+2>>1]|0;f=a[f+702+(V<<1)+1|0]<<z;z=x|0;x=x+8192|0;if((w|0)<9){Rc[c[e+184>>2]&3](u,v,z,x,m,n,o,I,H,G,J,F)}else{Lc[c[e+200>>2]&3](u,v,z,x,m,n,o,I,H,G,J,F,w)}v=r|0;w=r+8192|0;u=r+16384|0;r=r+24576|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=e+184|0;Rc[c[V>>2]&3](k,j,v,w,m,n,o,B,A,y,g,p);Rc[c[V>>2]&3](l,j,u,r,m,n,o,E,D,C,f,p);i=q;return}else{V=e+200|0;Lc[c[V>>2]&3](k,j,v,w,m,n,o,B,A,y,g,p,h);Lc[c[V>>2]&3](l,j,u,r,m,n,o,E,D,C,f,p,h);i=q;return}}}else{if(A){break}Ue(B,1011,0);a[C]=3;i=q;return}}while(0);y=y<<24>>24==0|0;if((a[g+5962|0]|0)==0){x=x+(y<<13)|0;if((w|0)<9){Kc[c[e+176>>2]&63](u,v,x,m,n,o)}else{Mc[c[e+192>>2]&127](u,v,x,m,n,o,w)}u=r+(y<<13)|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=e+176|0;Kc[c[V>>2]&63](k,j,u,m,n,o);Kc[c[V>>2]&63](l,j,r+16384+(y<<13)|0,m,n,o);i=q;return}else{V=e+192|0;Mc[c[V>>2]&127](k,j,u,m,n,o,h);Mc[c[V>>2]&127](l,j,r+16384+(y<<13)|0,m,n,o,h);i=q;return}}else{V=a[p+2+y|0]|0;C=(d[f+380|0]|0)+H|0;p=(d[f+381|0]|0)+G|0;D=b[f+446+(y<<5)+(V<<1)>>1]|0;E=a[f+510+(y<<4)+V|0]<<E;A=b[f+542+(y<<6)+(V<<2)>>1]|0;g=a[f+670+(y<<5)+(V<<1)|0]<<z;B=b[f+542+(y<<6)+(V<<2)+2>>1]|0;f=a[f+670+(y<<5)+(V<<1)+1|0]<<z;x=x+(y<<13)|0;if((w|0)<9){Oc[c[e+180>>2]&15](u,v,x,m,n,o,D,E,C)}else{Pc[c[e+196>>2]&15](u,v,x,m,n,o,D,E,C,w)}u=r+(y<<13)|0;n=(n|0)/(t|0)|0;o=(o|0)/(s|0)|0;if((h|0)<9){V=e+180|0;Oc[c[V>>2]&15](k,j,u,m,n,o,A,g,p);Oc[c[V>>2]&15](l,j,r+16384+(y<<13)|0,m,n,o,B,f,p);i=q;return}else{V=e+196|0;Pc[c[V>>2]&15](k,j,u,m,n,o,A,g,p,h);Pc[c[V>>2]&15](l,j,r+16384+(y<<13)|0,m,n,o,B,f,p,h);i=q;return}}}else{ec(8616,15536,489,18272)}}function vi(a,d,f,g,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;r=i;i=i+20448|0;t=r|0;v=r+9088|0;s=f&3;u=g&3;h=(f>>2)+h|0;j=(g>>2)+j|0;w=14-(c[d+4996>>2]|0)|0;A=c[d+484>>2]|0;z=c[d+488>>2]|0;if(((g|f)&3|0)==0){do{if((j|h|0)>-1){if((h+o|0)>(A|0)){break}if((j+p|0)>(z|0)){break}m=m+((ga(j,n)|0)+h<<1)|0;h=t|0;if((q|0)<9){Mc[c[a+220>>2]&127](k,l,m,n,o,p,h);i=r;return}else{Jc[c[a+300>>2]&63](k,l,m,n,o,p,h,q);i=r;return}}}while(0);if((p|0)<=0){i=r;return}a=z-1|0;q=A-1|0;if((o|0)>0){s=0}else{i=r;return}do{v=s+j|0;t=ga(s,l)|0;u=(v|0)>(a|0)?a:v;if((v|0)<0){u=0;do{v=u+h|0;if((v|0)<0){v=0}else{v=(v|0)>(q|0)?q:v}b[k+(u+t<<1)>>1]=(e[m+(v<<1)>>1]|0)<<w;u=u+1|0;}while((u|0)<(o|0))}else{v=0;do{f=v+h|0;if((f|0)<0){f=0}else{f=(f|0)>(q|0)?q:f}F=m+((ga(u,n)|0)+f<<1)|0;b[k+(v+t<<1)>>1]=(e[F>>1]|0)<<w;v=v+1|0;}while((v|0)<(o|0))}s=s+1|0;}while((s|0)<(p|0));i=r;return}f=c[30768+(s<<2)>>2]|0;d=c[30872+(s<<2)>>2]|0;w=c[30768+(u<<2)>>2]|0;y=c[30872+(u<<2)>>2]|0;g=-f|0;do{if((h-f|0)>-1){if(!((j-w|0)>-1)){x=23;break}if((h+o+d|0)>=(A|0)){x=23;break}if((j+p+y|0)>=(z|0)){x=23;break}g=n;n=m+((ga(j,n)|0)+h<<1)|0}else{x=23}}while(0);if((x|0)==23){C=-w|0;x=y+p|0;if((x|0)>(C|0)){d=d+o|0;y=(d|0)>(g|0);z=z-1|0;A=A-1|0;do{if(y){E=C+j|0;B=((C+w|0)*80|0)+f|0;D=(E|0)>(z|0)?z:E;if((E|0)<0){D=g;do{E=D+h|0;if((E|0)<0){E=0}else{E=(E|0)>(A|0)?A:E}b[v+(B+D<<1)>>1]=b[m+(E<<1)>>1]|0;D=D+1|0;}while((D|0)<(d|0))}else{E=g;do{F=E+h|0;if((F|0)<0){F=0}else{F=(F|0)>(A|0)?A:F}F=m+((ga(D,n)|0)+F<<1)|0;b[v+(B+E<<1)>>1]=b[F>>1]|0;E=E+1|0;}while((E|0)<(d|0))}}C=C+1|0;}while((C|0)<(x|0))}g=80;n=v+((w*80|0)+f<<1)|0}m=t|0;if((q|0)<9){Mc[c[a+220+(s<<4)+(u<<2)>>2]&127](k,l,n,g,o,p,m);i=r;return}else{Jc[c[a+300+(s<<4)+(u<<2)>>2]&63](k,l,n,g,o,p,m,q);i=r;return}}function wi(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;s=i;i=i+14768|0;u=s|0;w=s+9088|0;t=g&3;v=h&3;j=(g>>2)+j|0;k=(h>>2)+k|0;x=14-(c[f+4996>>2]|0)|0;A=c[f+484>>2]|0;B=c[f+488>>2]|0;if(((h|g)&3|0)==0){do{if((k|j|0)>-1){if((j+p|0)>(A|0)){break}if((k+q|0)>(B|0)){break}n=n+((ga(k,o)|0)+j)|0;j=u|0;if((r|0)<9){Mc[c[e+220>>2]&127](l,m,n,o,p,q,j);i=s;return}else{Jc[c[e+300>>2]&63](l,m,n,o,p,q,j,r);i=s;return}}}while(0);if((q|0)<=0){i=s;return}e=(p|0)>0;r=B-1|0;w=A-1|0;t=0;do{if(e){g=t+k|0;u=(g|0)<0;v=ga(t,m)|0;h=(g|0)>(r|0)?r:g;g=0;do{y=g+j|0;if((y|0)<0){y=0}else{y=(y|0)>(w|0)?w:y}H=n+((ga(u?0:h,o)|0)+y)|0;b[l+(g+v<<1)>>1]=(d[H]|0)<<x;g=g+1|0;}while((g|0)<(p|0))}t=t+1|0;}while((t|0)<(q|0));i=s;return}x=c[30768+(t<<2)>>2]|0;f=c[30872+(t<<2)>>2]|0;g=c[30768+(v<<2)>>2]|0;z=c[30872+(v<<2)>>2]|0;h=-x|0;do{if((j-x|0)>-1){if(!((k-g|0)>-1)){y=21;break}if((j+p+f|0)>=(A|0)){y=21;break}if((k+q+z|0)>=(B|0)){y=21;break}h=o;o=n+((ga(k,o)|0)+j)|0}else{y=21}}while(0);if((y|0)==21){D=-g|0;y=z+q|0;if((y|0)>(D|0)){z=f+p|0;f=(z|0)>(h|0);B=B-1|0;A=A-1|0;do{if(f){F=D+k|0;C=(F|0)<0;E=((D+g|0)*80|0)+x|0;F=(F|0)>(B|0)?B:F;G=h;do{H=G+j|0;if((H|0)<0){H=0}else{H=(H|0)>(A|0)?A:H}H=n+((ga(C?0:F,o)|0)+H)|0;a[w+(E+G)|0]=a[H]|0;G=G+1|0;}while((G|0)<(z|0))}D=D+1|0;}while((D|0)<(y|0))}h=80;o=w+((g*80|0)+x)|0}n=u|0;if((r|0)<9){Mc[c[e+220+(t<<4)+(v<<2)>>2]&127](l,m,o,h,p,q,n);i=s;return}else{Jc[c[e+300+(t<<4)+(v<<2)>>2]&63](l,m,o,h,p,q,n,r);i=s;return}}function xi(a,d,f,g,h,j,k,l,m,n,o,p,q){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;r=i;i=i+19808|0;s=r|0;t=r+9088|0;u=14-(c[d+5004>>2]|0)|0;B=c[d+5016>>2]|0;w=(c[d+484>>2]|0)/(B|0)|0;C=c[d+5020>>2]|0;y=(c[d+488>>2]|0)/(C|0)|0;E=ga(2/(B|0)|0,f)|0;D=ga(2/(C|0)|0,g)|0;f=E&7;g=D&7;h=((h|0)/(B|0)|0)+(E>>3)|0;j=((j|0)/(C|0)|0)+(D>>3)|0;d=(g|0)==0;if(((D|E)&7|0)==0){do{if((h|0)>-1){if(!((h+o|0)<=(w|0)&(j|0)>-1)){break}if((j+p|0)>(y|0)){break}m=m+((ga(j,n)|0)+h<<1)|0;if((q|0)<9){Oc[c[a+204>>2]&15](k,l,m,n,o,p,0,0,0);i=r;return}else{Pc[c[a+284>>2]&15](k,l,m,n,o,p,0,0,0,q);i=r;return}}}while(0);if((p|0)<=0){i=r;return}q=(o|0)>0;a=y-1|0;t=w-1|0;s=0;do{if(q){d=s+j|0;g=(d|0)<0;f=ga(s,l)|0;v=(d|0)>(a|0)?a:d;d=0;do{w=d+h|0;if((w|0)<0){w=0}else{w=(w|0)>(t|0)?t:w}E=m+((ga(g?0:v,n)|0)+w<<1)|0;b[k+(d+f<<1)>>1]=(e[E>>1]|0)<<u;d=d+1|0;}while((d|0)<(o|0))}s=s+1|0;}while((s|0)<(p|0));i=r;return}do{if((h|0)>0){if(!((h+o|0)<=(w-2|0)&(j|0)>0)){v=17;break}if((j+p|0)>(y-2|0)){v=17;break}m=m+((ga(j,n)|0)+h<<1)|0}else{v=17}}while(0);if((v|0)==17){v=p+2|0;if((v|0)>-1){x=o+2|0;u=(x|0)>-1;y=y-1|0;w=w-1|0;B=-1;do{if(u){C=B+j|0;z=(C|0)<0;A=(B*80|0)+80|0;D=(C|0)>(y|0)?y:C;C=-1;do{E=C+h|0;if((E|0)<0){E=0}else{E=(E|0)>(w|0)?w:E}E=m+((ga(z?0:D,n)|0)+E<<1)|0;C=C+1|0;b[t+(A+C<<1)>>1]=b[E>>1]|0;}while((C|0)<(x|0))}B=B+1|0;}while((B|0)<(v|0))}m=t+162|0;n=80}h=(f|0)!=0;if(!(d|h^1)){h=s|0;if((q|0)<9){Pc[c[a+216>>2]&15](k,l,m,n,o,p,f,g,h,q);i=r;return}else{Pc[c[a+296>>2]&15](k,l,m,n,o,p,f,g,h,q);i=r;return}}if(h){h=s|0;if((q|0)<9){Pc[c[a+208>>2]&15](k,l,m,n,o,p,f,g,h,q);i=r;return}else{Pc[c[a+288>>2]&15](k,l,m,n,o,p,f,g,h,q);i=r;return}}if(d){ec(10064,15536,268,17976)}h=s|0;if((q|0)<9){Pc[c[a+212>>2]&15](k,l,m,n,o,p,0,g,h,q);i=r;return}else{Pc[c[a+292>>2]&15](k,l,m,n,o,p,0,g,h,q);i=r;return}}function yi(e,f,g,h,j,k,l,m,n,o,p,q,r){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;s=i;i=i+14448|0;t=s|0;u=s+9088|0;v=14-(c[f+5004>>2]|0)|0;C=c[f+5016>>2]|0;x=(c[f+484>>2]|0)/(C|0)|0;D=c[f+5020>>2]|0;z=(c[f+488>>2]|0)/(D|0)|0;F=ga(2/(C|0)|0,g)|0;E=ga(2/(D|0)|0,h)|0;g=F&7;h=E&7;j=((j|0)/(C|0)|0)+(F>>3)|0;k=((k|0)/(D|0)|0)+(E>>3)|0;f=(h|0)==0;if(((E|F)&7|0)==0){do{if((j|0)>-1){if(!((j+p|0)<=(x|0)&(k|0)>-1)){break}if((k+q|0)>(z|0)){break}n=n+((ga(k,o)|0)+j)|0;if((r|0)<9){Oc[c[e+204>>2]&15](l,m,n,o,p,q,0,0,0);i=s;return}else{Pc[c[e+284>>2]&15](l,m,n,o,p,q,0,0,0,r);i=s;return}}}while(0);if((q|0)<=0){i=s;return}r=(p|0)>0;e=z-1|0;u=x-1|0;t=0;do{if(r){f=t+k|0;h=(f|0)<0;g=ga(t,m)|0;w=(f|0)>(e|0)?e:f;f=0;do{x=f+j|0;if((x|0)<0){x=0}else{x=(x|0)>(u|0)?u:x}F=n+((ga(h?0:w,o)|0)+x)|0;b[l+(f+g<<1)>>1]=(d[F]|0)<<v;f=f+1|0;}while((f|0)<(p|0))}t=t+1|0;}while((t|0)<(q|0));i=s;return}do{if((j|0)>0){if(!((j+p|0)<=(x-2|0)&(k|0)>0)){w=17;break}if((k+q|0)>(z-2|0)){w=17;break}n=n+((ga(k,o)|0)+j)|0}else{w=17}}while(0);if((w|0)==17){w=q+2|0;if((w|0)>-1){y=p+2|0;v=(y|0)>-1;z=z-1|0;x=x-1|0;C=-1;do{if(v){D=C+k|0;A=(D|0)<0;B=(C*80|0)+80|0;E=(D|0)>(z|0)?z:D;D=-1;do{F=D+j|0;if((F|0)<0){F=0}else{F=(F|0)>(x|0)?x:F}F=n+((ga(A?0:E,o)|0)+F)|0;D=D+1|0;a[u+(B+D)|0]=a[F]|0;}while((D|0)<(y|0))}C=C+1|0;}while((C|0)<(w|0))}n=u+81|0;o=80}j=(g|0)!=0;if(!(f|j^1)){j=t|0;if((r|0)<9){Pc[c[e+216>>2]&15](l,m,n,o,p,q,g,h,j,r);i=s;return}else{Pc[c[e+296>>2]&15](l,m,n,o,p,q,g,h,j,r);i=s;return}}if(j){j=t|0;if((r|0)<9){Pc[c[e+208>>2]&15](l,m,n,o,p,q,g,h,j,r);i=s;return}else{Pc[c[e+288>>2]&15](l,m,n,o,p,q,g,h,j,r);i=s;return}}if(f){ec(10064,15536,268,17976)}j=t|0;if((r|0)<9){Pc[c[e+212>>2]&15](l,m,n,o,p,q,0,h,j,r);i=s;return}else{Pc[c[e+292>>2]&15](l,m,n,o,p,q,0,h,j,r);i=s;return}}function zi(e,f,g,h,i,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;k=c[e+10060>>2]|0;q=c[e+10368>>2]|0;s=f>>q;q=g>>q;if(!((s|0)>-1)){ec(1232,544,118,17296);return 0}r=c[e+10372>>2]|0;if((s|0)>=(r|0)){ec(1232,544,118,17296);return 0}if(!((q|0)>-1)){ec(17016,544,119,17296);return 0}if((q|0)>=(c[e+10376>>2]|0)){ec(17016,544,119,17296);return 0}q=(ga(r,q)|0)+s|0;q=(c[e+10360>>2]|0)+(q*3|0)|0;q=((d[q]|d[q+1|0]<<8)<<16>>16&65535)>>>3&7;x=q&255;s=i-1|0;v=m+j|0;u=v-1|0;y=i>>k;r=(y|0)==(s>>k|0);if(r){if((j>>k|0)==(u>>k|0)){w=0;q=0}else{t=9}}else{t=9}do{if((t|0)==9){if((n|0)==1){if((x&3|0)==2|q<<24>>24==7){w=0;q=0;break}}if(!(ci(e,f,g,h,i,j,l,m,n,s,u)|0)){w=0;q=0;break}C=c[e+10388>>2]|0;q=s>>C;u=u>>C;if(!((q|0)>-1)){ec(1232,544,118,17296);return 0}w=c[e+10392>>2]|0;if((q|0)>=(w|0)){ec(1232,544,118,17296);return 0}if(!((u|0)>-1)){ec(17016,544,119,17296);return 0}if((u|0)<(c[e+10396>>2]|0)){q=(ga(w,u)|0)+q|0;w=o|0;q=(c[e+10380>>2]|0)+(q*12|0)|0;b[w>>1]=b[q>>1]|0;b[w+2>>1]=b[q+2>>1]|0;b[w+4>>1]=b[q+4>>1]|0;b[w+6>>1]=b[q+6>>1]|0;b[w+8>>1]=b[q+8>>1]|0;b[w+10>>1]=b[q+10>>1]|0;w=1;q=1;break}else{ec(17016,544,119,17296);return 0}}}while(0);if((w|0)>=(p|0)){C=w;return C|0}z=l+i|0;A=z-1|0;u=j-1|0;if((y|0)==(A>>k|0)){if((j>>k|0)==(u>>k|0)){A=w;w=0;x=0}else{t=22}}else{t=22}a:do{if((t|0)==22){if((n|0)==1){if((x|0)==5|(x|0)==4|(x|0)==1){A=w;w=0;x=0;break}}if(!(ci(e,f,g,h,i,j,l,m,n,A,u)|0)){A=w;w=0;x=0;break}x=c[e+10388>>2]|0;B=A>>x;x=u>>x;if(!((B|0)>-1)){ec(1232,544,118,17296);return 0}A=c[e+10392>>2]|0;if((B|0)>=(A|0)){ec(1232,544,118,17296);return 0}if(!((x|0)>-1)){ec(17016,544,119,17296);return 0}if((x|0)>=(c[e+10396>>2]|0)){ec(17016,544,119,17296);return 0}A=(ga(A,x)|0)+B|0;x=c[e+10380>>2]|0;b:do{if(q){B=0;while(1){C=a[o+B|0]|0;if(!(C<<24>>24==(a[x+(A*12|0)+B|0]|0))){break b}if(!(C<<24>>24==0)){if((b[o+4+(B<<2)>>1]|0)!=(b[x+(A*12|0)+4+(B<<2)>>1]|0)){break b}if((b[o+4+(B<<2)+2>>1]|0)!=(b[x+(A*12|0)+4+(B<<2)+2>>1]|0)){break b}if((a[o+2+B|0]|0)!=(a[x+(A*12|0)+2+B|0]|0)){break b}}B=B+1|0;if((B|0)>=2){A=w;w=0;x=1;break a}}}}while(0);C=o+(w*12|0)|0;A=x+(A*12|0)|0;b[C>>1]=b[A>>1]|0;b[C+2>>1]=b[A+2>>1]|0;b[C+4>>1]=b[A+4>>1]|0;b[C+6>>1]=b[A+6>>1]|0;b[C+8>>1]=b[A+8>>1]|0;b[C+10>>1]=b[A+10>>1]|0;A=w+1|0;x=1}}while(0);if((A|0)>=(p|0)){C=A;return C|0}if((y|0)==(z>>k|0)){if((j>>k|0)!=(u>>k|0)){t=42}}else{t=42}c:do{if((t|0)==42){if(!(ci(e,f,g,h,i,j,l,m,n,z,u)|0)){break}B=c[e+10388>>2]|0;y=z>>B;B=u>>B;if(!((y|0)>-1)){ec(1232,544,118,17296);return 0}z=c[e+10392>>2]|0;if((y|0)>=(z|0)){ec(1232,544,118,17296);return 0}if(!((B|0)>-1)){ec(17016,544,119,17296);return 0}if((B|0)>=(c[e+10396>>2]|0)){ec(17016,544,119,17296);return 0}z=(ga(z,B)|0)+y|0;y=c[e+10380>>2]|0;d:do{if(x){B=0;while(1){C=a[o+(w*12|0)+B|0]|0;if(!(C<<24>>24==(a[y+(z*12|0)+B|0]|0))){break d}if(!(C<<24>>24==0)){if((b[o+(w*12|0)+4+(B<<2)>>1]|0)!=(b[y+(z*12|0)+4+(B<<2)>>1]|0)){break d}if((b[o+(w*12|0)+4+(B<<2)+2>>1]|0)!=(b[y+(z*12|0)+4+(B<<2)+2>>1]|0)){break d}if((a[o+(w*12|0)+2+B|0]|0)!=(a[y+(z*12|0)+2+B|0]|0)){break d}}B=B+1|0;if((B|0)>=2){break c}}}}while(0);C=o+(A*12|0)|0;B=y+(z*12|0)|0;b[C>>1]=b[B>>1]|0;b[C+2>>1]=b[B+2>>1]|0;b[C+4>>1]=b[B+4>>1]|0;b[C+6>>1]=b[B+6>>1]|0;b[C+8>>1]=b[B+8>>1]|0;b[C+10>>1]=b[B+10>>1]|0;A=A+1|0}}while(0);if((A|0)>=(p|0)){C=A;return C|0}if(r){if((j>>k|0)!=(v>>k|0)){t=60}}else{t=60}e:do{if((t|0)==60){if(!(ci(e,f,g,h,i,j,l,m,n,s,v)|0)){break}C=c[e+10388>>2]|0;t=s>>C;v=v>>C;if(!((t|0)>-1)){ec(1232,544,118,17296);return 0}y=c[e+10392>>2]|0;if((t|0)>=(y|0)){ec(1232,544,118,17296);return 0}if(!((v|0)>-1)){ec(17016,544,119,17296);return 0}if((v|0)>=(c[e+10396>>2]|0)){ec(17016,544,119,17296);return 0}t=(ga(y,v)|0)+t|0;v=c[e+10380>>2]|0;f:do{if(q){z=0;while(1){y=a[o+z|0]|0;if(!(y<<24>>24==(a[v+(t*12|0)+z|0]|0))){break f}if(!(y<<24>>24==0)){if((b[o+4+(z<<2)>>1]|0)!=(b[v+(t*12|0)+4+(z<<2)>>1]|0)){break f}if((b[o+4+(z<<2)+2>>1]|0)!=(b[v+(t*12|0)+4+(z<<2)+2>>1]|0)){break f}if((a[o+2+z|0]|0)!=(a[v+(t*12|0)+2+z|0]|0)){break f}}z=z+1|0;if((z|0)>=2){break e}}}}while(0);C=o+(A*12|0)|0;B=v+(t*12|0)|0;b[C>>1]=b[B>>1]|0;b[C+2>>1]=b[B+2>>1]|0;b[C+4>>1]=b[B+4>>1]|0;b[C+6>>1]=b[B+6>>1]|0;b[C+8>>1]=b[B+8>>1]|0;b[C+10>>1]=b[B+10>>1]|0;A=A+1|0}}while(0);if((A|0)>=(p|0)|(A|0)==4){C=A;return C|0}do{if(r){if((j>>k|0)!=(u>>k|0)){break}return A|0}}while(0);if(!(ci(e,f,g,h,i,j,l,m,n,s,u)|0)){C=A;return C|0}l=c[e+10388>>2]|0;i=s>>l;l=u>>l;if(!((i|0)>-1)){ec(1232,544,118,17296);return 0}j=c[e+10392>>2]|0;if((i|0)>=(j|0)){ec(1232,544,118,17296);return 0}if(!((l|0)>-1)){ec(17016,544,119,17296);return 0}if((l|0)>=(c[e+10396>>2]|0)){ec(17016,544,119,17296);return 0}i=(ga(j,l)|0)+i|0;e=c[e+10380>>2]|0;g:do{if(x){j=0;do{l=a[o+(w*12|0)+j|0]|0;if(!(l<<24>>24==(a[e+(i*12|0)+j|0]|0))){break g}if(!(l<<24>>24==0)){if((b[o+(w*12|0)+4+(j<<2)>>1]|0)!=(b[e+(i*12|0)+4+(j<<2)>>1]|0)){break g}if((b[o+(w*12|0)+4+(j<<2)+2>>1]|0)!=(b[e+(i*12|0)+4+(j<<2)+2>>1]|0)){break g}if((a[o+(w*12|0)+2+j|0]|0)!=(a[e+(i*12|0)+2+j|0]|0)){break g}}j=j+1|0;}while((j|0)<2);return A|0}}while(0);h:do{if(q){j=0;do{l=a[o+j|0]|0;if(!(l<<24>>24==(a[e+(i*12|0)+j|0]|0))){break h}if(!(l<<24>>24==0)){if((b[o+4+(j<<2)>>1]|0)!=(b[e+(i*12|0)+4+(j<<2)>>1]|0)){break h}if((b[o+4+(j<<2)+2>>1]|0)!=(b[e+(i*12|0)+4+(j<<2)+2>>1]|0)){break h}if((a[o+2+j|0]|0)!=(a[e+(i*12|0)+2+j|0]|0)){break h}}j=j+1|0;}while((j|0)<2);return A|0}}while(0);C=o+(A*12|0)|0;B=e+(i*12|0)|0;b[C>>1]=b[B>>1]|0;b[C+2>>1]=b[B+2>>1]|0;b[C+4>>1]=b[B+4>>1]|0;b[C+6>>1]=b[B+6>>1]|0;b[C+8>>1]=b[B+8>>1]|0;b[C+10>>1]=b[B+10>>1]|0;C=A+1|0;return C|0}function Ai(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;l=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[l>>2];if((f|0)<-128){f=-128}else{f=(f|0)>127?127:f}if((g|0)<-128){g=-128}else{g=(g|0)>127?127:g}if((f|0)==0){k=d;l=a;C=e[k>>1]|e[k+2>>1]<<16;b[l>>1]=C;b[l+2>>1]=C>>16;l=0;i=h;return l|0}f=(ga(((((f|0)<0?-f|0:f)>>1)+16384|0)/(f|0)|0,g)|0)+32>>6;if((f|0)<-4096){f=-4096}else{f=(f|0)>4095?4095:f}k=ga(b[d>>1]|0,f)|0;j=(k|0)<0;if(j){l=-1}else{l=(k|0)>0|0}g=(j?-k|0:k)+127>>8;do{if((ga(g,l)|0)<-32768){g=-32768}else{if(j){l=-1}else{l=(k|0)>0|0}if((ga(g,l)|0)>32767){g=32767;break}if(j){j=-1}else{j=(k|0)>0|0}g=(ga(g,j)|0)&65535}}while(0);b[a>>1]=g;g=ga(b[d+2>>1]|0,f)|0;f=(g|0)<0;if(f){j=-1}else{j=(g|0)>0|0}d=(f?-g|0:g)+127>>8;do{if((ga(d,j)|0)<-32768){d=-32768}else{if(f){j=-1}else{j=(g|0)>0|0}if((ga(d,j)|0)>32767){d=32767;break}if(f){f=-1}else{f=(g|0)>0|0}d=(ga(d,f)|0)&65535}}while(0);b[a+2>>1]=d;l=1;i=h;return l|0}function Bi(f,g,h,j,k,l,m,n,o,p,q,r){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;s=i;i=i+8|0;k=s|0;j=k;if(!(Qc[c[(c[f>>2]|0)+12>>2]&63](f,l)|0)){ec(12928,15536,1074,18352)}t=f;l=Qc[c[(c[t>>2]|0)+8>>2]&63](f,l)|0;do{if((c[l+24>>2]|0)>(m|0)){if((c[l+28>>2]|0)<=(n|0)){break}v=c[l+10368>>2]|0;u=m>>v;v=n>>v;if(!((u|0)>-1)){ec(1232,544,118,17296)}w=c[l+10372>>2]|0;if((u|0)>=(w|0)){ec(1232,544,118,17296)}if(!((v|0)>-1)){ec(17016,544,119,17296)}if((v|0)>=(c[l+10376>>2]|0)){ec(17016,544,119,17296)}z=(ga(w,v)|0)+u|0;z=(c[l+10360>>2]|0)+(z*3|0)|0;if(((d[z]|d[z+1|0]<<8)<<16>>16&768)==0){b[q>>1]=0;b[q+2>>1]=0;a[r]=0;i=s;return}if((a[l+10516|0]|0)==1){b[q>>1]=0;b[q+2>>1]=0;a[r]=0;i=s;return}u=c[l+10388>>2]|0;w=m>>u;u=n>>u;if(!((w|0)>-1)){ec(1232,544,118,17296)}v=c[l+10392>>2]|0;if((w|0)>=(v|0)){ec(1232,544,118,17296)}if(!((u|0)>-1)){ec(17016,544,119,17296)}if((u|0)>=(c[l+10396>>2]|0)){ec(17016,544,119,17296)}v=(ga(v,u)|0)+w|0;u=c[l+10380>>2]|0;do{if((a[u+(v*12|0)|0]|0)==0){t=1;w=u+(v*12|0)+3|0;u=u+(v*12|0)+8|0}else{if((a[u+(v*12|0)+1|0]|0)==0){t=0;w=u+(v*12|0)+2|0;u=u+(v*12|0)+4|0;break}w=c[g+92>>2]|0;x=h+332|0;if((c[x>>2]|0)<1){z=1}else{y=0;z=1;do{A=(Qc[c[(c[t>>2]|0)+8>>2]&63](f,c[h+980+(y<<2)>>2]|0)|0)+92|0;z=z&(c[A>>2]|0)<=(w|0);y=y+1|0;}while(!((y|0)>=(c[x>>2]|0)|z^1))}x=h+328|0;if(!((c[x>>2]|0)<1|z^1)){y=0;do{A=(Qc[c[(c[t>>2]|0)+8>>2]&63](f,c[h+916+(y<<2)>>2]|0)|0)+92|0;z=z&(c[A>>2]|0)<=(w|0);y=y+1|0;}while(!((y|0)>=(c[x>>2]|0)|z^1))}if(z){t=p;w=u+(v*12|0)+2+p|0;u=u+(v*12|0)+4+(p<<2)|0;break}else{A=a[h+372|0]|0;t=A;w=u+(v*12|0)+2+A|0;u=u+(v*12|0)+4+(A<<2)|0;break}}}while(0);u=e[u>>1]|e[u+2>>1]<<16;v=a[w]|0;A=c[l+10348>>2]|0;m=m>>A;n=n>>A;if(!((m|0)>-1)){ec(1232,544,118,17296)}w=c[l+10352>>2]|0;if((m|0)>=(w|0)){ec(1232,544,118,17296)}if(!((n|0)>-1)){ec(17016,544,119,17296)}if((n|0)>=(c[l+10356>>2]|0)){ec(17016,544,119,17296)}m=(ga(w,n)|0)+m|0;m=c[(c[l+48>>2]|0)+(e[(c[l+10340>>2]|0)+(m*24|0)+2>>1]<<2)>>2]|0;n=h+1300+(p<<4)+o|0;if((a[n]|0)!=(a[m+1300+(t<<4)+v|0]|0)){a[r]=0;b[q>>1]=0;b[q+2>>1]=0;i=s;return}a[r]=1;r=(c[l+92>>2]|0)-(c[m+1044+(t<<6)+(v<<2)>>2]|0)|0;p=(c[g+92>>2]|0)-(c[h+1044+(p<<6)+(o<<2)>>2]|0)|0;if((a[n]|0)!=0|(r|0)==(p|0)){A=q;C=u;b[A>>1]=C;b[A+2>>1]=C>>16;i=s;return}c[k>>2]=u;if(Ai(q,j,r,p)|0){i=s;return}Ue(f+4|0,1008,0);a[g+10516|0]=3;i=s;return}}while(0);Ue(f+4|0,1026,0);a[r]=0;i=s;return}function Ci(d,e,f,g,h,i,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0;if((a[f+324|0]|0)==0){b[m>>1]=0;b[m+2>>1]=0;a[n]=0;return}p=c[e+5804>>2]|0;do{if((c[f+20>>2]|0)==0){if((a[f+372|0]|0)!=0){o=6;break}q=f+980+(c[f+376>>2]<<2)|0}else{o=6}}while(0);if((o|0)==6){q=f+916+(c[f+376>>2]<<2)|0}q=c[q>>2]|0;if(!(Qc[c[(c[d>>2]|0)+12>>2]&63](d,q)|0)){b[m>>1]=0;b[m+2>>1]=0;a[n]=0;Ue(d+4|0,1012,0);return}s=j+h|0;r=i+g|0;do{if((h>>p|0)==(s>>p|0)){if((r|0)>=(c[e+1248>>2]|0)){o=12;break}if((s|0)>=(c[e+1252>>2]|0)){o=12;break}Bi(d,e,f,0,0,q,r&-16,s&-16,k,l,m,n);if((a[n]|0)==0){break}return}else{o=12}}while(0);if((o|0)==12){b[m>>1]=0;b[m+2>>1]=0;a[n]=0}Bi(d,e,f,0,0,q,(i>>1)+g&-16,(j>>1)+h&-16,k,l,m,n);return}function Di(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=c[h>>2]|0;if(!((m|0)>1&(m|0)<(i|0))){return}j=ga(m-1|0,m)|0;k=d;o=0;l=1;a:while(1){while(1){if(!l){g=20;break a}q=c[30904+(o<<2)>>2]|0;r=c[30952+(o<<2)>>2]|0;if(!((q|0)<(m|0)&(r|0)<(m|0))){g=6;break a}t=g+(q*12|0)|0;if((a[t]|0)==0){p=0}else{p=Qc[c[(c[k>>2]|0)+8>>2]&63](d,c[f+916+(a[g+(q*12|0)+2|0]<<2)>>2]|0)|0}s=g+(r*12|0)+1|0;if((a[s]|0)==0){n=0}else{n=Qc[c[(c[k>>2]|0)+8>>2]&63](d,c[f+980+(a[g+(r*12|0)+3|0]<<2)>>2]|0)|0}t=a[t]|0;if(t<<24>>24!=0&(p|0)==0){g=20;break a}s=a[s]|0;if(s<<24>>24!=0&(n|0)==0){g=20;break a}b:do{if(!(t<<24>>24==0|s<<24>>24==0)){do{if((c[p+92>>2]|0)==(c[n+92>>2]|0)){if((b[g+(q*12|0)+4>>1]|0)!=(b[g+(r*12|0)+8>>1]|0)){break}if((b[g+(q*12|0)+6>>1]|0)==(b[g+(r*12|0)+10>>1]|0)){break b}}}while(0);p=c[h>>2]|0;a[g+(p*12|0)+2|0]=a[g+(q*12|0)+2|0]|0;a[g+(p*12|0)+3|0]=a[g+(r*12|0)+3|0]|0;a[g+(p*12|0)|0]=t;a[g+(p*12|0)+1|0]=s;t=g+(q*12|0)+4|0;s=g+(p*12|0)+4|0;C=e[t>>1]|e[t+2>>1]<<16;b[s>>1]=C;b[s+2>>1]=C>>16;s=g+(r*12|0)+8|0;t=g+(p*12|0)+8|0;C=e[s>>1]|e[s+2>>1]<<16;b[t>>1]=C;b[t+2>>1]=C>>16;c[h>>2]=(c[h>>2]|0)+1}}while(0);o=o+1|0;if((o|0)==(j|0)){o=j;l=0;continue a}if((c[h>>2]|0)==(i|0)){l=0;continue a}}}if((g|0)==6){ec(10064,15536,1360,18064)}else if((g|0)==20){return}}function Ei(d,e,f,g,h,j,k,l,m,n,o,p,q){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0;r=i;i=i+24|0;s=r|0;t=r+8|0;u=r+16|0;v=(c[f+10060>>2]|0)>2&(l|0)==8;n=v?l:n;m=v?l:m;k=v?h:k;j=v?g:j;p=p+1|0;o=zi(f,g,h,l,j,k,0,m,n,v?0:o,q,p)|0;c[s>>2]=o;do{if((o|0)<(p|0)){l=u|0;Ci(d,f,e,j,k,m,n,0,0,t|0,l);v=a[l]|0;h=u+1|0;a[h]=0;u=e+20|0;if((c[u>>2]|0)==0){Ci(d,f,e,j,k,m,n,0,1,t+4|0,h);f=a[h]|0;v=f|v}else{f=0}if(v<<24>>24==0){t=u;break}c[s>>2]=o+1;g=q+(o*12|0)+4|0;C=c[t>>2]|0;b[g>>1]=C;b[g+2>>1]=C>>16;g=q+(o*12|0)+8|0;C=c[t+4>>2]|0;b[g>>1]=C;b[g+2>>1]=C>>16;a[q+(o*12|0)|0]=a[l]|0;a[q+(o*12|0)+1|0]=f;a[q+(o*12|0)+2|0]=0;a[q+(o*12|0)+3|0]=0;t=u}else{t=e+20|0}}while(0);f=c[t>>2]|0;if((f|0)==0){Di(d,e,q,s,p);f=c[t>>2]|0}d=c[e+328>>2]|0;if((f|0)==1){e=d}else{e=c[e+332>>2]|0;e=(d|0)<(e|0)?d:e}m=c[s>>2]|0;if((m|0)<(p|0)){d=0}else{i=r;return}while(1){u=q+(m*12|0)|0;k=(d|0)<(e|0)?d&255:0;a[q+(m*12|0)+2|0]=k;n=q+(m*12|0)+3|0;if((f|0)==1){a[n]=-1;a[u|0]=1;a[q+(m*12|0)+1|0]=0}else{a[n]=k;a[u|0]=1;a[q+(m*12|0)+1|0]=1}g=q+(m*12|0)+4|0;h=g|0;C=0;b[h>>1]=C;b[h+2>>1]=C>>16;g=g+4|0;C=0;b[g>>1]=C;b[g+2>>1]=C>>16;m=m+1|0;if((m|0)>=(p|0)){break}d=d+1|0;f=c[t>>2]|0}c[s>>2]=m;i=r;return}function Fi(f,g,h,j,k,l,m,n,o,p,q,r,s,t,u){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;u=u|0;var v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;D=i;i=i+32|0;S=D|0;R=D+8|0;Q=D+16|0;U=D+24|0;T=U;x=i;i=i+12|0;i=i+7&-8;y=i;i=i+12|0;i=i+7&-8;w=i;i=i+3|0;i=i+7&-8;z=i;i=i+4|0;i=i+7&-8;v=z;E=t+1|0;a[E]=0;V=m-1|0;c[S>>2]=V;A=p+n|0;c[R>>2]=A;c[S+4>>2]=V;L=A-1|0;c[R+4>>2]=L;a[t]=0;b[u>>1]=0;b[u+2>>1]=0;A=ci(g,j,k,l,m,n,o,p,s,V,A)|0;P=A&1;a[Q|0]=P;L=ci(g,j,k,l,m,n,o,p,s,V,L)|0;a[Q+1|0]=L&1;L=A|L;A=f;B=h+916+(q<<6)+(r<<2)|0;F=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[B>>2]|0)|0;if((F|0)==0){i=D;return}H=c[F+92>>2]|0;W=g+10368|0;Z=g+10372|0;Y=g+10376|0;X=g+10360|0;G=1-q|0;I=g+10388|0;J=g+10392|0;K=g+10396|0;F=g+10380|0;M=u;N=0;O=-1;a:while(1){b:do{if(P<<24>>24==0){$=O}else{if((a[t]|0)!=0){$=O;break}_=c[S+(N<<2)>>2]|0;P=c[R+(N<<2)>>2]|0;ba=c[W>>2]|0;aa=_>>ba;ba=P>>ba;if(!((aa|0)>-1)){_=8;break a}$=c[Z>>2]|0;if((aa|0)>=($|0)){_=8;break a}if(!((ba|0)>-1)){_=11;break a}if((ba|0)>=(c[Y>>2]|0)){_=11;break a}ea=(ga($,ba)|0)+aa|0;ea=(c[X>>2]|0)+(ea*3|0)|0;if(((d[ea]|d[ea+1|0]<<8)<<16>>16&768)==0){$=O;break}ea=c[I>>2]|0;_=_>>ea;P=P>>ea;if(!((_|0)>-1)){_=15;break a}$=c[J>>2]|0;if((_|0)>=($|0)){_=15;break a}if(!((P|0)>-1)){_=18;break a}if((P|0)>=(c[K>>2]|0)){_=18;break a}aa=(ga($,P)|0)+_|0;$=c[F>>2]|0;_=$+(aa*12|0)+q|0;if((a[_]|0)==0){ba=0}else{ba=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(q<<6)+(a[$+(aa*12|0)+2+q|0]<<2)>>2]|0)|0}ca=$+(aa*12|0)+G|0;if((a[ca]|0)==0){P=0}else{P=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(G<<6)+(a[$+(aa*12|0)+2+G|0]<<2)>>2]|0)|0}do{if(!((a[_]|0)==0|(ba|0)==0)){if((c[ba+92>>2]|0)!=(H|0)){break}a[t]=1;ea=$+(aa*12|0)+4+(q<<2)|0;C=e[ea>>1]|e[ea+2>>1]<<16;b[M>>1]=C;b[M+2>>1]=C>>16;$=a[$+(aa*12|0)+2+q|0]|0;break b}}while(0);if((a[ca]|0)==0|(P|0)==0){$=O;break}if((c[P+92>>2]|0)!=(H|0)){$=O;break}a[t]=1;ea=$+(aa*12|0)+4+(G<<2)|0;C=e[ea>>1]|e[ea+2>>1]<<16;b[M>>1]=C;b[M+2>>1]=C>>16;$=a[$+(aa*12|0)+2+G|0]|0}}while(0);P=N+1|0;if((P|0)>=2){_=3;break}N=P;O=$;P=a[Q+P|0]|0}if((_|0)==3){N=h+1300+(q<<4)+r|0;r=g+92|0;O=f+4|0;P=g+10516|0;_=0;c:while(1){if((a[t]|0)!=0){_=62;break}d:do{if((a[Q+_|0]|0)==0){aa=-1}else{ba=c[S+(_<<2)>>2]|0;aa=c[R+(_<<2)>>2]|0;da=c[W>>2]|0;ea=ba>>da;da=aa>>da;if(!((ea|0)>-1)){_=35;break c}ca=c[Z>>2]|0;if((ea|0)>=(ca|0)){_=35;break c}if(!((da|0)>-1)){_=38;break c}if((da|0)>=(c[Y>>2]|0)){_=38;break c}ea=(ga(ca,da)|0)+ea|0;ea=(c[X>>2]|0)+(ea*3|0)|0;if(((d[ea]|d[ea+1|0]<<8)<<16>>16&768)==0){aa=-1;break}ca=c[I>>2]|0;ba=ba>>ca;ca=aa>>ca;if(!((ba|0)>-1)){_=42;break c}aa=c[J>>2]|0;if((ba|0)>=(aa|0)){_=42;break c}if(!((ca|0)>-1)){_=45;break c}if((ca|0)>=(c[K>>2]|0)){_=45;break c}ba=(ga(aa,ca)|0)+ba|0;aa=c[F>>2]|0;do{if((a[aa+(ba*12|0)+q|0]|0)==1){ca=aa+(ba*12|0)+2+q|0;if((a[N]|0)!=(a[(a[ca]|0)+(h+1300+(q<<4))|0]|0)){break}a[t]=1;$=aa+(ba*12|0)+4+(q<<2)|0;C=e[$>>1]|e[$+2>>1]<<16;b[M>>1]=C;b[M+2>>1]=C>>16;$=a[ca]|0;aa=q;break d}}while(0);if((a[aa+(ba*12|0)+G|0]|0)!=1){aa=-1;break}ca=aa+(ba*12|0)+2+G|0;if((a[N]|0)!=(a[(a[ca]|0)+(h+1300+(G<<4))|0]|0)){aa=-1;break}a[t]=1;$=aa+(ba*12|0)+4+(G<<2)|0;C=e[$>>1]|e[$+2>>1]<<16;b[M>>1]=C;b[M+2>>1]=C>>16;$=a[ca]|0;aa=G}}while(0);do{if((a[t]|0)==1){if(($|0)<0){_=54;break c}if(!((aa|0)>-1)){_=56;break c}ba=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(aa<<6)+($<<2)>>2]|0)|0;Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[B>>2]|0)|0;if((a[h+1300+(aa<<4)+$|0]|0)!=0){break}if((a[N]|0)!=0){break}ea=c[r>>2]|0;da=ea-(c[ba+92>>2]|0)|0;c[U>>2]=e[M>>1]|e[M+2>>1]<<16;if(Ai(u,T,da,ea-H|0)|0){break}Ue(O,1008,0);a[P]=3}}while(0);_=_+1|0;if((_|0)>=2){_=62;break}}if((_|0)==35){ec(1232,544,118,17296)}else if((_|0)==38){ec(17016,544,119,17296)}else if((_|0)==42){ec(1232,544,118,17296)}else if((_|0)==45){ec(17016,544,119,17296)}else if((_|0)==54){a[E]=0;a[t]=0;i=D;return}else if((_|0)==56){ec(5136,15536,1698,18112)}else if((_|0)==62){ea=o+m|0;c[x>>2]=ea;U=n-1|0;c[y>>2]=U;c[x+4>>2]=ea-1;c[y+4>>2]=U;c[x+8>>2]=V;c[y+8>>2]=U;a[E]=0;Q=u+4|0;b[Q>>1]=0;b[u+6>>1]=0;u=Q;R=0;S=-1;V=ea;e:while(1){ea=ci(g,j,k,l,m,n,o,p,s,V,U)|0;a[w+R|0]=ea&1;f:do{if(ea){if((a[E]|0)!=0){break}ea=c[I>>2]|0;T=V>>ea;U=U>>ea;if(!((T|0)>-1)){_=67;break e}V=c[J>>2]|0;if((T|0)>=(V|0)){_=67;break e}if(!((U|0)>-1)){_=70;break e}if((U|0)>=(c[K>>2]|0)){_=70;break e}X=(ga(V,U)|0)+T|0;Y=c[F>>2]|0;W=Y+(X*12|0)+q|0;if((a[W]|0)==0){V=0}else{V=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(q<<6)+(a[Y+(X*12|0)+2+q|0]<<2)>>2]|0)|0}U=Y+(X*12|0)+G|0;if((a[U]|0)==0){T=0}else{T=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(G<<6)+(a[Y+(X*12|0)+2+G|0]<<2)>>2]|0)|0}do{if(!((a[W]|0)==0|(V|0)==0)){if((c[V+92>>2]|0)!=(H|0)){break}a[E]=1;S=Y+(X*12|0)+4+(q<<2)|0;C=e[S>>1]|e[S+2>>1]<<16;b[u>>1]=C;b[u+2>>1]=C>>16;S=a[Y+(X*12|0)+2+q|0]|0;break f}}while(0);if((a[U]|0)==0|(T|0)==0){break}if((c[T+92>>2]|0)!=(H|0)){break}a[E]=1;S=Y+(X*12|0)+4+(G<<2)|0;C=e[S>>1]|e[S+2>>1]<<16;b[u>>1]=C;b[u+2>>1]=C>>16;S=a[Y+(X*12|0)+2+G|0]|0}}while(0);T=R+1|0;if((T|0)>=3){_=83;break}R=T;V=c[x+(T<<2)>>2]|0;U=c[y+(T<<2)>>2]|0}if((_|0)==67){ec(1232,544,118,17296)}else if((_|0)==70){ec(17016,544,119,17296)}else if((_|0)==83){if(L){i=D;return}if((a[E]|0)!=0){a[t]=1;C=e[u>>1]|e[u+2>>1]<<16;b[M>>1]=C;b[M+2>>1]=C>>16}a[E]=0;g=g+10332|0;L=0;l=1;g:while(1){if(!l){_=115;break}h:do{if((a[w+L|0]|0)==0){l=-1}else{m=c[I>>2]|0;n=c[x+(L<<2)>>2]>>m;m=c[y+(L<<2)>>2]>>m;if(!((n|0)>-1)){_=91;break g}l=c[J>>2]|0;if((n|0)>=(l|0)){_=91;break g}if(!((m|0)>-1)){_=94;break g}if((m|0)>=(c[K>>2]|0)){_=94;break g}l=(ga(l,m)|0)+n|0;m=c[F>>2]|0;do{if((a[m+(l*12|0)+q|0]|0)==1){n=m+(l*12|0)+2+q|0;if((a[N]|0)!=(a[(a[n]|0)+(h+1300+(q<<4))|0]|0)){break}a[E]=1;S=m+(l*12|0)+4+(q<<2)|0;C=e[S>>1]|e[S+2>>1]<<16;b[u>>1]=C;b[u+2>>1]=C>>16;S=a[n]|0;l=q;break h}}while(0);if((a[m+(l*12|0)+G|0]|0)!=1){l=-1;break}n=m+(l*12|0)+2+G|0;if((a[N]|0)!=(a[(a[n]|0)+(h+1300+(G<<4))|0]|0)){l=-1;break}a[E]=1;S=m+(l*12|0)+4+(G<<2)|0;C=e[S>>1]|e[S+2>>1]<<16;b[u>>1]=C;b[u+2>>1]=C>>16;S=a[n]|0;l=G}}while(0);do{if((a[E]|0)==1){if((S|0)<0){_=103;break g}if(!((l|0)>-1)){_=105;break g}if(!((S|0)>-1)){_=107;break g}n=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[h+916+(l<<6)+(S<<2)>>2]|0)|0;m=Qc[c[(c[A>>2]|0)+8>>2]&63](f,c[B>>2]|0)|0;if((n|0)==0|(m|0)==0){Ue((c[g>>2]|0)+4|0,1012,0);a[P]=3;break}n=c[n+92>>2]|0;if(!((n|0)!=(c[m+92>>2]|0)&(a[h+1300+(l<<4)+S|0]|0)==0&(a[N]|0)==0)){break}ea=c[r>>2]|0;c[z>>2]=e[u>>1]|e[u+2>>1]<<16;if(Ai(Q,v,ea-n|0,ea-H|0)|0){break}Ue(O,1008,0);a[P]=3}}while(0);L=L+1|0;if((L|0)>=3){_=115;break}l=(a[E]|0)==0}if((_|0)==91){ec(1232,544,118,17296)}else if((_|0)==94){ec(17016,544,119,17296)}else if((_|0)==103){a[E]=0;a[t]=0;i=D;return}else if((_|0)==105){ec(5136,15536,1839,18112)}else if((_|0)==107){ec(3656,15536,1840,18112)}else if((_|0)==115){i=D;return}}}}else if((_|0)==8){ec(1232,544,118,17296)}else if((_|0)==11){ec(17016,544,119,17296)}else if((_|0)==15){ec(1232,544,118,17296)}else if((_|0)==18){ec(17016,544,119,17296)}}function Gi(d,e,f,g,h,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;s=i;i=i+32|0;w=s|0;v=s+8|0;u=s+16|0;t=s+24|0;x=t;z=w|0;Fi(d,f,e,g,h,j,k,l,m,n,o,p,q,z,v|0);q=(a[z]|0)==0;do{if(q){y=6}else{if((a[w+1|0]|0)==0){y=6;break}if((b[v>>1]|0)==(b[v+4>>1]|0)){if((b[v+2>>1]|0)==(b[v+6>>1]|0)){y=6;break}}a[u]=0}}while(0);if((y|0)==6){Ci(d,f,e,k,l,m,n,p,o,x,u)}if(q){m=0}else{m=r;C=c[v>>2]|0;b[m>>1]=C;b[m+2>>1]=C>>16;m=1}a:do{if((a[w+1|0]|0)!=0){do{if(!q){if((b[v>>1]|0)!=(b[v+4>>1]|0)){break}if((b[v+2>>1]|0)==(b[v+6>>1]|0)){break a}}}while(0);z=r+(m<<2)|0;C=c[v+4>>2]|0;b[z>>1]=C;b[z+2>>1]=C>>16;m=m+1|0}}while(0);if((a[u]|0)!=0){z=r+(m<<2)|0;C=c[t>>2]|0;b[z>>1]=C;b[z+2>>1]=C>>16;m=m+1|0}if((m|0)<2){do{b[r+(m<<2)>>1]=0;b[r+(m<<2)+2>>1]=0;m=m+1|0;}while((m|0)<2);i=s;return}if((m|0)==2){i=s;return}else{ec(2360,15536,1943,18152)}}function Hi(f,g,h,j,k,l,m,n,o,p,q,r,s){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;t=i;i=i+80|0;u=t|0;w=t+8|0;v=t+72|0;m=m+k|0;n=n+l|0;z=c[h+10368>>2]|0;x=k>>z;z=l>>z;if(!((x|0)>-1)){ec(1232,544,118,17296)}y=c[h+10372>>2]|0;if((x|0)>=(y|0)){ec(1232,544,118,17296)}if(!((z|0)>-1)){ec(17016,544,119,17296)}if((z|0)>=(c[h+10376>>2]|0)){ec(17016,544,119,17296)}x=(ga(y,z)|0)+x|0;x=(c[h+10360>>2]|0)+(x*3|0)|0;x=((d[x]|d[x+1|0]<<8)<<16>>16&65535)>>>8&255&3;if((x|0)==1){y=j+10|0;x=a[y]|0;if((x&16)==0){z=11}else{z=12}}else if((x|0)==2){x=a[j+10|0]|0;z=12}else{y=j+10|0;z=11}if((z|0)==11){w=u|0;x=0;do{z=a[y]&3;if((z<<24>>24|0)==3){z=20}else if((z<<24>>24|0)==2){if((x|0)==1){z=20}else{z=19}}else if((z<<24>>24|0)==1){if((x|0)==0){z=20}else{z=19}}else{z=19}if((z|0)==19){a[s+2+x|0]=-1;a[s+x|0]=0}else if((z|0)==20){B=a[j+x|0]|0;a[s+2+x|0]=B;a[s+x|0]=1;z=b[j+2+(x<<2)+2>>1]|0;A=e[j+2+(x<<2)>>1]|0;Gi(f,g,h,k,l,o,m,n,p,q,x,B<<24>>24,r,w);D=u+(((d[y]|0)>>>(((x|0)!=0?3:2)>>>0)&1)<<2)|0;D=e[D>>1]|e[D+2>>1]<<16;B=v+(x<<2)|0;C=D;b[B>>1]=C;b[B+2>>1]=C>>16;B=(b[v+(x<<2)+2>>1]|0)+z&65535;b[s+4+(x<<2)>>1]=D+A;b[s+4+(x<<2)+2>>1]=B}x=x+1|0;}while((x|0)<2);i=t;return}else if((z|0)==12){B=(x&255)>>>5&255;Ei(f,g,h,k,l,m,n,o,p,q,r,B,w|0);D=s|0;B=w+(B*12|0)|0;b[D>>1]=b[B>>1]|0;b[D+2>>1]=b[B+2>>1]|0;b[D+4>>1]=b[B+4>>1]|0;b[D+6>>1]=b[B+6>>1]|0;b[D+8>>1]=b[B+8>>1]|0;b[D+10>>1]=b[B+10>>1]|0;if((a[D]|0)==0){i=t;return}l=s+1|0;if((a[l]|0)==0){i=t;return}if((q+p|0)!=12){i=t;return}a[s+3|0]=-1;a[l]=0;i=t;return}}function Ii(a,b,c,d,e,f,g,h,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0;n=i;i=i+16|0;o=n|0;Hi(a,b,c,d,e,f,g,h,j,k,l,m,o);ui(a,b,c,e,f,g,h,j,k,l,o);ai(c,g+e|0,h+f|0,k,l,o);i=n;return}function Ji(b,c){b=b|0;c=c|0;var d=0;od(c,1);d=(nd(c,6)|0)&255;a[b|0]=d;d=(nd(c,6)|0)&255;a[b+1|0]=d;c=(nd(c,3)|0)+255&255;a[b+2|0]=c;return}function Ki(a){a=a|0;return(a-19&255)>>>0<2>>>0|0}function Li(a){a=a|0;return(a-16&255)>>>0<3>>>0|0}function Mi(a){a=a|0;return(a&-2)<<24>>24==8|0}function Ni(a){a=a|0;return(a-16&255)>>>0<8>>>0|0}function Oi(a){a=a|0;return(a&-2)<<24>>24==6|0}function Pi(a){a=a|0;switch(a&255|0){case 0:case 2:case 4:case 6:case 8:case 10:case 12:case 14:{a=1;break};default:{a=0}}return a|0}function Qi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a+32>>2]|0;a=(c[a+36>>2]|0)-e>>2;while(1){f=a-1|0;if(!((f|0)>-1)){a=0;d=4;break}if(((c[e+(f<<2)>>2]|0)-d|0)>(b|0)){a=f}else{d=4;break}}if((d|0)==4){return a|0}return 0}function Ri(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;i=i+8|0;f=h|0;k=b+24|0;o=c[k>>2]|0;if((o-2|0)<=0){i=h;return}j=b+36|0;e=b+32|0;g=b+40|0;d=b+32|0;b=c[b+20>>2]|0;l=0;while(1){m=b+2|0;p=a[m]|0;do{if((p<<24>>24|0)==3|(p<<24>>24|0)==0){if((a[b]|0)!=0){break}n=b+1|0;if(!((a[n]|0)==0&p<<24>>24==3)){break}p=c[j>>2]|0;o=l+2+(p-(c[e>>2]|0)>>2)|0;c[f>>2]=o;if((p|0)==(c[g>>2]|0)){fj(d,f)}else{if((p|0)!=0){c[p>>2]=o}c[j>>2]=p+4}fv(m|0,b+3|0,-3-l+(c[k>>2]|0)|0)|0;o=(c[k>>2]|0)-1|0;c[k>>2]=o;l=l+1|0;b=n}else{l=l+2|0;b=m}}while(0);l=l+1|0;if((l|0)<(o-2|0)){b=b+1|0}else{break}}i=h;return}function Si(b){b=b|0;a[b|0]=0;a[b+1|0]=0;dv(b+4|0,0,48)|0;return}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=a+32|0;b=a+16|0;f=a+28|0;e=a+36|0;while(1){h=c[g>>2]|0;if((h|0)==0){break}d=c[b>>2]|0;j=c[f>>2]|0;i=c[(c[d+(j>>>10<<2)>>2]|0)+((j&1023)<<2)>>2]|0;c[g>>2]=h-1;j=j+1|0;c[f>>2]=j;if(j>>>0>2047>>>0){Pu(c[d>>2]|0);c[b>>2]=(c[b>>2]|0)+4;c[f>>2]=(c[f>>2]|0)-1024}c[e>>2]=(c[e>>2]|0)-(c[i+24>>2]|0);if((i|0)==0){break}Vi(a,i)}d=c[a+8>>2]|0;if((d|0)!=0){Vi(a,d)}d=a+44|0;i=c[d>>2]|0;e=a+40|0;h=c[e>>2]|0;if((i|0)==(h|0)){e=i;g=i}else{f=0;while(1){g=c[h+(f<<2)>>2]|0;if((g|0)==0){g=h}else{Hu(c[g+20>>2]|0);h=c[g+32>>2]|0;if((h|0)!=0){i=g+36|0;j=c[i>>2]|0;if((j|0)!=(h|0)){c[i>>2]=j+(~((j-4+(-h|0)|0)>>>2)<<2)}Pu(h)}Pu(g|0);i=c[d>>2]|0;g=c[e>>2]|0}f=f+1|0;h=g;if(f>>>0<i-h>>2>>>0){h=g}else{e=i;break}}}if((g|0)!=0){if((e|0)!=(g|0)){c[d>>2]=e+(~((e-4+(-h|0)|0)>>>2)<<2)}Pu(g)}d=a+12|0;gj(d|0);f=c[b>>2]|0;a=a+20|0;e=c[a>>2]|0;do{if((f|0)!=(e|0)){do{Pu(c[f>>2]|0);f=f+4|0;}while((f|0)!=(e|0));e=c[b>>2]|0;b=c[a>>2]|0;if((b|0)==(e|0)){break}c[a>>2]=b+(~((b-4+(-e|0)|0)>>>2)<<2)}}while(0);b=c[d>>2]|0;if((b|0)==0){return}Pu(b);return}function Ui(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;d=a+32|0;b=c[d>>2]|0;if((b|0)==0){h=0;return h|0}g=a+16|0;h=c[g>>2]|0;f=a+28|0;i=c[f>>2]|0;e=c[(c[h+(i>>>10<<2)>>2]|0)+((i&1023)<<2)>>2]|0;c[d>>2]=b-1;d=i+1|0;c[f>>2]=d;if(d>>>0>2047>>>0){Pu(c[h>>2]|0);c[g>>2]=(c[g>>2]|0)+4;c[f>>2]=(c[f>>2]|0)-1024}i=a+36|0;c[i>>2]=(c[i>>2]|0)-(c[e+24>>2]|0);i=e;return i|0}function Vi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+8|0;h=d|0;c[h>>2]=b;if((b|0)==0){i=d;return}f=a+40|0;e=a+44|0;g=c[e>>2]|0;if(!(g-(c[f>>2]|0)>>2>>>0<16>>>0)){Hu(c[b+20>>2]|0);e=c[b+32>>2]|0;if((e|0)!=0){a=b+36|0;f=c[a>>2]|0;if((f|0)!=(e|0)){c[a>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2)}Pu(e)}Pu(b|0);i=d;return}if((g|0)==(c[a+48>>2]|0)){ej(f,h);i=d;return}if((g|0)==0){b=0}else{c[g>>2]=b;b=c[e>>2]|0}c[e>>2]=b+4;i=d;return}function Wi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+44|0;e=c[f>>2]|0;if((e|0)==(c[b+40>>2]|0)){f=Nu(48)|0;a[f]=0;a[f+1|0]=0;a[f+2|0]=0;i=f+32|0;c[i>>2]=0;h=f+36|0;c[h>>2]=0;j=f+40|0;c[j>>2]=0;e=Nu(64)|0;g=e;c[h>>2]=g;c[i>>2]=g;i=e+64|0;c[j>>2]=i;if((e|0)!=0){c[g>>2]=0}dv(e+4|0,0,60)|0;c[h>>2]=i;dv(f+8|0,0,24)|0}else{i=e-4|0;j=c[i>>2]|0;c[f>>2]=e+(~((i+(-i|0)|0)>>>2)<<2);f=j}a[f|0]=0;a[f+1|0]=0;a[f+2|0]=0;e=f+8|0;c[e>>2]=0;c[e+4>>2]=0;c[f+16>>2]=0;e=f+24|0;c[e>>2]=0;h=c[f+32>>2]|0;g=f+36|0;i=c[g>>2]|0;if((i|0)!=(h|0)){c[g>>2]=i+(~((i-4+(-h|0)|0)>>>2)<<2)}h=f+28|0;if((c[h>>2]|0)>=(d|0)){j=f;return j|0}g=Gu(d)|0;if((g|0)==0){Vi(b,f);j=0;return j|0}b=f+20|0;i=c[b>>2]|0;if((i|0)!=0){cv(g|0,i|0,c[e>>2]|0)|0;Hu(i)}c[b>>2]=g;c[h>>2]=d;j=f;return j|0}function Xi(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;j=i;i=i+8|0;k=j|0;a[b+1|0]=0;m=b+8|0;v=c[m>>2]|0;l=e+3|0;do{if((v|0)==0){n=Wi(b,l)|0;c[m>>2]=n;if((n|0)==0){B=7;i=j;return B|0}else{v=n+8|0;c[v>>2]=f;c[v+4>>2]=g;c[n+16>>2]=h;v=c[m>>2]|0;break}}}while(0);q=v+24|0;p=c[q>>2]|0;n=l+p|0;o=v+28|0;if((c[o>>2]|0)<(n|0)){p=Gu(n)|0;if((p|0)==0){B=7;i=j;return B|0}s=v+20|0;r=c[s>>2]|0;if((r|0)!=0){cv(p|0,r|0,c[q>>2]|0)|0;Hu(r)}c[s>>2]=p;c[o>>2]=n;n=c[q>>2]|0}else{n=p;p=c[v+20>>2]|0}x=p+n|0;do{if((e|0)>0){t=b+4|0;q=b+12|0;p=b+20|0;o=b+16|0;n=b+28|0;s=b+32|0;r=b+36|0;u=1;a:while(1){w=c[t>>2]|0;b:do{switch(w|0){case 3:{a[x]=a[d]|0;c[t>>2]=4;x=x+1|0;w=v;break};case 4:{a[x]=a[d]|0;c[t>>2]=5;x=x+1|0;w=v;break};case 5:{w=a[d]|0;if(w<<24>>24==0){c[t>>2]=6;w=v;break b}else{a[x]=w;x=x+1|0;w=v;break b}};case 0:case 1:{if((a[d]|0)==0){c[t>>2]=w+1;w=v;break b}else{c[t>>2]=0;w=v;break b}};case 2:{w=a[d]|0;if((w<<24>>24|0)==1){c[t>>2]=3;w=v;break b}else if((w<<24>>24|0)==0){w=v;break b}else{c[t>>2]=0;w=v;break b}};case 7:{w=a[d]|0;if((w<<24>>24|0)==0){a[x]=0;x=x+1|0;w=v;break b}else if((w<<24>>24|0)==3){a[x]=0;w=x+2|0;a[x+1|0]=0;c[t>>2]=5;x=v+36|0;y=c[x>>2]|0;z=(y-(c[v+32>>2]|0)>>2)+(w-(c[v+20>>2]|0))|0;c[k>>2]=z;if((y|0)==(c[v+40>>2]|0)){fj(v+32|0,k);x=w;w=v;break b}if((y|0)!=0){c[y>>2]=z}c[x>>2]=y+4;x=w;w=v;break b}else if((w<<24>>24|0)==1){w=v+24|0;c[w>>2]=x-(c[v+20>>2]|0);y=c[p>>2]|0;z=c[o>>2]|0;if((y|0)==(z|0)){B=0}else{B=(y-z<<8)-1|0}A=c[n>>2]|0;x=c[s>>2]|0;if((B-A|0)==(x|0)){$i(q);x=c[s>>2]|0;A=c[n>>2]|0;z=c[o>>2]|0;y=c[p>>2]|0}A=x+A|0;do{if((y|0)!=(z|0)){y=(c[z+(A>>>10<<2)>>2]|0)+((A&1023)<<2)|0;if((y|0)==0){break}c[y>>2]=v}}while(0);c[s>>2]=x+1;c[r>>2]=(c[r>>2]|0)+(c[w>>2]|0);v=Wi(b,l)|0;c[m>>2]=v;if((v|0)==0){k=7;e=48;break a}w=v+8|0;c[w>>2]=f;c[w+4>>2]=g;c[v+16>>2]=h;w=c[m>>2]|0;x=c[w+20>>2]|0;c[t>>2]=3;break b}else{a[x]=0;a[x+1|0]=0;a[x+2|0]=a[d]|0;c[t>>2]=5;x=x+3|0;w=v;break b}};case 6:{if((a[d]|0)==0){c[t>>2]=7;w=v;break b}else{a[x]=0;a[x+1|0]=a[d]|0;c[t>>2]=5;x=x+2|0;w=v;break b}};default:{w=v}}}while(0);if((u|0)>=(e|0)){e=46;break}d=d+1|0;v=w;u=u+1|0}if((e|0)==46){v=w;p=c[w+20>>2]|0;break}else if((e|0)==48){i=j;return k|0}}}while(0);c[v+24>>2]=x-p;B=0;i=j;return B|0}function Yi(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if((c[b+8>>2]|0)!=0){ec(6496,15256,375,17864);return 0}a[b+1|0]=0;i=Wi(b,e)|0;do{if((i|0)!=0){m=i+28|0;if((c[m>>2]|0)<(e|0)){k=Gu(e)|0;if((k|0)==0){break}j=i+20|0;l=c[j>>2]|0;if((l|0)!=0){cv(k|0,l|0,c[i+24>>2]|0)|0;Hu(l)}c[j>>2]=k;c[m>>2]=e}else{k=c[i+20>>2]|0}cv(k|0,d|0,e)|0;d=i+24|0;c[d>>2]=e;j=i+8|0;c[j>>2]=f;c[j+4>>2]=g;c[i+16>>2]=h;Ri(i);g=b+20|0;f=c[g>>2]|0;j=b+16|0;k=c[j>>2]|0;if((f|0)==(k|0)){n=0}else{n=(f-k<<8)-1|0}l=b+28|0;m=c[l>>2]|0;h=b+32|0;e=c[h>>2]|0;if((n-m|0)==(e|0)){$i(b+12|0);e=c[h>>2]|0;m=c[l>>2]|0;k=c[j>>2]|0;f=c[g>>2]|0}g=e+m|0;do{if((f|0)!=(k|0)){f=(c[k+(g>>>10<<2)>>2]|0)+((g&1023)<<2)|0;if((f|0)==0){break}c[f>>2]=i}}while(0);c[h>>2]=e+1;n=b+36|0;c[n>>2]=(c[n>>2]|0)+(c[d>>2]|0);n=0;return n|0}}while(0);Vi(b,i);n=7;return n|0}function Zi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=b+8|0;d=c[f>>2]|0;if((d|0)==0){o=0;return o|0}e=b+4|0;g=c[e>>2]|0;if((g|0)==6){g=d+24|0;l=c[g>>2]|0;j=l+1|0;k=d+28|0;if((c[k>>2]|0)<(j|0)){h=Gu(j)|0;if((h|0)==0){o=7;return o|0}i=d+20|0;m=c[i>>2]|0;if((m|0)!=0){cv(h|0,m|0,l)|0;Hu(m);l=c[g>>2]|0}c[i>>2]=h;c[k>>2]=j}else{h=c[d+20>>2]|0}a[h+l|0]=0;c[g>>2]=(c[g>>2]|0)+1;g=c[e>>2]|0}if((g|0)==7){g=d+24|0;l=c[g>>2]|0;k=l+2|0;i=d+28|0;if((c[i>>2]|0)<(k|0)){h=Gu(k)|0;if((h|0)==0){o=7;return o|0}j=d+20|0;m=c[j>>2]|0;if((m|0)!=0){cv(h|0,m|0,l)|0;Hu(m);l=c[g>>2]|0}c[j>>2]=h;c[i>>2]=k}else{h=c[d+20>>2]|0}o=h+l|0;C=0;a[o]=C;C=C>>8;a[o+1|0]=C;c[g>>2]=(c[g>>2]|0)+2;g=c[e>>2]|0}if((g|0)>4){j=b+20|0;i=c[j>>2]|0;l=b+16|0;k=c[l>>2]|0;if((i|0)==(k|0)){o=0}else{o=(i-k<<8)-1|0}n=b+28|0;m=c[n>>2]|0;g=b+32|0;h=c[g>>2]|0;if((o-m|0)==(h|0)){$i(b+12|0);h=c[g>>2]|0;m=c[n>>2]|0;k=c[l>>2]|0;i=c[j>>2]|0}j=h+m|0;do{if((i|0)!=(k|0)){i=(c[k+(j>>>10<<2)>>2]|0)+((j&1023)<<2)|0;if((i|0)==0){break}c[i>>2]=d}}while(0);c[g>>2]=h+1;o=b+36|0;c[o>>2]=(c[o>>2]|0)+(c[d+24>>2]|0);c[f>>2]=0}c[e>>2]=0;o=0;return o|0}function _i(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=a+8|0;b=c[d>>2]|0;if((b|0)!=0){Vi(a,b);c[d>>2]=0}e=a+32|0;g=c[e>>2]|0;if((g|0)==0){i=a+36|0;h=a+4|0;c[h>>2]=0;c[i>>2]=0;return}d=a+16|0;b=a+28|0;f=a+36|0;while(1){i=c[d>>2]|0;j=c[b>>2]|0;h=c[(c[i+(j>>>10<<2)>>2]|0)+((j&1023)<<2)>>2]|0;c[e>>2]=g-1;g=j+1|0;c[b>>2]=g;if(g>>>0>2047>>>0){Pu(c[i>>2]|0);c[d>>2]=(c[d>>2]|0)+4;c[b>>2]=(c[b>>2]|0)-1024}c[f>>2]=(c[f>>2]|0)-(c[h+24>>2]|0);if((h|0)==0){b=10;break}Vi(a,h);g=c[e>>2]|0;if((g|0)==0){b=10;break}}if((b|0)==10){j=a+4|0;c[j>>2]=0;c[f>>2]=0;return}}function $i(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=i;i=i+48|0;m=b|0;l=b+8|0;h=b+16|0;j=b+40|0;e=a+16|0;d=c[e>>2]|0;if(d>>>0>1023>>>0){c[e>>2]=d-1024;g=a+4|0;j=c[g>>2]|0;e=c[j>>2]|0;m=j+4|0;c[g>>2]=m;d=a+8|0;h=c[d>>2]|0;f=a+12|0;do{if((h|0)==(c[f>>2]|0)){a=a|0;n=c[a>>2]|0;if(m>>>0>n>>>0){q=m;f=((q-n>>2)+1|0)/-2|0;h=h-q|0;fv(j+(f+1<<2)|0,m|0,h|0)|0;h=j+((h>>2)+1+f<<2)|0;c[d>>2]=h;c[g>>2]=(c[g>>2]|0)+(f<<2);f=13;break}j=h-n>>1;j=(j|0)==0?1:j;l=Nu(j<<2)|0;k=l+(j>>>2<<2)|0;j=l+(j<<2)|0;if((m|0)==(h|0)){h=k}else{n=k;do{if((n|0)==0){n=0}else{c[n>>2]=c[m>>2]}n=n+4|0;m=m+4|0;}while((m|0)!=(h|0));h=n;n=c[a>>2]|0}c[a>>2]=l;c[g>>2]=k;c[d>>2]=h;c[f>>2]=j;if((n|0)==0){f=12;break}Pu(n);h=c[d>>2]|0;f=12}else{f=12}}while(0);if((f|0)==12){if((h|0)==0){e=0}else{f=13}}if((f|0)==13){c[h>>2]=e;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}p=a|0;d=a+8|0;n=c[d>>2]|0;f=a+4|0;k=n-(c[f>>2]|0)>>2;e=a+12|0;o=c[e>>2]|0;g=a|0;q=o-(c[g>>2]|0)|0;if(!(k>>>0<q>>2>>>0)){l=q>>1;q=(l|0)==0?1:l;l=h+12|0;c[h+16>>2]=a+12;p=Nu(q<<2)|0;m=h|0;c[m>>2]=p;o=p+(k<<2)|0;a=h+8|0;c[a>>2]=o;k=h+4|0;c[k>>2]=o;c[l>>2]=p+(q<<2);q=Nu(4096)|0;c[j>>2]=q;cj(h,j);j=c[d>>2]|0;while(1){if((j|0)==(c[f>>2]|0)){break}q=j-4|0;dj(h,q);j=q}h=c[g>>2]|0;c[g>>2]=c[m>>2];c[m>>2]=h;c[f>>2]=c[k>>2];c[k>>2]=j;f=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=f;q=c[e>>2]|0;c[e>>2]=c[l>>2];c[l>>2]=q;if((f|0)!=(j|0)){c[a>>2]=f+(~((f-4+(-j|0)|0)>>>2)<<2)}if((h|0)==0){i=b;return}Pu(h);i=b;return}a=Nu(4096)|0;if((o|0)!=(n|0)){c[m>>2]=a;aj(p,m);i=b;return}c[l>>2]=a;bj(p,l);h=c[f>>2]|0;a=c[h>>2]|0;n=h+4|0;c[f>>2]=n;l=c[d>>2]|0;do{if((l|0)==(c[e>>2]|0)){m=c[g>>2]|0;if(n>>>0>m>>>0){p=n;q=((p-m>>2)+1|0)/-2|0;l=l-p|0;fv(h+(q+1<<2)|0,n|0,l|0)|0;l=h+((l>>2)+1+q<<2)|0;c[d>>2]=l;c[f>>2]=(c[f>>2]|0)+(q<<2);f=29;break}h=l-m>>1;h=(h|0)==0?1:h;k=Nu(h<<2)|0;j=k+(h>>>2<<2)|0;h=k+(h<<2)|0;if((n|0)==(l|0)){l=j}else{m=j;do{if((m|0)==0){m=0}else{c[m>>2]=c[n>>2]}m=m+4|0;n=n+4|0;}while((n|0)!=(l|0));l=m;m=c[g>>2]|0}c[g>>2]=k;c[f>>2]=j;c[d>>2]=l;c[e>>2]=h;if((m|0)==0){f=28;break}Pu(m);l=c[d>>2]|0;f=28}else{f=28}}while(0);if((f|0)==28){if((l|0)==0){e=0}else{f=29}}if((f|0)==29){c[l>>2]=a;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}function aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function bj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function cj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function dj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function fj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function gj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;f=c[e>>2]|0;b=a+16|0;j=c[b>>2]|0;i=f+(j>>>10<<2)|0;d=a+8|0;h=c[d>>2]|0;if((h|0)==(f|0)){g=0;j=0;a=a+20|0}else{a=a+20|0;g=j+(c[a>>2]|0)|0;g=(c[f+(g>>>10<<2)>>2]|0)+((g&1023)<<2)|0;j=(c[i>>2]|0)+((j&1023)<<2)|0}a:while(1){do{if((j|0)==(g|0)){break a}j=j+4|0;}while((j-(c[i>>2]|0)|0)!=4096);j=i+4|0;i=j;j=c[j>>2]|0}c[a>>2]=0;g=h-f>>2;if(g>>>0>2>>>0){do{Pu(c[f>>2]|0);f=(c[e>>2]|0)+4|0;c[e>>2]=f;g=(c[d>>2]|0)-f>>2;}while(g>>>0>2>>>0)}if((g|0)==2){c[b>>2]=1024;return}else if((g|0)==1){c[b>>2]=512;return}else{return}} - - - -function ff(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;j=i;i=i+40|0;l=j|0;m=j+16|0;t=j+32|0;k=l|0;c[k>>2]=0;h=l+4|0;c[h>>2]=0;o=l+8|0;c[o>>2]=0;n=f+376220|0;q=c[c[n>>2]>>2]|0;r=f+377208|0;a:do{if(Ni(a[r]|0)|0){if((a[f+376205|0]|0)==0){break}B=c[n>>2]|0;s=c[B+92>>2]|0;w=e+376156|0;A=c[w>>2]|0;x=e+376152|0;z=c[x>>2]|0;if((A-z|0)<=0){break}v=f+376156|0;u=f+376152|0;y=0;b:while(1){C=c[u>>2]|0;if((c[v>>2]|0)-C>>2>>>0>y>>>0){D=c[C+(y<<2)>>2]|0}else{D=0}do{if((c[D+96>>2]|0)!=0){if((c[D+92>>2]|0)>=(s|0)){break}C=D+104|0;if(!((c[C>>2]|0)>>>0>(c[B>>2]|0)>>>0)){break}F=c[D>>2]|0;E=c[h>>2]|0;I=c[o>>2]|0;do{if(E>>>0<I>>>0){if((E|0)!=0){c[E>>2]=F}c[h>>2]=E+4}else{D=c[k>>2]|0;J=D;E=E-J|0;H=E>>2;G=H+1|0;if(G>>>0>1073741823>>>0){break b}I=I-J|0;if(I>>2>>>0<536870911>>>0){I=I>>1;J=I>>>0<G>>>0?G:I;if((J|0)==0){I=0;J=0}else{p=20}}else{J=1073741823;p=20}if((p|0)==20){p=0;I=Nu(J<<2)|0}H=I+(H<<2)|0;if((H|0)!=0){c[H>>2]=F}F=D;cv(I|0,F|0,E)|0;c[k>>2]=I;c[h>>2]=I+(G<<2);c[o>>2]=I+(J<<2);if((D|0)==0){break}Pu(F);B=c[n>>2]|0;A=c[w>>2]|0;z=c[x>>2]|0}}while(0);c[C>>2]=c[B>>2]}}while(0);y=y+1|0;if((y|0)>=(A-z>>2|0)){break a}}Nr(0)}}while(0);if(Ki(a[r]|0)|0){dv(f+376548|0,0,20)|0}else{r=g+908|0;if((a[r]|0)==0){u=0;s=0}else{u=0;s=0;v=0;do{w=(b[g+812+(v<<1)>>1]|0)+(c[(c[n>>2]|0)+92>>2]|0)|0;if((a[g+876+v|0]|0)==0){c[f+376696+(u<<2)>>2]=w;u=u+1|0}else{c[f+376568+(s<<2)>>2]=w;s=s+1|0}v=v+1|0;}while((v|0)<(d[r]|0))}c[f+376548>>2]=s;r=g+909|0;if((a[r]|0)==0){s=0}else{s=0;v=0;do{w=(b[g+844+(v<<1)>>1]|0)+(c[(c[n>>2]|0)+92>>2]|0)|0;if((a[g+892+v|0]|0)==0){c[f+376696+(u<<2)>>2]=w;u=u+1|0}else{c[f+376632+(s<<2)>>2]=w;s=s+1|0}v=v+1|0;}while((v|0)<(d[r]|0))}c[f+376552>>2]=s;c[f+376556>>2]=u;s=g+140|0;r=g+144|0;if(((c[r>>2]|0)+(c[s>>2]|0)|0)>0){u=g+28|0;v=f+375388|0;x=0;y=0;w=0;do{A=c[f+376228+(w<<2)>>2]|0;z=g+244+w|0;if((a[z]|0)!=0){A=(c[(c[n>>2]|0)+92>>2]|0)+A-(c[u>>2]|0)-(ga(c[(c[v>>2]|0)+5032>>2]|0,c[f+376356+(w<<2)>>2]|0)|0)|0}if((c[f+376292+(w<<2)>>2]|0)==0){c[f+376824+(x<<2)>>2]=A;c[f+376484+(x<<2)>>2]=a[z]|0;x=x+1|0}else{c[f+376760+(y<<2)>>2]=A;c[f+376420+(y<<2)>>2]=a[z]|0;y=y+1|0}w=w+1|0;}while((w|0)<((c[r>>2]|0)+(c[s>>2]|0)|0))}else{x=0;y=0}c[f+376560>>2]=y;c[f+376564>>2]=x}r=e+376156|0;s=e+376152|0;v=(c[r>>2]|0)-(c[s>>2]|0)>>2;a[t]=0;sf(m,v,t);uh(e+376144|0);t=f+376560|0;v=c[t>>2]|0;if((v|0)>0){v=f+376144|0;u=c[m>>2]|0;x=f+376152|0;w=f+375388|0;y=0;while(1){z=f+376760+(y<<2)|0;A=c[z>>2]|0;if((c[f+376420+(y<<2)>>2]|0)==0){B=xh(v,A,q,1)|0}else{B=wh(v,A,q,1)|0}A=f+377080+(y<<2)|0;c[A>>2]=B;if((B|0)>-1){J=u+(B>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(B&31)}else{B=ef(e,f,c[w>>2]|0,c[z>>2]|0,1)|0;c[A>>2]=B;J=u+(B>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(B&31)}if((a[(c[(c[x>>2]|0)+(B<<2)>>2]|0)+10516|0]|0)!=0){a[(c[n>>2]|0)+10516|0]=4}y=y+1|0;z=c[t>>2]|0;if((y|0)>=(z|0)){v=z;break}}}u=f+376564|0;z=c[u>>2]|0;if((z|0)>0){v=f+376144|0;x=c[m>>2]|0;y=f+375388|0;w=0;do{z=f+376824+(w<<2)|0;A=c[z>>2]|0;if((c[f+376484+(w<<2)>>2]|0)==0){A=xh(v,A,q,1)|0}else{A=wh(v,A,q,1)|0}B=f+377144+(w<<2)|0;c[B>>2]=A;if((A|0)>-1){J=x+(A>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(A&31)}else{I=ef(e,f,c[y>>2]|0,c[z>>2]|0,1)|0;c[B>>2]=I;J=x+(I>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(I&31)}w=w+1|0;z=c[u>>2]|0;}while((w|0)<(z|0));t=c[t>>2]|0}else{t=v}if((t|0)>0){v=c[f+376152>>2]|0;u=0;do{c[(c[v+(c[f+377080+(u<<2)>>2]<<2)>>2]|0)+96>>2]=2;u=u+1|0;}while((u|0)<(t|0))}if((z|0)>0){t=c[f+376152>>2]|0;u=0;do{c[(c[t+(c[f+377144+(u<<2)>>2]<<2)>>2]|0)+96>>2]=2;u=u+1|0;}while((u|0)<(z|0))}w=f+376548|0;if((c[w>>2]|0)>0){t=f+376144|0;u=c[m>>2]|0;v=f+376152|0;y=f+375388|0;x=0;do{z=f+376568+(x<<2)|0;B=wh(t,c[z>>2]|0,q,0)|0;A=f+376888+(x<<2)|0;c[A>>2]=B;if((B|0)>-1){J=u+(B>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(B&31)}else{B=ef(e,f,c[y>>2]|0,c[z>>2]|0,0)|0;c[A>>2]=B;J=u+(B>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(B&31)}if((a[(c[(c[v>>2]|0)+(B<<2)>>2]|0)+10516|0]|0)!=0){a[(c[n>>2]|0)+10516|0]=4}x=x+1|0;}while((x|0)<(c[w>>2]|0))}y=f+376552|0;if((c[y>>2]|0)>0){u=f+376144|0;w=c[m>>2]|0;x=f+376152|0;v=f+375388|0;t=0;do{B=f+376632+(t<<2)|0;z=wh(u,c[B>>2]|0,q,0)|0;A=f+376952+(t<<2)|0;c[A>>2]=z;if((z|0)>-1){J=w+(z>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(z&31)}else{z=ef(e,f,c[v>>2]|0,c[B>>2]|0,0)|0;c[A>>2]=z;J=w+(z>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(z&31)}if((a[(c[(c[x>>2]|0)+(z<<2)>>2]|0)+10516|0]|0)!=0){a[(c[n>>2]|0)+10516|0]=4}t=t+1|0;}while((t|0)<(c[y>>2]|0))}e=f+376556|0;if((c[e>>2]|0)>0){v=f+376144|0;t=c[m>>2]|0;w=0;do{u=wh(v,c[f+376696+(w<<2)>>2]|0,q,0)|0;c[f+377016+(w<<2)>>2]=u;if((u|0)>-1){J=t+(u>>>5<<2)|0;c[J>>2]=c[J>>2]|1<<(u&31)}w=w+1|0;}while((w|0)<(c[e>>2]|0))}u=c[r>>2]|0;v=c[s>>2]|0;c:do{if((u-v|0)>0){e=c[m>>2]|0;q=f+376156|0;f=f+376152|0;t=0;d:while(1){do{if((c[e+(t>>>5<<2)>>2]&1<<(t&31)|0)==0){w=c[f>>2]|0;if((c[q>>2]|0)-w>>2>>>0>t>>>0){y=c[w+(t<<2)>>2]|0}else{y=0}x=c[n>>2]|0;if((y|0)==(x|0)){break}w=y+104|0;if(!((c[w>>2]|0)>>>0>(c[x>>2]|0)>>>0)){break}if((c[y+96>>2]|0)==0){break}B=c[y>>2]|0;z=c[h>>2]|0;D=c[o>>2]|0;do{if(z>>>0<D>>>0){if((z|0)!=0){c[z>>2]=B}c[h>>2]=z+4}else{y=c[k>>2]|0;E=y;A=z-E|0;C=A>>2;z=C+1|0;if(z>>>0>1073741823>>>0){break d}D=D-E|0;if(D>>2>>>0<536870911>>>0){D=D>>1;E=D>>>0<z>>>0?z:D;if((E|0)==0){D=0;E=0}else{p=136}}else{E=1073741823;p=136}if((p|0)==136){p=0;D=Nu(E<<2)|0}C=D+(C<<2)|0;if((C|0)!=0){c[C>>2]=B}B=y;cv(D|0,B|0,A)|0;c[k>>2]=D;c[h>>2]=D+(z<<2);c[o>>2]=D+(E<<2);if((y|0)==0){break}Pu(B);x=c[n>>2]|0;u=c[r>>2]|0;v=c[s>>2]|0}}while(0);c[w>>2]=c[x>>2]}}while(0);t=t+1|0;if((t|0)>=(u-v>>2|0)){break c}}Nr(0)}}while(0);n=g+1344|0;if((n|0)!=(l|0)){tf(n,c[k>>2]|0,c[h>>2]|0)}l=c[m>>2]|0;if((l|0)!=0){Pu(l)}k=c[k>>2]|0;if((k|0)==0){i=j;return}l=c[h>>2]|0;if((l|0)!=(k|0)){c[h>>2]=l+(~((l-4+(-k|0)|0)>>>2)<<2)}Pu(k);i=j;return}function gf(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;b=i;i=i+480|0;s=b|0;h=b+192|0;g=b+384|0;p=c[f+912>>2]|0;r=f+328|0;t=c[r>>2]|0;q=(t|0)>(p|0)?t:p;dv(g|0,0,96)|0;o=e+376548|0;n=e+376552|0;m=e+376560|0;u=(p|0)>(t|0)?p:t;k=e+376888|0;j=e+376952|0;l=e+377080|0;v=0;while(1){if((v|0)>=(q|0)){q=13;break}w=c[o>>2]|0;if((w|0)>0){x=(w|0)>1?-w|0:-1;w=v-u|0;y=x>>>0>w>>>0?x:w;cv(s+(v<<2)|0,k|0,y*-4|0)|0;v=v-y|0}w=c[n>>2]|0;if((w|0)>0&(v|0)<(q|0)){x=(w|0)>1?-w|0:-1;w=v-u|0;y=x>>>0>w>>>0?x:w;cv(s+(v<<2)|0,j|0,y*-4|0)|0;v=v-y|0}w=c[m>>2]|0;if((w|0)>0&(v|0)<(q|0)){x=(w|0)>1?-w|0:-1;w=v-u|0;y=x>>>0>w>>>0?x:w;cv(s+(v<<2)|0,l|0,y*-4|0)|0;dv(g+v|0,1,-y|0)|0;v=v-y|0}if((v|0)==0){q=10;break}}a:do{if((q|0)==10){f=e+84|0;g=c[f>>2]|0;if((g|0)==20){c[e+80>>2]=1001;f=0;break}else{c[f>>2]=g+1;c[e+4+(g<<2)>>2]=1016;f=0;break}}else if((q|0)==13){if((t|0)>=17){ec(1672,14344,1781,17560);return 0}if((t|0)>0){u=f+336|0;v=e+376156|0;w=e+376152|0;t=0;while(1){if((a[u]|0)==0){x=t}else{x=d[f+338+t|0]|0}y=f+916+(t<<2)|0;c[y>>2]=c[s+(x<<2)>>2];a[f+1300+t|0]=a[g+x|0]|0;y=c[y>>2]|0;x=c[w>>2]|0;if(!((c[v>>2]|0)-x>>2>>>0>y>>>0)){f=0;break a}x=c[x+(y<<2)>>2]|0;if((x|0)==0){f=0;break a}c[f+1044+(t<<2)>>2]=c[x+92>>2];c[f+1172+(t<<2)>>2]=c[x+96>>2];x=t+1|0;t=c[r>>2]|0;if((x|0)<(t|0)){t=x}else{break}}}if((c[f+20>>2]|0)!=0){f=1;break}r=f+332|0;s=c[r>>2]|0;u=(s|0)>(p|0)?s:p;p=(p|0)>(s|0)?p:s;v=0;while(1){if((v|0)>=(u|0)){break}w=c[n>>2]|0;if((w|0)>0){w=(w|0)>1?-w|0:-1;x=v-p|0;y=w>>>0>x>>>0?w:x;cv(h+(v<<2)|0,j|0,y*-4|0)|0;v=v-y|0}w=c[o>>2]|0;if((w|0)>0&(v|0)<(u|0)){x=(w|0)>1?-w|0:-1;w=v-p|0;y=x>>>0>w>>>0?x:w;cv(h+(v<<2)|0,k|0,y*-4|0)|0;v=v-y|0}w=c[m>>2]|0;if((w|0)>0&(v|0)<(u|0)){w=(w|0)>1?-w|0:-1;x=v-p|0;y=w>>>0>x>>>0?w:x;cv(h+(v<<2)|0,l|0,y*-4|0)|0;dv(g+48+v|0,1,-y|0)|0;v=v-y|0}if((v|0)==0){q=32;break}}if((q|0)==32){g=e+84|0;f=c[g>>2]|0;if((f|0)==20){c[e+80>>2]=1001;f=0;break}else{c[g>>2]=f+1;c[e+4+(f<<2)>>2]=1016;f=0;break}}if((t|0)>16){g=e+84|0;f=c[g>>2]|0;if((f|0)==20){c[e+80>>2]=1001;f=0;break}else{c[g>>2]=f+1;c[e+4+(f<<2)>>2]=1012;f=0;break}}if((s|0)>=17){ec(976,14344,1834,17560);return 0}if((s|0)<=0){f=1;break}k=f+337|0;j=e+376156|0;e=e+376152|0;l=0;while(1){if((a[k]|0)==0){m=l}else{m=d[f+354+l|0]|0}n=f+980+(l<<2)|0;c[n>>2]=c[h+(m<<2)>>2];a[f+1316+l|0]=a[g+48+m|0]|0;m=c[n>>2]|0;n=c[e>>2]|0;if(!((c[j>>2]|0)-n>>2>>>0>m>>>0)){f=0;break a}m=c[n+(m<<2)>>2]|0;if((m|0)==0){f=0;break a}c[f+1108+(l<<2)>>2]=c[m+92>>2];c[f+1236+(l<<2)>>2]=c[m+96>>2];l=l+1|0;if((l|0)>=(c[r>>2]|0)){f=1;break}}}}while(0);i=b;return f|0}function hf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[b+375388>>2]|0;f=(e|0)==0;do{if(f){g=c[b+375384>>2]|0;if((g|0)==0){g=6;break}g=(c[g+8>>2]|0)-1|0}else{g=(a[e+2|0]|0)-1|0}}while(0);do{if((a[b+376112|0]|0)!=(g|0)){do{if(f){e=c[b+375384>>2]|0;if((e|0)==0){l=6;break}e=c[e+8>>2]|0;d=10}else{e=a[e+2|0]|0;d=10}}while(0);if((d|0)==10){if((e|0)>0){l=e-1|0}else{break}}d=l+1|0;e=b+375892|0;while(1){f=l*100|0;h=(f|0)/(d|0)|0;f=(f+100|0)/(d|0)|0;if((h|0)<=(f|0)){g=f-h|0;j=h;while(1){k=c[e>>2]|0;i=(l|0)>(k|0);l=i?k:l;a[b+375912+(j<<1)|0]=l;a[b+375912+(j<<1)+1|0]=i?100:(((j-h|0)*100|0|0)/(g|0)|0)&255;if((j|0)<(f|0)){j=j+1|0}else{break}}}c[b+376116+(l<<2)>>2]=f;if((l|0)>0){l=l-1|0}else{break}}}}while(0);k=c[b+375896>>2]|0;l=a[b+375912+(k<<1)|0]|0;c[b+375900>>2]=l;c[b+375904>>2]=a[b+375912+(k<<1)+1|0]|0;c[b+375908>>2]=l;return}function jf(b){b=b|0;var d=0;d=c[b+375388>>2]|0;if((d|0)!=0){d=(a[d+2|0]|0)-1|0;return d|0}b=c[b+375384>>2]|0;if((b|0)==0){d=6;return d|0}d=(c[b+8>>2]|0)-1|0;return d|0}function kf(a,b){a=a|0;b=b|0;c[a+375892>>2]=b;hf(a);return}function lf(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+375388>>2]|0;if((e|0)==0){d=b+375896|0;d=c[d>>2]|0;return d|0}e=(a[e+2|0]|0)-1|0;if(!((d+1|0)>>>0<3>>>0)){ec(16816,14344,2161,17712);return 0}f=b+375900|0;d=(c[f>>2]|0)+d|0;d=(d|0)<0?0:d;e=(e|0)<(d|0)?e:d;c[f>>2]=e;d=b+375896|0;c[d>>2]=c[b+376116+(e<<2)>>2];hf(b);d=c[d>>2]|0;return d|0}function mf(a,b){a=a|0;b=b|0;c[a+375896>>2]=b;hf(a);return}function nf(a){a=a|0;var b=0,d=0,e=0;d=a+80|0;b=c[d>>2]|0;if((b|0)==0){d=0;return d|0}e=c[a>>2]|0;b=b-1|0;c[d>>2]=b;fv(a|0,a+4|0,b<<2|0)|0;d=e;return d|0}function of(a,b){a=a|0;b=b|0;var d=0;d=c[a+376152>>2]|0;if(!((c[a+376156>>2]|0)-d>>2>>>0>b>>>0)){a=0;return a|0}a=c[d+(b<<2)>>2]|0;return a|0}function pf(a,b){a=a|0;b=b|0;if(!((b|0)>-1)){b=0;return b|0}b=((c[a+376156>>2]|0)-(c[a+376152>>2]|0)>>2|0)>(b|0);return b|0}function qf(a){a=a|0;return}function rf(a){a=a|0;Pu(a);return}function sf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;h=b|0;c[h>>2]=0;g=b+4|0;c[g>>2]=0;i=b+8|0;c[i>>2]=0;if((d|0)==0){return}if((d|0)<0){Nr(0)}j=((d-1|0)>>>5)+1|0;f=Nu(j<<2)|0;b=f;c[h>>2]=b;c[i>>2]=j;i=(a[e]|0)==0;c[g>>2]=d;g=d>>>5;e=g<<2;if(i){dv(f|0,0,e|0)|0;f=g<<5;if((f|0)==(d|0)){return}j=b+(g<<2)|0;c[j>>2]=c[j>>2]&~(-1>>>((32-d+f|0)>>>0));return}else{dv(f|0,-1|0,e|0)|0;f=g<<5;if((f|0)==(d|0)){return}j=b+(g<<2)|0;c[j>>2]=c[j>>2]|-1>>>((32-d+f|0)>>>0);return}}function tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=b;f=d-e>>2;h=a+8|0;l=c[h>>2]|0;g=a|0;j=c[g>>2]|0;k=j;if(!(f>>>0>l-k>>2>>>0)){g=a+4|0;h=(c[g>>2]|0)-k|0;i=h>>2;if(!(f>>>0>i>>>0)){d=d-e|0;fv(j|0,b|0,d|0)|0;d=j+(d>>2<<2)|0;b=c[g>>2]|0;if((b|0)==(d|0)){return}c[g>>2]=b+(~((b-4+(-d|0)|0)>>>2)<<2);return}e=b+(i<<2)|0;fv(j|0,b|0,h|0)|0;if((e|0)==(d|0)){return}f=c[g>>2]|0;b=(d-4+(-e|0)|0)>>>2;h=f;while(1){if((h|0)!=0){c[h>>2]=c[e>>2]}e=e+4|0;if((e|0)==(d|0)){break}else{h=h+4|0}}c[g>>2]=f+(b+1<<2);return}if((j|0)!=0){l=a+4|0;m=c[l>>2]|0;if((m|0)!=(j|0)){c[l>>2]=m+(~((m-4+(-k|0)|0)>>>2)<<2)}Pu(j);c[h>>2]=0;c[l>>2]=0;c[g>>2]=0;l=0}if(f>>>0>1073741823>>>0){Nr(0)}do{if(l>>2>>>0<536870911>>>0){j=l>>1;f=j>>>0<f>>>0?f:j;if(!(f>>>0>1073741823>>>0)){i=f;break}Nr(0)}else{i=1073741823}}while(0);f=Nu(i<<2)|0;a=a+4|0;c[a>>2]=f;c[g>>2]=f;c[h>>2]=f+(i<<2);if((b|0)==(d|0)){return}e=(d-4+(-e|0)|0)>>>2;g=f;while(1){if((g|0)!=0){c[g>>2]=c[b>>2]}b=b+4|0;if((b|0)==(d|0)){break}else{g=g+4|0}}c[a>>2]=f+(e+1<<2);return}function uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=a+8|0;d=a+4|0;f=c[d>>2]|0;i=c[e>>2]|0;h=f;if(!(i-h>>3>>>0<b>>>0)){do{if((f|0)==0){e=0}else{Cd(f);e=c[d>>2]|0}f=e+8|0;c[d>>2]=f;b=b-1|0;}while((b|0)!=0);return}f=a|0;j=c[f>>2]|0;h=h-j>>3;a=h+b|0;if(a>>>0>536870911>>>0){Nr(0)}i=i-j|0;if(i>>3>>>0<268435455>>>0){i=i>>2;a=i>>>0<a>>>0?a:i;if((a|0)==0){i=0;a=0}else{g=9}}else{a=536870911;g=9}if((g|0)==9){i=Nu(a<<3)|0}h=i+(h<<3)|0;g=i+(a<<3)|0;i=h;do{if((i|0)==0){i=0}else{Cd(i)}i=i+8|0;b=b-1|0;}while((b|0)!=0);b=c[f>>2]|0;a=c[d>>2]|0;do{if((a|0)==(b|0)){c[f>>2]=h;c[d>>2]=i;c[e>>2]=g}else{do{h=h-8|0;a=a-8|0;Dd(h,a);}while((a|0)!=(b|0));b=c[f>>2]|0;a=c[d>>2]|0;c[f>>2]=h;c[d>>2]=i;c[e>>2]=g;if((a|0)==(b|0)){break}do{a=a-8|0;Ed(a);}while((a|0)!=(b|0))}}while(0);if((b|0)==0){return}Pu(b);return}function vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function wf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=a+4|0;e=a|0;d=c[e>>2]|0;k=d;h=(c[g>>2]|0)-k|0;i=(h|0)/80|0;f=i+1|0;if(f>>>0>53687091>>>0){Nr(0)}a=a+8|0;k=((c[a>>2]|0)-k|0)/80|0;if(k>>>0<26843545>>>0){k=k<<1;l=k>>>0<f>>>0?f:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=53687091;j=5}if((j|0)==5){k=Nu(l*80|0)|0}j=k+(i*80|0)|0;if((j|0)!=0){cv(j|0,b|0,80)|0}j=k+((((h|0)/-80|0)+i|0)*80|0)|0;b=d;cv(j|0,b|0,h)|0;c[e>>2]=j;c[g>>2]=k+(f*80|0);c[a>>2]=k+(l*80|0);if((d|0)==0){return}Pu(b);return}function yf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=b;h=(d-k|0)/100|0;g=a+8|0;l=c[g>>2]|0;f=a|0;i=c[f>>2]|0;j=i;if(!(h>>>0>((l-j|0)/100|0)>>>0)){e=a+4|0;f=(c[e>>2]|0)-j|0;g=(f|0)/100|0;if(!(h>>>0>g>>>0)){d=d-k|0;fv(i|0,b|0,d|0)|0;b=i+(((d|0)/100|0)*100|0)|0;d=c[e>>2]|0;if((d|0)==(b|0)){return}c[e>>2]=d+(~(((d-100+(-b|0)|0)>>>0)/100|0)*100|0);return}g=b+(g*100|0)|0;fv(i|0,b|0,f|0)|0;if((g|0)==(d|0)){return}b=c[e>>2]|0;do{if((b|0)==0){b=0}else{cv(b|0,g|0,100)|0;b=c[e>>2]|0}b=b+100|0;c[e>>2]=b;g=g+100|0;}while((g|0)!=(d|0));return}if((i|0)!=0){l=a+4|0;k=c[l>>2]|0;if((k|0)!=(i|0)){c[l>>2]=k+(~(((k-100+(-j|0)|0)>>>0)/100|0)*100|0)}Pu(i);c[g>>2]=0;c[l>>2]=0;c[f>>2]=0;l=0}if(h>>>0>42949672>>>0){Nr(0)}i=(l|0)/100|0;do{if(i>>>0<21474836>>>0){i=i<<1;h=i>>>0<h>>>0?h:i;if(!(h>>>0>42949672>>>0)){e=h;break}Nr(0)}else{e=42949672}}while(0);i=Nu(e*100|0)|0;h=a+4|0;c[h>>2]=i;c[f>>2]=i;c[g>>2]=i+(e*100|0);if((b|0)==(d|0)){return}do{if((i|0)==0){e=0}else{cv(i|0,b|0,100)|0;e=c[h>>2]|0}i=e+100|0;c[h>>2]=i;b=b+100|0;}while((b|0)!=(d|0));return}function Af(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=e-d|0;g=b+8|0;l=c[g>>2]|0;f=b|0;j=c[f>>2]|0;k=j;if(!(i>>>0>(l-k|0)>>>0)){f=b+4|0;g=(c[f>>2]|0)-k|0;if(!(i>>>0>g>>>0)){fv(j|0,d|0,i|0)|0;e=j+i|0;if((c[f>>2]|0)==(e|0)){return}c[f>>2]=e;return}h=d+g|0;fv(j|0,d|0,g|0)|0;if((h|0)==(e|0)){return}d=c[f>>2]|0;do{if((d|0)==0){d=0}else{a[d]=a[h]|0;d=c[f>>2]|0}d=d+1|0;c[f>>2]=d;h=h+1|0;}while((h|0)!=(e|0));return}if((j|0)!=0){k=b+4|0;if((c[k>>2]|0)!=(j|0)){c[k>>2]=j}Pu(j);c[g>>2]=0;c[k>>2]=0;c[f>>2]=0;l=0}if((i|0)<0){Nr(0)}do{if(l>>>0<1073741823>>>0){j=l<<1;i=j>>>0<i>>>0?i:j;if((i|0)>=0){h=i;break}Nr(0)}else{h=2147483647}}while(0);j=Nu(h)|0;i=b+4|0;c[i>>2]=j;c[f>>2]=j;c[g>>2]=j+h;if((d|0)==(e|0)){return}do{if((j|0)==0){f=0}else{a[j]=a[d]|0;f=c[i>>2]|0}j=f+1|0;c[i>>2]=j;d=d+1|0;}while((d|0)!=(e|0));return}function Bf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=d;m=e-f|0;j=m>>1;i=a+8|0;n=c[i>>2]|0;h=a|0;k=c[h>>2]|0;l=k;if(!(j>>>0>n-l>>1>>>0)){g=a+4|0;h=(c[g>>2]|0)-l|0;i=h>>1;if(!(j>>>0>i>>>0)){e=e-f|0;fv(k|0,d|0,e|0)|0;e=k+(e>>1<<1)|0;d=c[g>>2]|0;if((d|0)==(e|0)){return}c[g>>2]=d+(~((d-2+(-e|0)|0)>>>1)<<1);return}f=d+(i<<1)|0;fv(k|0,d|0,h|0)|0;if((f|0)==(e|0)){return}d=c[g>>2]|0;h=(e-2+(-f|0)|0)>>>1;i=d;while(1){if((i|0)!=0){b[i>>1]=b[f>>1]|0}f=f+2|0;if((f|0)==(e|0)){break}else{i=i+2|0}}c[g>>2]=d+(h+1<<1);return}if((k|0)!=0){n=a+4|0;o=c[n>>2]|0;if((o|0)!=(k|0)){c[n>>2]=o+(~((o-2+(-l|0)|0)>>>1)<<1)}Pu(k);c[i>>2]=0;c[n>>2]=0;c[h>>2]=0;n=0}if((m|0)<0){Nr(0)}do{if(n>>1>>>0<1073741823>>>0){j=n>>>0<j>>>0?j:n;if((j|0)>=0){g=j;break}Nr(0)}else{g=2147483647}}while(0);j=Nu(g<<1)|0;a=a+4|0;c[a>>2]=j;c[h>>2]=j;c[i>>2]=j+(g<<1);if((d|0)==(e|0)){return}f=(e-2+(-f|0)|0)>>>1;g=j;while(1){if((g|0)!=0){b[g>>1]=b[d>>1]|0}d=d+2|0;if((d|0)==(e|0)){break}else{g=g+2|0}}c[a>>2]=j+(f+1<<1);return}function Cf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=b;f=(d-j|0)/12|0;g=a+8|0;l=c[g>>2]|0;h=a|0;e=c[h>>2]|0;k=e;if(f>>>0>((l-k|0)/12|0)>>>0){if((e|0)!=0){j=a+4|0;k=c[j>>2]|0;if((k|0)!=(e|0)){do{k=k-12|0;c[j>>2]=k;l=c[k>>2]|0;if((l|0)!=0){Pu(l);k=c[j>>2]|0}}while((k|0)!=(e|0));e=c[h>>2]|0}Pu(e);c[g>>2]=0;c[j>>2]=0;c[h>>2]=0;l=0}if(f>>>0>357913941>>>0){Nr(0)}e=(l|0)/12|0;do{if(e>>>0<178956970>>>0){e=e<<1;e=e>>>0<f>>>0?f:e;if(!(e>>>0>357913941>>>0)){i=e;break}Nr(0)}else{i=357913941}}while(0);l=Nu(i*12|0)|0;c[a+4>>2]=l;c[h>>2]=l;c[g>>2]=l+(i*12|0);Df(a,b,d);return}g=a+4|0;h=((c[g>>2]|0)-k|0)/12|0;if(f>>>0>h>>>0){f=1;h=b+(h*12|0)|0}else{f=0;h=d}if((h|0)!=(b|0)){i=h-12+(-j|0)|0;j=e;while(1){Gf(j,b)|0;b=b+12|0;if((b|0)==(h|0)){break}else{j=j+12|0}}e=e+((((i>>>0)/12|0)+1|0)*12|0)|0}if(f){Df(a,h,d);return}d=c[g>>2]|0;if((d|0)==(e|0)){return}do{d=d-12|0;c[g>>2]=d;a=c[d>>2]|0;if((a|0)!=0){Pu(a);d=c[g>>2]|0}}while((d|0)!=(e|0));return}function Df(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+16|0;f=e|0;g=e+8|0;if((b|0)==(d|0)){i=e;return}j=a+4|0;k=f|0;l=f+4|0;h=g|0;a=g+4|0;n=c[j>>2]|0;a:while(1){do{if((n|0)!=0){r=n|0;c[r>>2]=0;p=n+4|0;c[p>>2]=0;o=n+8|0;c[o>>2]=0;m=b+4|0;q=c[m>>2]|0;if((q|0)==0){break}if((q|0)<0){d=6;break a}q=((q-1|0)>>>5)+1|0;s=Nu(q<<2)|0;c[r>>2]=s;c[p>>2]=0;c[o>>2]=q;q=c[b>>2]|0;c[k>>2]=q;c[l>>2]=0;r=c[m>>2]|0;c[h>>2]=q+(r>>>5<<2);c[a>>2]=r&31;Ef(n,f,g)}}while(0);n=(c[j>>2]|0)+12|0;c[j>>2]=n;b=b+12|0;if((b|0)==(d|0)){d=9;break}}if((d|0)==6){Nr(0)}else if((d|0)==9){i=e;return}}function Ef(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=i;i=i+32|0;n=b;r=i;i=i+8|0;c[r>>2]=c[n>>2];c[r+4>>2]=c[n+4>>2];n=d;p=i;i=i+8|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];n=e|0;l=e+8|0;k=e+16|0;d=e+24|0;g=a+4|0;s=c[g>>2]|0;o=c[r>>2]|0;r=c[r+4>>2]|0;q=c[p>>2]|0;p=c[p+4>>2]|0;m=o;b=r;h=p;j=q-m<<3;c[g>>2]=s-b+h+j;g=c[a>>2]|0;f=s>>>5;a=g+(f<<2)|0;s=s&31;if((b|0)!=(s|0)){c[n>>2]=o;c[n+4>>2]=r;c[l>>2]=q;c[l+4>>2]=p;c[k>>2]=a;c[k+4>>2]=s;Ff(d,n,l,k);i=e;return}h=h-b+j|0;do{if((h|0)>0){if((b|0)==0){b=0}else{j=32-b|0;s=(h|0)<(j|0)?h:j;r=-1>>>((j-s|0)>>>0)&-1<<b;c[a>>2]=c[a>>2]&~r|c[m>>2]&r;b=s+b|0;h=h-s|0;m=m+4|0;a=g+((b>>>5)+f<<2)|0;b=b&31}g=h>>>5;fv(a|0,m|0,g<<2|0)|0;f=h-(g<<5)|0;a=a+(g<<2)|0;if((f|0)<=0){break}b=-1>>>((32-f|0)>>>0);c[a>>2]=c[a>>2]&~b|c[m+(g<<2)>>2]&b;b=f}}while(0);c[d>>2]=a;c[d+4>>2]=b;i=e;return}function Ff(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=i;q=b;j=i;i=i+8|0;c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];q=d;g=i;i=i+8|0;c[g>>2]=c[q>>2];c[g+4>>2]=c[q+4>>2];d=j|0;b=c[d>>2]|0;j=c[j+4>>2]|0;g=(c[g+4>>2]|0)-j+((c[g>>2]|0)-b<<3)|0;if((g|0)<=0){p=e+4|0;q=a|0;o=e|0;o=c[o>>2]|0;c[q>>2]=o;q=a+4|0;p=c[p>>2]|0;c[q>>2]=p;i=f;return}if((j|0)==0){n=c[e+4>>2]|0}else{k=32-j|0;h=(g|0)<(k|0)?g:k;k=-1>>>((k-h|0)>>>0)&-1<<j&c[b>>2];m=e+4|0;q=c[m>>2]|0;p=32-q|0;l=p>>>0<h>>>0?p:h;n=e|0;o=c[n>>2]|0;p=c[o>>2]&~(-1>>>((p-l|0)>>>0)&-1<<q);c[o>>2]=p;q=c[m>>2]|0;if(q>>>0>j>>>0){q=k<<q-j}else{q=k>>>((j-q|0)>>>0)}c[o>>2]=p|q;p=(c[m>>2]|0)+l|0;o=o+(p>>>5<<2)|0;c[n>>2]=o;n=p&31;c[m>>2]=n;p=h-l|0;if((p|0)>0){c[o>>2]=c[o>>2]&~(-1>>>((32-p|0)>>>0))|k>>>((j+l|0)>>>0);c[m>>2]=p;n=p}b=b+4|0;c[d>>2]=b;g=g-h|0}h=e+4|0;j=32-n|0;k=-1<<n;if(g>>>0>31>>>0){m=~k;l=e|0;n=c[l>>2]|0;o=n;n=c[n>>2]|0;do{q=c[b>>2]|0;p=n&m;c[o>>2]=p;c[o>>2]=p|q<<c[h>>2];o=o+4|0;n=c[o>>2]&k|q>>>(j>>>0);c[o>>2]=n;g=g-32|0;b=b+4|0;}while(g>>>0>31>>>0);c[d>>2]=b;c[l>>2]=o}if((g|0)<=0){p=h;q=a|0;o=e|0;o=c[o>>2]|0;c[q>>2]=o;q=a+4|0;p=c[p>>2]|0;c[q>>2]=p;i=f;return}d=c[b>>2]&-1>>>((32-g|0)>>>0);b=(j|0)<(g|0)?j:g;p=e|0;o=c[p>>2]|0;q=c[o>>2]&~(-1<<c[h>>2]&-1>>>((j-b|0)>>>0));c[o>>2]=q;c[o>>2]=q|d<<c[h>>2];q=(c[h>>2]|0)+b|0;j=o+(q>>>5<<2)|0;c[p>>2]=j;c[h>>2]=q&31;g=g-b|0;if((g|0)<=0){p=h;q=a|0;o=e|0;o=c[o>>2]|0;c[q>>2]=o;q=a+4|0;p=c[p>>2]|0;c[q>>2]=p;i=f;return}c[j>>2]=c[j>>2]&~(-1>>>((32-g|0)>>>0))|d>>>(b>>>0);c[h>>2]=g;p=h;q=a|0;o=e|0;o=c[o>>2]|0;c[q>>2]=o;q=a+4|0;p=c[p>>2]|0;c[q>>2]=p;i=f;return}function Gf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((a|0)==(b|0)){return a|0}d=b+4|0;h=c[d>>2]|0;if((h|0)==0){d=0}else{f=a+8|0;g=a|0;e=c[g>>2]|0;do{if(h>>>0>c[f>>2]<<5>>>0){if((e|0)!=0){Pu(e);c[g>>2]=0;c[f>>2]=0;c[a+4>>2]=0;h=c[d>>2]|0}if((h|0)<0){Nr(0);return 0}else{h=((h-1|0)>>>5)+1|0;e=Nu(h<<2)|0;c[g>>2]=e;c[a+4>>2]=0;c[f>>2]=h;h=c[d>>2]|0;break}}}while(0);fv(e|0,c[b>>2]|0,((h-1|0)>>>5<<2)+4|0)|0;d=c[d>>2]|0}c[a+4>>2]=d;return a|0}function Hf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function If(a){a=a|0;c[a+776>>2]=0;c[a+780>>2]=0;c[a+784>>2]=0;Cd(a+1332|0);c[a+1344>>2]=0;c[a+1348>>2]=0;c[a+1352>>2]=0;Jj(a);return}function Jf(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+640>>2]|0;if((d|0)!=0){b=a+644|0;if((c[b>>2]|0)!=(d|0)){c[b>>2]=d}Pu(d)}d=c[a+628>>2]|0;if((d|0)!=0){b=a+632|0;e=c[b>>2]|0;if((e|0)!=(d|0)){c[b>>2]=e+(~((e-2+(-d|0)|0)>>>1)<<1)}Pu(d)}b=a+592|0;d=c[b>>2]|0;if((d|0)==0){return}a=a+596|0;f=c[a>>2]|0;if((f|0)!=(d|0)){do{f=f-12|0;c[a>>2]=f;e=c[f>>2]|0;if((e|0)!=0){Pu(e);f=c[a>>2]|0}}while((f|0)!=(d|0));d=c[b>>2]|0}Pu(d);return}function Kf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;f=c[e>>2]|0;b=a+16|0;j=c[b>>2]|0;i=f+(j>>>10<<2)|0;d=a+8|0;h=c[d>>2]|0;if((h|0)==(f|0)){g=0;j=0;a=a+20|0}else{a=a+20|0;g=j+(c[a>>2]|0)|0;g=(c[f+(g>>>10<<2)>>2]|0)+((g&1023)<<2)|0;j=(c[i>>2]|0)+((j&1023)<<2)|0}a:while(1){do{if((j|0)==(g|0)){break a}j=j+4|0;}while((j-(c[i>>2]|0)|0)!=4096);j=i+4|0;i=j;j=c[j>>2]|0}c[a>>2]=0;g=h-f>>2;if(g>>>0>2>>>0){do{Pu(c[f>>2]|0);f=(c[e>>2]|0)+4|0;c[e>>2]=f;g=(c[d>>2]|0)-f>>2;}while(g>>>0>2>>>0)}if((g|0)==2){c[b>>2]=1024;return}else if((g|0)==1){c[b>>2]=512;return}else{return}}function Lf(a){a=a|0;c[a>>2]=30;c[a+4>>2]=20;c[a+8>>2]=2;c[a+12>>2]=2;c[a+16>>2]=8;c[a+20>>2]=40;c[a+24>>2]=6;c[a+28>>2]=2;c[a+32>>2]=6;c[a+36>>2]=8;c[a+40>>2]=8;c[a+44>>2]=8;c[a+48>>2]=26;c[a+52>>2]=28;c[a+56>>2]=52;c[a+60>>2]=44;c[a+64>>2]=86;c[a+68>>2]=6;c[a+72>>2]=36;c[a+76>>2]=56;c[a+80>>2]=14;c[a+84>>2]=64;c[a+88>>2]=48;c[a+92>>2]=112;c[a+96>>2]=8;c[a+100>>2]=22;c[a+104>>2]=32;c[a+108>>2]=84;c[a+112>>2]=2;c[a+116>>2]=4;c[a+120>>2]=4;c[a+124>>2]=4;c[a+128>>2]=42;c[a+132>>2]=6;c[a+136>>2]=18;c[a+140>>2]=12;c[a+144>>2]=2;c[a+148>>2]=26;c[a+152>>2]=24;c[a+156>>2]=32;c[a+160>>2]=40;c[a+164>>2]=34;c[a+168>>2]=20;c[a+172>>2]=36;c[a+176>>2]=22;c[a+180>>2]=14;c[a+184>>2]=4;c[a+188>>2]=44;c[a+204>>2]=22;c[a+212>>2]=20;c[a+208>>2]=36;c[a+192>>2]=4;c[a+200>>2]=10;c[a+196>>2]=40;c[a+216>>2]=28;c[a+220>>2]=12;c[a+224>>2]=38;c[a+228>>2]=16;c[a+232>>2]=30;c[a+236>>2]=16;c[a+240>>2]=40;c[a+244>>2]=12;c[a+248>>2]=18;c[a+252>>2]=24;c[a+256>>2]=26;c[a+260>>2]=52;c[a+284>>2]=14;c[a+288>>2]=4;c[a+296>>2]=16;c[a+292>>2]=2;c[a+300>>2]=10;c[a+264>>2]=10;c[a+268>>2]=4;c[a+272>>2]=14;c[a+276>>2]=2;c[a+280>>2]=28;c[a+304>>2]=24;c[a+308>>2]=8;c[a+312>>2]=32;c[a+316>>2]=14;c[a+320>>2]=20;c[a+324>>2]=18;c[a+328>>2]=6;c[a+332>>2]=2;c[a+336>>2]=26;return}function Mf(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if((g|0)<=0){return}i=(1<<h)-1|0;j=0;do{k=ga(j,e)|0;l=ga(j,g)|0;m=0;do{h=b+(m+k)|0;n=(d[h]|0)+(c[f+(m+l<<2)>>2]|0)|0;if((n|0)<0){n=0}else{n=((n|0)>(i|0)?i:n)&255}a[h]=n;m=m+1|0;}while((m|0)<(g|0));j=j+1|0;}while((j|0)<(g|0));return}function Nf(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;if((g|0)<=0){return}i=(1<<h)-1|0;j=0;do{k=ga(j,d)|0;l=ga(j,g)|0;m=0;do{h=a+(m+k<<1)|0;n=(e[h>>1]|0)+(c[f+(m+l<<2)>>2]|0)|0;if((n|0)<0){n=0}else{n=((n|0)>(i|0)?i:n)&65535}b[h>>1]=n;m=m+1|0;}while((m|0)<(g|0));j=j+1|0;}while((j|0)<(g|0));return}function Of(a,b,c){a=a|0;b=b|0;c=c|0;ec(15968,16560,51,18680)}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ec(15968,16560,68,18648)}function Qf(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=1<<g-1;if((e|0)>0){i=0}else{return}do{j=ga(i,e)|0;k=0;do{l=k+j|0;c[a+(l<<2)>>2]=(b[d+(l<<1)>>1]<<f)+h>>g;k=k+1|0;}while((k|0)<(e|0));i=i+1|0;}while((i|0)<(e|0));return}function Rf(c,e,f,g){c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=f+5|0;j=1<<f;if((j|0)>0){h=0}else{return}do{l=0;k=0;do{l=((b[e+((k<<f)+h<<1)>>1]<<i)+2048>>12)+l|0;m=c+((ga(k,g)|0)+h)|0;n=l+(d[m]|0)|0;if((n|0)<0){n=0}else{n=(n|0)>255?-1:n&255}a[m]=n;k=k+1|0;}while((k|0)<(j|0));h=h+1|0;}while((h|0)<(j|0));return}function Sf(c,e,f,g){c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=f+5|0;k=1<<f;if((k|0)>0){j=0}else{return}do{h=j<<f;l=ga(j,g)|0;n=0;m=0;do{n=((b[e+(m+h<<1)>>1]<<i)+2048>>12)+n|0;o=c+(m+l)|0;p=n+(d[o]|0)|0;if((p|0)<0){p=0}else{p=(p|0)>255?-1:p&255}a[o]=p;m=m+1|0;}while((m|0)<(k|0));j=j+1|0;}while((j|0)<(k|0));return}function Tf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)>0){f=0}else{return}do{h=0;g=0;do{i=(ga(g,e)|0)+f|0;h=(b[d+(i<<1)>>1]|0)+h|0;c[a+(i<<2)>>2]=h;g=g+1|0;}while((g|0)<(e|0));f=f+1|0;}while((f|0)<(e|0));return}function Uf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if((e|0)>0){f=0}else{return}do{g=ga(f,e)|0;i=0;h=0;do{j=h+g|0;i=(b[d+(j<<1)>>1]|0)+i|0;c[a+(j<<2)>>2]=i;h=h+1|0;}while((h|0)<(e|0));f=f+1|0;}while((f|0)<(e|0));return}function Vf(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=1<<g-1;if((e|0)>0){i=0}else{return}do{k=0;j=0;do{l=(ga(j,e)|0)+i|0;k=((b[d+(l<<1)>>1]<<f)+h>>g)+k|0;c[a+(l<<2)>>2]=k;j=j+1|0;}while((j|0)<(e|0));i=i+1|0;}while((i|0)<(e|0));return}function Wf(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;h=1<<g-1;if((e|0)>0){i=0}else{return}do{j=ga(i,e)|0;l=0;k=0;do{m=k+j|0;l=((b[d+(m<<1)>>1]<<f)+h>>g)+l|0;c[a+(m<<2)>>2]=l;k=k+1|0;}while((k|0)<(e|0));i=i+1|0;}while((i|0)<(e|0));return}function Xf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)>0){f=0}else{return}do{g=ga(f,e)|0;h=0;do{i=h+g|0;c[a+(i<<2)>>2]=b[d+(i<<1)>>1]|0;h=h+1|0;}while((h|0)<(e|0));f=f+1|0;}while((f|0)<(e|0));return}function Yf(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=(c|0)/2|0;if((c|0)<=1){return}e=c-1|0;f=0;do{g=ga(f,c)|0;h=e+(ga(e-f|0,c)|0)|0;i=0;do{l=a+(i+g<<1)|0;j=a+(h-i<<1)|0;k=b[l>>1]|0;b[l>>1]=b[j>>1]|0;b[j>>1]=k;i=i+1|0;}while((i|0)<(c|0));f=f+1|0;}while((f|0)<(d|0));return}function Zf(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;i=i+32|0;h=g|0;l=0;while(1){k=b[e+(l<<1)>>1]|0;j=0;do{m=ga(k<<16>>16,a[27256+j|0]|0)|0;m=(ga(b[e+(l+4<<1)>>1]|0,a[27260+j|0]|0)|0)+m|0;m=(ga(b[e+(l+8<<1)>>1]|0,a[27264+j|0]|0)|0)+m|0;m=(ga(b[e+(l+12<<1)>>1]|0,a[27268+j|0]|0)|0)+m+64>>7;if((m|0)<-32768){m=-32768}else{m=(m|0)>32767?32767:m&65535}b[h+(j<<3)+(l<<1)>>1]=m;j=j+1|0;}while((j|0)<4);l=l+1|0;if((l|0)>=4){l=0;break}}do{m=ga(l,f)|0;n=b[h+(l<<3)>>1]|0;k=b[h+(l<<3)+2>>1]|0;o=b[h+(l<<3)+4>>1]|0;j=b[h+(l<<3)+6>>1]|0;e=0;do{p=ga(n<<16>>16,a[27256+e|0]|0)|0;p=(ga(k<<16>>16,a[27260+e|0]|0)|0)+p|0;p=(ga(o<<16>>16,a[27264+e|0]|0)|0)+p|0;p=(ga(j<<16>>16,a[27268+e|0]|0)|0)+p+2048>>12;if((p|0)<-32768){q=-32768}else{q=(p|0)>32767?32767:p}p=c+(e+m)|0;q=(d[p]|0)+q|0;if((q|0)<0){q=0}else{q=(q|0)>255?-1:q&255}a[p]=q;e=e+1|0;}while((e|0)<4);l=l+1|0;}while((l|0)<4);i=g;return}function _f(c,d,f,g){c=c|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=i;i=i+32|0;j=k|0;h=20-g|0;m=h-1|0;o=0;do{n=b[d+(o<<1)>>1]|0;l=0;do{p=ga(n<<16>>16,a[27256+l|0]|0)|0;p=(ga(b[d+(o+4<<1)>>1]|0,a[27260+l|0]|0)|0)+p|0;p=(ga(b[d+(o+8<<1)>>1]|0,a[27264+l|0]|0)|0)+p|0;p=(ga(b[d+(o+12<<1)>>1]|0,a[27268+l|0]|0)|0)+p+64>>7;if((p|0)<-32768){p=-32768}else{p=(p|0)>32767?32767:p&65535}b[j+(l<<3)+(o<<1)>>1]=p;l=l+1|0;}while((l|0)<4);o=o+1|0;}while((o|0)<4);l=1<<m;p=(1<<g)-1|0;g=0;do{o=ga(g,f)|0;d=b[j+(g<<3)>>1]|0;n=b[j+(g<<3)+2>>1]|0;m=b[j+(g<<3)+4>>1]|0;r=b[j+(g<<3)+6>>1]|0;q=0;do{s=ga(d<<16>>16,a[27256+q|0]|0)|0;s=(ga(n<<16>>16,a[27260+q|0]|0)|0)+s|0;s=(ga(m<<16>>16,a[27264+q|0]|0)|0)+s|0;s=(ga(r<<16>>16,a[27268+q|0]|0)|0)+s+l>>h;if((s|0)<-32768){t=-32768}else{t=(s|0)>32767?32767:s}s=c+(q+o<<1)|0;t=(e[s>>1]|0)+t|0;if((t|0)<0){t=0}else{t=((t|0)>(p|0)?p:t)&65535}b[s>>1]=t;q=q+1|0;}while((q|0)<4);g=g+1|0;}while((g|0)<4);i=k;return}function $f(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=f|0;h=0;while(1){j=b[d+(h<<1)>>1]|0;k=0;do{l=ga(j<<16>>16,a[27256+(k<<2)|0]|0)|0;l=(ga(b[d+(h+e<<1)>>1]|0,a[27257+(k<<2)|0]|0)|0)+l|0;l=(ga(b[d+((e<<1)+h<<1)>>1]|0,a[27258+(k<<2)|0]|0)|0)+l|0;l=(ga(b[d+((e*3|0)+h<<1)>>1]|0,a[27259+(k<<2)|0]|0)|0)+l+1>>1;if((l|0)<-32768){l=-32768}else{l=(l|0)>32767?32767:l&65535}b[g+((k<<2)+h<<1)>>1]=l;k=k+1|0;}while((k|0)<4);h=h+1|0;if((h|0)>=4){d=0;break}}do{h=d<<2;e=b[g+(h<<1)>>1]|0;j=0;do{l=ga(e<<16>>16,a[27256+(j<<2)|0]|0)|0;l=(ga(b[g+((h|1)<<1)>>1]|0,a[27257+(j<<2)|0]|0)|0)+l|0;l=(ga(b[g+((h|2)<<1)>>1]|0,a[27258+(j<<2)|0]|0)|0)+l|0;l=((ga(b[g+((h|3)<<1)>>1]|0,a[27259+(j<<2)|0]|0)|0)+l+128|0)>>>8&65535;b[c+(j+h<<1)>>1]=l;j=j+1|0;}while((j|0)<4);d=d+1|0;}while((d|0)<4);i=f;return}function ag(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;i=i+32|0;h=j|0;k=f-1|0;g=1<<g;p=g-1|0;g=-g|0;n=g&65535;l=0;do{m=b[e+(l<<1)>>1]|0;o=0;do{q=ga(m<<16>>16,a[27256+o|0]|0)|0;q=(ga(b[e+(l+4<<1)>>1]|0,a[27260+o|0]|0)|0)+q|0;q=(ga(b[e+(l+8<<1)>>1]|0,a[27264+o|0]|0)|0)+q|0;q=(ga(b[e+(l+12<<1)>>1]|0,a[27268+o|0]|0)|0)+q+64>>7;if((q|0)<(g|0)){q=n}else{q=((q|0)>(p|0)?p:q)&65535}b[h+(o<<3)+(l<<1)>>1]=q;o=o+1|0;}while((o|0)<4);l=l+1|0;}while((l|0)<4);l=1<<k;g=0;do{p=g<<2;k=b[h+(g<<3)>>1]|0;m=b[h+(g<<3)+2>>1]|0;n=b[h+(g<<3)+4>>1]|0;o=b[h+(g<<3)+6>>1]|0;e=0;do{q=ga(k<<16>>16,a[27256+e|0]|0)|0;q=(ga(m<<16>>16,a[27260+e|0]|0)|0)+q|0;q=(ga(n<<16>>16,a[27264+e|0]|0)|0)+q|0;q=(ga(o<<16>>16,a[27268+e|0]|0)|0)+q+l>>f;c[d+(e+p<<2)>>2]=q;e=e+1|0;}while((e|0)<4);g=g+1|0;}while((g|0)<4);i=j;return}function bg(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=i;i=i+2048|0;k=j|0;if((e|0)>1){m=e;l=0;do{l=l+1|0;m=m>>1;}while((m|0)>1)}else{l=0}m=5-l|0;l=1<<g-1;n=1<<h;h=n-1|0;n=-n|0;p=(e|0)>0;if(!p){i=j;return}q=n&65535;r=0;do{s=e;while(1){o=s-1|0;if((s|0)<=0){break}v=f+((ga(o,e)|0)+r<<1)|0;if((b[v>>1]|0)==0){s=o}else{break}}s=(s|0)<1;t=0;do{if(s){u=0}else{v=0;u=0;while(1){w=f+((ga(u,e)|0)+r<<1)|0;v=(ga(b[w>>1]|0,a[27616+(u<<m<<5)+t|0]|0)|0)+v|0;if((u|0)<(o|0)){u=u+1|0}else{break}}u=v+64>>7}if((u|0)<(n|0)){u=q}else{u=((u|0)>(h|0)?h:u)&65535}w=k+((ga(t,e)|0)+r<<1)|0;b[w>>1]=u;t=t+1|0;}while((t|0)<(e|0));r=r+1|0;}while((r|0)<(e|0));if(p){h=0}else{i=j;return}do{n=ga(h,e)|0;o=e;while(1){f=o-1|0;if((o|0)<=0){break}if((b[k+(f+n<<1)>>1]|0)==0){o=f}else{break}}o=(o|0)<1;p=0;do{if(o){r=0}else{r=0;q=0;while(1){r=(ga(b[k+(q+n<<1)>>1]|0,a[27616+(q<<m<<5)+p|0]|0)|0)+r|0;if((q|0)<(f|0)){q=q+1|0}else{break}}}c[d+(p+n<<2)>>2]=r+l>>g;p=p+1|0;}while((p|0)<(e|0));h=h+1|0;}while((h|0)<(e|0));i=j;return}function cg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bg(a,4,b,c,d);return}function dg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bg(a,8,b,c,d);return}function eg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bg(a,16,b,c,d);return}function fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bg(a,32,b,c,d);return}function gg(a,b,c){a=a|0;b=b|0;c=c|0;hg(a,c,4,b,8);return}function hg(c,e,f,g,h){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;l=i;i=i+2048|0;m=l|0;k=20-h|0;j=1<<k-1;if((f|0)>1){n=f;p=0;do{p=p+1|0;n=n>>1;}while((n|0)>1)}else{p=0}n=5-p|0;p=(f|0)>0;if(p){q=0}else{i=l;return}do{s=f;while(1){r=s-1|0;if((s|0)<=0){break}v=g+((ga(r,f)|0)+q<<1)|0;if((b[v>>1]|0)==0){s=r}else{break}}s=(s|0)<1;t=0;do{if(s){u=0;o=13}else{v=0;u=0;while(1){w=g+((ga(u,f)|0)+q<<1)|0;v=(ga(b[w>>1]|0,a[27616+(u<<n<<5)+t|0]|0)|0)+v|0;if((u|0)<(r|0)){u=u+1|0}else{break}}u=v+64>>7;if((u|0)<-32768){u=-32768}else{o=13}}if((o|0)==13){o=0;u=(u|0)>32767?32767:u&65535}w=m+((ga(t,f)|0)+q<<1)|0;b[w>>1]=u;t=t+1|0;}while((t|0)<(f|0));q=q+1|0;}while((q|0)<(f|0));if(!p){i=l;return}g=(1<<h)-1|0;p=0;do{o=ga(p,f)|0;q=f;while(1){h=q-1|0;if((q|0)<=0){break}if((b[m+(h+o<<1)>>1]|0)==0){q=h}else{break}}r=(q|0)<1;s=ga(p,e)|0;q=0;do{if(r){u=0}else{u=0;t=0;while(1){u=(ga(b[m+(t+o<<1)>>1]|0,a[27616+(t<<n<<5)+q|0]|0)|0)+u|0;if((t|0)<(h|0)){t=t+1|0}else{break}}}t=c+(q+s)|0;u=(d[t]|0)+(u+j>>k)|0;if((u|0)<0){u=0}else{u=((u|0)>(g|0)?g:u)&255}a[t]=u;q=q+1|0;}while((q|0)<(f|0));p=p+1|0;}while((p|0)<(f|0));i=l;return}function ig(a,b,c){a=a|0;b=b|0;c=c|0;hg(a,c,8,b,8);return}function jg(a,b,c){a=a|0;b=b|0;c=c|0;hg(a,c,16,b,8);return}function kg(a,b,c){a=a|0;b=b|0;c=c|0;hg(a,c,32,b,8);return}function lg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mg(a,c,4,b,d);return}function mg(c,d,f,g,h){c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;l=i;i=i+2048|0;m=l|0;k=20-h|0;j=1<<k-1;if((f|0)>1){n=f;p=0;do{p=p+1|0;n=n>>1;}while((n|0)>1)}else{p=0}n=5-p|0;p=(f|0)>0;if(p){q=0}else{i=l;return}do{s=f;while(1){r=s-1|0;if((s|0)<=0){break}v=g+((ga(r,f)|0)+q<<1)|0;if((b[v>>1]|0)==0){s=r}else{break}}s=(s|0)<1;t=0;do{if(s){u=0;o=13}else{v=0;u=0;while(1){w=g+((ga(u,f)|0)+q<<1)|0;v=(ga(b[w>>1]|0,a[27616+(u<<n<<5)+t|0]|0)|0)+v|0;if((u|0)<(r|0)){u=u+1|0}else{break}}u=v+64>>7;if((u|0)<-32768){u=-32768}else{o=13}}if((o|0)==13){o=0;u=(u|0)>32767?32767:u&65535}w=m+((ga(t,f)|0)+q<<1)|0;b[w>>1]=u;t=t+1|0;}while((t|0)<(f|0));q=q+1|0;}while((q|0)<(f|0));if(!p){i=l;return}g=(1<<h)-1|0;p=0;do{o=ga(p,f)|0;q=f;while(1){h=q-1|0;if((q|0)<=0){break}if((b[m+(h+o<<1)>>1]|0)==0){q=h}else{break}}r=(q|0)<1;s=ga(p,d)|0;q=0;do{if(r){u=0}else{u=0;t=0;while(1){u=(ga(b[m+(t+o<<1)>>1]|0,a[27616+(t<<n<<5)+q|0]|0)|0)+u|0;if((t|0)<(h|0)){t=t+1|0}else{break}}}t=c+(q+s<<1)|0;u=(e[t>>1]|0)+(u+j>>k)|0;if((u|0)<0){u=0}else{u=((u|0)>(g|0)?g:u)&65535}b[t>>1]=u;q=q+1|0;}while((q|0)<(f|0));p=p+1|0;}while((p|0)<(f|0));i=l;return}function ng(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mg(a,c,8,b,d);return}function og(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mg(a,c,16,b,d);return}function pg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;mg(a,c,32,b,d);return}function qg(a,b,c){a=a|0;b=b|0;c=c|0;rg(a,4,b,c);return}function rg(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;g=i;i=i+2048|0;h=g|0;if((d|0)>1){j=d;m=0;while(1){j=j>>1;if((j|0)>1){m=m+1|0}else{j=d;k=0;break}}while(1){j=j>>1;if((j|0)>1){k=k+1|0}else{break}}j=k+7|0;n=1<<m-1;k=1<<k+6;o=d;l=0;do{l=l+1|0;o=o>>1;}while((o|0)>1)}else{l=0;m=-1;j=6;n=0;k=32}l=5-l|0;o=(d|0)>0;if(o){q=0}else{i=g;return}do{r=0;do{s=r<<l;p=0;t=0;do{u=e+((ga(t,f)|0)+q<<1)|0;p=(ga(b[u>>1]|0,a[27616+(s<<5)+t|0]|0)|0)+p|0;t=t+1|0;}while((t|0)<(d|0));u=h+((ga(r,d)|0)+q<<1)|0;b[u>>1]=p+n>>m;r=r+1|0;}while((r|0)<(d|0));q=q+1|0;}while((q|0)<(d|0));if(o){e=0}else{i=g;return}do{f=ga(e,d)|0;p=0;do{o=p<<l;n=0;m=0;do{n=(ga(b[h+(m+f<<1)>>1]|0,a[27616+(o<<5)+m|0]|0)|0)+n|0;m=m+1|0;}while((m|0)<(d|0));b[c+(p+f<<1)>>1]=n+k>>j;p=p+1|0;}while((p|0)<(d|0));e=e+1|0;}while((e|0)<(d|0));i=g;return}function sg(a,b,c){a=a|0;b=b|0;c=c|0;rg(a,8,b,c);return}function tg(a,b,c){a=a|0;b=b|0;c=c|0;rg(a,16,b,c);return}function ug(a,b,c){a=a|0;b=b|0;c=c|0;rg(a,32,b,c);return}function vg(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=i;i=i+2176|0;g=f|0;h=(c|0)>0;if(!h){i=f;return}m=c>>1;l=(m|0)>0;j=c>>2;k=(j|0)>1;p=f+2048|0;o=f+2112|0;n=0;do{r=ga(n,e)|0;if(l){q=0;do{s=d+(q+r<<1)|0;u=q+m|0;t=d+(u+r<<1)|0;b[p+(q<<1)>>1]=(b[t>>1]|0)+(b[s>>1]|0);b[p+(u<<1)>>1]=(b[s>>1]|0)-(b[t>>1]|0);q=q+1|0;}while((q|0)<(m|0))}if(k){q=p;p=m;t=j;while(1){r=(t|0)>0;s=0;do{if(r){u=0;do{y=u+s|0;x=b[q+(y<<1)>>1]|0;v=y+t|0;w=b[q+(v<<1)>>1]|0;b[o+(y<<1)>>1]=w+x;b[o+(v<<1)>>1]=x-w;u=u+1|0;}while((u|0)<(t|0))}s=s+p|0;}while((s|0)<(c|0));t=t>>1;if((t|0)>1){y=q;q=o;p=p>>1;o=y}else{p=o;o=q;break}}}r=ga(n,c)|0;q=0;do{w=p+(q<<1)|0;y=q|1;x=p+(y<<1)|0;b[g+(q+r<<1)>>1]=(b[x>>1]|0)+(b[w>>1]|0);b[g+(y+r<<1)>>1]=(b[w>>1]|0)-(b[x>>1]|0);q=q+2|0;}while((q|0)<(c|0));n=n+1|0;}while((n|0)<(c|0));if(!h){i=f;return}h=c>>1;e=(h|0)>0;k=c>>2;j=(k|0)>1;l=0;while(1){if(e){d=0;do{w=g+((ga(d,c)|0)+l<<1)|0;y=d+h|0;x=g+((ga(y,c)|0)+l<<1)|0;b[p+(d<<1)>>1]=(b[x>>1]|0)+(b[w>>1]|0);b[p+(y<<1)>>1]=(b[w>>1]|0)-(b[x>>1]|0);d=d+1|0;}while((d|0)<(h|0))}if(j){d=h;r=k;while(1){n=(r|0)>0;m=0;do{if(n){q=0;do{v=q+m|0;w=b[p+(v<<1)>>1]|0;y=v+r|0;x=b[p+(y<<1)>>1]|0;b[o+(v<<1)>>1]=x+w;b[o+(y<<1)>>1]=w-x;q=q+1|0;}while((q|0)<(r|0))}m=m+d|0;}while((m|0)<(c|0));r=r>>1;if((r|0)>1){y=p;p=o;d=d>>1;o=y}else{d=o;o=p;break}}}else{d=p}m=0;do{w=d+(m<<1)|0;y=m|1;x=d+(y<<1)|0;v=a+((ga(m,c)|0)+l<<1)|0;b[v>>1]=(b[x>>1]|0)+(b[w>>1]|0);y=a+((ga(y,c)|0)+l<<1)|0;b[y>>1]=(b[w>>1]|0)-(b[x>>1]|0);m=m+2|0;}while((m|0)<(c|0));l=l+1|0;if((l|0)<(c|0)){p=d}else{break}}i=f;return}function wg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=i;i=i+32|0;t=e|0;r=b[c>>1]|0;s=b[c+4>>1]|0;g=s+r&65535;v=b[c+2>>1]|0;h=b[c+6>>1]|0;n=h+v&65535;s=r-s&65535;h=v-h&65535;v=t|0;b[v>>1]=n+g;r=t+2|0;b[r>>1]=g-n;n=t+4|0;b[n>>1]=h+s;g=t+6|0;b[g>>1]=s-h;h=b[c+(d<<1)>>1]|0;s=b[c+(d+2<<1)>>1]|0;m=s+h&65535;u=b[c+(d+1<<1)>>1]|0;j=b[c+(d+3<<1)>>1]|0;q=j+u&65535;s=h-s&65535;j=u-j&65535;u=q+m&65535;b[t+8>>1]=u;q=m-q&65535;b[t+10>>1]=q;m=t+12|0;b[m>>1]=j+s;h=t+14|0;b[h>>1]=s-j;j=d<<1;s=b[c+(j<<1)>>1]|0;x=b[c+(j+2<<1)>>1]|0;f=x+s&65535;o=b[c+((j|1)<<1)>>1]|0;j=b[c+(j+3<<1)>>1]|0;k=j+o&65535;x=s-x&65535;j=o-j&65535;o=k+f&65535;b[t+16>>1]=o;k=f-k&65535;b[t+18>>1]=k;f=j+x&65535;b[t+20>>1]=f;j=x-j&65535;b[t+22>>1]=j;d=d*3|0;x=b[c+(d<<1)>>1]|0;s=b[c+(d+2<<1)>>1]|0;w=s+x&65535;p=b[c+(d+1<<1)>>1]|0;d=b[c+(d+3<<1)>>1]|0;l=d+p&65535;s=x-s&65535;d=p-d&65535;p=l+w&65535;b[t+24>>1]=p;l=w-l&65535;b[t+26>>1]=l;c=d+s&65535;b[t+28>>1]=c;d=s-d&65535;b[t+30>>1]=d;v=b[v>>1]|0;t=o+v&65535;s=p+u&65535;o=v-o&65535;p=u-p&65535;b[a>>1]=s+t;b[a+8>>1]=t-s;b[a+16>>1]=p+o;b[a+24>>1]=o-p;r=b[r>>1]|0;p=k+r&65535;o=l+q&65535;k=r-k&65535;l=q-l&65535;b[a+2>>1]=o+p;b[a+10>>1]=p-o;b[a+18>>1]=l+k;b[a+26>>1]=k-l;n=b[n>>1]|0;l=f+n&65535;m=b[m>>1]|0;k=c+m&65535;f=n-f&65535;c=m-c&65535;b[a+4>>1]=k+l;b[a+12>>1]=l-k;b[a+20>>1]=c+f;b[a+28>>1]=f-c;c=b[g>>1]|0;g=j+c&65535;h=b[h>>1]|0;f=d+h&65535;c=c-j&65535;d=h-d&65535;b[a+6>>1]=f+g;b[a+14>>1]=g-f;b[a+22>>1]=d+c;b[a+30>>1]=c-d;i=e;return}function xg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;f=i;i=i+128|0;e=f|0;g=0;while(1){j=ga(g,d)|0;t=b[c+(j<<1)>>1]|0;r=b[c+(j+4<<1)>>1]|0;l=r+t&65535;s=b[c+(j+1<<1)>>1]|0;h=b[c+(j+5<<1)>>1]|0;m=h+s&65535;p=b[c+(j+2<<1)>>1]|0;k=b[c+(j+6<<1)>>1]|0;o=k+p&65535;q=b[c+(j+3<<1)>>1]|0;j=b[c+(j+7<<1)>>1]|0;n=j+q&65535;r=t-r&65535;h=s-h&65535;k=p-k&65535;j=q-j&65535;q=o+l&65535;p=n+m&65535;o=l-o&65535;n=m-n&65535;m=k+r&65535;l=j+h&65535;k=r-k&65535;j=h-j&65535;h=g<<3;b[e+(h<<1)>>1]=p+q;b[e+((h|1)<<1)>>1]=q-p;b[e+((h|2)<<1)>>1]=n+o;b[e+((h|3)<<1)>>1]=o-n;b[e+((h|4)<<1)>>1]=l+m;b[e+((h|5)<<1)>>1]=m-l;b[e+((h|6)<<1)>>1]=j+k;b[e+((h|7)<<1)>>1]=k-j;g=g+1|0;if((g|0)>=8){d=0;break}}do{y=b[e+(d<<1)>>1]|0;m=d+32|0;w=b[e+(m<<1)>>1]|0;o=w+y&65535;g=d+8|0;x=b[e+(g<<1)>>1]|0;p=d+40|0;v=b[e+(p<<1)>>1]|0;n=v+x&65535;h=d+16|0;c=b[e+(h<<1)>>1]|0;q=d+48|0;r=b[e+(q<<1)>>1]|0;j=r+c&65535;l=d+24|0;u=b[e+(l<<1)>>1]|0;t=d+56|0;s=b[e+(t<<1)>>1]|0;k=s+u&65535;w=y-w&65535;v=x-v&65535;r=c-r&65535;s=u-s&65535;u=j+o&65535;c=k+n&65535;j=o-j&65535;k=n-k&65535;n=r+w&65535;o=s+v&65535;r=w-r&65535;s=v-s&65535;b[a+(d<<1)>>1]=c+u;b[a+(g<<1)>>1]=u-c;b[a+(h<<1)>>1]=k+j;b[a+(l<<1)>>1]=j-k;b[a+(m<<1)>>1]=o+n;b[a+(p<<1)>>1]=n-o;b[a+(q<<1)>>1]=s+r;b[a+(t<<1)>>1]=r-s;d=d+1|0;}while((d|0)<8);i=f;return}function yg(a,b,c){a=a|0;b=b|0;c=c|0;vg(a,16,b,c);return}function zg(a,b,c){a=a|0;b=b|0;c=c|0;vg(a,32,b,c);return}function Ag(c,d,e,f,g,h){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;if((g&1|0)!=0){ec(13704,16192,40,18488)}if((h|0)>0&(g|0)>0){j=0}else{return}do{i=e+((ga(j,f)|0)<<1)|0;k=c+(ga(j,d)|0)|0;l=0;while(1){m=(b[i>>1]|0)+32>>6;if((m|0)<0){m=0}else{m=(m|0)>255?-1:m&255}a[k]=m;m=(b[i+2>>1]|0)+32>>6;if((m|0)<0){m=0}else{m=(m|0)>255?-1:m&255}a[k+1|0]=m;l=l+2|0;if((l|0)<(g|0)){i=i+4|0;k=k+2|0}else{break}}j=j+1|0;}while((j|0)<(h|0));return}function Bg(c,d,e,f,g,h,i,j,k){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;if((k|0)<=0){ec(13312,16192,60,18552)}l=1<<k-1;if((h|0)>0&(g|0)>0){m=0}else{return}do{n=e+((ga(m,f)|0)<<1)|0;o=c+(ga(m,d)|0)|0;p=0;while(1){q=((ga(b[n>>1]|0,i)|0)+l>>k)+j|0;if((q|0)<0){q=0}else{q=(q|0)>255?-1:q&255}a[o]=q;p=p+1|0;if((p|0)<(g|0)){n=n+2|0;o=o+1|0}else{break}}m=m+1|0;}while((m|0)<(h|0));return}function Cg(c,d,e,f,g,h,i,j,k,l,m,n){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0;if((n|0)<=0){ec(13312,16192,80,18456)}m=k+1+m<<n;if((i|0)<=0){return}k=n+1|0;if((h|0)>0){o=0}else{return}do{p=ga(o,g)|0;n=e+(p<<1)|0;p=f+(p<<1)|0;q=c+(ga(o,d)|0)|0;r=0;while(1){s=ga(b[n>>1]|0,j)|0;s=s+m+(ga(b[p>>1]|0,l)|0)>>k;if((s|0)<0){s=0}else{s=(s|0)>255?-1:s&255}a[q]=s;r=r+1|0;if((r|0)<(h|0)){n=n+2|0;p=p+2|0;q=q+1|0}else{break}}o=o+1|0;}while((o|0)<(i|0));return}function Dg(c,d,e,f,g,h,i){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((h&1|0)!=0){ec(13704,16192,105,18312)}if((i|0)<=0){return}k=(h|0)>0;j=0;do{m=ga(j,g)|0;if(k){l=e+(m<<1)|0;m=f+(m<<1)|0;n=c+(ga(j,d)|0)|0;o=0;while(1){p=(b[l>>1]|0)+64+(b[m>>1]|0)>>7;if((p|0)<0){p=0}else{p=(p|0)>255?-1:p&255}a[n]=p;p=(b[l+2>>1]|0)+64+(b[m+2>>1]|0)>>7;if((p|0)<0){p=0}else{p=(p|0)>255?-1:p&255}a[n+1|0]=p;o=o+2|0;if((o|0)<(h|0)){l=l+4|0;m=m+4|0;n=n+2|0}else{break}}}j=j+1|0;}while((j|0)<(i|0));return}function Eg(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=14-h|0;if((j|0)>0){i=1<<j-1}else{i=0}if((f&1|0)!=0){ec(13704,16192,172,18424)}if((g|0)<=0){return}k=(f|0)>0;m=(1<<h)-1|0;n=m&65535;h=0;do{if(k){o=d+((ga(h,e)|0)<<1)|0;l=a+((ga(h,c)|0)<<1)|0;p=0;while(1){q=(b[o>>1]|0)+i>>j;if((q|0)<0){q=0}else{q=(q|0)>(m|0)?n:q&65535}b[l>>1]=q;q=(b[o+2>>1]|0)+i>>j;if((q|0)<0){q=0}else{q=(q|0)>(m|0)?n:q&65535}b[l+2>>1]=q;p=p+2|0;if((p|0)<(f|0)){o=o+4|0;l=l+4|0}else{break}}}h=h+1|0;}while((h|0)<(g|0));return}function Fg(a,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((j|0)<=0){ec(13312,16192,193,18520)}l=1<<j-1;if((g|0)<=0){return}m=(f|0)>0;n=(1<<k)-1|0;k=0;do{if(m){o=d+((ga(k,e)|0)<<1)|0;p=a+((ga(k,c)|0)<<1)|0;q=0;while(1){r=((ga(b[o>>1]|0,h)|0)+l>>j)+i|0;if((r|0)<0){r=0}else{r=((r|0)>(n|0)?n:r)&65535}b[p>>1]=r;q=q+1|0;if((q|0)<(f|0)){o=o+2|0;p=p+2|0}else{break}}}k=k+1|0;}while((k|0)<(g|0));return}function Gg(a,c,d,e,f,g,h,i,j,k,l,m,n){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0;if((m|0)<=0){ec(13312,16192,213,18392)}j=j+1+l<<m;if((h|0)<=0){return}l=(g|0)>0;m=m+1|0;o=(1<<n)-1|0;n=0;do{q=ga(n,f)|0;if(l){p=d+(q<<1)|0;q=e+(q<<1)|0;r=a+((ga(n,c)|0)<<1)|0;s=0;while(1){t=ga(b[p>>1]|0,i)|0;t=t+j+(ga(b[q>>1]|0,k)|0)>>m;if((t|0)<0){t=0}else{t=((t|0)>(o|0)?o:t)&65535}b[r>>1]=t;s=s+1|0;if((s|0)<(g|0)){p=p+2|0;q=q+2|0;r=r+2|0}else{break}}}n=n+1|0;}while((n|0)<(h|0));return}function Hg(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=15-i|0;k=1<<j-1;if((g&1|0)!=0){ec(13704,16192,238,18192)}if((h|0)<=0){return}l=(g|0)>0;n=(1<<i)-1|0;m=n&65535;i=0;do{p=ga(i,f)|0;if(l){o=d+(p<<1)|0;p=e+(p<<1)|0;q=a+((ga(i,c)|0)<<1)|0;r=0;while(1){s=(b[o>>1]|0)+k+(b[p>>1]|0)>>j;if((s|0)<0){s=0}else{s=(s|0)>(n|0)?m:s&65535}b[q>>1]=s;s=(b[o+2>>1]|0)+k+(b[p+2>>1]|0)>>j;if((s|0)<0){s=0}else{s=(s|0)>(n|0)?m:s&65535}b[q+2>>1]=s;r=r+2|0;if((r|0)<(g|0)){o=o+4|0;p=p+4|0;q=q+4|0}else{break}}}i=i+1|0;}while((i|0)<(h|0));return}function Ig(a,c,e,f,g,h,i,j,k){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0;if((h|0)<=0){return}j=(g|0)>0;i=0;do{if(j){l=a+((ga(i,c)|0)<<1)|0;k=e+(ga(i,f)|0)|0;m=0;while(1){b[l>>1]=(d[k]|0)<<6;m=m+1|0;if((m|0)<(g|0)){l=l+2|0;k=k+1|0}else{break}}}i=i+1|0;}while((i|0)<(h|0));return}function Jg(a,c,d,f,g,h,i,j,k,l){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;k=14-l|0;if((h|0)<=0){return}m=(g|0)>0;i=0;do{if(m){l=a+((ga(i,c)|0)<<1)|0;j=d+((ga(i,f)|0)<<1)|0;n=0;while(1){b[l>>1]=(e[j>>1]|0)<<k;n=n+1|0;if((n|0)<(g|0)){l=l+2|0;j=j+2|0}else{break}}}i=i+1|0;}while((i|0)<(h|0));return}function Kg(a,c,e,f,g,h,j,k,l,m){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;l=i;q=m-8|0;n=h+3|0;p=ga(g<<1,n)|0;m=i;i=i+p|0;i=i+7&-8;p=h+2|0;if((p|0)>-1){o=(g|0)>0;s=-1;while(1){a:do{if(o){r=s+1|0;s=e+((ga(s,f)|0)-1)|0;u=0;while(1){switch(j|0){case 2:{t=((d[s+1|0]|0)*54|0)+((d[s]|0)*-4|0)+(d[s+2|0]<<4)-(d[s+3|0]<<1)>>q&65535;break};case 5:{t=((d[s+1|0]|0)*28|0)+((d[s]|0)*-4|0)+((d[s+2|0]|0)*46|0)+((d[s+3|0]|0)*-6|0)>>q&65535;break};case 6:{t=(d[s+1|0]<<4)+((d[s]|0)*-2|0)+((d[s+2|0]|0)*54|0)-(d[s+3|0]<<2)>>q&65535;break};case 4:{t=((d[s]|0)*-4|0)-(d[s+3|0]<<2)+(((d[s+2|0]|0)+(d[s+1|0]|0)|0)*36|0)>>q&65535;break};case 0:{t=d[s+1|0]|0;break};case 1:{t=((d[s+1|0]|0)*58|0)+((d[s]|0)*-2|0)+((d[s+2|0]|0)*10|0)-(d[s+3|0]<<1)>>q&65535;break};case 3:{t=((d[s+1|0]|0)*46|0)+((d[s]|0)*-6|0)+((d[s+2|0]|0)*28|0)-(d[s+3|0]<<2)>>q&65535;break};default:{t=((d[s+1|0]|0)*10|0)+((d[s]|0)*-2|0)+((d[s+2|0]|0)*58|0)-(d[s+3|0]<<1)>>q&65535}}v=m+(r+(ga(u,n)|0)<<1)|0;b[v>>1]=t;u=u+1|0;if((u|0)<(g|0)){s=s+1|0}else{break a}}}else{r=s+1|0}}while(0);if((r|0)<(p|0)){s=r}else{break}}}e=(j|0)==0?q:6;if((g|0)<=0){i=l;return}f=(h|0)>0;j=0;do{b:do{if(f){o=m+((ga(j,n)|0)<<1)|0;q=0;while(1){switch(k|0){case 0:{p=b[o+2>>1]|0;break};case 1:{p=((b[o+2>>1]|0)*58|0)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*10|0)-(b[o+6>>1]<<1)>>e&65535;break};case 2:{p=((b[o+2>>1]|0)*54|0)+((b[o>>1]|0)*-4|0)+(b[o+4>>1]<<4)-(b[o+6>>1]<<1)>>e&65535;break};case 3:{p=((b[o+2>>1]|0)*46|0)+((b[o>>1]|0)*-6|0)+((b[o+4>>1]|0)*28|0)-(b[o+6>>1]<<2)>>e&65535;break};case 4:{p=((b[o>>1]|0)*-4|0)-(b[o+6>>1]<<2)+(((b[o+4>>1]|0)+(b[o+2>>1]|0)|0)*36|0)>>e&65535;break};case 5:{p=((b[o+2>>1]|0)*28|0)+((b[o>>1]|0)*-4|0)+((b[o+4>>1]|0)*46|0)+((b[o+6>>1]|0)*-6|0)>>e&65535;break};case 6:{p=(b[o+2>>1]<<4)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*54|0)-(b[o+6>>1]<<2)>>e&65535;break};default:{p=((b[o+2>>1]|0)*10|0)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*58|0)-(b[o+6>>1]<<1)>>e&65535}}v=a+((ga(q,c)|0)+j<<1)|0;b[v>>1]=p;q=q+1|0;if((q|0)<(h|0)){o=o+2|0}else{break b}}}}while(0);j=j+1|0;}while((j|0)<(g|0));i=l;return}function Lg(a,c,d,f,g,h,j,k,l,m){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;l=i;q=m-8|0;n=h+3|0;p=ga(g<<1,n)|0;m=i;i=i+p|0;i=i+7&-8;p=h+2|0;if((p|0)>-1){o=(g|0)>0;s=-1;while(1){a:do{if(o){r=s+1|0;s=d+((ga(s,f)|0)-1<<1)|0;u=0;while(1){switch(j|0){case 2:{t=((e[s+2>>1]|0)*54|0)+((e[s>>1]|0)*-4|0)+(e[s+4>>1]<<4)-(e[s+6>>1]<<1)>>q&65535;break};case 3:{t=((e[s+2>>1]|0)*46|0)+((e[s>>1]|0)*-6|0)+((e[s+4>>1]|0)*28|0)-(e[s+6>>1]<<2)>>q&65535;break};case 4:{t=((e[s>>1]|0)*-4|0)-(e[s+6>>1]<<2)+(((e[s+4>>1]|0)+(e[s+2>>1]|0)|0)*36|0)>>q&65535;break};case 5:{t=((e[s+2>>1]|0)*28|0)+((e[s>>1]|0)*-4|0)+((e[s+4>>1]|0)*46|0)+((e[s+6>>1]|0)*-6|0)>>q&65535;break};case 6:{t=(e[s+2>>1]<<4)+((e[s>>1]|0)*-2|0)+((e[s+4>>1]|0)*54|0)-(e[s+6>>1]<<2)>>q&65535;break};case 0:{t=b[s+2>>1]|0;break};case 1:{t=((e[s+2>>1]|0)*58|0)+((e[s>>1]|0)*-2|0)+((e[s+4>>1]|0)*10|0)-(e[s+6>>1]<<1)>>q&65535;break};default:{t=((e[s+2>>1]|0)*10|0)+((e[s>>1]|0)*-2|0)+((e[s+4>>1]|0)*58|0)-(e[s+6>>1]<<1)>>q&65535}}v=m+(r+(ga(u,n)|0)<<1)|0;b[v>>1]=t;u=u+1|0;if((u|0)<(g|0)){s=s+2|0}else{break a}}}else{r=s+1|0}}while(0);if((r|0)<(p|0)){s=r}else{break}}}d=(j|0)==0?q:6;if((g|0)<=0){i=l;return}f=(h|0)>0;j=0;do{b:do{if(f){o=m+((ga(j,n)|0)<<1)|0;q=0;while(1){switch(k|0){case 3:{p=((b[o+2>>1]|0)*46|0)+((b[o>>1]|0)*-6|0)+((b[o+4>>1]|0)*28|0)-(b[o+6>>1]<<2)>>d&65535;break};case 4:{p=((b[o>>1]|0)*-4|0)-(b[o+6>>1]<<2)+(((b[o+4>>1]|0)+(b[o+2>>1]|0)|0)*36|0)>>d&65535;break};case 5:{p=((b[o+2>>1]|0)*28|0)+((b[o>>1]|0)*-4|0)+((b[o+4>>1]|0)*46|0)+((b[o+6>>1]|0)*-6|0)>>d&65535;break};case 6:{p=(b[o+2>>1]<<4)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*54|0)-(b[o+6>>1]<<2)>>d&65535;break};case 0:{p=b[o+2>>1]|0;break};case 1:{p=((b[o+2>>1]|0)*58|0)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*10|0)-(b[o+6>>1]<<1)>>d&65535;break};case 2:{p=((b[o+2>>1]|0)*54|0)+((b[o>>1]|0)*-4|0)+(b[o+4>>1]<<4)-(b[o+6>>1]<<1)>>d&65535;break};default:{p=((b[o+2>>1]|0)*10|0)+((b[o>>1]|0)*-2|0)+((b[o+4>>1]|0)*58|0)-(b[o+6>>1]<<1)>>d&65535}}v=a+((ga(q,c)|0)+j<<1)|0;b[v>>1]=p;q=q+1|0;if((q|0)<(h|0)){o=o+2|0}else{break b}}}}while(0);j=j+1|0;}while((j|0)<(g|0));i=l;return}function Mg(a,c,e,f,g,h,i){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((h|0)<=0){return}j=(g|0)>0;i=0;do{if(j){m=0;k=a+((ga(i,c)|0)<<1)|0;l=e+(ga(i,f)|0)|0;while(1){p=(d[l+1|0]|0)<<6;o=(d[l+2|0]|0)<<6;n=(d[l+3|0]|0)<<6;b[k>>1]=(d[l]|0)<<6;b[k+2>>1]=p;b[k+4>>1]=o;b[k+6>>1]=n;m=m+4|0;if((m|0)<(g|0)){k=k+8|0;l=l+4|0}else{break}}}i=i+1|0;}while((i|0)<(h|0));return}function Ng(a,c,d,f,g,h,i,j){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;i=14-j|0;if((h|0)<=0){return}k=(g|0)>0;j=0;do{if(k){l=d+((ga(j,f)|0)<<1)|0;m=a+((ga(j,c)|0)<<1)|0;n=0;while(1){b[m>>1]=(e[l>>1]|0)<<i;n=n+1|0;if((n|0)<(g|0)){l=l+2|0;m=m+2|0}else{break}}}j=j+1|0;}while((j|0)<(h|0));return}function Og(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,0,1,8);return}function Pg(a,e,f,g,h,i,j,k,l,m){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;o=c[30784+(k<<2)>>2]|0;p=c[30784+(l<<2)>>2]|0;q=c[30888+(l<<2)>>2]|0;n=p+i+q|0;m=m-8|0;do{if((k|0)==2){u=-p|0;q=q+i|0;if((q|0)<=(u|0)){break}r=(h|0)>0;do{if(r){s=f+((ga(u,g)|0)-o)|0;v=j+(u+p<<1)|0;w=0;while(1){t=s+1|0;b[v>>1]=(d[t]<<2)-(d[s]|0)+(d[s+6|0]<<2)-(d[s+7|0]|0)+(((d[s+4|0]|0)+(d[s+3|0]|0)|0)*40|0)+(((d[s+5|0]|0)+(d[s+2|0]|0)|0)*-11|0)>>m;w=w+1|0;if((w|0)<(h|0)){s=t;v=v+(n<<1)|0}else{break}}}u=u+1|0;}while((u|0)<(q|0))}else if((k|0)==3){s=-p|0;q=q+i|0;if((q|0)<=(s|0)){break}r=(h|0)>0;do{if(r){u=f+((ga(s,g)|0)-o)|0;t=j+(s+p<<1)|0;w=0;while(1){v=u+1|0;b[t>>1]=((d[v]|0)*-5|0)+(d[u]|0)+((d[u+2|0]|0)*17|0)+((d[u+3|0]|0)*58|0)+((d[u+4|0]|0)*-10|0)+(d[u+5|0]<<2)-(d[u+6|0]|0)>>m;w=w+1|0;if((w|0)<(h|0)){u=v;t=t+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(q|0))}else if((k|0)==1){v=-p|0;r=q+i|0;if((r|0)<=(v|0)){break}q=(h|0)>0;do{if(q){t=f+((ga(v,g)|0)-o)|0;u=j+(v+p<<1)|0;w=0;while(1){s=t+1|0;b[u>>1]=(d[s]<<2)-(d[t]|0)+((d[t+2|0]|0)*-10|0)+((d[t+3|0]|0)*58|0)+((d[t+4|0]|0)*17|0)+((d[t+5|0]|0)*-5|0)+(d[t+6|0]|0)>>m;w=w+1|0;if((w|0)<(h|0)){t=s;u=u+(n<<1)|0}else{break}}}v=v+1|0;}while((v|0)<(r|0))}else if((k|0)==0){s=-p|0;q=q+i|0;if((q|0)<=(s|0)){break}r=(h|0)>0;do{if(r){u=f+((ga(s,g)|0)-o)|0;t=j+(s+p<<1)|0;v=0;while(1){b[t>>1]=d[u]|0;v=v+1|0;if((v|0)<(h|0)){u=u+1|0;t=t+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(q|0))}}while(0);k=(k|0)==0?m:6;if((l|0)==3){if((h|0)<=0){return}l=(i|0)>0;f=0;do{if(l){p=j+((ga(f,n)|0)<<1)|0;o=a+(f<<1)|0;m=0;while(1){g=p+2|0;b[o>>1]=((b[g>>1]|0)*-5|0)+(b[p>>1]|0)+((b[p+4>>1]|0)*17|0)+((b[p+6>>1]|0)*58|0)+((b[p+8>>1]|0)*-10|0)+(b[p+10>>1]<<2)-(b[p+12>>1]|0)>>k;m=m+1|0;if((m|0)<(i|0)){p=g;o=o+(e<<1)|0}else{break}}}f=f+1|0;}while((f|0)<(h|0));return}else if((l|0)==2){if((h|0)<=0){return}o=(i|0)>0;l=0;do{if(o){g=j+((ga(l,n)|0)<<1)|0;p=a+(l<<1)|0;m=0;while(1){f=g+2|0;b[p>>1]=(b[f>>1]<<2)-(b[g>>1]|0)+(b[g+12>>1]<<2)-(b[g+14>>1]|0)+(((b[g+8>>1]|0)+(b[g+6>>1]|0)|0)*40|0)+(((b[g+10>>1]|0)+(b[g+4>>1]|0)|0)*-11|0)>>k;m=m+1|0;if((m|0)<(i|0)){g=f;p=p+(e<<1)|0}else{break}}}l=l+1|0;}while((l|0)<(h|0));return}else if((l|0)==1){if((h|0)<=0){return}p=(i|0)>0;o=0;do{if(p){f=j+((ga(o,n)|0)<<1)|0;g=a+(o<<1)|0;m=0;while(1){l=f+2|0;b[g>>1]=(b[l>>1]<<2)-(b[f>>1]|0)+((b[f+4>>1]|0)*-10|0)+((b[f+6>>1]|0)*58|0)+((b[f+8>>1]|0)*17|0)+((b[f+10>>1]|0)*-5|0)+(b[f+12>>1]|0)>>k;m=m+1|0;if((m|0)<(i|0)){f=l;g=g+(e<<1)|0}else{break}}}o=o+1|0;}while((o|0)<(h|0));return}else if((l|0)==0){if((h|0)<=0){return}k=(i|0)>0;l=0;do{if(k){o=j+((ga(l,n)|0)<<1)|0;p=a+(l<<1)|0;g=0;while(1){b[p>>1]=b[o>>1]|0;g=g+1|0;if((g|0)<(i|0)){o=o+2|0;p=p+(e<<1)|0}else{break}}}l=l+1|0;}while((l|0)<(h|0));return}else{return}}function Qg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,0,2,8);return}function Rg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,0,3,8);return}function Sg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,1,0,8);return}function Tg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,1,1,8);return}function Ug(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,1,2,8);return}function Vg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,1,3,8);return}function Wg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,2,0,8);return}function Xg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,2,1,8);return}function Yg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,2,2,8);return}function Zg(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,2,3,8);return}function _g(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,3,0,8);return}function $g(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,3,1,8);return}function ah(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,3,2,8);return}function bh(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Pg(a,b,c,d,e,f,g,3,3,8);return}function ch(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,0,1,h);return}function dh(a,d,f,g,h,i,j,k,l,m){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;p=c[30784+(k<<2)>>2]|0;o=c[30784+(l<<2)>>2]|0;q=c[30888+(l<<2)>>2]|0;n=o+i+q|0;m=m-8|0;do{if((k|0)==1){s=-o|0;q=q+i|0;if((q|0)<=(s|0)){break}r=(h|0)>0;do{if(r){u=f+((ga(s,g)|0)-p<<1)|0;t=j+(s+o<<1)|0;w=0;while(1){v=u+2|0;b[t>>1]=(e[v>>1]<<2)-(e[u>>1]|0)+((e[u+4>>1]|0)*-10|0)+((e[u+6>>1]|0)*58|0)+((e[u+8>>1]|0)*17|0)+((e[u+10>>1]|0)*-5|0)+(e[u+12>>1]|0)>>m;w=w+1|0;if((w|0)<(h|0)){u=v;t=t+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(q|0))}else if((k|0)==2){s=-o|0;q=q+i|0;if((q|0)<=(s|0)){break}r=(h|0)>0;do{if(r){u=f+((ga(s,g)|0)-p<<1)|0;t=j+(s+o<<1)|0;w=0;while(1){v=u+2|0;b[t>>1]=(e[v>>1]<<2)-(e[u>>1]|0)+(e[u+12>>1]<<2)-(e[u+14>>1]|0)+(((e[u+8>>1]|0)+(e[u+6>>1]|0)|0)*40|0)+(((e[u+10>>1]|0)+(e[u+4>>1]|0)|0)*-11|0)>>m;w=w+1|0;if((w|0)<(h|0)){u=v;t=t+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(q|0))}else if((k|0)==0){s=-o|0;r=q+i|0;if((r|0)<=(s|0)){break}q=(h|0)>0;do{if(q){t=f+((ga(s,g)|0)-p<<1)|0;u=j+(s+o<<1)|0;v=0;while(1){b[u>>1]=b[t>>1]|0;v=v+1|0;if((v|0)<(h|0)){t=t+2|0;u=u+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(r|0))}else if((k|0)==3){s=-o|0;r=q+i|0;if((r|0)<=(s|0)){break}q=(h|0)>0;do{if(q){v=f+((ga(s,g)|0)-p<<1)|0;t=j+(s+o<<1)|0;w=0;while(1){u=v+2|0;b[t>>1]=((e[u>>1]|0)*-5|0)+(e[v>>1]|0)+((e[v+4>>1]|0)*17|0)+((e[v+6>>1]|0)*58|0)+((e[v+8>>1]|0)*-10|0)+(e[v+10>>1]<<2)-(e[v+12>>1]|0)>>m;w=w+1|0;if((w|0)<(h|0)){v=u;t=t+(n<<1)|0}else{break}}}s=s+1|0;}while((s|0)<(r|0))}}while(0);o=(k|0)==0?m:6;if((l|0)==3){if((h|0)<=0){return}k=(i|0)>0;l=0;do{if(k){p=j+((ga(l,n)|0)<<1)|0;f=a+(l<<1)|0;m=0;while(1){g=p+2|0;b[f>>1]=((b[g>>1]|0)*-5|0)+(b[p>>1]|0)+((b[p+4>>1]|0)*17|0)+((b[p+6>>1]|0)*58|0)+((b[p+8>>1]|0)*-10|0)+(b[p+10>>1]<<2)-(b[p+12>>1]|0)>>o;m=m+1|0;if((m|0)<(i|0)){p=g;f=f+(d<<1)|0}else{break}}}l=l+1|0;}while((l|0)<(h|0));return}else if((l|0)==2){if((h|0)<=0){return}k=(i|0)>0;l=0;do{if(k){p=j+((ga(l,n)|0)<<1)|0;f=a+(l<<1)|0;m=0;while(1){g=p+2|0;b[f>>1]=(b[g>>1]<<2)-(b[p>>1]|0)+(b[p+12>>1]<<2)-(b[p+14>>1]|0)+(((b[p+8>>1]|0)+(b[p+6>>1]|0)|0)*40|0)+(((b[p+10>>1]|0)+(b[p+4>>1]|0)|0)*-11|0)>>o;m=m+1|0;if((m|0)<(i|0)){p=g;f=f+(d<<1)|0}else{break}}}l=l+1|0;}while((l|0)<(h|0));return}else if((l|0)==1){if((h|0)<=0){return}p=(i|0)>0;g=0;do{if(p){k=j+((ga(g,n)|0)<<1)|0;f=a+(g<<1)|0;m=0;while(1){l=k+2|0;b[f>>1]=(b[l>>1]<<2)-(b[k>>1]|0)+((b[k+4>>1]|0)*-10|0)+((b[k+6>>1]|0)*58|0)+((b[k+8>>1]|0)*17|0)+((b[k+10>>1]|0)*-5|0)+(b[k+12>>1]|0)>>o;m=m+1|0;if((m|0)<(i|0)){k=l;f=f+(d<<1)|0}else{break}}}g=g+1|0;}while((g|0)<(h|0));return}else if((l|0)==0){if((h|0)<=0){return}o=(i|0)>0;l=0;do{if(o){k=j+((ga(l,n)|0)<<1)|0;f=a+(l<<1)|0;p=0;while(1){b[f>>1]=b[k>>1]|0;p=p+1|0;if((p|0)<(i|0)){k=k+2|0;f=f+(d<<1)|0}else{break}}}l=l+1|0;}while((l|0)<(h|0));return}else{return}}function eh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,0,2,h);return}function fh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,0,3,h);return}function gh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,1,0,h);return}function hh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,1,1,h);return}function ih(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,1,2,h);return}function jh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,1,3,h);return}function kh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,2,0,h);return}function lh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,2,1,h);return}function mh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,2,2,h);return}function nh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,2,3,h);return}function oh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,3,0,h);return}function ph(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,3,1,h);return}function qh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,3,2,h);return}function rh(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;dh(a,b,c,d,e,f,g,3,3,h);return}function sh(a){a=a|0;dv(a+8|0,0,48)|0;c[a>>2]=30;c[a+4>>2]=30;return}function th(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+12|0;g=c[b>>2]|0;d=a+8|0;f=c[d>>2]|0;if((g|0)!=(f|0)){e=0;do{h=c[f+(e<<2)>>2]|0;if((h|0)!=0){Rh(h);Pu(h);g=c[b>>2]|0;f=c[d>>2]|0}e=e+1|0;}while(e>>>0<g-f>>2>>>0)}e=a+32|0;Gh(e|0);g=a+36|0;i=c[g>>2]|0;f=a+40|0;h=c[f>>2]|0;do{if((i|0)!=(h|0)){do{Pu(c[i>>2]|0);i=i+4|0;}while((i|0)!=(h|0));g=c[g>>2]|0;h=c[f>>2]|0;if((h|0)==(g|0)){break}c[f>>2]=h+(~((h-4+(-g|0)|0)>>>2)<<2)}}while(0);e=c[e>>2]|0;if((e|0)!=0){Pu(e)}e=c[a+20>>2]|0;if((e|0)!=0){a=a+24|0;f=c[a>>2]|0;if((f|0)!=(e|0)){c[a>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2)}Pu(e)}d=c[d>>2]|0;if((d|0)==0){return}a=c[b>>2]|0;if((a|0)!=(d|0)){c[b>>2]=a+(~((a-4+(-d|0)|0)>>>2)<<2)}Pu(d);return}function uh(a){a=a|0;return}function vh(b,d){b=b|0;d=d|0;var e=0,f=0;if(d){f=1;return f|0}f=c[b+12>>2]|0;e=c[b+8>>2]|0;d=f-e>>2;if(d>>>0<(c[b>>2]|0)>>>0){f=1;return f|0}if((f|0)==(e|0)){f=0;return f|0}else{b=0}while(1){f=c[e+(b<<2)>>2]|0;if((a[f+100|0]|0)==0){if((c[f+96>>2]|0)==0){e=1;d=7;break}}b=b+1|0;if(!(b>>>0<d>>>0)){e=0;d=7;break}}if((d|0)==7){return e|0}return 0}function wh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[a+12>>2]|0;a=c[a+8>>2]|0;a:do{if(!((f|0)==(a|0)|e^1)){e=0;b:while(1){g=c[a+(e<<2)>>2]|0;do{if((c[g+92>>2]|0)==(b|0)){if((c[g+104>>2]|0)<=(d|0)){break}if((c[g+96>>2]|0)==2){break b}}}while(0);e=e+1|0;if(!(e>>>0<f-a>>2>>>0)){break a}}return e|0}}while(0);if((f|0)==(a|0)){g=-1;return g|0}else{g=0}c:while(1){e=c[a+(g<<2)>>2]|0;do{if((c[e+92>>2]|0)==(b|0)){if((c[e+104>>2]|0)<=(d|0)){break}if((c[e+96>>2]|0)!=0){e=g;d=11;break c}}}while(0);g=g+1|0;if(!(g>>>0<f-a>>2>>>0)){e=-1;d=11;break}}if((d|0)==11){return e|0}return 0}function xh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[a+12>>2]|0;a=c[a+8>>2]|0;a:do{if(!((f|0)==(a|0)|e^1)){e=0;b:while(1){g=c[a+(e<<2)>>2]|0;do{if((c[g+88>>2]|0)==(b|0)){if((c[g+104>>2]|0)<=(d|0)){break}if((c[g+96>>2]|0)==2){break b}}}while(0);e=e+1|0;if(!(e>>>0<f-a>>2>>>0)){break a}}return e|0}}while(0);if((f|0)==(a|0)){g=-1;return g|0}else{g=0}c:while(1){e=c[a+(g<<2)>>2]|0;do{if((c[e+88>>2]|0)==(b|0)){if((c[e+104>>2]|0)<=(d|0)){break}if((c[e+96>>2]|0)!=0){e=g;d=11;break c}}}while(0);g=g+1|0;if(!(g>>>0<f-a>>2>>>0)){e=-1;d=11;break}}if((d|0)==11){return e|0}return 0}function yh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+12>>2]|0;a=c[a+8>>2]|0;if((d|0)==(a|0)){f=-1;return f|0}else{e=0}while(1){f=e+1|0;if((c[c[a+(e<<2)>>2]>>2]|0)==(b|0)){b=4;break}if(f>>>0<d-a>>2>>>0){e=f}else{e=-1;b=4;break}}if((b|0)==4){return e|0}return 0}function zh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;b=a+20|0;f=c[b>>2]|0;d=a+24|0;e=c[d>>2]|0;if((f|0)==(e|0)){ec(11328,15872,147,17376)}h=e-f>>2;if(h>>>0>1>>>0){i=c[(c[f>>2]|0)+92>>2]|0;e=0;k=1;while(1){g=c[(c[f+(k<<2)>>2]|0)+92>>2]|0;j=(g|0)<(i|0);e=j?k:e;k=k+1|0;if(k>>>0<h>>>0){i=j?g:i}else{break}}}else{e=0}g=f+(e<<2)|0;i=a+40|0;h=c[i>>2]|0;k=a+36|0;j=c[k>>2]|0;if((h|0)==(j|0)){o=0}else{o=(h-j<<8)-1|0}m=a+48|0;l=c[m>>2]|0;f=a+52|0;n=c[f>>2]|0;if((o-l|0)==(n|0)){Hh(a+32|0);a=c[f>>2]|0;l=c[m>>2]|0;j=c[k>>2]|0;h=c[i>>2]|0}else{a=n}i=a+l|0;do{if((h|0)!=(j|0)){h=(c[j+(i>>>10<<2)>>2]|0)+((i&1023)<<2)|0;if((h|0)==0){break}c[h>>2]=c[g>>2]}}while(0);c[f>>2]=a+1;c[(c[b>>2]|0)+(e<<2)>>2]=c[(c[d>>2]|0)-4>>2];n=c[d>>2]|0;o=n-4|0;c[d>>2]=n+(~((o+(-o|0)|0)>>>2)<<2);return}function Ah(a){a=a|0;var b=0,d=0;b=a+20|0;d=a+24|0;if((c[b>>2]|0)==(c[d>>2]|0)){d=0;return d|0}while(1){zh(a);if((c[b>>2]|0)==(c[d>>2]|0)){a=1;break}}return a|0}function Bh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=b+12|0;i=c[d>>2]|0;f=b+8|0;h=c[f>>2]|0;if((i|0)!=(h|0)){g=0;do{l=c[h+(g<<2)>>2]|0;j=l+100|0;k=l+96|0;if((a[j]|0)==0){if((c[k>>2]|0)!=0){e=4}}else{e=4}if((e|0)==4){e=0;a[j]=0;c[k>>2]=0;Qh(l);i=c[d>>2]|0;h=c[f>>2]|0}g=g+1|0;}while(g>>>0<i-h>>2>>>0)}e=c[b+20>>2]|0;d=b+24|0;f=c[d>>2]|0;if((f|0)==(e|0)){l=b+32|0;Gh(l);return}c[d>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2);l=b+32|0;Gh(l);return}function Ch(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=i;i=i+8|0;o=k|0;n=b+8|0;m=b+12|0;r=c[m>>2]|0;l=n|0;q=c[l>>2]|0;a:do{if((r|0)==(q|0)){p=-1;s=r;q=r}else{p=0;while(1){s=c[q+(p<<2)>>2]|0;if((a[s+100|0]|0)==0){if((c[s+96>>2]|0)==0){break}}p=p+1|0;if(!(p>>>0<r-q>>2>>>0)){p=-1;s=r;break a}}Qh(s);s=c[m>>2]|0;q=c[l>>2]|0}}while(0);r=s-q>>2;do{if(!(r>>>0<=(c[b+4>>2]|0)>>>0|(p|0)==(r-1|0))){q=c[s-4>>2]|0;if((a[q+100|0]|0)!=0){break}if((c[q+96>>2]|0)!=0){break}if((q|0)!=0){Rh(q);Pu(q);s=c[m>>2]|0}r=s-4|0;s=s+(~((r+(-r|0)|0)>>>2)<<2)|0;c[m>>2]=s}}while(0);do{if((p|0)==-1){p=s-(c[l>>2]|0)>>2;r=Nu(10624)|0;Oh(r);c[o>>2]=r;q=c[m>>2]|0;if(!(q>>>0<(c[b+16>>2]|0)>>>0)){Fh(n,o);break}if((q|0)==0){n=0}else{c[q>>2]=r;n=c[m>>2]|0}c[m>>2]=n+4}}while(0);m=c[(c[l>>2]|0)+(p<<2)>>2]|0;l=c[d+476>>2]|0;if(l>>>0<4>>>0){Ph(m,c[d+484>>2]|0,c[d+488>>2]|0,l,d,1,e,0,f,g,h,j)|0;a[m+10516|0]=0;i=k;return p|0}else{ec(13160,15872,259,17360);return 0}return 0}function Dh(a){a=a|0;var b=0,d=0;b=a+36|0;d=a+48|0;a=a+52|0;c[a>>2]=(c[a>>2]|0)-1;a=(c[d>>2]|0)+1|0;c[d>>2]=a;if(!(a>>>0>2047>>>0)){return}Pu(c[c[b>>2]>>2]|0);c[b>>2]=(c[b>>2]|0)+4;c[d>>2]=(c[d>>2]|0)-1024;return}function Eh(a){a=a|0;return}function Fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+4|0;d=a|0;h=c[d>>2]|0;k=h;g=(c[f>>2]|0)-k|0;i=g>>2;e=i+1|0;if(e>>>0>1073741823>>>0){Nr(0)}a=a+8|0;k=(c[a>>2]|0)-k|0;if(k>>2>>>0<536870911>>>0){k=k>>1;l=k>>>0<e>>>0?e:k;if((l|0)==0){k=0;l=0}else{j=5}}else{l=1073741823;j=5}if((j|0)==5){k=Nu(l<<2)|0}i=k+(i<<2)|0;if((i|0)!=0){c[i>>2]=c[b>>2]}b=h;cv(k|0,b|0,g)|0;c[d>>2]=k;c[f>>2]=k+(e<<2);c[a>>2]=k+(l<<2);if((h|0)==0){return}Pu(b);return}function Gh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;f=c[e>>2]|0;b=a+16|0;j=c[b>>2]|0;i=f+(j>>>10<<2)|0;d=a+8|0;h=c[d>>2]|0;if((h|0)==(f|0)){g=0;j=0;a=a+20|0}else{a=a+20|0;g=j+(c[a>>2]|0)|0;g=(c[f+(g>>>10<<2)>>2]|0)+((g&1023)<<2)|0;j=(c[i>>2]|0)+((j&1023)<<2)|0}a:while(1){do{if((j|0)==(g|0)){break a}j=j+4|0;}while((j-(c[i>>2]|0)|0)!=4096);j=i+4|0;i=j;j=c[j>>2]|0}c[a>>2]=0;g=h-f>>2;if(g>>>0>2>>>0){do{Pu(c[f>>2]|0);f=(c[e>>2]|0)+4|0;c[e>>2]=f;g=(c[d>>2]|0)-f>>2;}while(g>>>0>2>>>0)}if((g|0)==2){c[b>>2]=1024;return}else if((g|0)==1){c[b>>2]=512;return}else{return}}function Hh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=i;i=i+48|0;m=b|0;l=b+8|0;h=b+16|0;j=b+40|0;e=a+16|0;d=c[e>>2]|0;if(d>>>0>1023>>>0){c[e>>2]=d-1024;g=a+4|0;j=c[g>>2]|0;e=c[j>>2]|0;m=j+4|0;c[g>>2]=m;d=a+8|0;h=c[d>>2]|0;f=a+12|0;do{if((h|0)==(c[f>>2]|0)){a=a|0;n=c[a>>2]|0;if(m>>>0>n>>>0){q=m;f=((q-n>>2)+1|0)/-2|0;h=h-q|0;fv(j+(f+1<<2)|0,m|0,h|0)|0;h=j+((h>>2)+1+f<<2)|0;c[d>>2]=h;c[g>>2]=(c[g>>2]|0)+(f<<2);f=13;break}j=h-n>>1;j=(j|0)==0?1:j;l=Nu(j<<2)|0;k=l+(j>>>2<<2)|0;j=l+(j<<2)|0;if((m|0)==(h|0)){h=k}else{n=k;do{if((n|0)==0){n=0}else{c[n>>2]=c[m>>2]}n=n+4|0;m=m+4|0;}while((m|0)!=(h|0));h=n;n=c[a>>2]|0}c[a>>2]=l;c[g>>2]=k;c[d>>2]=h;c[f>>2]=j;if((n|0)==0){f=12;break}Pu(n);h=c[d>>2]|0;f=12}else{f=12}}while(0);if((f|0)==12){if((h|0)==0){e=0}else{f=13}}if((f|0)==13){c[h>>2]=e;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}p=a|0;d=a+8|0;n=c[d>>2]|0;f=a+4|0;k=n-(c[f>>2]|0)>>2;e=a+12|0;o=c[e>>2]|0;g=a|0;q=o-(c[g>>2]|0)|0;if(!(k>>>0<q>>2>>>0)){l=q>>1;q=(l|0)==0?1:l;l=h+12|0;c[h+16>>2]=a+12;p=Nu(q<<2)|0;m=h|0;c[m>>2]=p;o=p+(k<<2)|0;a=h+8|0;c[a>>2]=o;k=h+4|0;c[k>>2]=o;c[l>>2]=p+(q<<2);q=Nu(4096)|0;c[j>>2]=q;Kh(h,j);j=c[d>>2]|0;while(1){if((j|0)==(c[f>>2]|0)){break}q=j-4|0;Lh(h,q);j=q}h=c[g>>2]|0;c[g>>2]=c[m>>2];c[m>>2]=h;c[f>>2]=c[k>>2];c[k>>2]=j;f=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=f;q=c[e>>2]|0;c[e>>2]=c[l>>2];c[l>>2]=q;if((f|0)!=(j|0)){c[a>>2]=f+(~((f-4+(-j|0)|0)>>>2)<<2)}if((h|0)==0){i=b;return}Pu(h);i=b;return}a=Nu(4096)|0;if((o|0)!=(n|0)){c[m>>2]=a;Ih(p,m);i=b;return}c[l>>2]=a;Jh(p,l);h=c[f>>2]|0;a=c[h>>2]|0;n=h+4|0;c[f>>2]=n;l=c[d>>2]|0;do{if((l|0)==(c[e>>2]|0)){m=c[g>>2]|0;if(n>>>0>m>>>0){p=n;q=((p-m>>2)+1|0)/-2|0;l=l-p|0;fv(h+(q+1<<2)|0,n|0,l|0)|0;l=h+((l>>2)+1+q<<2)|0;c[d>>2]=l;c[f>>2]=(c[f>>2]|0)+(q<<2);f=29;break}h=l-m>>1;h=(h|0)==0?1:h;k=Nu(h<<2)|0;j=k+(h>>>2<<2)|0;h=k+(h<<2)|0;if((n|0)==(l|0)){l=j}else{m=j;do{if((m|0)==0){m=0}else{c[m>>2]=c[n>>2]}m=m+4|0;n=n+4|0;}while((n|0)!=(l|0));l=m;m=c[g>>2]|0}c[g>>2]=k;c[f>>2]=j;c[d>>2]=l;c[e>>2]=h;if((m|0)==0){f=28;break}Pu(m);l=c[d>>2]|0;f=28}else{f=28}}while(0);if((f|0)==28){if((l|0)==0){e=0}else{f=29}}if((f|0)==29){c[l>>2]=a;e=c[d>>2]|0}c[d>>2]=e+4;i=b;return}function Ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function Jh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function Kh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;h=c[d>>2]|0;e=a+12|0;do{if((h|0)==(c[e>>2]|0)){f=a+4|0;k=c[f>>2]|0;a=a|0;l=c[a>>2]|0;if(k>>>0>l>>>0){j=k;l=((j-l>>2)+1|0)/-2|0;h=h-j|0;fv(k+(l<<2)|0,k|0,h|0)|0;h=k+(l+(h>>2)<<2)|0;c[d>>2]=h;c[f>>2]=(c[f>>2]|0)+(l<<2);break}g=h-l>>1;j=(g|0)==0?1:g;i=Nu(j<<2)|0;g=i+(j>>>2<<2)|0;j=i+(j<<2)|0;if((k|0)==(h|0)){h=g}else{l=g;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(h|0));h=l;l=c[a>>2]|0}c[a>>2]=i;c[f>>2]=g;c[d>>2]=h;c[e>>2]=j;if((l|0)==0){break}Pu(l);h=c[d>>2]|0}}while(0);if((h|0)==0){l=0;l=l+4|0;c[d>>2]=l;return}c[h>>2]=c[b>>2];l=c[d>>2]|0;l=l+4|0;c[d>>2]=l;return}function Lh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+4|0;k=c[d>>2]|0;e=a|0;do{if((k|0)==(c[e>>2]|0)){f=a+8|0;g=c[f>>2]|0;a=a+12|0;l=c[a>>2]|0;h=l;if(g>>>0<l>>>0){j=g;l=((h-j>>2)+1|0)/2|0;j=j-k|0;i=g+(l-(j>>2)<<2)|0;fv(i|0,k|0,j|0)|0;c[d>>2]=i;c[f>>2]=(c[f>>2]|0)+(l<<2);break}h=h-k>>1;j=(h|0)==0?1:h;h=Nu(j<<2)|0;i=h+((j+3|0)>>>2<<2)|0;j=h+(j<<2)|0;if((k|0)==(g|0)){l=i}else{l=i;do{if((l|0)==0){l=0}else{c[l>>2]=c[k>>2]}l=l+4|0;k=k+4|0;}while((k|0)!=(g|0));k=c[e>>2]|0}c[e>>2]=h;c[d>>2]=i;c[f>>2]=l;c[a>>2]=j;if((k|0)==0){break}Pu(k);i=c[d>>2]|0}else{i=k}}while(0);c[i-4>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)-4;return}function Mh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c[b+4>>2]|0;e=c[b+8>>2]|0;f=(e|0)/(c[d+5784>>2]|0)|0;a=c[b+12>>2]|0;b=g-1+a|0;b=b-((b|0)%(a|0)|0)|0;g=((g|0)/(c[d+5780>>2]|0)|0)-1+a|0;a=g-((g|0)%(a|0)|0)|0;g=c[d+5760>>2]|0;if(!((g-8|0)>>>0<9>>>0)){ec(15720,15792,115,17912);return 0}h=c[d+5768>>2]|0;if(!((h-8|0)>>>0<9>>>0)){ec(15344,15792,116,17912);return 0}e=Ku(16,ga(ga(b,e)|0,(g+7|0)/8|0)|0)|0;g=(e|0)==0;do{if((c[d+20>>2]|0)==0){if(g){d=0}else{a=0;h=0;f=0;break}return d|0}else{f=ga(ga(a,f)|0,(h+7|0)/8|0)|0;h=Ku(16,f)|0;f=Ku(16,f)|0;if(!((h|0)==0|(f|0)==0|g)){break}if(!g){Hu(e)}if((h|0)!=0){Hu(h)}if((f|0)==0){h=0;return h|0}Hu(f);h=0;return h|0}}while(0);c[d+4>>2]=e;c[d+10492>>2]=0;c[d+40>>2]=b;c[d+8>>2]=h;c[d+10496>>2]=0;c[d+12>>2]=f;c[d+10500>>2]=0;c[d+44>>2]=a;h=1;return h|0}function Nh(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+4>>2]|0;if((a|0)!=0){Hu(a)}a=c[b+8>>2]|0;if((a|0)!=0){Hu(a)}b=c[b+12>>2]|0;if((b|0)==0){return}Hu(b);return}function Oh(b){b=b|0;c[b+48>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;c[b+700>>2]=0;c[b+704>>2]=0;c[b+708>>2]=0;dv(b+736|0,0,24)|0;ik(b+764|0);jj(b+5932|0);a[b+10518|0]=0;a[b+10519|0]=0;a[b+10520|0]=0;dv(b+10340|0,0,140)|0;c[b>>2]=-1;c[b+104>>2]=0;c[b+10332>>2]=0;c[b+10336>>2]=0;c[b+10512>>2]=0;c[b+4>>2]=0;c[b+60>>2]=0;c[b+8>>2]=0;c[b+64>>2]=0;c[b+12>>2]=0;c[b+68>>2]=0;c[b+28>>2]=0;c[b+24>>2]=0;c[b+10524>>2]=0;dv(b+10480|0,0,24)|0;a[b+10516|0]=2;c[b+88>>2]=-1;c[b+92>>2]=-1;c[b+96>>2]=0;a[b+100|0]=0;dv(b+10528|0,0,20)|0;tk(b+10548|0);xk(b+10572|0);return}function Ph(b,d,e,f,g,h,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;p=i;i=i+40|0;r=p|0;if((g|0)==0){ec(13112,15792,240,17792);return 0}t=b+764|0;cv(t|0,g|0,4717)|0;if((t|0)!=(g|0)){zf(b+5484|0,c[g+4720>>2]|0,c[g+4724>>2]|0)}cv(b+5496|0,g+4732|0,436)|0;Qh(b);s=c[8838]|0;c[8838]=s+1;c[b>>2]=s;c[b+104>>2]=2147483647;c[b+10332>>2]=j;c[b+10336>>2]=k;c[b+20>>2]=f;c[b+24>>2]=d;c[b+28>>2]=e;s=b+32|0;c[s>>2]=d;t=b+36|0;c[t>>2]=e;c[b+10488>>2]=n;n=b+10480|0;c[n>>2]=l;c[n+4>>2]=m;if((f|0)==1){m=2;q=8}else if((f|0)==0|(f|0)==3){l=1;m=1}else if((f|0)==2){m=1;q=8}else{ec(10232,15792,276,17792);return 0}if((q|0)==8){l=2}if((f|0)==2){c[r>>2]=3;n=(d+1|0)/2|0;c[s>>2]=n;f=e}else if((f|0)==0){c[r>>2]=1;c[s>>2]=0;c[t>>2]=0;n=0;f=0}else if((f|0)==1){c[r>>2]=2;n=(d+1|0)/2|0;c[s>>2]=n;f=(e+1|0)/2|0;c[t>>2]=f}else if((f|0)==3){c[r>>2]=4;n=d;f=e}else{ec(7192,15792,302,17792);return 0}c[r+4>>2]=d;c[r+8>>2]=e;c[r+12>>2]=16;s=c[g+496>>2]|0;x=c[g+500>>2]|0;t=c[g+504>>2]|0;w=c[g+508>>2]|0;y=x+s|0;v=d-(ga(y,l)|0)|0;c[b+72>>2]=v;d=w+t|0;u=e-(ga(d,m)|0)|0;c[b+76>>2]=u;c[b+80>>2]=n-y;c[b+84>>2]=f-d;e=ga(s,l)|0;c[r+16>>2]=e;d=ga(x,l)|0;c[r+20>>2]=d;d=ga(t,m)|0;c[r+24>>2]=d;l=ga(w,m)|0;c[r+28>>2]=l;c[r+32>>2]=v;c[r+36>>2]=u;a[b+16|0]=(c[g+4996>>2]|0)>8|0;l=(c[g+5004>>2]|0)>8|0;a[b+17|0]=l;a[b+18|0]=l;l=(j|0)==0;if(l){m=0}else{m=c[j+544>>2]|0}f=(k|0)==0;do{if(f){o=o^1;q=23}else{m=c[k+3060>>2]|0;o=o^1;if(f|o){q=23;break}y=c[k+3064>>2]|0;c[b+10512>>2]=y;o=b+10504|0;if((y|0)==0){q=o;y=27248;o=c[y>>2]|0;y=c[y+4>>2]|0;c[q>>2]=o;c[q+4>>2]=y;q=26;break}else{c[o>>2]=0;c[b+10508>>2]=0;break}}}while(0);do{if((q|0)==23){q=b+10504|0;if(l|o){y=27248;o=c[y>>2]|0;y=c[y+4>>2]|0;c[q>>2]=o;c[q+4>>2]=y;q=26;break}else{y=j+536|0;o=c[y>>2]|0;y=c[y+4>>2]|0;c[q>>2]=o;c[q+4>>2]=y;q=26;break}}}while(0);do{if((q|0)==26){if((o|0)==0){break}y=(Sc[o&15](j,r,b,m)|0)==0;x=(c[b+4>>2]|0)+((ga(c[b+40>>2]|0,d)|0)+e)|0;c[b+60>>2]=x;x=(ga(c[b+44>>2]|0,t)|0)+s|0;c[b+64>>2]=(c[b+8>>2]|0)+x;c[b+68>>2]=(c[b+12>>2]|0)+x;if(y){q=7}else{break}i=p;return q|0}}while(0);do{if(h){o=g+5112|0;k=c[o>>2]|0;j=g+5116|0;r=c[j>>2]|0;h=g+5108|0;s=c[h>>2]|0;e=ga(r,k)|0;d=b+10404|0;t=b+10400|0;l=c[t>>2]|0;do{if((e|0)==(c[d>>2]|0)){q=33}else{Hu(l);l=Gu(e)|0;c[t>>2]=l;if((l|0)==0){c[d>>2]=0;r=0;break}else{c[d>>2]=e;q=33;break}}}while(0);if((q|0)==33){c[b+10412>>2]=k;c[b+10416>>2]=r;c[b+10408>>2]=s;r=(l|0)!=0}o=c[o>>2]|0;j=c[j>>2]|0;h=c[h>>2]|0;k=ga(j,o)|0;s=b+10424|0;t=b+10420|0;e=c[t>>2]|0;do{if((k|0)==(c[s>>2]|0)){q=38}else{Hu(e);e=Gu(k)|0;c[t>>2]=e;if((e|0)==0){c[s>>2]=0;h=0;break}else{c[s>>2]=k;q=38;break}}}while(0);if((q|0)==38){c[b+10432>>2]=o;c[b+10436>>2]=j;c[b+10428>>2]=h;h=(e|0)!=0}o=r&h;j=g+5052|0;k=c[j>>2]|0;h=g+5060|0;s=c[h>>2]|0;r=g+5036|0;t=c[r>>2]|0;l=ga(s,k)|0;d=b+10364|0;e=b+10360|0;m=c[e>>2]|0;do{if((l|0)==(c[d>>2]|0)){q=43}else{Hu(m|0);y=Gu(l*3|0)|0;m=y;c[e>>2]=m;if((y|0)==0){c[d>>2]=0;k=0;break}else{c[d>>2]=l;q=43;break}}}while(0);if((q|0)==43){c[b+10372>>2]=k;c[b+10376>>2]=s;c[b+10368>>2]=t;k=(m|0)!=0}o=o&k;s=(c[r>>2]|0)-2|0;j=c[j>>2]<<s;h=c[h>>2]<<s;s=ga(h,j)|0;k=b+10384|0;r=b+10380|0;t=c[r>>2]|0;do{if((s|0)==(c[k>>2]|0)){q=48}else{Hu(t|0);y=Gu(s*12|0)|0;t=y;c[r>>2]=t;if((y|0)==0){c[k>>2]=0;h=0;break}else{c[k>>2]=s;q=48;break}}}while(0);if((q|0)==48){c[b+10392>>2]=j;c[b+10396>>2]=h;c[b+10388>>2]=2;h=(t|0)!=0}h=o&h;r=c[g+5088>>2]|0;j=c[g+5092>>2]|0;o=c[g+5100>>2]|0;s=ga(j,r)|0;k=b+10444|0;t=b+10440|0;e=c[t>>2]|0;do{if((s|0)==(c[k>>2]|0)){q=53}else{Hu(e);e=Gu(s)|0;c[t>>2]=e;if((e|0)==0){c[k>>2]=0;j=0;break}else{c[k>>2]=s;q=53;break}}}while(0);if((q|0)==53){c[b+10452>>2]=r;c[b+10456>>2]=j;c[b+10448>>2]=o;j=(e|0)!=0}h=h&j;r=((c[g+484>>2]|0)+3|0)/4|0;j=((c[g+488>>2]|0)+3|0)/4|0;k=ga(j,r)|0;o=b+10464|0;s=b+10460|0;t=c[s>>2]|0;do{if((k|0)==(c[o>>2]|0)){q=58}else{Hu(t);t=Gu(k)|0;c[s>>2]=t;if((t|0)==0){c[o>>2]=0;j=0;break}else{c[o>>2]=k;q=58;break}}}while(0);if((q|0)==58){c[b+10472>>2]=r;c[b+10476>>2]=j;c[b+10468>>2]=2;j=(t|0)!=0}j=h&j;r=b+10344|0;t=c[r>>2]|0;if((t|0)==(c[g+5072>>2]|0)){if(j){break}else{q=7}i=p;return q|0}h=b+10524|0;o=c[h>>2]|0;if((o|0)!=0){s=o-76+72|0;k=s;s=c[s>>2]|0;if((s|0)!=0){s=o+(s*76|0)|0;do{s=s-76|0;Ck(s);}while((s|0)!=(o|0))}Qu(k);t=c[r>>2]|0}k=c[g+5056>>2]|0;o=c[g+5064>>2]|0;g=c[g+5040>>2]|0;s=ga(o,k)|0;e=b+10340|0;d=c[e>>2]|0;do{if((s|0)==(t|0)){s=t;q=69}else{Hu(d);y=Gu(s*24|0)|0;d=y;c[e>>2]=d;if((y|0)==0){c[r>>2]=0;b=0;s=0;break}else{c[r>>2]=s;q=69;break}}}while(0);if((q|0)==69){c[b+10352>>2]=k;c[b+10356>>2]=o;c[b+10348>>2]=g;b=(d|0)!=0}q=j&b;b=Ra(s|0,76)|0;y=K;b=sb(b|0,4)|0;b=Ou(y|K?-1:b)|0;c[b>>2]=s;b=b+4|0;if((s|0)!=0){g=b+(s*76|0)|0;j=b;do{Bk(j);j=j+76|0;}while((j|0)!=(g|0))}c[h>>2]=b;if(q){break}else{q=7}i=p;return q|0}}while(0);y=0;i=p;return y|0}function Qh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+4|0;if((c[b>>2]|0)!=0){d=c[a+10512>>2]|0;if((d|0)==0){e=c[a+10332>>2]|0;if((e|0)==0){d=0}else{d=c[e+544>>2]|0}Tc[c[a+10508>>2]&63](e,a,d)}else{h=c[a+10336>>2]|0;Tc[d&63](h,a,c[h+3060>>2]|0)}c[b>>2]=0;c[a+60>>2]=0;c[a+8>>2]=0;c[a+64>>2]=0;c[a+12>>2]=0;c[a+68>>2]=0}b=a+52|0;e=c[b>>2]|0;a=a+48|0;f=c[a>>2]|0;if((e|0)==(f|0)){return}else{d=0;g=e}while(1){e=c[f+(d<<2)>>2]|0;if((e|0)==0){e=g}else{g=c[e+1344>>2]|0;if((g|0)!=0){f=e+1348|0;h=c[f>>2]|0;if((h|0)!=(g|0)){c[f>>2]=h+(~((h-4+(-g|0)|0)>>>2)<<2)}Pu(g)}Ed(e+1332|0);h=c[e+776>>2]|0;if((h|0)!=0){f=e+780|0;g=c[f>>2]|0;if((g|0)!=(h|0)){c[f>>2]=g+(~((g-4+(-h|0)|0)>>>2)<<2)}Pu(h)}Pu(e);e=c[b>>2]|0;f=c[a>>2]|0}d=d+1|0;g=f;if(d>>>0<e-g>>2>>>0){g=e}else{break}}if((e|0)==(f|0)){return}c[b>>2]=e+(~((e-4+(-g|0)|0)>>>2)<<2);return}function Rh(a){a=a|0;var b=0,d=0,e=0;Qh(a);b=c[a+10524>>2]|0;if((b|0)!=0){e=b-76+72|0;d=e;e=c[e>>2]|0;if((e|0)!=0){e=b+(e*76|0)|0;do{e=e-76|0;Ck(e);}while((e|0)!=(b|0))}Qu(d)}yk(a+10572|0);uk(a+10548|0);Hu(c[a+10460>>2]|0);Hu(c[a+10440>>2]|0);Hu(c[a+10420>>2]|0);Hu(c[a+10400>>2]|0);Hu(c[a+10380>>2]|0);Hu(c[a+10360>>2]|0);Hu(c[a+10340>>2]|0);kj(a+5932|0);jk(a+764|0);Jf(a+108|0);b=c[a+48>>2]|0;if((b|0)==0){return}a=a+52|0;d=c[a>>2]|0;if((d|0)!=(b|0)){c[a>>2]=d+(~((d-4+(-b|0)|0)>>>2)<<2)}Pu(b);return}function Sh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if((b|0)>-1){dv(c[a+4>>2]|0,b&255|0,ga(c[a+28>>2]|0,c[a+40>>2]|0)|0)|0}if((d|0)>-1){dv(c[a+8>>2]|0,d&255|0,ga(c[a+36>>2]|0,c[a+44>>2]|0)|0)|0}if(!((e|0)>-1)){return}dv(c[a+12>>2]|0,e&255|0,ga(c[a+36>>2]|0,c[a+44>>2]|0)|0)|0;return}function Th(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;f=c[b+28>>2]|0;f=(f|0)<(e|0)?f:e;if((d&1|0)!=0){ec(5264,15792,535,17776)}if((f&1|0)!=0){ec(3744,15792,536,17776)}l=((c[a+5760>>2]|0)+7|0)/8|0;e=((c[a+5768>>2]|0)+7|0)/8|0;g=b+40|0;o=c[g>>2]|0;h=a+40|0;n=c[h>>2]|0;a:do{if((o|0)==(n|0)){n=ga(ga(l,d)|0,o)|0;cv((c[a+4>>2]|0)+n|0,(c[b+4>>2]|0)+n|0,ga(ga(l,f-d|0)|0,o)|0)|0}else{if((f|0)<=(d|0)){break}i=a+4|0;j=b+4|0;k=b+24|0;m=d;while(1){p=ga(m,l)|0;n=(c[i>>2]|0)+(ga(p,n)|0)|0;o=(c[j>>2]|0)+(ga(p,o)|0)|0;cv(n|0,o|0,ga(c[k>>2]|0,l)|0)|0;m=m+1|0;if((m|0)>=(f|0)){break a}n=c[h>>2]|0;o=c[g>>2]|0}}}while(0);h=c[b+5784>>2]|0;m=(d|0)/(h|0)|0;h=(f|0)/(h|0)|0;if((c[b+20>>2]|0)==0){return}f=b+44|0;k=c[f>>2]|0;d=a+44|0;l=c[d>>2]|0;if((k|0)==(l|0)){n=ga(m,e)|0;p=ga(n,k)|0;o=ga(h-m|0,e)|0;cv((c[a+8>>2]|0)+p|0,(c[b+8>>2]|0)+p|0,ga(o,k)|0)|0;p=c[d>>2]|0;n=ga(n,p)|0;cv((c[a+12>>2]|0)+n|0,(c[b+12>>2]|0)+n|0,ga(o,p)|0)|0;return}if((m|0)>=(h|0)){return}g=a+8|0;i=b+8|0;j=b+32|0;a=a+12|0;b=b+12|0;while(1){p=ga(m,e)|0;n=(c[g>>2]|0)+(ga(p,l)|0)|0;o=(c[i>>2]|0)+(ga(p,k)|0)|0;cv(n|0,o|0,ga(c[j>>2]|0,e)|0)|0;o=(c[a>>2]|0)+(ga(p,c[d>>2]|0)|0)|0;p=(c[b>>2]|0)+(ga(p,c[f>>2]|0)|0)|0;cv(o|0,p|0,ga(c[j>>2]|0,e)|0)|0;m=m+1|0;if((m|0)>=(h|0)){break}l=c[d>>2]|0;k=c[f>>2]|0}return} - - - -function vm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(d>>>0>4294967279>>>0){nm(0)}e=b;g=a[e]|0;if((g&1)==0){h=10}else{g=c[b>>2]|0;h=(g&-2)-1|0;g=g&255}if((g&1)==0){f=(g&255)>>>1}else{f=c[b+4>>2]|0}d=f>>>0>d>>>0?f:d;if(d>>>0<11>>>0){d=10}else{d=(d+16&-16)-1|0}if((d|0)==(h|0)){return}do{if((d|0)==10){j=b+1|0;i=c[b+8>>2]|0;h=1;k=0}else{i=d+1|0;if(d>>>0>h>>>0){j=Nu(i)|0}else{j=Nu(i)|0}if((g&1)==0){i=b+1|0;h=0;k=1;break}else{i=c[b+8>>2]|0;h=1;k=1;break}}}while(0);if((g&1)==0){g=(g&255)>>>1}else{g=c[b+4>>2]|0}cv(j|0,i|0,g+1|0)|0;if(h){Pu(i)}if(k){c[b>>2]=d+1|1;c[b+4>>2]=f;c[b+8>>2]=j;return}else{a[e]=f<<1;return}}function wm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b;g=a[e]|0;f=(g&1)!=0;if(f){g=c[b+4>>2]|0;h=(c[b>>2]&-2)-1|0}else{g=(g&255)>>>1;h=10}if((g|0)==(h|0)){zm(b,h,1,h,h,0,0);if((a[e]&1)==0){f=7}else{f=8}}else{if(f){f=8}else{f=7}}if((f|0)==7){a[e]=(g<<1)+2;f=b+1|0;h=g+1|0;g=f+g|0;a[g]=d;h=f+h|0;a[h]=0;return}else if((f|0)==8){f=c[b+8>>2]|0;h=g+1|0;c[b+4>>2]=h;g=f+g|0;a[g]=d;h=f+h|0;a[h]=0;return}}function xm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b;i=a[f]|0;if((i&1)==0){g=10}else{i=c[b>>2]|0;g=(i&-2)-1|0;i=i&255}if((i&1)==0){h=(i&255)>>>1}else{h=c[b+4>>2]|0}if((g-h|0)>>>0<e>>>0){ym(b,g,e-g+h|0,h,h,0,e,d);return b|0}if((e|0)==0){return b|0}if((i&1)==0){g=b+1|0}else{g=c[b+8>>2]|0}cv(g+h|0,d|0,e)|0;e=h+e|0;if((a[f]&1)==0){a[f]=e<<1}else{c[b+4>>2]=e}a[g+e|0]=0;return b|0}function ym(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;if((-18-d|0)>>>0<e>>>0){nm(0)}if((a[b]&1)==0){k=b+1|0}else{k=c[b+8>>2]|0}do{if(d>>>0<2147483623>>>0){l=e+d|0;e=d<<1;e=l>>>0<e>>>0?e:l;if(e>>>0<11>>>0){l=11;break}l=e+16&-16}else{l=-17}}while(0);e=Nu(l)|0;if((g|0)!=0){cv(e|0,k|0,g)|0}if((i|0)!=0){cv(e+g|0,j|0,i)|0}f=f-h|0;if((f|0)!=(g|0)){cv(e+(i+g)|0,k+(h+g)|0,f-g|0)|0}if((d|0)==10){j=b+8|0;c[j>>2]=e;j=l|1;l=b|0;c[l>>2]=j;l=f+i|0;j=b+4|0;c[j>>2]=l;l=e+l|0;a[l]=0;return}Pu(k);j=b+8|0;c[j>>2]=e;j=l|1;l=b|0;c[l>>2]=j;l=f+i|0;j=b+4|0;c[j>>2]=l;l=e+l|0;a[l]=0;return}function zm(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;if((-17-d|0)>>>0<e>>>0){nm(0)}if((a[b]&1)==0){j=b+1|0}else{j=c[b+8>>2]|0}do{if(d>>>0<2147483623>>>0){k=e+d|0;e=d<<1;e=k>>>0<e>>>0?e:k;if(e>>>0<11>>>0){k=11;break}k=e+16&-16}else{k=-17}}while(0);e=Nu(k)|0;if((g|0)!=0){cv(e|0,j|0,g)|0}f=f-h|0;if((f|0)!=(g|0)){cv(e+(i+g)|0,j+(h+g)|0,f-g|0)|0}if((d|0)==10){f=b+8|0;c[f>>2]=e;e=k|1;k=b|0;c[k>>2]=e;return}Pu(j);f=b+8|0;c[f>>2]=e;e=k|1;k=b|0;c[k>>2]=e;return}function Am(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(e>>>0>1073741807>>>0){nm(0)}if(e>>>0<2>>>0){a[b]=e<<1;b=b+4|0;hu(b,d,e)|0;d=b+(e<<2)|0;c[d>>2]=0;return}else{g=e+4&-4;f=Nu(g<<2)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=e;b=f;hu(b,d,e)|0;d=b+(e<<2)|0;c[d>>2]=0;return}}function Bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(d>>>0>1073741807>>>0){nm(0)}if(d>>>0<2>>>0){a[b]=d<<1;b=b+4|0;ju(b,e,d)|0;e=b+(d<<2)|0;c[e>>2]=0;return}else{g=d+4&-4;f=Nu(g<<2)|0;c[b+8>>2]=f;c[b>>2]=g|1;c[b+4>>2]=d;b=f;ju(b,e,d)|0;e=b+(d<<2)|0;c[e>>2]=0;return}}function Cm(b){b=b|0;if((a[b]&1)==0){return}Pu(c[b+8>>2]|0);return}function Dm(a,b){a=a|0;b=b|0;return Em(a,b,gu(b)|0)|0}function Em(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b;h=a[f]|0;if((h&1)==0){g=1}else{h=c[b>>2]|0;g=(h&-2)-1|0;h=h&255}i=(h&1)==0;if(g>>>0<e>>>0){if(i){f=(h&255)>>>1}else{f=c[b+4>>2]|0}Hm(b,g,e-g|0,f,0,f,e,d);return b|0}if(i){g=b+4|0}else{g=c[b+8>>2]|0}iu(g,d,e)|0;c[g+(e<<2)>>2]=0;if((a[f]&1)==0){a[f]=e<<1;return b|0}else{c[b+4>>2]=e;return b|0}return 0}function Fm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(d>>>0>1073741807>>>0){nm(0)}e=b;g=a[e]|0;if((g&1)==0){h=1}else{g=c[b>>2]|0;h=(g&-2)-1|0;g=g&255}if((g&1)==0){f=(g&255)>>>1}else{f=c[b+4>>2]|0}d=f>>>0>d>>>0?f:d;if(d>>>0<2>>>0){d=1}else{d=(d+4&-4)-1|0}if((d|0)==(h|0)){return}do{if((d|0)==1){j=b+4|0;i=c[b+8>>2]|0;h=1;k=0}else{i=(d<<2)+4|0;if(d>>>0>h>>>0){j=Nu(i)|0}else{j=Nu(i)|0}if((g&1)==0){i=b+4|0;h=0;k=1;break}else{i=c[b+8>>2]|0;h=1;k=1;break}}}while(0);if((g&1)==0){g=(g&255)>>>1}else{g=c[b+4>>2]|0}hu(j,i,g+1|0)|0;if(h){Pu(i)}if(k){c[b>>2]=d+1|1;c[b+4>>2]=f;c[b+8>>2]=j;return}else{a[e]=f<<1;return}}function Gm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=b;g=a[e]|0;f=(g&1)!=0;if(f){g=c[b+4>>2]|0;h=(c[b>>2]&-2)-1|0}else{g=(g&255)>>>1;h=1}if((g|0)==(h|0)){Im(b,h,1,h,h,0,0);if((a[e]&1)==0){f=7}else{f=8}}else{if(f){f=8}else{f=7}}if((f|0)==7){a[e]=(g<<1)+2;f=b+4|0;h=g+1|0;g=f+(g<<2)|0;c[g>>2]=d;h=f+(h<<2)|0;c[h>>2]=0;return}else if((f|0)==8){f=c[b+8>>2]|0;h=g+1|0;c[b+4>>2]=h;g=f+(g<<2)|0;c[g>>2]=d;h=f+(h<<2)|0;c[h>>2]=0;return}}function Hm(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;if((1073741806-d|0)>>>0<e>>>0){nm(0)}if((a[b]&1)==0){k=b+4|0}else{k=c[b+8>>2]|0}do{if(d>>>0<536870887>>>0){l=e+d|0;e=d<<1;e=l>>>0<e>>>0?e:l;if(e>>>0<2>>>0){l=2;break}l=e+4&-4}else{l=1073741807}}while(0);e=Nu(l<<2)|0;if((g|0)!=0){hu(e,k,g)|0}if((i|0)!=0){hu(e+(g<<2)|0,j,i)|0}f=f-h|0;if((f|0)!=(g|0)){hu(e+(i+g<<2)|0,k+(h+g<<2)|0,f-g|0)|0}if((d|0)==1){j=b+8|0;c[j>>2]=e;j=l|1;l=b|0;c[l>>2]=j;l=f+i|0;j=b+4|0;c[j>>2]=l;l=e+(l<<2)|0;c[l>>2]=0;return}Pu(k);j=b+8|0;c[j>>2]=e;j=l|1;l=b|0;c[l>>2]=j;l=f+i|0;j=b+4|0;c[j>>2]=l;l=e+(l<<2)|0;c[l>>2]=0;return}function Im(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;if((1073741807-d|0)>>>0<e>>>0){nm(0)}if((a[b]&1)==0){j=b+4|0}else{j=c[b+8>>2]|0}do{if(d>>>0<536870887>>>0){k=e+d|0;e=d<<1;e=k>>>0<e>>>0?e:k;if(e>>>0<2>>>0){k=2;break}k=e+4&-4}else{k=1073741807}}while(0);e=Nu(k<<2)|0;if((g|0)!=0){hu(e,j,g)|0}f=f-h|0;if((f|0)!=(g|0)){hu(e+(i+g<<2)|0,j+(h+g<<2)|0,f-g|0)|0}if((d|0)==1){f=b+8|0;c[f>>2]=e;e=k|1;k=b|0;c[k>>2]=e;return}Pu(j);f=b+8|0;c[f>>2]=e;e=k|1;k=b|0;c[k>>2]=e;return}function Jm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+8|0;e=f|0;g=(c[b+24>>2]|0)==0;if(g){c[b+16>>2]=d|1}else{c[b+16>>2]=d}if(((g&1|d)&c[b+20>>2]|0)==0){i=f;return}d=pc(16)|0;do{if((a[51816]|0)==0){if((ub(51816)|0)==0){break}c[8332]=21064;Ub(74,33328,u|0)|0}}while(0);b=jv(33328,0,32)|0;c[e>>2]=b|1;c[e+4>>2]=K;jm(d,e,13504);c[d>>2]=20248;Fb(d|0,26120,38)}function Km(a){a=a|0;var b=0,d=0,e=0;c[a>>2]=20224;e=c[a+40>>2]|0;b=a+32|0;d=a+36|0;if((e|0)!=0){do{e=e-1|0;Tc[c[(c[b>>2]|0)+(e<<2)>>2]&63](0,a,c[(c[d>>2]|0)+(e<<2)>>2]|0);}while((e|0)!=0)}Vr(a+28|0);Hu(c[b>>2]|0);Hu(c[d>>2]|0);Hu(c[a+48>>2]|0);Hu(c[a+60>>2]|0);return}function Lm(a,b){a=a|0;b=b|0;Ur(a,b+28|0);return}function Mm(a,b){a=a|0;b=b|0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;dv(a+32|0,0,40)|0;Tr(a+28|0);return}function Nm(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);Pu(a);return}function Om(a){a=a|0;c[a>>2]=21296;Vr(a+4|0);return}function Pm(a,b){a=a|0;b=b|0;return}function Qm(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Rm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function Sm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=i;f=d;b=i;i=i+16|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;i=e;return}function Tm(a){a=a|0;return 0}function Um(a){a=a|0;return 0}function Vm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=b;if((e|0)<=0){j=0;return j|0}g=b+12|0;h=b+16|0;i=0;while(1){j=c[g>>2]|0;if(j>>>0<(c[h>>2]|0)>>>0){c[g>>2]=j+1;j=a[j]|0}else{j=Fc[c[(c[f>>2]|0)+40>>2]&255](b)|0;if((j|0)==-1){e=8;break}j=j&255}a[d]=j;i=i+1|0;if((i|0)<(e|0)){d=d+1|0}else{e=8;break}}if((e|0)==8){return i|0}return 0}function Wm(a){a=a|0;return-1|0}function Xm(a){a=a|0;var b=0;if((Fc[c[(c[a>>2]|0)+36>>2]&255](a)|0)==-1){a=-1;return a|0}b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+1;a=d[a]|0;return a|0}function Ym(a,b){a=a|0;b=b|0;return-1|0}function Zm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;i=b;if((f|0)<=0){k=0;return k|0}g=b+24|0;h=b+28|0;j=0;while(1){k=c[g>>2]|0;if(k>>>0<(c[h>>2]|0)>>>0){l=a[e]|0;c[g>>2]=k+1;a[k]=l}else{if((Qc[c[(c[i>>2]|0)+52>>2]&63](b,d[e]|0)|0)==-1){f=7;break}}j=j+1|0;if((j|0)<(f|0)){e=e+1|0}else{f=7;break}}if((f|0)==7){return j|0}return 0}function _m(a,b){a=a|0;b=b|0;return-1|0}function $m(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);Pu(a);return}function an(a){a=a|0;c[a>>2]=21224;Vr(a+4|0);return}function bn(a,b){a=a|0;b=b|0;return}function cn(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function dn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function en(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=i;f=d;b=i;i=i+16|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;i=e;return}function fn(a){a=a|0;return 0}function gn(a){a=a|0;return 0}function hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a;if((d|0)<=0){i=0;return i|0}f=a+12|0;g=a+16|0;h=0;while(1){i=c[f>>2]|0;if(i>>>0<(c[g>>2]|0)>>>0){c[f>>2]=i+4;i=c[i>>2]|0}else{i=Fc[c[(c[e>>2]|0)+40>>2]&255](a)|0;if((i|0)==-1){d=8;break}}c[b>>2]=i;h=h+1|0;if((h|0)>=(d|0)){d=8;break}b=b+4|0}if((d|0)==8){return h|0}return 0}function jn(a){a=a|0;return-1|0}function kn(a){a=a|0;var b=0;if((Fc[c[(c[a>>2]|0)+36>>2]&255](a)|0)==-1){a=-1;return a|0}b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=c[a>>2]|0;return a|0}function ln(a,b){a=a|0;b=b|0;return-1|0}function mn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;g=a;if((d|0)<=0){i=0;return i|0}e=a+24|0;f=a+28|0;h=0;while(1){i=c[e>>2]|0;if(i>>>0<(c[f>>2]|0)>>>0){j=c[b>>2]|0;c[e>>2]=i+4;c[i>>2]=j}else{if((Qc[c[(c[g>>2]|0)+52>>2]&63](a,c[b>>2]|0)|0)==-1){d=8;break}}h=h+1|0;if((h|0)>=(d|0)){d=8;break}b=b+4|0}if((d|0)==8){return h|0}return 0}function nn(a,b){a=a|0;b=b|0;return-1|0}function on(a){a=a|0;Km(a+8|0);Pu(a);return}function pn(a){a=a|0;Km(a+8|0);return}function qn(a){a=a|0;var b=0;b=a;a=c[(c[a>>2]|0)-12>>2]|0;Km(b+(a+8)|0);Pu(b+a|0);return}function rn(a){a=a|0;Km(a+((c[(c[a>>2]|0)-12>>2]|0)+8)|0);return}function sn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+8|0;g=d|0;f=b;j=c[(c[f>>2]|0)-12>>2]|0;e=b;if((c[e+(j+24)>>2]|0)==0){i=d;return b|0}h=g|0;a[h]=0;c[g+4>>2]=b;do{if((c[e+(j+16)>>2]|0)==0){k=c[e+(j+72)>>2]|0;if((k|0)!=0){sn(k)|0;j=c[(c[f>>2]|0)-12>>2]|0}a[h]=1;k=c[e+(j+24)>>2]|0;if(!((Fc[c[(c[k>>2]|0)+24>>2]&255](k)|0)==-1)){break}k=c[(c[f>>2]|0)-12>>2]|0;Jm(e+k|0,c[e+(k+16)>>2]|1)}}while(0);Cn(g);i=d;return b|0}function tn(a){a=a|0;Km(a+8|0);Pu(a);return}function un(a){a=a|0;Km(a+8|0);return}function vn(a){a=a|0;var b=0;b=a;a=c[(c[a>>2]|0)-12>>2]|0;Km(b+(a+8)|0);Pu(b+a|0);return}function wn(a){a=a|0;Km(a+((c[(c[a>>2]|0)-12>>2]|0)+8)|0);return}function xn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;i=i+8|0;g=d|0;f=b;j=c[(c[f>>2]|0)-12>>2]|0;e=b;if((c[e+(j+24)>>2]|0)==0){i=d;return b|0}h=g|0;a[h]=0;c[g+4>>2]=b;do{if((c[e+(j+16)>>2]|0)==0){k=c[e+(j+72)>>2]|0;if((k|0)!=0){xn(k)|0;j=c[(c[f>>2]|0)-12>>2]|0}a[h]=1;k=c[e+(j+24)>>2]|0;if(!((Fc[c[(c[k>>2]|0)+24>>2]&255](k)|0)==-1)){break}k=c[(c[f>>2]|0)-12>>2]|0;Jm(e+k|0,c[e+(k+16)>>2]|1)}}while(0);Hn(g);i=d;return b|0}function yn(a){a=a|0;Km(a+4|0);Pu(a);return}function zn(a){a=a|0;Km(a+4|0);return}function An(a){a=a|0;var b=0;b=a;a=c[(c[a>>2]|0)-12>>2]|0;Km(b+(a+4)|0);Pu(b+a|0);return}function Bn(a){a=a|0;Km(a+((c[(c[a>>2]|0)-12>>2]|0)+4)|0);return}function Cn(a){a=a|0;var b=0,d=0;a=a+4|0;b=c[a>>2]|0;d=c[(c[b>>2]|0)-12>>2]|0;if((c[b+(d+24)>>2]|0)==0){return}if((c[b+(d+16)>>2]|0)!=0){return}if((c[b+(d+4)>>2]&8192|0)==0){return}if(zb()|0){return}d=c[a>>2]|0;d=c[d+((c[(c[d>>2]|0)-12>>2]|0)+24)>>2]|0;if(!((Fc[c[(c[d>>2]|0)+24>>2]&255](d)|0)==-1)){return}b=c[a>>2]|0;d=c[(c[b>>2]|0)-12>>2]|0;Jm(b+d|0,c[b+(d+16)>>2]|1);return}function Dn(a){a=a|0;Km(a+4|0);Pu(a);return}function En(a){a=a|0;Km(a+4|0);return}function Fn(a){a=a|0;var b=0;b=a;a=c[(c[a>>2]|0)-12>>2]|0;Km(b+(a+4)|0);Pu(b+a|0);return}function Gn(a){a=a|0;Km(a+((c[(c[a>>2]|0)-12>>2]|0)+4)|0);return}function Hn(a){a=a|0;var b=0,d=0;a=a+4|0;b=c[a>>2]|0;d=c[(c[b>>2]|0)-12>>2]|0;if((c[b+(d+24)>>2]|0)==0){return}if((c[b+(d+16)>>2]|0)!=0){return}if((c[b+(d+4)>>2]&8192|0)==0){return}if(zb()|0){return}d=c[a>>2]|0;d=c[d+((c[(c[d>>2]|0)-12>>2]|0)+24)>>2]|0;if(!((Fc[c[(c[d>>2]|0)+24>>2]&255](d)|0)==-1)){return}b=c[a>>2]|0;d=c[(c[b>>2]|0)-12>>2]|0;Jm(b+d|0,c[b+(d+16)>>2]|1);return}function In(a){a=a|0;return 15656}function Jn(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)==1){pm(a,16464,35);return}else{hm(a,b|0,c);return}}function Kn(a){a=a|0;dm(a|0);return}function Ln(a){a=a|0;lm(a|0);Pu(a);return}function Mn(a){a=a|0;lm(a|0);return}function Nn(a){a=a|0;Km(a);Pu(a);return}function On(a){a=a|0;dm(a|0);Pu(a);return}function Pn(a){a=a|0;Sl(a|0);Pu(a);return}function Qn(a){a=a|0;Sl(a|0);return}function Rn(a){a=a|0;Sl(a|0);return}function Sn(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;a:do{if((e|0)!=(f|0)){while(1){if((c|0)==(d|0)){d=-1;f=7;break}g=a[c]|0;b=a[e]|0;if(g<<24>>24<b<<24>>24){d=-1;f=7;break}if(b<<24>>24<g<<24>>24){d=1;f=7;break}c=c+1|0;e=e+1|0;if((e|0)==(f|0)){break a}}if((f|0)==7){return d|0}}}while(0);g=(c|0)!=(d|0)|0;return g|0}function Tn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;d=e;g=f-d|0;if(g>>>0>4294967279>>>0){nm(b)}if(g>>>0<11>>>0){a[b]=g<<1;b=b+1|0}else{i=g+16&-16;h=Nu(i)|0;c[b+8>>2]=h;c[b>>2]=i|1;c[b+4>>2]=g;b=h}if((e|0)==(f|0)){i=b;a[i]=0;return}else{g=b}while(1){a[g]=a[e]|0;e=e+1|0;if((e|0)==(f|0)){break}else{g=g+1|0}}i=b+(f+(-d|0))|0;a[i]=0;return}function Un(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)==(d|0)){b=0;return b|0}else{b=0}do{b=(a[c]|0)+(b<<4)|0;e=b&-268435456;b=(e>>>24|e)^b;c=c+1|0;}while((c|0)!=(d|0));return b|0}function Vn(a){a=a|0;Sl(a|0);Pu(a);return}function Wn(a){a=a|0;Sl(a|0);return}function Xn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;a:do{if((e|0)!=(f|0)){while(1){if((b|0)==(d|0)){d=-1;f=7;break}g=c[b>>2]|0;a=c[e>>2]|0;if((g|0)<(a|0)){d=-1;f=7;break}if((a|0)<(g|0)){d=1;f=7;break}b=b+4|0;e=e+4|0;if((e|0)==(f|0)){break a}}if((f|0)==7){return d|0}}}while(0);g=(b|0)!=(d|0)|0;return g|0}function Yn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;d=e;g=f-d|0;h=g>>2;if(h>>>0>1073741807>>>0){nm(b)}if(h>>>0<2>>>0){a[b]=g>>>1;b=b+4|0}else{i=h+4&-4;g=Nu(i<<2)|0;c[b+8>>2]=g;c[b>>2]=i|1;c[b+4>>2]=h;b=g}if((e|0)==(f|0)){i=b;c[i>>2]=0;return}d=f-4+(-d|0)|0;g=b;while(1){c[g>>2]=c[e>>2];e=e+4|0;if((e|0)==(f|0)){break}else{g=g+4|0}}i=b+((d>>>2)+1<<2)|0;c[i>>2]=0;return}function Zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0)){a=0;return a|0}else{a=0}do{a=(c[b>>2]|0)+(a<<4)|0;e=a&-268435456;a=(e>>>24|e)^a;b=b+4|0;}while((b|0)!=(d|0));return a|0}function _n(a){a=a|0;Sl(a|0);Pu(a);return}function $n(a){a=a|0;Sl(a|0);return}function ao(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=i;i=i+112|0;n=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[n>>2];n=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[n>>2];n=k|0;p=k+16|0;q=k+32|0;u=k+40|0;s=k+48|0;t=k+56|0;r=k+64|0;o=k+72|0;l=k+80|0;m=k+104|0;if((c[g+4>>2]&1|0)==0){c[q>>2]=-1;p=c[(c[d>>2]|0)+16>>2]|0;r=e|0;c[s>>2]=c[r>>2];c[t>>2]=c[f>>2];Mc[p&127](u,d,s,t,g,h,q);e=c[u>>2]|0;c[r>>2]=e;f=c[q>>2]|0;if((f|0)==1){a[j]=1}else if((f|0)==0){a[j]=0}else{a[j]=1;c[h>>2]=4}c[b>>2]=e;i=k;return}Lm(r,g);q=r|0;r=c[q>>2]|0;if(!((c[8716]|0)==-1)){c[p>>2]=34864;c[p+4>>2]=16;c[p+8>>2]=0;mm(34864,p,114)}p=(c[8717]|0)-1|0;s=c[r+8>>2]|0;do{if((c[r+12>>2]|0)-s>>2>>>0>p>>>0){p=c[s+(p<<2)>>2]|0;if((p|0)==0){break}Ul(c[q>>2]|0)|0;Lm(o,g);o=o|0;g=c[o>>2]|0;if(!((c[8620]|0)==-1)){c[n>>2]=34480;c[n+4>>2]=16;c[n+8>>2]=0;mm(34480,n,114)}n=(c[8621]|0)-1|0;q=c[g+8>>2]|0;do{if((c[g+12>>2]|0)-q>>2>>>0>n>>>0){n=c[q+(n<<2)>>2]|0;if((n|0)==0){break}t=n;Ul(c[o>>2]|0)|0;u=l|0;d=n;Ec[c[(c[d>>2]|0)+24>>2]&127](u,t);Ec[c[(c[d>>2]|0)+28>>2]&127](l+12|0,t);c[m>>2]=c[f>>2];u=(bo(e,m,u,l+24|0,p,h,1)|0)==(u|0)|0;a[j]=u;c[b>>2]=c[e>>2];rm(l+12|0);rm(l|0);i=k;return}}while(0);u=pc(4)|0;lu(u);Fb(u|0,25544,156)}}while(0);u=pc(4)|0;lu(u);Fb(u|0,25544,156)}function bo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=i;i=i+104|0;u=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[u>>2];u=(f-e|0)/12|0;n=l|0;do{if(u>>>0>100>>>0){m=Gu(u)|0;if((m|0)!=0){n=m;break}Uu();n=0;m=0}else{m=0}}while(0);o=(e|0)==(f|0);if(o){t=0}else{t=0;p=n;q=e;while(1){r=a[q]|0;if((r&1)==0){r=(r&255)>>>1}else{r=c[q+4>>2]|0}if((r|0)==0){a[p]=2;t=t+1|0;u=u-1|0}else{a[p]=1}q=q+12|0;if((q|0)==(f|0)){break}else{p=p+1|0}}}b=b|0;d=d|0;p=g;q=0;a:while(1){r=c[b>>2]|0;do{if((r|0)==0){r=0}else{if((c[r+12>>2]|0)!=(c[r+16>>2]|0)){break}if((Fc[c[(c[r>>2]|0)+36>>2]&255](r)|0)==-1){c[b>>2]=0;r=0;break}else{r=c[b>>2]|0;break}}}while(0);v=(r|0)==0;s=c[d>>2]|0;do{if((s|0)==0){s=0}else{if((c[s+12>>2]|0)!=(c[s+16>>2]|0)){break}if(!((Fc[c[(c[s>>2]|0)+36>>2]&255](s)|0)==-1)){break}c[d>>2]=0;s=0}}while(0);r=(s|0)==0;w=c[b>>2]|0;if(!((v^r)&(u|0)!=0)){break}r=c[w+12>>2]|0;if((r|0)==(c[w+16>>2]|0)){s=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{s=a[r]|0}if(!j){s=Qc[c[(c[p>>2]|0)+12>>2]&63](g,s)|0}r=q+1|0;if(o){q=r;continue}b:do{if(j){v=n;x=0;w=e;while(1){do{if((a[v]|0)==1){z=a[w]|0;A=(z&1)==0;if(A){y=w+1|0}else{y=c[w+8>>2]|0}if(!(s<<24>>24==(a[y+q|0]|0))){a[v]=0;u=u-1|0;break}if(A){x=(z&255)>>>1}else{x=c[w+4>>2]|0}if((x|0)!=(r|0)){x=1;break}a[v]=2;x=1;t=t+1|0;u=u-1|0}}while(0);w=w+12|0;if((w|0)==(f|0)){s=u;break b}v=v+1|0}}else{v=n;x=0;w=e;while(1){do{if((a[v]|0)==1){z=w;if((a[z]&1)==0){y=w+1|0}else{y=c[w+8>>2]|0}if(!(s<<24>>24==(Qc[c[(c[p>>2]|0)+12>>2]&63](g,a[y+q|0]|0)|0)<<24>>24)){a[v]=0;u=u-1|0;break}x=a[z]|0;if((x&1)==0){x=(x&255)>>>1}else{x=c[w+4>>2]|0}if((x|0)!=(r|0)){x=1;break}a[v]=2;x=1;t=t+1|0;u=u-1|0}}while(0);w=w+12|0;if((w|0)==(f|0)){s=u;break b}v=v+1|0}}}while(0);if(!x){q=r;u=s;continue}u=c[b>>2]|0;q=u+12|0;v=c[q>>2]|0;if((v|0)==(c[u+16>>2]|0)){Fc[c[(c[u>>2]|0)+40>>2]&255](u)|0}else{c[q>>2]=v+1}if((s+t|0)>>>0<2>>>0){q=r;u=s;continue}else{q=n;u=e}while(1){do{if((a[q]|0)==2){v=a[u]|0;if((v&1)==0){v=(v&255)>>>1}else{v=c[u+4>>2]|0}if((v|0)==(r|0)){break}a[q]=0;t=t-1|0}}while(0);u=u+12|0;if((u|0)==(f|0)){q=r;u=s;continue a}else{q=q+1|0}}}do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1){c[b>>2]=0;w=0;break}else{w=c[b>>2]|0;break}}}while(0);j=(w|0)==0;do{if(r){k=92}else{if((c[s+12>>2]|0)!=(c[s+16>>2]|0)){if(j){break}else{k=94;break}}if((Fc[c[(c[s>>2]|0)+36>>2]&255](s)|0)==-1){c[d>>2]=0;k=92;break}else{if(j){break}else{k=94;break}}}}while(0);if((k|0)==92){if(j){k=94}}if((k|0)==94){c[h>>2]=c[h>>2]|2}c:do{if(o){k=99}else{if((a[n]|0)==2){f=e;break}while(1){e=e+12|0;n=n+1|0;if((e|0)==(f|0)){k=99;break c}if((a[n]|0)==2){f=e;break}}}}while(0);if((k|0)==99){c[h>>2]=c[h>>2]|4}if((m|0)==0){i=l;return f|0}Hu(m);i=l;return f|0}function co(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];eo(a,0,e,d,f,g,h);i=b;return}function eo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+256|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;w=m+32|0;l=m+40|0;d=m+56|0;n=m+72|0;p=m+80|0;q=m+240|0;o=m+248|0;r=c[g+4>>2]&74;if((r|0)==8){r=16}else if((r|0)==0){r=0}else if((r|0)==64){r=8}else{r=10}s=s|0;Wo(l,g,s,w);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){t=d+1|0;B=t;u=d+8|0}else{u=d+8|0;B=c[u>>2]|0;t=d+1|0}c[n>>2]=B;g=p|0;c[q>>2]=g;c[o>>2]=0;e=e|0;f=f|0;y=d|0;x=d+4|0;z=a[w]|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);C=(w|0)==0;A=c[f>>2]|0;do{if((A|0)==0){k=21}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(C){break}else{break a}}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=21;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==21){k=0;if(C){A=0;break}else{A=0}}C=a[v]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[x>>2]|0}if(((c[n>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[x>>2]|0;B=C}tm(d,B<<1,0);if((a[v]&1)==0){B=10}else{B=(c[y>>2]&-2)-1|0}tm(d,B,0);if((a[v]&1)==0){B=t}else{B=c[u>>2]|0}c[n>>2]=B+C}C=w+12|0;E=c[C>>2]|0;D=w+16|0;if((E|0)==(c[D>>2]|0)){E=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{E=a[E]|0}if((wo(E,r,B,n,o,z,l,g,q,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[C>>2]=A+1;continue}}s=a[l]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[l+4>>2]|0}do{if((s|0)!=0){s=c[q>>2]|0;if((s-p|0)>=160){break}E=c[o>>2]|0;c[q>>2]=s+4;c[s>>2]=E}}while(0);E=Rt(B,c[n>>2]|0,h,r)|0;c[j>>2]=E;hr(l,g,c[q>>2]|0,h);do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);j=(w|0)==0;do{if((A|0)==0){k=66}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(!j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=66;break}if(!(j^(A|0)==0)){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);do{if((k|0)==66){if(j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}function fo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];go(a,0,e,d,f,g,h);i=b;return}function go(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+256|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;w=m+32|0;l=m+40|0;d=m+56|0;n=m+72|0;p=m+80|0;q=m+240|0;o=m+248|0;r=c[g+4>>2]&74;if((r|0)==64){r=8}else if((r|0)==0){r=0}else if((r|0)==8){r=16}else{r=10}s=s|0;Wo(l,g,s,w);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){t=d+1|0;B=t;u=d+8|0}else{u=d+8|0;B=c[u>>2]|0;t=d+1|0}c[n>>2]=B;g=p|0;c[q>>2]=g;c[o>>2]=0;e=e|0;f=f|0;y=d|0;x=d+4|0;z=a[w]|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);C=(w|0)==0;A=c[f>>2]|0;do{if((A|0)==0){k=21}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(C){break}else{break a}}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=21;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==21){k=0;if(C){A=0;break}else{A=0}}C=a[v]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[x>>2]|0}if(((c[n>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[x>>2]|0;B=C}tm(d,B<<1,0);if((a[v]&1)==0){B=10}else{B=(c[y>>2]&-2)-1|0}tm(d,B,0);if((a[v]&1)==0){B=t}else{B=c[u>>2]|0}c[n>>2]=B+C}C=w+12|0;E=c[C>>2]|0;D=w+16|0;if((E|0)==(c[D>>2]|0)){E=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{E=a[E]|0}if((wo(E,r,B,n,o,z,l,g,q,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[C>>2]=A+1;continue}}s=a[l]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[l+4>>2]|0}do{if((s|0)!=0){s=c[q>>2]|0;if((s-p|0)>=160){break}E=c[o>>2]|0;c[q>>2]=s+4;c[s>>2]=E}}while(0);E=Qt(B,c[n>>2]|0,h,r)|0;c[j>>2]=E;c[j+4>>2]=K;hr(l,g,c[q>>2]|0,h);do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);j=(w|0)==0;do{if((A|0)==0){k=66}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(!j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=66;break}if(!(j^(A|0)==0)){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);do{if((k|0)==66){if(j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}function ho(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];io(a,0,e,d,f,g,h);i=b;return}function io(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;n=i;i=i+256|0;t=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[t>>2];t=g;g=i;i=i+4|0;i=i+7&-8;c[g>>2]=c[t>>2];t=n|0;x=n+32|0;m=n+40|0;e=n+56|0;o=n+72|0;q=n+80|0;r=n+240|0;p=n+248|0;s=c[h+4>>2]&74;if((s|0)==8){s=16}else if((s|0)==0){s=0}else if((s|0)==64){s=8}else{s=10}t=t|0;Wo(m,h,t,x);w=e;dv(w|0,0,12)|0;tm(e,10,0);if((a[w]&1)==0){u=e+1|0;C=u;v=e+8|0}else{v=e+8|0;C=c[v>>2]|0;u=e+1|0}c[o>>2]=C;h=q|0;c[r>>2]=h;c[p>>2]=0;f=f|0;g=g|0;z=e|0;y=e+4|0;A=a[x]|0;x=c[f>>2]|0;a:while(1){do{if((x|0)==0){x=0}else{if((c[x+12>>2]|0)!=(c[x+16>>2]|0)){break}if(!((Fc[c[(c[x>>2]|0)+36>>2]&255](x)|0)==-1)){break}c[f>>2]=0;x=0}}while(0);D=(x|0)==0;B=c[g>>2]|0;do{if((B|0)==0){l=21}else{if((c[B+12>>2]|0)!=(c[B+16>>2]|0)){if(D){break}else{break a}}if((Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0)==-1){c[g>>2]=0;l=21;break}else{if(D){break}else{break a}}}}while(0);if((l|0)==21){l=0;if(D){B=0;break}else{B=0}}D=a[w]|0;F=(D&1)==0;if(F){E=(D&255)>>>1}else{E=c[y>>2]|0}if(((c[o>>2]|0)-C|0)==(E|0)){if(F){C=(D&255)>>>1;D=(D&255)>>>1}else{D=c[y>>2]|0;C=D}tm(e,C<<1,0);if((a[w]&1)==0){C=10}else{C=(c[z>>2]&-2)-1|0}tm(e,C,0);if((a[w]&1)==0){C=u}else{C=c[v>>2]|0}c[o>>2]=C+D}D=x+12|0;F=c[D>>2]|0;E=x+16|0;if((F|0)==(c[E>>2]|0)){F=(Fc[c[(c[x>>2]|0)+36>>2]&255](x)|0)&255}else{F=a[F]|0}if((wo(F,s,C,o,p,A,m,h,r,t)|0)!=0){break}B=c[D>>2]|0;if((B|0)==(c[E>>2]|0)){Fc[c[(c[x>>2]|0)+40>>2]&255](x)|0;continue}else{c[D>>2]=B+1;continue}}t=a[m]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[m+4>>2]|0}do{if((t|0)!=0){t=c[r>>2]|0;if((t-q|0)>=160){break}F=c[p>>2]|0;c[r>>2]=t+4;c[t>>2]=F}}while(0);F=Pt(C,c[o>>2]|0,j,s)|0;b[k>>1]=F;hr(m,h,c[r>>2]|0,j);do{if((x|0)==0){x=0}else{if((c[x+12>>2]|0)!=(c[x+16>>2]|0)){break}if(!((Fc[c[(c[x>>2]|0)+36>>2]&255](x)|0)==-1)){break}c[f>>2]=0;x=0}}while(0);k=(x|0)==0;do{if((B|0)==0){l=66}else{if((c[B+12>>2]|0)!=(c[B+16>>2]|0)){if(!k){break}F=d|0;c[F>>2]=x;rm(e);rm(m);i=n;return}if((Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0)==-1){c[g>>2]=0;l=66;break}if(!(k^(B|0)==0)){break}F=d|0;c[F>>2]=x;rm(e);rm(m);i=n;return}}while(0);do{if((l|0)==66){if(k){break}F=d|0;c[F>>2]=x;rm(e);rm(m);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;F=d|0;c[F>>2]=x;rm(e);rm(m);i=n;return}function jo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];ko(a,0,e,d,f,g,h);i=b;return}function ko(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+256|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;w=m+32|0;l=m+40|0;d=m+56|0;n=m+72|0;p=m+80|0;q=m+240|0;o=m+248|0;r=c[g+4>>2]&74;if((r|0)==64){r=8}else if((r|0)==0){r=0}else if((r|0)==8){r=16}else{r=10}s=s|0;Wo(l,g,s,w);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){t=d+1|0;B=t;u=d+8|0}else{u=d+8|0;B=c[u>>2]|0;t=d+1|0}c[n>>2]=B;g=p|0;c[q>>2]=g;c[o>>2]=0;e=e|0;f=f|0;y=d|0;x=d+4|0;z=a[w]|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);C=(w|0)==0;A=c[f>>2]|0;do{if((A|0)==0){k=21}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(C){break}else{break a}}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=21;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==21){k=0;if(C){A=0;break}else{A=0}}C=a[v]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[x>>2]|0}if(((c[n>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[x>>2]|0;B=C}tm(d,B<<1,0);if((a[v]&1)==0){B=10}else{B=(c[y>>2]&-2)-1|0}tm(d,B,0);if((a[v]&1)==0){B=t}else{B=c[u>>2]|0}c[n>>2]=B+C}C=w+12|0;E=c[C>>2]|0;D=w+16|0;if((E|0)==(c[D>>2]|0)){E=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{E=a[E]|0}if((wo(E,r,B,n,o,z,l,g,q,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[C>>2]=A+1;continue}}s=a[l]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[l+4>>2]|0}do{if((s|0)!=0){s=c[q>>2]|0;if((s-p|0)>=160){break}E=c[o>>2]|0;c[q>>2]=s+4;c[s>>2]=E}}while(0);E=Ot(B,c[n>>2]|0,h,r)|0;c[j>>2]=E;hr(l,g,c[q>>2]|0,h);do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);j=(w|0)==0;do{if((A|0)==0){k=66}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(!j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=66;break}if(!(j^(A|0)==0)){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);do{if((k|0)==66){if(j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}function lo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];mo(a,0,e,d,f,g,h);i=b;return}function mo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+256|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;w=m+32|0;l=m+40|0;d=m+56|0;n=m+72|0;p=m+80|0;q=m+240|0;o=m+248|0;r=c[g+4>>2]&74;if((r|0)==8){r=16}else if((r|0)==0){r=0}else if((r|0)==64){r=8}else{r=10}s=s|0;Wo(l,g,s,w);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){t=d+1|0;B=t;u=d+8|0}else{u=d+8|0;B=c[u>>2]|0;t=d+1|0}c[n>>2]=B;g=p|0;c[q>>2]=g;c[o>>2]=0;e=e|0;f=f|0;y=d|0;x=d+4|0;z=a[w]|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);C=(w|0)==0;A=c[f>>2]|0;do{if((A|0)==0){k=21}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(C){break}else{break a}}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=21;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==21){k=0;if(C){A=0;break}else{A=0}}C=a[v]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[x>>2]|0}if(((c[n>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[x>>2]|0;B=C}tm(d,B<<1,0);if((a[v]&1)==0){B=10}else{B=(c[y>>2]&-2)-1|0}tm(d,B,0);if((a[v]&1)==0){B=t}else{B=c[u>>2]|0}c[n>>2]=B+C}C=w+12|0;E=c[C>>2]|0;D=w+16|0;if((E|0)==(c[D>>2]|0)){E=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{E=a[E]|0}if((wo(E,r,B,n,o,z,l,g,q,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[C>>2]=A+1;continue}}s=a[l]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[l+4>>2]|0}do{if((s|0)!=0){s=c[q>>2]|0;if((s-p|0)>=160){break}E=c[o>>2]|0;c[q>>2]=s+4;c[s>>2]=E}}while(0);E=Nt(B,c[n>>2]|0,h,r)|0;c[j>>2]=E;hr(l,g,c[q>>2]|0,h);do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);j=(w|0)==0;do{if((A|0)==0){k=66}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(!j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=66;break}if(!(j^(A|0)==0)){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);do{if((k|0)==66){if(j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}function no(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];oo(a,0,e,d,f,g,h);i=b;return}function oo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+256|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;w=m+32|0;l=m+40|0;d=m+56|0;n=m+72|0;p=m+80|0;q=m+240|0;o=m+248|0;r=c[g+4>>2]&74;if((r|0)==8){r=16}else if((r|0)==0){r=0}else if((r|0)==64){r=8}else{r=10}s=s|0;Wo(l,g,s,w);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){t=d+1|0;B=t;u=d+8|0}else{u=d+8|0;B=c[u>>2]|0;t=d+1|0}c[n>>2]=B;g=p|0;c[q>>2]=g;c[o>>2]=0;e=e|0;f=f|0;y=d|0;x=d+4|0;z=a[w]|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);C=(w|0)==0;A=c[f>>2]|0;do{if((A|0)==0){k=21}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(C){break}else{break a}}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=21;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==21){k=0;if(C){A=0;break}else{A=0}}C=a[v]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[x>>2]|0}if(((c[n>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[x>>2]|0;B=C}tm(d,B<<1,0);if((a[v]&1)==0){B=10}else{B=(c[y>>2]&-2)-1|0}tm(d,B,0);if((a[v]&1)==0){B=t}else{B=c[u>>2]|0}c[n>>2]=B+C}C=w+12|0;E=c[C>>2]|0;D=w+16|0;if((E|0)==(c[D>>2]|0)){E=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{E=a[E]|0}if((wo(E,r,B,n,o,z,l,g,q,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[C>>2]=A+1;continue}}s=a[l]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[l+4>>2]|0}do{if((s|0)!=0){s=c[q>>2]|0;if((s-p|0)>=160){break}E=c[o>>2]|0;c[q>>2]=s+4;c[s>>2]=E}}while(0);E=Mt(B,c[n>>2]|0,h,r)|0;c[j>>2]=E;c[j+4>>2]=K;hr(l,g,c[q>>2]|0,h);do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);j=(w|0)==0;do{if((A|0)==0){k=66}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){if(!j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[f>>2]=0;k=66;break}if(!(j^(A|0)==0)){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);do{if((k|0)==66){if(j){break}E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=w;rm(d);rm(l);i=m;return}function po(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];qo(a,0,e,d,f,g,h);i=b;return}function qo(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+280|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+32|0;y=n+40|0;m=n+48|0;d=n+64|0;q=n+80|0;p=n+88|0;r=n+248|0;o=n+256|0;s=n+264|0;u=n+272|0;t=n|0;Xo(m,h,t,B,y);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){w=d+1|0;E=w;x=d+8|0}else{x=d+8|0;E=c[x>>2]|0;w=d+1|0}c[q>>2]=E;h=p|0;c[r>>2]=h;c[o>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;A=d|0;z=d+4|0;B=a[B]|0;C=a[y]|0;y=c[e>>2]|0;a:while(1){do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);F=(y|0)==0;D=c[f>>2]|0;do{if((D|0)==0){l=17}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(F){break}else{break a}}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=17;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==17){l=0;if(F){D=0;break}else{D=0}}F=a[v]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[z>>2]|0}if(((c[q>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[z>>2]|0;E=F}tm(d,E<<1,0);if((a[v]&1)==0){E=10}else{E=(c[A>>2]&-2)-1|0}tm(d,E,0);if((a[v]&1)==0){E=w}else{E=c[x>>2]|0}c[q>>2]=E+F}G=y+12|0;H=c[G>>2]|0;F=y+16|0;if((H|0)==(c[F>>2]|0)){H=(Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)&255}else{H=a[H]|0}if((Yo(H,s,u,E,q,B,C,m,h,r,o,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[y>>2]|0)+40>>2]&255](y)|0;continue}else{c[G>>2]=D+1;continue}}t=a[m]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[m+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[r>>2]|0;if((s-p|0)>=160){break}H=c[o>>2]|0;c[r>>2]=s+4;c[s>>2]=H}}while(0);I=+Lt(E,c[q>>2]|0,j);g[k>>2]=I;hr(m,h,c[r>>2]|0,j);do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);k=(y|0)==0;do{if((D|0)==0){l=63}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(!k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=63;break}if(!(k^(D|0)==0)){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);do{if((l|0)==63){if(k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}function ro(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];so(a,0,e,d,f,g,h);i=b;return}function so(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+280|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+32|0;y=n+40|0;m=n+48|0;d=n+64|0;q=n+80|0;p=n+88|0;r=n+248|0;o=n+256|0;s=n+264|0;u=n+272|0;t=n|0;Xo(m,g,t,B,y);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){w=d+1|0;E=w;x=d+8|0}else{x=d+8|0;E=c[x>>2]|0;w=d+1|0}c[q>>2]=E;g=p|0;c[r>>2]=g;c[o>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;A=d|0;z=d+4|0;B=a[B]|0;C=a[y]|0;y=c[e>>2]|0;a:while(1){do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);F=(y|0)==0;D=c[f>>2]|0;do{if((D|0)==0){l=17}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(F){break}else{break a}}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=17;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==17){l=0;if(F){D=0;break}else{D=0}}F=a[v]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[z>>2]|0}if(((c[q>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[z>>2]|0;E=F}tm(d,E<<1,0);if((a[v]&1)==0){E=10}else{E=(c[A>>2]&-2)-1|0}tm(d,E,0);if((a[v]&1)==0){E=w}else{E=c[x>>2]|0}c[q>>2]=E+F}G=y+12|0;H=c[G>>2]|0;F=y+16|0;if((H|0)==(c[F>>2]|0)){H=(Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)&255}else{H=a[H]|0}if((Yo(H,s,u,E,q,B,C,m,g,r,o,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[y>>2]|0)+40>>2]&255](y)|0;continue}else{c[G>>2]=D+1;continue}}t=a[m]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[m+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[r>>2]|0;if((s-p|0)>=160){break}H=c[o>>2]|0;c[r>>2]=s+4;c[s>>2]=H}}while(0);I=+Kt(E,c[q>>2]|0,j);h[k>>3]=I;hr(m,g,c[r>>2]|0,j);do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);k=(y|0)==0;do{if((D|0)==0){l=63}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(!k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=63;break}if(!(k^(D|0)==0)){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);do{if((l|0)==63){if(k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}function to(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];uo(a,0,e,d,f,g,h);i=b;return}function uo(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+280|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+32|0;y=n+40|0;m=n+48|0;d=n+64|0;q=n+80|0;p=n+88|0;r=n+248|0;o=n+256|0;s=n+264|0;u=n+272|0;t=n|0;Xo(m,g,t,B,y);v=d;dv(v|0,0,12)|0;tm(d,10,0);if((a[v]&1)==0){w=d+1|0;E=w;x=d+8|0}else{x=d+8|0;E=c[x>>2]|0;w=d+1|0}c[q>>2]=E;g=p|0;c[r>>2]=g;c[o>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;A=d|0;z=d+4|0;B=a[B]|0;C=a[y]|0;y=c[e>>2]|0;a:while(1){do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);F=(y|0)==0;D=c[f>>2]|0;do{if((D|0)==0){l=17}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(F){break}else{break a}}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=17;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==17){l=0;if(F){D=0;break}else{D=0}}F=a[v]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[z>>2]|0}if(((c[q>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[z>>2]|0;E=F}tm(d,E<<1,0);if((a[v]&1)==0){E=10}else{E=(c[A>>2]&-2)-1|0}tm(d,E,0);if((a[v]&1)==0){E=w}else{E=c[x>>2]|0}c[q>>2]=E+F}G=y+12|0;H=c[G>>2]|0;F=y+16|0;if((H|0)==(c[F>>2]|0)){H=(Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)&255}else{H=a[H]|0}if((Yo(H,s,u,E,q,B,C,m,g,r,o,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[y>>2]|0)+40>>2]&255](y)|0;continue}else{c[G>>2]=D+1;continue}}t=a[m]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[m+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[r>>2]|0;if((s-p|0)>=160){break}H=c[o>>2]|0;c[r>>2]=s+4;c[s>>2]=H}}while(0);I=+Jt(E,c[q>>2]|0,j);h[k>>3]=I;hr(m,g,c[r>>2]|0,j);do{if((y|0)==0){y=0}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){break}if(!((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1)){break}c[e>>2]=0;y=0}}while(0);k=(y|0)==0;do{if((D|0)==0){l=63}else{if((c[D+12>>2]|0)!=(c[D+16>>2]|0)){if(!k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}if((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1){c[f>>2]=0;l=63;break}if(!(k^(D|0)==0)){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);do{if((l|0)==63){if(k){break}H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=y;rm(d);rm(m);i=n;return}function vo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=i;i=i+272|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=l|0;q=l+16|0;d=l+48|0;r=l+64|0;m=l+72|0;p=l+88|0;t=l+96|0;o=l+256|0;n=l+264|0;dv(d|0,0,12)|0;Lm(r,g);g=r|0;r=c[g>>2]|0;if(!((c[8716]|0)==-1)){c[s>>2]=34864;c[s+4>>2]=16;c[s+8>>2]=0;mm(34864,s,114)}s=(c[8717]|0)-1|0;u=c[r+8>>2]|0;do{if((c[r+12>>2]|0)-u>>2>>>0>s>>>0){r=c[u+(s<<2)>>2]|0;if((r|0)==0){break}q=q|0;Sc[c[(c[r>>2]|0)+32>>2]&15](r,27208,27234,q)|0;Ul(c[g>>2]|0)|0;s=m;dv(s|0,0,12)|0;tm(m,10,0);if((a[s]&1)==0){r=m+1|0;x=r;g=m+8|0}else{g=m+8|0;x=c[g>>2]|0;r=m+1|0}c[p>>2]=x;t=t|0;c[o>>2]=t;c[n>>2]=0;e=e|0;f=f|0;u=m|0;v=m+4|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){w=0}else{if((c[w+12>>2]|0)!=(c[w+16>>2]|0)){break}if(!((Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)==-1)){break}c[e>>2]=0;w=0}}while(0);z=(w|0)==0;y=c[f>>2]|0;do{if((y|0)==0){k=25}else{if((c[y+12>>2]|0)!=(c[y+16>>2]|0)){if(z){break}else{break a}}if((Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0)==-1){c[f>>2]=0;k=25;break}else{if(z){break}else{break a}}}}while(0);if((k|0)==25){k=0;if(z){break}}y=a[s]|0;z=(y&1)==0;if(z){A=(y&255)>>>1}else{A=c[v>>2]|0}if(((c[p>>2]|0)-x|0)==(A|0)){if(z){x=(y&255)>>>1;y=(y&255)>>>1}else{y=c[v>>2]|0;x=y}tm(m,x<<1,0);if((a[s]&1)==0){x=10}else{x=(c[u>>2]&-2)-1|0}tm(m,x,0);if((a[s]&1)==0){x=r}else{x=c[g>>2]|0}c[p>>2]=x+y}y=w+12|0;A=c[y>>2]|0;z=w+16|0;if((A|0)==(c[z>>2]|0)){A=(Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0)&255}else{A=a[A]|0}if((wo(A,16,x,p,n,0,d,t,o,q)|0)!=0){break}A=c[y>>2]|0;if((A|0)==(c[z>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[y>>2]=A+1;continue}}a[x+3|0]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}A=Xa(2147483647,14472,0)|0;c[8330]=A}}while(0);A=xo(x,c[8330]|0,11744,(z=i,i=i+8|0,c[z>>2]=j,z)|0)|0;i=z;if((A|0)!=1){c[h>>2]=4}o=c[e>>2]|0;do{if((o|0)==0){o=0}else{if((c[o+12>>2]|0)!=(c[o+16>>2]|0)){break}if(!((Fc[c[(c[o>>2]|0)+36>>2]&255](o)|0)==-1)){break}c[e>>2]=0;o=0}}while(0);j=(o|0)==0;n=c[f>>2]|0;do{if((n|0)==0){k=73}else{if((c[n+12>>2]|0)!=(c[n+16>>2]|0)){if(!j){break}A=b|0;c[A>>2]=o;rm(m);rm(d);i=l;return}if((Fc[c[(c[n>>2]|0)+36>>2]&255](n)|0)==-1){c[f>>2]=0;k=73;break}if(!(j^(n|0)==0)){break}A=b|0;c[A>>2]=o;rm(m);rm(d);i=l;return}}while(0);do{if((k|0)==73){if(j){break}A=b|0;c[A>>2]=o;rm(m);rm(d);i=l;return}}while(0);c[h>>2]=c[h>>2]|2;A=b|0;c[A>>2]=o;rm(m);rm(d);i=l;return}}while(0);A=pc(4)|0;lu(A);Fb(A|0,25544,156)}function wo(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;n=c[f>>2]|0;m=(n|0)==(e|0);do{if(m){o=(a[l+24|0]|0)==b<<24>>24;if(!o){if(!((a[l+25|0]|0)==b<<24>>24)){break}}c[f>>2]=e+1;a[e]=o?43:45;c[g>>2]=0;o=0;return o|0}}while(0);o=a[i]|0;if((o&1)==0){i=(o&255)>>>1}else{i=c[i+4>>2]|0}if((i|0)!=0&b<<24>>24==h<<24>>24){e=c[k>>2]|0;if((e-j|0)>=160){o=0;return o|0}o=c[g>>2]|0;c[k>>2]=e+4;c[e>>2]=o;c[g>>2]=0;o=0;return o|0}k=l+26|0;j=l;while(1){h=j+1|0;if((a[j]|0)==b<<24>>24){break}if((h|0)==(k|0)){j=k;break}else{j=h}}l=j-l|0;if((l|0)>23){o=-1;return o|0}do{if((d|0)==16){if((l|0)<22){break}if(m){o=-1;return o|0}if((n-e|0)>=3){o=-1;return o|0}if((a[n-1|0]|0)!=48){o=-1;return o|0}c[g>>2]=0;o=a[27208+l|0]|0;c[f>>2]=n+1;a[n]=o;o=0;return o|0}else if((d|0)==8|(d|0)==10){if((l|0)<(d|0)){break}else{g=-1}return g|0}}while(0);o=a[27208+l|0]|0;c[f>>2]=n+1;a[n]=o;c[g>>2]=(c[g>>2]|0)+1;o=0;return o|0}function xo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f|0;h=g;c[h>>2]=e;c[h+4>>2]=0;b=bc(b|0)|0;d=cb(a|0,d|0,g|0)|0;if((b|0)==0){i=f;return d|0}bc(b|0)|0;i=f;return d|0}function yo(a){a=a|0;Sl(a|0);Pu(a);return}function zo(a){a=a|0;Sl(a|0);return}function Ao(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=i;i=i+112|0;n=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[n>>2];n=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[n>>2];n=k|0;p=k+16|0;q=k+32|0;u=k+40|0;s=k+48|0;t=k+56|0;r=k+64|0;o=k+72|0;l=k+80|0;m=k+104|0;if((c[g+4>>2]&1|0)==0){c[q>>2]=-1;p=c[(c[d>>2]|0)+16>>2]|0;r=e|0;c[s>>2]=c[r>>2];c[t>>2]=c[f>>2];Mc[p&127](u,d,s,t,g,h,q);e=c[u>>2]|0;c[r>>2]=e;f=c[q>>2]|0;if((f|0)==1){a[j]=1}else if((f|0)==0){a[j]=0}else{a[j]=1;c[h>>2]=4}c[b>>2]=e;i=k;return}Lm(r,g);q=r|0;r=c[q>>2]|0;if(!((c[8714]|0)==-1)){c[p>>2]=34856;c[p+4>>2]=16;c[p+8>>2]=0;mm(34856,p,114)}p=(c[8715]|0)-1|0;s=c[r+8>>2]|0;do{if((c[r+12>>2]|0)-s>>2>>>0>p>>>0){p=c[s+(p<<2)>>2]|0;if((p|0)==0){break}Ul(c[q>>2]|0)|0;Lm(o,g);o=o|0;g=c[o>>2]|0;if(!((c[8618]|0)==-1)){c[n>>2]=34472;c[n+4>>2]=16;c[n+8>>2]=0;mm(34472,n,114)}n=(c[8619]|0)-1|0;q=c[g+8>>2]|0;do{if((c[g+12>>2]|0)-q>>2>>>0>n>>>0){n=c[q+(n<<2)>>2]|0;if((n|0)==0){break}t=n;Ul(c[o>>2]|0)|0;u=l|0;d=n;Ec[c[(c[d>>2]|0)+24>>2]&127](u,t);Ec[c[(c[d>>2]|0)+28>>2]&127](l+12|0,t);c[m>>2]=c[f>>2];u=(Bo(e,m,u,l+24|0,p,h,1)|0)==(u|0)|0;a[j]=u;c[b>>2]=c[e>>2];Cm(l+12|0);Cm(l|0);i=k;return}}while(0);u=pc(4)|0;lu(u);Fb(u|0,25544,156)}}while(0);u=pc(4)|0;lu(u);Fb(u|0,25544,156)}function Bo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=i;i=i+104|0;u=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[u>>2];u=(f-e|0)/12|0;n=l|0;do{if(u>>>0>100>>>0){m=Gu(u)|0;if((m|0)!=0){n=m;break}Uu();n=0;m=0}else{m=0}}while(0);o=(e|0)==(f|0);if(o){t=0}else{t=0;p=n;q=e;while(1){r=a[q]|0;if((r&1)==0){r=(r&255)>>>1}else{r=c[q+4>>2]|0}if((r|0)==0){a[p]=2;t=t+1|0;u=u-1|0}else{a[p]=1}q=q+12|0;if((q|0)==(f|0)){break}else{p=p+1|0}}}b=b|0;d=d|0;p=g;q=0;a:while(1){r=c[b>>2]|0;do{if((r|0)==0){s=1}else{s=c[r+12>>2]|0;if((s|0)==(c[r+16>>2]|0)){r=Fc[c[(c[r>>2]|0)+36>>2]&255](r)|0}else{r=c[s>>2]|0}if((r|0)==-1){c[b>>2]=0;s=1;break}else{s=(c[b>>2]|0)==0;break}}}while(0);r=c[d>>2]|0;do{if((r|0)==0){w=1;r=0}else{v=c[r+12>>2]|0;if((v|0)==(c[r+16>>2]|0)){v=Fc[c[(c[r>>2]|0)+36>>2]&255](r)|0}else{v=c[v>>2]|0}if(!((v|0)==-1)){w=0;break}c[d>>2]=0;w=1;r=0}}while(0);v=c[b>>2]|0;if(!((s^w)&(u|0)!=0)){break}r=c[v+12>>2]|0;if((r|0)==(c[v+16>>2]|0)){s=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{s=c[r>>2]|0}if(!j){s=Qc[c[(c[p>>2]|0)+28>>2]&63](g,s)|0}r=q+1|0;if(o){q=r;continue}b:do{if(j){v=n;x=0;w=e;while(1){do{if((a[v]|0)==1){z=a[w]|0;A=(z&1)==0;if(A){y=w+4|0}else{y=c[w+8>>2]|0}if((s|0)!=(c[y+(q<<2)>>2]|0)){a[v]=0;u=u-1|0;break}if(A){x=(z&255)>>>1}else{x=c[w+4>>2]|0}if((x|0)!=(r|0)){x=1;break}a[v]=2;x=1;t=t+1|0;u=u-1|0}}while(0);w=w+12|0;if((w|0)==(f|0)){s=u;break b}v=v+1|0}}else{v=n;x=0;w=e;while(1){do{if((a[v]|0)==1){y=w;if((a[y]&1)==0){z=w+4|0}else{z=c[w+8>>2]|0}if((s|0)!=(Qc[c[(c[p>>2]|0)+28>>2]&63](g,c[z+(q<<2)>>2]|0)|0)){a[v]=0;u=u-1|0;break}x=a[y]|0;if((x&1)==0){x=(x&255)>>>1}else{x=c[w+4>>2]|0}if((x|0)!=(r|0)){x=1;break}a[v]=2;x=1;t=t+1|0;u=u-1|0}}while(0);w=w+12|0;if((w|0)==(f|0)){s=u;break b}v=v+1|0}}}while(0);if(!x){q=r;u=s;continue}v=c[b>>2]|0;u=v+12|0;q=c[u>>2]|0;if((q|0)==(c[v+16>>2]|0)){Fc[c[(c[v>>2]|0)+40>>2]&255](v)|0}else{c[u>>2]=q+4}if((s+t|0)>>>0<2>>>0){q=r;u=s;continue}else{q=n;u=e}while(1){do{if((a[q]|0)==2){v=a[u]|0;if((v&1)==0){v=(v&255)>>>1}else{v=c[u+4>>2]|0}if((v|0)==(r|0)){break}a[q]=0;t=t-1|0}}while(0);u=u+12|0;if((u|0)==(f|0)){q=r;u=s;continue a}else{q=q+1|0}}}do{if((v|0)==0){j=1}else{j=c[v+12>>2]|0;if((j|0)==(c[v+16>>2]|0)){j=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{j=c[j>>2]|0}if((j|0)==-1){c[b>>2]=0;j=1;break}else{j=(c[b>>2]|0)==0;break}}}while(0);do{if((r|0)==0){k=94}else{g=c[r+12>>2]|0;if((g|0)==(c[r+16>>2]|0)){g=Fc[c[(c[r>>2]|0)+36>>2]&255](r)|0}else{g=c[g>>2]|0}if((g|0)==-1){c[d>>2]=0;k=94;break}else{if(j){break}else{k=96;break}}}}while(0);if((k|0)==94){if(j){k=96}}if((k|0)==96){c[h>>2]=c[h>>2]|2}c:do{if(o){k=101}else{if((a[n]|0)==2){f=e;break}while(1){e=e+12|0;n=n+1|0;if((e|0)==(f|0)){k=101;break c}if((a[n]|0)==2){f=e;break}}}}while(0);if((k|0)==101){c[h>>2]=c[h>>2]|4}if((m|0)==0){i=l;return f|0}Hu(m);i=l;return f|0}function Co(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Do(a,0,e,d,f,g,h);i=b;return}function Do(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+328|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;t=m+104|0;d=m+112|0;l=m+128|0;o=m+144|0;p=m+152|0;n=m+312|0;q=m+320|0;r=c[g+4>>2]&74;if((r|0)==8){r=16}else if((r|0)==64){r=8}else if((r|0)==0){r=0}else{r=10}s=s|0;Zo(d,g,s,t);w=l;dv(w|0,0,12)|0;tm(l,10,0);if((a[w]&1)==0){u=l+1|0;B=u;v=l+8|0}else{v=l+8|0;B=c[v>>2]|0;u=l+1|0}c[o>>2]=B;g=p|0;c[n>>2]=g;c[q>>2]=0;e=e|0;f=f|0;x=l|0;y=l+4|0;z=c[t>>2]|0;t=c[e>>2]|0;a:while(1){do{if((t|0)==0){C=1;t=0}else{A=c[t+12>>2]|0;if((A|0)==(c[t+16>>2]|0)){A=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{A=c[A>>2]|0}if(!((A|0)==-1)){C=0;break}c[e>>2]=0;C=1;t=0}}while(0);A=c[f>>2]|0;do{if((A|0)==0){k=22}else{D=c[A+12>>2]|0;if((D|0)==(c[A+16>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[f>>2]=0;k=22;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==22){k=0;if(C){A=0;break}else{A=0}}C=a[w]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[y>>2]|0}if(((c[o>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[y>>2]|0;B=C}tm(l,B<<1,0);if((a[w]&1)==0){B=10}else{B=(c[x>>2]&-2)-1|0}tm(l,B,0);if((a[w]&1)==0){B=u}else{B=c[v>>2]|0}c[o>>2]=B+C}C=t+12|0;E=c[C>>2]|0;D=t+16|0;if((E|0)==(c[D>>2]|0)){E=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{E=c[E>>2]|0}if((Vo(E,r,B,o,q,z,d,g,n,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[t>>2]|0)+40>>2]&255](t)|0;continue}else{c[C>>2]=A+4;continue}}s=a[d]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[d+4>>2]|0}do{if((s|0)!=0){s=c[n>>2]|0;if((s-p|0)>=160){break}E=c[q>>2]|0;c[n>>2]=s+4;c[s>>2]=E}}while(0);E=Rt(B,c[o>>2]|0,h,r)|0;c[j>>2]=E;hr(d,g,c[n>>2]|0,h);do{if((t|0)==0){j=1;t=0}else{j=c[t+12>>2]|0;if((j|0)==(c[t+16>>2]|0)){j=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;t=0}}while(0);do{if((A|0)==0){k=67}else{n=c[A+12>>2]|0;if((n|0)==(c[A+16>>2]|0)){n=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{n=c[n>>2]|0}if((n|0)==-1){c[f>>2]=0;k=67;break}if(!j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);do{if((k|0)==67){if(j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}function Eo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Fo(a,0,e,d,f,g,h);i=b;return}function Fo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+328|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;t=m+104|0;d=m+112|0;l=m+128|0;o=m+144|0;p=m+152|0;n=m+312|0;q=m+320|0;r=c[g+4>>2]&74;if((r|0)==64){r=8}else if((r|0)==8){r=16}else if((r|0)==0){r=0}else{r=10}s=s|0;Zo(d,g,s,t);w=l;dv(w|0,0,12)|0;tm(l,10,0);if((a[w]&1)==0){u=l+1|0;B=u;v=l+8|0}else{v=l+8|0;B=c[v>>2]|0;u=l+1|0}c[o>>2]=B;g=p|0;c[n>>2]=g;c[q>>2]=0;e=e|0;f=f|0;x=l|0;y=l+4|0;z=c[t>>2]|0;t=c[e>>2]|0;a:while(1){do{if((t|0)==0){C=1;t=0}else{A=c[t+12>>2]|0;if((A|0)==(c[t+16>>2]|0)){A=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{A=c[A>>2]|0}if(!((A|0)==-1)){C=0;break}c[e>>2]=0;C=1;t=0}}while(0);A=c[f>>2]|0;do{if((A|0)==0){k=22}else{D=c[A+12>>2]|0;if((D|0)==(c[A+16>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[f>>2]=0;k=22;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==22){k=0;if(C){A=0;break}else{A=0}}C=a[w]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[y>>2]|0}if(((c[o>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[y>>2]|0;B=C}tm(l,B<<1,0);if((a[w]&1)==0){B=10}else{B=(c[x>>2]&-2)-1|0}tm(l,B,0);if((a[w]&1)==0){B=u}else{B=c[v>>2]|0}c[o>>2]=B+C}C=t+12|0;E=c[C>>2]|0;D=t+16|0;if((E|0)==(c[D>>2]|0)){E=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{E=c[E>>2]|0}if((Vo(E,r,B,o,q,z,d,g,n,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[t>>2]|0)+40>>2]&255](t)|0;continue}else{c[C>>2]=A+4;continue}}s=a[d]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[d+4>>2]|0}do{if((s|0)!=0){s=c[n>>2]|0;if((s-p|0)>=160){break}E=c[q>>2]|0;c[n>>2]=s+4;c[s>>2]=E}}while(0);E=Qt(B,c[o>>2]|0,h,r)|0;c[j>>2]=E;c[j+4>>2]=K;hr(d,g,c[n>>2]|0,h);do{if((t|0)==0){j=1;t=0}else{j=c[t+12>>2]|0;if((j|0)==(c[t+16>>2]|0)){j=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;t=0}}while(0);do{if((A|0)==0){k=67}else{n=c[A+12>>2]|0;if((n|0)==(c[A+16>>2]|0)){n=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{n=c[n>>2]|0}if((n|0)==-1){c[f>>2]=0;k=67;break}if(!j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);do{if((k|0)==67){if(j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}function Go(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Ho(a,0,e,d,f,g,h);i=b;return}function Ho(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;n=i;i=i+328|0;t=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[t>>2];t=g;g=i;i=i+4|0;i=i+7&-8;c[g>>2]=c[t>>2];t=n|0;u=n+104|0;e=n+112|0;m=n+128|0;p=n+144|0;q=n+152|0;o=n+312|0;r=n+320|0;s=c[h+4>>2]&74;if((s|0)==0){s=0}else if((s|0)==64){s=8}else if((s|0)==8){s=16}else{s=10}t=t|0;Zo(e,h,t,u);x=m;dv(x|0,0,12)|0;tm(m,10,0);if((a[x]&1)==0){v=m+1|0;C=v;w=m+8|0}else{w=m+8|0;C=c[w>>2]|0;v=m+1|0}c[p>>2]=C;h=q|0;c[o>>2]=h;c[r>>2]=0;f=f|0;g=g|0;y=m|0;z=m+4|0;A=c[u>>2]|0;u=c[f>>2]|0;a:while(1){do{if((u|0)==0){D=1;u=0}else{B=c[u+12>>2]|0;if((B|0)==(c[u+16>>2]|0)){B=Fc[c[(c[u>>2]|0)+36>>2]&255](u)|0}else{B=c[B>>2]|0}if(!((B|0)==-1)){D=0;break}c[f>>2]=0;D=1;u=0}}while(0);B=c[g>>2]|0;do{if((B|0)==0){l=22}else{E=c[B+12>>2]|0;if((E|0)==(c[B+16>>2]|0)){E=Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0}else{E=c[E>>2]|0}if((E|0)==-1){c[g>>2]=0;l=22;break}else{if(D){break}else{break a}}}}while(0);if((l|0)==22){l=0;if(D){B=0;break}else{B=0}}D=a[x]|0;F=(D&1)==0;if(F){E=(D&255)>>>1}else{E=c[z>>2]|0}if(((c[p>>2]|0)-C|0)==(E|0)){if(F){C=(D&255)>>>1;D=(D&255)>>>1}else{D=c[z>>2]|0;C=D}tm(m,C<<1,0);if((a[x]&1)==0){C=10}else{C=(c[y>>2]&-2)-1|0}tm(m,C,0);if((a[x]&1)==0){C=v}else{C=c[w>>2]|0}c[p>>2]=C+D}D=u+12|0;F=c[D>>2]|0;E=u+16|0;if((F|0)==(c[E>>2]|0)){F=Fc[c[(c[u>>2]|0)+36>>2]&255](u)|0}else{F=c[F>>2]|0}if((Vo(F,s,C,p,r,A,e,h,o,t)|0)!=0){break}B=c[D>>2]|0;if((B|0)==(c[E>>2]|0)){Fc[c[(c[u>>2]|0)+40>>2]&255](u)|0;continue}else{c[D>>2]=B+4;continue}}t=a[e]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[e+4>>2]|0}do{if((t|0)!=0){t=c[o>>2]|0;if((t-q|0)>=160){break}F=c[r>>2]|0;c[o>>2]=t+4;c[t>>2]=F}}while(0);F=Pt(C,c[p>>2]|0,j,s)|0;b[k>>1]=F;hr(e,h,c[o>>2]|0,j);do{if((u|0)==0){k=1;u=0}else{k=c[u+12>>2]|0;if((k|0)==(c[u+16>>2]|0)){k=Fc[c[(c[u>>2]|0)+36>>2]&255](u)|0}else{k=c[k>>2]|0}if(!((k|0)==-1)){k=0;break}c[f>>2]=0;k=1;u=0}}while(0);do{if((B|0)==0){l=67}else{o=c[B+12>>2]|0;if((o|0)==(c[B+16>>2]|0)){o=Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0}else{o=c[o>>2]|0}if((o|0)==-1){c[g>>2]=0;l=67;break}if(!k){break}F=d|0;c[F>>2]=u;rm(m);rm(e);i=n;return}}while(0);do{if((l|0)==67){if(k){break}F=d|0;c[F>>2]=u;rm(m);rm(e);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;F=d|0;c[F>>2]=u;rm(m);rm(e);i=n;return}function Io(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Jo(a,0,e,d,f,g,h);i=b;return}function Jo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+328|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;t=m+104|0;d=m+112|0;l=m+128|0;o=m+144|0;p=m+152|0;n=m+312|0;q=m+320|0;r=c[g+4>>2]&74;if((r|0)==64){r=8}else if((r|0)==0){r=0}else if((r|0)==8){r=16}else{r=10}s=s|0;Zo(d,g,s,t);w=l;dv(w|0,0,12)|0;tm(l,10,0);if((a[w]&1)==0){u=l+1|0;B=u;v=l+8|0}else{v=l+8|0;B=c[v>>2]|0;u=l+1|0}c[o>>2]=B;g=p|0;c[n>>2]=g;c[q>>2]=0;e=e|0;f=f|0;x=l|0;y=l+4|0;z=c[t>>2]|0;t=c[e>>2]|0;a:while(1){do{if((t|0)==0){C=1;t=0}else{A=c[t+12>>2]|0;if((A|0)==(c[t+16>>2]|0)){A=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{A=c[A>>2]|0}if(!((A|0)==-1)){C=0;break}c[e>>2]=0;C=1;t=0}}while(0);A=c[f>>2]|0;do{if((A|0)==0){k=22}else{D=c[A+12>>2]|0;if((D|0)==(c[A+16>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[f>>2]=0;k=22;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==22){k=0;if(C){A=0;break}else{A=0}}C=a[w]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[y>>2]|0}if(((c[o>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[y>>2]|0;B=C}tm(l,B<<1,0);if((a[w]&1)==0){B=10}else{B=(c[x>>2]&-2)-1|0}tm(l,B,0);if((a[w]&1)==0){B=u}else{B=c[v>>2]|0}c[o>>2]=B+C}C=t+12|0;E=c[C>>2]|0;D=t+16|0;if((E|0)==(c[D>>2]|0)){E=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{E=c[E>>2]|0}if((Vo(E,r,B,o,q,z,d,g,n,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[t>>2]|0)+40>>2]&255](t)|0;continue}else{c[C>>2]=A+4;continue}}s=a[d]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[d+4>>2]|0}do{if((s|0)!=0){s=c[n>>2]|0;if((s-p|0)>=160){break}E=c[q>>2]|0;c[n>>2]=s+4;c[s>>2]=E}}while(0);E=Ot(B,c[o>>2]|0,h,r)|0;c[j>>2]=E;hr(d,g,c[n>>2]|0,h);do{if((t|0)==0){j=1;t=0}else{j=c[t+12>>2]|0;if((j|0)==(c[t+16>>2]|0)){j=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;t=0}}while(0);do{if((A|0)==0){k=67}else{n=c[A+12>>2]|0;if((n|0)==(c[A+16>>2]|0)){n=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{n=c[n>>2]|0}if((n|0)==-1){c[f>>2]=0;k=67;break}if(!j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);do{if((k|0)==67){if(j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}function Ko(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Lo(a,0,e,d,f,g,h);i=b;return}function Lo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+328|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;t=m+104|0;d=m+112|0;l=m+128|0;o=m+144|0;p=m+152|0;n=m+312|0;q=m+320|0;r=c[g+4>>2]&74;if((r|0)==8){r=16}else if((r|0)==64){r=8}else if((r|0)==0){r=0}else{r=10}s=s|0;Zo(d,g,s,t);w=l;dv(w|0,0,12)|0;tm(l,10,0);if((a[w]&1)==0){u=l+1|0;B=u;v=l+8|0}else{v=l+8|0;B=c[v>>2]|0;u=l+1|0}c[o>>2]=B;g=p|0;c[n>>2]=g;c[q>>2]=0;e=e|0;f=f|0;x=l|0;y=l+4|0;z=c[t>>2]|0;t=c[e>>2]|0;a:while(1){do{if((t|0)==0){C=1;t=0}else{A=c[t+12>>2]|0;if((A|0)==(c[t+16>>2]|0)){A=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{A=c[A>>2]|0}if(!((A|0)==-1)){C=0;break}c[e>>2]=0;C=1;t=0}}while(0);A=c[f>>2]|0;do{if((A|0)==0){k=22}else{D=c[A+12>>2]|0;if((D|0)==(c[A+16>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[f>>2]=0;k=22;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==22){k=0;if(C){A=0;break}else{A=0}}C=a[w]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[y>>2]|0}if(((c[o>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[y>>2]|0;B=C}tm(l,B<<1,0);if((a[w]&1)==0){B=10}else{B=(c[x>>2]&-2)-1|0}tm(l,B,0);if((a[w]&1)==0){B=u}else{B=c[v>>2]|0}c[o>>2]=B+C}C=t+12|0;E=c[C>>2]|0;D=t+16|0;if((E|0)==(c[D>>2]|0)){E=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{E=c[E>>2]|0}if((Vo(E,r,B,o,q,z,d,g,n,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[t>>2]|0)+40>>2]&255](t)|0;continue}else{c[C>>2]=A+4;continue}}s=a[d]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[d+4>>2]|0}do{if((s|0)!=0){s=c[n>>2]|0;if((s-p|0)>=160){break}E=c[q>>2]|0;c[n>>2]=s+4;c[s>>2]=E}}while(0);E=Nt(B,c[o>>2]|0,h,r)|0;c[j>>2]=E;hr(d,g,c[n>>2]|0,h);do{if((t|0)==0){j=1;t=0}else{j=c[t+12>>2]|0;if((j|0)==(c[t+16>>2]|0)){j=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;t=0}}while(0);do{if((A|0)==0){k=67}else{n=c[A+12>>2]|0;if((n|0)==(c[A+16>>2]|0)){n=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{n=c[n>>2]|0}if((n|0)==-1){c[f>>2]=0;k=67;break}if(!j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);do{if((k|0)==67){if(j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}function Mo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];No(a,0,e,d,f,g,h);i=b;return}function No(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;m=i;i=i+328|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=m|0;t=m+104|0;d=m+112|0;l=m+128|0;o=m+144|0;p=m+152|0;n=m+312|0;q=m+320|0;r=c[g+4>>2]&74;if((r|0)==64){r=8}else if((r|0)==8){r=16}else if((r|0)==0){r=0}else{r=10}s=s|0;Zo(d,g,s,t);w=l;dv(w|0,0,12)|0;tm(l,10,0);if((a[w]&1)==0){u=l+1|0;B=u;v=l+8|0}else{v=l+8|0;B=c[v>>2]|0;u=l+1|0}c[o>>2]=B;g=p|0;c[n>>2]=g;c[q>>2]=0;e=e|0;f=f|0;x=l|0;y=l+4|0;z=c[t>>2]|0;t=c[e>>2]|0;a:while(1){do{if((t|0)==0){C=1;t=0}else{A=c[t+12>>2]|0;if((A|0)==(c[t+16>>2]|0)){A=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{A=c[A>>2]|0}if(!((A|0)==-1)){C=0;break}c[e>>2]=0;C=1;t=0}}while(0);A=c[f>>2]|0;do{if((A|0)==0){k=22}else{D=c[A+12>>2]|0;if((D|0)==(c[A+16>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[f>>2]=0;k=22;break}else{if(C){break}else{break a}}}}while(0);if((k|0)==22){k=0;if(C){A=0;break}else{A=0}}C=a[w]|0;E=(C&1)==0;if(E){D=(C&255)>>>1}else{D=c[y>>2]|0}if(((c[o>>2]|0)-B|0)==(D|0)){if(E){B=(C&255)>>>1;C=(C&255)>>>1}else{C=c[y>>2]|0;B=C}tm(l,B<<1,0);if((a[w]&1)==0){B=10}else{B=(c[x>>2]&-2)-1|0}tm(l,B,0);if((a[w]&1)==0){B=u}else{B=c[v>>2]|0}c[o>>2]=B+C}C=t+12|0;E=c[C>>2]|0;D=t+16|0;if((E|0)==(c[D>>2]|0)){E=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{E=c[E>>2]|0}if((Vo(E,r,B,o,q,z,d,g,n,s)|0)!=0){break}A=c[C>>2]|0;if((A|0)==(c[D>>2]|0)){Fc[c[(c[t>>2]|0)+40>>2]&255](t)|0;continue}else{c[C>>2]=A+4;continue}}s=a[d]|0;if((s&1)==0){s=(s&255)>>>1}else{s=c[d+4>>2]|0}do{if((s|0)!=0){s=c[n>>2]|0;if((s-p|0)>=160){break}E=c[q>>2]|0;c[n>>2]=s+4;c[s>>2]=E}}while(0);E=Mt(B,c[o>>2]|0,h,r)|0;c[j>>2]=E;c[j+4>>2]=K;hr(d,g,c[n>>2]|0,h);do{if((t|0)==0){j=1;t=0}else{j=c[t+12>>2]|0;if((j|0)==(c[t+16>>2]|0)){j=Fc[c[(c[t>>2]|0)+36>>2]&255](t)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;t=0}}while(0);do{if((A|0)==0){k=67}else{n=c[A+12>>2]|0;if((n|0)==(c[A+16>>2]|0)){n=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{n=c[n>>2]|0}if((n|0)==-1){c[f>>2]=0;k=67;break}if(!j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);do{if((k|0)==67){if(j){break}E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}}while(0);c[h>>2]=c[h>>2]|2;E=b|0;c[E>>2]=t;rm(l);rm(d);i=m;return}function Oo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Po(a,0,e,d,f,g,h);i=b;return}function Po(b,d,e,f,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+376|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+128|0;v=n+136|0;d=n+144|0;m=n+160|0;o=n+176|0;r=n+184|0;p=n+344|0;q=n+352|0;s=n+360|0;u=n+368|0;t=n|0;_o(d,h,t,B,v);y=m;dv(y|0,0,12)|0;tm(m,10,0);if((a[y]&1)==0){w=m+1|0;E=w;x=m+8|0}else{x=m+8|0;E=c[x>>2]|0;w=m+1|0}c[o>>2]=E;h=r|0;c[p>>2]=h;c[q>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;z=m|0;A=m+4|0;B=c[B>>2]|0;C=c[v>>2]|0;v=c[e>>2]|0;a:while(1){do{if((v|0)==0){F=1;v=0}else{D=c[v+12>>2]|0;if((D|0)==(c[v+16>>2]|0)){D=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{D=c[D>>2]|0}if(!((D|0)==-1)){F=0;break}c[e>>2]=0;F=1;v=0}}while(0);D=c[f>>2]|0;do{if((D|0)==0){l=18}else{G=c[D+12>>2]|0;if((G|0)==(c[D+16>>2]|0)){G=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{G=c[G>>2]|0}if((G|0)==-1){c[f>>2]=0;l=18;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==18){l=0;if(F){D=0;break}else{D=0}}F=a[y]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[A>>2]|0}if(((c[o>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[A>>2]|0;E=F}tm(m,E<<1,0);if((a[y]&1)==0){E=10}else{E=(c[z>>2]&-2)-1|0}tm(m,E,0);if((a[y]&1)==0){E=w}else{E=c[x>>2]|0}c[o>>2]=E+F}G=v+12|0;H=c[G>>2]|0;F=v+16|0;if((H|0)==(c[F>>2]|0)){H=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{H=c[H>>2]|0}if(($o(H,s,u,E,o,B,C,d,h,p,q,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[v>>2]|0)+40>>2]&255](v)|0;continue}else{c[G>>2]=D+4;continue}}t=a[d]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[d+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[p>>2]|0;if((s-r|0)>=160){break}H=c[q>>2]|0;c[p>>2]=s+4;c[s>>2]=H}}while(0);I=+Lt(E,c[o>>2]|0,j);g[k>>2]=I;hr(d,h,c[p>>2]|0,j);do{if((v|0)==0){k=1;v=0}else{k=c[v+12>>2]|0;if((k|0)==(c[v+16>>2]|0)){k=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{k=c[k>>2]|0}if(!((k|0)==-1)){k=0;break}c[e>>2]=0;k=1;v=0}}while(0);do{if((D|0)==0){l=64}else{o=c[D+12>>2]|0;if((o|0)==(c[D+16>>2]|0)){o=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{o=c[o>>2]|0}if((o|0)==-1){c[f>>2]=0;l=64;break}if(!k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);do{if((l|0)==64){if(k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}function Qo(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];Ro(a,0,e,d,f,g,h);i=b;return}function Ro(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+376|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+128|0;v=n+136|0;d=n+144|0;m=n+160|0;o=n+176|0;r=n+184|0;p=n+344|0;q=n+352|0;s=n+360|0;u=n+368|0;t=n|0;_o(d,g,t,B,v);y=m;dv(y|0,0,12)|0;tm(m,10,0);if((a[y]&1)==0){w=m+1|0;E=w;x=m+8|0}else{x=m+8|0;E=c[x>>2]|0;w=m+1|0}c[o>>2]=E;g=r|0;c[p>>2]=g;c[q>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;z=m|0;A=m+4|0;B=c[B>>2]|0;C=c[v>>2]|0;v=c[e>>2]|0;a:while(1){do{if((v|0)==0){F=1;v=0}else{D=c[v+12>>2]|0;if((D|0)==(c[v+16>>2]|0)){D=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{D=c[D>>2]|0}if(!((D|0)==-1)){F=0;break}c[e>>2]=0;F=1;v=0}}while(0);D=c[f>>2]|0;do{if((D|0)==0){l=18}else{G=c[D+12>>2]|0;if((G|0)==(c[D+16>>2]|0)){G=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{G=c[G>>2]|0}if((G|0)==-1){c[f>>2]=0;l=18;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==18){l=0;if(F){D=0;break}else{D=0}}F=a[y]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[A>>2]|0}if(((c[o>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[A>>2]|0;E=F}tm(m,E<<1,0);if((a[y]&1)==0){E=10}else{E=(c[z>>2]&-2)-1|0}tm(m,E,0);if((a[y]&1)==0){E=w}else{E=c[x>>2]|0}c[o>>2]=E+F}G=v+12|0;H=c[G>>2]|0;F=v+16|0;if((H|0)==(c[F>>2]|0)){H=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{H=c[H>>2]|0}if(($o(H,s,u,E,o,B,C,d,g,p,q,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[v>>2]|0)+40>>2]&255](v)|0;continue}else{c[G>>2]=D+4;continue}}t=a[d]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[d+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[p>>2]|0;if((s-r|0)>=160){break}H=c[q>>2]|0;c[p>>2]=s+4;c[s>>2]=H}}while(0);I=+Kt(E,c[o>>2]|0,j);h[k>>3]=I;hr(d,g,c[p>>2]|0,j);do{if((v|0)==0){k=1;v=0}else{k=c[v+12>>2]|0;if((k|0)==(c[v+16>>2]|0)){k=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{k=c[k>>2]|0}if(!((k|0)==-1)){k=0;break}c[e>>2]=0;k=1;v=0}}while(0);do{if((D|0)==0){l=64}else{o=c[D+12>>2]|0;if((o|0)==(c[D+16>>2]|0)){o=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{o=c[o>>2]|0}if((o|0)==-1){c[f>>2]=0;l=64;break}if(!k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);do{if((l|0)==64){if(k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}function So(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0;b=i;i=i+16|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=e;j=i;i=i+4|0;i=i+7&-8;c[j>>2]=c[l>>2];e=b|0;d=b+8|0;c[e>>2]=c[k>>2];c[d>>2]=c[j>>2];To(a,0,e,d,f,g,h);i=b;return}function To(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0;n=i;i=i+376|0;B=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[B>>2];B=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[B>>2];B=n+128|0;v=n+136|0;d=n+144|0;m=n+160|0;o=n+176|0;r=n+184|0;p=n+344|0;q=n+352|0;s=n+360|0;u=n+368|0;t=n|0;_o(d,g,t,B,v);y=m;dv(y|0,0,12)|0;tm(m,10,0);if((a[y]&1)==0){w=m+1|0;E=w;x=m+8|0}else{x=m+8|0;E=c[x>>2]|0;w=m+1|0}c[o>>2]=E;g=r|0;c[p>>2]=g;c[q>>2]=0;a[s]=1;a[u]=69;e=e|0;f=f|0;z=m|0;A=m+4|0;B=c[B>>2]|0;C=c[v>>2]|0;v=c[e>>2]|0;a:while(1){do{if((v|0)==0){F=1;v=0}else{D=c[v+12>>2]|0;if((D|0)==(c[v+16>>2]|0)){D=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{D=c[D>>2]|0}if(!((D|0)==-1)){F=0;break}c[e>>2]=0;F=1;v=0}}while(0);D=c[f>>2]|0;do{if((D|0)==0){l=18}else{G=c[D+12>>2]|0;if((G|0)==(c[D+16>>2]|0)){G=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{G=c[G>>2]|0}if((G|0)==-1){c[f>>2]=0;l=18;break}else{if(F){break}else{break a}}}}while(0);if((l|0)==18){l=0;if(F){D=0;break}else{D=0}}F=a[y]|0;H=(F&1)==0;if(H){G=(F&255)>>>1}else{G=c[A>>2]|0}if(((c[o>>2]|0)-E|0)==(G|0)){if(H){E=(F&255)>>>1;F=(F&255)>>>1}else{F=c[A>>2]|0;E=F}tm(m,E<<1,0);if((a[y]&1)==0){E=10}else{E=(c[z>>2]&-2)-1|0}tm(m,E,0);if((a[y]&1)==0){E=w}else{E=c[x>>2]|0}c[o>>2]=E+F}G=v+12|0;H=c[G>>2]|0;F=v+16|0;if((H|0)==(c[F>>2]|0)){H=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{H=c[H>>2]|0}if(($o(H,s,u,E,o,B,C,d,g,p,q,t)|0)!=0){break}D=c[G>>2]|0;if((D|0)==(c[F>>2]|0)){Fc[c[(c[v>>2]|0)+40>>2]&255](v)|0;continue}else{c[G>>2]=D+4;continue}}t=a[d]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[d+4>>2]|0}do{if((t|0)!=0){if((a[s]|0)==0){break}s=c[p>>2]|0;if((s-r|0)>=160){break}H=c[q>>2]|0;c[p>>2]=s+4;c[s>>2]=H}}while(0);I=+Jt(E,c[o>>2]|0,j);h[k>>3]=I;hr(d,g,c[p>>2]|0,j);do{if((v|0)==0){k=1;v=0}else{k=c[v+12>>2]|0;if((k|0)==(c[v+16>>2]|0)){k=Fc[c[(c[v>>2]|0)+36>>2]&255](v)|0}else{k=c[k>>2]|0}if(!((k|0)==-1)){k=0;break}c[e>>2]=0;k=1;v=0}}while(0);do{if((D|0)==0){l=64}else{o=c[D+12>>2]|0;if((o|0)==(c[D+16>>2]|0)){o=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{o=c[o>>2]|0}if((o|0)==-1){c[f>>2]=0;l=64;break}if(!k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);do{if((l|0)==64){if(k){break}H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=b|0;c[H>>2]=v;rm(m);rm(d);i=n;return}function Uo(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;l=i;i=i+344|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[s>>2];s=l|0;q=l+16|0;d=l+120|0;r=l+136|0;m=l+144|0;n=l+160|0;t=l+168|0;o=l+328|0;p=l+336|0;dv(d|0,0,12)|0;Lm(r,g);g=r|0;r=c[g>>2]|0;if(!((c[8714]|0)==-1)){c[s>>2]=34856;c[s+4>>2]=16;c[s+8>>2]=0;mm(34856,s,114)}s=(c[8715]|0)-1|0;u=c[r+8>>2]|0;do{if((c[r+12>>2]|0)-u>>2>>>0>s>>>0){r=c[u+(s<<2)>>2]|0;if((r|0)==0){break}q=q|0;Sc[c[(c[r>>2]|0)+48>>2]&15](r,27208,27234,q)|0;Ul(c[g>>2]|0)|0;g=m;dv(g|0,0,12)|0;tm(m,10,0);if((a[g]&1)==0){r=m+1|0;x=r;s=m+8|0}else{s=m+8|0;x=c[s>>2]|0;r=m+1|0}c[n>>2]=x;t=t|0;c[o>>2]=t;c[p>>2]=0;e=e|0;f=f|0;u=m|0;v=m+4|0;w=c[e>>2]|0;a:while(1){do{if((w|0)==0){y=1;w=0}else{y=c[w+12>>2]|0;if((y|0)==(c[w+16>>2]|0)){y=Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0}else{y=c[y>>2]|0}if(!((y|0)==-1)){y=0;break}c[e>>2]=0;y=1;w=0}}while(0);z=c[f>>2]|0;do{if((z|0)==0){k=26}else{A=c[z+12>>2]|0;if((A|0)==(c[z+16>>2]|0)){z=Fc[c[(c[z>>2]|0)+36>>2]&255](z)|0}else{z=c[A>>2]|0}if((z|0)==-1){c[f>>2]=0;k=26;break}else{if(y){break}else{break a}}}}while(0);if((k|0)==26){k=0;if(y){break}}y=a[g]|0;A=(y&1)==0;if(A){z=(y&255)>>>1}else{z=c[v>>2]|0}if(((c[n>>2]|0)-x|0)==(z|0)){if(A){x=(y&255)>>>1;y=(y&255)>>>1}else{y=c[v>>2]|0;x=y}tm(m,x<<1,0);if((a[g]&1)==0){x=10}else{x=(c[u>>2]&-2)-1|0}tm(m,x,0);if((a[g]&1)==0){x=r}else{x=c[s>>2]|0}c[n>>2]=x+y}y=w+12|0;A=c[y>>2]|0;z=w+16|0;if((A|0)==(c[z>>2]|0)){A=Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0}else{A=c[A>>2]|0}if((Vo(A,16,x,n,p,0,d,t,o,q)|0)!=0){break}A=c[y>>2]|0;if((A|0)==(c[z>>2]|0)){Fc[c[(c[w>>2]|0)+40>>2]&255](w)|0;continue}else{c[y>>2]=A+4;continue}}a[x+3|0]=0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}A=Xa(2147483647,14472,0)|0;c[8330]=A}}while(0);A=xo(x,c[8330]|0,11744,(z=i,i=i+8|0,c[z>>2]=j,z)|0)|0;i=z;if((A|0)!=1){c[h>>2]=4}n=c[e>>2]|0;do{if((n|0)==0){j=1;n=0}else{j=c[n+12>>2]|0;if((j|0)==(c[n+16>>2]|0)){j=Fc[c[(c[n>>2]|0)+36>>2]&255](n)|0}else{j=c[j>>2]|0}if(!((j|0)==-1)){j=0;break}c[e>>2]=0;j=1;n=0}}while(0);p=c[f>>2]|0;do{if((p|0)==0){k=74}else{o=c[p+12>>2]|0;if((o|0)==(c[p+16>>2]|0)){o=Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0}else{o=c[o>>2]|0}if((o|0)==-1){c[f>>2]=0;k=74;break}if(!j){break}A=b|0;c[A>>2]=n;rm(m);rm(d);i=l;return}}while(0);do{if((k|0)==74){if(j){break}A=b|0;c[A>>2]=n;rm(m);rm(d);i=l;return}}while(0);c[h>>2]=c[h>>2]|2;A=b|0;c[A>>2]=n;rm(m);rm(d);i=l;return}}while(0);A=pc(4)|0;lu(A);Fb(A|0,25544,156)}function Vo(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;n=c[f>>2]|0;m=(n|0)==(e|0);do{if(m){o=(c[l+96>>2]|0)==(b|0);if(!o){if((c[l+100>>2]|0)!=(b|0)){break}}c[f>>2]=e+1;a[e]=o?43:45;c[g>>2]=0;o=0;return o|0}}while(0);o=a[i]|0;if((o&1)==0){i=(o&255)>>>1}else{i=c[i+4>>2]|0}if((i|0)!=0&(b|0)==(h|0)){e=c[k>>2]|0;if((e-j|0)>=160){o=0;return o|0}o=c[g>>2]|0;c[k>>2]=e+4;c[e>>2]=o;c[g>>2]=0;o=0;return o|0}k=l+104|0;j=l;while(1){h=j+4|0;if((c[j>>2]|0)==(b|0)){break}if((h|0)==(k|0)){j=k;break}else{j=h}}b=j-l|0;l=b>>2;if((b|0)>92){o=-1;return o|0}do{if((d|0)==16){if((b|0)<88){break}if(m){o=-1;return o|0}if((n-e|0)>=3){o=-1;return o|0}if((a[n-1|0]|0)!=48){o=-1;return o|0}c[g>>2]=0;o=a[27208+l|0]|0;c[f>>2]=n+1;a[n]=o;o=0;return o|0}else if((d|0)==8|(d|0)==10){if((l|0)<(d|0)){break}else{g=-1}return g|0}}while(0);o=a[27208+l|0]|0;c[f>>2]=n+1;a[n]=o;c[g>>2]=(c[g>>2]|0)+1;o=0;return o|0}function Wo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+40|0;h=g|0;k=g+16|0;j=g+32|0;Lm(j,d);d=j|0;j=c[d>>2]|0;if(!((c[8716]|0)==-1)){c[k>>2]=34864;c[k+4>>2]=16;c[k+8>>2]=0;mm(34864,k,114)}k=(c[8717]|0)-1|0;l=c[j+8>>2]|0;do{if((c[j+12>>2]|0)-l>>2>>>0>k>>>0){j=c[l+(k<<2)>>2]|0;if((j|0)==0){break}Sc[c[(c[j>>2]|0)+32>>2]&15](j,27208,27234,e)|0;e=c[d>>2]|0;if(!((c[8620]|0)==-1)){c[h>>2]=34480;c[h+4>>2]=16;c[h+8>>2]=0;mm(34480,h,114)}h=(c[8621]|0)-1|0;j=c[e+8>>2]|0;do{if((c[e+12>>2]|0)-j>>2>>>0>h>>>0){h=c[j+(h<<2)>>2]|0;if((h|0)==0){break}l=h;k=Fc[c[(c[h>>2]|0)+16>>2]&255](l)|0;a[f]=k;Ec[c[(c[h>>2]|0)+20>>2]&127](b,l);Ul(c[d>>2]|0)|0;i=g;return}}while(0);l=pc(4)|0;lu(l);Fb(l|0,25544,156)}}while(0);l=pc(4)|0;lu(l);Fb(l|0,25544,156)}function Xo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;h=i;i=i+40|0;j=h|0;l=h+16|0;k=h+32|0;Lm(k,d);d=k|0;k=c[d>>2]|0;if(!((c[8716]|0)==-1)){c[l>>2]=34864;c[l+4>>2]=16;c[l+8>>2]=0;mm(34864,l,114)}l=(c[8717]|0)-1|0;m=c[k+8>>2]|0;do{if((c[k+12>>2]|0)-m>>2>>>0>l>>>0){k=c[m+(l<<2)>>2]|0;if((k|0)==0){break}Sc[c[(c[k>>2]|0)+32>>2]&15](k,27208,27240,e)|0;e=c[d>>2]|0;if(!((c[8620]|0)==-1)){c[j>>2]=34480;c[j+4>>2]=16;c[j+8>>2]=0;mm(34480,j,114)}j=(c[8621]|0)-1|0;k=c[e+8>>2]|0;do{if((c[e+12>>2]|0)-k>>2>>>0>j>>>0){j=c[k+(j<<2)>>2]|0;if((j|0)==0){break}m=j;l=j;k=Fc[c[(c[l>>2]|0)+12>>2]&255](m)|0;a[f]=k;l=Fc[c[(c[l>>2]|0)+16>>2]&255](m)|0;a[g]=l;Ec[c[(c[j>>2]|0)+20>>2]&127](b,m);Ul(c[d>>2]|0)|0;i=h;return}}while(0);m=pc(4)|0;lu(m);Fb(m|0,25544,156)}}while(0);m=pc(4)|0;lu(m);Fb(m|0,25544,156)}function Yo(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0;if(b<<24>>24==h<<24>>24){if((a[d]|0)==0){o=-1;return o|0}a[d]=0;o=c[g>>2]|0;c[g>>2]=o+1;a[o]=46;g=a[j]|0;if((g&1)==0){g=(g&255)>>>1}else{g=c[j+4>>2]|0}if((g|0)==0){o=0;return o|0}g=c[l>>2]|0;if((g-k|0)>=160){o=0;return o|0}o=c[m>>2]|0;c[l>>2]=g+4;c[g>>2]=o;o=0;return o|0}do{if(b<<24>>24==i<<24>>24){h=a[j]|0;if((h&1)==0){h=(h&255)>>>1}else{h=c[j+4>>2]|0}if((h|0)==0){break}if((a[d]|0)==0){o=-1;return o|0}g=c[l>>2]|0;if((g-k|0)>=160){o=0;return o|0}o=c[m>>2]|0;c[l>>2]=g+4;c[g>>2]=o;c[m>>2]=0;o=0;return o|0}}while(0);i=n+32|0;o=n;while(1){h=o+1|0;if((a[o]|0)==b<<24>>24){i=o;break}if((h|0)==(i|0)){break}else{o=h}}b=i-n|0;if((b|0)>31){o=-1;return o|0}n=a[27208+b|0]|0;if((b|0)==25|(b|0)==24){m=c[g>>2]|0;do{if((m|0)!=(f|0)){if((a[m-1|0]&95|0)==(a[e]&127|0)){break}else{m=-1}return m|0}}while(0);c[g>>2]=m+1;a[m]=n;o=0;return o|0}else if((b|0)==22|(b|0)==23){a[e]=80;o=c[g>>2]|0;c[g>>2]=o+1;a[o]=n;o=0;return o|0}else{f=a[e]|0;do{if((n&95|0)==(f<<24>>24|0)){a[e]=f|-128;if((a[d]|0)==0){break}a[d]=0;e=a[j]|0;if((e&1)==0){j=(e&255)>>>1}else{j=c[j+4>>2]|0}if((j|0)==0){break}j=c[l>>2]|0;if((j-k|0)>=160){break}o=c[m>>2]|0;c[l>>2]=j+4;c[j>>2]=o}}while(0);o=c[g>>2]|0;c[g>>2]=o+1;a[o]=n;if((b|0)>21){o=0;return o|0}c[m>>2]=(c[m>>2]|0)+1;o=0;return o|0}return 0}function Zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+40|0;g=f|0;j=f+16|0;h=f+32|0;Lm(h,b);b=h|0;h=c[b>>2]|0;if(!((c[8714]|0)==-1)){c[j>>2]=34856;c[j+4>>2]=16;c[j+8>>2]=0;mm(34856,j,114)}j=(c[8715]|0)-1|0;k=c[h+8>>2]|0;do{if((c[h+12>>2]|0)-k>>2>>>0>j>>>0){h=c[k+(j<<2)>>2]|0;if((h|0)==0){break}Sc[c[(c[h>>2]|0)+48>>2]&15](h,27208,27234,d)|0;d=c[b>>2]|0;if(!((c[8618]|0)==-1)){c[g>>2]=34472;c[g+4>>2]=16;c[g+8>>2]=0;mm(34472,g,114)}g=(c[8619]|0)-1|0;h=c[d+8>>2]|0;do{if((c[d+12>>2]|0)-h>>2>>>0>g>>>0){g=c[h+(g<<2)>>2]|0;if((g|0)==0){break}k=g;j=Fc[c[(c[g>>2]|0)+16>>2]&255](k)|0;c[e>>2]=j;Ec[c[(c[g>>2]|0)+20>>2]&127](a,k);Ul(c[b>>2]|0)|0;i=f;return}}while(0);k=pc(4)|0;lu(k);Fb(k|0,25544,156)}}while(0);k=pc(4)|0;lu(k);Fb(k|0,25544,156)} - - - -function cr(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;q=i;i=i+408|0;_=f;H=i;i=i+4|0;i=i+7&-8;c[H>>2]=c[_>>2];_=q|0;F=q+400|0;A=i;i=i+1|0;i=i+7&-8;z=i;i=i+1|0;i=i+7&-8;t=i;i=i+12|0;i=i+7&-8;s=i;i=i+12|0;i=i+7&-8;r=i;i=i+12|0;i=i+7&-8;f=i;i=i+12|0;i=i+7&-8;u=i;i=i+12|0;i=i+7&-8;x=i;i=i+4|0;i=i+7&-8;v=i;i=i+4|0;i=i+7&-8;Z=_|0;c[F>>2]=0;B=t;dv(B|0,0,12)|0;D=s;dv(D|0,0,12)|0;E=r;dv(E|0,0,12)|0;y=f;dv(y|0,0,12)|0;C=u;dv(C|0,0,12)|0;gr(g,h,F,A,z,t,s,r,f,x);h=n|0;c[o>>2]=c[h>>2];g=e|0;e=H|0;H=m+8|0;J=f+1|0;K=f+4|0;I=f+8|0;G=r+1|0;L=r+4|0;m=r+8|0;S=(j&512|0)!=0;T=s+1|0;N=s+8|0;j=s+4|0;Q=u;P=Q+1|0;R=u+8|0;O=u+4|0;M=F+3|0;U=n+4|0;n=t+4|0;X=194;Y=Z;_=_+400|0;V=0;W=0;a:while(1){$=c[g>>2]|0;do{if(($|0)==0){$=0}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){break}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[g>>2]=0;$=0;break}else{$=c[g>>2]|0;break}}}while(0);aa=($|0)==0;$=c[e>>2]|0;do{if(($|0)==0){w=15}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){if(aa){break}else{w=310;break a}}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[e>>2]=0;w=15;break}else{if(aa){break}else{w=310;break a}}}}while(0);if((w|0)==15){w=0;if(aa){w=310;break}else{$=0}}b:do{switch(a[F+V|0]|0){case 1:{if((V|0)==3){w=310;break a}aa=c[g>>2]|0;w=c[aa+12>>2]|0;if((w|0)==(c[aa+16>>2]|0)){w=(Fc[c[(c[aa>>2]|0)+36>>2]&255](aa)|0)&255}else{w=a[w]|0}if(!(w<<24>>24>-1)){w=41;break a}if((b[(c[H>>2]|0)+(w<<24>>24<<1)>>1]&8192)==0){w=41;break a}ba=c[g>>2]|0;w=ba+12|0;aa=c[w>>2]|0;if((aa|0)==(c[ba+16>>2]|0)){w=(Fc[c[(c[ba>>2]|0)+40>>2]&255](ba)|0)&255}else{c[w>>2]=aa+1;w=a[aa]|0}wm(u,w);w=42;break};case 0:{w=42;break};case 3:{$=a[E]|0;ba=($&1)==0;if(ba){ea=($&255)>>>1}else{ea=c[L>>2]|0}aa=a[y]|0;ca=(aa&1)==0;if(ca){da=(aa&255)>>>1}else{da=c[K>>2]|0}if((ea|0)==(-da|0)){break b}if(ba){da=($&255)>>>1}else{da=c[L>>2]|0}do{if((da|0)!=0){if(ca){ca=(aa&255)>>>1}else{ca=c[K>>2]|0}if((ca|0)==0){break}ba=c[g>>2]|0;da=c[ba+12>>2]|0;ca=c[ba+16>>2]|0;if((da|0)==(ca|0)){aa=(Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)&255;ca=c[g>>2]|0;$=a[E]|0;ba=ca;da=c[ca+12>>2]|0;ca=c[ca+16>>2]|0}else{aa=a[da]|0}ea=ba+12|0;ca=(da|0)==(ca|0);if(aa<<24>>24==(a[($&1)==0?G:c[m>>2]|0]|0)){if(ca){Fc[c[(c[ba>>2]|0)+40>>2]&255](ba)|0}else{c[ea>>2]=da+1}$=a[E]|0;if(($&1)==0){$=($&255)>>>1}else{$=c[L>>2]|0}W=$>>>0>1>>>0?r:W;break b}if(ca){$=(Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)&255}else{$=a[da]|0}if(!($<<24>>24==(a[(a[y]&1)==0?J:c[I>>2]|0]|0))){w=136;break a}aa=c[g>>2]|0;ba=aa+12|0;$=c[ba>>2]|0;if(($|0)==(c[aa+16>>2]|0)){Fc[c[(c[aa>>2]|0)+40>>2]&255](aa)|0}else{c[ba>>2]=$+1}a[l]=1;$=a[y]|0;if(($&1)==0){$=($&255)>>>1}else{$=c[K>>2]|0}W=$>>>0>1>>>0?f:W;break b}}while(0);if(ba){ba=($&255)>>>1}else{ba=c[L>>2]|0}ca=c[g>>2]|0;da=c[ca+12>>2]|0;ea=(da|0)==(c[ca+16>>2]|0);if((ba|0)==0){if(ea){$=(Fc[c[(c[ca>>2]|0)+36>>2]&255](ca)|0)&255;aa=a[y]|0}else{$=a[da]|0}if(!($<<24>>24==(a[(aa&1)==0?J:c[I>>2]|0]|0))){break b}$=c[g>>2]|0;aa=$+12|0;ba=c[aa>>2]|0;if((ba|0)==(c[$+16>>2]|0)){Fc[c[(c[$>>2]|0)+40>>2]&255]($)|0}else{c[aa>>2]=ba+1}a[l]=1;$=a[y]|0;if(($&1)==0){$=($&255)>>>1}else{$=c[K>>2]|0}W=$>>>0>1>>>0?f:W;break b}if(ea){aa=(Fc[c[(c[ca>>2]|0)+36>>2]&255](ca)|0)&255;$=a[E]|0}else{aa=a[da]|0}if(!(aa<<24>>24==(a[($&1)==0?G:c[m>>2]|0]|0))){a[l]=1;break b}ba=c[g>>2]|0;aa=ba+12|0;$=c[aa>>2]|0;if(($|0)==(c[ba+16>>2]|0)){Fc[c[(c[ba>>2]|0)+40>>2]&255](ba)|0}else{c[aa>>2]=$+1}$=a[E]|0;if(($&1)==0){$=($&255)>>>1}else{$=c[L>>2]|0}W=$>>>0>1>>>0?r:W;break};case 2:{if(!((W|0)!=0|V>>>0<2>>>0)){if((V|0)==2){aa=(a[M]|0)!=0}else{aa=0}if(!(S|aa)){W=0;break b}}ba=a[D]|0;ca=(ba&1)==0;aa=ca?T:c[N>>2]|0;c:do{if((V|0)==0){ca=$;da=$}else{if(!((d[F+(V-1)|0]|0)>>>0<2>>>0)){ca=$;da=$;break}ca=aa+(ca?(ba&255)>>>1:c[j>>2]|0)|0;da=aa;while(1){if((da|0)==(ca|0)){break}ea=a[da]|0;if(!(ea<<24>>24>-1)){ca=da;break}if((b[(c[H>>2]|0)+(ea<<24>>24<<1)>>1]&8192)==0){ca=da;break}else{da=da+1|0}}da=ca-aa|0;fa=a[C]|0;ea=(fa&1)==0;if(ea){ga=(fa&255)>>>1}else{ga=c[O>>2]|0}if(da>>>0>ga>>>0){ca=$;da=$;break}if(ea){ga=(fa&255)>>>1;ea=ga;fa=P;ga=ga-da+(Q+1)|0}else{ha=c[R>>2]|0;ga=c[O>>2]|0;ea=ga;fa=ha;ga=ha+(ga-da)|0}da=fa+ea|0;if((ga|0)==(da|0)){aa=ca;ca=$;da=$;break}else{ea=aa}while(1){if((a[ga]|0)!=(a[ea]|0)){ca=$;da=$;break c}ga=ga+1|0;if((ga|0)==(da|0)){aa=ca;ca=$;da=$;break}else{ea=ea+1|0}}}}while(0);d:while(1){if((ba&1)==0){ba=(ba&255)>>>1;$=T}else{ba=c[j>>2]|0;$=c[N>>2]|0}if((aa|0)==($+ba|0)){break}$=c[g>>2]|0;do{if(($|0)==0){$=0}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){break}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[g>>2]=0;$=0;break}else{$=c[g>>2]|0;break}}}while(0);$=($|0)==0;do{if((ca|0)==0){w=173}else{if((c[ca+12>>2]|0)!=(c[ca+16>>2]|0)){if($){$=ca;break}else{break d}}if((Fc[c[(c[ca>>2]|0)+36>>2]&255](ca)|0)==-1){c[e>>2]=0;da=0;w=173;break}else{if($^(da|0)==0){$=da;break}else{break d}}}}while(0);if((w|0)==173){w=0;if($){break}else{$=0}}ba=c[g>>2]|0;ca=c[ba+12>>2]|0;if((ca|0)==(c[ba+16>>2]|0)){ba=(Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)&255}else{ba=a[ca]|0}if(!(ba<<24>>24==(a[aa]|0))){break}ea=c[g>>2]|0;ca=ea+12|0;ba=c[ca>>2]|0;if((ba|0)==(c[ea+16>>2]|0)){Fc[c[(c[ea>>2]|0)+40>>2]&255](ea)|0}else{c[ca>>2]=ba+1}aa=aa+1|0;ba=a[D]|0;ca=$}if(!S){break b}$=a[D]|0;if(($&1)==0){ba=($&255)>>>1;$=T}else{ba=c[j>>2]|0;$=c[N>>2]|0}if((aa|0)!=($+ba|0)){w=189;break a}break};case 4:{$=0;e:while(1){aa=c[g>>2]|0;do{if((aa|0)==0){aa=0}else{if((c[aa+12>>2]|0)!=(c[aa+16>>2]|0)){break}if((Fc[c[(c[aa>>2]|0)+36>>2]&255](aa)|0)==-1){c[g>>2]=0;aa=0;break}else{aa=c[g>>2]|0;break}}}while(0);ba=(aa|0)==0;aa=c[e>>2]|0;do{if((aa|0)==0){w=202}else{if((c[aa+12>>2]|0)!=(c[aa+16>>2]|0)){if(ba){break}else{break e}}if((Fc[c[(c[aa>>2]|0)+36>>2]&255](aa)|0)==-1){c[e>>2]=0;w=202;break}else{if(ba){break}else{break e}}}}while(0);if((w|0)==202){w=0;if(ba){break}}ba=c[g>>2]|0;aa=c[ba+12>>2]|0;if((aa|0)==(c[ba+16>>2]|0)){aa=(Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)&255}else{aa=a[aa]|0}do{if(aa<<24>>24>-1){if((b[(c[H>>2]|0)+(aa<<24>>24<<1)>>1]&2048)==0){w=221;break}ba=c[o>>2]|0;if((ba|0)==(p|0)){ca=(c[U>>2]|0)!=194;da=c[h>>2]|0;ba=p-da|0;p=ba>>>0<2147483647>>>0?ba<<1:-1;da=Iu(ca?da:0,p)|0;if((da|0)==0){Uu()}do{if(ca){c[h>>2]=da}else{ca=c[h>>2]|0;c[h>>2]=da;if((ca|0)==0){break}Dc[c[U>>2]&511](ca);da=c[h>>2]|0}}while(0);c[U>>2]=88;ba=da+ba|0;c[o>>2]=ba;p=(c[h>>2]|0)+p|0}c[o>>2]=ba+1;a[ba]=aa;$=$+1|0}else{w=221}}while(0);if((w|0)==221){w=0;ba=a[B]|0;if((ba&1)==0){ba=(ba&255)>>>1}else{ba=c[n>>2]|0}if((ba|0)==0|($|0)==0){break}if(!(aa<<24>>24==(a[z]|0))){break}if((Z|0)==(_|0)){Z=Z-Y|0;_=Z>>>0<2147483647>>>0?Z<<1:-1;if((X|0)==194){Y=0}else{}ha=Iu(Y,_)|0;Y=ha;if((ha|0)==0){Uu()}_=Y+(_>>>2<<2)|0;Z=Y+(Z>>2<<2)|0;X=88}c[Z>>2]=$;$=0;Z=Z+4|0}aa=c[g>>2]|0;ba=aa+12|0;ca=c[ba>>2]|0;if((ca|0)==(c[aa+16>>2]|0)){Fc[c[(c[aa>>2]|0)+40>>2]&255](aa)|0;continue}else{c[ba>>2]=ca+1;continue}}if(!((Y|0)==(Z|0)|($|0)==0)){if((Z|0)==(_|0)){Z=Z-Y|0;_=Z>>>0<2147483647>>>0?Z<<1:-1;if((X|0)==194){Y=0}else{}ha=Iu(Y,_)|0;Y=ha;if((ha|0)==0){Uu()}_=Y+(_>>>2<<2)|0;Z=Y+(Z>>2<<2)|0;X=88}c[Z>>2]=$;Z=Z+4|0}if((c[x>>2]|0)>0){$=c[g>>2]|0;do{if(($|0)==0){$=0}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){break}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[g>>2]=0;$=0;break}else{$=c[g>>2]|0;break}}}while(0);aa=($|0)==0;$=c[e>>2]|0;do{if(($|0)==0){w=257}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){if(aa){break}else{w=264;break a}}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[e>>2]=0;w=257;break}else{if(aa){break}else{w=264;break a}}}}while(0);if((w|0)==257){w=0;if(aa){w=264;break a}else{$=0}}aa=c[g>>2]|0;ba=c[aa+12>>2]|0;if((ba|0)==(c[aa+16>>2]|0)){aa=(Fc[c[(c[aa>>2]|0)+36>>2]&255](aa)|0)&255}else{aa=a[ba]|0}if(!(aa<<24>>24==(a[A]|0))){w=264;break a}aa=c[g>>2]|0;ba=aa+12|0;ca=c[ba>>2]|0;if((ca|0)==(c[aa+16>>2]|0)){Fc[c[(c[aa>>2]|0)+40>>2]&255](aa)|0;aa=$;ba=$}else{c[ba>>2]=ca+1;aa=$;ba=$}while(1){$=c[g>>2]|0;do{if(($|0)==0){$=0}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){break}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[g>>2]=0;$=0;break}else{$=c[g>>2]|0;break}}}while(0);ca=($|0)==0;do{if((aa|0)==0){$=ba;w=280}else{if((c[aa+12>>2]|0)!=(c[aa+16>>2]|0)){if(ca){$=ba;break}else{w=288;break a}}if((Fc[c[(c[aa>>2]|0)+36>>2]&255](aa)|0)==-1){c[e>>2]=0;$=0;w=280;break}else{if(ca^(ba|0)==0){$=ba;aa=ba;break}else{w=288;break a}}}}while(0);if((w|0)==280){w=0;if(ca){w=288;break a}else{aa=0}}ba=c[g>>2]|0;ca=c[ba+12>>2]|0;if((ca|0)==(c[ba+16>>2]|0)){ba=(Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)&255}else{ba=a[ca]|0}if(!(ba<<24>>24>-1)){w=288;break a}if((b[(c[H>>2]|0)+(ba<<24>>24<<1)>>1]&2048)==0){w=288;break a}ba=c[o>>2]|0;if((ba|0)==(p|0)){ca=(c[U>>2]|0)!=194;da=c[h>>2]|0;p=p-da|0;ba=p>>>0<2147483647>>>0?p<<1:-1;da=Iu(ca?da:0,ba)|0;if((da|0)==0){Uu()}do{if(ca){c[h>>2]=da}else{ca=c[h>>2]|0;c[h>>2]=da;if((ca|0)==0){break}Dc[c[U>>2]&511](ca);da=c[h>>2]|0}}while(0);c[U>>2]=88;ha=da+p|0;c[o>>2]=ha;p=(c[h>>2]|0)+ba|0;ba=ha}da=c[g>>2]|0;ca=c[da+12>>2]|0;if((ca|0)==(c[da+16>>2]|0)){ca=(Fc[c[(c[da>>2]|0)+36>>2]&255](da)|0)&255;ba=c[o>>2]|0}else{ca=a[ca]|0}c[o>>2]=ba+1;a[ba]=ca;ea=(c[x>>2]|0)-1|0;c[x>>2]=ea;da=c[g>>2]|0;ca=da+12|0;ba=c[ca>>2]|0;if((ba|0)==(c[da+16>>2]|0)){Fc[c[(c[da>>2]|0)+40>>2]&255](da)|0}else{c[ca>>2]=ba+1}if((ea|0)>0){ba=$}else{break}}}if((c[o>>2]|0)==(c[h>>2]|0)){w=308;break a}break};default:{}}}while(0);f:do{if((w|0)==42){w=0;if((V|0)==3){w=310;break a}else{ba=$;aa=$}while(1){$=c[g>>2]|0;do{if(($|0)==0){$=0}else{if((c[$+12>>2]|0)!=(c[$+16>>2]|0)){break}if((Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0)==-1){c[g>>2]=0;$=0;break}else{$=c[g>>2]|0;break}}}while(0);$=($|0)==0;do{if((ba|0)==0){w=55}else{if((c[ba+12>>2]|0)!=(c[ba+16>>2]|0)){if($){$=ba;break}else{break f}}if((Fc[c[(c[ba>>2]|0)+36>>2]&255](ba)|0)==-1){c[e>>2]=0;aa=0;w=55;break}else{if($^(aa|0)==0){$=aa;break}else{break f}}}}while(0);if((w|0)==55){w=0;if($){break f}else{$=0}}ca=c[g>>2]|0;ba=c[ca+12>>2]|0;if((ba|0)==(c[ca+16>>2]|0)){ba=(Fc[c[(c[ca>>2]|0)+36>>2]&255](ca)|0)&255}else{ba=a[ba]|0}if(!(ba<<24>>24>-1)){break f}if((b[(c[H>>2]|0)+(ba<<24>>24<<1)>>1]&8192)==0){break f}ba=c[g>>2]|0;da=ba+12|0;ca=c[da>>2]|0;if((ca|0)==(c[ba+16>>2]|0)){ba=(Fc[c[(c[ba>>2]|0)+40>>2]&255](ba)|0)&255}else{c[da>>2]=ca+1;ba=a[ca]|0}wm(u,ba);ba=$}}}while(0);V=V+1|0;if(!(V>>>0<4>>>0)){w=310;break}}g:do{if((w|0)==41){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==136){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==189){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==264){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==288){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==308){c[k>>2]=c[k>>2]|4;k=0}else if((w|0)==310){h:do{if((W|0)!=0){x=W;l=W+1|0;o=W+8|0;y=W+4|0;z=1;i:while(1){A=a[x]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[y>>2]|0}if(!(z>>>0<A>>>0)){break h}A=c[g>>2]|0;do{if((A|0)==0){A=0}else{if((c[A+12>>2]|0)!=(c[A+16>>2]|0)){break}if((Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)==-1){c[g>>2]=0;A=0;break}else{A=c[g>>2]|0;break}}}while(0);A=(A|0)==0;B=c[e>>2]|0;do{if((B|0)==0){w=328}else{if((c[B+12>>2]|0)!=(c[B+16>>2]|0)){if(A){break}else{break i}}if((Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0)==-1){c[e>>2]=0;w=328;break}else{if(A){break}else{break i}}}}while(0);if((w|0)==328){w=0;if(A){break}}A=c[g>>2]|0;B=c[A+12>>2]|0;if((B|0)==(c[A+16>>2]|0)){B=(Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0)&255}else{B=a[B]|0}if((a[x]&1)==0){A=l}else{A=c[o>>2]|0}if(!(B<<24>>24==(a[A+z|0]|0))){break}z=z+1|0;C=c[g>>2]|0;B=C+12|0;A=c[B>>2]|0;if((A|0)==(c[C+16>>2]|0)){Fc[c[(c[C>>2]|0)+40>>2]&255](C)|0;continue}else{c[B>>2]=A+1;continue}}c[k>>2]=c[k>>2]|4;k=0;break g}}while(0);if((Y|0)==(Z|0)){k=1;Y=Z;break}c[v>>2]=0;hr(t,Y,Z,v);if((c[v>>2]|0)==0){k=1;break}c[k>>2]=c[k>>2]|4;k=0}}while(0);rm(u);rm(f);rm(r);rm(s);rm(t);if((Y|0)==0){i=q;return k|0}Dc[X&511](Y);i=q;return k|0}function dr(a){a=a|0;var b=0;b=pc(8)|0;_l(b,a);Fb(b|0,25560,30)}function er(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=i;i=i+160|0;w=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[w>>2];w=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[w>>2];w=d|0;u=d+16|0;s=d+120|0;q=d+128|0;v=d+136|0;r=d+144|0;t=d+152|0;m=s|0;c[m>>2]=u;n=s+4|0;c[n>>2]=194;u=u+100|0;Lm(v,h);o=v|0;p=c[o>>2]|0;if(!((c[8716]|0)==-1)){c[w>>2]=34864;c[w+4>>2]=16;c[w+8>>2]=0;mm(34864,w,114)}x=(c[8717]|0)-1|0;w=c[p+8>>2]|0;do{if((c[p+12>>2]|0)-w>>2>>>0>x>>>0){x=c[w+(x<<2)>>2]|0;if((x|0)==0){break}w=x;a[r]=0;f=f|0;p=c[f>>2]|0;c[t>>2]=p;if(cr(e,t,g,v,c[h+4>>2]|0,j,r,w,s,q,u)|0){g=k;if((a[g]&1)==0){a[k+1|0]=0;a[g]=0}else{a[c[k+8>>2]|0]=0;c[k+4>>2]=0}if((a[r]|0)!=0){wm(k,Qc[c[(c[x>>2]|0)+28>>2]&63](w,45)|0)}r=Qc[c[(c[x>>2]|0)+28>>2]&63](w,48)|0;h=c[m>>2]|0;q=c[q>>2]|0;g=q-1|0;a:do{if(h>>>0<g>>>0){while(1){s=h+1|0;if(!((a[h]|0)==r<<24>>24)){break a}if(s>>>0<g>>>0){h=s}else{h=s;break}}}}while(0);fr(k,h,q)|0}k=e|0;e=c[k>>2]|0;do{if((e|0)==0){e=0}else{if((c[e+12>>2]|0)!=(c[e+16>>2]|0)){break}if(!((Fc[c[(c[e>>2]|0)+36>>2]&255](e)|0)==-1)){break}c[k>>2]=0;e=0}}while(0);k=(e|0)==0;do{if((p|0)==0){l=33}else{if((c[p+12>>2]|0)!=(c[p+16>>2]|0)){if(k){break}else{l=35;break}}if((Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0)==-1){c[f>>2]=0;l=33;break}else{if(k^(p|0)==0){break}else{l=35;break}}}}while(0);if((l|0)==33){if(k){l=35}}if((l|0)==35){c[j>>2]=c[j>>2]|2}c[b>>2]=e;Ul(c[o>>2]|0)|0;l=c[m>>2]|0;c[m>>2]=0;if((l|0)==0){i=d;return}Dc[c[n>>2]&511](l);i=d;return}}while(0);x=pc(4)|0;lu(x);Fb(x|0,25544,156)}function fr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=b;i=d;g=a[f]|0;if((g&1)==0){k=10;j=g;g=(g&255)>>>1}else{j=c[b>>2]|0;k=(j&-2)-1|0;j=j&255;g=c[b+4>>2]|0}h=e-i|0;if((e|0)==(d|0)){return b|0}if((k-g|0)>>>0<h>>>0){zm(b,k,g+h-k|0,g,g,0,0);j=a[f]|0}if((j&1)==0){j=b+1|0}else{j=c[b+8>>2]|0}i=e+(g-i)|0;k=j+g|0;while(1){a[k]=a[d]|0;d=d+1|0;if((d|0)==(e|0)){break}else{k=k+1|0}}a[j+i|0]=0;e=g+h|0;if((a[f]&1)==0){a[f]=e<<1;return b|0}else{c[b+4>>2]=e;return b|0}return 0}function gr(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;n=i;i=i+176|0;y=n|0;z=n+16|0;x=n+32|0;u=n+40|0;t=n+56|0;r=n+72|0;o=n+88|0;w=n+104|0;v=n+112|0;s=n+128|0;q=n+144|0;p=n+160|0;if(b){p=c[d>>2]|0;if(!((c[8834]|0)==-1)){c[z>>2]=35336;c[z+4>>2]=16;c[z+8>>2]=0;mm(35336,z,114)}s=(c[8835]|0)-1|0;q=c[p+8>>2]|0;if(!((c[p+12>>2]|0)-q>>2>>>0>s>>>0)){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}p=c[q+(s<<2)>>2]|0;if((p|0)==0){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}q=p;Ec[c[(c[p>>2]|0)+44>>2]&127](x,q);C=c[x>>2]|0;a[e]=C;C=C>>8;a[e+1|0]=C;C=C>>8;a[e+2|0]=C;C=C>>8;a[e+3|0]=C;e=p;Ec[c[(c[e>>2]|0)+32>>2]&127](u,q);s=l;if((a[s]&1)==0){a[l+1|0]=0;a[s]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);l=u;c[s>>2]=c[l>>2];c[s+4>>2]=c[l+4>>2];c[s+8>>2]=c[l+8>>2];dv(l|0,0,12)|0;rm(u);Ec[c[(c[e>>2]|0)+28>>2]&127](t,q);l=k;if((a[l]&1)==0){a[k+1|0]=0;a[l]=0}else{a[c[k+8>>2]|0]=0;c[k+4>>2]=0}vm(k,0);b=t;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;rm(t);b=p;d=Fc[c[(c[b>>2]|0)+12>>2]&255](q)|0;a[f]=d;b=Fc[c[(c[b>>2]|0)+16>>2]&255](q)|0;a[g]=b;Ec[c[(c[e>>2]|0)+20>>2]&127](r,q);g=h;if((a[g]&1)==0){a[h+1|0]=0;a[g]=0}else{a[c[h+8>>2]|0]=0;c[h+4>>2]=0}vm(h,0);h=r;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];dv(h|0,0,12)|0;rm(r);Ec[c[(c[e>>2]|0)+24>>2]&127](o,q);h=j;if((a[h]&1)==0){a[j+1|0]=0;a[h]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);b=o;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;rm(o);b=Fc[c[(c[p>>2]|0)+36>>2]&255](q)|0;c[m>>2]=b;i=n;return}else{o=c[d>>2]|0;if(!((c[8836]|0)==-1)){c[y>>2]=35344;c[y+4>>2]=16;c[y+8>>2]=0;mm(35344,y,114)}t=(c[8837]|0)-1|0;r=c[o+8>>2]|0;if(!((c[o+12>>2]|0)-r>>2>>>0>t>>>0)){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}r=c[r+(t<<2)>>2]|0;if((r|0)==0){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}o=r;Ec[c[(c[r>>2]|0)+44>>2]&127](w,o);C=c[w>>2]|0;a[e]=C;C=C>>8;a[e+1|0]=C;C=C>>8;a[e+2|0]=C;C=C>>8;a[e+3|0]=C;e=r;Ec[c[(c[e>>2]|0)+32>>2]&127](v,o);t=l;if((a[t]&1)==0){a[l+1|0]=0;a[t]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);l=v;c[t>>2]=c[l>>2];c[t+4>>2]=c[l+4>>2];c[t+8>>2]=c[l+8>>2];dv(l|0,0,12)|0;rm(v);Ec[c[(c[e>>2]|0)+28>>2]&127](s,o);l=k;if((a[l]&1)==0){a[k+1|0]=0;a[l]=0}else{a[c[k+8>>2]|0]=0;c[k+4>>2]=0}vm(k,0);b=s;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;rm(s);b=r;d=Fc[c[(c[b>>2]|0)+12>>2]&255](o)|0;a[f]=d;b=Fc[c[(c[b>>2]|0)+16>>2]&255](o)|0;a[g]=b;Ec[c[(c[e>>2]|0)+20>>2]&127](q,o);g=h;if((a[g]&1)==0){a[h+1|0]=0;a[g]=0}else{a[c[h+8>>2]|0]=0;c[h+4>>2]=0}vm(h,0);h=q;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];dv(h|0,0,12)|0;rm(q);Ec[c[(c[e>>2]|0)+24>>2]&127](p,o);h=j;if((a[h]&1)==0){a[j+1|0]=0;a[h]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);b=p;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;rm(p);b=Fc[c[(c[r>>2]|0)+36>>2]&255](o)|0;c[m>>2]=b;i=n;return}}function hr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=b;h=a[g]|0;if((h&1)==0){i=(h&255)>>>1}else{i=c[b+4>>2]|0}if((i|0)==0){return}do{if((d|0)!=(e|0)){i=e-4|0;if(i>>>0>d>>>0){h=d}else{break}do{j=c[h>>2]|0;c[h>>2]=c[i>>2];c[i>>2]=j;h=h+4|0;i=i-4|0;}while(h>>>0<i>>>0);h=a[g]|0}}while(0);if((h&1)==0){j=(h&255)>>>1;g=b+1|0}else{j=c[b+4>>2]|0;g=c[b+8>>2]|0}e=e-4|0;i=a[g]|0;h=i<<24>>24<1|i<<24>>24==127;a:do{if(e>>>0>d>>>0){b=g+j|0;while(1){if(!h){if((i<<24>>24|0)!=(c[d>>2]|0)){break}}g=(b-g|0)>1?g+1|0:g;d=d+4|0;i=a[g]|0;h=i<<24>>24<1|i<<24>>24==127;if(!(d>>>0<e>>>0)){break a}}c[f>>2]=4;return}}while(0);if(h){return}j=c[e>>2]|0;if(!(i<<24>>24>>>0<j>>>0|(j|0)==0)){return}c[f>>2]=4;return}function ir(a){a=a|0;Sl(a|0);Pu(a);return}function jr(a){a=a|0;Sl(a|0);return}function kr(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;l=i;i=i+600|0;y=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[y>>2];y=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[y>>2];y=l|0;v=l+16|0;u=l+416|0;p=l+424|0;t=l+432|0;r=l+440|0;w=l+448|0;q=l+456|0;s=l+496|0;d=u|0;c[d>>2]=v;n=u+4|0;c[n>>2]=194;v=v+400|0;Lm(t,h);o=t|0;x=c[o>>2]|0;if(!((c[8714]|0)==-1)){c[y>>2]=34856;c[y+4>>2]=16;c[y+8>>2]=0;mm(34856,y,114)}z=(c[8715]|0)-1|0;y=c[x+8>>2]|0;do{if((c[x+12>>2]|0)-y>>2>>>0>z>>>0){y=c[y+(z<<2)>>2]|0;if((y|0)==0){break}x=y;a[r]=0;f=f|0;c[w>>2]=c[f>>2];do{if(lr(e,w,g,t,c[h+4>>2]|0,j,r,x,u,p,v)|0){h=q|0;Sc[c[(c[y>>2]|0)+48>>2]&15](x,19144,19154,h)|0;g=s|0;v=c[p>>2]|0;t=c[d>>2]|0;s=v-t|0;do{if((s|0)>392){s=Gu((s>>2)+2|0)|0;if((s|0)!=0){u=s;break}Uu();u=0;s=0}else{u=g;s=0}}while(0);if((a[r]|0)!=0){a[u]=45;u=u+1|0}if(t>>>0<v>>>0){r=q+40|0;do{w=c[t>>2]|0;x=h;while(1){v=x+4|0;if((c[x>>2]|0)==(w|0)){break}if((v|0)==(r|0)){x=r;break}else{x=v}}a[u]=a[19144+(x-q>>2)|0]|0;t=t+4|0;u=u+1|0;}while(t>>>0<(c[p>>2]|0)>>>0)}a[u]=0;z=dc(g|0,15784,(y=i,i=i+8|0,c[y>>2]=k,y)|0)|0;i=y;if((z|0)==1){if((s|0)==0){break}Hu(s);break}z=pc(8)|0;_l(z,15400);Fb(z|0,25560,30)}}while(0);k=e|0;e=c[k>>2]|0;do{if((e|0)==0){e=1}else{p=c[e+12>>2]|0;if((p|0)==(c[e+16>>2]|0)){e=Fc[c[(c[e>>2]|0)+36>>2]&255](e)|0}else{e=c[p>>2]|0}if((e|0)==-1){c[k>>2]=0;e=1;break}else{e=(c[k>>2]|0)==0;break}}}while(0);p=c[f>>2]|0;do{if((p|0)==0){m=47}else{q=c[p+12>>2]|0;if((q|0)==(c[p+16>>2]|0)){p=Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0}else{p=c[q>>2]|0}if((p|0)==-1){c[f>>2]=0;m=47;break}else{if(e){break}else{m=49;break}}}}while(0);if((m|0)==47){if(e){m=49}}if((m|0)==49){c[j>>2]=c[j>>2]|2}c[b>>2]=c[k>>2];Ul(c[o>>2]|0)|0;b=c[d>>2]|0;c[d>>2]=0;if((b|0)==0){i=l;return}Dc[c[n>>2]&511](b);i=l;return}}while(0);z=pc(4)|0;lu(z);Fb(z|0,25544,156)}function lr(b,e,f,g,h,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;p=i;i=i+416|0;y=e;E=i;i=i+4|0;i=i+7&-8;c[E>>2]=c[y>>2];y=p|0;V=p+8|0;F=p+408|0;w=i;i=i+4|0;i=i+7&-8;z=i;i=i+4|0;i=i+7&-8;s=i;i=i+12|0;i=i+7&-8;r=i;i=i+12|0;i=i+7&-8;q=i;i=i+12|0;i=i+7&-8;t=i;i=i+12|0;i=i+7&-8;e=i;i=i+12|0;i=i+7&-8;x=i;i=i+4|0;i=i+7&-8;u=i;i=i+4|0;i=i+7&-8;c[y>>2]=o;U=V|0;c[F>>2]=0;D=s;dv(D|0,0,12)|0;B=r;dv(B|0,0,12)|0;o=q;dv(o|0,0,12)|0;A=t;dv(A|0,0,12)|0;C=e;dv(C|0,0,12)|0;or(f,g,F,w,z,s,r,q,t,x);f=m|0;c[n>>2]=c[f>>2];b=b|0;g=E|0;E=l;J=t+4|0;H=t+8|0;G=q+4|0;I=q+8|0;O=(h&512|0)!=0;M=r+4|0;L=r+8|0;N=e+4|0;P=e+8|0;K=F+3|0;h=s+4|0;S=194;T=U;V=V+400|0;Q=0;R=0;a:while(1){W=c[b>>2]|0;do{if((W|0)==0){X=1}else{X=c[W+12>>2]|0;if((X|0)==(c[W+16>>2]|0)){W=Fc[c[(c[W>>2]|0)+36>>2]&255](W)|0}else{W=c[X>>2]|0}if((W|0)==-1){c[b>>2]=0;X=1;break}else{X=(c[b>>2]|0)==0;break}}}while(0);W=c[g>>2]|0;do{if((W|0)==0){v=16}else{Y=c[W+12>>2]|0;if((Y|0)==(c[W+16>>2]|0)){Y=Fc[c[(c[W>>2]|0)+36>>2]&255](W)|0}else{Y=c[Y>>2]|0}if((Y|0)==-1){c[g>>2]=0;v=16;break}else{if(X){break}else{v=302;break a}}}}while(0);if((v|0)==16){v=0;if(X){v=302;break}else{W=0}}b:do{switch(a[F+Q|0]|0){case 1:{if((Q|0)==3){v=302;break a}X=c[b>>2]|0;v=c[X+12>>2]|0;if((v|0)==(c[X+16>>2]|0)){v=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{v=c[v>>2]|0}if(!(Hc[c[(c[E>>2]|0)+12>>2]&63](l,8192,v)|0)){v=41;break a}Y=c[b>>2]|0;v=Y+12|0;X=c[v>>2]|0;if((X|0)==(c[Y+16>>2]|0)){v=Fc[c[(c[Y>>2]|0)+40>>2]&255](Y)|0}else{c[v>>2]=X+4;v=c[X>>2]|0}Gm(e,v);v=42;break};case 0:{v=42;break};case 3:{W=a[o]|0;Y=(W&1)==0;if(Y){$=(W&255)>>>1}else{$=c[G>>2]|0}X=a[A]|0;Z=(X&1)==0;if(Z){_=(X&255)>>>1}else{_=c[J>>2]|0}if(($|0)==(-_|0)){break b}if(Y){_=(W&255)>>>1}else{_=c[G>>2]|0}do{if((_|0)!=0){if(Z){Z=(X&255)>>>1}else{Z=c[J>>2]|0}if((Z|0)==0){break}Y=c[b>>2]|0;X=c[Y+12>>2]|0;if((X|0)==(c[Y+16>>2]|0)){X=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0;W=a[o]|0}else{X=c[X>>2]|0}$=c[b>>2]|0;Z=$+12|0;_=c[Z>>2]|0;Y=(_|0)==(c[$+16>>2]|0);if((X|0)==(c[((W&1)==0?G:c[I>>2]|0)>>2]|0)){if(Y){Fc[c[(c[$>>2]|0)+40>>2]&255]($)|0}else{c[Z>>2]=_+4}W=a[o]|0;if((W&1)==0){W=(W&255)>>>1}else{W=c[G>>2]|0}R=W>>>0>1>>>0?q:R;break b}if(Y){W=Fc[c[(c[$>>2]|0)+36>>2]&255]($)|0}else{W=c[_>>2]|0}if((W|0)!=(c[((a[A]&1)==0?J:c[H>>2]|0)>>2]|0)){v=134;break a}Y=c[b>>2]|0;W=Y+12|0;X=c[W>>2]|0;if((X|0)==(c[Y+16>>2]|0)){Fc[c[(c[Y>>2]|0)+40>>2]&255](Y)|0}else{c[W>>2]=X+4}a[k]=1;W=a[A]|0;if((W&1)==0){W=(W&255)>>>1}else{W=c[J>>2]|0}R=W>>>0>1>>>0?t:R;break b}}while(0);if(Y){$=(W&255)>>>1}else{$=c[G>>2]|0}_=c[b>>2]|0;Z=c[_+12>>2]|0;Y=(Z|0)==(c[_+16>>2]|0);if(($|0)==0){if(Y){W=Fc[c[(c[_>>2]|0)+36>>2]&255](_)|0;X=a[A]|0}else{W=c[Z>>2]|0}if((W|0)!=(c[((X&1)==0?J:c[H>>2]|0)>>2]|0)){break b}W=c[b>>2]|0;X=W+12|0;Y=c[X>>2]|0;if((Y|0)==(c[W+16>>2]|0)){Fc[c[(c[W>>2]|0)+40>>2]&255](W)|0}else{c[X>>2]=Y+4}a[k]=1;W=a[A]|0;if((W&1)==0){W=(W&255)>>>1}else{W=c[J>>2]|0}R=W>>>0>1>>>0?t:R;break b}if(Y){X=Fc[c[(c[_>>2]|0)+36>>2]&255](_)|0;W=a[o]|0}else{X=c[Z>>2]|0}if((X|0)!=(c[((W&1)==0?G:c[I>>2]|0)>>2]|0)){a[k]=1;break b}W=c[b>>2]|0;X=W+12|0;Y=c[X>>2]|0;if((Y|0)==(c[W+16>>2]|0)){Fc[c[(c[W>>2]|0)+40>>2]&255](W)|0}else{c[X>>2]=Y+4}W=a[o]|0;if((W&1)==0){W=(W&255)>>>1}else{W=c[G>>2]|0}R=W>>>0>1>>>0?q:R;break};case 2:{if(!((R|0)!=0|Q>>>0<2>>>0)){if((Q|0)==2){X=(a[K]|0)!=0}else{X=0}if(!(O|X)){R=0;break b}}Y=a[B]|0;X=(Y&1)==0?M:c[L>>2]|0;c:do{if((Q|0)==0){Z=W}else{if(!((d[F+(Q-1)|0]|0)>>>0<2>>>0)){Z=W;break}while(1){if((Y&1)==0){Z=(Y&255)>>>1;_=M}else{Z=c[M>>2]|0;_=c[L>>2]|0}if((X|0)==(_+(Z<<2)|0)){break}if(!(Hc[c[(c[E>>2]|0)+12>>2]&63](l,8192,c[X>>2]|0)|0)){v=148;break}X=X+4|0;Y=a[B]|0}if((v|0)==148){v=0;Y=a[B]|0}Z=(Y&1)==0;$=X-(Z?M:c[L>>2]|0)>>2;_=a[C]|0;ba=(_&1)==0;if(ba){aa=(_&255)>>>1}else{aa=c[N>>2]|0}d:do{if(!($>>>0>aa>>>0)){if(ba){ba=(_&255)>>>1;aa=N;$=N+(((_&255)>>>1)-$<<2)|0}else{ca=c[P>>2]|0;_=c[N>>2]|0;ba=_;aa=ca;$=ca+(_-$<<2)|0}_=aa+(ba<<2)|0;if(($|0)==(_|0)){Z=W;break c}else{aa=$;$=Z?M:c[L>>2]|0}while(1){if((c[aa>>2]|0)!=(c[$>>2]|0)){break d}aa=aa+4|0;if((aa|0)==(_|0)){Z=W;break c}$=$+4|0}}}while(0);X=Z?M:c[L>>2]|0;Z=W}}while(0);e:while(1){if((Y&1)==0){Y=(Y&255)>>>1;_=M}else{Y=c[M>>2]|0;_=c[L>>2]|0}if((X|0)==(_+(Y<<2)|0)){break}Y=c[b>>2]|0;do{if((Y|0)==0){Y=1}else{_=c[Y+12>>2]|0;if((_|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{Y=c[_>>2]|0}if((Y|0)==-1){c[b>>2]=0;Y=1;break}else{Y=(c[b>>2]|0)==0;break}}}while(0);do{if((Z|0)==0){v=178}else{_=c[Z+12>>2]|0;if((_|0)==(c[Z+16>>2]|0)){Z=Fc[c[(c[Z>>2]|0)+36>>2]&255](Z)|0}else{Z=c[_>>2]|0}if((Z|0)==-1){c[g>>2]=0;W=0;v=178;break}else{if(Y^(W|0)==0){Z=W;break}else{break e}}}}while(0);if((v|0)==178){v=0;if(Y){break}else{Z=0}}Y=c[b>>2]|0;_=c[Y+12>>2]|0;if((_|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{Y=c[_>>2]|0}if((Y|0)!=(c[X>>2]|0)){break}Y=c[b>>2]|0;_=Y+12|0;$=c[_>>2]|0;if(($|0)==(c[Y+16>>2]|0)){Fc[c[(c[Y>>2]|0)+40>>2]&255](Y)|0}else{c[_>>2]=$+4}X=X+4|0;Y=a[B]|0}if(!O){break b}W=a[B]|0;if((W&1)==0){W=(W&255)>>>1;Y=M}else{W=c[M>>2]|0;Y=c[L>>2]|0}if((X|0)!=(Y+(W<<2)|0)){v=193;break a}break};case 4:{W=0;f:while(1){X=c[b>>2]|0;do{if((X|0)==0){X=1}else{Y=c[X+12>>2]|0;if((Y|0)==(c[X+16>>2]|0)){X=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{X=c[Y>>2]|0}if((X|0)==-1){c[b>>2]=0;X=1;break}else{X=(c[b>>2]|0)==0;break}}}while(0);Z=c[g>>2]|0;do{if((Z|0)==0){v=207}else{Y=c[Z+12>>2]|0;if((Y|0)==(c[Z+16>>2]|0)){Y=Fc[c[(c[Z>>2]|0)+36>>2]&255](Z)|0}else{Y=c[Y>>2]|0}if((Y|0)==-1){c[g>>2]=0;v=207;break}else{if(X){break}else{break f}}}}while(0);if((v|0)==207){v=0;if(X){break}}X=c[b>>2]|0;Y=c[X+12>>2]|0;if((Y|0)==(c[X+16>>2]|0)){X=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{X=c[Y>>2]|0}if(Hc[c[(c[E>>2]|0)+12>>2]&63](l,2048,X)|0){Y=c[n>>2]|0;if((Y|0)==(c[y>>2]|0)){pr(m,n,y);Y=c[n>>2]|0}c[n>>2]=Y+4;c[Y>>2]=X;W=W+1|0}else{Y=a[D]|0;if((Y&1)==0){Y=(Y&255)>>>1}else{Y=c[h>>2]|0}if((Y|0)==0|(W|0)==0){break}if((X|0)!=(c[z>>2]|0)){break}if((U|0)==(V|0)){V=(S|0)!=194;S=U-T|0;U=S>>>0<2147483647>>>0?S<<1:-1;if(V){X=T}else{X=0}ca=Iu(X,U)|0;X=ca;if((ca|0)==0){Uu()}V=X+(U>>>2<<2)|0;U=X+(S>>2<<2)|0;T=X;S=88}c[U>>2]=W;W=0;U=U+4|0}Z=c[b>>2]|0;Y=Z+12|0;X=c[Y>>2]|0;if((X|0)==(c[Z+16>>2]|0)){Fc[c[(c[Z>>2]|0)+40>>2]&255](Z)|0;continue}else{c[Y>>2]=X+4;continue}}if(!((T|0)==(U|0)|(W|0)==0)){if((U|0)==(V|0)){V=(S|0)!=194;S=U-T|0;U=S>>>0<2147483647>>>0?S<<1:-1;if(V){X=T}else{X=0}ca=Iu(X,U)|0;X=ca;if((ca|0)==0){Uu()}V=X+(U>>>2<<2)|0;U=X+(S>>2<<2)|0;T=X;S=88}c[U>>2]=W;U=U+4|0}W=c[x>>2]|0;if((W|0)>0){X=c[b>>2]|0;do{if((X|0)==0){Y=1}else{Y=c[X+12>>2]|0;if((Y|0)==(c[X+16>>2]|0)){X=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{X=c[Y>>2]|0}if((X|0)==-1){c[b>>2]=0;Y=1;break}else{Y=(c[b>>2]|0)==0;break}}}while(0);X=c[g>>2]|0;do{if((X|0)==0){v=259}else{Z=c[X+12>>2]|0;if((Z|0)==(c[X+16>>2]|0)){Z=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{Z=c[Z>>2]|0}if((Z|0)==-1){c[g>>2]=0;v=259;break}else{if(Y){break}else{v=265;break a}}}}while(0);if((v|0)==259){v=0;if(Y){v=265;break a}else{X=0}}Y=c[b>>2]|0;Z=c[Y+12>>2]|0;if((Z|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{Y=c[Z>>2]|0}if((Y|0)!=(c[w>>2]|0)){v=265;break a}_=c[b>>2]|0;Z=_+12|0;Y=c[Z>>2]|0;if((Y|0)==(c[_+16>>2]|0)){Fc[c[(c[_>>2]|0)+40>>2]&255](_)|0;Y=X;Z=X}else{c[Z>>2]=Y+4;Y=X;Z=X}while(1){X=c[b>>2]|0;do{if((X|0)==0){_=1}else{_=c[X+12>>2]|0;if((_|0)==(c[X+16>>2]|0)){X=Fc[c[(c[X>>2]|0)+36>>2]&255](X)|0}else{X=c[_>>2]|0}if((X|0)==-1){c[b>>2]=0;_=1;break}else{_=(c[b>>2]|0)==0;break}}}while(0);do{if((Y|0)==0){X=Z;v=282}else{X=c[Y+12>>2]|0;if((X|0)==(c[Y+16>>2]|0)){X=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{X=c[X>>2]|0}if((X|0)==-1){c[g>>2]=0;X=0;v=282;break}else{if(_^(Z|0)==0){X=Z;Y=Z;break}else{v=289;break a}}}}while(0);if((v|0)==282){v=0;if(_){v=289;break a}else{Y=0}}Z=c[b>>2]|0;_=c[Z+12>>2]|0;if((_|0)==(c[Z+16>>2]|0)){Z=Fc[c[(c[Z>>2]|0)+36>>2]&255](Z)|0}else{Z=c[_>>2]|0}if(!(Hc[c[(c[E>>2]|0)+12>>2]&63](l,2048,Z)|0)){v=289;break a}if((c[n>>2]|0)==(c[y>>2]|0)){pr(m,n,y)}Z=c[b>>2]|0;_=c[Z+12>>2]|0;if((_|0)==(c[Z+16>>2]|0)){Z=Fc[c[(c[Z>>2]|0)+36>>2]&255](Z)|0}else{Z=c[_>>2]|0}$=c[n>>2]|0;c[n>>2]=$+4;c[$>>2]=Z;W=W-1|0;c[x>>2]=W;Z=c[b>>2]|0;$=Z+12|0;_=c[$>>2]|0;if((_|0)==(c[Z+16>>2]|0)){Fc[c[(c[Z>>2]|0)+40>>2]&255](Z)|0}else{c[$>>2]=_+4}if((W|0)>0){Z=X}else{break}}}if((c[n>>2]|0)==(c[f>>2]|0)){v=300;break a}break};default:{}}}while(0);g:do{if((v|0)==42){v=0;if((Q|0)==3){v=302;break a}else{Y=W;X=W}while(1){W=c[b>>2]|0;do{if((W|0)==0){W=1}else{Z=c[W+12>>2]|0;if((Z|0)==(c[W+16>>2]|0)){W=Fc[c[(c[W>>2]|0)+36>>2]&255](W)|0}else{W=c[Z>>2]|0}if((W|0)==-1){c[b>>2]=0;W=1;break}else{W=(c[b>>2]|0)==0;break}}}while(0);do{if((Y|0)==0){v=56}else{Z=c[Y+12>>2]|0;if((Z|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{Y=c[Z>>2]|0}if((Y|0)==-1){c[g>>2]=0;X=0;v=56;break}else{if(W^(X|0)==0){W=X;break}else{break g}}}}while(0);if((v|0)==56){v=0;if(W){break g}else{W=0}}Y=c[b>>2]|0;Z=c[Y+12>>2]|0;if((Z|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+36>>2]&255](Y)|0}else{Y=c[Z>>2]|0}if(!(Hc[c[(c[E>>2]|0)+12>>2]&63](l,8192,Y)|0)){break g}Y=c[b>>2]|0;Z=Y+12|0;_=c[Z>>2]|0;if((_|0)==(c[Y+16>>2]|0)){Y=Fc[c[(c[Y>>2]|0)+40>>2]&255](Y)|0}else{c[Z>>2]=_+4;Y=c[_>>2]|0}Gm(e,Y);Y=W}}}while(0);Q=Q+1|0;if(!(Q>>>0<4>>>0)){v=302;break}}h:do{if((v|0)==41){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==134){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==193){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==265){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==289){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==300){c[j>>2]=c[j>>2]|4;j=0}else if((v|0)==302){i:do{if((R|0)!=0){m=R;n=R+4|0;k=R+8|0;l=1;j:while(1){w=a[m]|0;if((w&1)==0){w=(w&255)>>>1}else{w=c[n>>2]|0}if(!(l>>>0<w>>>0)){break i}w=c[b>>2]|0;do{if((w|0)==0){w=1}else{x=c[w+12>>2]|0;if((x|0)==(c[w+16>>2]|0)){w=Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0}else{w=c[x>>2]|0}if((w|0)==-1){c[b>>2]=0;w=1;break}else{w=(c[b>>2]|0)==0;break}}}while(0);y=c[g>>2]|0;do{if((y|0)==0){v=321}else{x=c[y+12>>2]|0;if((x|0)==(c[y+16>>2]|0)){x=Fc[c[(c[y>>2]|0)+36>>2]&255](y)|0}else{x=c[x>>2]|0}if((x|0)==-1){c[g>>2]=0;v=321;break}else{if(w){break}else{break j}}}}while(0);if((v|0)==321){v=0;if(w){break}}w=c[b>>2]|0;x=c[w+12>>2]|0;if((x|0)==(c[w+16>>2]|0)){x=Fc[c[(c[w>>2]|0)+36>>2]&255](w)|0}else{x=c[x>>2]|0}if((a[m]&1)==0){w=n}else{w=c[k>>2]|0}if((x|0)!=(c[w+(l<<2)>>2]|0)){break}l=l+1|0;x=c[b>>2]|0;w=x+12|0;y=c[w>>2]|0;if((y|0)==(c[x+16>>2]|0)){Fc[c[(c[x>>2]|0)+40>>2]&255](x)|0;continue}else{c[w>>2]=y+4;continue}}c[j>>2]=c[j>>2]|4;j=0;break h}}while(0);if((T|0)==(U|0)){j=1;T=U;break}c[u>>2]=0;hr(s,T,U,u);if((c[u>>2]|0)==0){j=1;break}c[j>>2]=c[j>>2]|4;j=0}}while(0);Cm(e);Cm(t);Cm(q);Cm(r);rm(s);if((T|0)==0){i=p;return j|0}Dc[S&511](T);i=p;return j|0}function mr(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;d=i;i=i+456|0;w=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[w>>2];w=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[w>>2];w=d|0;s=d+16|0;u=d+416|0;q=d+424|0;v=d+432|0;r=d+440|0;t=d+448|0;n=u|0;c[n>>2]=s;l=u+4|0;c[l>>2]=194;s=s+400|0;Lm(v,h);o=v|0;p=c[o>>2]|0;if(!((c[8714]|0)==-1)){c[w>>2]=34856;c[w+4>>2]=16;c[w+8>>2]=0;mm(34856,w,114)}w=(c[8715]|0)-1|0;x=c[p+8>>2]|0;do{if((c[p+12>>2]|0)-x>>2>>>0>w>>>0){x=c[x+(w<<2)>>2]|0;if((x|0)==0){break}w=x;a[r]=0;f=f|0;p=c[f>>2]|0;c[t>>2]=p;if(lr(e,t,g,v,c[h+4>>2]|0,j,r,w,u,q,s)|0){h=k;if((a[h]&1)==0){c[k+4>>2]=0;a[h]=0}else{c[c[k+8>>2]>>2]=0;c[k+4>>2]=0}if((a[r]|0)!=0){Gm(k,Qc[c[(c[x>>2]|0)+44>>2]&63](w,45)|0)}r=Qc[c[(c[x>>2]|0)+44>>2]&63](w,48)|0;g=c[n>>2]|0;q=c[q>>2]|0;h=q-4|0;a:do{if(g>>>0<h>>>0){while(1){s=g+4|0;if((c[g>>2]|0)!=(r|0)){break a}if(s>>>0<h>>>0){g=s}else{g=s;break}}}}while(0);nr(k,g,q)|0}k=e|0;e=c[k>>2]|0;do{if((e|0)==0){e=1}else{q=c[e+12>>2]|0;if((q|0)==(c[e+16>>2]|0)){e=Fc[c[(c[e>>2]|0)+36>>2]&255](e)|0}else{e=c[q>>2]|0}if((e|0)==-1){c[k>>2]=0;e=1;break}else{e=(c[k>>2]|0)==0;break}}}while(0);do{if((p|0)==0){m=35}else{q=c[p+12>>2]|0;if((q|0)==(c[p+16>>2]|0)){p=Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0}else{p=c[q>>2]|0}if((p|0)==-1){c[f>>2]=0;m=35;break}else{if(e){break}else{m=37;break}}}}while(0);if((m|0)==35){if(e){m=37}}if((m|0)==37){c[j>>2]=c[j>>2]|2}c[b>>2]=c[k>>2];Ul(c[o>>2]|0)|0;b=c[n>>2]|0;c[n>>2]=0;if((b|0)==0){i=d;return}Dc[c[l>>2]&511](b);i=d;return}}while(0);x=pc(4)|0;lu(x);Fb(x|0,25544,156)}function nr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=b;j=d;g=a[f]|0;if((g&1)==0){k=1;i=g;h=(g&255)>>>1}else{i=c[b>>2]|0;k=(i&-2)-1|0;i=i&255;h=c[b+4>>2]|0}g=e-j>>2;if((g|0)==0){return b|0}if((k-h|0)>>>0<g>>>0){Im(b,k,h+g-k|0,h,h,0,0);i=a[f]|0}if((i&1)==0){i=b+4|0}else{i=c[b+8>>2]|0}k=i+(h<<2)|0;if((d|0)!=(e|0)){j=h+((e-4+(-j|0)|0)>>>2)+1|0;while(1){c[k>>2]=c[d>>2];d=d+4|0;if((d|0)==(e|0)){break}else{k=k+4|0}}k=i+(j<<2)|0}c[k>>2]=0;g=h+g|0;if((a[f]&1)==0){a[f]=g<<1;return b|0}else{c[b+4>>2]=g;return b|0}return 0}function or(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;n=i;i=i+176|0;z=n|0;y=n+16|0;x=n+32|0;v=n+40|0;t=n+56|0;r=n+72|0;o=n+88|0;w=n+104|0;u=n+112|0;s=n+128|0;q=n+144|0;p=n+160|0;if(b){p=c[d>>2]|0;if(!((c[8830]|0)==-1)){c[y>>2]=35320;c[y+4>>2]=16;c[y+8>>2]=0;mm(35320,y,114)}s=(c[8831]|0)-1|0;q=c[p+8>>2]|0;if(!((c[p+12>>2]|0)-q>>2>>>0>s>>>0)){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}q=c[q+(s<<2)>>2]|0;if((q|0)==0){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}p=q;Ec[c[(c[q>>2]|0)+44>>2]&127](x,p);C=c[x>>2]|0;a[e]=C;C=C>>8;a[e+1|0]=C;C=C>>8;a[e+2|0]=C;C=C>>8;a[e+3|0]=C;e=q;Ec[c[(c[e>>2]|0)+32>>2]&127](v,p);s=l;if((a[s]&1)==0){c[l+4>>2]=0;a[s]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);l=v;c[s>>2]=c[l>>2];c[s+4>>2]=c[l+4>>2];c[s+8>>2]=c[l+8>>2];dv(l|0,0,12)|0;Cm(v);Ec[c[(c[e>>2]|0)+28>>2]&127](t,p);l=k;if((a[l]&1)==0){c[k+4>>2]=0;a[l]=0}else{c[c[k+8>>2]>>2]=0;c[k+4>>2]=0}Fm(k,0);k=t;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];dv(k|0,0,12)|0;Cm(t);k=q;b=Fc[c[(c[k>>2]|0)+12>>2]&255](p)|0;c[f>>2]=b;b=Fc[c[(c[k>>2]|0)+16>>2]&255](p)|0;c[g>>2]=b;Ec[c[(c[q>>2]|0)+20>>2]&127](r,p);g=h;if((a[g]&1)==0){a[h+1|0]=0;a[g]=0}else{a[c[h+8>>2]|0]=0;c[h+4>>2]=0}vm(h,0);h=r;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];dv(h|0,0,12)|0;rm(r);Ec[c[(c[e>>2]|0)+24>>2]&127](o,p);h=j;if((a[h]&1)==0){c[j+4>>2]=0;a[h]=0}else{c[c[j+8>>2]>>2]=0;c[j+4>>2]=0}Fm(j,0);b=o;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;Cm(o);b=Fc[c[(c[k>>2]|0)+36>>2]&255](p)|0;c[m>>2]=b;i=n;return}else{o=c[d>>2]|0;if(!((c[8832]|0)==-1)){c[z>>2]=35328;c[z+4>>2]=16;c[z+8>>2]=0;mm(35328,z,114)}t=(c[8833]|0)-1|0;r=c[o+8>>2]|0;if(!((c[o+12>>2]|0)-r>>2>>>0>t>>>0)){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}r=c[r+(t<<2)>>2]|0;if((r|0)==0){b=pc(4)|0;d=b;lu(d);Fb(b|0,25544,156)}o=r;Ec[c[(c[r>>2]|0)+44>>2]&127](w,o);C=c[w>>2]|0;a[e]=C;C=C>>8;a[e+1|0]=C;C=C>>8;a[e+2|0]=C;C=C>>8;a[e+3|0]=C;e=r;Ec[c[(c[e>>2]|0)+32>>2]&127](u,o);t=l;if((a[t]&1)==0){c[l+4>>2]=0;a[t]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);l=u;c[t>>2]=c[l>>2];c[t+4>>2]=c[l+4>>2];c[t+8>>2]=c[l+8>>2];dv(l|0,0,12)|0;Cm(u);Ec[c[(c[e>>2]|0)+28>>2]&127](s,o);l=k;if((a[l]&1)==0){c[k+4>>2]=0;a[l]=0}else{c[c[k+8>>2]>>2]=0;c[k+4>>2]=0}Fm(k,0);k=s;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];dv(k|0,0,12)|0;Cm(s);k=r;b=Fc[c[(c[k>>2]|0)+12>>2]&255](o)|0;c[f>>2]=b;b=Fc[c[(c[k>>2]|0)+16>>2]&255](o)|0;c[g>>2]=b;Ec[c[(c[r>>2]|0)+20>>2]&127](q,o);g=h;if((a[g]&1)==0){a[h+1|0]=0;a[g]=0}else{a[c[h+8>>2]|0]=0;c[h+4>>2]=0}vm(h,0);h=q;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];dv(h|0,0,12)|0;rm(q);Ec[c[(c[e>>2]|0)+24>>2]&127](p,o);h=j;if((a[h]&1)==0){c[j+4>>2]=0;a[h]=0}else{c[c[j+8>>2]>>2]=0;c[j+4>>2]=0}Fm(j,0);b=p;c[h>>2]=c[b>>2];c[h+4>>2]=c[b+4>>2];c[h+8>>2]=c[b+8>>2];dv(b|0,0,12)|0;Cm(p);b=Fc[c[(c[k>>2]|0)+36>>2]&255](o)|0;c[m>>2]=b;i=n;return}}function pr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=a+4|0;f=(c[e>>2]|0)!=194;a=a|0;i=c[a>>2]|0;h=i;g=(c[d>>2]|0)-h|0;g=g>>>0<2147483647>>>0?g<<1:-1;h=(c[b>>2]|0)-h>>2;if(f){}else{i=0}j=Iu(i,g)|0;i=j;if((j|0)==0){Uu()}do{if(f){c[a>>2]=i}else{f=c[a>>2]|0;c[a>>2]=i;if((f|0)==0){break}Dc[c[e>>2]&511](f);i=c[a>>2]|0}}while(0);c[e>>2]=88;c[b>>2]=i+(h<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function qr(a){a=a|0;Sl(a|0);Pu(a);return}function rr(a){a=a|0;Sl(a|0);return}function sr(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=+k;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;p=i;i=i+248|0;z=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[z>>2];z=p|0;A=p+120|0;C=p+232|0;E=p+240|0;l=E;m=i;i=i+1|0;i=i+7&-8;t=i;i=i+1|0;i=i+7&-8;s=i;i=i+12|0;i=i+7&-8;n=i;i=i+12|0;i=i+7&-8;q=i;i=i+12|0;i=i+7&-8;B=i;i=i+4|0;i=i+7&-8;D=i;i=i+100|0;i=i+7&-8;r=i;i=i+4|0;i=i+7&-8;d=i;i=i+4|0;i=i+7&-8;o=i;i=i+4|0;i=i+7&-8;G=p+16|0;c[A>>2]=G;u=p+128|0;v=db(G|0,100,15056,(G=i,i=i+8|0,h[G>>3]=k,G)|0)|0;i=G;do{if(v>>>0>99>>>0){do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}G=Xa(2147483647,14472,0)|0;c[8330]=G}}while(0);v=kp(A,c[8330]|0,15056,(y=i,i=i+8|0,h[y>>3]=k,y)|0)|0;i=y;y=c[A>>2]|0;if((y|0)==0){Uu();y=c[A>>2]|0}w=Gu(v)|0;if((w|0)!=0){u=w;break}Uu();u=0;w=0}else{w=0;y=0}}while(0);Lm(C,g);x=C|0;F=c[x>>2]|0;if(!((c[8716]|0)==-1)){c[z>>2]=34864;c[z+4>>2]=16;c[z+8>>2]=0;mm(34864,z,114)}G=(c[8717]|0)-1|0;z=c[F+8>>2]|0;do{if((c[F+12>>2]|0)-z>>2>>>0>G>>>0){F=c[z+(G<<2)>>2]|0;if((F|0)==0){break}z=F;G=c[A>>2]|0;Sc[c[(c[F>>2]|0)+32>>2]&15](z,G,G+v|0,u)|0;if((v|0)==0){A=0}else{A=(a[c[A>>2]|0]|0)==45}c[E>>2]=0;dv(s|0,0,12)|0;E=n;dv(E|0,0,12)|0;F=q;dv(F|0,0,12)|0;tr(f,A,C,l,m,t,s,n,q,B);C=D|0;f=c[B>>2]|0;if((v|0)>(f|0)){B=a[F]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[q+4>>2]|0}D=a[E]|0;if((D&1)==0){D=(D&255)>>>1}else{D=c[n+4>>2]|0}B=B+(v-f<<1|1)+D|0}else{B=a[F]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[q+4>>2]|0}D=a[E]|0;if((D&1)==0){D=(D&255)>>>1}else{D=c[n+4>>2]|0}B=B+2+D|0}B=B+f|0;do{if(B>>>0>100>>>0){B=Gu(B)|0;if((B|0)!=0){C=B;break}Uu();C=0;B=0}else{B=0}}while(0);ur(C,r,d,c[g+4>>2]|0,u,u+v|0,z,A,l,a[m]|0,a[t]|0,s,n,q,f);c[o>>2]=c[e>>2];Bd(b,o,C,c[r>>2]|0,c[d>>2]|0,g,j);if((B|0)!=0){Hu(B)}rm(q);rm(n);rm(s);Ul(c[x>>2]|0)|0;if((w|0)!=0){Hu(w)}if((y|0)==0){i=p;return}Hu(y);i=p;return}}while(0);G=pc(4)|0;lu(G);Fb(G|0,25544,156)}function tr(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0;n=i;i=i+40|0;G=n|0;F=n+16|0;z=n+32|0;B=z;s=i;i=i+12|0;i=i+7&-8;E=i;i=i+4|0;i=i+7&-8;y=E;t=i;i=i+12|0;i=i+7&-8;r=i;i=i+12|0;i=i+7&-8;o=i;i=i+12|0;i=i+7&-8;A=i;i=i+4|0;i=i+7&-8;D=A;v=i;i=i+12|0;i=i+7&-8;w=i;i=i+4|0;i=i+7&-8;x=w;u=i;i=i+12|0;i=i+7&-8;q=i;i=i+12|0;i=i+7&-8;p=i;i=i+12|0;i=i+7&-8;e=c[e>>2]|0;if(b){if(!((c[8834]|0)==-1)){c[F>>2]=35336;c[F+4>>2]=16;c[F+8>>2]=0;mm(35336,F,114)}q=(c[8835]|0)-1|0;p=c[e+8>>2]|0;if(!((c[e+12>>2]|0)-p>>2>>>0>q>>>0)){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}p=c[p+(q<<2)>>2]|0;if((p|0)==0){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}q=p;u=c[p>>2]|0;if(d){Ec[c[u+44>>2]&127](B,q);C=c[z>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[p>>2]|0)+32>>2]&127](s,q);f=l;if((a[f]&1)==0){a[l+1|0]=0;a[f]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);G=s;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(s)}else{Ec[c[u+40>>2]&127](y,q);C=c[E>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[p>>2]|0)+28>>2]&127](t,q);f=l;if((a[f]&1)==0){a[l+1|0]=0;a[f]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);G=t;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(t)}l=p;G=Fc[c[(c[l>>2]|0)+12>>2]&255](q)|0;a[g]=G;l=Fc[c[(c[l>>2]|0)+16>>2]&255](q)|0;a[h]=l;l=p;Ec[c[(c[l>>2]|0)+20>>2]&127](r,q);h=j;if((a[h]&1)==0){a[j+1|0]=0;a[h]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);j=r;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];dv(j|0,0,12)|0;rm(r);Ec[c[(c[l>>2]|0)+24>>2]&127](o,q);j=k;if((a[j]&1)==0){a[k+1|0]=0;a[j]=0}else{a[c[k+8>>2]|0]=0;c[k+4>>2]=0}vm(k,0);G=o;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(o);G=Fc[c[(c[p>>2]|0)+36>>2]&255](q)|0;c[m>>2]=G;i=n;return}else{if(!((c[8836]|0)==-1)){c[G>>2]=35344;c[G+4>>2]=16;c[G+8>>2]=0;mm(35344,G,114)}o=(c[8837]|0)-1|0;r=c[e+8>>2]|0;if(!((c[e+12>>2]|0)-r>>2>>>0>o>>>0)){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}r=c[r+(o<<2)>>2]|0;if((r|0)==0){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}o=r;s=c[r>>2]|0;if(d){Ec[c[s+44>>2]&127](D,o);C=c[A>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[r>>2]|0)+32>>2]&127](v,o);f=l;if((a[f]&1)==0){a[l+1|0]=0;a[f]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);G=v;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(v)}else{Ec[c[s+40>>2]&127](x,o);C=c[w>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[r>>2]|0)+28>>2]&127](u,o);f=l;if((a[f]&1)==0){a[l+1|0]=0;a[f]=0}else{a[c[l+8>>2]|0]=0;c[l+4>>2]=0}vm(l,0);G=u;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(u)}l=r;G=Fc[c[(c[l>>2]|0)+12>>2]&255](o)|0;a[g]=G;l=Fc[c[(c[l>>2]|0)+16>>2]&255](o)|0;a[h]=l;h=r;Ec[c[(c[h>>2]|0)+20>>2]&127](q,o);l=j;if((a[l]&1)==0){a[j+1|0]=0;a[l]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);j=q;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];dv(j|0,0,12)|0;rm(q);Ec[c[(c[h>>2]|0)+24>>2]&127](p,o);j=k;if((a[j]&1)==0){a[k+1|0]=0;a[j]=0}else{a[c[k+8>>2]|0]=0;c[k+4>>2]=0}vm(k,0);G=p;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;rm(p);G=Fc[c[(c[r>>2]|0)+36>>2]&255](o)|0;c[m>>2]=G;i=n;return}}function ur(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;c[f>>2]=d;u=j;v=q;s=q+1|0;t=q+8|0;q=q+4|0;A=p;z=(g&512|0)==0;y=p+1|0;x=p+8|0;p=p+4|0;C=(r|0)>0;E=o;D=o+1|0;B=o+8|0;G=o+4|0;F=j+8|0;o=-r|0;H=0;do{a:do{switch(a[l+H|0]|0){case 3:{J=a[v]|0;I=(J&1)==0;if(I){J=(J&255)>>>1}else{J=c[q>>2]|0}if((J|0)==0){break a}if(I){I=s}else{I=c[t>>2]|0}N=a[I]|0;O=c[f>>2]|0;c[f>>2]=O+1;a[O]=N;break};case 0:{c[e>>2]=c[f>>2];break};case 1:{c[e>>2]=c[f>>2];N=Qc[c[(c[u>>2]|0)+28>>2]&63](j,32)|0;O=c[f>>2]|0;c[f>>2]=O+1;a[O]=N;break};case 2:{I=a[A]|0;K=(I&1)==0;if(K){J=(I&255)>>>1}else{J=c[p>>2]|0}if((J|0)==0|z){break a}if(K){K=(I&255)>>>1;I=y;J=y}else{J=c[x>>2]|0;K=c[p>>2]|0;I=J}I=I+K|0;K=c[f>>2]|0;if((J|0)!=(I|0)){do{a[K]=a[J]|0;J=J+1|0;K=K+1|0;}while((J|0)!=(I|0))}c[f>>2]=K;break};case 4:{I=c[f>>2]|0;h=k?h+1|0:h;b:do{if(h>>>0<i>>>0){J=h;while(1){K=a[J]|0;if(!(K<<24>>24>-1)){break b}L=J+1|0;if((b[(c[F>>2]|0)+(K<<24>>24<<1)>>1]&2048)==0){break b}if(L>>>0<i>>>0){J=L}else{J=L;break}}}else{J=h}}while(0);K=J;if(C){if(J>>>0>h>>>0){K=h+(-K|0)|0;K=K>>>0<o>>>0?o:K;L=K+r|0;M=J;O=r;N=I;while(1){M=M-1|0;P=a[M]|0;c[f>>2]=N+1;a[N]=P;N=O-1|0;O=(N|0)>0;if(!(M>>>0>h>>>0&O)){break}O=N;N=c[f>>2]|0}J=J+K|0;if(O){w=32}else{K=0}}else{L=r;w=32}if((w|0)==32){w=0;K=Qc[c[(c[u>>2]|0)+28>>2]&63](j,48)|0}M=c[f>>2]|0;c[f>>2]=M+1;if((L|0)>0){do{a[M]=K;L=L-1|0;M=c[f>>2]|0;c[f>>2]=M+1}while((L|0)>0)}a[M]=m}if((J|0)==(h|0)){O=Qc[c[(c[u>>2]|0)+28>>2]&63](j,48)|0;P=c[f>>2]|0;c[f>>2]=P+1;a[P]=O}else{L=a[E]|0;K=(L&1)==0;if(K){L=(L&255)>>>1}else{L=c[G>>2]|0}if((L|0)==0){M=0;K=0;L=-1}else{if(K){L=D}else{L=c[B>>2]|0}M=0;K=0;L=a[L]|0}while(1){do{if((M|0)==(L|0)){N=c[f>>2]|0;c[f>>2]=N+1;a[N]=n;K=K+1|0;N=a[E]|0;M=(N&1)==0;if(M){N=(N&255)>>>1}else{N=c[G>>2]|0}if(!(K>>>0<N>>>0)){M=0;break}if(M){L=D}else{L=c[B>>2]|0}if((a[L+K|0]|0)==127){L=-1;M=0;break}if(M){L=D}else{L=c[B>>2]|0}L=a[L+K|0]|0;M=0}}while(0);J=J-1|0;O=a[J]|0;P=c[f>>2]|0;c[f>>2]=P+1;a[P]=O;if((J|0)==(h|0)){break}else{M=M+1|0}}}J=c[f>>2]|0;if((I|0)==(J|0)){break a}J=J-1|0;if(!(J>>>0>I>>>0)){break a}do{P=a[I]|0;a[I]=a[J]|0;a[J]=P;I=I+1|0;J=J-1|0;}while(I>>>0<J>>>0);break};default:{}}}while(0);H=H+1|0;}while(H>>>0<4>>>0);u=a[v]|0;l=(u&1)==0;if(l){v=(u&255)>>>1}else{v=c[q>>2]|0}if(v>>>0>1>>>0){if(l){q=(u&255)>>>1;u=s}else{s=c[t>>2]|0;q=c[q>>2]|0;u=s}t=s+1|0;s=u+q|0;q=c[f>>2]|0;if((t|0)!=(s|0)){do{a[q]=a[t]|0;t=t+1|0;q=q+1|0;}while((t|0)!=(s|0))}c[f>>2]=q}g=g&176;if((g|0)==32){c[e>>2]=c[f>>2];return}else if((g|0)==16){return}else{c[e>>2]=d;return}}function vr(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;p=i;i=i+32|0;v=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[v>>2];v=p|0;z=p+16|0;A=p+24|0;r=A;s=i;i=i+1|0;i=i+7&-8;d=i;i=i+1|0;i=i+7&-8;k=i;i=i+12|0;i=i+7&-8;l=i;i=i+12|0;i=i+7&-8;m=i;i=i+12|0;i=i+7&-8;x=i;i=i+4|0;i=i+7&-8;y=i;i=i+100|0;i=i+7&-8;q=i;i=i+4|0;i=i+7&-8;t=i;i=i+4|0;i=i+7&-8;n=i;i=i+4|0;i=i+7&-8;Lm(z,g);o=z|0;u=c[o>>2]|0;if(!((c[8716]|0)==-1)){c[v>>2]=34864;c[v+4>>2]=16;c[v+8>>2]=0;mm(34864,v,114)}v=(c[8717]|0)-1|0;w=c[u+8>>2]|0;do{if((c[u+12>>2]|0)-w>>2>>>0>v>>>0){w=c[w+(v<<2)>>2]|0;if((w|0)==0){break}u=w;v=j;C=a[v]|0;B=(C&1)==0;if(B){C=(C&255)>>>1}else{C=c[j+4>>2]|0}if((C|0)==0){w=0}else{if(B){B=j+1|0}else{B=c[j+8>>2]|0}C=a[B]|0;w=C<<24>>24==(Qc[c[(c[w>>2]|0)+28>>2]&63](u,45)|0)<<24>>24}c[A>>2]=0;dv(k|0,0,12)|0;A=l;dv(A|0,0,12)|0;B=m;dv(B|0,0,12)|0;tr(f,w,z,r,s,d,k,l,m,x);y=y|0;f=a[v]|0;C=(f&1)==0;if(C){z=(f&255)>>>1}else{z=c[j+4>>2]|0}x=c[x>>2]|0;if((z|0)>(x|0)){if(C){z=(f&255)>>>1}else{z=c[j+4>>2]|0}B=a[B]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[m+4>>2]|0}A=a[A]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[l+4>>2]|0}z=B+(z-x<<1|1)+A|0}else{z=a[B]|0;if((z&1)==0){z=(z&255)>>>1}else{z=c[m+4>>2]|0}A=a[A]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[l+4>>2]|0}z=z+2+A|0}z=z+x|0;do{if(z>>>0>100>>>0){z=Gu(z)|0;if((z|0)!=0){y=z;break}Uu();y=0;z=0;f=a[v]|0}else{z=0}}while(0);if((f&1)==0){v=(f&255)>>>1;j=j+1|0}else{v=c[j+4>>2]|0;j=c[j+8>>2]|0}ur(y,q,t,c[g+4>>2]|0,j,j+v|0,u,w,r,a[s]|0,a[d]|0,k,l,m,x);c[n>>2]=c[e>>2];Bd(b,n,y,c[q>>2]|0,c[t>>2]|0,g,h);if((z|0)==0){rm(m);rm(l);rm(k);C=c[o>>2]|0;C=C|0;Ul(C)|0;i=p;return}Hu(z);rm(m);rm(l);rm(k);C=c[o>>2]|0;C=C|0;Ul(C)|0;i=p;return}}while(0);C=pc(4)|0;lu(C);Fb(C|0,25544,156)}function wr(a){a=a|0;Sl(a|0);Pu(a);return}function xr(a){a=a|0;Sl(a|0);return}function yr(b,d,e,f,g,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=+k;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;p=i;i=i+544|0;z=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[z>>2];z=p|0;A=p+120|0;C=p+528|0;E=p+536|0;l=E;m=i;i=i+4|0;i=i+7&-8;t=i;i=i+4|0;i=i+7&-8;s=i;i=i+12|0;i=i+7&-8;n=i;i=i+12|0;i=i+7&-8;q=i;i=i+12|0;i=i+7&-8;B=i;i=i+4|0;i=i+7&-8;D=i;i=i+400|0;r=i;i=i+4|0;i=i+7&-8;d=i;i=i+4|0;i=i+7&-8;o=i;i=i+4|0;i=i+7&-8;G=p+16|0;c[A>>2]=G;u=p+128|0;v=db(G|0,100,15056,(G=i,i=i+8|0,h[G>>3]=k,G)|0)|0;i=G;do{if(v>>>0>99>>>0){do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}G=Xa(2147483647,14472,0)|0;c[8330]=G}}while(0);v=kp(A,c[8330]|0,15056,(y=i,i=i+8|0,h[y>>3]=k,y)|0)|0;i=y;y=c[A>>2]|0;if((y|0)==0){Uu();y=c[A>>2]|0}G=Gu(v<<2)|0;w=G;if((G|0)!=0){u=w;break}Uu();u=0;w=0}else{w=0;y=0}}while(0);Lm(C,g);x=C|0;F=c[x>>2]|0;if(!((c[8714]|0)==-1)){c[z>>2]=34856;c[z+4>>2]=16;c[z+8>>2]=0;mm(34856,z,114)}G=(c[8715]|0)-1|0;z=c[F+8>>2]|0;do{if((c[F+12>>2]|0)-z>>2>>>0>G>>>0){F=c[z+(G<<2)>>2]|0;if((F|0)==0){break}z=F;G=c[A>>2]|0;Sc[c[(c[F>>2]|0)+48>>2]&15](z,G,G+v|0,u)|0;if((v|0)==0){A=0}else{A=(a[c[A>>2]|0]|0)==45}c[E>>2]=0;dv(s|0,0,12)|0;E=n;dv(E|0,0,12)|0;F=q;dv(F|0,0,12)|0;zr(f,A,C,l,m,t,s,n,q,B);C=D|0;f=c[B>>2]|0;if((v|0)>(f|0)){B=a[F]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[q+4>>2]|0}D=a[E]|0;if((D&1)==0){D=(D&255)>>>1}else{D=c[n+4>>2]|0}B=B+(v-f<<1|1)+D|0}else{B=a[F]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[q+4>>2]|0}D=a[E]|0;if((D&1)==0){D=(D&255)>>>1}else{D=c[n+4>>2]|0}B=B+2+D|0}B=B+f|0;do{if(B>>>0>100>>>0){G=Gu(B<<2)|0;B=G;if((G|0)!=0){C=B;break}Uu();C=0;B=0}else{B=0}}while(0);Ar(C,r,d,c[g+4>>2]|0,u,u+(v<<2)|0,z,A,l,c[m>>2]|0,c[t>>2]|0,s,n,q,f);c[o>>2]=c[e>>2];tp(b,o,C,c[r>>2]|0,c[d>>2]|0,g,j);if((B|0)!=0){Hu(B)}Cm(q);Cm(n);rm(s);Ul(c[x>>2]|0)|0;if((w|0)!=0){Hu(w)}if((y|0)==0){i=p;return}Hu(y);i=p;return}}while(0);G=pc(4)|0;lu(G);Fb(G|0,25544,156)}function zr(b,d,e,f,g,h,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0;n=i;i=i+40|0;G=n|0;F=n+16|0;z=n+32|0;B=z;s=i;i=i+12|0;i=i+7&-8;E=i;i=i+4|0;i=i+7&-8;y=E;t=i;i=i+12|0;i=i+7&-8;r=i;i=i+12|0;i=i+7&-8;o=i;i=i+12|0;i=i+7&-8;A=i;i=i+4|0;i=i+7&-8;D=A;v=i;i=i+12|0;i=i+7&-8;w=i;i=i+4|0;i=i+7&-8;x=w;u=i;i=i+12|0;i=i+7&-8;q=i;i=i+12|0;i=i+7&-8;p=i;i=i+12|0;i=i+7&-8;e=c[e>>2]|0;if(b){if(!((c[8830]|0)==-1)){c[F>>2]=35320;c[F+4>>2]=16;c[F+8>>2]=0;mm(35320,F,114)}q=(c[8831]|0)-1|0;p=c[e+8>>2]|0;if(!((c[e+12>>2]|0)-p>>2>>>0>q>>>0)){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}q=c[p+(q<<2)>>2]|0;if((q|0)==0){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}p=q;u=c[q>>2]|0;if(d){Ec[c[u+44>>2]&127](B,p);C=c[z>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[q>>2]|0)+32>>2]&127](s,p);f=l;if((a[f]&1)==0){c[l+4>>2]=0;a[f]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);G=s;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(s)}else{Ec[c[u+40>>2]&127](y,p);C=c[E>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[q>>2]|0)+28>>2]&127](t,p);f=l;if((a[f]&1)==0){c[l+4>>2]=0;a[f]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);G=t;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(t)}l=q;G=Fc[c[(c[l>>2]|0)+12>>2]&255](p)|0;c[g>>2]=G;G=Fc[c[(c[l>>2]|0)+16>>2]&255](p)|0;c[h>>2]=G;Ec[c[(c[q>>2]|0)+20>>2]&127](r,p);h=j;if((a[h]&1)==0){a[j+1|0]=0;a[h]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);j=r;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];dv(j|0,0,12)|0;rm(r);Ec[c[(c[q>>2]|0)+24>>2]&127](o,p);j=k;if((a[j]&1)==0){c[k+4>>2]=0;a[j]=0}else{c[c[k+8>>2]>>2]=0;c[k+4>>2]=0}Fm(k,0);G=o;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(o);G=Fc[c[(c[l>>2]|0)+36>>2]&255](p)|0;c[m>>2]=G;i=n;return}else{if(!((c[8832]|0)==-1)){c[G>>2]=35328;c[G+4>>2]=16;c[G+8>>2]=0;mm(35328,G,114)}o=(c[8833]|0)-1|0;r=c[e+8>>2]|0;if(!((c[e+12>>2]|0)-r>>2>>>0>o>>>0)){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}r=c[r+(o<<2)>>2]|0;if((r|0)==0){G=pc(4)|0;b=G;lu(b);Fb(G|0,25544,156)}o=r;s=c[r>>2]|0;if(d){Ec[c[s+44>>2]&127](D,o);C=c[A>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[r>>2]|0)+32>>2]&127](v,o);f=l;if((a[f]&1)==0){c[l+4>>2]=0;a[f]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);G=v;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(v)}else{Ec[c[s+40>>2]&127](x,o);C=c[w>>2]|0;a[f]=C;C=C>>8;a[f+1|0]=C;C=C>>8;a[f+2|0]=C;C=C>>8;a[f+3|0]=C;Ec[c[(c[r>>2]|0)+28>>2]&127](u,o);f=l;if((a[f]&1)==0){c[l+4>>2]=0;a[f]=0}else{c[c[l+8>>2]>>2]=0;c[l+4>>2]=0}Fm(l,0);G=u;c[f>>2]=c[G>>2];c[f+4>>2]=c[G+4>>2];c[f+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(u)}l=r;G=Fc[c[(c[l>>2]|0)+12>>2]&255](o)|0;c[g>>2]=G;G=Fc[c[(c[l>>2]|0)+16>>2]&255](o)|0;c[h>>2]=G;Ec[c[(c[r>>2]|0)+20>>2]&127](q,o);h=j;if((a[h]&1)==0){a[j+1|0]=0;a[h]=0}else{a[c[j+8>>2]|0]=0;c[j+4>>2]=0}vm(j,0);j=q;c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];dv(j|0,0,12)|0;rm(q);Ec[c[(c[r>>2]|0)+24>>2]&127](p,o);j=k;if((a[j]&1)==0){c[k+4>>2]=0;a[j]=0}else{c[c[k+8>>2]>>2]=0;c[k+4>>2]=0}Fm(k,0);G=p;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];dv(G|0,0,12)|0;Cm(p);G=Fc[c[(c[l>>2]|0)+36>>2]&255](o)|0;c[m>>2]=G;i=n;return}}function Ar(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;c[e>>2]=b;s=i;u=p;r=p+4|0;p=p+8|0;v=o;x=(f&512|0)==0;w=o+4|0;B=o+8|0;z=(q|0)>0;y=n;o=n+1|0;A=n+8|0;n=n+4|0;C=i;D=0;do{a:do{switch(a[k+D|0]|0){case 1:{c[d>>2]=c[e>>2];K=Qc[c[(c[s>>2]|0)+44>>2]&63](i,32)|0;L=c[e>>2]|0;c[e>>2]=L+4;c[L>>2]=K;break};case 2:{G=a[v]|0;F=(G&1)==0;if(F){E=(G&255)>>>1}else{E=c[w>>2]|0}if((E|0)==0|x){break a}if(F){H=(G&255)>>>1;G=w;I=w}else{I=c[B>>2]|0;H=c[w>>2]|0;G=I}F=G+(H<<2)|0;E=c[e>>2]|0;if((I|0)!=(F|0)){G=(G+(H-1<<2)+(-I|0)|0)>>>2;H=E;while(1){c[H>>2]=c[I>>2];I=I+4|0;if((I|0)==(F|0)){break}H=H+4|0}E=E+(G+1<<2)|0}c[e>>2]=E;break};case 4:{E=c[e>>2]|0;g=j?g+4|0:g;b:do{if(g>>>0<h>>>0){F=g;while(1){G=F+4|0;if(!(Hc[c[(c[C>>2]|0)+12>>2]&63](i,2048,c[F>>2]|0)|0)){break b}if(G>>>0<h>>>0){F=G}else{F=G;break}}}else{F=g}}while(0);if(z){do{if(F>>>0>g>>>0){G=q;I=c[e>>2]|0;while(1){F=F-4|0;H=I+4|0;c[I>>2]=c[F>>2];G=G-1|0;I=(G|0)>0;if(F>>>0>g>>>0&I){I=H}else{break}}c[e>>2]=H;if(I){t=34;break}I=c[e>>2]|0;c[e>>2]=I+4}else{G=q;t=34}}while(0);do{if((t|0)==34){t=0;H=Qc[c[(c[s>>2]|0)+44>>2]&63](i,48)|0;I=c[e>>2]|0;J=I+4|0;c[e>>2]=J;if((G|0)>0){L=G;K=I}else{break}while(1){c[K>>2]=H;L=L-1|0;if((L|0)>0){K=J;J=J+4|0}else{break}}c[e>>2]=I+(G+1<<2);I=I+(G<<2)|0}}while(0);c[I>>2]=l}if((F|0)==(g|0)){J=Qc[c[(c[s>>2]|0)+44>>2]&63](i,48)|0;L=c[e>>2]|0;K=L+4|0;c[e>>2]=K;c[L>>2]=J}else{H=a[y]|0;G=(H&1)==0;if(G){H=(H&255)>>>1}else{H=c[n>>2]|0}if((H|0)==0){J=0;I=0;H=-1}else{if(G){G=o}else{G=c[A>>2]|0}J=0;I=0;H=a[G]|0}while(1){K=c[e>>2]|0;do{if((J|0)==(H|0)){G=K+4|0;c[e>>2]=G;c[K>>2]=m;I=I+1|0;K=a[y]|0;J=(K&1)==0;if(J){K=(K&255)>>>1}else{K=c[n>>2]|0}if(!(I>>>0<K>>>0)){J=0;break}if(J){H=o}else{H=c[A>>2]|0}if((a[H+I|0]|0)==127){H=-1;J=0;break}if(J){H=o}else{H=c[A>>2]|0}H=a[H+I|0]|0;J=0}else{G=K}}while(0);F=F-4|0;L=c[F>>2]|0;K=G+4|0;c[e>>2]=K;c[G>>2]=L;if((F|0)==(g|0)){break}else{J=J+1|0}}}if((E|0)==(K|0)){break a}F=K-4|0;if(!(F>>>0>E>>>0)){break a}do{L=c[E>>2]|0;c[E>>2]=c[F>>2];c[F>>2]=L;E=E+4|0;F=F-4|0;}while(E>>>0<F>>>0);break};case 3:{F=a[u]|0;E=(F&1)==0;if(E){F=(F&255)>>>1}else{F=c[r>>2]|0}if((F|0)==0){break a}if(E){E=r}else{E=c[p>>2]|0}K=c[E>>2]|0;L=c[e>>2]|0;c[e>>2]=L+4;c[L>>2]=K;break};case 0:{c[d>>2]=c[e>>2];break};default:{}}}while(0);D=D+1|0;}while(D>>>0<4>>>0);h=a[u]|0;j=(h&1)==0;if(j){m=(h&255)>>>1}else{m=c[r>>2]|0}if(m>>>0>1>>>0){if(j){h=(h&255)>>>1;j=r}else{L=c[p>>2]|0;h=c[r>>2]|0;j=L;r=L}m=r+4|0;p=j+(h<<2)|0;r=c[e>>2]|0;if((m|0)!=(p|0)){h=(j+(h-1<<2)+(-m|0)|0)>>>2;j=r;while(1){c[j>>2]=c[m>>2];m=m+4|0;if((m|0)==(p|0)){break}else{j=j+4|0}}r=r+(h+1<<2)|0}c[e>>2]=r}f=f&176;if((f|0)==16){return}else if((f|0)==32){c[d>>2]=c[e>>2];return}else{c[d>>2]=b;return}}function Br(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;p=i;i=i+32|0;v=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[v>>2];v=p|0;z=p+16|0;A=p+24|0;r=A;s=i;i=i+4|0;i=i+7&-8;d=i;i=i+4|0;i=i+7&-8;k=i;i=i+12|0;i=i+7&-8;l=i;i=i+12|0;i=i+7&-8;m=i;i=i+12|0;i=i+7&-8;x=i;i=i+4|0;i=i+7&-8;y=i;i=i+400|0;q=i;i=i+4|0;i=i+7&-8;t=i;i=i+4|0;i=i+7&-8;n=i;i=i+4|0;i=i+7&-8;Lm(z,g);o=z|0;u=c[o>>2]|0;if(!((c[8714]|0)==-1)){c[v>>2]=34856;c[v+4>>2]=16;c[v+8>>2]=0;mm(34856,v,114)}v=(c[8715]|0)-1|0;w=c[u+8>>2]|0;do{if((c[u+12>>2]|0)-w>>2>>>0>v>>>0){w=c[w+(v<<2)>>2]|0;if((w|0)==0){break}u=w;v=j;C=a[v]|0;B=(C&1)==0;if(B){C=(C&255)>>>1}else{C=c[j+4>>2]|0}if((C|0)==0){w=0}else{if(B){B=j+4|0}else{B=c[j+8>>2]|0}C=c[B>>2]|0;w=(C|0)==(Qc[c[(c[w>>2]|0)+44>>2]&63](u,45)|0)}c[A>>2]=0;dv(k|0,0,12)|0;A=l;dv(A|0,0,12)|0;B=m;dv(B|0,0,12)|0;zr(f,w,z,r,s,d,k,l,m,x);y=y|0;f=a[v]|0;C=(f&1)==0;if(C){z=(f&255)>>>1}else{z=c[j+4>>2]|0}x=c[x>>2]|0;if((z|0)>(x|0)){if(C){z=(f&255)>>>1}else{z=c[j+4>>2]|0}B=a[B]|0;if((B&1)==0){B=(B&255)>>>1}else{B=c[m+4>>2]|0}A=a[A]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[l+4>>2]|0}z=B+(z-x<<1|1)+A|0}else{z=a[B]|0;if((z&1)==0){z=(z&255)>>>1}else{z=c[m+4>>2]|0}A=a[A]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[l+4>>2]|0}z=z+2+A|0}z=z+x|0;do{if(z>>>0>100>>>0){C=Gu(z<<2)|0;z=C;if((C|0)!=0){y=z;break}Uu();y=0;z=0;f=a[v]|0}else{z=0}}while(0);if((f&1)==0){v=(f&255)>>>1;j=j+4|0}else{v=c[j+4>>2]|0;j=c[j+8>>2]|0}Ar(y,q,t,c[g+4>>2]|0,j,j+(v<<2)|0,u,w,r,c[s>>2]|0,c[d>>2]|0,k,l,m,x);c[n>>2]=c[e>>2];tp(b,n,y,c[q>>2]|0,c[t>>2]|0,g,h);if((z|0)==0){Cm(m);Cm(l);rm(k);C=c[o>>2]|0;C=C|0;Ul(C)|0;i=p;return}Hu(z);Cm(m);Cm(l);rm(k);C=c[o>>2]|0;C=C|0;Ul(C)|0;i=p;return}}while(0);C=pc(4)|0;lu(C);Fb(C|0,25544,156)}function Cr(a){a=a|0;Sl(a|0);Pu(a);return}function Dr(a){a=a|0;Sl(a|0);return}function Er(b,d,e){b=b|0;d=d|0;e=e|0;if((a[d]&1)==0){d=d+1|0}else{d=c[d+8>>2]|0}e=sc(d|0,1)|0;return e>>>(((e|0)!=-1|0)>>>0)|0}function Fr(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;d=i;i=i+16|0;j=d|0;l=j;dv(l|0,0,12)|0;m=a[h]|0;if((m&1)==0){n=(m&255)>>>1;m=h+1|0;h=h+1|0}else{o=c[h+8>>2]|0;n=c[h+4>>2]|0;m=o;h=o}h=h+n|0;do{if(m>>>0<h>>>0){do{wm(j,a[m]|0);m=m+1|0;}while(m>>>0<h>>>0);e=(e|0)==-1?-1:e<<1;if((a[l]&1)==0){k=10;break}l=c[j+8>>2]|0}else{e=(e|0)==-1?-1:e<<1;k=10}}while(0);if((k|0)==10){l=j+1|0}g=qb(e|0,f|0,g|0,l|0)|0;dv(b|0,0,12)|0;o=ev(g|0)|0;f=g+o|0;if((o|0)<=0){rm(j);i=d;return}do{wm(b,a[g]|0);g=g+1|0;}while(g>>>0<f>>>0);rm(j);i=d;return}function Gr(a,b){a=a|0;b=b|0;Yb(((b|0)==-1?-1:b<<1)|0)|0;return}function Hr(a){a=a|0;Sl(a|0);Pu(a);return}function Ir(a){a=a|0;Sl(a|0);return}function Jr(b,d,e){b=b|0;d=d|0;e=e|0;if((a[d]&1)==0){d=d+1|0}else{d=c[d+8>>2]|0}e=sc(d|0,1)|0;return e>>>(((e|0)!=-1|0)>>>0)|0}function Kr(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;d=i;i=i+240|0;w=d|0;z=d+8|0;q=d+40|0;r=d+48|0;p=d+56|0;o=d+64|0;l=d+192|0;k=d+200|0;m=d+208|0;s=d+224|0;n=d+232|0;t=m;dv(t|0,0,12)|0;c[s+4>>2]=0;c[s>>2]=21168;u=a[h]|0;if((u&1)==0){u=(u&255)>>>1;y=h+4|0;h=h+4|0}else{A=c[h+8>>2]|0;u=c[h+4>>2]|0;y=A;h=A}u=h+(u<<2)|0;h=z|0;v=w;c[w>>2]=0;c[w+4>>2]=0;a:do{if(y>>>0<u>>>0){w=s|0;x=s;z=z+32|0;A=21168;while(1){c[r>>2]=y;B=(Vc[c[A+12>>2]&31](w,v,y,u,r,h,z,q)|0)==2;A=c[r>>2]|0;if(B|(A|0)==(y|0)){break}if(h>>>0<(c[q>>2]|0)>>>0){y=h;do{wm(m,a[y]|0);y=y+1|0;}while(y>>>0<(c[q>>2]|0)>>>0);y=c[r>>2]|0}else{y=A}if(!(y>>>0<u>>>0)){break a}A=c[x>>2]|0}dr(8296)}}while(0);Sl(s|0);if((a[t]&1)==0){q=m+1|0}else{q=c[m+8>>2]|0}s=qb(((e|0)==-1?-1:e<<1)|0,f|0,g|0,q|0)|0;dv(b|0,0,12)|0;c[n+4>>2]=0;c[n>>2]=21112;B=ev(s|0)|0;e=s+B|0;g=p;c[p>>2]=0;c[p+4>>2]=0;if((B|0)<=0){B=n|0;Sl(B);rm(m);i=d;return}q=n|0;p=n;f=e;r=o|0;o=o+128|0;t=21112;while(1){c[k>>2]=s;B=(Vc[c[t+16>>2]&31](q,g,s,(f-s|0)>32?s+32|0:e,k,r,o,l)|0)==2;t=c[k>>2]|0;if(B|(t|0)==(s|0)){break}if(r>>>0<(c[l>>2]|0)>>>0){s=r;do{Gm(b,c[s>>2]|0);s=s+4|0;}while(s>>>0<(c[l>>2]|0)>>>0);s=c[k>>2]|0}else{s=t}if(!(s>>>0<e>>>0)){j=37;break}t=c[p>>2]|0}if((j|0)==37){B=n|0;Sl(B);rm(m);i=d;return}dr(8296)}function Lr(a,b){a=a|0;b=b|0;Yb(((b|0)==-1?-1:b<<1)|0)|0;return}function Mr(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=20632;d=b+8|0;e=c[d>>2]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}f=Xa(2147483647,14472,0)|0;c[8330]=f}}while(0);if((e|0)==(c[8330]|0)){f=b|0;Sl(f);return}pb(c[d>>2]|0);f=b|0;Sl(f);return}function Nr(a){a=a|0;a=pc(8)|0;Vl(a,14768);c[a>>2]=19568;Fb(a|0,25576,40)}function Or(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;C=i;i=i+448|0;f=C|0;x=C+16|0;g=C+32|0;j=C+48|0;k=C+64|0;l=C+80|0;m=C+96|0;n=C+112|0;o=C+128|0;p=C+144|0;q=C+160|0;r=C+176|0;s=C+192|0;t=C+208|0;u=C+224|0;v=C+240|0;w=C+256|0;e=C+272|0;y=C+288|0;z=C+304|0;A=C+320|0;B=C+336|0;D=C+352|0;E=C+368|0;F=C+384|0;G=C+400|0;H=C+416|0;h=C+432|0;c[b+4>>2]=d-1;c[b>>2]=20888;I=b+8|0;d=b+12|0;J=b+136|0;a[J]=1;K=b+24|0;c[d>>2]=K;c[I>>2]=K;c[b+16>>2]=J;J=28;do{if((K|0)==0){K=0}else{c[K>>2]=0;K=c[d>>2]|0}K=K+4|0;c[d>>2]=K;J=J-1|0;}while((J|0)!=0);pm(b+144|0,14472,1);I=c[I>>2]|0;J=c[d>>2]|0;if((J|0)!=(I|0)){c[d>>2]=J+(~((J-4+(-I|0)|0)>>>2)<<2)}c[8387]=0;c[8386]=20592;if(!((c[8636]|0)==-1)){c[H>>2]=34544;c[H+4>>2]=16;c[H+8>>2]=0;mm(34544,H,114)}Pr(b,33544,(c[8637]|0)-1|0);c[8385]=0;c[8384]=20552;if(!((c[8634]|0)==-1)){c[G>>2]=34536;c[G+4>>2]=16;c[G+8>>2]=0;mm(34536,G,114)}Pr(b,33536,(c[8635]|0)-1|0);c[8441]=0;c[8440]=21e3;c[8442]=0;a[33772]=0;K=ob()|0;c[8442]=c[K>>2];if(!((c[8716]|0)==-1)){c[F>>2]=34864;c[F+4>>2]=16;c[F+8>>2]=0;mm(34864,F,114)}Pr(b,33760,(c[8717]|0)-1|0);c[8439]=0;c[8438]=20920;if(!((c[8714]|0)==-1)){c[E>>2]=34856;c[E+4>>2]=16;c[E+8>>2]=0;mm(34856,E,114)}Pr(b,33752,(c[8715]|0)-1|0);c[8393]=0;c[8392]=20688;if(!((c[8640]|0)==-1)){c[D>>2]=34560;c[D+4>>2]=16;c[D+8>>2]=0;mm(34560,D,114)}Pr(b,33568,(c[8641]|0)-1|0);c[8389]=0;c[8388]=20632;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}K=Xa(2147483647,14472,0)|0;c[8330]=K}}while(0);c[8390]=c[8330];if(!((c[8638]|0)==-1)){c[B>>2]=34552;c[B+4>>2]=16;c[B+8>>2]=0;mm(34552,B,114)}Pr(b,33552,(c[8639]|0)-1|0);c[8395]=0;c[8394]=20744;if(!((c[8642]|0)==-1)){c[A>>2]=34568;c[A+4>>2]=16;c[A+8>>2]=0;mm(34568,A,114)}Pr(b,33576,(c[8643]|0)-1|0);c[8397]=0;c[8396]=20800;if(!((c[8644]|0)==-1)){c[z>>2]=34576;c[z+4>>2]=16;c[z+8>>2]=0;mm(34576,z,114)}Pr(b,33584,(c[8645]|0)-1|0);c[8367]=0;c[8366]=20096;a[33472]=46;a[33473]=44;dv(33476,0,12)|0;if(!((c[8620]|0)==-1)){c[y>>2]=34480;c[y+4>>2]=16;c[y+8>>2]=0;mm(34480,y,114)}Pr(b,33464,(c[8621]|0)-1|0);c[8359]=0;c[8358]=20048;c[8360]=46;c[8361]=44;dv(33448,0,12)|0;if(!((c[8618]|0)==-1)){c[e>>2]=34472;c[e+4>>2]=16;c[e+8>>2]=0;mm(34472,e,114)}Pr(b,33432,(c[8619]|0)-1|0);c[8383]=0;c[8382]=20480;if(!((c[8632]|0)==-1)){c[w>>2]=34528;c[w+4>>2]=16;c[w+8>>2]=0;mm(34528,w,114)}Pr(b,33528,(c[8633]|0)-1|0);c[8381]=0;c[8380]=20408;if(!((c[8630]|0)==-1)){c[v>>2]=34520;c[v+4>>2]=16;c[v+8>>2]=0;mm(34520,v,114)}Pr(b,33520,(c[8631]|0)-1|0);c[8379]=0;c[8378]=20344;if(!((c[8628]|0)==-1)){c[u>>2]=34512;c[u+4>>2]=16;c[u+8>>2]=0;mm(34512,u,114)}Pr(b,33512,(c[8629]|0)-1|0);c[8377]=0;c[8376]=20280;if(!((c[8626]|0)==-1)){c[t>>2]=34504;c[t+4>>2]=16;c[t+8>>2]=0;mm(34504,t,114)}Pr(b,33504,(c[8627]|0)-1|0);c[8451]=0;c[8450]=21928;if(!((c[8836]|0)==-1)){c[s>>2]=35344;c[s+4>>2]=16;c[s+8>>2]=0;mm(35344,s,114)}Pr(b,33800,(c[8837]|0)-1|0);c[8449]=0;c[8448]=21864;if(!((c[8834]|0)==-1)){c[r>>2]=35336;c[r+4>>2]=16;c[r+8>>2]=0;mm(35336,r,114)}Pr(b,33792,(c[8835]|0)-1|0);c[8447]=0;c[8446]=21800;if(!((c[8832]|0)==-1)){c[q>>2]=35328;c[q+4>>2]=16;c[q+8>>2]=0;mm(35328,q,114)}Pr(b,33784,(c[8833]|0)-1|0);c[8445]=0;c[8444]=21736;if(!((c[8830]|0)==-1)){c[p>>2]=35320;c[p+4>>2]=16;c[p+8>>2]=0;mm(35320,p,114)}Pr(b,33776,(c[8831]|0)-1|0);c[8341]=0;c[8340]=19752;if(!((c[8608]|0)==-1)){c[o>>2]=34432;c[o+4>>2]=16;c[o+8>>2]=0;mm(34432,o,114)}Pr(b,33360,(c[8609]|0)-1|0);c[8339]=0;c[8338]=19712;if(!((c[8606]|0)==-1)){c[n>>2]=34424;c[n+4>>2]=16;c[n+8>>2]=0;mm(34424,n,114)}Pr(b,33352,(c[8607]|0)-1|0);c[8337]=0;c[8336]=19672;if(!((c[8604]|0)==-1)){c[m>>2]=34416;c[m+4>>2]=16;c[m+8>>2]=0;mm(34416,m,114)}Pr(b,33344,(c[8605]|0)-1|0);c[8335]=0;c[8334]=19632;if(!((c[8602]|0)==-1)){c[l>>2]=34408;c[l+4>>2]=16;c[l+8>>2]=0;mm(34408,l,114)}Pr(b,33336,(c[8603]|0)-1|0);c[8355]=0;c[8354]=19952;c[8356]=2e4;if(!((c[8616]|0)==-1)){c[k>>2]=34464;c[k+4>>2]=16;c[k+8>>2]=0;mm(34464,k,114)}Pr(b,33416,(c[8617]|0)-1|0);c[8351]=0;c[8350]=19856;c[8352]=19904;if(!((c[8614]|0)==-1)){c[j>>2]=34456;c[j+4>>2]=16;c[j+8>>2]=0;mm(34456,j,114)}Pr(b,33400,(c[8615]|0)-1|0);c[8347]=0;c[8346]=20856;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}K=Xa(2147483647,14472,0)|0;c[8330]=K}}while(0);c[8348]=c[8330];c[8346]=19824;if(!((c[8612]|0)==-1)){c[g>>2]=34448;c[g+4>>2]=16;c[g+8>>2]=0;mm(34448,g,114)}Pr(b,33384,(c[8613]|0)-1|0);c[8343]=0;c[8342]=20856;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}K=Xa(2147483647,14472,0)|0;c[8330]=K}}while(0);c[8344]=c[8330];c[8342]=19792;if(!((c[8610]|0)==-1)){c[x>>2]=34440;c[x+4>>2]=16;c[x+8>>2]=0;mm(34440,x,114)}Pr(b,33368,(c[8611]|0)-1|0);c[8375]=0;c[8374]=20184;if(!((c[8624]|0)==-1)){c[f>>2]=34496;c[f+4>>2]=16;c[f+8>>2]=0;mm(34496,f,114)}Pr(b,33496,(c[8625]|0)-1|0);c[8373]=0;c[8372]=20144;if(!((c[8622]|0)==-1)){c[h>>2]=34488;c[h+4>>2]=16;c[h+8>>2]=0;mm(34488,h,114)}Pr(b,33488,(c[8623]|0)-1|0);i=C;return}function Pr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;Tl(b|0);f=a+8|0;e=a+12|0;g=c[e>>2]|0;a=f|0;h=c[a>>2]|0;i=g-h>>2;do{if(!(i>>>0>d>>>0)){j=d+1|0;if(i>>>0<j>>>0){Tt(f,j-i|0);h=c[a>>2]|0;break}if(!(i>>>0>j>>>0)){break}f=h+(j<<2)|0;if((g|0)==(f|0)){break}c[e>>2]=g+(~((g-4+(-f|0)|0)>>>2)<<2)}}while(0);e=c[h+(d<<2)>>2]|0;if((e|0)==0){j=h;j=j+(d<<2)|0;c[j>>2]=b;return}Ul(e|0)|0;j=c[a>>2]|0;j=j+(d<<2)|0;c[j>>2]=b;return}function Qr(a){a=a|0;Rr(a);Pu(a);return}function Rr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[b>>2]=20888;d=b+12|0;h=c[d>>2]|0;e=b+8|0;g=c[e>>2]|0;if((h|0)!=(g|0)){f=0;do{i=c[g+(f<<2)>>2]|0;if((i|0)!=0){Ul(i|0)|0;h=c[d>>2]|0;g=c[e>>2]|0}f=f+1|0;}while(f>>>0<h-g>>2>>>0)}rm(b+144|0);e=c[e>>2]|0;if((e|0)==0){i=b|0;Sl(i);return}f=c[d>>2]|0;if((f|0)!=(e|0)){c[d>>2]=f+(~((f-4+(-e|0)|0)>>>2)<<2)}if((b+24|0)==(e|0)){a[b+136|0]=0;i=b|0;Sl(i);return}else{Pu(e);i=b|0;Sl(i);return}}function Sr(){var b=0;if((a[51792]|0)!=0){b=c[8322]|0;return b|0}if((ub(51792)|0)==0){b=c[8322]|0;return b|0}do{if((a[51800]|0)==0){if((ub(51800)|0)==0){break}Or(33592,1);c[8326]=33592;c[8324]=33304}}while(0);b=c[c[8324]>>2]|0;c[8328]=b;Tl(b|0);c[8322]=33312;b=c[8322]|0;return b|0}function Tr(a){a=a|0;var b=0;b=Sr()|0;b=c[b>>2]|0;c[a>>2]=b;Tl(b|0);return}function Ur(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;Tl(b|0);return}function Vr(a){a=a|0;Ul(c[a>>2]|0)|0;return}function Wr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d|0;a=c[a>>2]|0;f=b|0;if(!((c[f>>2]|0)==-1)){c[e>>2]=b;c[e+4>>2]=16;c[e+8>>2]=0;mm(f,e,114)}e=(c[b+4>>2]|0)-1|0;b=c[a+8>>2]|0;if(!((c[a+12>>2]|0)-b>>2>>>0>e>>>0)){f=pc(4)|0;e=f;lu(e);Fb(f|0,25544,156)}a=c[b+(e<<2)>>2]|0;if((a|0)==0){f=pc(4)|0;e=f;lu(e);Fb(f|0,25544,156)}else{i=d;return a|0}return 0}function Xr(a){a=a|0;Sl(a|0);Pu(a);return}function Yr(a){a=a|0;if((a|0)==0){return}Dc[c[(c[a>>2]|0)+4>>2]&511](a);return}function Zr(a){a=a|0;c[a+4>>2]=(I=c[8646]|0,c[8646]=I+1,I)+1;return}function _r(a){a=a|0;Sl(a|0);Pu(a);return}function $r(a,d,e){a=a|0;d=d|0;e=e|0;if(!(e>>>0<128>>>0)){a=0;return a|0}a=ob()|0;a=(b[(c[a>>2]|0)+(e<<1)>>1]&d)<<16>>16!=0;return a|0}function as(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;if((d|0)==(e|0)){a=d;return a|0}while(1){a=c[d>>2]|0;if(a>>>0<128>>>0){g=ob()|0;a=b[(c[g>>2]|0)+(a<<1)>>1]|0}else{a=0}b[f>>1]=a;d=d+4|0;if((d|0)==(e|0)){break}else{f=f+2|0}}return e|0}function bs(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0;if((e|0)==(f|0)){a=e;return a|0}while(1){a=c[e>>2]|0;if(a>>>0<128>>>0){g=ob()|0;if(!((b[(c[g>>2]|0)+(a<<1)>>1]&d)<<16>>16==0)){f=e;d=7;break}}e=e+4|0;if((e|0)==(f|0)){d=7;break}}if((d|0)==7){return f|0}return 0}function cs(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;if((e|0)==(f|0)){g=e;return g|0}while(1){a=c[e>>2]|0;if(!(a>>>0<128>>>0)){f=e;d=7;break}h=ob()|0;g=e+4|0;if((b[(c[h>>2]|0)+(a<<1)>>1]&d)<<16>>16==0){f=e;d=7;break}if((g|0)==(f|0)){d=7;break}else{e=g}}if((d|0)==7){return f|0}return 0}function ds(a,b){a=a|0;b=b|0;if(!(b>>>0<128>>>0)){a=b;return a|0}a=tc()|0;a=c[(c[a>>2]|0)+(b<<2)>>2]|0;return a|0}function es(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0)){a=b;return a|0}do{a=c[b>>2]|0;if(a>>>0<128>>>0){e=tc()|0;a=c[(c[e>>2]|0)+(a<<2)>>2]|0}c[b>>2]=a;b=b+4|0;}while((b|0)!=(d|0));return d|0}function fs(a,b){a=a|0;b=b|0;if(!(b>>>0<128>>>0)){a=b;return a|0}a=uc()|0;a=c[(c[a>>2]|0)+(b<<2)>>2]|0;return a|0}function gs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0)){a=b;return a|0}do{a=c[b>>2]|0;if(a>>>0<128>>>0){e=uc()|0;a=c[(c[e>>2]|0)+(a<<2)>>2]|0}c[b>>2]=a;b=b+4|0;}while((b|0)!=(d|0));return d|0}function hs(a,b){a=a|0;b=b|0;return b<<24>>24|0}function is(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;if((d|0)==(e|0)){b=d;return b|0}while(1){c[f>>2]=a[d]|0;d=d+1|0;if((d|0)==(e|0)){break}else{f=f+4|0}}return e|0}function js(a,b,c){a=a|0;b=b|0;c=c|0;return(b>>>0<128>>>0?b&255:c)|0}function ks(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;if((d|0)==(e|0)){i=d;return i|0}b=((e-4+(-d|0)|0)>>>2)+1|0;h=d;while(1){i=c[h>>2]|0;a[g]=i>>>0<128>>>0?i&255:f;h=h+4|0;if((h|0)==(e|0)){break}else{g=g+1|0}}i=d+(b<<2)|0;return i|0}function ls(b){b=b|0;var d=0;c[b>>2]=21e3;d=c[b+8>>2]|0;do{if((d|0)!=0){if((a[b+12|0]|0)==0){break}Qu(d)}}while(0);Sl(b|0);Pu(b);return}function ms(b){b=b|0;var d=0;c[b>>2]=21e3;d=c[b+8>>2]|0;do{if((d|0)!=0){if((a[b+12|0]|0)==0){break}Qu(d)}}while(0);Sl(b|0);return}function ns(a,b){a=a|0;b=b|0;if(!(b<<24>>24>-1)){a=b;return a|0}a=tc()|0;a=c[(c[a>>2]|0)+((b&255)<<2)>>2]&255;return a|0}function os(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((d|0)==(e|0)){b=d;return b|0}do{b=a[d]|0;if(b<<24>>24>-1){f=tc()|0;b=c[(c[f>>2]|0)+(b<<24>>24<<2)>>2]&255}a[d]=b;d=d+1|0;}while((d|0)!=(e|0));return e|0}function ps(a,b){a=a|0;b=b|0;if(!(b<<24>>24>-1)){a=b;return a|0}a=uc()|0;a=c[(c[a>>2]|0)+(b<<24>>24<<2)>>2]&255;return a|0}function qs(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((d|0)==(e|0)){b=d;return b|0}do{b=a[d]|0;if(b<<24>>24>-1){f=uc()|0;b=c[(c[f>>2]|0)+(b<<24>>24<<2)>>2]&255}a[d]=b;d=d+1|0;}while((d|0)!=(e|0));return e|0}function rs(a,b){a=a|0;b=b|0;return b|0}function ss(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;if((c|0)==(d|0)){b=c;return b|0}while(1){a[e]=a[c]|0;c=c+1|0;if((c|0)==(d|0)){break}else{e=e+1|0}}return d|0}function ts(a,b,c){a=a|0;b=b|0;c=c|0;return(b<<24>>24>-1?b:c)|0}function us(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if((c|0)==(d|0)){b=c;return b|0}while(1){b=a[c]|0;a[f]=b<<24>>24>-1?b:e;c=c+1|0;if((c|0)==(d|0)){break}else{f=f+1|0}}return d|0}function vs(a){a=a|0;Sl(a|0);Pu(a);return}function ws(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function xs(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function ys(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function zs(a){a=a|0;return 1}function As(a){a=a|0;return 1}function Bs(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;c=d-c|0;return(c>>>0<e>>>0?c:e)|0}function Cs(a){a=a|0;return 1}function Ds(a){a=a|0;Mr(a);Pu(a);return}function Es(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=i;i=i+8|0;n=l|0;m=n;q=i;i=i+4|0;i=i+7&-8;o=(e|0)==(f|0);a:do{if(o){c[k>>2]=h;c[g>>2]=e}else{r=e;while(1){p=r+4|0;if((c[r>>2]|0)==0){break}if((p|0)==(f|0)){r=f;break}else{r=p}}c[k>>2]=h;c[g>>2]=e;if(o|(h|0)==(j|0)){break}o=d;p=j;b=b+8|0;q=q|0;while(1){s=c[o+4>>2]|0;c[n>>2]=c[o>>2];c[n+4>>2]=s;s=bc(c[b>>2]|0)|0;t=eu(h,g,r-e>>2,p-h|0,d)|0;if((s|0)!=0){bc(s|0)|0}if((t|0)==(-1|0)){d=16;break}else if((t|0)==0){g=1;d=51;break}h=(c[k>>2]|0)+t|0;c[k>>2]=h;if((h|0)==(j|0)){d=49;break}if((r|0)==(f|0)){r=f;e=c[g>>2]|0}else{h=bc(c[b>>2]|0)|0;e=du(q,0,d)|0;if((h|0)!=0){bc(h|0)|0}if((e|0)==-1){g=2;d=51;break}r=c[k>>2]|0;if(e>>>0>(p-r|0)>>>0){g=1;d=51;break}b:do{if((e|0)!=0){h=q;while(1){t=a[h]|0;c[k>>2]=r+1;a[r]=t;e=e-1|0;if((e|0)==0){break b}h=h+1|0;r=c[k>>2]|0}}}while(0);e=(c[g>>2]|0)+4|0;c[g>>2]=e;c:do{if((e|0)==(f|0)){r=f}else{r=e;while(1){h=r+4|0;if((c[r>>2]|0)==0){break c}if((h|0)==(f|0)){r=f;break}else{r=h}}}}while(0);h=c[k>>2]|0}if((e|0)==(f|0)|(h|0)==(j|0)){break a}}if((d|0)==16){c[k>>2]=h;d:do{if((e|0)!=(c[g>>2]|0)){do{d=c[e>>2]|0;f=bc(c[b>>2]|0)|0;d=du(h,d,m)|0;if((f|0)!=0){bc(f|0)|0}if((d|0)==-1){break d}h=(c[k>>2]|0)+d|0;c[k>>2]=h;e=e+4|0;}while((e|0)!=(c[g>>2]|0))}}while(0);c[g>>2]=e;t=2;i=l;return t|0}else if((d|0)==49){e=c[g>>2]|0;break}else if((d|0)==51){i=l;return g|0}}}while(0);t=(e|0)!=(f|0)|0;i=l;return t|0}function Fs(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;l=i;i=i+8|0;n=l|0;m=n;o=(e|0)==(f|0);a:do{if(o){c[k>>2]=h;c[g>>2]=e}else{r=e;while(1){p=r+1|0;if((a[r]|0)==0){break}if((p|0)==(f|0)){r=f;break}else{r=p}}c[k>>2]=h;c[g>>2]=e;if(o|(h|0)==(j|0)){break}p=d;o=j;b=b+8|0;while(1){q=c[p+4>>2]|0;c[n>>2]=c[p>>2];c[n+4>>2]=q;q=r;t=bc(c[b>>2]|0)|0;s=au(h,g,q-e|0,o-h>>2,d)|0;if((t|0)!=0){bc(t|0)|0}if((s|0)==(-1|0)){n=16;break}else if((s|0)==0){f=2;n=50;break}h=(c[k>>2]|0)+(s<<2)|0;c[k>>2]=h;if((h|0)==(j|0)){n=48;break}e=c[g>>2]|0;if((r|0)==(f|0)){r=f}else{q=bc(c[b>>2]|0)|0;h=$t(h,e,1,d)|0;if((q|0)!=0){bc(q|0)|0}if((h|0)!=0){f=2;n=50;break}c[k>>2]=(c[k>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;b:do{if((e|0)==(f|0)){r=f}else{r=e;while(1){q=r+1|0;if((a[r]|0)==0){break b}if((q|0)==(f|0)){r=f;break}else{r=q}}}}while(0);h=c[k>>2]|0}if((e|0)==(f|0)|(h|0)==(j|0)){break a}}if((n|0)==16){c[k>>2]=h;c:do{if((e|0)!=(c[g>>2]|0)){while(1){n=bc(c[b>>2]|0)|0;j=$t(h,e,q-e|0,m)|0;if((n|0)!=0){bc(n|0)|0}if((j|0)==0){e=e+1|0}else if((j|0)==(-1|0)){n=27;break}else if((j|0)==(-2|0)){n=28;break}else{e=e+j|0}h=(c[k>>2]|0)+4|0;c[k>>2]=h;if((e|0)==(c[g>>2]|0)){break c}}if((n|0)==27){c[g>>2]=e;t=2;i=l;return t|0}else if((n|0)==28){c[g>>2]=e;t=1;i=l;return t|0}}}while(0);c[g>>2]=e;t=(e|0)!=(f|0)|0;i=l;return t|0}else if((n|0)==48){e=c[g>>2]|0;break}else if((n|0)==50){i=l;return f|0}}}while(0);t=(e|0)!=(f|0)|0;i=l;return t|0}function Gs(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;i=i+8|0;c[g>>2]=e;e=h|0;b=bc(c[b+8>>2]|0)|0;d=du(e,0,d)|0;if((b|0)!=0){bc(b|0)|0}if((d|0)==(-1|0)|(d|0)==0){b=2;i=h;return b|0}b=d-1|0;d=c[g>>2]|0;if(b>>>0>(f-d|0)>>>0){b=1;i=h;return b|0}if((b|0)==0){b=0;i=h;return b|0}else{f=b}while(1){b=a[e]|0;c[g>>2]=d+1;a[d]=b;f=f-1|0;if((f|0)==0){g=0;break}e=e+1|0;d=c[g>>2]|0}i=h;return g|0}function Hs(a){a=a|0;var b=0,d=0;a=a+8|0;d=bc(c[a>>2]|0)|0;b=cu(0,0,4)|0;if((d|0)!=0){bc(d|0)|0}if((b|0)!=0){d=-1;return d|0}a=c[a>>2]|0;if((a|0)==0){d=1;return d|0}a=bc(a|0)|0;if((a|0)==0){d=0;return d|0}bc(a|0)|0;d=0;return d|0}function Is(a){a=a|0;return 0}function Js(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;if((f|0)==0|(d|0)==(e|0)){k=0;return k|0}g=e;a=a+8|0;i=0;h=0;while(1){k=bc(c[a>>2]|0)|0;j=_t(d,g-d|0,b)|0;if((k|0)!=0){bc(k|0)|0}if((j|0)==0){k=1;d=d+1|0}else if((j|0)==(-1|0)|(j|0)==(-2|0)){f=15;break}else{k=j;d=d+j|0}i=k+i|0;h=h+1|0;if(h>>>0>=f>>>0|(d|0)==(e|0)){f=15;break}}if((f|0)==15){return i|0}return 0}function Ks(a){a=a|0;a=c[a+8>>2]|0;if((a|0)==0){a=1;return a|0}a=bc(a|0)|0;if((a|0)==0){a=4;return a|0}bc(a|0)|0;a=4;return a|0}function Ls(a){a=a|0;Sl(a|0);Pu(a);return}function Ms(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;a=i;i=i+16|0;l=a|0;k=a+8|0;c[l>>2]=d;c[k>>2]=g;b=Ns(d,e,l,g,h,k,1114111,0)|0;c[f>>2]=d+((c[l>>2]|0)-d>>1<<1);c[j>>2]=g+((c[k>>2]|0)-g);i=a;return b|0}function Ns(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;c[g>>2]=d;c[j>>2]=h;do{if((l&2|0)!=0){if((i-h|0)<3){n=1;return n|0}else{c[j>>2]=h+1;a[h]=-17;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=-69;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=-65;break}}}while(0);h=f;m=c[g>>2]|0;if(!(m>>>0<f>>>0)){n=0;return n|0}a:while(1){d=b[m>>1]|0;l=d&65535;if(l>>>0>k>>>0){f=2;k=26;break}do{if((d&65535)>>>0<128>>>0){l=c[j>>2]|0;if((i-l|0)<1){f=1;k=26;break a}c[j>>2]=l+1;a[l]=d}else{if((d&65535)>>>0<2048>>>0){d=c[j>>2]|0;if((i-d|0)<2){f=1;k=26;break a}c[j>>2]=d+1;a[d]=l>>>6|192;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=l&63|128;break}if((d&65535)>>>0<55296>>>0){d=c[j>>2]|0;if((i-d|0)<3){f=1;k=26;break a}c[j>>2]=d+1;a[d]=l>>>12|224;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=l>>>6&63|128;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=l&63|128;break}if(!((d&65535)>>>0<56320>>>0)){if((d&65535)>>>0<57344>>>0){f=2;k=26;break a}d=c[j>>2]|0;if((i-d|0)<3){f=1;k=26;break a}c[j>>2]=d+1;a[d]=l>>>12|224;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=l>>>6&63|128;n=c[j>>2]|0;c[j>>2]=n+1;a[n]=l&63|128;break}if((h-m|0)<4){f=1;k=26;break a}d=m+2|0;n=e[d>>1]|0;if((n&64512|0)!=56320){f=2;k=26;break a}if((i-(c[j>>2]|0)|0)<4){f=1;k=26;break a}m=l&960;if(((m<<10)+65536|l<<10&64512|n&1023)>>>0>k>>>0){f=2;k=26;break a}c[g>>2]=d;d=(m>>>6)+1|0;m=c[j>>2]|0;c[j>>2]=m+1;a[m]=d>>>2|240;m=c[j>>2]|0;c[j>>2]=m+1;a[m]=l>>>2&15|d<<4&48|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m]=l<<4&48|n>>>6&15|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m]=n&63|128}}while(0);m=(c[g>>2]|0)+2|0;c[g>>2]=m;if(!(m>>>0<f>>>0)){f=0;k=26;break}}if((k|0)==26){return f|0}return 0}function Os(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;a=i;i=i+16|0;l=a|0;k=a+8|0;c[l>>2]=d;c[k>>2]=g;b=Ps(d,e,l,g,h,k,1114111,0)|0;c[f>>2]=d+((c[l>>2]|0)-d);c[j>>2]=g+((c[k>>2]|0)-g>>1<<1);i=a;return b|0}function Ps(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;c[g>>2]=e;c[j>>2]=h;n=c[g>>2]|0;do{if((l&4|0)!=0){if((f-n|0)<=2){break}if(!((a[n]|0)==-17)){break}if(!((a[n+1|0]|0)==-69)){break}if(!((a[n+2|0]|0)==-65)){break}n=n+3|0;c[g>>2]=n}}while(0);a:do{if(n>>>0<f>>>0){e=f;l=i;h=c[j>>2]|0;b:while(1){if(!(h>>>0<i>>>0)){break a}o=a[n]|0;m=o&255;if(m>>>0>k>>>0){f=2;k=41;break}do{if(o<<24>>24>-1){b[h>>1]=o&255;c[g>>2]=n+1}else{if((o&255)>>>0<194>>>0){f=2;k=41;break b}if((o&255)>>>0<224>>>0){if((e-n|0)<2){f=1;k=41;break b}o=d[n+1|0]|0;if((o&192|0)!=128){f=2;k=41;break b}m=o&63|m<<6&1984;if(m>>>0>k>>>0){f=2;k=41;break b}b[h>>1]=m;c[g>>2]=n+2;break}if((o&255)>>>0<240>>>0){if((e-n|0)<3){f=1;k=41;break b}o=a[n+1|0]|0;p=a[n+2|0]|0;if((m|0)==224){if(!((o&-32)<<24>>24==-96)){f=2;k=41;break b}}else if((m|0)==237){if(!((o&-32)<<24>>24==-128)){f=2;k=41;break b}}else{if(!((o&-64)<<24>>24==-128)){f=2;k=41;break b}}p=p&255;if((p&192|0)!=128){f=2;k=41;break b}m=(o&255)<<6&4032|m<<12|p&63;if((m&65535)>>>0>k>>>0){f=2;k=41;break b}b[h>>1]=m;c[g>>2]=n+3;break}if(!((o&255)>>>0<245>>>0)){f=2;k=41;break b}if((e-n|0)<4){f=1;k=41;break b}o=a[n+1|0]|0;p=a[n+2|0]|0;q=a[n+3|0]|0;if((m|0)==240){if(!((o+112&255)>>>0<48>>>0)){f=2;k=41;break b}}else if((m|0)==244){if(!((o&-16)<<24>>24==-128)){f=2;k=41;break b}}else{if(!((o&-64)<<24>>24==-128)){f=2;k=41;break b}}n=p&255;if((n&192|0)!=128){f=2;k=41;break b}p=q&255;if((p&192|0)!=128){f=2;k=41;break b}if((l-h|0)<4){f=1;k=41;break b}m=m&7;q=o&255;o=n<<6;p=p&63;if((q<<12&258048|m<<18|o&4032|p)>>>0>k>>>0){f=2;k=41;break b}b[h>>1]=q<<2&60|n>>>4&3|((q>>>4&3|m<<2)<<6)+16320|55296;q=h+2|0;c[j>>2]=q;b[q>>1]=p|o&960|56320;c[g>>2]=(c[g>>2]|0)+4}}while(0);h=(c[j>>2]|0)+2|0;c[j>>2]=h;n=c[g>>2]|0;if(!(n>>>0<f>>>0)){break a}}if((k|0)==41){return f|0}}}while(0);q=n>>>0<f>>>0|0;return q|0}function Qs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function Rs(a){a=a|0;return 0}function Ss(a){a=a|0;return 0}function Ts(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Us(c,d,e,1114111,0)|0}function Us(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;do{if((g&4|0)==0){i=b}else{if((c-b|0)<=2){i=b;break}if(!((a[b]|0)==-17)){i=b;break}if(!((a[b+1|0]|0)==-69)){i=b;break}i=(a[b+2|0]|0)==-65?b+3|0:b}}while(0);a:do{if(i>>>0<c>>>0&(e|0)!=0){g=c;h=0;b:while(1){k=a[i]|0;j=k&255;if(j>>>0>f>>>0){break a}do{if(k<<24>>24>-1){i=i+1|0}else{if((k&255)>>>0<194>>>0){break a}if((k&255)>>>0<224>>>0){if((g-i|0)<2){break a}k=d[i+1|0]|0;if((k&192|0)!=128){break a}if((k&63|j<<6&1984)>>>0>f>>>0){break a}i=i+2|0;break}if((k&255)>>>0<240>>>0){l=i;if((g-l|0)<3){break a}k=a[i+1|0]|0;m=a[i+2|0]|0;if((j|0)==237){if(!((k&-32)<<24>>24==-128)){f=23;break b}}else if((j|0)==224){if(!((k&-32)<<24>>24==-96)){f=21;break b}}else{if(!((k&-64)<<24>>24==-128)){f=25;break b}}l=m&255;if((l&192|0)!=128){break a}if(((k&255)<<6&4032|j<<12&61440|l&63)>>>0>f>>>0){break a}i=i+3|0;break}if(!((k&255)>>>0<245>>>0)){break a}m=i;if((g-m|0)<4){break a}if((e-h|0)>>>0<2>>>0){break a}k=a[i+1|0]|0;n=a[i+2|0]|0;l=a[i+3|0]|0;if((j|0)==240){if(!((k+112&255)>>>0<48>>>0)){f=34;break b}}else if((j|0)==244){if(!((k&-16)<<24>>24==-128)){f=36;break b}}else{if(!((k&-64)<<24>>24==-128)){f=38;break b}}m=n&255;if((m&192|0)!=128){break a}l=l&255;if((l&192|0)!=128){break a}if(((k&255)<<12&258048|j<<18&1835008|m<<6&4032|l&63)>>>0>f>>>0){break a}i=i+4|0;h=h+1|0}}while(0);h=h+1|0;if(!(i>>>0<c>>>0&h>>>0<e>>>0)){break a}}if((f|0)==21){n=l-b|0;return n|0}else if((f|0)==23){n=l-b|0;return n|0}else if((f|0)==25){n=l-b|0;return n|0}else if((f|0)==34){n=m-b|0;return n|0}else if((f|0)==36){n=m-b|0;return n|0}else if((f|0)==38){n=m-b|0;return n|0}}}while(0);n=i-b|0;return n|0}function Vs(a){a=a|0;return 4}function Ws(a){a=a|0;Sl(a|0);Pu(a);return}function Xs(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;a=i;i=i+16|0;l=a|0;k=a+8|0;c[l>>2]=d;c[k>>2]=g;b=Ys(d,e,l,g,h,k,1114111,0)|0;c[f>>2]=d+((c[l>>2]|0)-d>>2<<2);c[j>>2]=g+((c[k>>2]|0)-g);i=a;return b|0} - - - -function _o(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+40|0;h=g|0;k=g+16|0;j=g+32|0;Lm(j,b);b=j|0;j=c[b>>2]|0;if(!((c[8714]|0)==-1)){c[k>>2]=34856;c[k+4>>2]=16;c[k+8>>2]=0;mm(34856,k,114)}k=(c[8715]|0)-1|0;l=c[j+8>>2]|0;do{if((c[j+12>>2]|0)-l>>2>>>0>k>>>0){j=c[l+(k<<2)>>2]|0;if((j|0)==0){break}Sc[c[(c[j>>2]|0)+48>>2]&15](j,27208,27240,d)|0;d=c[b>>2]|0;if(!((c[8618]|0)==-1)){c[h>>2]=34472;c[h+4>>2]=16;c[h+8>>2]=0;mm(34472,h,114)}h=(c[8619]|0)-1|0;j=c[d+8>>2]|0;do{if((c[d+12>>2]|0)-j>>2>>>0>h>>>0){h=c[j+(h<<2)>>2]|0;if((h|0)==0){break}l=h;k=h;j=Fc[c[(c[k>>2]|0)+12>>2]&255](l)|0;c[e>>2]=j;k=Fc[c[(c[k>>2]|0)+16>>2]&255](l)|0;c[f>>2]=k;Ec[c[(c[h>>2]|0)+20>>2]&127](a,l);Ul(c[b>>2]|0)|0;i=g;return}}while(0);l=pc(4)|0;lu(l);Fb(l|0,25544,156)}}while(0);l=pc(4)|0;lu(l);Fb(l|0,25544,156)}function $o(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0;if((b|0)==(h|0)){if((a[d]|0)==0){o=-1;return o|0}a[d]=0;o=c[g>>2]|0;c[g>>2]=o+1;a[o]=46;g=a[j]|0;if((g&1)==0){g=(g&255)>>>1}else{g=c[j+4>>2]|0}if((g|0)==0){o=0;return o|0}g=c[l>>2]|0;if((g-k|0)>=160){o=0;return o|0}o=c[m>>2]|0;c[l>>2]=g+4;c[g>>2]=o;o=0;return o|0}do{if((b|0)==(i|0)){h=a[j]|0;if((h&1)==0){h=(h&255)>>>1}else{h=c[j+4>>2]|0}if((h|0)==0){break}if((a[d]|0)==0){o=-1;return o|0}g=c[l>>2]|0;if((g-k|0)>=160){o=0;return o|0}o=c[m>>2]|0;c[l>>2]=g+4;c[g>>2]=o;c[m>>2]=0;o=0;return o|0}}while(0);i=n+128|0;o=n;while(1){h=o+4|0;if((c[o>>2]|0)==(b|0)){i=o;break}if((h|0)==(i|0)){break}else{o=h}}b=i-n|0;h=b>>2;if((b|0)>124){o=-1;return o|0}n=a[27208+h|0]|0;do{if((h|0)==25|(h|0)==24){m=c[g>>2]|0;do{if((m|0)!=(f|0)){if((a[m-1|0]&95|0)==(a[e]&127|0)){break}else{m=-1}return m|0}}while(0);c[g>>2]=m+1;a[m]=n;o=0;return o|0}else if((h|0)==22|(h|0)==23){a[e]=80}else{f=a[e]|0;if((n&95|0)!=(f<<24>>24|0)){break}a[e]=f|-128;if((a[d]|0)==0){break}a[d]=0;e=a[j]|0;if((e&1)==0){j=(e&255)>>>1}else{j=c[j+4>>2]|0}if((j|0)==0){break}j=c[l>>2]|0;if((j-k|0)>=160){break}o=c[m>>2]|0;c[l>>2]=j+4;c[j>>2]=o}}while(0);o=c[g>>2]|0;c[g>>2]=o+1;a[o]=n;if((b|0)>84){o=0;return o|0}c[m>>2]=(c[m>>2]|0)+1;o=0;return o|0}function ap(a){a=a|0;Sl(a|0);Pu(a);return}function bp(a){a=a|0;Sl(a|0);return}function cp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;i=i+48|0;l=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[l>>2];l=j|0;m=j+16|0;n=j+24|0;k=j+32|0;if((c[f+4>>2]&1|0)==0){p=c[(c[d>>2]|0)+24>>2]|0;c[m>>2]=c[e>>2];Kc[p&63](b,d,m,f,g,h&1);i=j;return}Lm(n,f);f=n|0;d=c[f>>2]|0;if(!((c[8620]|0)==-1)){c[l>>2]=34480;c[l+4>>2]=16;c[l+8>>2]=0;mm(34480,l,114)}l=(c[8621]|0)-1|0;m=c[d+8>>2]|0;do{if((c[d+12>>2]|0)-m>>2>>>0>l>>>0){d=c[m+(l<<2)>>2]|0;if((d|0)==0){break}l=d;Ul(c[f>>2]|0)|0;f=c[d>>2]|0;if(h){Ec[c[f+24>>2]&127](k,l)}else{Ec[c[f+28>>2]&127](k,l)}f=k;g=a[f]|0;if((g&1)==0){l=k+1|0;m=l;h=k+8|0}else{h=k+8|0;m=c[h>>2]|0;l=k+1|0}d=e|0;e=k+4|0;while(1){if((g&1)==0){n=(g&255)>>>1;g=l}else{n=c[e>>2]|0;g=c[h>>2]|0}if((m|0)==(g+n|0)){break}g=a[m]|0;p=c[d>>2]|0;do{if((p|0)!=0){o=p+24|0;n=c[o>>2]|0;if((n|0)!=(c[p+28>>2]|0)){c[o>>2]=n+1;a[n]=g;break}if(!((Qc[c[(c[p>>2]|0)+52>>2]&63](p,g&255)|0)==-1)){break}c[d>>2]=0}}while(0);m=m+1|0;g=a[f]|0}c[b>>2]=c[d>>2];rm(k);i=j;return}}while(0);p=pc(4)|0;lu(p);Fb(p|0,25544,156)}function dp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;m=i;i=i+80|0;u=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[u>>2];u=m|0;p=m+8|0;o=m+24|0;n=m+48|0;k=m+56|0;d=m+64|0;l=m+72|0;r=u|0;a[r]=a[19432]|0;a[r+1|0]=a[19433]|0;a[r+2|0]=a[19434]|0;a[r+3|0]=a[19435]|0;a[r+4|0]=a[19436]|0;a[r+5|0]=a[19437]|0;t=u+1|0;q=f+4|0;s=c[q>>2]|0;if((s&2048|0)!=0){a[t]=43;t=u+2|0}if((s&512|0)!=0){a[t]=35;t=t+1|0}a[t]=108;t=t+1|0;u=s&74;do{if((u|0)==64){a[t]=111}else if((u|0)==8){if((s&16384|0)==0){a[t]=120;break}else{a[t]=88;break}}else{a[t]=100}}while(0);s=p|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}u=Xa(2147483647,14472,0)|0;c[8330]=u}}while(0);r=ep(s,12,c[8330]|0,r,(u=i,i=i+8|0,c[u>>2]=h,u)|0)|0;i=u;h=p+r|0;q=c[q>>2]&176;do{if((q|0)==32){p=h}else if((q|0)==16){q=a[s]|0;if((q<<24>>24|0)==45|(q<<24>>24|0)==43){p=p+1|0;break}if(!((r|0)>1&q<<24>>24==48)){j=22;break}u=a[p+1|0]|0;if(!((u<<24>>24|0)==120|(u<<24>>24|0)==88)){j=22;break}p=p+2|0}else{j=22}}while(0);if((j|0)==22){p=s}u=o|0;Lm(d,f);fp(s,p,h,u,n,k,d);Ul(c[d>>2]|0)|0;c[l>>2]=c[e>>2];Bd(b,l,u,c[n>>2]|0,c[k>>2]|0,f,g);i=m;return}function ep(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;g=i;i=i+16|0;h=g|0;j=h;c[j>>2]=f;c[j+4>>2]=0;d=bc(d|0)|0;e=cc(a|0,b|0,e|0,h|0)|0;if((d|0)==0){i=g;return e|0}bc(d|0)|0;i=g;return e|0}function fp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;l=i;i=i+48|0;m=l|0;o=l+16|0;k=l+32|0;n=j|0;j=c[n>>2]|0;if(!((c[8716]|0)==-1)){c[o>>2]=34864;c[o+4>>2]=16;c[o+8>>2]=0;mm(34864,o,114)}p=(c[8717]|0)-1|0;o=c[j+8>>2]|0;if(!((c[j+12>>2]|0)-o>>2>>>0>p>>>0)){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}o=c[o+(p<<2)>>2]|0;if((o|0)==0){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}j=o;n=c[n>>2]|0;if(!((c[8620]|0)==-1)){c[m>>2]=34480;c[m+4>>2]=16;c[m+8>>2]=0;mm(34480,m,114)}m=(c[8621]|0)-1|0;p=c[n+8>>2]|0;if(!((c[n+12>>2]|0)-p>>2>>>0>m>>>0)){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}q=c[p+(m<<2)>>2]|0;if((q|0)==0){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}p=q;Ec[c[(c[q>>2]|0)+20>>2]&127](k,p);m=k;n=a[m]|0;if((n&1)==0){n=(n&255)>>>1}else{n=c[k+4>>2]|0}do{if((n|0)==0){Sc[c[(c[o>>2]|0)+32>>2]&15](j,b,e,f)|0;c[h>>2]=f+(e-b)}else{c[h>>2]=f;n=a[b]|0;if((n<<24>>24|0)==45|(n<<24>>24|0)==43){w=Qc[c[(c[o>>2]|0)+28>>2]&63](j,n)|0;n=c[h>>2]|0;c[h>>2]=n+1;a[n]=w;n=b+1|0}else{n=b}do{if((e-n|0)>1){if((a[n]|0)!=48){break}r=n+1|0;w=a[r]|0;if(!((w<<24>>24|0)==120|(w<<24>>24|0)==88)){break}v=o;u=Qc[c[(c[v>>2]|0)+28>>2]&63](j,48)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w]=u;v=Qc[c[(c[v>>2]|0)+28>>2]&63](j,a[r]|0)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w]=v;n=n+2|0}}while(0);do{if((n|0)!=(e|0)){s=e-1|0;if(s>>>0>n>>>0){r=n}else{break}do{w=a[r]|0;a[r]=a[s]|0;a[s]=w;r=r+1|0;s=s-1|0;}while(r>>>0<s>>>0)}}while(0);q=Fc[c[(c[q>>2]|0)+16>>2]&255](p)|0;if(n>>>0<e>>>0){p=k+1|0;r=k+4|0;s=k+8|0;v=0;u=0;t=n;while(1){w=(a[m]&1)==0;do{if((a[(w?p:c[s>>2]|0)+u|0]|0)!=0){if((v|0)!=(a[(w?p:c[s>>2]|0)+u|0]|0)){break}v=c[h>>2]|0;c[h>>2]=v+1;a[v]=q;v=a[m]|0;if((v&1)==0){v=(v&255)>>>1}else{v=c[r>>2]|0}u=(u>>>0<(v-1|0)>>>0)+u|0;v=0}}while(0);x=Qc[c[(c[o>>2]|0)+28>>2]&63](j,a[t]|0)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w]=x;t=t+1|0;if(t>>>0<e>>>0){v=v+1|0}else{break}}}j=f+(n-b)|0;m=c[h>>2]|0;if((j|0)==(m|0)){break}m=m-1|0;if(!(m>>>0>j>>>0)){break}do{x=a[j]|0;a[j]=a[m]|0;a[m]=x;j=j+1|0;m=m-1|0;}while(j>>>0<m>>>0)}}while(0);if((d|0)==(e|0)){x=c[h>>2]|0;c[g>>2]=x;rm(k);i=l;return}else{x=f+(d-b)|0;c[g>>2]=x;rm(k);i=l;return}}function gp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=i;i=i+112|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=n|0;q=n+8|0;p=n+32|0;o=n+80|0;l=n+88|0;d=n+96|0;m=n+104|0;c[s>>2]=37;c[s+4>>2]=0;u=s+1|0;r=f+4|0;t=c[r>>2]|0;if((t&2048|0)!=0){a[u]=43;u=s+2|0}if((t&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;a[u+1|0]=108;u=u+2|0;v=t&74;do{if((v|0)==64){a[u]=111}else if((v|0)==8){if((t&16384|0)==0){a[u]=120;break}else{a[u]=88;break}}else{a[u]=100}}while(0);t=q|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}v=Xa(2147483647,14472,0)|0;c[8330]=v}}while(0);j=ep(t,22,c[8330]|0,s,(v=i,i=i+16|0,c[v>>2]=h,c[v+8>>2]=j,v)|0)|0;i=v;h=q+j|0;r=c[r>>2]&176;do{if((r|0)==32){q=h}else if((r|0)==16){r=a[t]|0;if((r<<24>>24|0)==45|(r<<24>>24|0)==43){q=q+1|0;break}if(!((j|0)>1&r<<24>>24==48)){k=22;break}v=a[q+1|0]|0;if(!((v<<24>>24|0)==120|(v<<24>>24|0)==88)){k=22;break}q=q+2|0}else{k=22}}while(0);if((k|0)==22){q=t}v=p|0;Lm(d,f);fp(t,q,h,v,o,l,d);Ul(c[d>>2]|0)|0;c[m>>2]=c[e>>2];Bd(b,m,v,c[o>>2]|0,c[l>>2]|0,f,g);i=n;return}function hp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;m=i;i=i+80|0;t=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[t>>2];t=m|0;p=m+8|0;o=m+24|0;n=m+48|0;k=m+56|0;d=m+64|0;l=m+72|0;r=t|0;a[r]=a[19432]|0;a[r+1|0]=a[19433]|0;a[r+2|0]=a[19434]|0;a[r+3|0]=a[19435]|0;a[r+4|0]=a[19436]|0;a[r+5|0]=a[19437]|0;u=t+1|0;q=f+4|0;s=c[q>>2]|0;if((s&2048|0)!=0){a[u]=43;u=t+2|0}if((s&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;u=u+1|0;t=s&74;do{if((t|0)==64){a[u]=111}else if((t|0)==8){if((s&16384|0)==0){a[u]=120;break}else{a[u]=88;break}}else{a[u]=117}}while(0);s=p|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}u=Xa(2147483647,14472,0)|0;c[8330]=u}}while(0);r=ep(s,12,c[8330]|0,r,(u=i,i=i+8|0,c[u>>2]=h,u)|0)|0;i=u;h=p+r|0;q=c[q>>2]&176;do{if((q|0)==16){q=a[s]|0;if((q<<24>>24|0)==45|(q<<24>>24|0)==43){p=p+1|0;break}if(!((r|0)>1&q<<24>>24==48)){j=22;break}u=a[p+1|0]|0;if(!((u<<24>>24|0)==120|(u<<24>>24|0)==88)){j=22;break}p=p+2|0}else if((q|0)==32){p=h}else{j=22}}while(0);if((j|0)==22){p=s}u=o|0;Lm(d,f);fp(s,p,h,u,n,k,d);Ul(c[d>>2]|0)|0;c[l>>2]=c[e>>2];Bd(b,l,u,c[n>>2]|0,c[k>>2]|0,f,g);i=m;return}function ip(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=i;i=i+112|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=n|0;q=n+8|0;p=n+32|0;o=n+80|0;l=n+88|0;d=n+96|0;m=n+104|0;c[s>>2]=37;c[s+4>>2]=0;u=s+1|0;r=f+4|0;t=c[r>>2]|0;if((t&2048|0)!=0){a[u]=43;u=s+2|0}if((t&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;a[u+1|0]=108;v=u+2|0;u=t&74;do{if((u|0)==64){a[v]=111}else if((u|0)==8){if((t&16384|0)==0){a[v]=120;break}else{a[v]=88;break}}else{a[v]=117}}while(0);t=q|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}v=Xa(2147483647,14472,0)|0;c[8330]=v}}while(0);j=ep(t,23,c[8330]|0,s,(v=i,i=i+16|0,c[v>>2]=h,c[v+8>>2]=j,v)|0)|0;i=v;h=q+j|0;r=c[r>>2]&176;do{if((r|0)==16){r=a[t]|0;if((r<<24>>24|0)==45|(r<<24>>24|0)==43){q=q+1|0;break}if(!((j|0)>1&r<<24>>24==48)){k=22;break}v=a[q+1|0]|0;if(!((v<<24>>24|0)==120|(v<<24>>24|0)==88)){k=22;break}q=q+2|0}else if((r|0)==32){q=h}else{k=22}}while(0);if((k|0)==22){q=t}v=p|0;Lm(d,f);fp(t,q,h,v,o,l,d);Ul(c[d>>2]|0)|0;c[m>>2]=c[e>>2];Bd(b,m,v,c[o>>2]|0,c[l>>2]|0,f,g);i=n;return}function jp(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=i;i=i+152|0;u=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[u>>2];u=k|0;t=k+8|0;p=k+40|0;r=k+48|0;n=k+112|0;d=k+120|0;m=k+128|0;l=k+136|0;o=k+144|0;c[u>>2]=37;c[u+4>>2]=0;w=u+1|0;s=f+4|0;x=c[s>>2]|0;if((x&2048|0)!=0){a[w]=43;w=u+2|0}if((x&1024|0)!=0){a[w]=35;w=w+1|0}v=x&260;y=x>>>14;do{if((v|0)==260){if((y&1|0)==0){a[w]=97;v=0;break}else{a[w]=65;v=0;break}}else{a[w]=46;x=w+2|0;a[w+1|0]=42;if((v|0)==4){if((y&1|0)==0){a[x]=102;v=1;break}else{a[x]=70;v=1;break}}else if((v|0)==256){if((y&1|0)==0){a[x]=101;v=1;break}else{a[x]=69;v=1;break}}else{if((y&1|0)==0){a[x]=103;v=1;break}else{a[x]=71;v=1;break}}}}while(0);t=t|0;c[p>>2]=t;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);w=c[8330]|0;if(v){x=ep(t,30,w,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}else{x=ep(t,30,w,u,(y=i,i=i+8|0,h[y>>3]=j,y)|0)|0;i=y}do{if((x|0)>29){w=(a[51808]|0)==0;if(v){do{if(w){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);x=kp(p,c[8330]|0,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}else{do{if(w){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);x=kp(p,c[8330]|0,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}v=c[p>>2]|0;if((v|0)!=0){u=v;w=v;break}Uu();w=c[p>>2]|0;u=w}else{u=0;w=c[p>>2]|0}}while(0);v=w+x|0;s=c[s>>2]&176;do{if((s|0)==32){s=v}else if((s|0)==16){s=a[w]|0;if((s<<24>>24|0)==45|(s<<24>>24|0)==43){s=w+1|0;break}if(!((x|0)>1&s<<24>>24==48)){q=53;break}y=a[w+1|0]|0;if(!((y<<24>>24|0)==120|(y<<24>>24|0)==88)){q=53;break}s=w+2|0}else{q=53}}while(0);if((q|0)==53){s=w}do{if((w|0)==(t|0)){q=r|0;r=0}else{r=Gu(x<<1)|0;if((r|0)!=0){q=r;t=w;break}Uu();q=0;r=0;t=c[p>>2]|0}}while(0);Lm(m,f);lp(t,s,v,q,n,d,m);Ul(c[m>>2]|0)|0;x=e|0;c[o>>2]=c[x>>2];Bd(l,o,q,c[n>>2]|0,c[d>>2]|0,f,g);y=c[l>>2]|0;c[x>>2]=y;c[b>>2]=y;if((r|0)!=0){Hu(r)}if((u|0)==0){i=k;return}Hu(u);i=k;return}function kp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f|0;h=g;c[h>>2]=e;c[h+4>>2]=0;b=bc(b|0)|0;d=rc(a|0,d|0,g|0)|0;if((b|0)==0){i=f;return d|0}bc(b|0)|0;i=f;return d|0}function lp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;l=i;i=i+48|0;n=l|0;m=l+16|0;k=l+32|0;o=j|0;j=c[o>>2]|0;if(!((c[8716]|0)==-1)){c[m>>2]=34864;c[m+4>>2]=16;c[m+8>>2]=0;mm(34864,m,114)}p=(c[8717]|0)-1|0;m=c[j+8>>2]|0;if(!((c[j+12>>2]|0)-m>>2>>>0>p>>>0)){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}m=c[m+(p<<2)>>2]|0;if((m|0)==0){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}j=m;o=c[o>>2]|0;if(!((c[8620]|0)==-1)){c[n>>2]=34480;c[n+4>>2]=16;c[n+8>>2]=0;mm(34480,n,114)}n=(c[8621]|0)-1|0;p=c[o+8>>2]|0;if(!((c[o+12>>2]|0)-p>>2>>>0>n>>>0)){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}p=c[p+(n<<2)>>2]|0;if((p|0)==0){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}o=p;Ec[c[(c[p>>2]|0)+20>>2]&127](k,o);c[h>>2]=f;n=a[b]|0;if((n<<24>>24|0)==45|(n<<24>>24|0)==43){B=Qc[c[(c[m>>2]|0)+28>>2]&63](j,n)|0;t=c[h>>2]|0;c[h>>2]=t+1;a[t]=B;t=b+1|0}else{t=b}n=e;a:do{if((n-t|0)>1){if((a[t]|0)!=48){s=21;break}q=t+1|0;B=a[q]|0;if(!((B<<24>>24|0)==120|(B<<24>>24|0)==88)){s=21;break}A=m;z=Qc[c[(c[A>>2]|0)+28>>2]&63](j,48)|0;B=c[h>>2]|0;c[h>>2]=B+1;a[B]=z;t=t+2|0;A=Qc[c[(c[A>>2]|0)+28>>2]&63](j,a[q]|0)|0;B=c[h>>2]|0;c[h>>2]=B+1;a[B]=A;if(t>>>0<e>>>0){q=t}else{r=t;q=t;break}while(1){r=a[q]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}B=Xa(2147483647,14472,0)|0;c[8330]=B}}while(0);u=q+1|0;if((Ua(r<<24>>24|0,c[8330]|0)|0)==0){r=t;break a}if(u>>>0<e>>>0){q=u}else{r=t;q=u;break}}}else{s=21}}while(0);b:do{if((s|0)==21){if(t>>>0<e>>>0){q=t}else{r=t;q=t;break}while(1){r=a[q]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}B=Xa(2147483647,14472,0)|0;c[8330]=B}}while(0);s=q+1|0;if((ib(r<<24>>24|0,c[8330]|0)|0)==0){r=t;break b}if(s>>>0<e>>>0){q=s}else{r=t;q=s;break}}}}while(0);s=k;t=a[s]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[k+4>>2]|0}do{if((t|0)==0){Sc[c[(c[m>>2]|0)+32>>2]&15](j,r,q,c[h>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(q-r)}else{do{if((r|0)!=(q|0)){u=q-1|0;if(u>>>0>r>>>0){t=r}else{break}do{B=a[t]|0;a[t]=a[u]|0;a[u]=B;t=t+1|0;u=u-1|0;}while(t>>>0<u>>>0)}}while(0);t=Fc[c[(c[p>>2]|0)+16>>2]&255](o)|0;if(r>>>0<q>>>0){w=k+1|0;v=k+4|0;x=k+8|0;u=m;A=0;z=0;y=r;while(1){B=(a[s]&1)==0;do{if((a[(B?w:c[x>>2]|0)+z|0]|0)>0){if((A|0)!=(a[(B?w:c[x>>2]|0)+z|0]|0)){break}A=c[h>>2]|0;c[h>>2]=A+1;a[A]=t;A=a[s]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[v>>2]|0}z=(z>>>0<(A-1|0)>>>0)+z|0;A=0}}while(0);C=Qc[c[(c[u>>2]|0)+28>>2]&63](j,a[y]|0)|0;B=c[h>>2]|0;c[h>>2]=B+1;a[B]=C;y=y+1|0;if(y>>>0<q>>>0){A=A+1|0}else{break}}}s=f+(r-b)|0;r=c[h>>2]|0;if((s|0)==(r|0)){break}r=r-1|0;if(!(r>>>0>s>>>0)){break}do{C=a[s]|0;a[s]=a[r]|0;a[r]=C;s=s+1|0;r=r-1|0;}while(s>>>0<r>>>0)}}while(0);c:do{if(q>>>0<e>>>0){r=m;while(1){s=a[q]|0;if(s<<24>>24==46){break}B=Qc[c[(c[r>>2]|0)+28>>2]&63](j,s)|0;C=c[h>>2]|0;c[h>>2]=C+1;a[C]=B;q=q+1|0;if(!(q>>>0<e>>>0)){break c}}B=Fc[c[(c[p>>2]|0)+12>>2]&255](o)|0;C=c[h>>2]|0;c[h>>2]=C+1;a[C]=B;q=q+1|0}}while(0);Sc[c[(c[m>>2]|0)+32>>2]&15](j,q,e,c[h>>2]|0)|0;j=(c[h>>2]|0)+(n-q)|0;c[h>>2]=j;if((d|0)==(e|0)){C=j;c[g>>2]=C;rm(k);i=l;return}C=f+(d-b)|0;c[g>>2]=C;rm(k);i=l;return}function mp(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;i=i+152|0;u=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[u>>2];u=m|0;t=m+8|0;p=m+40|0;r=m+48|0;o=m+112|0;d=m+120|0;n=m+128|0;l=m+136|0;k=m+144|0;c[u>>2]=37;c[u+4>>2]=0;x=u+1|0;s=f+4|0;w=c[s>>2]|0;if((w&2048|0)!=0){a[x]=43;x=u+2|0}if((w&1024|0)!=0){a[x]=35;x=x+1|0}v=w&260;w=w>>>14;do{if((v|0)==260){a[x]=76;v=x+1|0;if((w&1|0)==0){a[v]=97;v=0;break}else{a[v]=65;v=0;break}}else{a[x]=46;a[x+1|0]=42;a[x+2|0]=76;x=x+3|0;if((v|0)==4){if((w&1|0)==0){a[x]=102;v=1;break}else{a[x]=70;v=1;break}}else if((v|0)==256){if((w&1|0)==0){a[x]=101;v=1;break}else{a[x]=69;v=1;break}}else{if((w&1|0)==0){a[x]=103;v=1;break}else{a[x]=71;v=1;break}}}}while(0);t=t|0;c[p>>2]=t;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);w=c[8330]|0;if(v){x=ep(t,30,w,u,(w=i,i=i+16|0,c[w>>2]=c[f+8>>2],h[w+8>>3]=j,w)|0)|0;i=w}else{x=ep(t,30,w,u,(w=i,i=i+8|0,h[w>>3]=j,w)|0)|0;i=w}do{if((x|0)>29){w=(a[51808]|0)==0;if(v){do{if(w){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);x=kp(p,c[8330]|0,u,(w=i,i=i+16|0,c[w>>2]=c[f+8>>2],h[w+8>>3]=j,w)|0)|0;i=w}else{do{if(w){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);x=kp(p,c[8330]|0,u,(w=i,i=i+8|0,h[w>>3]=j,w)|0)|0;i=w}v=c[p>>2]|0;if((v|0)!=0){u=v;w=v;break}Uu();w=c[p>>2]|0;u=w}else{u=0;w=c[p>>2]|0}}while(0);v=w+x|0;s=c[s>>2]&176;do{if((s|0)==16){s=a[w]|0;if((s<<24>>24|0)==45|(s<<24>>24|0)==43){s=w+1|0;break}if(!((x|0)>1&s<<24>>24==48)){q=53;break}s=a[w+1|0]|0;if(!((s<<24>>24|0)==120|(s<<24>>24|0)==88)){q=53;break}s=w+2|0}else if((s|0)==32){s=v}else{q=53}}while(0);if((q|0)==53){s=w}do{if((w|0)==(t|0)){q=r|0;r=0}else{r=Gu(x<<1)|0;if((r|0)!=0){q=r;t=w;break}Uu();q=0;r=0;t=c[p>>2]|0}}while(0);Lm(n,f);lp(t,s,v,q,o,d,n);Ul(c[n>>2]|0)|0;w=e|0;c[k>>2]=c[w>>2];Bd(l,k,q,c[o>>2]|0,c[d>>2]|0,f,g);x=c[l>>2]|0;c[w>>2]=x;c[b>>2]=x;if((r|0)!=0){Hu(r)}if((u|0)==0){i=m;return}Hu(u);i=m;return}function np(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=i;i=i+104|0;p=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[p>>2];p=j|0;l=j+24|0;k=j+48|0;r=j+88|0;d=j+96|0;n=j+16|0;a[n]=a[19440]|0;a[n+1|0]=a[19441]|0;a[n+2|0]=a[19442]|0;a[n+3|0]=a[19443]|0;a[n+4|0]=a[19444]|0;a[n+5|0]=a[19445]|0;m=l|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}t=Xa(2147483647,14472,0)|0;c[8330]=t}}while(0);n=ep(m,20,c[8330]|0,n,(o=i,i=i+8|0,c[o>>2]=h,o)|0)|0;i=o;h=l+n|0;o=c[f+4>>2]&176;do{if((o|0)==16){o=a[m]|0;if((o<<24>>24|0)==45|(o<<24>>24|0)==43){o=l+1|0;break}if(!((n|0)>1&o<<24>>24==48)){q=12;break}t=a[l+1|0]|0;if(!((t<<24>>24|0)==120|(t<<24>>24|0)==88)){q=12;break}o=l+2|0}else if((o|0)==32){o=h}else{q=12}}while(0);if((q|0)==12){o=m}q=k|0;Lm(r,f);r=r|0;s=c[r>>2]|0;if(!((c[8716]|0)==-1)){c[p>>2]=34864;c[p+4>>2]=16;c[p+8>>2]=0;mm(34864,p,114)}p=(c[8717]|0)-1|0;t=c[s+8>>2]|0;do{if((c[s+12>>2]|0)-t>>2>>>0>p>>>0){p=c[t+(p<<2)>>2]|0;if((p|0)==0){break}Ul(c[r>>2]|0)|0;Sc[c[(c[p>>2]|0)+32>>2]&15](p,m,h,q)|0;m=k+n|0;if((o|0)==(h|0)){t=m;r=e|0;r=c[r>>2]|0;s=d|0;c[s>>2]=r;Bd(b,d,q,t,m,f,g);i=j;return}t=k+(o-l)|0;r=e|0;r=c[r>>2]|0;s=d|0;c[s>>2]=r;Bd(b,d,q,t,m,f,g);i=j;return}}while(0);t=pc(4)|0;lu(t);Fb(t|0,25544,156)}function op(a){a=a|0;Sl(a|0);Pu(a);return}function pp(a){a=a|0;Sl(a|0);return}function qp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;j=i;i=i+48|0;l=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[l>>2];l=j|0;m=j+16|0;n=j+24|0;k=j+32|0;if((c[f+4>>2]&1|0)==0){o=c[(c[d>>2]|0)+24>>2]|0;c[m>>2]=c[e>>2];Kc[o&63](b,d,m,f,g,h&1);i=j;return}Lm(n,f);m=n|0;n=c[m>>2]|0;if(!((c[8618]|0)==-1)){c[l>>2]=34472;c[l+4>>2]=16;c[l+8>>2]=0;mm(34472,l,114)}l=(c[8619]|0)-1|0;d=c[n+8>>2]|0;do{if((c[n+12>>2]|0)-d>>2>>>0>l>>>0){n=c[d+(l<<2)>>2]|0;if((n|0)==0){break}l=n;Ul(c[m>>2]|0)|0;m=c[n>>2]|0;if(h){Ec[c[m+24>>2]&127](k,l)}else{Ec[c[m+28>>2]&127](k,l)}m=k;d=a[m]|0;if((d&1)==0){l=k+4|0;n=l;h=k+8|0}else{h=k+8|0;n=c[h>>2]|0;l=k+4|0}e=e|0;while(1){if((d&1)==0){d=(d&255)>>>1;f=l}else{d=c[l>>2]|0;f=c[h>>2]|0}if((n|0)==(f+(d<<2)|0)){break}d=c[n>>2]|0;f=c[e>>2]|0;do{if((f|0)!=0){g=f+24|0;o=c[g>>2]|0;if((o|0)==(c[f+28>>2]|0)){d=Qc[c[(c[f>>2]|0)+52>>2]&63](f,d)|0}else{c[g>>2]=o+4;c[o>>2]=d}if(!((d|0)==-1)){break}c[e>>2]=0}}while(0);n=n+4|0;d=a[m]|0}c[b>>2]=c[e>>2];Cm(k);i=j;return}}while(0);o=pc(4)|0;lu(o);Fb(o|0,25544,156)}function rp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;m=i;i=i+144|0;t=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[t>>2];t=m|0;p=m+8|0;o=m+24|0;n=m+112|0;k=m+120|0;d=m+128|0;l=m+136|0;r=t|0;a[r]=a[19432]|0;a[r+1|0]=a[19433]|0;a[r+2|0]=a[19434]|0;a[r+3|0]=a[19435]|0;a[r+4|0]=a[19436]|0;a[r+5|0]=a[19437]|0;u=t+1|0;q=f+4|0;s=c[q>>2]|0;if((s&2048|0)!=0){a[u]=43;u=t+2|0}if((s&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;u=u+1|0;t=s&74;do{if((t|0)==64){a[u]=111}else if((t|0)==8){if((s&16384|0)==0){a[u]=120;break}else{a[u]=88;break}}else{a[u]=100}}while(0);s=p|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}u=Xa(2147483647,14472,0)|0;c[8330]=u}}while(0);r=ep(s,12,c[8330]|0,r,(u=i,i=i+8|0,c[u>>2]=h,u)|0)|0;i=u;h=p+r|0;q=c[q>>2]&176;do{if((q|0)==16){q=a[s]|0;if((q<<24>>24|0)==45|(q<<24>>24|0)==43){p=p+1|0;break}if(!((r|0)>1&q<<24>>24==48)){j=22;break}u=a[p+1|0]|0;if(!((u<<24>>24|0)==120|(u<<24>>24|0)==88)){j=22;break}p=p+2|0}else if((q|0)==32){p=h}else{j=22}}while(0);if((j|0)==22){p=s}u=o|0;Lm(d,f);sp(s,p,h,u,n,k,d);Ul(c[d>>2]|0)|0;c[l>>2]=c[e>>2];tp(b,l,u,c[n>>2]|0,c[k>>2]|0,f,g);i=m;return}function sp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=i;i=i+48|0;m=l|0;o=l+16|0;k=l+32|0;n=j|0;j=c[n>>2]|0;if(!((c[8714]|0)==-1)){c[o>>2]=34856;c[o+4>>2]=16;c[o+8>>2]=0;mm(34856,o,114)}p=(c[8715]|0)-1|0;o=c[j+8>>2]|0;if(!((c[j+12>>2]|0)-o>>2>>>0>p>>>0)){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}o=c[o+(p<<2)>>2]|0;if((o|0)==0){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}j=o;n=c[n>>2]|0;if(!((c[8618]|0)==-1)){c[m>>2]=34472;c[m+4>>2]=16;c[m+8>>2]=0;mm(34472,m,114)}p=(c[8619]|0)-1|0;m=c[n+8>>2]|0;if(!((c[n+12>>2]|0)-m>>2>>>0>p>>>0)){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}p=c[m+(p<<2)>>2]|0;if((p|0)==0){w=pc(4)|0;v=w;lu(v);Fb(w|0,25544,156)}q=p;Ec[c[(c[p>>2]|0)+20>>2]&127](k,q);m=k;n=a[m]|0;if((n&1)==0){n=(n&255)>>>1}else{n=c[k+4>>2]|0}do{if((n|0)==0){Sc[c[(c[o>>2]|0)+48>>2]&15](j,b,e,f)|0;w=f+(e-b<<2)|0;c[h>>2]=w}else{c[h>>2]=f;n=a[b]|0;if((n<<24>>24|0)==45|(n<<24>>24|0)==43){w=Qc[c[(c[o>>2]|0)+44>>2]&63](j,n)|0;n=c[h>>2]|0;c[h>>2]=n+4;c[n>>2]=w;n=b+1|0}else{n=b}do{if((e-n|0)>1){if((a[n]|0)!=48){break}r=n+1|0;w=a[r]|0;if(!((w<<24>>24|0)==120|(w<<24>>24|0)==88)){break}v=o;u=Qc[c[(c[v>>2]|0)+44>>2]&63](j,48)|0;w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=u;v=Qc[c[(c[v>>2]|0)+44>>2]&63](j,a[r]|0)|0;w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=v;n=n+2|0}}while(0);do{if((n|0)!=(e|0)){s=e-1|0;if(s>>>0>n>>>0){r=n}else{break}do{w=a[r]|0;a[r]=a[s]|0;a[s]=w;r=r+1|0;s=s-1|0;}while(r>>>0<s>>>0)}}while(0);p=Fc[c[(c[p>>2]|0)+16>>2]&255](q)|0;if(n>>>0<e>>>0){q=k+1|0;s=k+4|0;r=k+8|0;v=0;u=0;t=n;while(1){w=(a[m]&1)==0;do{if((a[(w?q:c[r>>2]|0)+u|0]|0)!=0){if((v|0)!=(a[(w?q:c[r>>2]|0)+u|0]|0)){break}v=c[h>>2]|0;c[h>>2]=v+4;c[v>>2]=p;v=a[m]|0;if((v&1)==0){v=(v&255)>>>1}else{v=c[s>>2]|0}u=(u>>>0<(v-1|0)>>>0)+u|0;v=0}}while(0);y=Qc[c[(c[o>>2]|0)+44>>2]&63](j,a[t]|0)|0;x=c[h>>2]|0;w=x+4|0;c[h>>2]=w;c[x>>2]=y;t=t+1|0;if(t>>>0<e>>>0){v=v+1|0}else{break}}}else{w=c[h>>2]|0}h=f+(n-b<<2)|0;if((h|0)==(w|0)){break}j=w-4|0;if(!(j>>>0>h>>>0)){break}do{y=c[h>>2]|0;c[h>>2]=c[j>>2];c[j>>2]=y;h=h+4|0;j=j-4|0;}while(h>>>0<j>>>0)}}while(0);if((d|0)==(e|0)){y=w;c[g>>2]=y;rm(k);i=l;return}y=f+(d-b<<2)|0;c[g>>2]=y;rm(k);i=l;return}function tp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=i;i=i+16|0;m=d;l=i;i=i+4|0;i=i+7&-8;c[l>>2]=c[m>>2];m=k|0;l=l|0;d=c[l>>2]|0;if((d|0)==0){c[b>>2]=0;i=k;return}n=e;o=g-n>>2;h=h+12|0;p=c[h>>2]|0;p=(p|0)>(o|0)?p-o|0:0;o=f;q=o-n|0;n=q>>2;do{if((q|0)>0){if((Hc[c[(c[d>>2]|0)+48>>2]&63](d,e,n)|0)==(n|0)){break}c[l>>2]=0;c[b>>2]=0;i=k;return}}while(0);do{if((p|0)>0){Bm(m,p,j);if((a[m]&1)==0){j=m+4|0}else{j=c[m+8>>2]|0}if((Hc[c[(c[d>>2]|0)+48>>2]&63](d,j,p)|0)==(p|0)){Cm(m);break}c[l>>2]=0;c[b>>2]=0;Cm(m);i=k;return}}while(0);q=g-o|0;j=q>>2;do{if((q|0)>0){if((Hc[c[(c[d>>2]|0)+48>>2]&63](d,f,j)|0)==(j|0)){break}c[l>>2]=0;c[b>>2]=0;i=k;return}}while(0);c[h>>2]=0;c[b>>2]=d;i=k;return}function up(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=i;i=i+232|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=n|0;q=n+8|0;p=n+32|0;o=n+200|0;l=n+208|0;d=n+216|0;m=n+224|0;c[s>>2]=37;c[s+4>>2]=0;u=s+1|0;r=f+4|0;t=c[r>>2]|0;if((t&2048|0)!=0){a[u]=43;u=s+2|0}if((t&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;a[u+1|0]=108;v=u+2|0;u=t&74;do{if((u|0)==64){a[v]=111}else if((u|0)==8){if((t&16384|0)==0){a[v]=120;break}else{a[v]=88;break}}else{a[v]=100}}while(0);t=q|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}v=Xa(2147483647,14472,0)|0;c[8330]=v}}while(0);j=ep(t,22,c[8330]|0,s,(v=i,i=i+16|0,c[v>>2]=h,c[v+8>>2]=j,v)|0)|0;i=v;h=q+j|0;r=c[r>>2]&176;do{if((r|0)==16){r=a[t]|0;if((r<<24>>24|0)==45|(r<<24>>24|0)==43){q=q+1|0;break}if(!((j|0)>1&r<<24>>24==48)){k=22;break}v=a[q+1|0]|0;if(!((v<<24>>24|0)==120|(v<<24>>24|0)==88)){k=22;break}q=q+2|0}else if((r|0)==32){q=h}else{k=22}}while(0);if((k|0)==22){q=t}v=p|0;Lm(d,f);sp(t,q,h,v,o,l,d);Ul(c[d>>2]|0)|0;c[m>>2]=c[e>>2];tp(b,m,v,c[o>>2]|0,c[l>>2]|0,f,g);i=n;return}function vp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;m=i;i=i+144|0;t=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[t>>2];t=m|0;p=m+8|0;o=m+24|0;n=m+112|0;k=m+120|0;d=m+128|0;l=m+136|0;r=t|0;a[r]=a[19432]|0;a[r+1|0]=a[19433]|0;a[r+2|0]=a[19434]|0;a[r+3|0]=a[19435]|0;a[r+4|0]=a[19436]|0;a[r+5|0]=a[19437]|0;u=t+1|0;q=f+4|0;s=c[q>>2]|0;if((s&2048|0)!=0){a[u]=43;u=t+2|0}if((s&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;u=u+1|0;t=s&74;do{if((t|0)==64){a[u]=111}else if((t|0)==8){if((s&16384|0)==0){a[u]=120;break}else{a[u]=88;break}}else{a[u]=117}}while(0);s=p|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}u=Xa(2147483647,14472,0)|0;c[8330]=u}}while(0);r=ep(s,12,c[8330]|0,r,(u=i,i=i+8|0,c[u>>2]=h,u)|0)|0;i=u;h=p+r|0;q=c[q>>2]&176;do{if((q|0)==16){q=a[s]|0;if((q<<24>>24|0)==45|(q<<24>>24|0)==43){p=p+1|0;break}if(!((r|0)>1&q<<24>>24==48)){j=22;break}u=a[p+1|0]|0;if(!((u<<24>>24|0)==120|(u<<24>>24|0)==88)){j=22;break}p=p+2|0}else if((q|0)==32){p=h}else{j=22}}while(0);if((j|0)==22){p=s}u=o|0;Lm(d,f);sp(s,p,h,u,n,k,d);Ul(c[d>>2]|0)|0;c[l>>2]=c[e>>2];tp(b,l,u,c[n>>2]|0,c[k>>2]|0,f,g);i=m;return}function wp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;n=i;i=i+240|0;s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=n|0;q=n+8|0;p=n+32|0;o=n+208|0;l=n+216|0;d=n+224|0;m=n+232|0;c[s>>2]=37;c[s+4>>2]=0;u=s+1|0;r=f+4|0;t=c[r>>2]|0;if((t&2048|0)!=0){a[u]=43;u=s+2|0}if((t&512|0)!=0){a[u]=35;u=u+1|0}a[u]=108;a[u+1|0]=108;v=u+2|0;u=t&74;do{if((u|0)==64){a[v]=111}else if((u|0)==8){if((t&16384|0)==0){a[v]=120;break}else{a[v]=88;break}}else{a[v]=117}}while(0);t=q|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}v=Xa(2147483647,14472,0)|0;c[8330]=v}}while(0);j=ep(t,23,c[8330]|0,s,(v=i,i=i+16|0,c[v>>2]=h,c[v+8>>2]=j,v)|0)|0;i=v;h=q+j|0;r=c[r>>2]&176;do{if((r|0)==16){r=a[t]|0;if((r<<24>>24|0)==45|(r<<24>>24|0)==43){q=q+1|0;break}if(!((j|0)>1&r<<24>>24==48)){k=22;break}v=a[q+1|0]|0;if(!((v<<24>>24|0)==120|(v<<24>>24|0)==88)){k=22;break}q=q+2|0}else if((r|0)==32){q=h}else{k=22}}while(0);if((k|0)==22){q=t}v=p|0;Lm(d,f);sp(t,q,h,v,o,l,d);Ul(c[d>>2]|0)|0;c[m>>2]=c[e>>2];tp(b,m,v,c[o>>2]|0,c[l>>2]|0,f,g);i=n;return}function xp(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;k=i;i=i+320|0;u=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[u>>2];u=k|0;t=k+8|0;p=k+40|0;r=k+48|0;n=k+280|0;d=k+288|0;m=k+296|0;l=k+304|0;o=k+312|0;c[u>>2]=37;c[u+4>>2]=0;w=u+1|0;s=f+4|0;x=c[s>>2]|0;if((x&2048|0)!=0){a[w]=43;w=u+2|0}if((x&1024|0)!=0){a[w]=35;w=w+1|0}v=x&260;y=x>>>14;do{if((v|0)==260){if((y&1|0)==0){a[w]=97;v=0;break}else{a[w]=65;v=0;break}}else{a[w]=46;x=w+2|0;a[w+1|0]=42;if((v|0)==4){if((y&1|0)==0){a[x]=102;v=1;break}else{a[x]=70;v=1;break}}else if((v|0)==256){if((y&1|0)==0){a[x]=101;v=1;break}else{a[x]=69;v=1;break}}else{if((y&1|0)==0){a[x]=103;v=1;break}else{a[x]=71;v=1;break}}}}while(0);t=t|0;c[p>>2]=t;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);w=c[8330]|0;if(v){x=ep(t,30,w,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}else{x=ep(t,30,w,u,(y=i,i=i+8|0,h[y>>3]=j,y)|0)|0;i=y}do{if((x|0)>29){w=(a[51808]|0)==0;if(v){do{if(w){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);x=kp(p,c[8330]|0,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}else{do{if(w){if((ub(51808)|0)==0){break}y=Xa(2147483647,14472,0)|0;c[8330]=y}}while(0);x=kp(p,c[8330]|0,u,(y=i,i=i+16|0,c[y>>2]=c[f+8>>2],h[y+8>>3]=j,y)|0)|0;i=y}v=c[p>>2]|0;if((v|0)!=0){u=v;w=v;break}Uu();w=c[p>>2]|0;u=w}else{u=0;w=c[p>>2]|0}}while(0);v=w+x|0;s=c[s>>2]&176;do{if((s|0)==32){s=v}else if((s|0)==16){s=a[w]|0;if((s<<24>>24|0)==45|(s<<24>>24|0)==43){s=w+1|0;break}if(!((x|0)>1&s<<24>>24==48)){q=53;break}y=a[w+1|0]|0;if(!((y<<24>>24|0)==120|(y<<24>>24|0)==88)){q=53;break}s=w+2|0}else{q=53}}while(0);if((q|0)==53){s=w}do{if((w|0)==(t|0)){q=r|0;r=0}else{y=Gu(x<<3)|0;r=y;if((y|0)!=0){q=r;t=w;break}Uu();q=r;t=c[p>>2]|0}}while(0);Lm(m,f);yp(t,s,v,q,n,d,m);Ul(c[m>>2]|0)|0;x=e|0;c[o>>2]=c[x>>2];tp(l,o,q,c[n>>2]|0,c[d>>2]|0,f,g);y=c[l>>2]|0;c[x>>2]=y;c[b>>2]=y;if((r|0)!=0){Hu(r)}if((u|0)==0){i=k;return}Hu(u);i=k;return}function yp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;l=i;i=i+48|0;n=l|0;m=l+16|0;k=l+32|0;o=j|0;j=c[o>>2]|0;if(!((c[8714]|0)==-1)){c[m>>2]=34856;c[m+4>>2]=16;c[m+8>>2]=0;mm(34856,m,114)}p=(c[8715]|0)-1|0;m=c[j+8>>2]|0;if(!((c[j+12>>2]|0)-m>>2>>>0>p>>>0)){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}m=c[m+(p<<2)>>2]|0;if((m|0)==0){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}j=m;o=c[o>>2]|0;if(!((c[8618]|0)==-1)){c[n>>2]=34472;c[n+4>>2]=16;c[n+8>>2]=0;mm(34472,n,114)}p=(c[8619]|0)-1|0;n=c[o+8>>2]|0;if(!((c[o+12>>2]|0)-n>>2>>>0>p>>>0)){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}o=c[n+(p<<2)>>2]|0;if((o|0)==0){B=pc(4)|0;A=B;lu(A);Fb(B|0,25544,156)}p=o;Ec[c[(c[o>>2]|0)+20>>2]&127](k,p);c[h>>2]=f;n=a[b]|0;if((n<<24>>24|0)==45|(n<<24>>24|0)==43){B=Qc[c[(c[m>>2]|0)+44>>2]&63](j,n)|0;t=c[h>>2]|0;c[h>>2]=t+4;c[t>>2]=B;t=b+1|0}else{t=b}n=e;a:do{if((n-t|0)>1){if((a[t]|0)!=48){s=21;break}q=t+1|0;B=a[q]|0;if(!((B<<24>>24|0)==120|(B<<24>>24|0)==88)){s=21;break}A=m;z=Qc[c[(c[A>>2]|0)+44>>2]&63](j,48)|0;B=c[h>>2]|0;c[h>>2]=B+4;c[B>>2]=z;t=t+2|0;A=Qc[c[(c[A>>2]|0)+44>>2]&63](j,a[q]|0)|0;B=c[h>>2]|0;c[h>>2]=B+4;c[B>>2]=A;if(t>>>0<e>>>0){q=t}else{r=t;q=t;break}while(1){r=a[q]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}B=Xa(2147483647,14472,0)|0;c[8330]=B}}while(0);u=q+1|0;if((Ua(r<<24>>24|0,c[8330]|0)|0)==0){r=t;break a}if(u>>>0<e>>>0){q=u}else{r=t;q=u;break}}}else{s=21}}while(0);b:do{if((s|0)==21){if(t>>>0<e>>>0){q=t}else{r=t;q=t;break}while(1){r=a[q]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}B=Xa(2147483647,14472,0)|0;c[8330]=B}}while(0);s=q+1|0;if((ib(r<<24>>24|0,c[8330]|0)|0)==0){r=t;break b}if(s>>>0<e>>>0){q=s}else{r=t;q=s;break}}}}while(0);s=k;t=a[s]|0;if((t&1)==0){t=(t&255)>>>1}else{t=c[k+4>>2]|0}do{if((t|0)==0){Sc[c[(c[m>>2]|0)+48>>2]&15](j,r,q,c[h>>2]|0)|0;B=(c[h>>2]|0)+(q-r<<2)|0;c[h>>2]=B}else{do{if((r|0)!=(q|0)){u=q-1|0;if(u>>>0>r>>>0){t=r}else{break}do{B=a[t]|0;a[t]=a[u]|0;a[u]=B;t=t+1|0;u=u-1|0;}while(t>>>0<u>>>0)}}while(0);w=Fc[c[(c[o>>2]|0)+16>>2]&255](p)|0;if(r>>>0<q>>>0){t=k+1|0;x=k+4|0;u=k+8|0;v=m;A=0;z=0;y=r;while(1){B=(a[s]&1)==0;do{if((a[(B?t:c[u>>2]|0)+z|0]|0)>0){if((A|0)!=(a[(B?t:c[u>>2]|0)+z|0]|0)){break}A=c[h>>2]|0;c[h>>2]=A+4;c[A>>2]=w;A=a[s]|0;if((A&1)==0){A=(A&255)>>>1}else{A=c[x>>2]|0}z=(z>>>0<(A-1|0)>>>0)+z|0;A=0}}while(0);D=Qc[c[(c[v>>2]|0)+44>>2]&63](j,a[y]|0)|0;C=c[h>>2]|0;B=C+4|0;c[h>>2]=B;c[C>>2]=D;y=y+1|0;if(y>>>0<q>>>0){A=A+1|0}else{break}}}else{B=c[h>>2]|0}r=f+(r-b<<2)|0;if((r|0)==(B|0)){break}s=B-4|0;if(!(s>>>0>r>>>0)){break}do{D=c[r>>2]|0;c[r>>2]=c[s>>2];c[s>>2]=D;r=r+4|0;s=s-4|0;}while(r>>>0<s>>>0)}}while(0);c:do{if(q>>>0<e>>>0){r=m;while(1){s=a[q]|0;if(s<<24>>24==46){break}C=Qc[c[(c[r>>2]|0)+44>>2]&63](j,s)|0;D=c[h>>2]|0;B=D+4|0;c[h>>2]=B;c[D>>2]=C;q=q+1|0;if(!(q>>>0<e>>>0)){break c}}C=Fc[c[(c[o>>2]|0)+12>>2]&255](p)|0;D=c[h>>2]|0;B=D+4|0;c[h>>2]=B;c[D>>2]=C;q=q+1|0}}while(0);Sc[c[(c[m>>2]|0)+48>>2]&15](j,q,e,B)|0;j=(c[h>>2]|0)+(n-q<<2)|0;c[h>>2]=j;if((d|0)==(e|0)){D=j;c[g>>2]=D;rm(k);i=l;return}D=f+(d-b<<2)|0;c[g>>2]=D;rm(k);i=l;return}function zp(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=+j;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=i;i=i+320|0;u=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[u>>2];u=m|0;t=m+8|0;p=m+40|0;r=m+48|0;o=m+280|0;d=m+288|0;n=m+296|0;l=m+304|0;k=m+312|0;c[u>>2]=37;c[u+4>>2]=0;x=u+1|0;s=f+4|0;w=c[s>>2]|0;if((w&2048|0)!=0){a[x]=43;x=u+2|0}if((w&1024|0)!=0){a[x]=35;x=x+1|0}v=w&260;w=w>>>14;do{if((v|0)==260){a[x]=76;v=x+1|0;if((w&1|0)==0){a[v]=97;v=0;break}else{a[v]=65;v=0;break}}else{a[x]=46;a[x+1|0]=42;a[x+2|0]=76;x=x+3|0;if((v|0)==256){if((w&1|0)==0){a[x]=101;v=1;break}else{a[x]=69;v=1;break}}else if((v|0)==4){if((w&1|0)==0){a[x]=102;v=1;break}else{a[x]=70;v=1;break}}else{if((w&1|0)==0){a[x]=103;v=1;break}else{a[x]=71;v=1;break}}}}while(0);t=t|0;c[p>>2]=t;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);w=c[8330]|0;if(v){x=ep(t,30,w,u,(w=i,i=i+16|0,c[w>>2]=c[f+8>>2],h[w+8>>3]=j,w)|0)|0;i=w}else{x=ep(t,30,w,u,(w=i,i=i+8|0,h[w>>3]=j,w)|0)|0;i=w}do{if((x|0)>29){w=(a[51808]|0)==0;if(v){do{if(w){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);x=kp(p,c[8330]|0,u,(w=i,i=i+16|0,c[w>>2]=c[f+8>>2],h[w+8>>3]=j,w)|0)|0;i=w}else{do{if(w){if((ub(51808)|0)==0){break}x=Xa(2147483647,14472,0)|0;c[8330]=x}}while(0);x=kp(p,c[8330]|0,u,(w=i,i=i+8|0,h[w>>3]=j,w)|0)|0;i=w}v=c[p>>2]|0;if((v|0)!=0){u=v;w=v;break}Uu();w=c[p>>2]|0;u=w}else{u=0;w=c[p>>2]|0}}while(0);v=w+x|0;s=c[s>>2]&176;do{if((s|0)==16){s=a[w]|0;if((s<<24>>24|0)==45|(s<<24>>24|0)==43){s=w+1|0;break}if(!((x|0)>1&s<<24>>24==48)){q=53;break}s=a[w+1|0]|0;if(!((s<<24>>24|0)==120|(s<<24>>24|0)==88)){q=53;break}s=w+2|0}else if((s|0)==32){s=v}else{q=53}}while(0);if((q|0)==53){s=w}do{if((w|0)==(t|0)){q=r|0;r=0}else{x=Gu(x<<3)|0;r=x;if((x|0)!=0){q=r;t=w;break}Uu();q=r;t=c[p>>2]|0}}while(0);Lm(n,f);yp(t,s,v,q,o,d,n);Ul(c[n>>2]|0)|0;w=e|0;c[k>>2]=c[w>>2];tp(l,k,q,c[o>>2]|0,c[d>>2]|0,f,g);x=c[l>>2]|0;c[w>>2]=x;c[b>>2]=x;if((r|0)!=0){Hu(r)}if((u|0)==0){i=m;return}Hu(u);i=m;return}function Ap(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=i;i=i+216|0;p=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[p>>2];p=j|0;l=j+24|0;k=j+48|0;r=j+200|0;d=j+208|0;n=j+16|0;a[n]=a[19440]|0;a[n+1|0]=a[19441]|0;a[n+2|0]=a[19442]|0;a[n+3|0]=a[19443]|0;a[n+4|0]=a[19444]|0;a[n+5|0]=a[19445]|0;m=l|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}s=Xa(2147483647,14472,0)|0;c[8330]=s}}while(0);n=ep(m,20,c[8330]|0,n,(o=i,i=i+8|0,c[o>>2]=h,o)|0)|0;i=o;h=l+n|0;o=c[f+4>>2]&176;do{if((o|0)==16){o=a[m]|0;if((o<<24>>24|0)==45|(o<<24>>24|0)==43){o=l+1|0;break}if(!((n|0)>1&o<<24>>24==48)){q=12;break}s=a[l+1|0]|0;if(!((s<<24>>24|0)==120|(s<<24>>24|0)==88)){q=12;break}o=l+2|0}else if((o|0)==32){o=h}else{q=12}}while(0);if((q|0)==12){o=m}Lm(r,f);q=r|0;r=c[q>>2]|0;if(!((c[8714]|0)==-1)){c[p>>2]=34856;c[p+4>>2]=16;c[p+8>>2]=0;mm(34856,p,114)}p=(c[8715]|0)-1|0;s=c[r+8>>2]|0;do{if((c[r+12>>2]|0)-s>>2>>>0>p>>>0){r=c[s+(p<<2)>>2]|0;if((r|0)==0){break}Ul(c[q>>2]|0)|0;p=k|0;Sc[c[(c[r>>2]|0)+48>>2]&15](r,m,h,p)|0;m=k+(n<<2)|0;if((o|0)==(h|0)){s=m;q=e|0;q=c[q>>2]|0;r=d|0;c[r>>2]=q;tp(b,d,p,s,m,f,g);i=j;return}s=k+(o-l<<2)|0;q=e|0;q=c[q>>2]|0;r=d|0;c[r>>2]=q;tp(b,d,p,s,m,f,g);i=j;return}}while(0);s=pc(4)|0;lu(s);Fb(s|0,25544,156)}function Bp(d,e,f,g,h,j,k,l,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;n=i;i=i+48|0;u=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[u>>2];u=g;g=i;i=i+4|0;i=i+7&-8;c[g>>2]=c[u>>2];u=n|0;t=n+16|0;q=n+24|0;p=n+32|0;r=n+40|0;Lm(t,h);t=t|0;s=c[t>>2]|0;if(!((c[8716]|0)==-1)){c[u>>2]=34864;c[u+4>>2]=16;c[u+8>>2]=0;mm(34864,u,114)}v=(c[8717]|0)-1|0;u=c[s+8>>2]|0;do{if((c[s+12>>2]|0)-u>>2>>>0>v>>>0){x=c[u+(v<<2)>>2]|0;if((x|0)==0){break}s=x;Ul(c[t>>2]|0)|0;c[j>>2]=0;v=f|0;a:do{if((l|0)==(m|0)){o=67}else{t=g|0;u=x;w=x+8|0;B=x;z=e;A=p|0;y=r|0;x=q|0;C=0;b:while(1){while(1){if((C|0)!=0){o=67;break a}C=c[v>>2]|0;do{if((C|0)==0){C=0}else{if((c[C+12>>2]|0)!=(c[C+16>>2]|0)){break}if(!((Fc[c[(c[C>>2]|0)+36>>2]&255](C)|0)==-1)){break}c[v>>2]=0;C=0}}while(0);E=(C|0)==0;D=c[t>>2]|0;c:do{if((D|0)==0){o=20}else{do{if((c[D+12>>2]|0)==(c[D+16>>2]|0)){if(!((Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0)==-1)){break}c[t>>2]=0;o=20;break c}}while(0);if(!E){o=21;break b}}}while(0);if((o|0)==20){o=0;if(E){o=21;break b}else{D=0}}if((Hc[c[(c[u>>2]|0)+36>>2]&63](s,a[l]|0,0)|0)<<24>>24==37){o=24;break}F=a[l]|0;if(F<<24>>24>-1){E=c[w>>2]|0;if(!((b[E+(F<<24>>24<<1)>>1]&8192)==0)){o=35;break}}D=C+12|0;F=c[D>>2]|0;E=C+16|0;if((F|0)==(c[E>>2]|0)){F=(Fc[c[(c[C>>2]|0)+36>>2]&255](C)|0)&255}else{F=a[F]|0}H=Qc[c[(c[B>>2]|0)+12>>2]&63](s,F)|0;if(H<<24>>24==(Qc[c[(c[B>>2]|0)+12>>2]&63](s,a[l]|0)|0)<<24>>24){o=62;break}c[j>>2]=4;C=4}d:do{if((o|0)==24){o=0;F=l+1|0;if((F|0)==(m|0)){o=25;break b}E=Hc[c[(c[u>>2]|0)+36>>2]&63](s,a[F]|0,0)|0;if((E<<24>>24|0)==69|(E<<24>>24|0)==48){F=l+2|0;if((F|0)==(m|0)){o=28;break b}l=E;E=Hc[c[(c[u>>2]|0)+36>>2]&63](s,a[F]|0,0)|0}else{l=0}H=c[(c[z>>2]|0)+36>>2]|0;c[A>>2]=C;c[y>>2]=D;Oc[H&15](q,e,p,r,h,j,k,E,l);c[v>>2]=c[x>>2];l=F+1|0}else if((o|0)==35){while(1){o=0;l=l+1|0;if((l|0)==(m|0)){l=m;break}F=a[l]|0;if(!(F<<24>>24>-1)){break}if((b[E+(F<<24>>24<<1)>>1]&8192)==0){break}else{o=35}}F=D;E=D;while(1){do{if((C|0)==0){C=0}else{if((c[C+12>>2]|0)!=(c[C+16>>2]|0)){break}if(!((Fc[c[(c[C>>2]|0)+36>>2]&255](C)|0)==-1)){break}c[v>>2]=0;C=0}}while(0);D=(C|0)==0;do{if((F|0)==0){o=48}else{if((c[F+12>>2]|0)!=(c[F+16>>2]|0)){if(D){D=F;break}else{break d}}if((Fc[c[(c[F>>2]|0)+36>>2]&255](F)|0)==-1){c[t>>2]=0;E=0;o=48;break}else{if(D^(E|0)==0){D=E;break}else{break d}}}}while(0);if((o|0)==48){o=0;if(D){break d}else{D=0}}F=C+12|0;H=c[F>>2]|0;G=C+16|0;if((H|0)==(c[G>>2]|0)){H=(Fc[c[(c[C>>2]|0)+36>>2]&255](C)|0)&255}else{H=a[H]|0}if(!(H<<24>>24>-1)){break d}if((b[(c[w>>2]|0)+(H<<24>>24<<1)>>1]&8192)==0){break d}H=c[F>>2]|0;if((H|0)==(c[G>>2]|0)){Fc[c[(c[C>>2]|0)+40>>2]&255](C)|0;F=D;continue}else{c[F>>2]=H+1;F=D;continue}}}else if((o|0)==62){o=0;F=c[D>>2]|0;if((F|0)==(c[E>>2]|0)){Fc[c[(c[C>>2]|0)+40>>2]&255](C)|0}else{c[D>>2]=F+1}l=l+1|0}}while(0);if((l|0)==(m|0)){o=67;break a}C=c[j>>2]|0}if((o|0)==21){c[j>>2]=4;break}else if((o|0)==25){c[j>>2]=4;break}else if((o|0)==28){c[j>>2]=4;break}}}while(0);if((o|0)==67){C=c[v>>2]|0}f=f|0;do{if((C|0)==0){C=0}else{if((c[C+12>>2]|0)!=(c[C+16>>2]|0)){break}if(!((Fc[c[(c[C>>2]|0)+36>>2]&255](C)|0)==-1)){break}c[f>>2]=0;C=0}}while(0);f=(C|0)==0;g=g|0;m=c[g>>2]|0;e:do{if((m|0)==0){o=77}else{do{if((c[m+12>>2]|0)==(c[m+16>>2]|0)){if(!((Fc[c[(c[m>>2]|0)+36>>2]&255](m)|0)==-1)){break}c[g>>2]=0;o=77;break e}}while(0);if(!f){break}H=d|0;c[H>>2]=C;i=n;return}}while(0);do{if((o|0)==77){if(f){break}H=d|0;c[H>>2]=C;i=n;return}}while(0);c[j>>2]=c[j>>2]|2;H=d|0;c[H>>2]=C;i=n;return}}while(0);H=pc(4)|0;lu(H);Fb(H|0,25544,156)}function Cp(a){a=a|0;Sl(a|0);Pu(a);return}function Dp(a){a=a|0;Sl(a|0);return}function Ep(a){a=a|0;return 2}function Fp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+16|0;m=d;l=i;i=i+4|0;i=i+7&-8;c[l>>2]=c[m>>2];m=e;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[m>>2];e=j|0;d=j+8|0;c[e>>2]=c[l>>2];c[d>>2]=c[k>>2];Bp(a,b,e,d,f,g,h,19424,19432);i=j;return}function Gp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;k=i;i=i+16|0;l=e;n=i;i=i+4|0;i=i+7&-8;c[n>>2]=c[l>>2];l=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[l>>2];l=k|0;m=k+8|0;e=d+8|0;e=Fc[c[(c[e>>2]|0)+20>>2]&255](e)|0;c[l>>2]=c[n>>2];c[m>>2]=c[f>>2];f=a[e]|0;if((f&1)==0){n=(f&255)>>>1;f=e+1|0;e=e+1|0;n=e+n|0;Bp(b,d,l,m,g,h,j,f,n);i=k;return}else{f=c[e+8>>2]|0;n=c[e+4>>2]|0;e=f;n=f+n|0;Bp(b,d,l,m,g,h,j,e,n);i=k;return}}function Hp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;k=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[k>>2];k=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[k>>2];k=j|0;m=j+8|0;l=j+24|0;Lm(l,f);f=l|0;l=c[f>>2]|0;if(!((c[8716]|0)==-1)){c[m>>2]=34864;c[m+4>>2]=16;c[m+8>>2]=0;mm(34864,m,114)}m=(c[8717]|0)-1|0;n=c[l+8>>2]|0;do{if((c[l+12>>2]|0)-n>>2>>>0>m>>>0){l=c[n+(m<<2)>>2]|0;if((l|0)==0){break}Ul(c[f>>2]|0)|0;n=c[e>>2]|0;e=b+8|0;e=Fc[c[c[e>>2]>>2]&255](e)|0;c[k>>2]=n;e=(bo(d,k,e,e+168|0,l,g,0)|0)-e|0;if((e|0)>=168){m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}c[h+24>>2]=((e|0)/12|0|0)%7|0;m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}}while(0);n=pc(4)|0;lu(n);Fb(n|0,25544,156)}function Ip(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;k=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[k>>2];k=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[k>>2];k=j|0;m=j+8|0;l=j+24|0;Lm(l,f);f=l|0;l=c[f>>2]|0;if(!((c[8716]|0)==-1)){c[m>>2]=34864;c[m+4>>2]=16;c[m+8>>2]=0;mm(34864,m,114)}m=(c[8717]|0)-1|0;n=c[l+8>>2]|0;do{if((c[l+12>>2]|0)-n>>2>>>0>m>>>0){l=c[n+(m<<2)>>2]|0;if((l|0)==0){break}Ul(c[f>>2]|0)|0;n=c[e>>2]|0;e=b+8|0;e=Fc[c[(c[e>>2]|0)+4>>2]&255](e)|0;c[k>>2]=n;e=(bo(d,k,e,e+288|0,l,g,0)|0)-e|0;if((e|0)>=288){m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}c[h+16>>2]=((e|0)/12|0|0)%12|0;m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}}while(0);n=pc(4)|0;lu(n);Fb(n|0,25544,156)}function Jp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;b=i;i=i+32|0;j=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[j>>2];j=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[j>>2];j=b|0;l=b+8|0;k=b+24|0;Lm(k,f);f=k|0;k=c[f>>2]|0;if(!((c[8716]|0)==-1)){c[l>>2]=34864;c[l+4>>2]=16;c[l+8>>2]=0;mm(34864,l,114)}m=(c[8717]|0)-1|0;l=c[k+8>>2]|0;do{if((c[k+12>>2]|0)-l>>2>>>0>m>>>0){k=c[l+(m<<2)>>2]|0;if((k|0)==0){break}Ul(c[f>>2]|0)|0;c[j>>2]=c[e>>2];e=Op(d,j,g,k,4)|0;if((c[g>>2]&4|0)!=0){l=d|0;l=c[l>>2]|0;m=a|0;c[m>>2]=l;i=b;return}if((e|0)<69){g=e+2e3|0}else{g=(e-69|0)>>>0<31>>>0?e+1900|0:e}c[h+20>>2]=g-1900;l=d|0;l=c[l>>2]|0;m=a|0;c[m>>2]=l;i=b;return}}while(0);m=pc(4)|0;lu(m);Fb(m|0,25544,156)}function Kp(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;l=i;i=i+328|0;v=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[v>>2];v=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[v>>2];v=l|0;u=l+8|0;G=l+16|0;X=l+24|0;L=l+32|0;M=l+40|0;C=l+48|0;s=l+56|0;K=l+64|0;t=l+72|0;N=l+80|0;S=l+88|0;_=l+96|0;R=l+112|0;n=l+120|0;p=l+128|0;q=l+136|0;Y=l+144|0;W=l+152|0;A=l+160|0;J=l+168|0;H=l+176|0;I=l+184|0;w=l+192|0;x=l+200|0;Q=l+208|0;O=l+216|0;P=l+224|0;V=l+232|0;T=l+240|0;U=l+248|0;F=l+256|0;D=l+264|0;E=l+272|0;y=l+280|0;z=l+288|0;o=l+296|0;r=l+304|0;m=l+312|0;B=l+320|0;c[h>>2]=0;Lm(R,g);R=R|0;Z=c[R>>2]|0;if(!((c[8716]|0)==-1)){c[_>>2]=34864;c[_+4>>2]=16;c[_+8>>2]=0;mm(34864,_,114)}_=(c[8717]|0)-1|0;$=c[Z+8>>2]|0;do{if((c[Z+12>>2]|0)-$>>2>>>0>_>>>0){Z=c[$+(_<<2)>>2]|0;if((Z|0)==0){break}Ul(c[R>>2]|0)|0;a:do{switch(k<<24>>24|0){case 97:case 65:{_=c[f>>2]|0;$=d+8|0;$=Fc[c[c[$>>2]>>2]&255]($)|0;c[S>>2]=_;h=(bo(e,S,$,$+168|0,Z,h,0)|0)-$|0;if((h|0)>=168){break a}c[j+24>>2]=((h|0)/12|0|0)%7|0;break};case 68:{$=e|0;c[W>>2]=c[$>>2];c[A>>2]=c[f>>2];Bp(Y,d,W,A,g,h,j,19416,19424);c[$>>2]=c[Y>>2];break};case 73:{j=j+8|0;c[s>>2]=c[f>>2];g=Op(e,s,h,Z,2)|0;d=c[h>>2]|0;do{if((d&4|0)==0){if(!((g-1|0)>>>0<12>>>0)){break}c[j>>2]=g;break a}}while(0);c[h>>2]=d|4;break};case 37:{c[B>>2]=c[f>>2];Np(0,e,B,h,Z);break};case 106:{c[C>>2]=c[f>>2];g=Op(e,C,h,Z,3)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<366){c[j+28>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 109:{c[M>>2]=c[f>>2];d=Op(e,M,h,Z,2)|0;g=c[h>>2]|0;if((g&4|0)==0&(d|0)<13){c[j+16>>2]=d-1;break a}else{c[h>>2]=g|4;break a}};case 114:{$=e|0;c[O>>2]=c[$>>2];c[P>>2]=c[f>>2];Bp(Q,d,O,P,g,h,j,19392,19403);c[$>>2]=c[Q>>2];break};case 82:{$=e|0;c[T>>2]=c[$>>2];c[U>>2]=c[f>>2];Bp(V,d,T,U,g,h,j,19384,19389);c[$>>2]=c[V>>2];break};case 83:{c[X>>2]=c[f>>2];g=Op(e,X,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<61){c[j>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 121:{c[u>>2]=c[f>>2];g=Op(e,u,h,Z,4)|0;if((c[h>>2]&4|0)!=0){break a}if((g|0)<69){h=g+2e3|0}else{h=(g-69|0)>>>0<31>>>0?g+1900|0:g}c[j+20>>2]=h-1900;break};case 89:{c[v>>2]=c[f>>2];g=Op(e,v,h,Z,4)|0;if((c[h>>2]&4|0)!=0){break a}c[j+20>>2]=g-1900;break};case 110:case 116:{c[w>>2]=c[f>>2];Lp(0,e,w,h,Z);break};case 112:{c[x>>2]=c[f>>2];Mp(d,j+8|0,e,x,h,Z);break};case 120:{$=c[(c[d>>2]|0)+20>>2]|0;c[y>>2]=c[e>>2];c[z>>2]=c[f>>2];Mc[$&127](b,d,y,z,g,h,j);i=l;return};case 88:{p=d+8|0;p=Fc[c[(c[p>>2]|0)+24>>2]&255](p)|0;n=e|0;c[r>>2]=c[n>>2];c[m>>2]=c[f>>2];f=a[p]|0;if((f&1)==0){q=(f&255)>>>1;f=p+1|0;p=p+1|0}else{$=c[p+8>>2]|0;q=c[p+4>>2]|0;f=$;p=$}Bp(o,d,r,m,g,h,j,f,p+q|0);c[n>>2]=c[o>>2];break};case 84:{$=e|0;c[D>>2]=c[$>>2];c[E>>2]=c[f>>2];Bp(F,d,D,E,g,h,j,19376,19384);c[$>>2]=c[F>>2];break};case 119:{c[G>>2]=c[f>>2];g=Op(e,G,h,Z,1)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<7){c[j+24>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 70:{$=e|0;c[H>>2]=c[$>>2];c[I>>2]=c[f>>2];Bp(J,d,H,I,g,h,j,19408,19416);c[$>>2]=c[J>>2];break};case 72:{c[K>>2]=c[f>>2];g=Op(e,K,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<24){c[j+8>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 77:{c[L>>2]=c[f>>2];g=Op(e,L,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<60){c[j+4>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 100:case 101:{j=j+12|0;c[t>>2]=c[f>>2];g=Op(e,t,h,Z,2)|0;d=c[h>>2]|0;do{if((d&4|0)==0){if(!((g-1|0)>>>0<31>>>0)){break}c[j>>2]=g;break a}}while(0);c[h>>2]=d|4;break};case 98:case 66:case 104:{_=c[f>>2]|0;$=d+8|0;$=Fc[c[(c[$>>2]|0)+4>>2]&255]($)|0;c[N>>2]=_;h=(bo(e,N,$,$+288|0,Z,h,0)|0)-$|0;if((h|0)>=288){break a}c[j+16>>2]=((h|0)/12|0|0)%12|0;break};case 99:{o=d+8|0;o=Fc[c[(c[o>>2]|0)+12>>2]&255](o)|0;m=e|0;c[p>>2]=c[m>>2];c[q>>2]=c[f>>2];f=a[o]|0;if((f&1)==0){f=(f&255)>>>1;r=o+1|0;o=o+1|0}else{$=c[o+8>>2]|0;f=c[o+4>>2]|0;r=$;o=$}Bp(n,d,p,q,g,h,j,r,o+f|0);c[m>>2]=c[n>>2];break};default:{c[h>>2]=c[h>>2]|4}}}while(0);c[b>>2]=c[e>>2];i=l;return}}while(0);$=pc(4)|0;lu($);Fb($|0,25544,156)}function Lp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;d=i;m=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[m>>2];e=e|0;f=f|0;h=h+8|0;a:while(1){k=c[e>>2]|0;do{if((k|0)==0){k=0}else{if((c[k+12>>2]|0)!=(c[k+16>>2]|0)){break}if((Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0)==-1){c[e>>2]=0;k=0;break}else{k=c[e>>2]|0;break}}}while(0);l=(k|0)==0;k=c[f>>2]|0;do{if((k|0)==0){j=12}else{if((c[k+12>>2]|0)!=(c[k+16>>2]|0)){if(l){break}else{break a}}if((Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0)==-1){c[f>>2]=0;j=12;break}else{if(l){break}else{break a}}}}while(0);if((j|0)==12){j=0;if(l){k=0;break}else{k=0}}m=c[e>>2]|0;l=c[m+12>>2]|0;if((l|0)==(c[m+16>>2]|0)){l=(Fc[c[(c[m>>2]|0)+36>>2]&255](m)|0)&255}else{l=a[l]|0}if(!(l<<24>>24>-1)){break}if((b[(c[h>>2]|0)+(l<<24>>24<<1)>>1]&8192)==0){break}m=c[e>>2]|0;l=m+12|0;k=c[l>>2]|0;if((k|0)==(c[m+16>>2]|0)){Fc[c[(c[m>>2]|0)+40>>2]&255](m)|0;continue}else{c[l>>2]=k+1;continue}}h=c[e>>2]|0;do{if((h|0)==0){h=0}else{if((c[h+12>>2]|0)!=(c[h+16>>2]|0)){break}if((Fc[c[(c[h>>2]|0)+36>>2]&255](h)|0)==-1){c[e>>2]=0;h=0;break}else{h=c[e>>2]|0;break}}}while(0);e=(h|0)==0;b:do{if((k|0)==0){j=32}else{do{if((c[k+12>>2]|0)==(c[k+16>>2]|0)){if(!((Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0)==-1)){break}c[f>>2]=0;j=32;break b}}while(0);if(!e){break}i=d;return}}while(0);do{if((j|0)==32){if(e){break}i=d;return}}while(0);c[g>>2]=c[g>>2]|2;i=d;return}function Mp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+8|0;k=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[k>>2];k=j|0;b=b+8|0;b=Fc[c[(c[b>>2]|0)+8>>2]&255](b)|0;l=a[b]|0;if((l&1)==0){l=(l&255)>>>1}else{l=c[b+4>>2]|0}m=a[b+12|0]|0;if((m&1)==0){m=(m&255)>>>1}else{m=c[b+16>>2]|0}if((l|0)==(-m|0)){c[g>>2]=c[g>>2]|4;i=j;return}c[k>>2]=c[f>>2];m=bo(e,k,b,b+24|0,h,g,0)|0;h=m-b|0;do{if((m|0)==(b|0)){if((c[d>>2]|0)!=12){break}c[d>>2]=0;i=j;return}}while(0);if((h|0)!=12){i=j;return}h=c[d>>2]|0;if((h|0)>=12){i=j;return}c[d>>2]=h+12;i=j;return}function Np(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;b=i;j=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[j>>2];d=d|0;j=c[d>>2]|0;do{if((j|0)==0){j=0}else{if((c[j+12>>2]|0)!=(c[j+16>>2]|0)){break}if((Fc[c[(c[j>>2]|0)+36>>2]&255](j)|0)==-1){c[d>>2]=0;j=0;break}else{j=c[d>>2]|0;break}}}while(0);k=(j|0)==0;e=e|0;j=c[e>>2]|0;a:do{if((j|0)==0){h=11}else{do{if((c[j+12>>2]|0)==(c[j+16>>2]|0)){if(!((Fc[c[(c[j>>2]|0)+36>>2]&255](j)|0)==-1)){break}c[e>>2]=0;h=11;break a}}while(0);if(!k){h=12}}}while(0);if((h|0)==11){if(k){h=12}else{j=0}}if((h|0)==12){c[f>>2]=c[f>>2]|6;i=b;return}l=c[d>>2]|0;k=c[l+12>>2]|0;if((k|0)==(c[l+16>>2]|0)){k=(Fc[c[(c[l>>2]|0)+36>>2]&255](l)|0)&255}else{k=a[k]|0}if(!((Hc[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24==37)){c[f>>2]=c[f>>2]|4;i=b;return}l=c[d>>2]|0;g=l+12|0;k=c[g>>2]|0;if((k|0)==(c[l+16>>2]|0)){Fc[c[(c[l>>2]|0)+40>>2]&255](l)|0}else{c[g>>2]=k+1}g=c[d>>2]|0;do{if((g|0)==0){g=0}else{if((c[g+12>>2]|0)!=(c[g+16>>2]|0)){break}if((Fc[c[(c[g>>2]|0)+36>>2]&255](g)|0)==-1){c[d>>2]=0;g=0;break}else{g=c[d>>2]|0;break}}}while(0);d=(g|0)==0;b:do{if((j|0)==0){h=31}else{do{if((c[j+12>>2]|0)==(c[j+16>>2]|0)){if(!((Fc[c[(c[j>>2]|0)+36>>2]&255](j)|0)==-1)){break}c[e>>2]=0;h=31;break b}}while(0);if(!d){break}i=b;return}}while(0);do{if((h|0)==31){if(d){break}i=b;return}}while(0);c[f>>2]=c[f>>2]|2;i=b;return}function Op(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=i;l=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[l>>2];d=d|0;l=c[d>>2]|0;do{if((l|0)==0){l=0}else{if((c[l+12>>2]|0)!=(c[l+16>>2]|0)){break}if((Fc[c[(c[l>>2]|0)+36>>2]&255](l)|0)==-1){c[d>>2]=0;l=0;break}else{l=c[d>>2]|0;break}}}while(0);l=(l|0)==0;e=e|0;m=c[e>>2]|0;a:do{if((m|0)==0){k=11}else{do{if((c[m+12>>2]|0)==(c[m+16>>2]|0)){if(!((Fc[c[(c[m>>2]|0)+36>>2]&255](m)|0)==-1)){break}c[e>>2]=0;k=11;break a}}while(0);if(!l){k=12}}}while(0);if((k|0)==11){if(l){k=12}else{m=0}}if((k|0)==12){c[f>>2]=c[f>>2]|6;r=0;i=j;return r|0}l=c[d>>2]|0;k=c[l+12>>2]|0;if((k|0)==(c[l+16>>2]|0)){n=(Fc[c[(c[l>>2]|0)+36>>2]&255](l)|0)&255}else{n=a[k]|0}do{if(n<<24>>24>-1){l=g+8|0;if((b[(c[l>>2]|0)+(n<<24>>24<<1)>>1]&2048)==0){break}k=g;n=(Hc[c[(c[k>>2]|0)+36>>2]&63](g,n,0)|0)<<24>>24;o=c[d>>2]|0;p=o+12|0;q=c[p>>2]|0;if((q|0)==(c[o+16>>2]|0)){Fc[c[(c[o>>2]|0)+40>>2]&255](o)|0;o=m}else{c[p>>2]=q+1;o=m}while(1){n=n-48|0;h=h-1|0;p=c[d>>2]|0;do{if((p|0)==0){p=0}else{if((c[p+12>>2]|0)!=(c[p+16>>2]|0)){break}if((Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0)==-1){c[d>>2]=0;p=0;break}else{p=c[d>>2]|0;break}}}while(0);p=(p|0)==0;do{if((o|0)==0){o=0}else{if((c[o+12>>2]|0)!=(c[o+16>>2]|0)){break}if(!((Fc[c[(c[o>>2]|0)+36>>2]&255](o)|0)==-1)){o=m;break}c[e>>2]=0;o=0;m=0}}while(0);q=c[d>>2]|0;if(!((p^(o|0)==0)&(h|0)>0)){k=40;break}p=c[q+12>>2]|0;if((p|0)==(c[q+16>>2]|0)){p=(Fc[c[(c[q>>2]|0)+36>>2]&255](q)|0)&255}else{p=a[p]|0}if(!(p<<24>>24>-1)){k=52;break}if((b[(c[l>>2]|0)+(p<<24>>24<<1)>>1]&2048)==0){k=52;break}n=((Hc[c[(c[k>>2]|0)+36>>2]&63](g,p,0)|0)<<24>>24)+(n*10|0)|0;r=c[d>>2]|0;q=r+12|0;p=c[q>>2]|0;if((p|0)==(c[r+16>>2]|0)){Fc[c[(c[r>>2]|0)+40>>2]&255](r)|0;continue}else{c[q>>2]=p+1;continue}}if((k|0)==40){do{if((q|0)==0){q=0}else{if((c[q+12>>2]|0)!=(c[q+16>>2]|0)){break}if((Fc[c[(c[q>>2]|0)+36>>2]&255](q)|0)==-1){c[d>>2]=0;q=0;break}else{q=c[d>>2]|0;break}}}while(0);g=(q|0)==0;b:do{if((m|0)==0){k=50}else{do{if((c[m+12>>2]|0)==(c[m+16>>2]|0)){if(!((Fc[c[(c[m>>2]|0)+36>>2]&255](m)|0)==-1)){break}c[e>>2]=0;k=50;break b}}while(0);if(!g){break}i=j;return n|0}}while(0);do{if((k|0)==50){if(g){break}i=j;return n|0}}while(0);c[f>>2]=c[f>>2]|2;r=n;i=j;return r|0}else if((k|0)==52){i=j;return n|0}}}while(0);c[f>>2]=c[f>>2]|4;r=0;i=j;return r|0}function Pp(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;m=i;i=i+48|0;s=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[s>>2];s=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[s>>2];s=m|0;r=m+16|0;p=m+24|0;n=m+32|0;o=m+40|0;Lm(r,f);r=r|0;q=c[r>>2]|0;if(!((c[8714]|0)==-1)){c[s>>2]=34856;c[s+4>>2]=16;c[s+8>>2]=0;mm(34856,s,114)}s=(c[8715]|0)-1|0;t=c[q+8>>2]|0;do{if((c[q+12>>2]|0)-t>>2>>>0>s>>>0){v=c[t+(s<<2)>>2]|0;if((v|0)==0){break}q=v;Ul(c[r>>2]|0)|0;c[g>>2]=0;s=d|0;a:do{if((j|0)==(k|0)){l=71}else{u=e|0;r=v;t=v;z=v;y=b;w=n|0;x=o|0;v=p|0;A=0;b:while(1){while(1){if((A|0)!=0){l=71;break a}A=c[s>>2]|0;do{if((A|0)==0){C=1;A=0}else{B=c[A+12>>2]|0;if((B|0)==(c[A+16>>2]|0)){B=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{B=c[B>>2]|0}if(!((B|0)==-1)){C=0;break}c[s>>2]=0;C=1;A=0}}while(0);B=c[u>>2]|0;do{if((B|0)==0){l=23}else{D=c[B+12>>2]|0;if((D|0)==(c[B+16>>2]|0)){D=Fc[c[(c[B>>2]|0)+36>>2]&255](B)|0}else{D=c[D>>2]|0}if((D|0)==-1){c[u>>2]=0;l=23;break}else{if(C){break}else{l=25;break b}}}}while(0);if((l|0)==23){l=0;if(C){l=25;break b}else{B=0}}if((Hc[c[(c[r>>2]|0)+52>>2]&63](q,c[j>>2]|0,0)|0)<<24>>24==37){l=28;break}if(Hc[c[(c[t>>2]|0)+12>>2]&63](q,8192,c[j>>2]|0)|0){l=38;break}C=A+12|0;D=c[C>>2]|0;B=A+16|0;if((D|0)==(c[B>>2]|0)){D=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{D=c[D>>2]|0}F=Qc[c[(c[z>>2]|0)+28>>2]&63](q,D)|0;if((F|0)==(Qc[c[(c[z>>2]|0)+28>>2]&63](q,c[j>>2]|0)|0)){l=66;break}c[g>>2]=4;A=4}c:do{if((l|0)==28){l=0;C=j+4|0;if((C|0)==(k|0)){l=29;break b}D=Hc[c[(c[r>>2]|0)+52>>2]&63](q,c[C>>2]|0,0)|0;if((D<<24>>24|0)==69|(D<<24>>24|0)==48){C=j+8|0;if((C|0)==(k|0)){l=32;break b}j=D;D=Hc[c[(c[r>>2]|0)+52>>2]&63](q,c[C>>2]|0,0)|0}else{j=0}F=c[(c[y>>2]|0)+36>>2]|0;c[w>>2]=A;c[x>>2]=B;Oc[F&15](p,b,n,o,f,g,h,D,j);c[s>>2]=c[v>>2];j=C+4|0}else if((l|0)==38){while(1){l=0;j=j+4|0;if((j|0)==(k|0)){j=k;break}if(Hc[c[(c[t>>2]|0)+12>>2]&63](q,8192,c[j>>2]|0)|0){l=38}else{break}}D=B;C=B;while(1){do{if((A|0)==0){B=1;A=0}else{B=c[A+12>>2]|0;if((B|0)==(c[A+16>>2]|0)){B=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{B=c[B>>2]|0}if(!((B|0)==-1)){B=0;break}c[s>>2]=0;B=1;A=0}}while(0);do{if((D|0)==0){l=53}else{E=c[D+12>>2]|0;if((E|0)==(c[D+16>>2]|0)){D=Fc[c[(c[D>>2]|0)+36>>2]&255](D)|0}else{D=c[E>>2]|0}if((D|0)==-1){c[u>>2]=0;C=0;l=53;break}else{if(B^(C|0)==0){B=C;break}else{break c}}}}while(0);if((l|0)==53){l=0;if(B){break c}else{B=0}}E=A+12|0;F=c[E>>2]|0;D=A+16|0;if((F|0)==(c[D>>2]|0)){F=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{F=c[F>>2]|0}if(!(Hc[c[(c[t>>2]|0)+12>>2]&63](q,8192,F)|0)){break c}F=c[E>>2]|0;if((F|0)==(c[D>>2]|0)){Fc[c[(c[A>>2]|0)+40>>2]&255](A)|0;D=B;continue}else{c[E>>2]=F+4;D=B;continue}}}else if((l|0)==66){l=0;D=c[C>>2]|0;if((D|0)==(c[B>>2]|0)){Fc[c[(c[A>>2]|0)+40>>2]&255](A)|0}else{c[C>>2]=D+4}j=j+4|0}}while(0);if((j|0)==(k|0)){l=71;break a}A=c[g>>2]|0}if((l|0)==25){c[g>>2]=4;break}else if((l|0)==29){c[g>>2]=4;break}else if((l|0)==32){c[g>>2]=4;break}}}while(0);if((l|0)==71){A=c[s>>2]|0}d=d|0;do{if((A|0)==0){d=1;A=0}else{b=c[A+12>>2]|0;if((b|0)==(c[A+16>>2]|0)){b=Fc[c[(c[A>>2]|0)+36>>2]&255](A)|0}else{b=c[b>>2]|0}if(!((b|0)==-1)){d=0;break}c[d>>2]=0;d=1;A=0}}while(0);e=e|0;b=c[e>>2]|0;do{if((b|0)==0){l=84}else{f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0)){b=Fc[c[(c[b>>2]|0)+36>>2]&255](b)|0}else{b=c[f>>2]|0}if((b|0)==-1){c[e>>2]=0;l=84;break}if(!d){break}F=a|0;c[F>>2]=A;i=m;return}}while(0);do{if((l|0)==84){if(d){break}F=a|0;c[F>>2]=A;i=m;return}}while(0);c[g>>2]=c[g>>2]|2;F=a|0;c[F>>2]=A;i=m;return}}while(0);F=pc(4)|0;lu(F);Fb(F|0,25544,156)}function Qp(a){a=a|0;Sl(a|0);Pu(a);return}function Rp(a){a=a|0;Sl(a|0);return}function Sp(a){a=a|0;return 2}function Tp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+16|0;m=d;l=i;i=i+4|0;i=i+7&-8;c[l>>2]=c[m>>2];m=e;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[m>>2];e=j|0;d=j+8|0;c[e>>2]=c[l>>2];c[d>>2]=c[k>>2];Pp(a,b,e,d,f,g,h,19344,19376);i=j;return}function Up(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0;k=i;i=i+16|0;l=e;n=i;i=i+4|0;i=i+7&-8;c[n>>2]=c[l>>2];l=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[l>>2];l=k|0;m=k+8|0;e=d+8|0;e=Fc[c[(c[e>>2]|0)+20>>2]&255](e)|0;c[l>>2]=c[n>>2];c[m>>2]=c[f>>2];f=a[e]|0;if((f&1)==0){n=(f&255)>>>1;f=e+4|0;e=e+4|0;n=e+(n<<2)|0;Pp(b,d,l,m,g,h,j,f,n);i=k;return}else{f=c[e+8>>2]|0;n=c[e+4>>2]|0;e=f;n=f+(n<<2)|0;Pp(b,d,l,m,g,h,j,e,n);i=k;return}}function Vp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;k=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[k>>2];k=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[k>>2];k=j|0;m=j+8|0;l=j+24|0;Lm(l,f);f=l|0;l=c[f>>2]|0;if(!((c[8714]|0)==-1)){c[m>>2]=34856;c[m+4>>2]=16;c[m+8>>2]=0;mm(34856,m,114)}m=(c[8715]|0)-1|0;n=c[l+8>>2]|0;do{if((c[l+12>>2]|0)-n>>2>>>0>m>>>0){l=c[n+(m<<2)>>2]|0;if((l|0)==0){break}Ul(c[f>>2]|0)|0;n=c[e>>2]|0;e=b+8|0;e=Fc[c[c[e>>2]>>2]&255](e)|0;c[k>>2]=n;e=(Bo(d,k,e,e+168|0,l,g,0)|0)-e|0;if((e|0)>=168){m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}c[h+24>>2]=((e|0)/12|0|0)%7|0;m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}}while(0);n=pc(4)|0;lu(n);Fb(n|0,25544,156)}function Wp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;k=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[k>>2];k=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[k>>2];k=j|0;m=j+8|0;l=j+24|0;Lm(l,f);f=l|0;l=c[f>>2]|0;if(!((c[8714]|0)==-1)){c[m>>2]=34856;c[m+4>>2]=16;c[m+8>>2]=0;mm(34856,m,114)}m=(c[8715]|0)-1|0;n=c[l+8>>2]|0;do{if((c[l+12>>2]|0)-n>>2>>>0>m>>>0){l=c[n+(m<<2)>>2]|0;if((l|0)==0){break}Ul(c[f>>2]|0)|0;n=c[e>>2]|0;e=b+8|0;e=Fc[c[(c[e>>2]|0)+4>>2]&255](e)|0;c[k>>2]=n;e=(Bo(d,k,e,e+288|0,l,g,0)|0)-e|0;if((e|0)>=288){m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}c[h+16>>2]=((e|0)/12|0|0)%12|0;m=d|0;m=c[m>>2]|0;n=a|0;c[n>>2]=m;i=j;return}}while(0);n=pc(4)|0;lu(n);Fb(n|0,25544,156)}function Xp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;b=i;i=i+32|0;j=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[j>>2];j=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[j>>2];j=b|0;l=b+8|0;k=b+24|0;Lm(k,f);f=k|0;k=c[f>>2]|0;if(!((c[8714]|0)==-1)){c[l>>2]=34856;c[l+4>>2]=16;c[l+8>>2]=0;mm(34856,l,114)}m=(c[8715]|0)-1|0;l=c[k+8>>2]|0;do{if((c[k+12>>2]|0)-l>>2>>>0>m>>>0){k=c[l+(m<<2)>>2]|0;if((k|0)==0){break}Ul(c[f>>2]|0)|0;c[j>>2]=c[e>>2];e=aq(d,j,g,k,4)|0;if((c[g>>2]&4|0)!=0){l=d|0;l=c[l>>2]|0;m=a|0;c[m>>2]=l;i=b;return}if((e|0)<69){g=e+2e3|0}else{g=(e-69|0)>>>0<31>>>0?e+1900|0:e}c[h+20>>2]=g-1900;l=d|0;l=c[l>>2]|0;m=a|0;c[m>>2]=l;i=b;return}}while(0);m=pc(4)|0;lu(m);Fb(m|0,25544,156)}function Yp(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;l=i;i=i+328|0;U=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[U>>2];U=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[U>>2];U=l|0;Q=l+8|0;G=l+16|0;u=l+24|0;K=l+32|0;V=l+40|0;L=l+48|0;t=l+56|0;W=l+64|0;s=l+72|0;T=l+80|0;X=l+88|0;_=l+96|0;R=l+112|0;p=l+120|0;q=l+128|0;r=l+136|0;J=l+144|0;H=l+152|0;I=l+160|0;O=l+168|0;M=l+176|0;N=l+184|0;v=l+192|0;w=l+200|0;z=l+208|0;x=l+216|0;y=l+224|0;Y=l+232|0;P=l+240|0;S=l+248|0;F=l+256|0;D=l+264|0;E=l+272|0;B=l+280|0;C=l+288|0;m=l+296|0;n=l+304|0;o=l+312|0;A=l+320|0;c[h>>2]=0;Lm(R,g);R=R|0;Z=c[R>>2]|0;if(!((c[8714]|0)==-1)){c[_>>2]=34856;c[_+4>>2]=16;c[_+8>>2]=0;mm(34856,_,114)}_=(c[8715]|0)-1|0;$=c[Z+8>>2]|0;do{if((c[Z+12>>2]|0)-$>>2>>>0>_>>>0){Z=c[$+(_<<2)>>2]|0;if((Z|0)==0){break}Ul(c[R>>2]|0)|0;a:do{switch(k<<24>>24|0){case 73:{j=j+8|0;c[t>>2]=c[f>>2];g=aq(e,t,h,Z,2)|0;d=c[h>>2]|0;do{if((d&4|0)==0){if(!((g-1|0)>>>0<12>>>0)){break}c[j>>2]=g;break a}}while(0);c[h>>2]=d|4;break};case 97:case 65:{_=c[f>>2]|0;$=d+8|0;$=Fc[c[c[$>>2]>>2]&255]($)|0;c[X>>2]=_;h=(Bo(e,X,$,$+168|0,Z,h,0)|0)-$|0;if((h|0)>=168){break a}c[j+24>>2]=((h|0)/12|0|0)%7|0;break};case 72:{c[W>>2]=c[f>>2];g=aq(e,W,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<24){c[j+8>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 109:{c[V>>2]=c[f>>2];g=aq(e,V,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<13){c[j+16>>2]=g-1;break a}else{c[h>>2]=d|4;break a}};case 89:{c[U>>2]=c[f>>2];g=aq(e,U,h,Z,4)|0;if((c[h>>2]&4|0)!=0){break a}c[j+20>>2]=g-1900;break};case 37:{c[A>>2]=c[f>>2];$p(0,e,A,h,Z);break};case 98:case 66:case 104:{_=c[f>>2]|0;$=d+8|0;$=Fc[c[(c[$>>2]|0)+4>>2]&255]($)|0;c[T>>2]=_;h=(Bo(e,T,$,$+288|0,Z,h,0)|0)-$|0;if((h|0)>=288){break a}c[j+16>>2]=((h|0)/12|0|0)%12|0;break};case 120:{$=c[(c[d>>2]|0)+20>>2]|0;c[B>>2]=c[e>>2];c[C>>2]=c[f>>2];Mc[$&127](b,d,B,C,g,h,j);i=l;return};case 88:{q=d+8|0;q=Fc[c[(c[q>>2]|0)+24>>2]&255](q)|0;p=e|0;c[n>>2]=c[p>>2];c[o>>2]=c[f>>2];f=a[q]|0;if((f&1)==0){f=(f&255)>>>1;r=q+4|0;q=q+4|0}else{$=c[q+8>>2]|0;f=c[q+4>>2]|0;r=$;q=$}Pp(m,d,n,o,g,h,j,r,q+(f<<2)|0);c[p>>2]=c[m>>2];break};case 82:{$=e|0;c[P>>2]=c[$>>2];c[S>>2]=c[f>>2];Pp(Y,d,P,S,g,h,j,19240,19260);c[$>>2]=c[Y>>2];break};case 83:{c[u>>2]=c[f>>2];d=aq(e,u,h,Z,2)|0;g=c[h>>2]|0;if((g&4|0)==0&(d|0)<61){c[j>>2]=d;break a}else{c[h>>2]=g|4;break a}};case 110:case 116:{c[v>>2]=c[f>>2];Zp(0,e,v,h,Z);break};case 112:{c[w>>2]=c[f>>2];_p(d,j+8|0,e,w,h,Z);break};case 114:{$=e|0;c[x>>2]=c[$>>2];c[y>>2]=c[f>>2];Pp(z,d,x,y,g,h,j,19264,19308);c[$>>2]=c[z>>2];break};case 99:{n=d+8|0;n=Fc[c[(c[n>>2]|0)+12>>2]&255](n)|0;m=e|0;c[q>>2]=c[m>>2];c[r>>2]=c[f>>2];f=a[n]|0;if((f&1)==0){o=(f&255)>>>1;f=n+4|0;n=n+4|0}else{$=c[n+8>>2]|0;o=c[n+4>>2]|0;f=$;n=$}Pp(p,d,q,r,g,h,j,f,n+(o<<2)|0);c[m>>2]=c[p>>2];break};case 84:{$=e|0;c[D>>2]=c[$>>2];c[E>>2]=c[f>>2];Pp(F,d,D,E,g,h,j,19208,19240);c[$>>2]=c[F>>2];break};case 119:{c[G>>2]=c[f>>2];g=aq(e,G,h,Z,1)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<7){c[j+24>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 68:{$=e|0;c[H>>2]=c[$>>2];c[I>>2]=c[f>>2];Pp(J,d,H,I,g,h,j,19312,19344);c[$>>2]=c[J>>2];break};case 77:{c[K>>2]=c[f>>2];g=aq(e,K,h,Z,2)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<60){c[j+4>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 106:{c[L>>2]=c[f>>2];g=aq(e,L,h,Z,3)|0;d=c[h>>2]|0;if((d&4|0)==0&(g|0)<366){c[j+28>>2]=g;break a}else{c[h>>2]=d|4;break a}};case 70:{$=e|0;c[M>>2]=c[$>>2];c[N>>2]=c[f>>2];Pp(O,d,M,N,g,h,j,19176,19208);c[$>>2]=c[O>>2];break};case 100:case 101:{j=j+12|0;c[s>>2]=c[f>>2];d=aq(e,s,h,Z,2)|0;g=c[h>>2]|0;do{if((g&4|0)==0){if(!((d-1|0)>>>0<31>>>0)){break}c[j>>2]=d;break a}}while(0);c[h>>2]=g|4;break};case 121:{c[Q>>2]=c[f>>2];g=aq(e,Q,h,Z,4)|0;if((c[h>>2]&4|0)!=0){break a}if((g|0)<69){h=g+2e3|0}else{h=(g-69|0)>>>0<31>>>0?g+1900|0:g}c[j+20>>2]=h-1900;break};default:{c[h>>2]=c[h>>2]|4}}}while(0);c[b>>2]=c[e>>2];i=l;return}}while(0);$=pc(4)|0;lu($);Fb($|0,25544,156)}function Zp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;a=i;h=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[h>>2];b=b|0;d=d|0;h=f;a:while(1){k=c[b>>2]|0;do{if((k|0)==0){j=1}else{j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0)){j=Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0}else{j=c[j>>2]|0}if((j|0)==-1){c[b>>2]=0;j=1;break}else{j=(c[b>>2]|0)==0;break}}}while(0);k=c[d>>2]|0;do{if((k|0)==0){g=15}else{l=c[k+12>>2]|0;if((l|0)==(c[k+16>>2]|0)){l=Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0}else{l=c[l>>2]|0}if((l|0)==-1){c[d>>2]=0;g=15;break}else{if(j){j=k;break}else{f=k;break a}}}}while(0);if((g|0)==15){g=0;if(j){f=0;break}else{j=0}}l=c[b>>2]|0;k=c[l+12>>2]|0;if((k|0)==(c[l+16>>2]|0)){k=Fc[c[(c[l>>2]|0)+36>>2]&255](l)|0}else{k=c[k>>2]|0}if(!(Hc[c[(c[h>>2]|0)+12>>2]&63](f,8192,k)|0)){f=j;break}j=c[b>>2]|0;k=j+12|0;l=c[k>>2]|0;if((l|0)==(c[j+16>>2]|0)){Fc[c[(c[j>>2]|0)+40>>2]&255](j)|0;continue}else{c[k>>2]=l+4;continue}}h=c[b>>2]|0;do{if((h|0)==0){b=1}else{j=c[h+12>>2]|0;if((j|0)==(c[h+16>>2]|0)){h=Fc[c[(c[h>>2]|0)+36>>2]&255](h)|0}else{h=c[j>>2]|0}if((h|0)==-1){c[b>>2]=0;b=1;break}else{b=(c[b>>2]|0)==0;break}}}while(0);do{if((f|0)==0){g=37}else{h=c[f+12>>2]|0;if((h|0)==(c[f+16>>2]|0)){f=Fc[c[(c[f>>2]|0)+36>>2]&255](f)|0}else{f=c[h>>2]|0}if((f|0)==-1){c[d>>2]=0;g=37;break}if(!b){break}i=a;return}}while(0);do{if((g|0)==37){if(b){break}i=a;return}}while(0);c[e>>2]=c[e>>2]|2;i=a;return}function _p(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;j=i;i=i+8|0;k=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[k>>2];k=j|0;b=b+8|0;b=Fc[c[(c[b>>2]|0)+8>>2]&255](b)|0;l=a[b]|0;if((l&1)==0){l=(l&255)>>>1}else{l=c[b+4>>2]|0}m=a[b+12|0]|0;if((m&1)==0){m=(m&255)>>>1}else{m=c[b+16>>2]|0}if((l|0)==(-m|0)){c[g>>2]=c[g>>2]|4;i=j;return}c[k>>2]=c[f>>2];m=Bo(e,k,b,b+24|0,h,g,0)|0;h=m-b|0;do{if((m|0)==(b|0)){if((c[d>>2]|0)!=12){break}c[d>>2]=0;i=j;return}}while(0);if((h|0)!=12){i=j;return}h=c[d>>2]|0;if((h|0)>=12){i=j;return}c[d>>2]=h+12;i=j;return}function $p(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;a=i;h=d;d=i;i=i+4|0;i=i+7&-8;c[d>>2]=c[h>>2];b=b|0;h=c[b>>2]|0;do{if((h|0)==0){j=1}else{j=c[h+12>>2]|0;if((j|0)==(c[h+16>>2]|0)){h=Fc[c[(c[h>>2]|0)+36>>2]&255](h)|0}else{h=c[j>>2]|0}if((h|0)==-1){c[b>>2]=0;j=1;break}else{j=(c[b>>2]|0)==0;break}}}while(0);d=d|0;h=c[d>>2]|0;do{if((h|0)==0){g=14}else{k=c[h+12>>2]|0;if((k|0)==(c[h+16>>2]|0)){k=Fc[c[(c[h>>2]|0)+36>>2]&255](h)|0}else{k=c[k>>2]|0}if((k|0)==-1){c[d>>2]=0;g=14;break}else{if(j){break}else{g=16;break}}}}while(0);if((g|0)==14){if(j){g=16}else{h=0}}if((g|0)==16){c[e>>2]=c[e>>2]|6;i=a;return}k=c[b>>2]|0;j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0)){j=Fc[c[(c[k>>2]|0)+36>>2]&255](k)|0}else{j=c[j>>2]|0}if(!((Hc[c[(c[f>>2]|0)+52>>2]&63](f,j,0)|0)<<24>>24==37)){c[e>>2]=c[e>>2]|4;i=a;return}k=c[b>>2]|0;j=k+12|0;f=c[j>>2]|0;if((f|0)==(c[k+16>>2]|0)){Fc[c[(c[k>>2]|0)+40>>2]&255](k)|0}else{c[j>>2]=f+4}f=c[b>>2]|0;do{if((f|0)==0){b=1}else{j=c[f+12>>2]|0;if((j|0)==(c[f+16>>2]|0)){f=Fc[c[(c[f>>2]|0)+36>>2]&255](f)|0}else{f=c[j>>2]|0}if((f|0)==-1){c[b>>2]=0;b=1;break}else{b=(c[b>>2]|0)==0;break}}}while(0);do{if((h|0)==0){g=38}else{f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0)){f=Fc[c[(c[h>>2]|0)+36>>2]&255](h)|0}else{f=c[f>>2]|0}if((f|0)==-1){c[d>>2]=0;g=38;break}if(!b){break}i=a;return}}while(0);do{if((g|0)==38){if(b){break}i=a;return}}while(0);c[e>>2]=c[e>>2]|2;i=a;return}function aq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=i;j=b;b=i;i=i+4|0;i=i+7&-8;c[b>>2]=c[j>>2];a=a|0;j=c[a>>2]|0;do{if((j|0)==0){j=1}else{k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0)){j=Fc[c[(c[j>>2]|0)+36>>2]&255](j)|0}else{j=c[k>>2]|0}if((j|0)==-1){c[a>>2]=0;j=1;break}else{j=(c[a>>2]|0)==0;break}}}while(0);b=b|0;l=c[b>>2]|0;do{if((l|0)==0){h=14}else{k=c[l+12>>2]|0;if((k|0)==(c[l+16>>2]|0)){k=Fc[c[(c[l>>2]|0)+36>>2]&255](l)|0}else{k=c[k>>2]|0}if((k|0)==-1){c[b>>2]=0;h=14;break}else{if(j){break}else{h=16;break}}}}while(0);if((h|0)==14){if(j){h=16}else{l=0}}if((h|0)==16){c[d>>2]=c[d>>2]|6;q=0;i=g;return q|0}j=c[a>>2]|0;k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0)){m=Fc[c[(c[j>>2]|0)+36>>2]&255](j)|0}else{m=c[k>>2]|0}k=e;if(!(Hc[c[(c[k>>2]|0)+12>>2]&63](e,2048,m)|0)){c[d>>2]=c[d>>2]|4;q=0;i=g;return q|0}j=e;o=(Hc[c[(c[j>>2]|0)+52>>2]&63](e,m,0)|0)<<24>>24;p=c[a>>2]|0;n=p+12|0;m=c[n>>2]|0;if((m|0)==(c[p+16>>2]|0)){Fc[c[(c[p>>2]|0)+40>>2]&255](p)|0;n=l;m=l}else{c[n>>2]=m+4;n=l;m=l}while(1){l=o-48|0;f=f-1|0;o=c[a>>2]|0;do{if((o|0)==0){o=1}else{p=c[o+12>>2]|0;if((p|0)==(c[o+16>>2]|0)){o=Fc[c[(c[o>>2]|0)+36>>2]&255](o)|0}else{o=c[p>>2]|0}if((o|0)==-1){c[a>>2]=0;o=1;break}else{o=(c[a>>2]|0)==0;break}}}while(0);do{if((n|0)==0){q=1;n=0}else{p=c[n+12>>2]|0;if((p|0)==(c[n+16>>2]|0)){n=Fc[c[(c[n>>2]|0)+36>>2]&255](n)|0}else{n=c[p>>2]|0}if((n|0)==-1){c[b>>2]=0;q=1;n=0;m=0;break}else{q=(m|0)==0;n=m;break}}}while(0);p=c[a>>2]|0;if(!((o^q)&(f|0)>0)){break}o=c[p+12>>2]|0;if((o|0)==(c[p+16>>2]|0)){o=Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0}else{o=c[o>>2]|0}if(!(Hc[c[(c[k>>2]|0)+12>>2]&63](e,2048,o)|0)){h=63;break}o=((Hc[c[(c[j>>2]|0)+52>>2]&63](e,o,0)|0)<<24>>24)+(l*10|0)|0;p=c[a>>2]|0;l=p+12|0;q=c[l>>2]|0;if((q|0)==(c[p+16>>2]|0)){Fc[c[(c[p>>2]|0)+40>>2]&255](p)|0;continue}else{c[l>>2]=q+4;continue}}if((h|0)==63){i=g;return l|0}do{if((p|0)==0){a=1}else{e=c[p+12>>2]|0;if((e|0)==(c[p+16>>2]|0)){e=Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0}else{e=c[e>>2]|0}if((e|0)==-1){c[a>>2]=0;a=1;break}else{a=(c[a>>2]|0)==0;break}}}while(0);do{if((m|0)==0){h=60}else{e=c[m+12>>2]|0;if((e|0)==(c[m+16>>2]|0)){e=Fc[c[(c[m>>2]|0)+36>>2]&255](m)|0}else{e=c[e>>2]|0}if((e|0)==-1){c[b>>2]=0;h=60;break}if(!a){break}i=g;return l|0}}while(0);do{if((h|0)==60){if(a){break}i=g;return l|0}}while(0);c[d>>2]=c[d>>2]|2;q=l;i=g;return q|0}function bq(b){b=b|0;var d=0,e=0,f=0;d=b+8|0;e=c[d>>2]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}f=Xa(2147483647,14472,0)|0;c[8330]=f}}while(0);if((e|0)==(c[8330]|0)){f=b|0;Sl(f);f=b;Pu(f);return}pb(c[d>>2]|0);f=b|0;Sl(f);f=b;Pu(f);return}function cq(b){b=b|0;var d=0,e=0,f=0;d=b+8|0;e=c[d>>2]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}f=Xa(2147483647,14472,0)|0;c[8330]=f}}while(0);if((e|0)==(c[8330]|0)){f=b|0;Sl(f);return}pb(c[d>>2]|0);f=b|0;Sl(f);return}function dq(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0;f=i;i=i+112|0;p=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[p>>2];p=f|0;l=f+8|0;g=l|0;n=p|0;a[n]=37;m=p+1|0;a[m]=j;o=p+2|0;a[o]=k;a[p+3|0]=0;if(!(k<<24>>24==0)){a[m]=k;a[o]=j}p=gc(g|0,100,n|0,h|0,c[d+8>>2]|0)|0;d=l+p|0;k=c[e>>2]|0;if((p|0)==0){o=k;p=b|0;c[p>>2]=o;i=f;return}else{e=k}do{j=a[g]|0;do{if((e|0)==0){e=0}else{l=e+24|0;h=c[l>>2]|0;if((h|0)==(c[e+28>>2]|0)){j=(Qc[c[(c[e>>2]|0)+52>>2]&63](e,j&255)|0)==-1;e=j?0:e;k=j?0:k;break}else{c[l>>2]=h+1;a[h]=j;break}}}while(0);g=g+1|0;}while((g|0)!=(d|0));p=b|0;c[p>>2]=k;i=f;return}function eq(b){b=b|0;var d=0,e=0,f=0;d=b+8|0;e=c[d>>2]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}f=Xa(2147483647,14472,0)|0;c[8330]=f}}while(0);if((e|0)==(c[8330]|0)){f=b|0;Sl(f);f=b;Pu(f);return}pb(c[d>>2]|0);f=b|0;Sl(f);f=b;Pu(f);return}function fq(b){b=b|0;var d=0,e=0,f=0;d=b+8|0;e=c[d>>2]|0;do{if((a[51808]|0)==0){if((ub(51808)|0)==0){break}f=Xa(2147483647,14472,0)|0;c[8330]=f}}while(0);if((e|0)==(c[8330]|0)){f=b|0;Sl(f);return}pb(c[d>>2]|0);f=b|0;Sl(f);return}function gq(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0;f=i;i=i+408|0;l=d;k=i;i=i+4|0;i=i+7&-8;c[k>>2]=c[l>>2];l=f|0;e=f+400|0;d=l|0;c[e>>2]=l+400;hq(b+8|0,d,e,g,h,j);h=c[e>>2]|0;b=c[k>>2]|0;if((d|0)==(h|0)){k=b;l=a|0;c[l>>2]=k;i=f;return}else{g=b}do{k=c[d>>2]|0;if((g|0)==0){g=0}else{j=g+24|0;e=c[j>>2]|0;if((e|0)==(c[g+28>>2]|0)){k=Qc[c[(c[g>>2]|0)+52>>2]&63](g,k)|0}else{c[j>>2]=e+4;c[e>>2]=k}j=(k|0)==-1;g=j?0:g;b=j?0:b}d=d+4|0;}while((d|0)!=(h|0));l=a|0;c[l>>2]=b;i=f;return}function hq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=i;i=i+120|0;q=j|0;k=j+112|0;l=i;i=i+4|0;i=i+7&-8;m=j+8|0;o=q|0;a[o]=37;p=q+1|0;a[p]=g;n=q+2|0;a[n]=h;a[q+3|0]=0;if(!(h<<24>>24==0)){a[p]=h;a[n]=g}g=b|0;gc(m|0,100,o|0,f|0,c[g>>2]|0)|0;c[k>>2]=0;c[k+4>>2]=0;c[l>>2]=m;q=(c[e>>2]|0)-d>>2;m=bc(c[g>>2]|0)|0;k=bu(d,l,q,k)|0;if((m|0)!=0){bc(m|0)|0}if((k|0)==-1){dr(8296)}else{c[e>>2]=d+(k<<2);i=j;return}}function iq(a){a=a|0;Sl(a|0);Pu(a);return}function jq(a){a=a|0;Sl(a|0);return}function kq(a){a=a|0;return 127}function lq(a){a=a|0;return 127}function mq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function nq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function oq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function pq(a,b){a=a|0;b=b|0;qm(a,1,45);return}function qq(a){a=a|0;return 0}function rq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function sq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function tq(a){a=a|0;Sl(a|0);Pu(a);return}function uq(a){a=a|0;Sl(a|0);return}function vq(a){a=a|0;return 127}function wq(a){a=a|0;return 127}function xq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function yq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function zq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Aq(a,b){a=a|0;b=b|0;qm(a,1,45);return}function Bq(a){a=a|0;return 0}function Cq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function Dq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function Eq(a){a=a|0;Sl(a|0);Pu(a);return}function Fq(a){a=a|0;Sl(a|0);return}function Gq(a){a=a|0;return 2147483647}function Hq(a){a=a|0;return 2147483647}function Iq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Jq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Kq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Lq(a,b){a=a|0;b=b|0;Bm(a,1,45);return}function Mq(a){a=a|0;return 0}function Nq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function Oq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function Pq(a){a=a|0;Sl(a|0);Pu(a);return}function Qq(a){a=a|0;Sl(a|0);return}function Rq(a){a=a|0;return 2147483647}function Sq(a){a=a|0;return 2147483647}function Tq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Uq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Vq(a,b){a=a|0;b=b|0;dv(a|0,0,12)|0;return}function Wq(a,b){a=a|0;b=b|0;Bm(a,1,45);return}function Xq(a){a=a|0;return 0}function Yq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function Zq(b,c){b=b|0;c=c|0;c=b;C=67109634;a[c]=C;C=C>>8;a[c+1|0]=C;C=C>>8;a[c+2|0]=C;C=C>>8;a[c+3|0]=C;return}function _q(a){a=a|0;Sl(a|0);Pu(a);return}function $q(a){a=a|0;Sl(a|0);return}function ar(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;l=i;i=i+280|0;y=e;e=i;i=i+4|0;i=i+7&-8;c[e>>2]=c[y>>2];y=f;f=i;i=i+4|0;i=i+7&-8;c[f>>2]=c[y>>2];y=l|0;v=l+16|0;t=l+120|0;p=l+128|0;w=l+136|0;r=l+144|0;u=l+152|0;q=l+160|0;s=l+176|0;d=t|0;c[d>>2]=v;m=t+4|0;c[m>>2]=194;v=v+100|0;Lm(w,h);o=w|0;x=c[o>>2]|0;if(!((c[8716]|0)==-1)){c[y>>2]=34864;c[y+4>>2]=16;c[y+8>>2]=0;mm(34864,y,114)}z=(c[8717]|0)-1|0;y=c[x+8>>2]|0;do{if((c[x+12>>2]|0)-y>>2>>>0>z>>>0){y=c[y+(z<<2)>>2]|0;if((y|0)==0){break}x=y;a[r]=0;f=f|0;c[u>>2]=c[f>>2];do{if(cr(e,u,g,w,c[h+4>>2]|0,j,r,x,t,p,v)|0){h=q|0;Sc[c[(c[y>>2]|0)+32>>2]&15](x,19160,19170,h)|0;s=s|0;v=c[p>>2]|0;t=c[d>>2]|0;g=v-t|0;do{if((g|0)>98){g=Gu(g+2|0)|0;if((g|0)!=0){u=g;break}Uu();u=0;g=0}else{u=s;g=0}}while(0);if((a[r]|0)!=0){a[u]=45;u=u+1|0}if(t>>>0<v>>>0){r=q+10|0;do{v=a[t]|0;x=h;while(1){w=x+1|0;if((a[x]|0)==v<<24>>24){break}if((w|0)==(r|0)){x=r;break}else{x=w}}a[u]=a[19160+(x-q)|0]|0;t=t+1|0;u=u+1|0;}while(t>>>0<(c[p>>2]|0)>>>0)}a[u]=0;z=dc(s|0,15784,(y=i,i=i+8|0,c[y>>2]=k,y)|0)|0;i=y;if((z|0)==1){if((g|0)==0){break}Hu(g);break}z=pc(8)|0;_l(z,15400);Fb(z|0,25560,30)}}while(0);k=e|0;e=c[k>>2]|0;do{if((e|0)==0){e=0}else{if((c[e+12>>2]|0)!=(c[e+16>>2]|0)){break}if(!((Fc[c[(c[e>>2]|0)+36>>2]&255](e)|0)==-1)){break}c[k>>2]=0;e=0}}while(0);k=(e|0)==0;p=c[f>>2]|0;do{if((p|0)==0){n=45}else{if((c[p+12>>2]|0)!=(c[p+16>>2]|0)){if(k){break}else{n=47;break}}if((Fc[c[(c[p>>2]|0)+36>>2]&255](p)|0)==-1){c[f>>2]=0;n=45;break}else{if(k){break}else{n=47;break}}}}while(0);if((n|0)==45){if(k){n=47}}if((n|0)==47){c[j>>2]=c[j>>2]|2}c[b>>2]=e;Ul(c[o>>2]|0)|0;b=c[d>>2]|0;c[d>>2]=0;if((b|0)==0){i=l;return}Dc[c[m>>2]&511](b);i=l;return}}while(0);z=pc(4)|0;lu(z);Fb(z|0,25544,156)}function br(a){a=a|0;return} - - - - -// EMSCRIPTEN_END_FUNCS -var Cc=[Rv,Rv,Vf,Rv,Nf,Rv,Bu,Rv,Cu,Rv,Qf,Rv,Au,Rv,Mf,Rv,Wf,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv,Rv];var Dc=[Sv,Sv,Hr,Sv,_n,Sv,pp,Sv,cm,Sv,jk,Sv,Om,Sv,Mr,Sv,Zr,Sv,Kl,Sv,Rh,Sv,xl,Sv,ap,Sv,Wl,Sv,Ls,Sv,am,Sv,yo,Sv,Ti,Sv,Qn,Sv,Mn,Sv,Xl,Sv,Xr,Sv,ls,Sv,Rp,Sv,zo,Sv,lu,Sv,En,Sv,Dr,Sv,Yr,Sv,qn,Sv,$n,Sv,Eq,Sv,Rr,Sv,yj,Sv,it,Sv,qu,Sv,ht,Sv,Kn,Sv,am,Sv,Wn,Sv,fk,Sv,jq,Sv,kt,Sv,_r,Sv,Hu,Sv,wr,Sv,gt,Sv,On,Sv,jj,Sv,un,Sv,wl,Sv,th,Sv,ck,Sv,Vn,Sv,eq,Sv,Xl,Sv,Ed,Sv,St,Sv,bp,Sv,Ws,Sv,rf,Sv,Fq,Sv,pn,Sv,Bn,Sv,bq,Sv,Qp,Sv,Nn,Sv,tq,Sv,Bk,Sv,Ru,Sv,Nm,Sv,Le,Sv,Vt,Sv,Wt,Sv,Fn,Sv,an,Sv,Si,Sv,vs,Sv,nu,Sv,rn,Sv,Ln,Sv,_q,Sv,ol,Sv,Pq,Sv,Gn,Sv,Vr,Sv,tu,Sv,Su,Sv,Yt,Sv,ru,Sv,Dl,Sv,Qr,Sv,vj,Sv,cq,Sv,jr,Sv,mu,Sv,ft,Sv,br,Sv,Oh,Sv,Xt,Sv,iq,Sv,op,Sv,Pn,Sv,El,Sv,Ut,Sv,Rn,Sv,wn,Sv,km,Sv,ql,Sv,Ds,Sv,qr,Sv,ir,Sv,sh,Sv,jt,Sv,xr,Sv,Cm,Sv,kj,Sv,Cd,Sv,nu,Sv,uu,Sv,An,Sv,Me,Sv,lm,Sv,bk,Sv,on,Sv,pu,Sv,ik,Sv,qf,Sv,Be,Sv,Dn,Sv,gk,Sv,Cr,Sv,hk,Sv,Km,Sv,zn,Sv,Ll,Sv,Tr,Sv,Qq,Sv,Cp,Sv,uq,Sv,Ne,Sv,Fe,Sv,vn,Sv,$m,Sv,yn,Sv,xj,Sv,Dp,Sv,su,Sv,Ir,Sv,pl,Sv,tn,Sv,ek,Sv,fq,Sv,Ee,Sv,Ck,Sv,rr,Sv,$q,Sv,rm,Sv,ms,Sv,$l,Sv,kl,Sv,Zt,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv,Sv];var Ec=[Tv,Tv,tt,Tv,Vq,Tv,xq,Tv,qt,Tv,Oq,Tv,pt,Tv,Dq,Tv,zj,Tv,rl,Tv,ak,Tv,Gr,Tv,Jq,Tv,pq,Tv,Yq,Tv,Lq,Tv,oq,Tv,Tq,Tv,mq,Tv,Wq,Tv,Ur,Tv,Fl,Tv,yl,Tv,Zq,Tv,Dd,Tv,st,Tv,Yf,Tv,yq,Tv,_l,Tv,ut,Tv,Nq,Tv,Aq,Tv,rt,Tv,Cq,Tv,Pm,Tv,Ml,Tv,Lr,Tv,Iq,Tv,$j,Tv,sq,Tv,rq,Tv,nq,Tv,bn,Tv,Kq,Tv,Ge,Tv,Uq,Tv,zq,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv,Tv];var Fc=[Uv,Uv,It,Uv,Hq,Uv,Wm,Uv,As,Uv,yt,Uv,Xm,Uv,bt,Uv,Gt,Uv,vq,Uv,Ep,Uv,wt,Uv,Ol,Uv,kn,Uv,jn,Uv,at,Uv,Ct,Uv,At,Uv,ou,Uv,bm,Uv,lt,Uv,Bt,Uv,Ft,Uv,mt,Uv,Tm,Uv,zs,Uv,Xq,Uv,Dt,Uv,sl,Uv,wq,Uv,Ss,Uv,Rq,Uv,vt,Uv,zl,Uv,Tu,Uv,In,Uv,qq,Uv,Al,Uv,nt,Uv,Um,Uv,fn,Uv,Gl,Uv,Cs,Uv,Bq,Uv,Ht,Uv,Nl,Uv,Rs,Uv,Is,Uv,gn,Uv,kq,Uv,xt,Uv,lq,Uv,Yl,Uv,Ik,Uv,Gq,Uv,Ks,Uv,Mq,Uv,zt,Uv,Sq,Uv,Hs,Uv,Sp,Uv,ot,Uv,Et,Uv,Vs,Uv,et,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv,Uv];var Gc=[Vv,Vv,ks,Vv,Qs,Vv,Xn,Vv,ct,Vv,Ts,Vv,us,Vv,Gs,Vv,Sn,Vv,ys,Vv,Bs,Vv,$s,Vv,Js,Vv,Vv,Vv,Vv,Vv,Vv,Vv];var Hc=[Wv,Wv,Un,Wv,os,Wv,gs,Wv,vu,Wv,js,Wv,Zn,Wv,fm,Wv,Zm,Wv,Vm,Wv,$r,Wv,cn,Wv,Jr,Wv,ts,Wv,es,Wv,tl,Wv,gm,Wv,hn,Wv,qs,Wv,Er,Wv,Qm,Wv,Hl,Wv,mn,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv,Wv];var Ic=[Xv,Xv,zp,Xv,xp,Xv,mp,Xv,jp,Xv,Xv,Xv,Xv,Xv,Xv,Xv];var Jc=[Yv,Yv,gh,Yv,qh,Yv,ch,Yv,Hg,Yv,gq,Yv,fh,Yv,ph,Yv,dq,Yv,eh,Yv,mh,Yv,oh,Yv,ih,Yv,hh,Yv,ar,Yv,kr,Yv,jh,Yv,lh,Yv,nh,Yv,er,Yv,kh,Yv,Ng,Yv,rh,Yv,mr,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv,Yv];var Kc=[Zv,Zv,Du,Zv,vp,Zv,rp,Zv,qp,Zv,Eu,Zv,Ap,Zv,Fr,Zv,dn,Zv,np,Zv,Ag,Zv,cp,Zv,hp,Zv,dp,Zv,Fu,Zv,Rm,Zv,Kr,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv,Zv];var Lc=[_v,_v,Gg,_v];var Mc=[$v,$v,Jp,$v,Tp,$v,Tg,$v,_g,$v,Vp,$v,Br,$v,Wg,$v,wp,$v,up,$v,vr,$v,$g,$v,Fp,$v,Mg,$v,Og,$v,Dg,$v,ah,$v,Ip,$v,Ug,$v,Wp,$v,Eg,$v,ip,$v,Rg,$v,Oo,$v,Yg,$v,Uo,$v,Qg,$v,Hp,$v,Vg,$v,Io,$v,Up,$v,gp,$v,Xg,$v,Mo,$v,Eo,$v,Go,$v,vo,$v,Ko,$v,Co,$v,Ao,$v,So,$v,Qo,$v,bh,$v,Sg,$v,Xp,$v,jo,$v,Gp,$v,no,$v,fo,$v,ho,$v,lo,$v,co,$v,to,$v,ro,$v,po,$v,ao,$v,Zg,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v,$v];var Nc=[aw,aw,yr,aw,sr,aw,aw,aw];var Oc=[bw,bw,Bg,bw,Yp,bw,Ig,bw,Kp,bw,bw,bw,bw,bw,bw,bw];var Pc=[cw,cw,Jg,cw,Lg,cw,Fg,cw,Kg,cw,cw,cw,cw,cw,cw,cw];var Qc=[dw,dw,ps,dw,Pl,dw,hs,dw,ln,dw,rs,dw,of,dw,ns,dw,Bl,dw,Il,dw,ds,dw,pf,dw,nn,dw,fs,dw,_m,dw,Ym,dw,ul,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw,dw];var Rc=[ew,ew,Cg,ew];var Sc=[fw,fw,as,fw,Mh,fw,bs,fw,ss,fw,is,fw,cs,fw,fw,fw];var Tc=[gw,gw,yg,gw,Xf,gw,xg,gw,qg,gw,Uf,gw,gg,gw,tg,gw,jg,gw,wg,gw,ug,gw,Of,gw,$f,gw,zg,gw,Zf,gw,kg,gw,sg,gw,em,gw,Jn,gw,ig,gw,Tf,gw,Nh,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw,gw];var Uc=[hw,hw,vv,hw];var Vc=[iw,iw,Es,iw,Os,iw,Ms,iw,Zs,iw,Fs,iw,Xs,iw,ws,iw,xs,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw,iw];var Wc=[jw,jw,eg,jw,cg,jw,xu,jw,yu,jw,ag,jw,lg,jw,dg,jw,Pf,jw,ng,jw,Sf,jw,wu,jw,og,jw,pg,jw,fg,jw,Sm,jw,Yn,jw,en,jw,Rf,jw,Tn,jw,_f,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw,jw];return{_de265_get_error_text:Nd,_strlen:ev,_de265_get_image_plane_user_data:pe,_de265_release_next_picture:_d,_de265_push_end_of_NAL:Vd,_de265_get_highest_TID:$d,_de265_free_decoder:Qd,_de265_set_limit_TID:be,_de265_get_image_plane:oe,_de265_get_parameter_bool:he,_de265_get_version:Ld,_de265_change_framerate:de,_de265_get_image_width:ke,_de265_set_parameter_int:ge,_de265_get_current_TID:ae,_memset:dv,_de265_isOK:Od,_de265_push_end_of_frame:Wd,_memcpy:cv,_de265_set_framerate_ratio:ce,_de265_get_bits_per_pixel:me,_de265_get_chroma_format:ne,_de265_get_image_user_data:re,_de265_get_version_number:Md,_de265_get_image_PTS:qe,_de265_get_number_of_input_bytes_pending:ie,_de265_flush_data:Sd,_realloc:Iu,_de265_new_decoder:Pd,_de265_get_number_of_NAL_units_pending:je,_de265_get_next_picture:Yd,_de265_peek_next_picture:Zd,_de265_decode:Td,_de265_set_parameter_bool:fe,_de265_push_NAL:Ud,_free:Hu,_memmove:fv,__GLOBAL__I_a:Rl,_de265_set_verbosity:Xk,_de265_get_image_height:le,_de265_reset:Xd,_malloc:Gu,_emscripten_replace_memory:gv,_de265_get_warning:ee,_de265_push_data:Rd,_de265_set_image_user_data:se,runPostSets:ld,stackAlloc:Xc,stackSave:Yc,stackRestore:Zc,setThrew:_c,setTempRet0:bd,setTempRet1:cd,setTempRet2:dd,setTempRet3:ed,setTempRet4:fd,setTempRet5:gd,setTempRet6:hd,setTempRet7:id,setTempRet8:jd,setTempRet9:kd,dynCall_viiiii:wv,dynCall_vi:xv,dynCall_vii:yv,dynCall_ii:zv,dynCall_iiiiii:Av,dynCall_iiii:Bv,dynCall_viiiiid:Cv,dynCall_viiiiiiii:Dv,dynCall_viiiiii:Ev,dynCall_viiiiiiiiiiiii:Fv,dynCall_viiiiiii:Gv,dynCall_viiiiiid:Hv,dynCall_viiiiiiiii:Iv,dynCall_viiiiiiiiii:Jv,dynCall_iii:Kv,dynCall_viiiiiiiiiiii:Lv,dynCall_iiiii:Mv,dynCall_viii:Nv,dynCall_v:Ov,dynCall_iiiiiiiii:Pv,dynCall_viiii:Qv} -// EMSCRIPTEN_END_ASM - -})({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:ga,assert:K,asmPrintInt:function(a,b){e.print("int "+a+","+b)},asmPrintFloat:function(a,b){e.print("float "+a+","+b)},min:Ka,invoke_viiiii:function(a,b,c,d,i,h){try{e.dynCall_viiiii(a,b,c,d,i,h)}catch(g){"number"!==typeof g&&"longjmp"!==g&&l(g),k.setThrew(1, -0)}},invoke_vi:function(a,b){try{e.dynCall_vi(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&l(c),k.setThrew(1,0)}},invoke_vii:function(a,b,c){try{e.dynCall_vii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&l(d),k.setThrew(1,0)}},invoke_ii:function(a,b){try{return e.dynCall_ii(a,b)}catch(c){"number"!==typeof c&&"longjmp"!==c&&l(c),k.setThrew(1,0)}},invoke_iiiiii:function(a,b,c,d,i,h){try{return e.dynCall_iiiiii(a,b,c,d,i,h)}catch(g){"number"!==typeof g&&"longjmp"!==g&&l(g),k.setThrew(1,0)}}, -invoke_iiii:function(a,b,c,d){try{return e.dynCall_iiii(a,b,c,d)}catch(i){"number"!==typeof i&&"longjmp"!==i&&l(i),k.setThrew(1,0)}},invoke_viiiiid:function(a,b,c,d,i,h,g){try{e.dynCall_viiiiid(a,b,c,d,i,h,g)}catch(j){"number"!==typeof j&&"longjmp"!==j&&l(j),k.setThrew(1,0)}},invoke_viiiiiiii:function(a,b,c,d,i,h,g,j,n){try{e.dynCall_viiiiiiii(a,b,c,d,i,h,g,j,n)}catch(r){"number"!==typeof r&&"longjmp"!==r&&l(r),k.setThrew(1,0)}},invoke_viiiiii:function(a,b,c,d,i,h,g){try{e.dynCall_viiiiii(a,b,c,d, -i,h,g)}catch(j){"number"!==typeof j&&"longjmp"!==j&&l(j),k.setThrew(1,0)}},invoke_viiiiiiiiiiiii:function(a,b,c,d,i,h,g,j,n,r,m,q,w,B){try{e.dynCall_viiiiiiiiiiiii(a,b,c,d,i,h,g,j,n,r,m,q,w,B)}catch(C){"number"!==typeof C&&"longjmp"!==C&&l(C),k.setThrew(1,0)}},invoke_viiiiiii:function(a,b,c,d,i,h,g,j){try{e.dynCall_viiiiiii(a,b,c,d,i,h,g,j)}catch(n){"number"!==typeof n&&"longjmp"!==n&&l(n),k.setThrew(1,0)}},invoke_viiiiiid:function(a,b,c,d,i,h,g,j){try{e.dynCall_viiiiiid(a,b,c,d,i,h,g,j)}catch(n){"number"!== -typeof n&&"longjmp"!==n&&l(n),k.setThrew(1,0)}},invoke_viiiiiiiii:function(a,b,c,d,i,h,g,j,n,r){try{e.dynCall_viiiiiiiii(a,b,c,d,i,h,g,j,n,r)}catch(m){"number"!==typeof m&&"longjmp"!==m&&l(m),k.setThrew(1,0)}},invoke_viiiiiiiiii:function(a,b,c,d,i,h,g,j,n,r,m){try{e.dynCall_viiiiiiiiii(a,b,c,d,i,h,g,j,n,r,m)}catch(q){"number"!==typeof q&&"longjmp"!==q&&l(q),k.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return e.dynCall_iii(a,b,c)}catch(d){"number"!==typeof d&&"longjmp"!==d&&l(d),k.setThrew(1,0)}}, -invoke_viiiiiiiiiiii:function(a,b,c,d,i,h,g,j,n,r,m,q,w){try{e.dynCall_viiiiiiiiiiii(a,b,c,d,i,h,g,j,n,r,m,q,w)}catch(B){"number"!==typeof B&&"longjmp"!==B&&l(B),k.setThrew(1,0)}},invoke_iiiii:function(a,b,c,d,i){try{return e.dynCall_iiiii(a,b,c,d,i)}catch(h){"number"!==typeof h&&"longjmp"!==h&&l(h),k.setThrew(1,0)}},invoke_viii:function(a,b,c,d){try{e.dynCall_viii(a,b,c,d)}catch(i){"number"!==typeof i&&"longjmp"!==i&&l(i),k.setThrew(1,0)}},invoke_v:function(a){try{e.dynCall_v(a)}catch(b){"number"!== -typeof b&&"longjmp"!==b&&l(b),k.setThrew(1,0)}},invoke_iiiiiiiii:function(a,b,c,d,i,h,g,j,n){try{return e.dynCall_iiiiiiiii(a,b,c,d,i,h,g,j,n)}catch(r){"number"!==typeof r&&"longjmp"!==r&&l(r),k.setThrew(1,0)}},invoke_viiii:function(a,b,c,d,i){try{e.dynCall_viiii(a,b,c,d,i)}catch(h){"number"!==typeof h&&"longjmp"!==h&&l(h),k.setThrew(1,0)}},_llvm_lifetime_end:H(),__scanString:S,_pthread_mutex_lock:H(),___cxa_end_catch:Pa,_strtoull:jc,_fflush:H(),__isLeapYear:Ea,_fwrite:Vb,_send:function(a,b,c){return!L.Yd(a)? -(P(i.S),-1):pb(a,b,c)},_pthread_mutex_init:H(),_llvm_umul_with_overflow_i32:function(a,b){a>>>=0;b>>>=0;return(k.setTempRet0(4294967295<a*b),a*b>>>0)|0},_isspace:ic,_read:vb,_isxdigit_l:function(a){return ac(a)},_fileno:Ub,___cxa_guard_abort:H(),_newlocale:function(){return W(4)},___gxx_personality_v0:H(),_pthread_cond_wait:U(0),___cxa_rethrow:function(){Pa.se=s;l(tb.pop()+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")}, -_fmod:function(a,b){return a%b},___resumeException:function(a){ya||(ya=a);l(a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.")},_llvm_va_end:H(),_vsscanf:function(a,b,c){return dc(a,b,u[c>>2])},_snprintf:ub,_fgetc:Qa,__getFloat:cc,_pthread_cond_signal:function(){l("TODO: "+aborter)},___cxa_free_exception:Sb,_isdigit_l:function(a){return bc(a)},___setErrNo:P,_isxdigit:ac,_exit:function(a){sb(a)}, -_sprintf:Yb,_asprintf:lc,___ctype_b_loc:ec,_freelocale:function(a){Ma(a)},_catgets:function(a,b,c,d){return d},___cxa_is_number_type:lb,_llvm_uadd_with_overflow_i32:function(a,b){a>>>=0;b>>>=0;return(k.setTempRet0(4294967295<a+b),a+b>>>0)|0},___cxa_does_inherit:La,___cxa_guard_acquire:function(a){return!x[a]?x[a]=1:0},___cxa_begin_catch:function(a){wa.kd--;tb.push(ya);return a},_emscripten_memcpy_big:function(a,b,c){N.set(N.subarray(b,b+c),a);return a},_recv:function(a,b,c){return!L.Yd(a)?(P(i.S), --1):vb(a,b,c)},__parseInt64:wb,__ZSt18uncaught_exceptionv:wa,__ZNSt9exceptionD2Ev:H(),_mkport:Tb,_copysign:function(a,b){return Oa(a)===Oa(b)?a:-a},__exit:sb,_strftime:hc,___cxa_throw:mb,_printf:function(a,b){return rb(u[Aa>>2],a,b)},_pread:function(a,b,c,e){a=d.Aa(a);if(!a)return P(i.S),-1;try{return d.O(a,x,b,c,e)}catch(k){return d.bc(k),-1}},_strtoull_l:function(a,b,c){return jc(a,b,c)},__arraySum:Sa,_sysconf:function(a){switch(a){case 30:return 4096;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 79: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 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32; -case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return 1}P(i.C);return-1},_strtoll_l:function(a,b,c){return kc(a,b,c)},___cxa_find_matching_catch:function(a, -b){-1==a&&(a=ya);header=a-xa;-1==b&&(b=u[header>>2]);var c=Array.prototype.slice.call(arguments,2);0!=b&&!lb(b)&&0==u[u[b>>2]-8>>2]&&(a=u[a>>2]);for(var d=0;d<c.length;d++)if(La(c[d],b,a))return(k.setTempRet0(c[d]),a)|0;return(k.setTempRet0(b),a)|0},__formatString:qb,_pthread_cond_broadcast:U(0),__ZSt9terminatev:function(){sb(-1234)},_vfprintf:function(a,b,c){return rb(a,b,u[c>>2])},_pthread_mutex_unlock:H(),___cxa_call_unexpected:function(a){e.Ca("Unexpected exception thrown, this is not properly supported - aborting"); -qa=s;l(a)},_sbrk:mc,_atexit:function(a,b){Ga.unshift({qa:a,Mb:b})},___errno_location:function(){return Na},_strerror:Da,_pthread_mutex_destroy:H(),_catclose:U(0),_llvm_lifetime_start:H(),___cxa_guard_release:H(),_ungetc:function(a,b){b=d.ub(b);if(!b)return-1;if(-1===a)return a;a=ib(a&255);b.qc.push(a);b.Rd=G;return a},_pthread_cond_destroy:H(),_uselocale:U(0),_vsnprintf:function(a,b,c,d){return ub(a,b,c,u[d>>2])},_sscanf:dc,___assert_fail:function(a,b,c,d){qa=s;l("Assertion failed: "+Y(a)+", at: "+ -[b?Y(b):"unknown filename",c,d?Y(d):"unknown function"]+" at "+gb())},_fread:Zb,_strftime_l:function(a,b,c,d){return hc(a,b,c,d)},_abort:function(){e.abort()},_fprintf:rb,_isdigit:bc,_strtoll:kc,__addDays:Fa,_fabs:Dc,__reallyNegative:Oa,_write:pb,___cxa_allocate_exception:function(a){return W(a+xa)+xa},___cxa_pure_virtual:function(){qa=s;l("Pure virtual function called!")},_vasprintf:function(a,b,c){return lc(a,b,u[c>>2])},_catopen:U(-1),___ctype_toupper_loc:gc,___ctype_tolower_loc:fc,_pthread_join:function(){l("TODO: "+ -aborter)},_pthread_cond_init:H(),_pwrite:function(a,b,c,e){a=d.Aa(a);if(!a)return P(i.S),-1;try{return d.write(a,x,b,c,e)}catch(k){return d.bc(k),-1}},_strerror_r:$b,_pthread_create:function(){e.printErr("missing function: pthread_create");ga(-1)},_time:function(a){var b=Math.floor(Date.now()/1E3);a&&(u[a>>2]=b);return b},STACKTOP:aa,STACK_MAX:Cb,tempDoublePtr:ja,ABORT:qa,cttz_i8:Fc,ctlz_i8:Ec,NaN:NaN,Infinity:Infinity,_stdin:Ha,__ZTVN10__cxxabiv117__class_type_infoE:nb,_stderr:Ia,__ZTISt9exception:Eb, -__ZTVN10__cxxabiv120__si_class_type_infoE:ob,_stdout:Aa,___dso_handle:Db},da);e._de265_get_error_text=k._de265_get_error_text;var Wb=e._strlen=k._strlen;e._de265_get_image_plane_user_data=k._de265_get_image_plane_user_data;e._de265_release_next_picture=k._de265_release_next_picture;e._de265_push_end_of_NAL=k._de265_push_end_of_NAL;e._de265_get_highest_TID=k._de265_get_highest_TID;e._de265_free_decoder=k._de265_free_decoder;e._de265_set_limit_TID=k._de265_set_limit_TID;e._de265_get_image_plane=k._de265_get_image_plane; -e._de265_get_parameter_bool=k._de265_get_parameter_bool;e._de265_get_version=k._de265_get_version;e._de265_change_framerate=k._de265_change_framerate;e._de265_get_image_width=k._de265_get_image_width;e._de265_set_parameter_int=k._de265_set_parameter_int;e._de265_get_current_TID=k._de265_get_current_TID;var Bc=e._memset=k._memset;e._de265_isOK=k._de265_isOK;e._de265_push_end_of_frame=k._de265_push_end_of_frame;var Ac=e._memcpy=k._memcpy;e._de265_set_framerate_ratio=k._de265_set_framerate_ratio;e._de265_get_bits_per_pixel= -k._de265_get_bits_per_pixel;e._de265_get_chroma_format=k._de265_get_chroma_format;e._de265_get_image_user_data=k._de265_get_image_user_data;e._de265_get_version_number=k._de265_get_version_number;e._de265_get_image_PTS=k._de265_get_image_PTS;e._de265_get_number_of_input_bytes_pending=k._de265_get_number_of_input_bytes_pending;e._de265_flush_data=k._de265_flush_data;e._realloc=k._realloc;e._de265_new_decoder=k._de265_new_decoder;e._de265_get_number_of_NAL_units_pending=k._de265_get_number_of_NAL_units_pending; -e._de265_get_next_picture=k._de265_get_next_picture;e._de265_peek_next_picture=k._de265_peek_next_picture;e._de265_decode=k._de265_decode;e._de265_set_parameter_bool=k._de265_set_parameter_bool;e._de265_push_NAL=k._de265_push_NAL;var Ma=e._free=k._free,Cc=e._memmove=k._memmove,zc=e.__GLOBAL__I_a=k.__GLOBAL__I_a;e._de265_set_verbosity=k._de265_set_verbosity;e._de265_get_image_height=k._de265_get_image_height;e._de265_reset=k._de265_reset;var W=e._malloc=k._malloc,rc=e._emscripten_replace_memory=k._emscripten_replace_memory; -e._de265_get_warning=k._de265_get_warning;e._de265_push_data=k._de265_push_data;e._de265_set_image_user_data=k._de265_set_image_user_data;var yc=e.runPostSets=k.runPostSets;e.dynCall_viiiii=k.dynCall_viiiii;e.dynCall_vi=k.dynCall_vi;e.dynCall_vii=k.dynCall_vii;e.dynCall_ii=k.dynCall_ii;e.dynCall_iiiiii=k.dynCall_iiiiii;e.dynCall_iiii=k.dynCall_iiii;e.dynCall_viiiiid=k.dynCall_viiiiid;e.dynCall_viiiiiiii=k.dynCall_viiiiiiii;e.dynCall_viiiiii=k.dynCall_viiiiii;e.dynCall_viiiiiiiiiiiii=k.dynCall_viiiiiiiiiiiii; -e.dynCall_viiiiiii=k.dynCall_viiiiiii;e.dynCall_viiiiiid=k.dynCall_viiiiiid;e.dynCall_viiiiiiiii=k.dynCall_viiiiiiiii;e.dynCall_viiiiiiiiii=k.dynCall_viiiiiiiiii;e.dynCall_iii=k.dynCall_iii;e.dynCall_viiiiiiiiiiii=k.dynCall_viiiiiiiiiiii;e.dynCall_iiiii=k.dynCall_iiiii;e.dynCall_viii=k.dynCall_viii;e.dynCall_v=k.dynCall_v;e.dynCall_iiiiiiiii=k.dynCall_iiiiiiiii;e.dynCall_viiii=k.dynCall_viiii;t.ed=function(a){return k.stackAlloc(a)};t.gd=function(){return k.stackSave()};t.fd=function(a){k.stackRestore(a)}; -var za=function(){function a(a,b){this.D=a|0;this.J=b|0}function b(a,b){a!=v&&("number"==typeof a?this.Y(a):b==v&&"string"!=typeof a?this.N(a,256):this.N(a,b))}function c(){return new b(v)}function d(a,b){var c=h[a.charCodeAt(b)];return c==v?-1:c}function e(a){var b=c();b.wa(a);return b}a.ud={};a.wa=function(b){if(-128<=b&&128>b){var c=a.ud[b];if(c)return c}c=new a(b|0,0>b?-1:0);-128<=b&&128>b&&(a.ud[b]=c);return c};a.Y=function(b){return isNaN(b)||!isFinite(b)?a.ZERO:b<=-a.xd?a.MIN_VALUE:b+1>=a.xd? -a.MAX_VALUE:0>b?a.Y(-b).G():new a(b%a.ta|0,b/a.ta|0)};a.pa=function(b,c){return new a(b,c)};a.N=function(b,c){0==b.length&&l(Error("number format error: empty string"));var d=c||10;(2>d||36<d)&&l(Error("radix out of range: "+d));if("-"==b.charAt(0))return a.N(b.substring(1),d).G();0<=b.indexOf("-")&&l(Error('number format error: interior "-" character: '+b));for(var e=a.Y(Math.pow(d,8)),f=a.ZERO,g=0;g<b.length;g+=8){var h=Math.min(8,b.length-g),i=parseInt(b.substring(g,g+h),d);8>h?(h=a.Y(Math.pow(d, -h)),f=f.multiply(h).add(a.Y(i))):(f=f.multiply(e),f=f.add(a.Y(i)))}return f};a.wc=65536;a.Xh=16777216;a.ta=a.wc*a.wc;a.Yh=a.ta/2;a.Zh=a.ta*a.wc;a.Qe=a.ta*a.ta;a.xd=a.Qe/2;a.ZERO=a.wa(0);a.ONE=a.wa(1);a.vd=a.wa(-1);a.MAX_VALUE=a.pa(-1,2147483647);a.MIN_VALUE=a.pa(0,-2147483648);a.wd=a.wa(16777216);a.prototype.pc=function(){return this.J*a.ta+this.zf()};a.prototype.toString=function(b){b=b||10;(2>b||36<b)&&l(Error("radix out of range: "+b));if(this.La())return"0";if(this.T()){if(this.X(a.MIN_VALUE)){var c= -a.Y(b),d=this.Ia(c),c=d.multiply(c).Cb(this);return d.toString(b)+c.D.toString(b)}return"-"+this.G().toString(b)}for(var d=a.Y(Math.pow(b,6)),c=this,e="";;){var f=c.Ia(d),g=c.Cb(f.multiply(d)).D.toString(b),c=f;if(c.La())return g+e;for(;6>g.length;)g="0"+g;e=""+g+e}};a.prototype.zf=function(){return 0<=this.D?this.D:a.ta+this.D};a.prototype.La=function(){return 0==this.J&&0==this.D};a.prototype.T=function(){return 0>this.J};a.prototype.fe=function(){return 1==(this.D&1)};a.prototype.X=function(a){return this.J== -a.J&&this.D==a.D};a.prototype.he=function(a){return 0>this.Cc(a)};a.prototype.Bf=function(a){return 0<this.Cc(a)};a.prototype.Cf=function(a){return 0<=this.Cc(a)};a.prototype.Cc=function(a){if(this.X(a))return 0;var b=this.T(),c=a.T();return b&&!c?-1:!b&&c?1:this.Cb(a).T()?-1:1};a.prototype.G=function(){return this.X(a.MIN_VALUE)?a.MIN_VALUE:this.Uf().add(a.ONE)};a.prototype.add=function(b){var c=this.J>>>16,d=this.J&65535,e=this.D>>>16,f=b.J>>>16,g=b.J&65535,h=b.D>>>16,i;i=0+((this.D&65535)+(b.D& -65535));b=0+(i>>>16);b+=e+h;e=0+(b>>>16);e+=d+g;d=0+(e>>>16);d=d+(c+f)&65535;return a.pa((b&65535)<<16|i&65535,d<<16|e&65535)};a.prototype.Cb=function(a){return this.add(a.G())};a.prototype.multiply=function(b){if(this.La()||b.La())return a.ZERO;if(this.X(a.MIN_VALUE))return b.fe()?a.MIN_VALUE:a.ZERO;if(b.X(a.MIN_VALUE))return this.fe()?a.MIN_VALUE:a.ZERO;if(this.T())return b.T()?this.G().multiply(b.G()):this.G().multiply(b).G();if(b.T())return this.multiply(b.G()).G();if(this.he(a.wd)&&b.he(a.wd))return a.Y(this.pc()* -b.pc());var c=this.J>>>16,d=this.J&65535,e=this.D>>>16,f=this.D&65535,g=b.J>>>16,h=b.J&65535,i=b.D>>>16,b=b.D&65535,j,k,n,t;t=0+f*b;n=0+(t>>>16);n+=e*b;k=0+(n>>>16);n=(n&65535)+f*i;k+=n>>>16;n&=65535;k+=d*b;j=0+(k>>>16);k=(k&65535)+e*i;j+=k>>>16;k&=65535;k+=f*h;j+=k>>>16;k&=65535;j=j+(c*b+d*i+e*h+f*g)&65535;return a.pa(n<<16|t&65535,j<<16|k)};a.prototype.Ia=function(b){b.La()&&l(Error("division by zero"));if(this.La())return a.ZERO;if(this.X(a.MIN_VALUE)){if(b.X(a.ONE)||b.X(a.vd))return a.MIN_VALUE; -if(b.X(a.MIN_VALUE))return a.ONE;var c=this.dg().Ia(b).shiftLeft(1);if(c.X(a.ZERO))return b.T()?a.ONE:a.vd;var d=this.Cb(b.multiply(c));return c.add(d.Ia(b))}if(b.X(a.MIN_VALUE))return a.ZERO;if(this.T())return b.T()?this.G().Ia(b.G()):this.G().Ia(b).G();if(b.T())return this.Ia(b.G()).G();for(var e=a.ZERO,d=this;d.Cf(b);){for(var c=Math.max(1,Math.floor(d.pc()/b.pc())),f=Math.ceil(Math.log(c)/Math.LN2),f=48>=f?1:Math.pow(2,f-48),g=a.Y(c),h=g.multiply(b);h.T()||h.Bf(d);)c-=f,g=a.Y(c),h=g.multiply(b); -g.La()&&(g=a.ONE);e=e.add(g);d=d.Cb(h)}return e};a.prototype.Uf=function(){return a.pa(~this.D,~this.J)};a.prototype.shiftLeft=function(b){b&=63;if(0==b)return this;var c=this.D;return 32>b?a.pa(c<<b,this.J<<b|c>>>32-b):a.pa(0,c<<b-32)};a.prototype.dg=function(){var b;b=1;if(0==b)return this;var c=this.J;return 32>b?a.pa(this.D>>>b|c<<32-b,c>>b):a.pa(c>>b-32,0<=c?0:-1)};b.prototype.zc=function(a,b,c,d){for(var e=0,f=0;0<=--d;){var g=a*this[e++]+b[c]+f,f=Math.floor(g/67108864);b[c++]=g&67108863}return f}; -b.prototype.B=26;b.prototype.la=67108863;b.prototype.mb=67108864;b.prototype.Ne=Math.pow(2,52);b.prototype.sd=26;b.prototype.td=0;var h=[],g,j;g=48;for(j=0;9>=j;++j)h[g++]=j;g=97;for(j=10;36>j;++j)h[g++]=j;g=65;for(j=10;36>j;++j)h[g++]=j;b.prototype.copyTo=function(a){for(var b=this.g-1;0<=b;--b)a[b]=this[b];a.g=this.g;a.p=this.p};b.prototype.wa=function(a){this.g=1;this.p=0>a?-1:0;0<a?this[0]=a:-1>a?this[0]=a+DV:this.g=0};b.prototype.N=function(a,c){var e;if(16==c)e=4;else if(8==c)e=3;else if(256== -c)e=8;else if(2==c)e=1;else if(32==c)e=5;else if(4==c)e=2;else{this.wf(a,c);return}this.p=this.g=0;for(var g=a.length,h=G,i=0;0<=--g;){var j=8==e?a[g]&255:d(a,g);0>j?"-"==a.charAt(g)&&(h=s):(h=G,0==i?this[this.g++]=j:i+e>this.B?(this[this.g-1]|=(j&(1<<this.B-i)-1)<<i,this[this.g++]=j>>this.B-i):this[this.g-1]|=j<<i,i+=e,i>=this.B&&(i-=this.B))}8==e&&0!=(a[0]&128)&&(this.p=-1,0<i&&(this[this.g-1]|=(1<<this.B-i)-1<<i));this.va();h&&b.ZERO.ja(this,this)};b.prototype.va=function(){for(var a=this.p&this.la;0< -this.g&&this[this.g-1]==a;)--this.g};b.prototype.Gc=function(a,b){var c;for(c=this.g-1;0<=c;--c)b[c+a]=this[c];for(c=a-1;0<=c;--c)b[c]=0;b.g=this.g+a;b.p=this.p};b.prototype.qf=function(a,b){for(var c=a;c<this.g;++c)b[c-a]=this[c];b.g=Math.max(this.g-a,0);b.p=this.p};b.prototype.ge=function(a,b){var c=a%this.B,d=this.B-c,e=(1<<d)-1,f=Math.floor(a/this.B),g=this.p<<c&this.la,h;for(h=this.g-1;0<=h;--h)b[h+f+1]=this[h]>>d|g,g=(this[h]&e)<<c;for(h=f-1;0<=h;--h)b[h]=0;b[f]=g;b.g=this.g+f+1;b.p=this.p; -b.va()};b.prototype.$f=function(a,b){b.p=this.p;var c=Math.floor(a/this.B);if(c>=this.g)b.g=0;else{var d=a%this.B,e=this.B-d,f=(1<<d)-1;b[0]=this[c]>>d;for(var g=c+1;g<this.g;++g)b[g-c-1]|=(this[g]&f)<<e,b[g-c]=this[g]>>d;0<d&&(b[this.g-c-1]|=(this.p&f)<<e);b.g=this.g-c;b.va()}};b.prototype.ja=function(a,b){for(var c=0,d=0,e=Math.min(a.g,this.g);c<e;)d+=this[c]-a[c],b[c++]=d&this.la,d>>=this.B;if(a.g<this.g){for(d-=a.p;c<this.g;)d+=this[c],b[c++]=d&this.la,d>>=this.B;d+=this.p}else{for(d+=this.p;c< -a.g;)d-=a[c],b[c++]=d&this.la,d>>=this.B;d-=a.p}b.p=0>d?-1:0;-1>d?b[c++]=this.mb+d:0<d&&(b[c++]=d);b.g=c;b.va()};b.prototype.Rf=function(a,c){var d=this.abs(),e=a.abs(),f=d.g;for(c.g=f+e.g;0<=--f;)c[f]=0;for(f=0;f<e.g;++f)c[f+d.g]=d.zc(e[f],c,f,d.g);c.p=0;c.va();this.p!=a.p&&b.ZERO.ja(c,c)};b.prototype.Od=function(a,d,e){var f=a.abs();if(!(0>=f.g)){var g=this.abs();if(g.g<f.g)d!=v&&d.wa(0),e!=v&&this.copyTo(e);else{e==v&&(e=c());var h=c(),i=this.p,a=a.p,j=f[f.g-1],k=1,n;if(0!=(n=j>>>16))j=n,k+=16; -if(0!=(n=j>>8))j=n,k+=8;if(0!=(n=j>>4))j=n,k+=4;if(0!=(n=j>>2))j=n,k+=2;0!=j>>1&&(k+=1);j=this.B-k;0<j?(f.ge(j,h),g.ge(j,e)):(f.copyTo(h),g.copyTo(e));f=h.g;g=h[f-1];if(0!=g){n=g*(1<<this.sd)+(1<f?h[f-2]>>this.td:0);k=this.Ne/n;n=(1<<this.sd)/n;var t=1<<this.td,u=e.g,z=u-f,x=d==v?c():d;h.Gc(z,x);0<=e.Rb(x)&&(e[e.g++]=1,e.ja(x,e));b.ONE.Gc(f,x);for(x.ja(h,h);h.g<f;)h[h.g++]=0;for(;0<=--z;){var A=e[--u]==g?this.la:Math.floor(e[u]*k+(e[u-1]+t)*n);if((e[u]+=h.zc(A,e,z,f))<A){h.Gc(z,x);for(e.ja(x,e);e[u]< ---A;)e.ja(x,e)}}d!=v&&(e.qf(f,d),i!=a&&b.ZERO.ja(d,d));e.g=f;e.va();0<j&&e.$f(j,e);0>i&&b.ZERO.ja(e,e)}}}};b.prototype.toString=function(a){if(0>this.p)return"-"+this.G().toString(a);if(16==a)a=4;else if(8==a)a=3;else if(2==a)a=1;else if(32==a)a=5;else if(4==a)a=2;else return this.gg(a);var b=(1<<a)-1,c,d=G,e="",f=this.g,g=this.B-f*this.B%a;if(0<f--){if(g<this.B&&0<(c=this[f]>>g))d=s,e="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c);for(;0<=f;)g<a?(c=(this[f]&(1<<g)-1)<<a-g,c|=this[--f]>>(g+=this.B- -a)):(c=this[f]>>(g-=a)&b,0>=g&&(g+=this.B,--f)),0<c&&(d=s),d&&(e+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(c))}return d?e:"0"};b.prototype.G=function(){var a=c();b.ZERO.ja(this,a);return a};b.prototype.abs=function(){return 0>this.p?this.G():this};b.prototype.Rb=function(a){var b=this.p-a.p;if(0!=b)return b;var c=this.g,b=c-a.g;if(0!=b)return 0>this.p?-b:b;for(;0<=--c;)if(0!=(b=this[c]-a[c]))return b;return 0};b.ZERO=e(0);b.ONE=e(1);b.prototype.wf=function(a,c){this.wa(0);c==v&&(c=10);for(var e= -this.Pb(c),g=Math.pow(c,e),h=G,i=0,j=0,k=0;k<a.length;++k){var n=d(a,k);0>n?"-"==a.charAt(k)&&0==this.dd()&&(h=s):(j=c*j+n,++i>=e&&(this.Kd(g),this.Jd(j),j=i=0))}0<i&&(this.Kd(Math.pow(c,i)),this.Jd(j));h&&b.ZERO.ja(this,this)};b.prototype.Pb=function(a){return Math.floor(Math.LN2*this.B/Math.log(a))};b.prototype.dd=function(){return 0>this.p?-1:0>=this.g||1==this.g&&0>=this[0]?0:1};b.prototype.Kd=function(a){this[this.g]=this.zc(a-1,this,0,this.g);++this.g;this.va()};b.prototype.Jd=function(a){var b= -0;if(0!=a){for(;this.g<=b;)this[this.g++]=0;for(this[b]+=a;this[b]>=this.mb;)this[b]-=this.mb,++b>=this.g&&(this[this.g++]=0),++this[b]}};b.prototype.gg=function(a){a==v&&(a=10);if(0==this.dd()||2>a||36<a)return"0";var b=this.Pb(a),b=Math.pow(a,b),d=e(b),f=c(),g=c(),h="";for(this.Od(d,f,g);0<f.dd();)h=(b+g.ee()).toString(a).substr(1)+h,f.Od(d,f,g);return g.ee().toString(a)+h};b.prototype.ee=function(){if(0>this.p){if(1==this.g)return this[0]-this.mb;if(0==this.g)return-1}else{if(1==this.g)return this[0]; -if(0==this.g)return 0}return(this[1]&(1<<32-this.B)-1)<<this.B|this[0]};b.prototype.yc=function(a,b){for(var c=0,d=0,e=Math.min(a.g,this.g);c<e;)d+=this[c]+a[c],b[c++]=d&this.la,d>>=this.B;if(a.g<this.g){for(d+=a.p;c<this.g;)d+=this[c],b[c++]=d&this.la,d>>=this.B;d+=this.p}else{for(d+=this.p;c<a.g;)d+=a[c],b[c++]=d&this.la,d>>=this.B;d+=a.p}b.p=0>d?-1:0;0<d?b[c++]=d:-1>d&&(b[c++]=this.mb+d);b.g=c;b.va()};var i={abs:function(b,c){var d=new a(b,c),d=d.T()?d.G():d;u[ja>>2]=d.D;u[ja+4>>2]=d.J},Qd:function(){i.rf|| -(i.rf=s,i.Ae=new b,i.Ae.N("4294967296",10),i.jd=new b,i.jd.N("18446744073709551616",10),i.hj=new b,i.ij=new b)},Li:function(a,c){var d=new b;d.N(c.toString(),10);var e=new b;d.Rf(i.Ae,e);d=new b;d.N(a.toString(),10);var f=new b;d.yc(e,f);return f},stringify:function(c,d,e){c=(new a(c,d)).toString();e&&"-"==c[0]&&(i.Qd(),e=new b,e.N(c,10),c=new b,i.jd.yc(e,c),c=c.toString(10));return c},N:function(c,d,e,f,g){i.Qd();var h=new b;h.N(c,d);c=new b;c.N(e,10);e=new b;e.N(f,10);g&&0>h.Rb(b.ZERO)&&(f=new b, -h.yc(i.jd,f),h=f);f=G;0>h.Rb(c)?(h=c,f=s):0<h.Rb(e)&&(h=e,f=s);h=a.N(h.toString());u[ja>>2]=h.D;u[ja+4>>2]=h.J;f&&l("range error")}};return i}();xb.prototype=Error();var oc,Wa=v,Ca=function b(){!e.calledRun&&Ab&&yb();e.calledRun||(Ca=b)};e.callMain=e.mi=function(b){function c(){for(var b=0;3>b;b++)i.push(0)}K(0==ia,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");K(0==hb.length,"cannot call main when preRun functions remain to be called");b=b||[];Ya&&Wa!==v&&e.Ca("preload time: "+ -(Date.now()-Wa)+" ms");Va||(Va=s,va(pa));var d=b.length+1,i=[I(X("/bin/this.program"),"i8",oa)];c();for(var h=0;h<d-1;h+=1)i.push(I(X(b[h]),"i8",oa)),c();i.push(0);i=I(i,"i32",oa);oc=aa;try{var g=e._main(d,i,0);e.noExitRuntime||nc(g)}catch(j){j instanceof xb||("SimulateInfiniteLoop"==j?e.noExitRuntime=s:(j&&("object"===typeof j&&j.stack)&&e.Ca("exception thrown: "+[j,j.stack]),l(j)))}finally{}};e.run=e.cj=yb;e.exit=e.ri=nc;e.abort=e.abort=ga;if(e.preInit)for("function"==typeof e.preInit&&(e.preInit= -[e.preInit]);0<e.preInit.length;)e.preInit.pop()();var Ab=G;e.noInitialRun&&(Ab=G);e.noExitRuntime=s;yb();delete this.Module;var F={DE265_OK:0,DE265_ERROR_NO_SUCH_FILE:1,DE265_ERROR_EOF:3,DE265_ERROR_COEFFICIENT_OUT_OF_IMAGE_BOUNDS:4,DE265_ERROR_CHECKSUM_MISMATCH:5,DE265_ERROR_CTB_OUTSIDE_IMAGE_AREA:6,DE265_ERROR_OUT_OF_MEMORY:7,DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE:8,DE265_ERROR_IMAGE_BUFFER_FULL:9,DE265_ERROR_CANNOT_START_THREADPOOL:10,DE265_ERROR_LIBRARY_INITIALIZATION_FAILED:11,DE265_ERROR_LIBRARY_NOT_INITIALIZED:12, -DE265_ERROR_WAITING_FOR_INPUT_DATA:13,DE265_ERROR_CANNOT_PROCESS_SEI:14,DE265_ERROR_PARAMETER_PARSING:15,DE265_ERROR_NO_INITIAL_SLICE_HEADER:16,DE265_ERROR_PREMATURE_END_OF_SLICE:17,DE265_ERROR_UNSPECIFIED_DECODING_ERROR:18,DE265_ERROR_MAX_THREAD_CONTEXTS_EXCEEDED:500,DE265_ERROR_MAX_NUMBER_OF_SLICES_EXCEEDED:501,DE265_ERROR_NOT_IMPLEMENTED_YET:502,DE265_WARNING_NO_WPP_CANNOT_USE_MULTITHREADING:1E3,DE265_WARNING_WARNING_BUFFER_FULL:1001,DE265_WARNING_PREMATURE_END_OF_SLICE_SEGMENT:1002,DE265_WARNING_INCORRECT_ENTRY_POINT_OFFSET:1003, -DE265_WARNING_CTB_OUTSIDE_IMAGE_AREA:1004,DE265_WARNING_SPS_HEADER_INVALID:1005,DE265_WARNING_PPS_HEADER_INVALID:1006,DE265_WARNING_SLICEHEADER_INVALID:1007,DE265_WARNING_INCORRECT_MOTION_VECTOR_SCALING:1008,DE265_WARNING_NONEXISTING_PPS_REFERENCED:1009,DE265_WARNING_NONEXISTING_SPS_REFERENCED:1010,DE265_WARNING_BOTH_PREDFLAGS_ZERO:1011,DE265_WARNING_NONEXISTING_REFERENCE_PICTURE_ACCESSED:1012,DE265_WARNING_NUMMVP_NOT_EQUAL_TO_NUMMVQ:1013,DE265_WARNING_NUMBER_OF_SHORT_TERM_REF_PIC_SETS_OUT_OF_RANGE:1014, -DE265_WARNING_SHORT_TERM_REF_PIC_SET_OUT_OF_RANGE:1015,DE265_WARNING_FAULTY_REFERENCE_PICTURE_LIST:1016,DE265_WARNING_EOSS_BIT_NOT_SET:1017,DE265_WARNING_MAX_NUM_REF_PICS_EXCEEDED:1018,DE265_WARNING_INVALID_CHROMA_FORMAT:1019,DE265_WARNING_SLICE_SEGMENT_ADDRESS_INVALID:1020,DE265_WARNING_DEPENDENT_SLICE_WITH_ADDRESS_ZERO:1021,DE265_WARNING_NUMBER_OF_THREADS_LIMITED_TO_MAXIMUM:1022,DE265_NON_EXISTING_LT_REFERENCE_CANDIDATE_IN_SLICE_HEADER:1023,DE265_WARNING_CANNOT_APPLY_SAO_OUT_OF_MEMORY:1024,DE265_WARNING_SPS_MISSING_CANNOT_DECODE_SEI:1025, -DE265_WARNING_COLLOCATED_MOTION_VECTOR_OUTSIDE_IMAGE_AREA:1026,de265_get_version:E("de265_get_version","string"),de265_get_version_number:E("de265_get_version_number","number"),de265_get_error_text:E("de265_get_error_text","string",["number"]),de265_isOK:E("de265_isOK","number",["number"]),de265_set_verbosity:E("de265_set_verbosity","number",["number"]),de265_chroma_mono:0,de265_chroma_420:1,de265_chroma_422:2,de265_chroma_444:3,de265_get_image_width:E("de265_get_image_width","number",["number","number"]), -de265_get_image_height:E("de265_get_image_height","number",["number","number"]),de265_get_chroma_format:E("de265_get_chroma_format","number",["number"]),de265_get_bits_per_pixel:E("de265_get_bits_per_pixel","number",["number","number"]),de265_get_image_plane:E("de265_get_image_plane","number",["number","number","number"]),de265_get_image_plane_user_data:E("de265_get_image_plane_user_data","number",["number","number"]),de265_get_image_PTS:E("de265_get_image_PTS","number",["number"]),de265_get_image_user_data:E("de265_get_image_user_data", -"number",["number"]),de265_set_image_user_data:E("de265_set_image_user_data","number",["number","number"]),de265_new_decoder:E("de265_new_decoder","number"),de265_free_decoder:E("de265_free_decoder","number",["number"]),de265_push_data:E("de265_push_data","number",["number","array","number","number","number"]),de265_push_end_of_NAL:E("de265_push_end_of_NAL","number",["number"]),de265_push_end_of_frame:E("de265_push_end_of_frame","number",["number"]),de265_push_NAL:E("de265_push_NAL","number",["number", -"array","number","number","number"]),de265_flush_data:E("de265_flush_data","number",["number"]),de265_get_number_of_input_bytes_pending:E("de265_get_number_of_input_bytes_pending","number",["number"]),de265_get_number_of_NAL_units_pending:E("de265_get_number_of_NAL_units_pending","number",["number"]),de265_decode:E("de265_decode","number",["number","number"]),de265_reset:E("de265_reset","number",["number"]),de265_peek_next_picture:E("de265_peek_next_picture","number",["number"]),de265_get_next_picture:E("de265_get_next_picture", -"number",["number"]),de265_release_next_picture:E("de265_release_next_picture","number",["number"]),de265_get_warning:E("de265_get_warning","number",["number"]),de265_get_highest_TID:E("de265_get_highest_TID","number",["number"]),de265_get_current_TID:E("de265_get_current_TID","number",["number"]),de265_set_limit_TID:E("de265_set_limit_TID","number",["number","number"]),de265_set_framerate_ratio:E("de265_set_framerate_ratio","number",["number","number"]),de265_change_framerate:E("de265_change_framerate", -"number",["number","number"]),DE265_DECODER_PARAM_BOOL_SEI_CHECK_HASH:0,DE265_DECODER_PARAM_DUMP_SPS_HEADERS:1,DE265_DECODER_PARAM_DUMP_VPS_HEADERS:2,DE265_DECODER_PARAM_DUMP_PPS_HEADERS:3,DE265_DECODER_PARAM_DUMP_SLICE_HEADERS:4,DE265_DECODER_PARAM_ACCELERATION_CODE:5,DE265_DECODER_PARAM_SUPPRESS_FAULTY_PICTURES:6,DE265_DECODER_PARAM_DISABLE_DEBLOCKING:7,DE265_DECODER_PARAM_DISABLE_SAO:8,de265_acceleration_SCALAR:0,de265_acceleration_MMX:10,de265_acceleration_SSE:20,de265_acceleration_SSE2:30,de265_acceleration_SSE4:40, -de265_acceleration_AVX:50,de265_acceleration_AVX2:60,de265_acceleration_ARM:70,de265_acceleration_NEON:80,de265_acceleration_AUTO:1E4,de265_set_parameter_bool:E("de265_set_parameter_bool","number",["number","number","number"]),de265_set_parameter_int:E("de265_set_parameter_int","number",["number","number","number"]),de265_get_parameter_bool:E("de265_get_parameter_bool","number",["number","number"])};Ba.prototype.free=H();Ba.prototype.get_width=function(){this.width===v&&(this.width=F.de265_get_image_width(this.ra, -0));return this.width};Ba.prototype.get_height=function(){this.height===v&&(this.height=F.de265_get_image_height(this.ra,0));return this.height};Ba.prototype.display=function(b,c){var d=this.get_width(),e=this.get_height(),h=F.de265_get_chroma_format(this.ra),g=W(4),i=F.de265_get_image_plane(this.ra,0,g),k=ta(g,"i32"),r=F.de265_get_bits_per_pixel(this.ra,0),m=F.de265_get_image_plane(this.ra,1,g),q=ta(g,"i32"),t=F.de265_get_bits_per_pixel(this.ra,1),u=F.de265_get_image_plane(this.ra,2,g),x=ta(g,"i32"), -z=F.de265_get_bits_per_pixel(this.ra,2);Ma(g);this.mf.af(h,i,m,u,d,e,k,q,x,r,t,z,b,c)};var cb=v;ab.prototype.Ld=function(){this.kb&&(this.kb.postMessage({cmd:"stop"}),this.kb=v)};ab.prototype.Ed=function(b,c,d,e,h,g,i,k,r,m,q,t,u,x){b={cmd:"convert",data:{chroma:b,y:new Uint8Array(c),u:new Uint8Array(d),v:new Uint8Array(e),w:h,h:g,stridey:i,strideu:k,stridev:r,bppy:m,bppu:q,bppv:t}};this.tb.push(function(b){if(u.data.set)u.data.set(b);else for(var c=u.data,d=c.length,e=0;e<d;e++)c[e]=b[e];x(u)}); -this.kb.postMessage(b)};bb.prototype.Ld=H();bb.prototype.Ed=function(b,c,d,e,h,g,i,k,r,m,q,t,u,x){db(b,c,d,e,h,g,i,k,r,m,q,t,u.data);x(u)};T.prototype.free=function(){this.Tb&&(this.Tb.Ld(),this.Tb=v);F.de265_free_decoder(this.Q);this.Q=v;Ma(this.Na);this.Na=v};T.prototype.set_image_callback=la("Sc");T.prototype.reset=function(){F.de265_reset(this.Q)};T.prototype.push_data=function(b,c){return F.de265_push_data(this.Q,b,b.length,c||0,0)};T.prototype.flush=function(){this.stop=s;return F.de265_flush_data(this.Q)}; -T.prototype.has_more=function(){return!this.stop||0!==ta(this.Na,"i16")};T.prototype.set_framerate_ratio=function(b){F.de265_set_framerate_ratio(this.Q,b)};T.prototype.disable_filters=function(b){F.de265_set_parameter_bool(this.Q,F.DE265_DECODER_PARAM_DISABLE_DEBLOCKING,!!b);F.de265_set_parameter_bool(this.Q,F.DE265_DECODER_PARAM_DISABLE_SAO,!!b)};T.prototype.decode=function(b){var c;for(Ja(this.Na,1,"i16");0!==ta(this.Na,"i16");){c=F.de265_decode(this.Q,this.Na);if(!F.de265_isOK(c)){Ja(this.Na,0, -"i16");break}var d=F.de265_get_next_picture(this.Q);if(d){this.Sc&&this.Sc(new Ba(this,d));break}}b(c)};T.prototype.af=function(b,c,d,e,h,g,i,k,r,m,q,t,u,x){c=N.subarray(c,c+g*i);d=N.subarray(d,d+g*k);e=N.subarray(e,e+g*r);this.Tb.Ed(b,c,d,e,h,g,i,k,r,m,q,t,u,x)};F.Decoder=T;M.prototype.xc=function(){this.start=v;this.frames=0;this.cc=v;this.te=G;this.jc=v};M.prototype.set_status_callback=la("nc");M.prototype.qb=function(){this.nc&&this.nc.apply(this.nc,arguments)};M.prototype.set_error_callback= -la("Ic");M.prototype.yd=function(b,c){this.Ic&&this.Ic(b,c)};M.prototype.Se=function(b){if(this.start){this.frames+=1;var c=new Date-this.start;1E3<c&&this.qb("fps",this.frames/(0.001*c))}else this.start=new Date,this.qb("playing");var c=b.get_width(),d=b.get_height();if(c!=this.canvas.width||d!=this.canvas.height||!this.cc){this.canvas.width=c;this.canvas.height=d;this.cc=this.Q.createImageData(c,d);for(var e=this.cc.data,h=0;h<c*d;h++)e[4*h+3]=255}var g=this;b.display(this.cc,function(b){window.requestAnimationFrame? -(g.jc=b,window.requestAnimationFrame(function(){g.jc&&(g.Q.putImageData(g.jc,0,0),g.jc=v)})):g.Q.putImageData(b,0,0)})};M.prototype.Te=function(b){function c(){if(d.te){var b;if(0===i)b=e.flush();else{var q=4096;q>i&&(q=i);b=new Uint8Array(h,g,q);b=e.push_data(b);g+=q;i-=q}F.de265_isOK(b)?(d.mc!==k&&(e.set_framerate_ratio(d.mc),k=d.mc),d.Zb!==r&&(e.disable_filters(d.Zb),r=d.Zb),e.decode(function(b){switch(b){case F.DE265_ERROR_WAITING_FOR_INPUT_DATA:setTimeout(c,0);return;default:if(!F.de265_isOK(b)){d.yd(b, -F.de265_get_error_text(b));return}}0<i||e.has_more()?setTimeout(c,0):(e.free(),d.stop())})):d.yd(b,F.de265_get_error_text(b))}}var d=this;this.qb("initializing");var e=new T;e.set_image_callback(function(b){d.Se(b);b.free()});var h=b.response,g=0,i=h.byteLength,k=v,r=G;setTimeout(c,0)};M.prototype.playback=function(b){this.xc();var c=new XMLHttpRequest;c.open("get",b,s);c.responseType="arraybuffer";var d=this;c.onload=function(){d.Te(c)};this.qb("loading");this.te=s;c.send()};M.prototype.stop=function(){this.qb("stopped"); -this.xc()};M.prototype.set_framerate_ratio=la("mc");M.prototype.disable_filters=la("Zb");F.RawPlayer=M;"undefined"!==typeof exports?("undefined"!==typeof module&&module.tf&&(exports=module.tf=F),exports.libde265=F):this.libde265=F;"function"===typeof define&&define.ji&&define([],function(){return F})}).call(this); - diff --git a/web-service/server/package.json b/web-service/server/package.json index 3cc858fcdecf407f3828321a7cdd90e95c5ad5d6..14e0f41a281dbdf91477fb215113475bc0e6675a 100644 --- a/web-service/server/package.json +++ b/web-service/server/package.json @@ -17,6 +17,7 @@ "body-parser": "^1.19.0", "express": "^4.16.4", "express-ws": "^4.0.0", + "h264-converter": "^0.1.0", "jsonwebtoken": "^8.5.1", "mongoose": "^5.7.3", "msgpack5": "^4.2.1", diff --git a/web-service/server/src/peer.js b/web-service/server/src/peer.js index 037af4f1e0e48c52810bf9cbee89756c0c10b6cc..2f5649f1710f0b7bdf3541e401c51db0c06b381c 100644 --- a/web-service/server/src/peer.js +++ b/web-service/server/src/peer.js @@ -9,9 +9,8 @@ const kConnected = 2; const kDisconnected = 3; // Generate a unique id for this webservice -let cpp_my_uuid = uuidv4(); -console.log(cpp_my_uuid) -let my_uuid = uuidParser.parse(cpp_my_uuid) +let uuid = uuidv4(); +let my_uuid = uuidParser.parse(uuid) my_uuid = new Uint8Array(my_uuid); // my_uuid[0] = 44; // console.log(my_uuid) @@ -280,7 +279,7 @@ Peer.prototype.on = function(evt, f) { * Returns a UUID in a string form */ Peer.prototype.getUuid = function() { - return cpp_my_uuid; + return uuid; } module.exports = Peer;